Search Issue Tracker
Fixed in 2021.2.X
Fixed in 2018.4.X, 2019.4.X, 2020.3.X, 2021.1.X
Votes
0
Found in
2018.4
2019.1
2019.2
2019.3
2020.1
Issue ID
1229259
Regression
No
100% crash when baking with Enlighten on a system with more than 64 threads
Crash when baking with Enlighten on a system with more than 64 threads, for example a AMD Threadripper 3990X.
Steps to reproduce:
Open gfx tests project.
Open scene 'Assets/044-BakedLightingLightmapMats-editor.unity'
Choose Enlighten as bake backend.
Bake lighting.
Observed result:
100% reproducible crash in the embree worker threads spawned by Enlighten:
> Unity.exe!embree::PrimRefGen<embree::HeuristicBinning<2>,embree::atomic_set<embree::PrimRefBlock> >::task_gen_parallel(const embree::TaskScheduler::ThreadInfo & thread, unsigned __int64 idx) Line 80 C++
Unity.exe!embree::TaskSchedulerStandard::run(unsigned __int64 tid) Line 100 C++
Unity.exe!embree::TaskSchedulerStandard::threadFunction(embree::TaskSchedulerStandard::Thread * thread) Line 115 C++
Unity.exe!embree::threadStartup(embree::ThreadStartupData * parg) Line 120 C++
[External Code]
Exception thrown: read access violation.
**block** was 0xFFFFFFFFFFFF7FFF.
Thread was spawned by BakingJobs.Worker 0
[External Code]
Unity.exe!embree::ConditionSys::wait(embree::MutexSys & mutex) Line 109
Unity.exe!embree::TaskSchedulerStandard::stop() Line 74
Unity.exe!embree::BVH4Builder<embree::HeuristicBinning<2> >::BVH4Builder<embree::HeuristicBinning<2> >(const embree::TriangleType & trity, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & intTy, const embree::BuildTriangle * triangles, unsigned __int64 numTriangles, const embree::Vec3<float> * vertices, unsigned __int64 numVertices, const embree::BBox<embree::Vec3<float> > & bounds, bool freeVertices) Line 37
Unity.exe!Geo::GeoEmbreeContext::Create(const Geo::IRtMesh * world, bool anyHitTraversal) Line 138
Unity.exe!Enlighten::Precalc::Create(const Enlighten::Bake * bake, const Enlighten::BakeInputProperties * props, const Enlighten::BakeVisibilityBuffer * visBuffer, const Enlighten::BakeInputSystem * system, const Enlighten::BakeSystemResource * systemResource, const Enlighten::IBakeTextureManager * texMgr) Line 58
Unity.exe!Enlighten::ComputeVisibility(Enlighten::BakeVisibilityBuffer * visBuffer, const Enlighten::Bake * bake, const Enlighten::BakeInputSystem * system, const Enlighten::BakeSystemResource * systemResource, const Geo::GeoArray<Geo::GeoPair<int,Enlighten::BakeInputLight const *> > * lightsToAdd, const Enlighten::IBakeTextureManager * pTexMgr, const Enlighten::BakeInputProperties * props, bool target) Line 989
Unity.exe!Enlighten::Bake::UpdateVisibilityBuffer(const Enlighten::IBakeInputSystem * pSystem, const Enlighten::IBakeSystemResource * pSystemResource, const Enlighten::IBakeTextureManager * pTexMgr, const Enlighten::IBakeInputLighting * pLighting, const Enlighten::IBakeInputProperties * pProps, bool target, Geo::IGeoProgressProxy * progress, Enlighten::IBakeVisibilityBuffer * & ioVisBuffer) Line 400
Unity.exe!CreateEnlightenBakeVisibilityBufferJob::Execute(IQueueJob::JobInfo & info) Line 139
Unity.exe!IQueueJob::InvokeExecuteJob(IQueueJob & job, IQueueJob::JobInfo * info) Line 45
Unity.exe!JobManager::UpdateFunction(void * userData) Line 583
Unity.exe!JobQueue::ExecuteJobFunc<1>(JobInfo * info, JobGroup * group, void(*)(void *) completeJobFunc) Line 460
Unity.exe!JobQueue::Exec(JobInfo * info, __int64 tag, int count, bool zeroJobWorkersMode) Line 617
Unity.exe!JobQueue::Steal(JobGroup * group, JobInfo * info, __int64 tag, int count, bool exec, bool zeroJobWorkersMode) Line 724
Unity.exe!JobQueue::ExecuteJobFromQueue(bool zeroJobWorkersMode) Line 819
Unity.exe!JobQueue::ProcessJobs(JobQueue::ThreadInfo * threadInfo, void * profInfo) Line 939
Unity.exe!JobQueue::WorkLoop(void * data) Line 1022
Unity.exe!Thread::RunThreadWrapper(void * ptr) Line 78
[External Code]
Expected outcome: bake completes without errors.
Workaround:
If SMT is disabled on an AMD Threadripper 3990X so it has 64 threads instead of 128, the crash doesn't happen.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Text Settings Inspector sections names have no padding
- UI elements shrinking, misaligned buttons, swapped icons, or incorrect styles when rapidly cycling through Scenes in the Player
- Text field does not disappear if Ctrl+Z is pressed while editing text
- CullingResults.GetShadowCasterBounds Results Remain Unchanged Despite Restricting Affected Objects with Rendering Layers
- Water Surface renders rectangular shape when the Camera is relatively close to the surface
lobosky
Sep 13, 2020 17:39
Nice Update