darktable, windows, Intel Iris and Opencl

Yet another thread about opencl. Since the other threads are a bit old now, and mostly focused on Linux I thought I’d start a new one just for windows.

So. I got a new laptop recently. An Acer Swift 3X with an i5 and Iris Xe Max graphics. I’ve installed dt 3.4 for now, and have gotten opencl working by following these steps - https://www.photo.buet.us/post/darktable-can-t-activate-opencl.

General speed is a lot faster than on my earlier desktop that had a 1050 ti. Exports are about 50% faster.

But as seen in the task manager, only one gpu is being used. Is there any way to enable use of both gpus?

0.973443 [opencl_init] opencl: 1
0.973443 [opencl_init] opencl_scheduling_profile: ‘multiple GPUs’
0.973443 [opencl_init] opencl_library: ‘’
0.973443 [opencl_init] opencl_memory_requirement: 768
0.973443 [opencl_init] opencl_memory_headroom: 400
0.973443 [opencl_init] opencl_device_priority: ‘/!0,///!0,*’

2.253248 [opencl_init] found 2 platforms
2.253248 [opencl_init] found 2 devices
2.253248 [opencl_init] device 0 Intel(R) Iris(R) Xe Graphics' supports image sizes of 16384 x 16384 2.253248 [opencl_init] device 0 Intel(R) Iris(R) Xe Graphics’ allows GPU memory allocations of up to 3235MB
[opencl_init] device 0: Intel(R) Iris(R) Xe Graphics
GLOBAL_MEM_SIZE: 6472MB
MAX_WORK_GROUP_SIZE: 256
MAX_WORK_ITEM_DIMENSIONS: 3
MAX_WORK_ITEM_SIZES: [ 256 256 256 ]
DRIVER_VERSION: 27.20.100.9040
DEVICE_VERSION: OpenCL 3.0 NEO

2.396323 [opencl_init] device 1 Intel(R) Iris(R) Xe MAX Graphics' supports image sizes of 16384 x 16384 2.396323 [opencl_init] device 1 Intel(R) Iris(R) Xe MAX Graphics’ allows GPU memory allocations of up to 1569MB
[opencl_init] device 1: Intel(R) Iris(R) Xe MAX Graphics
GLOBAL_MEM_SIZE: 3139MB
MAX_WORK_GROUP_SIZE: 256
MAX_WORK_ITEM_DIMENSIONS: 3
MAX_WORK_ITEM_SIZES: [ 256 256 256 ]
DRIVER_VERSION: 27.20.100.9040
DEVICE_VERSION: OpenCL 3.0 NEO

1 Like

I think you need to edit opencl_device_priority in darktablerc. Have a look at the opencl chapter in the manual.

My device priority is set to /!0,///!0,* - that’s 5 different fields. The 3.4 manual only mentions 4 fields, viz center image, preview, export and thumbnail. Also, since there is no !1 anywhere, I guess the Xe Max gpu should be used. Need to do some more digging into this.

I think the 5th is for the second preview window, in case you put that on a second screen.
Something is wrong in your settings. Exclude the weaker GPU from processing the center image.

Note that darktable does not run the export queue in parallel, so only one picture is exported and one GPU is used at a time.

A better check of both GPUs working would be to do some heavy darkroom work while you export some pictures.

Ohh ok. Will test this further.

I wanted to enable OpenCL but the link on the original post is not working at the moment, so I’m posting here the relevant info in the case of some other user also wants to enable OpenCL on a laptop with Intel Iris Xe (it wasn’t an obvious solution to me)

The problem is because the driver NEO is blacklisted, to solve it:

  • Edit the darktablerc config file (On windows, it is in the directory C:\Users[yourname]\AppData\Local\darktable)
  • Change the line: opencl_disable_drivers_blacklist=FALSE by replacing the FALSE with TRUE opencl_disable_drivers_blacklist=TRUE
  • Open darktable, OpenCL should be activated.

It worked for me and darktable is noticeable faster.

A bit offtopic but these intel Xe GPU’s seem to be pretty promising when it comes to compute. Specially pleasant when it comes to efficiency in laptops, and the added bonus of open source drivers included in mesa is just the cherry on top of the cake.

Which version of darktable are you using? What os?

@hatsnp could you post your clinfo output please?

Did you mean @zhopudey?

No, in fact i meant you and @juan as i am basically interested how the official intel device name is. EDIT got it from further above this thread …

1 Like

Got it! Unfortunately I don’t have an intel gpu at the moment, was speaking based on some reviews and benchmarks I’ve been reading.

Darktable 3.8.1 on Windows 11 Home Edition

I saw this thread and that was one of the first things that came to mind:
common/opencl_drivers_blacklist: Only blacklist NEO on Windows by Entropy512 · Pull Request #2797 · darktable-org/darktable · GitHub - Support for OpenCL on recent Intel IGA under Windows 10 with Intel NEO drivers · Issue #5054 · darktable-org/darktable · GitHub was branched out of that

Looks like there was subsequent traffic on removing the blacklist for Windows too, but obviously that hasn’t actually happened yet.

Considering it’s an affordable, integrated gpu yes, it is. And the fan on my laptop is almost always at minimum speed.

1 Like

Indeed. There are also some Xe(Arc) dedicated gpu’s coming out soon, if they don’t get delayed again. Might be a good alternative to AMD on Linux. I currently use an rtx 3080 but wouldn’t buy again. Can’t get any DE to run smoothly enough, while my older rx380 and vega64 had no problems.

Nvidia published Ampare firmware(30XX) today, so hopefully this will get better. I have a 3060 and getting fedora to work was not ideal.

1 Like

If you are willing to help testing, then we might be able to remove it from the blacklist. Try to stress your system to force OpenCL usage (d&s module). Make sure it is used via -d opencl. If it is working an stable, then propose the removal via GitHub Issue.

If you want, the current master has a a few improvement to OpenCL, so testing with the current master would be more helpful.

Wow… was not expecting that. I read yesterday that they open sourced the Tegra X1 drivers, but thought it wouldn’t get too far. Hopefully this is the start of a new era for nvidia open sourced drivers. They have to compete with amd/intel after all, specially with cloud computing becoming so popular.