A week ago - darktable was finding and using nvidia opencl.
I’ve just realized that as of today - it doesn’t find nvidia opencl and therefore, defaults to CPU.
I’m not aware of any major changes on my system.
I’ve done the typical google’ing and followed the various “reinstall nvidia drivers” steps found.
The strange part is that clinfo - shows nvidia opencl active and working - but darktable cannot see nvidia at all?
I have darktable debug logs from a week ago and today…
I could put on a paste server or here? Where is best?
Linux Neon (Ubuntu clone)
Darktable 4.4.2 flatpak. No change. NVIDIA-SMI 535.113.01 Driver Version: 535.113.01 CUDA Version: 12.2 No change.
I run fedora 38 and the Discover (the application program) sends notifications when there is a system package updated (dnf) or a flatpak one. Check how Linux Neon manages this.
The flatpak approach is good and bad. The nvidia drivers have to be available inside the sandbox environment.
Neon uses the same… which I understand relies on appstream et al. however, in this case there were no notifications for requested updates nor was I aware of anything being updated automagically.
I am trying to use mesa rusticl drivers on my ubuntu system but as soon as I enable the rusticl drivers darktable crashes …
Without enabling mesa rusticl, the nvidia drivers are found and can be used though. Would be great to see that both GPUs are beeing used.
RUSTICL_ENABLE=radeonsi /opt/darktable/bin/darktable-cltest
this is darktable 4.5.0+777~g83758c7d9c
copyright (c) 2009-2023 johannes hanika
https://github.com/darktable-org/darktable/issues/new/choose
compile options:
bit depth is 64 bit
normal build
SSE2 optimizations enabled
OpenMP support enabled
OpenCL support enabled
Lua support enabled, API version 9.2.0
Colord support enabled
gPhoto2 support disabled
G'MIC support enabled (compressed LUTs will be supported)
GraphicsMagick support enabled
ImageMagick support disabled
libavif support enabled
libheif support disabled
libjxl support disabled
OpenJPEG support enabled
OpenEXR support enabled
WebP support enabled
0.0605 [dt_get_sysresource_level] switched to 2 as `large'
0.0605 total mem: 31443MB
0.0605 mipmap cache: 3930MB
0.0605 available mem: 21494MB
0.0605 singlebuff: 1965MB
0.0610 [opencl_init] opencl library 'libOpenCL' found on your system and loaded, preference 'default path'
0.1169 [opencl_init] found 2 platforms
[opencl_init] found 2 devices
[dt_opencl_device_init]
DEVICE: 0: 'RENOIR (renoir, LLVM 15.0.7, DRM 3.49, 6.2.0-33-generic)'
PLATFORM NAME & VENDOR: rusticl, Mesa/X.org
CANONICAL NAME: rusticlrenoir
DRIVER VERSION: 23.2.1 - kisak-mesa PPA
DEVICE VERSION: OpenCL 3.0
DEVICE_TYPE: GPU, dedicated mem
GLOBAL MEM SIZE: 15722 MB
MAX MEM ALLOC: 2048 MB
MAX IMAGE SIZE: 16384 x 16384
MAX WORK GROUP SIZE: 1024
MAX WORK ITEM DIMENSIONS: 3
MAX WORK ITEM SIZES: [ 1024 1024 1024 ]
ASYNC PIXELPIPE: NO
PINNED MEMORY TRANSFER: NO
AVOID ATOMICS: NO
MICRO NAP: 250
ROUNDUP WIDTH & HEIGHT 16x16
CHECK EVENT HANDLES: 128
TILING ADVANTAGE: 0.000
DEFAULT DEVICE: NO
KERNEL BUILD DIRECTORY: /opt/darktable/share/darktable/kernels
KERNEL DIRECTORY: /home/ds/.cache/darktable/cached_v2_kernels_for_rusticlRENOIR_2321kisakmesaPPA
CL COMPILER OPTION: -cl-fast-relaxed-math
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', ../src/gallium/frontends/rusticl/core/program.rs:228:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
fatal runtime error: failed to initiate panic, error 5
I am getting the same output as I already posted before …
without setting the environment RUSTICL_ENABLE, I am getting
/opt/darktable/bin/darktable -d opencl
this is darktable 4.5.0+777~g83758c7d9c
copyright (c) 2009-2023 johannes hanika
https://github.com/darktable-org/darktable/issues/new/choose
compile options:
bit depth is 64 bit
normal build
SSE2 optimizations enabled
OpenMP support enabled
OpenCL support enabled
Lua support enabled, API version 9.2.0
Colord support enabled
gPhoto2 support disabled
G'MIC support enabled (compressed LUTs will be supported)
GraphicsMagick support enabled
ImageMagick support disabled
libavif support enabled
libheif support disabled
libjxl support disabled
OpenJPEG support enabled
OpenEXR support enabled
WebP support enabled
0.6060 [dt_get_sysresource_level] switched to 2 as `large'
0.6061 total mem: 31443MB
0.6061 mipmap cache: 3930MB
0.6061 available mem: 21494MB
0.6061 singlebuff: 1965MB
0.6096 [opencl_init] opencl library 'libOpenCL' found on your system and loaded, preference 'default path'
0.6506 [opencl_init] found 2 platforms
0.6506 [opencl_init] no devices found for Mesa/X.org (vendor) - rusticl (name)
[opencl_init] found 1 device
[dt_opencl_device_init]
DEVICE: 0: 'NVIDIA GeForce RTX 3060 Laptop GPU'
PLATFORM NAME & VENDOR: NVIDIA CUDA, NVIDIA Corporation
CANONICAL NAME: nvidiacudanvidiageforcertx3060laptopgpu
DRIVER VERSION: 525.125.06
DEVICE VERSION: OpenCL 3.0 CUDA, SM_20 SUPPORT
DEVICE_TYPE: GPU, dedicated mem
GLOBAL MEM SIZE: 5938 MB
MAX MEM ALLOC: 1484 MB
MAX IMAGE SIZE: 32768 x 32768
MAX WORK GROUP SIZE: 1024
MAX WORK ITEM DIMENSIONS: 3
MAX WORK ITEM SIZES: [ 1024 1024 64 ]
ASYNC PIXELPIPE: NO
PINNED MEMORY TRANSFER: NO
AVOID ATOMICS: NO
MICRO NAP: 250
ROUNDUP WIDTH & HEIGHT 16x16
CHECK EVENT HANDLES: 128
TILING ADVANTAGE: 0.000
DEFAULT DEVICE: NO
KERNEL BUILD DIRECTORY: /opt/darktable/share/darktable/kernels
KERNEL DIRECTORY: /home/ds/.cache/darktable/cached_v2_kernels_for_NVIDIACUDANVIDIAGeForceRTX3060LaptopGPU_52512506
CL COMPILER OPTION: -cl-fast-relaxed-math
KERNEL LOADING TIME: 0.0902 sec
[opencl_init] OpenCL successfully initialized. internal numbers and names of available devices:
[opencl_init] 0 'NVIDIA CUDA NVIDIA GeForce RTX 3060 Laptop GPU'
0.8193 [opencl_init] FINALLY: opencl is AVAILABLE and ENABLED.
[opencl_init] opencl_scheduling_profile: 'multiple GPUs'
[opencl_init] opencl_device_priority: '!0,*/!1,*/1,*/1,*'
[opencl_init] opencl_mandatory_timeout: 2000
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities] image preview export thumbs preview2
[dt_opencl_update_priorities] 0 0 0 0 0
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities] image preview export thumbs preview2
[dt_opencl_update_priorities] 0 0 0 0 0
[opencl_synchronization_timeout] synchronization timeout set to 20
[dt_opencl_update_priorities] these are your device priorities:
[dt_opencl_update_priorities] image preview export thumbs preview2
[dt_opencl_update_priorities] 0 0 0 0 0
[dt_opencl_update_priorities] show if opencl use is mandatory for a given pixelpipe:
[dt_opencl_update_priorities] image preview export thumbs preview2
[dt_opencl_update_priorities] 0 0 0 0 0
[opencl_synchronization_timeout] synchronization timeout set to 20
Generally they are more or less in sync with the distro ones, at least in my experience. As long as the user updates both at the same time, there should be no troubles. I guess the problem is with automatic updates as we see here…
Maybe, I could suggest a short paragraph for the user manual .
Something like "if your using a Flatpak version, the graphics drivers must also be available and up-to-date within the Flatpak sandbox environment. If you have checked the OpenCL function flow, loaded drivers, and device nodes.
Before going any further try a: flatpak update -y"
I’m not sure it would be merged. The user manual should be around how to use the software. Keeping your OS up to date should be out of scope. We do have a FAQ with a flatpak section, maybe something there if this is an issue others experience (frequently…).