Cycles prints core dump when rendering with OPTIX and missing package
Operating system: Ubuntu 20.04
Graphics card: Nvidia RTX 3090
Blender 3.3.1 build date: 2022-10-05 build time: 00:14:35 build commit date: 2022-10-04 build commit time: 18:35 build hash: b292cfe5a936 build platform: Linux
Short description of error
Blender/Cycles prints core dump when rendering with OPTIX and package
libnvidia-gl is missing
Exact steps for others to reproduce the error
- Create an empty Ubuntu VM / installation
- Install Nvidia drivers:
sudo apt-get install -y nvidia-drivers-515(alternatively
sudo apt-get install -y nvidia-headless-515-server)
- Install Blender dependencies:
sudo apt-get install -y libxrender1 libxi6 libgl1 libglx-mesa0
- Run Blender:
./blender-3.3.1-linux-x64/blender splash_fox_2.90.blend -b -E CYCLES -f 1 -- --cycles-device OPTIX
- Observe core dump (see attachment)
This can be fixed by additionally installing
Would it be possible to gracefully check for the lack of the package and print a respective error message instead?
Changed status from 'Needs Triage' to: 'Confirmed'
Will confirm as another user (report merged in above) has hit the issue and verified the same workaround - They needed to explicitly download the
libnvidia-gl-515 library separately.
I wonder if this is some new requirement from the driver package? Unsure why it's not an automatic dependency though.
Might be worth mentioning, that the same problem and same workaround also applies for driver version 470. It's not a recent change in the driver package as far as I can tell.
We can't really do anything about how the driver is packaged, but Cycles should just print a warning and fall back to CPU rendering instead of crashing.
From looking at the debug output, it seems like the Optix device initialization fails, but the path tracing logic picks the GPU codepath anyways:
I1008 17:44:12.522774 148069 device.cpp:32] CUEW initialization succeeded I1008 17:44:12.522833 148069 device.cpp:34] Found precompiled kernels I1008 17:44:13.154697 148069 device.cpp:182] Device has compute preemption or is not used for display. I1008 17:44:13.154747 148069 device.cpp:185] Added device "NVIDIA GeForce RTX 3090" with id "CUDA_NVIDIA GeForce RTX 3090_0000:00:05". I1008 17:44:13.154850 148069 device.cpp:39] OptiX initialization failed with error code 7804 I1008 17:44:13.155278 148069 device_impl.cpp:58] Using AVX2 CPU kernels. F1008 17:44:13.155810 148069 device.cpp:431] Device does not support queues. ***Check failure stack trace:*** @ 0x2a3ce53 google::LogMessage::Fail() @ 0x2a3ef03 google::LogMessage::SendToLog() @ 0x2a3c9d1 google::LogMessage::Flush() @ 0x2a3f85f google::LogMessageFatal::~LogMessageFatal() @ 0x2a5f9b4 ccl::Device::gpu_queue_create() @ 0x34caf6d ccl::PathTraceWorkGPU::PathTraceWorkGPU() @ 0x34c4868 ccl::PathTraceWork::create() @ 0x34bd3c4 _ZNSt17_Function_handlerIFvPN3ccl6DeviceEEZNS0_9PathTraceC4ES2_PNS0_4FilmEPNS0_11DeviceSceneERNS0_15RenderSchedulerERNS0_11TileManagerEEUlS2_E_E9_M_invokeERKSt9_Any_dataOS2_ @ 0x34bd73a ccl::PathTrace::PathTrace() @ 0x343185c ccl::Session::Session() @ 0x29bb49b ccl::BlenderSession::create_session() @ 0x29bc0d0 ccl::BlenderSession::reset_session() @ 0x29b3472 ccl::reset_func() @ 0xc539ff4 cfunction_call @ 0xc4f4458 _PyObject_MakeTpCall @ 0x8eb70f _PyEval_EvalFrameDefault @ 0xc5b2ae4 _PyEval_Vector @ 0x8eb6ba _PyEval_EvalFrameDefault @ 0xc5b2ae4 _PyEval_Vector @ 0xc4f40df PyVectorcall_Call @ 0x142ed68 bpy_class_call @ 0x138478a engine_update @ 0x1fe7c34 engine_render_view_layer() @ 0x1fe8925 RE_engine_render @ 0x1feccf7 do_render_engine() @ 0x1fef9e8 do_render_full_pipeline() @ 0x1ff06c2 RE_RenderAnim @ 0x8f052c arg_handle_render_frame @ 0xc2d3507 BLI_args_parse @ 0x7deb80 main @ 0x7f24e0986083 __libc_start_main @ 0x8eda2e _start
This issue was referenced by
This issue was referenced by
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?