Page MenuHome

Consistent crash in Embree SSE42, SSE2 code in older Intel CPU.
Closed, DuplicatePublic

Description

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce GTX 470/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 391.35

Blender Version
Broken: version: 2.91.0 Alpha, branch: master, commit date: 2020-10-09 15:00, hash: rB2d94b0d6b062
Worked: 2.83.7 Before Embree (and maybe TBB) was made default.

Short description of error
This has been occurring since Embree was made the default path tracer for CPUs. I just haven't figured out a repeatable test case until now.
This crash is similar to T81354: 2.9.1 Close without error message
A scene with a torus and a Suzanne. The Suzanne has a Subdivision modifier set to level 4. Setting the Viewport Shading to rendered and the Render Pass to UV results in a crash.
It won't crash if the torus is deleted. It won't crash if the subdivision modifier is turned off.

Exact steps for others to reproduce the error
Open attached file.
Set Viewport Shading to Rendered.
Set Render Pass to UV

Let me know if you need anything else out of MSVC.

Got it to load the UV once without crashing. As you can see, Suzanne's topology is in quite some disarray.

# Blender 2.91.0, Commit date: 2020-10-09 15:00, Hash 2d94b0d6b062
bpy.context.space_data.shading.type = 'RENDERED'  # Property
bpy.data.screens["Layout"].(null) = 'UV'  # Property

# backtrace
Exception Record:

ExceptionCode         : EXCEPTION_ACCESS_VIOLATION
Exception Address     : 0x00007FF726233E08
Exception Module      : blender.exe
Exception Flags       : 0x00000000
Exception Parameters  : 0x2
	Parameters[0] : 0x0000000000000000
	Parameters[1] : 0x00000188C31B4050


Stack trace:
blender.exe         :0x00007FF726233DF0  embree::sse2::TriangleMi<4>::loadTriangle
blender.exe         :0x00007FF7275030A0  embree::sse42::BVHNIntersector1<4,1,1,embree::sse42::ArrayIntersector1<embree::sse42::TriangleMiInt
blender.exe         :0x0000000000000000  
blender.exe         :0x00007FF725F74CD0  embree::sse42::BVHNIntersector1<4,1,0,embree::sse42::ArrayIntersector1<embree::sse42::InstanceInter
blender.exe         :0x00007FF725F74CD0  rtcIntersect1
blender.exe         :0x00007FF725C41C10  ccl::kernel_path_trace C:\blender-git\blender\intern\cycles\kernel\kernel_path.h:692
blender.exe         :0x00007FF725C39820  ccl::kernel_cpu_sse41_path_trace C:\blender-git\blender\intern\cycles\kernel\kernels\cpu\kernel_cpu_impl.h:99
blender.exe         :0x00007FF725A87B20  ccl::CPUDevice::render C:\blender-git\blender\intern\cycles\device\device_cpu.cpp:937
blender.exe         :0x00007FF725A88AF0  ccl::CPUDevice::thread_render C:\blender-git\blender\intern\cycles\device\device_cpu.cpp:1291
blender.exe         :0x00007FF725A88F90  ccl::CPUDevice::thread_run C:\blender-git\blender\intern\cycles\device\device_cpu.cpp:552
blender.exe         :0x00007FF725A82CC0  std::_Func_impl_no_alloc<<lambda_d884e08a7877f415f05ce8ffda8f97b4>,void>::_Do_call C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\functional:903
blender.exe         :0x00007FF727F866B0  tbb::internal::function_task<std::function<void __cdecl(void)> >::execute C:\blender-git\lib\win64_vc15\tbb\include\tbb\task.h:1049
tbb.dll             :0x00007FFD609837A0  tbb::recursive_mutex::scoped_lock::internal_try_acquire
tbb.dll             :0x00007FFD609837A0  tbb::recursive_mutex::scoped_lock::internal_try_acquire
blender.exe         :0x00007FF724F3B5A0  tbb::internal::task_group_base::wait C:\blender-git\blender\intern\cycles\util\util_task.cpp:168
blender.exe         :0x00007FF727F86DB0  ccl::TaskPool::wait_work
blender.exe         :0x00007FF725E7BFC0  ccl::Session::run_cpu C:\blender-git\blender\intern\cycles\render\session.cpp:738
blender.exe         :0x00007FF725E7BB80  ccl::Session::run C:\blender-git\blender\intern\cycles\render\session.cpp:776
blender.exe         :0x00007FF727F89680  ccl::thread::run C:\blender-git\blender\intern\cycles\util\util_thread.cpp:53
blender.exe         :0x00007FF72567F910  std::thread::_Invoke<std::tuple<void (__cdecl ceres::internal::ThreadPool::*)(void),ceres::internal C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\include\thread:44
ucrtbase.dll        :0x00007FFD80F90D40  beginthreadex
KERNEL32.DLL        :0x00007FFD81B97BC0  BaseThreadInitThunk
ntdll.dll           :0x00007FFD83AECE30  RtlUserThreadStart

Event Timeline

@Ray molenkamp (LazyDodo) Here is the report I was saying I was going to post. I know you said that Intel's emulator isn't currently working on your system, but here is the tag nonetheless.

I can reproduce this on AVX , it may not be architecture related.