You are not logged in.

#1 2025-08-29 13:37:42

junakreiter
Member
Registered: 2024-07-12
Posts: 17

Darktable opencl rusticl

Hi There,
A year ago i could rusticl get working with darktable.
A few weeks ago rusticl had been integrated into opencl-mesa. (if i am not wrong)
A few days ago, again, opencl stopped workig with darktable.
Can somebody help me with what the problem is ?
cheers !

Offline

#2 2025-08-30 12:34:47

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,316

Re: Darktable opencl rusticl

A few weeks ago rusticl had been integrated into opencl-mesa. (if i am not wrong)

long ago mesa had one opencl implementation , clover .
When rusticl was started the name openl-mesa was taken by clover, so rusticl got another pkgname .

Recently clover was completely removed from mesa code and the opencl-mesa pkgname was free and now used for rusticl.


Darktable was updated to 2:5.2.1-2 on 2025-08-28 , is that the version you are using ?


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#3 2025-08-31 07:52:39

junakreiter
Member
Registered: 2024-07-12
Posts: 17

Re: Darktable opencl rusticl

I am using the version you mentioned.
I have to downgrade opencl-mesa to get it working again.

Offline

#4 2025-08-31 10:00:13

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,316

Re: Darktable opencl rusticl


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#5 2025-08-31 19:17:33

junakreiter
Member
Registered: 2024-07-12
Posts: 17

Re: Darktable opencl rusticl

The world goes crazy.

Gitlab login wants me to install an app on my phone for proving my identitiy.

So i am technically not able to file that bug, im sorry.

Last edited by junakreiter (2025-09-01 06:19:40)

Offline

#6 2025-08-31 19:41:47

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 8,999
Website

Re: Darktable opencl rusticl

junakreiter wrote:

Gitlab login wants me to install an app on my phone for proving my identitiy

If you're in the UK use TOR browser to avoid the recent legislation in respect of "adult" websites. Reddit also requires verification in the UK now.


Jin, Jîyan, Azadî

Offline

#7 2025-09-01 09:47:34

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,316

Re: Darktable opencl rusticl

No need for an app on a smartphone, the text is misleading.

Once you get login details from accountsupport@archlinux.org by email , all you need is something that supports OATH TOTP.
Several passwordmanagers do support that, there's a pam module for it etc.

See https://wiki.archlinux.org/title/Initia … entication


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#8 2025-09-01 17:22:56

junakreiter
Member
Registered: 2024-07-12
Posts: 17

Re: Darktable opencl rusticl

Thanks Lone_Wolf

Offline

#9 2025-09-10 10:47:35

junakreiter
Member
Registered: 2024-07-12
Posts: 17

Re: Darktable opencl rusticl

My Son found a workaround for a darktable problem:
Open darktable like this:

OPENCL_VENDOR_PATH=/etc/OpenCL/vendors/rusticl.icd darktable

Stacktrace:

#0  0x0000000000000000 in ?? ()
[Current thread is 1 (Thread 0x7f81a5ffb6c0 (LWP 8027))]
(gdb) bt --full
No symbol "full" in current context.
(gdb) bt -full
#0  0x0000000000000000 in ??? ()
#1  0x00007f81c039f1df in _dt_sigsegv_handler (param=11) at /usr/src/debug/darktable/darktable-5.2.1/src/common/system_signal_handling.c:125
        pid = <optimized out>
        name_used = 0x7f81859d5730 "U\372\205}\206\177"
        fout = <optimized out>
        delete_file = <optimized out>
        datadir = "/usr/share/darktable", '\000' <repeats 4075 times>
        pid_arg = 0x7f81859e0f10 ""
        comm_arg = 0x7f81859da380 ":\037\205}\206\177"
        logenable = 0x7f81859dea50 "\316V\206}\206\177"
        setlogfile = 0x7f81859dd9d0 "\r\r\205}\206\177"
#2  0x00007f81bfe3e540 in <signal handler called> () at /usr/lib/libc.so.6
#3  0x0000000000000000 in ??? ()
#4  0x00007f81a41dd471 in clGetPlatformInfo
    (platform=<optimized out>, param_name=<optimized out>, param_value_size=1024, param_value=0x7f81859dea70, param_value_size_ret=0x0)
    at /usr/src/debug/ocl-icd/ocl-icd-2.3.3/ocl_icd_loader_gen.c:2963
        ret = <optimized out>
