Is Intel HD Graphics 5500 blacklisted?

Is Intel HD Graphics 5500 blacklisted?

I am playing with darktable 5.4 and an old notebook.

I see:

OpenCL -> ENABLED

and

[opencl_init] FINALLY: opencl PREFERENCE=OFF is NOT AVAILABLE and NOT ENABLED.

Since I cannot enable it in the dt-settings, I assume the card is blacklisted. Does it make sense to enable it, as I did with another pc and another Intel-card?

$ lspci -nnk | grep -A3 "\[03..\]:" 
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 5500 [8086:1616] (rev 09)
	DeviceName:  Onboard IGD
	Subsystem: Dell Device [1028:062c]
	Kernel driver in use: i915
$ darktable-cltest 
darktable 5.4.0
Copyright (C) 2012-2025 Johannes Hanika and other contributors.

Compile options:
  Bit depth              -> 64 bit
  Exiv2                  -> 0.28.5
  Lensfun                -> 0.3.4
  Debug                  -> DISABLED
  SSE2 optimizations     -> ENABLED
  OpenMP                 -> ENABLED
  OpenCL                 -> ENABLED
  Lua                    -> ENABLED  - API version 9.6.0
  Colord                 -> ENABLED
  gPhoto2                -> ENABLED
  OSMGpsMap              -> ENABLED  - map view is available
  GMIC                   -> ENABLED  - Compressed LUTs are supported
  GraphicsMagick         -> ENABLED
  ImageMagick            -> DISABLED
  libavif                -> DISABLED
  libheif                -> ENABLED
  libjxl                 -> ENABLED
  LibRaw                 -> ENABLED  - Version 0.22.0-PreRC1
  OpenJPEG               -> ENABLED
  OpenEXR                -> ENABLED
  WebP                   -> ENABLED

See https://www.darktable.org/resources/ for detailed documentation.
See https://github.com/darktable-org/darktable/issues/new/choose to report bugs.

     0.6479 [opencl_init] opencl disabled via darktable preferences
     0.6480 [dt_dlopencl_init] could not find default opencl runtime library 'libOpenCL'
     0.6481 [dt_dlopencl_init] could not find default opencl runtime library 'libOpenCL.so'
     0.6483 [opencl_init] opencl library 'libOpenCL.so.1' found on your system and loaded, preference 'default path'
     0.6483 [opencl_init] 0 platforms detected, error: Unknown OpenCL error
     0.6483 [opencl_init] FINALLY: opencl PREFERENCE=OFF is NOT AVAILABLE and NOT ENABLED.

The OpenCL drivers for old Intel stuff are bad. So yes.

2 Likes

Thanks for clarifying:

$ darktable-cli setubal.orf setubal.orf.xmp setubal.jpg --core -d perf -d opencl
darktable 5.4.0
...
    80.1067 [dev_process_export] pixel pipeline processing took 77.330 secs (263.820 CPU)
    81.7701 [export_job] exported to `setubal.jpg'

The difference is extreme, same test with dt 5.4

     2.7859 [dev_process_export] pixel pipeline processing took 1.592 secs (2.468 CPU)
     3.5573 [export_job] exported to `setubal.jpg'
 [opencl_summary_statistics] device 'Intel(R) OpenCL Graphics Intel(R) Arc(TM) B580 Graphics' id=0: 197 out of 197 events were successful and 0 events lost. max event=196
1 Like

Yes, OpenCL makes a big difference.

1 Like

Of course, but it looks the age of the cpu is very important too.

