Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While installing an OpenCL device we do a number of checks for special situations, that could be detecting problematic drivers/devices or some implementations with advantage.
These checks leave a bitflag in device exceptions, they can later be tested while running OpenCL code via
gboolean dt_opencl_exception(const int devid, const uint32_t mask);
An example is provided in demosaicer module, we know that the default AMD windows driver is bad for PPG so we do a fallback there.
Likely fixes #18042 #18284
Unfortunately we simply can't fix all OpenCL problems, it has been very difficult to test/debug blindly and most users are not able to compile & debug the kernels themselves.
This framework at least gives a fair chance to fix some issues in an easy way.