#5  0x00007f81c03844c7 in dt_opencl_init (cl=0x55627121bac0, exclude_opencl=<optimized out>, print_statistics=<optimized out>)
    at /usr/src/debug/darktable/darktable-5.2.1/src/common/opencl.c:1225
        platform = <optimized out>
        n = 0
        platforms = 0x7f81859dea70 ""
        logerror = 0x0
        opencl_requested = 0
        all_platforms = 0x7f8184001f80
        all_num_devices = 0x7f8184001920
        platform_name = 0x7f8184000cd0 ""
        platform_vendor = 0x7f81840010e0 ""
        platform_key = 0x7f81840014f0 ""
        library = <optimized out>
        num_platforms = 2
        err = 0
        num_devices = <optimized out>
        devices = <optimized out>
        devs = <optimized out>
        dev = <optimized out>
#6  0x00007f81c02ce6c9 in _detect_opencl_job_run (job=<optimized out>) at /usr/src/debug/darktable/darktable-5.2.1/src/common/darktable.c:693
#7  0x00007f81c03b4f56 in _control_job_execute (job=job@entry=0x55627121d3b0)
    at /usr/src/debug/darktable/darktable-5.2.1/src/control/jobs.c:321
#8  0x00007f81c03b5658 in _control_run_job (control=0x5562710a8f80) at /usr/src/debug/darktable/darktable-5.2.1/src/control/jobs.c:336
        job = 0x55627121d3b0
#9  _control_work (ptr=<optimized out>) at /usr/src/debug/darktable/darktable-5.2.1/src/control/jobs.c:566
        params = <optimized out>
        control = 0x5562710a8f80
        name = "worker 2\000\000\000\000\000\000\000"
#10 0x00007f81bfe969cb in start_thread (arg=<optimized out>) at pthread_create.c:448
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140194812507840, -7776044639106066778, 140194812507840, 140735797256864, 11, 140735797257127, -7776044639097678170, -7776092894936918362}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#11 0x00007f81bff1aa0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb) <Quit

Offline

#10 2025-09-10 10:57:19

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,316

Re: Darktable opencl rusticl

That environment value is documented on https://man.archlinux.org/man/libOpenCL.7 .
Maybe it could be added to the gpgpu wiki page.

Please use code tags for log output to make things a lot more readable .(Edit your post to add the tags) .


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Offline

#11 2025-10-11 05:33:26

glenjo
Member
From: Pacific NW
Registered: 2020-06-09
Posts: 45

Re: Darktable opencl rusticl

I had the same problem. I switched to using ROCm from RustiCL in darktable (in preferences->processing->OpenCL drivers). This allowed OpenCL GPU acceleration to be activated.

Last edited by glenjo (2025-10-11 05:38:49)

Offline

#12 2025-10-12 10:24:23

junakreiter
Member
Registered: 2024-07-12
Posts: 17

Re: Darktable opencl rusticl

Hi!

I investigated the crash on my dads pc and this is how I solved it.

opencl-mesa darktable crash on AMD Radeon Pro W6400
local/ocl-icd 2.3.3-1
    OpenCL ICD Bindings
local/opencl-mesa 1:25.2.4-1
    Open-source OpenCL drivers
local/darktable 2:5.2.1-3
    Utility to organize and develop raw images

--> CRASH

stacktrace
#0  0x00007fffe0827a14 in _count_devices (p=0x7fff819be720) at /usr/src/debug/ocl-icd/ocl-icd-2.3.3/ocl_icd_loader.c:360
        error = <optimized out>
#1  _sort_platforms (picds=0x7fff819be720, npicds=2) at /usr/src/debug/ocl-icd/ocl-icd-2.3.3/ocl_icd_loader.c:411
        i = <optimized out>
        ocl_sort = <optimized out>
#2  0x00007fffe0828b49 in _find_and_check_platforms (num_icds=2) at /usr/src/debug/ocl-icd/ocl-icd-2.3.3/ocl_icd_loader.c:636
        i = 2
#3  __initClIcd () at /usr/src/debug/ocl-icd/ocl-icd-2.3.3/ocl_icd_loader.c:917
        num_icds = <optimized out>
        is_dir = <optimized out>
        dir = <optimized out>
        dir_path = <optimized out>
        vendor_path = <optimized out>
