OpenCL oddness on Framework Laptop (AMD)

I just got a Framework 13 AMD 7840U (64GB RAM 2TB nvme) and I loaded Arcolinux on it (6.6.x Liquorix kernel) and the rocm-opencl-runtime which darktable recognizes. Everything is hunky-dory until I export images.

I add a watermark to my images (simple-text-shadow) and this happens:

If I disable OpenCL, it renders correctly.

If I switch to simple-text, it renders correctly with OpenCL enabled.


Apparently this is an issue with the simple-text-shadow watermark.

This is usually a driver issue. Not much we can do about it.

So ping the maintainer of rocm-opencl-runtime?

People usually have to use the proprietary AMD driver for OpenCL.

rocm-opencl-runtime is the proprietary driver. I have posted an issue on their GitHub page.

Ah sorry. I’m an Nvidia user.

AMDGPU-PRO should be the proprietary, right?

amdgpu-pro is the full suite that includes legacy hardware. rocm-opencl-runtime is for modern hardware and contains only the bits for OpenCL and is designed to run alongside the kernel drivers.

1 Like

rocm seems to have a dodgy history with OpenCL. If it works for you, that’s great, but if its giving you errors, that’s not surprising.

I’m getting this laptop as well, but I’m in batch 8, so I still have a few weeks until it ships.

That’s because dt always used the legacy OpenCL code. AMD is not updating that code for the newer GPU’s. rocm is the way of the future the way Wayland is (too many "way"s). There is another AUR package called opencl-amd that implements the legacy OpenCL bits, but dt locks up on the Framework if I install them.

Happy I happened to read this thread, since I am shopping for a new laptop. I hadn’t heard of Framework before, but it sounds really well thought out. Just wish they were using Nvidia graphics cards.

I feel like if this sort of form factor catches tractions the big boys will just copy it and a startup like that might suffer

works fine here on a 6700xt using AUR (en) - opencl-amd and latest git

you could post the debug output of darktable -d opencl

The “gpu” here is equivalent to Intel’s iGPU type of thing.

If the big boys do it then framework has won.

1 Like

Here you go (this is with the rocm-opencl-runtime drivers):

     0.0614 [dt_get_sysresource_level] switched to 1 as `default'
     0.0614   total mem:       63494MB
     0.0614   mipmap cache:    7936MB
     0.0614   available mem:   31747MB
     0.0614   singlebuff:      496MB
     0.0614   OpenCL tune mem: OFF
     0.0614   OpenCL pinned:   OFF
[opencl_init] opencl related configuration options:
[opencl_init] opencl: ON
[opencl_init] opencl_scheduling_profile: 'very fast GPU'
[opencl_init] opencl_library: 'default path'
[opencl_init] opencl_device_priority: '*/!0,*/*/*/!0,*'
[opencl_init] opencl_mandatory_timeout: 400
[opencl_init] opencl library 'libOpenCL' found on your system and loaded
[opencl_init] found 1 platform
[opencl_init] found 1 device

[dt_opencl_device_init]
   DEVICE:                   0: 'gfx1103'
   PLATFORM NAME & VENDOR:   AMD Accelerated Parallel Processing, Advanced Micro Devices, Inc.
   CANONICAL NAME:           amdacceleratedparallelprocessinggfx1103
   DRIVER VERSION:           3590.0 (HSA1.1,LC)
   DEVICE VERSION:           OpenCL 2.0 
   DEVICE_TYPE:              GPU
   GLOBAL MEM SIZE:          512 MB
   MAX MEM ALLOC:            384 MB
   MAX IMAGE SIZE:           16384 x 16384
   MAX WORK GROUP SIZE:      256
   MAX WORK ITEM DIMENSIONS: 3
   MAX WORK ITEM SIZES:      [ 1024 1024 1024 ]
   ASYNC PIXELPIPE:          NO
   PINNED MEMORY TRANSFER:   NO
   MEMORY TUNING:            NO
   FORCED HEADROOM:          400
   AVOID ATOMICS:            NO
   MICRO NAP:                250
   ROUNDUP WIDTH:            16
   ROUNDUP HEIGHT:           16
   CHECK EVENT HANDLES:      128
   PERFORMANCE:              1.388
   TILING ADVANTAGE:         0.000
   DEFAULT DEVICE:           NO
   KERNEL BUILD DIRECTORY:   /usr/share/darktable/kernels
   KERNEL DIRECTORY:         /home/guru/.cache/darktable/cached_v1_kernels_for_AMDAcceleratedParallelProcessinggfx1103_35900HSA11LC
   CL COMPILER OPTION:       -cl-fast-relaxed-math
   KERNEL LOADING TIME:       0.0280 sec
[opencl_init] OpenCL successfully initialized. Internal numbers and names of available devices:
[opencl_init]		0	'AMD Accelerated Parallel Processing gfx1103'
[opencl_init] FINALLY: opencl is AVAILABLE and ENABLED.
[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]		1	1	1	1	1
[opencl_synchronization_timeout] synchronization timeout set to 0
[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]		1	1	1	1	1
[opencl_synchronization_timeout] synchronization timeout set to 0
     2.3519 [lib_load_module] failed to open `midi': libportmidi.so.2: cannot open shared object file: No such file or directory

I don’t know that this is enough to be useful.

How does one adjust that? And to what values?

The 16" model has the option of:

Radeon™ RX 7700S
32 compute units
100W TGP
8GB 18Gbps GDDR6 memory
USB-C port with DP Alt Mode

I’m sure you already knew that, but figured I’d mention it for the benefit of others following along.

The 16" model also claims 100% DCI-P3 coverage for the display.

I don’t think you can, currently. Love to be wrong tho.

See if you can via BIOS.