Make darktable OpenCL support work on Clover and RadeonSI
Submitted by myfreeweb
Assigned to mes..@..op.org
Hi everyone, I've tried to get the darktable photo editor https://www.darktable.org to work, and there's more to it than image support...
First, I've picked up funfunctor's patches (mentioned in bug 99553), they applied cleanly to master (except for the little one-line "= 1" since the r600/radeonsi split happened, but that was trivial to fix). My branch with them is https://github.com/myfreeweb/mesa/tree/clover-image
Second, there was some weird mismatch between libclc's headers and darktable's code, and I've had to do:
on all files in PREFIX/share/darktable/kernels.
Third, the liquify.cl kernel triggered the https://bugs.llvm.org/show_bug.cgi?id=36679 crash (which is fixed in llvm 7... but I just removed the function body to proceed without this particular effect)
And finally, with all kernels compiled, darktable benchmarked CPU vs GPU and found the CPU to be a bit faster (yay for Ryzen) and disabled OpenCL usage.
Enabling OpenCL usage in the settings and then double clicking on an image... uhh... hard locked the GPU :D
drmn0: GPU fault detected: 147 0x05004402 drmn0: VM_CONTEXT1_PROTECTION_FAULT_ADDR 0x005000A0 drmn0: VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x08044002 drmn0: VM fault (0x02, vmid 4) at page 5243040, read from 'TC5' (0x54433500) (68)
P.S. system info: AMD Radeon RX 480, FreeBSD 12-CURRENT / drm-next-kmod 4.15 (DRM 3.23.0) with amdgpu.dc=1, LLVM 6.0.0, Mesa with patches on top of git rev c2ae9b40, libclc git rev c45b9dfe5257, darktable 2.4.4.