#4  _initClIcd_real () at /usr/src/debug/ocl-icd/ocl-icd-2.3.3/ocl_icd_loader.c:968
#5  0x00007fffe082ba3d in _initClIcd () at /usr/src/debug/ocl-icd/ocl-icd-2.3.3/ocl_icd_loader.c:997
#6  clGetPlatformIDs (num_entries=0, platforms=<optimized out>, num_platforms=<optimized out>) at /usr/src/debug/ocl-icd/ocl-icd-2.3.3/ocl_icd_loader.c:1162
        i = <optimized out>
        ret = <optimized out>
#7  0x00007ffff7984413 in dt_opencl_init (cl=0x555555d8b1e0, exclude_opencl=<optimized out>, print_statistics=<optimized out>) at /usr/src/debug/darktable/darktable-5.2.1/src/common/opencl.c:1190
        logerror = 0x7fffe51c66d0 "Plattformerkennung fehlgeschlagen. Einige mögliche Gründe:\n  - OpenCL ICD (ocl-icd) fehlt,\n  - frühere OpenCL-Fehler, die zu blockierten Geräten führen,\n  - Probleme mit der Energieverwaltung,\n  "...
        opencl_requested = 0
        all_platforms = 0x7fff80004240
        all_num_devices = 0x7fff800011a0
        platform_name = 0x7fff80000d00 ""
        platform_vendor = 0x7fff80003530 ""
        platform_key = 0x7fff80003940 ""
        library = 0x555555627dd0 ""
        num_platforms = 0
        err = <optimized out>
        num_devices = <optimized out>
        devices = <optimized out>
        devs = <optimized out>
        dev = <optimized out>
#8  0x00007ffff78ce6c9 in _detect_opencl_job_run (job=<optimized out>) at /usr/src/debug/darktable/darktable-5.2.1/src/common/darktable.c:693
#9  0x00007ffff79b4f56 in _control_job_execute (job=job@entry=0x555555d65b40) at /usr/src/debug/darktable/darktable-5.2.1/src/control/jobs.c:321
#10 0x00007ffff79b5658 in _control_run_job (control=0x555555d426b0) at /usr/src/debug/darktable/darktable-5.2.1/src/control/jobs.c:336
        job = 0x555555d65b40
#11 _control_work (ptr=<optimized out>) at /usr/src/debug/darktable/darktable-5.2.1/src/control/jobs.c:566
        params = <optimized out>
        control = 0x555555d426b0
        name = "worker 6\000\000\000\000\000\000\000"
#12 0x00007ffff74969cb in start_thread (arg=<optimized out>) at pthread_create.c:448
        ret = <optimized out>
        pd = <optimized out>
        out = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140734585886400, -4078083536686932186, 140734585886400, 140737488328384, 11, 140737488328647, -4078083536695320794, -4078299947543290074}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#13 0x00007ffff751aa0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
fix ocl-icd crash

Updated PKGBUILD for ocl-icd to use the 2.3.4 tag which fixes some memory corruption in the _sort_platforms.

new stacktrace
#0  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<true>
    (this=this@entry=0x7fff89fdd840, __str=0x7fff89 <error: Cannot access memory at address 0x7fff89>, __n=0)
    at /usr/include/c++/15.2.1/bits/basic_string.tcc:298
#1  0x00007fffe1783a48 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string
    (this=0x7fff89fdd840, __str="", this=<optimized out>, __str=<optimized out>) at /usr/include/c++/15.2.1/bits/basic_string.h:238
#2  spvtools::LinkerOptions::GetFnVarArchitecturesCsv[abi:cxx11]() const (this=0x7fff89fddfb3, this=<optimized out>)
    at /usr/src/debug/spirv-tools/SPIRV-Tools/include/spirv-tools/linker.hpp:76
#3  spvtools::Link
    (context=..., binaries=binaries@entry=0x7fff59ae82c0, binary_sizes=binary_sizes@entry=0x7fff59e267f0, num_binaries=<optimized out>, linked_binary=linked_binary@entry=0x7fff89fddfe0, options=...) at /usr/src/debug/spirv-tools/SPIRV-Tools/source/link/linker.cpp:858
