From 90d1aaf94b68d775ba7b5b029a5d9bd4056769bb Mon Sep 17 00:00:00 2001 From: David Smith Date: Wed, 5 Aug 2026 13:27:44 +0100 Subject: [PATCH] Add doc for OpenCL nocl option --- content/special-topics/mem-performance.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/content/special-topics/mem-performance.md b/content/special-topics/mem-performance.md index ddeea89b68..c9f2602a68 100644 --- a/content/special-topics/mem-performance.md +++ b/content/special-topics/mem-performance.md @@ -139,6 +139,8 @@ f. advantage hint 1. Check the execution times of this module with OpenCL on and off (by running `darktable -d perf` to examine the performance). 1. Set the "advantage hint option" to approximately (CPU execution time / GPU execution time). +The advantage hint value is ignored from 5.8 onwards, and can be set to 0 to avoid confusion. + g. shared memory fraction : Some OpenCL devices don't have dedicated memory but share it with the CPU -- Apple ARM silicon is one example but also onboard devices from Intel, AMD or ARM SOCs. As we want to keep system memory available for caching or CPU codepaths we restrict the amount of all memory used to the given fraction. So with the default of 0.5 and an Apple computer with 16GB of system RAM, OpenCL would be able to make use of 8GB. @@ -148,6 +150,19 @@ g. shared memory fraction --- + +## device-specific OpenCL disabling + +From 5.8 onwards, it is possible to disable an OpenCL device for specific modules by adding a comma-separated list of modules to the _nocl_ option in the _darktablerc_ file, for example: + +`cldevice_v6_rusticlamdradeon8060sgraphics_nocl=colorbalancergb,denoiseprofile` + +or, more generally + +`cldevice_version_canonicalname_nocl=comma,separated,list,of,modules` + +Any module in this list will be executed on the CPU instead of OpenCL. + ## id-specific OpenCL configuration A second device-specific configuration key is also provided, which takes into account both the device name **and** the device id (in case you have two identical devices). In this case, the usual key name `cldevice_version_canonicalname` is followed by `_idX` with X being the device id. For example, if the above example device was referred to as device 0, the second configuration setting would (by default) be `cldevice_v5_quadrortx4000_id0=600`.