$ darktable-cli setubal.orf setubal.orf.xmp setubal.jpg --core -d perf -d opencl
output file already exists, it will get renamed
darktable 5.4.0

  OpenCL                 -> ENABLED

     0,1547 [opencl_init] FINALLY: opencl PREFERENCE=OFF is NOT AVAILABLE and NOT ENABLED.

    13,1916 [dev_process_export] pixel pipeline processing took 11,153 secs (145,900 CPU)
    13,9985 [export_job] exported to `setubal_02.jpg'

In comparison, this is a lot faster, although no opencl too.

you might try disabling blacklisting in the preferences:
opencl_disable_drivers_blacklist=FALSE

or if your gpu is detected then manually set the 8th parameter to 0:
eg: cldevice_v5_appleapplem1max=0 250 0 16 16 128 0 0 0.000 0.000 0.250

if it works, then fine …

2 Likes

I have this already

~/.config/darktable$ cat darktablerc | grep -i opencl
cldevice_v5_intelropenclgraphicsintelrarctmb580graphics=0 250 0 16 16 128 0 0 0.000 0.000 0.250
cldevice_v5_intelropenclgraphicsintelrarctmb580graphics_building=
cldevice_v5_intelropenclgraphicsintelrarctmb580graphics_id0=600
clplatform_intelropenclhdgraphics=FALSE
clplatform_openclon12=FALSE
opencl=FALSE
opencl_checksum=4047856555
opencl_device_priority=/!0,///!0,*
opencl_library=
opencl_mandatory_timeout=1000
opencl_scheduling_profile=very fast GPU
opencl_tune_headroom=FALSE

For me it doesn’t look blacklistet, because I see “0”.

Don’t know where I can change this.

WIth the settings in dt I cannot activate opencl.

  1. Do you have opencl installed on your system? It says: no platforms detected!
  2. Likely also not enough opencl memory.
  3. The intel driver on those boards seems to have stopped opencl support a while ago.
1 Like

Thanks, this was a very good question…

I now did:

apt install intel-opencl-icd

I had some info re opencl before, but now I have:

$ clinfo -l
Platform #0: Intel(R) OpenCL Graphics
 `-- Device #0: Intel(R) HD Graphics 5500

with more details:

$ clinfo -a | grep -i 'name\|vendor\|version\|profile'
  Platform Name                                   Intel(R) OpenCL Graphics
  Platform Vendor                                 Intel(R) Corporation
  Platform Version                                OpenCL 3.0 
  Platform Profile                                FULL_PROFILE
  Platform Extensions with Version                cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
  Platform Numeric Version                        0xc00000 (3.0.0)
  Platform Name                                   Intel(R) OpenCL Graphics
  Device Name                                     Intel(R) HD Graphics 5500
  Device Vendor                                   Intel(R) Corporation
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 3.0 NEO 
  Device Numeric Version                          0xc00000 (3.0.0)
  Driver Version                                  24.35.030872
  Device OpenCL C Version                         OpenCL C 1.2 
  Device OpenCL C all versions                    OpenCL C                                                         0x400000 (1.0.0)
  Device Profile                                  FULL_PROFILE
    IL version                                    SPIR-V_1.3 SPIR-V_1.2 SPIR-V_1.1 SPIR-V_1.0 
    ILs with version                              SPIR-V                                                           0x403000 (1.3.0)
    SPIR versions                                 1.2 
  Built-in kernels with version                   (n/a)
  Motion Estimation accelerator version (Intel)   0
    Device-side AVC Motion Estimation version     0
  Device Extensions with Version                  cl_khr_byte_addressable_store                                    0x400000 (1.0.0)
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  Intel(R) OpenCL Graphics
    Platform Name                                 Intel(R) OpenCL Graphics
    Device Name                                   Intel(R) HD Graphics 5500
    Platform Name                                 Intel(R) OpenCL Graphics
    Device Name                                   Intel(R) HD Graphics 5500
    Platform Name                                 Intel(R) OpenCL Graphics
    Device Name                                   Intel(R) HD Graphics 5500
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.3.3
  ICD loader Profile                              OpenCL 3.0

I could change the settings now:

I see now opencl enabled, but:

[opencl_init] OpenCL successfully initialized. internal numbers and names of available devices:
[opencl_init]		0	'Intel(R) OpenCL Graphics Intel(R) HD Graphics 5500'
     0.1922 [opencl_init] FINALLY: opencl PREFERENCE=ON is AVAILABLE and ENABLED.

