I don’t know about the MX150, but it isn’t exactly specified as to what your CPU/iGPU is.
I can tell you that, on an i5-7200U (midrange mobile Kaby Lake), which I THINK is designated as “620”:
OpenCL is roughly 4x faster than CPU for a compute-intensive pipeline with Intel’s NEO drivers
Darktable blacklists this particular combination for OpenCL usage due to a bugreport that (eventually) traced back to improper caching of compiled OCL kernels by Darktable
The above are based on my experiences on Linux (Ubuntu 19.04 on i5-7200U). There have been implications that the Windows versions of Intel’s “NEO” driver are less mature/stable.
I plan on submitting a pull request later this week to un-blacklist the NEO drivers at least on non-Windows machines.
Inspired by this thread I have had a closer look at my laptop.
I have a HP laptop running windows 10 and Darktable 2.6.2 equipped with 2 GPUs: Intel HD Graphics Family and NVIDIA GeForce GTX 850M. NVIDIA is the fastest.
Using the default setup - opencl_device_priority= star/!0,star/star/star - Darktable primarily use Intel except for export in which case NVIDIA is used exclusively. I type “star” instead of “*” to make sure the text is correct.
When I start Darktable with “darktable –d opencl” no screen output is visible, the output seems to be overwritten at once. I assume that Intel is no. 0 and NVIDIA is no. 1. I can’t figure out how to make the output visible. Can anyone help?
Inspired by the example in the 2.4 manual I have tried the following setting: !0,star
/!1,star/1,star/1,star which results in more use of NVIDIA, but Intel is still the preferred GPU.
I have tested many different settings but have not been able to make Darktable use NVIDIA primarily. In some cases Darktable just give up and use Intel exclusively. This is also the case when I use the setup: 1,!0/!0,!1/1,!0/1,!0 - NVIDIA is not used!
I seems to me that Darktable is not working as described in the manual in respect to device priority.
When you say “output” - do you mean DT is not displaying on the screen? Or are you not seeing debug output? That’s strange, unless you’re directly running darktable instead of first running “cmd” and then running darktable from within a command prompt.
Not sure… I almost never fire up my Windows partition and don’t run DT on it. I guess on Windows Intel must have some sort of closed-source compute runtime other than Beignet and NEO, as Beignet remains blacklisted on all platforms (I’m not going to try and have this changed, anyone who is running hardware not supported by NEO is likely running hardware that will be simply problematic for OpenCL) and NEO remains blacklisted under Windows (someone else will have to take more data to show that NEO on Windows is OK - given that NEO is only formally released for Ubuntu-based distributions, Windows + NEO is a huge unknown. It may turn out that it too was unfairly blacklisted due to darktable’s kernel caching issues, but I was only comfortable removing the blacklist for platforms I personally tested.)
Using the command prompt to start darktable:
C:“Program Files”\darktable\bin\darktable.exe -d opencl
results in no output on the display or maybe it is overwritten at once? But Darktable starts.
Good catch on that one… I missed that subtlety. Although at least in Linux, that extra “bogus” commandline argument (of the program name getting repeated) seems to get ignored when I try it.
I’m wondering if this is some sort of strange windows-ism…
I’d also add that if is a laptop, then you likely have switchable graphics, meaning you can alternate between the Intel and nvidia cards (and the system may automatically switch between them). I’d make sure the nvidia card is forced on while doing this.
You can try installing and running Microsoft DebugView. That is how I get debug info from digiKam on Windows. Just run DebugView in parallel and see if darktable prints anything in there.
It’s an official “release” how do I know if debug is enabled or not?
You suggest that I should start darktable like this:
“darktable……………….exe” -d opencl > log.txt 2>&1 and then output should be found in a file called log somewhere on the pc?
Ok, I will try that tomorrow when I have more time.