Using darktable master with Intel OpenCL graphics? Please help!

Friends, there is a difficult issue on github HLR green artifacts with OpenCL · Issue #13632 · darktable-org/darktable · GitHub

In short: Using the highlights reconstruction inpaint opposed algorithm leads to severe color artefacts at least for one user. This issue couldn’t yet be reproduced on other (Nvidia, AMD) hardware. So we don’t know if this is

  1. something specific in the installation of the specific user
  2. some specific driver issue
  3. specific for the hardware

If you are running darktable OpenCL on an Intel device could you check this?

  1. Please remember you need an image with highlights blown out :slight_smile: Like in clouds
  2. Please report if issue or not
  3. Please report OS and Intel driver version (darktable -d opencl will tell you) for both cases in (2)
  4. The
1 Like

Could it be beneficial to pick one of the PlayRaw images so we can use the -d pipe and compare actual values?

I think @sugarbravo mentioned that he has an Intel GPU.

Perfect :slight_smile:

I’m the user mentioned in the issue. I’m happy to upload the duck pond image + xmp from the pull request for people to test with.

This file is licensed Creative Commons, By-Attribution, Share-Alike.
20190822_003649.nef (28.8 MB)
20190822_003649.nef.xmp (1.2 KB)

Hi, no issues in my case.

Specs:

Darktable 4.3.0+640~g22c9eaf9d

Distributor ID:	Linuxmint
Description:	Linux Mint 21.1
Release:	21.1
Codename:	vera

[dt_opencl_device_init]
   DEVICE:                   0: 'Intel(R) UHD Graphics 620 [0x5917]'
   CANONICAL NAME:           intelruhdgraphics6200x5917
   PLATFORM NAME & VENDOR:   Intel(R) OpenCL HD Graphics, Intel(R) Corporation
   DRIVER VERSION:           1.0.0
   DEVICE VERSION:           OpenCL 3.0 NEO 
   DEVICE_TYPE:              GPU
   GLOBAL MEM SIZE:          6137 MB
   MAX MEM ALLOC:            3069 MB
   MAX IMAGE SIZE:           16384 x 16384
   MAX WORK GROUP SIZE:      256
   MAX WORK ITEM DIMENSIONS: 3
   MAX WORK ITEM SIZES:      [ 256 256 256 ]
   ASYNC PIXELPIPE:          NO
   PINNED MEMORY TRANSFER:   WANTED
   MEMORY TUNING:            NO
   FORCED HEADROOM:          400
   AVOID ATOMICS:            NO
   MICRO NAP:                250
   ROUNDUP WIDTH:            16
   ROUNDUP HEIGHT:           16
   CHECK EVENT HANDLES:      128
   PERFORMANCE:              1.640
   TILING ADVANTAGE:         0.000
   DEFAULT DEVICE:           NO
   KERNEL DIRECTORY:         /opt/darktable-test/share/darktable/kernels
   CL COMPILER OPTION:       -cl-fast-relaxed-math

IvanB, can you post the -d pipe results in the GitHub PR for the inpaint?

Just closed this pr. Will do some more homework (docs reading …) and come back also here. Thanks for your patience

1 Like

I can see no artifacts while using OpenCL with Intel Arc A750 GPU. Kubuntu 22.10, i915 kernel module from 6.2.0-060200rc5-generic.

$ /opt/darktable/bin/darktable --version
this is darktable 4.3.0+647~g015c6fb01
copyright (c) 2009-2023 johannes hanika
https://github.com/darktable-org/darktable/issues/new/choose

compile options:
  bit depth is 64 bit
  normal build
  SSE2 optimized codepath enabled
  OpenMP support enabled
  OpenCL support enabled
  Lua support disabled
  Colord support enabled
  gPhoto2 support disabled
  GraphicsMagick support enabled
  ImageMagick support disabled
  libavif support disabled
  libheif support enabled
  libjxl support disabled
  OpenJPEG support enabled
  OpenEXR support disabled
  WebP support enabled
$ /opt/darktable/bin/darktable-cltest
     0.0172 [dt_get_sysresource_level] switched to 2 as `large'
     0.0172   total mem:       32003MB
     0.0172   mipmap cache:    4000MB
     0.0172   available mem:   21877MB
     0.0172   singlebuff:      500MB
     0.0172   OpenCL tune mem: WANTED
     0.0172   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 2 platforms
[opencl_init] no devices found for Advanced Micro Devices, Inc. (vendor) - AMD Accelerated Parallel Processing (name)
[opencl_init] found 1 device

[dt_opencl_device_init]
   DEVICE:                   0: 'Intel(R) Graphics [0x56a1]'
   CANONICAL NAME:           intelrgraphics0x56a1
   PLATFORM NAME & VENDOR:   Intel(R) OpenCL HD Graphics, Intel(R) Corporation
   DRIVER VERSION:           1.0.0
   DEVICE VERSION:           OpenCL 3.0 NEO 
   DEVICE_TYPE:              GPU
   GLOBAL MEM SIZE:          7722 MB
   MAX MEM ALLOC:            3861 MB
   MAX IMAGE SIZE:           16384 x 16384
   MAX WORK GROUP SIZE:      1024
   MAX WORK ITEM DIMENSIONS: 3
   MAX WORK ITEM SIZES:      [ 1024 1024 1024 ]
   ASYNC PIXELPIPE:          NO
   PINNED MEMORY TRANSFER:   NO
   MEMORY TUNING:            WANTED
   FORCED HEADROOM:          400
   AVOID ATOMICS:            NO
   MICRO NAP:                250
   ROUNDUP WIDTH:            16
   ROUNDUP HEIGHT:           16
   CHECK EVENT HANDLES:      128
   PERFORMANCE:              5.013
   TILING ADVANTAGE:         0.000
   DEFAULT DEVICE:           NO
   KERNEL DIRECTORY:         /opt/darktable/share/darktable/kernels
   CL COMPILER OPTION:       -cl-fast-relaxed-math
   KERNEL LOADING TIME:       0.0186 sec
[opencl_init] OpenCL successfully initialized.
[opencl_init] here are the internal numbers and names of OpenCL devices available to darktable:
[opencl_init]           0       'Intel(R) Graphics [0x56a1]'
[opencl_init] FINALLY: opencl is AVAILABLE on this system.
[opencl_init] initial status of opencl enabled flag is ON.
[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

Is that a cache invalidation issue? Does removing the kernel cache (~/.cache/darktable/cached_kernels_for_*?) hide it?

I think i have identified some problems, could you check this?