It took over 6min for 1 setubal-test-photo.

   380.0186 [dev_process_export] pixel pipeline processing took 375.652 secs (539.241 CPU)
   382.7302 [export_job] exported to `setubal_04.jpg'
 [opencl_summary_statistics] device 'Intel(R) OpenCL Graphics Intel(R) HD Graphics 5500' id=0: 20 out of 32 events were successful and 0 events lost. max event=31, clmem runtime problem

So the first time with about 80sec was really fast, compared.

I see again and again:

CL_OUT_OF_RESOURCES

Please check the attached log. Maybe you have a configuration advice.

darktable-cli_intel_hd_graphics_5500.txt (20.2 KB)

The challenge is to get faster than

[opencl_init] 0 ‘Intel(R) OpenCL Graphics Intel(R) HD Graphics 5500’
0.2193 [opencl_init] FINALLY: opencl PREFERENCE=OFF is AVAILABLE and NOT ENABLED.

**85.1250** [dev_process_export] pixel pipeline processing took **80.617** secs (258.043 CPU)
87.8256 [export_job] exported to `setubal.jpg'

[opencl_summary_statistics] device 'Intel(R) OpenCL Graphics Intel(R) HD Graphics 5500’ id=0: NOT utilized

Full log attached.

The notebook has 8GB RAM. It didn’t help to allow dt to use all RAM:

darktable-cli_no-opencl_latitude_e5550.txt (8.5 KB)

that’s the main issue - it’s jut not enough memory to be shared between cpu and gpu.

1 Like

I think there can be done some optimization. See https://pixls-discuss.s3.dualstack.us-east-1.amazonaws.com/original/3X/1/d/1d2cd90391e69029f96c819af9ce0a848273aaa1.txt

GLOBAL MEM SIZE: 6886 MB
MAX MEM ALLOC: 2048 MB

darktable 4.6 user manual - memory & performance tuning explains a lot, but I don’t understand how to use it.


$ cat darktablerc | grep cldevice_v5
cldevice_v5_intelropenclgraphicsintelrarctmb580graphics=0 250 0 16 16 128 0 0 0.000 0.000 0.250
cldevice_v5_intelropenclgraphicsintelrarctmb580graphics_building=
cldevice_v5_intelropenclgraphicsintelrarctmb580graphics_id0=600
cldevice_v5_intelropenclgraphicsintelrhdgraphics5500=0 250 0 16 16 128 0 0 0.000 0.000 0.250
cldevice_v5_intelropenclgraphicsintelrhdgraphics5500_building=
cldevice_v5_intelropenclgraphicsintelrhdgraphics5500_id0=600

cldevice_v5_intelropenclgraphicsintelrarctmb580graphics=0 250 0 16 16 128 0 0 0.000 0.000 0.250

and

cldevice_v5_intelropenclgraphicsintelrhdgraphics5500=0 250 0 16 16 128 0 0 0.000 0.000 0.250

have options which could be changed, but I have no idea which of the 2 and which parameters.

IMHO maybe it makes sense to increase MAX MEM ALLOC, how?

Indeed. What can be done?

No idea, but maybe this helps too:

usable_memory = (total_memory - headroom) * opencl_memory / 1024

Don’t understand what you are looking for. BUT as mentioned, you have shared memory and your OS plus other apps running plus dt require system memory, the very minimum being 4GB - we suggest 8GB.

Opencl memory requires to be at least 2GB so you could set that , i don’t know how you did your system settings at all. BUT honestly it’s simply not worth it. the 5500 opencl was very slow and overall the decreased system memory leads to more processing on CPU so there will be no advantage. Sorry

1 Like

That’s the point. I think there should be more memory allocated, like 3-4GB for opencl.

Nearly everything is default. I didn’t enter a value for memory usage.

You cant change max mem alloc, thats what the driver defines.

the global mem is somewhat surprising to me. any bios setting tuned.

If you are further trying to “tune” on your system i guess you should get more familiar with opencl in general. This is not a dt problem at all. I myself have such an old notebook and stopped using opencl as it is simply not worth it.

1 Like

Ok, that I didn’t know. I am giving this notebook away as a present and it should be configured correctly. It is fine for browsing and office-typing.

Good idea to check this. I am pretty sure it has default settings after a firmware update. Maybe there is something like “gaming” and “max. power safe” which influences the dt result.

I agree with you. I exchanged the notebook with a minipc.

The new user wouldn’t use the noetebook for dt normally, but sometimes it coud be.