Cycles prints core dump when rendering with OPTIX and missing package libnvidia-gl #101651

Closed
opened 2022-10-06 19:06:09 +02:00 by Grische · 13 comments

System Information
Operating system: Ubuntu 20.04
Graphics card: Nvidia RTX 3090

Blender Version
Broken:

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
blender_331_coredump.txt
Exact steps for others to reproduce the error

  1. Create an empty Ubuntu VM / installation
  2. Install Nvidia drivers: sudo apt-get install -y nvidia-drivers-515 (alternatively sudo apt-get install -y nvidia-headless-515-server)
  3. Install Blender dependencies: sudo apt-get install -y libxrender1 libxi6 libgl1 libglx-mesa0
  4. Run Blender: ./blender-3.3.1-linux-x64/blender splash_fox_2.90.blend -b -E CYCLES -f 1 -- --cycles-device OPTIX
  5. Observe core dump (see attachment)

This can be fixed by additionally installing libnvidia-gl-515.

Would it be possible to gracefully check for the lack of the package and print a respective error message instead?

**System Information** Operating system: Ubuntu 20.04 Graphics card: Nvidia RTX 3090 **Blender Version** Broken: ``` 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 [blender_331_coredump.txt](https://archive.blender.org/developer/F13623966/blender_331_coredump.txt) **Exact steps for others to reproduce the error** 1. Create an empty Ubuntu VM / installation 2. Install Nvidia drivers: `sudo apt-get install -y nvidia-drivers-515` (alternatively `sudo apt-get install -y nvidia-headless-515-server`) 3. Install Blender dependencies: `sudo apt-get install -y libxrender1 libxi6 libgl1 libglx-mesa0` 3. Run Blender: `./blender-3.3.1-linux-x64/blender splash_fox_2.90.blend -b -E CYCLES -f 1 -- --cycles-device OPTIX` 4. Observe core dump (see attachment) This can be fixed by additionally installing `libnvidia-gl-515`. Would it be possible to gracefully check for the lack of the package and print a respective error message instead?
Author

Added subscriber: @grische

Added subscriber: @grische

#101671 was marked as duplicate of this issue

#101671 was marked as duplicate of this issue
Contributor

Added subscriber: @Raimund58

Added subscriber: @Raimund58

Added subscriber: @randomGuyOnTheInternet

Added subscriber: @randomGuyOnTheInternet

Added subscribers: @Shiki-1, @deadpin

Added subscribers: @Shiki-1, @deadpin

Changed status from 'Needs Triage' to: 'Confirmed'

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.

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.
Author

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.

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.
Member

Added subscriber: @LukasStockner

Added subscriber: @LukasStockner
Lukas Stockner self-assigned this 2022-10-08 19:47:04 +02:00
Member

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

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 3d7f298e9a

This issue was referenced by 3d7f298e9a5c8f2e95f118e571589521abc71b1a

This issue was referenced by 95aac5df73

This issue was referenced by 95aac5df736e8bbf0fe55954524e42845ba7e20a
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
6 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#101651
No description provided.