#4  0x00007fffe1787b0f in spvtools::Link (context=..., binaries=<optimized out>, linked_binary=0x7fff89fddfe0, options=...)
    at /usr/src/debug/spirv-tools/SPIRV-Tools/source/link/linker.cpp:820
#5  0x00007fff3c2f3270 in clc_link_spirv_binaries () at ../mesa-25.2.4/src/compiler/clc/clc_helpers.cpp:1337
#6  0x00007fff3c2f0456 in clc_link_spirv () at ../mesa-25.2.4/src/compiler/clc/clc.c:146
#7  0x00007fff3b9c989e in mesa_rust::compiler::clc::spirv::SPIRVBin::link (spirvs=..., library=false)
    at ../mesa-25.2.4/src/gallium/frontends/rusticl/mesa/compiler/clc/spirv.rs:198
#8  0x00007fff3b8b526b in rusticl::core::program::Program::build (self=0x7fff5800bd70, devs=..., options=...)
    at ../mesa-25.2.4/src/gallium/frontends/rusticl/core/program.rs:580
#9  0x00007fff3b8bf96c in rusticl::api::program::build_program
    (program=0x7fff5800bdc0, num_devices=1, device_list=0x7fff599e5298, options=0x7fff599d6220, pfn_notify=..., user_data=0x0)
    at ../mesa-25.2.4/src/gallium/frontends/rusticl/api/program.rs:340
#10 0x00007fff3b8bf624 in rusticl::api::program::clBuildProgram
    (program=0x7fff5800bdc0, num_devices=1, device_list=0x7fff599e5298, options=0x7fff599d6220, pfn_notify=..., user_data=0x0)
    at ../mesa-25.2.4/src/gallium/frontends/rusticl/api/program.rs:316
#11 0x00007fffe0821ebf in clBuildProgram
    (program=<optimized out>, num_devices=<optimized out>, device_list=0x7fff599e5298, options=0x7fff599d6220 "-w  -DAMD=1 -I\"/usr/share/darktable/kernels\"", pfn_notify=0x0, user_data=0x0) at /usr/src/debug/ocl-icd/ocl-icd-2.3.4/ocl_icd_loader_gen.c:3361
#12 0x00007ffff79835a2 in _opencl_build_program
    (dev=<optimized out>, prog=<optimized out>, binname=<optimized out>, cachedir=<optimized out>, md5sum=0x7fff89fde9c0 "a1a41ed12103e82126d1800e8ffc0457", loaded_cached=0) at /usr/src/debug/darktable/darktable-5.2.1/src/common/opencl.c:2375
#13 _opencl_device_init (cl=cl@entry=0x555555d69930, dev=dev@entry=0, devices=devices@entry=0x7fff599e29c0, k=k@entry=0)
    at /usr/src/debug/darktable/darktable-5.2.1/src/common/opencl.c:1057
#14 0x00007ffff798513e in dt_opencl_init (cl=<optimized out>, exclude_opencl=<optimized out>, print_statistics=<optimized out>)
    at /usr/src/debug/darktable/darktable-5.2.1/src/common/opencl.c:1384
#15 0x00007ffff78ce6c9 in _detect_opencl_job_run (job=<optimized out>) at /usr/src/debug/darktable/darktable-5.2.1/src/common/darktable.c:693
#16 0x00007ffff79b4f56 in _control_job_execute (job=job@entry=0x555555a44c60)
    at /usr/src/debug/darktable/darktable-5.2.1/src/control/jobs.c:321
#17 0x00007ffff79b5658 in _control_run_job (control=0x555555d41a00) at /usr/src/debug/darktable/darktable-5.2.1/src/control/jobs.c:336
#18 _control_work (ptr=<optimized out>) at /usr/src/debug/darktable/darktable-5.2.1/src/control/jobs.c:566
#19 0x00007ffff74969cb in start_thread (arg=<optimized out>) at pthread_create.c:448
#20 0x00007ffff751aa0c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78

Try out mesa-git -> FIXED

TLDR:
- ocl-icd 2.3.4 was already released and fixes the startup problem. It has not arrived in the arch repos yet though.
- mesa-git fixes the second crash so it should fix itself  in the next release cylce probably.

CHEERS, Max.

Offline

Board footer

Powered by FluxBB