Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey@blender.org>2020-09-28 17:04:26 +0300
committerSergey Sharybin <sergey@blender.org>2020-09-30 17:10:35 +0300
commitecdfb465cc9d992632feec13229fd31666f6b4e8 (patch)
tree7ad3ce9958a61c4fe11b4293d1a7183edc192a5c /intern/opensubdiv
parent3a7d62cd1f5e06e22af1642fc5f4aab59bace585 (diff)
Cycles: Fix usage of memory barriers in split kernel
On user level this fixes dead-lock of OpenCL render on Intel Iris GPUs. Note that this patch does not include change in the logic which allows or disallows OpenCL platforms to be used, that will happen after the kernel fix is known to be fine for the currently officially supported platforms. The dead-lock was caused by wrong usage of memory barriers: as per the OpenCL specification the barrier is to be executed by the entire work group. This means, that the following code is invalid: void foo() { if (some_condition) { return; } barrier(CLK_LOCAL_MEM_FENCE); } void bar() { foo(); } The Cycles code was mentioning this as an invalid code on CPU, while in fact this is invalid as per specification. From the implementation side this change removes the ifdefs around the CPU-only barrier logic, and is implementing similar logic in the shader setup kernel. Tested on NUC8i7HVK NUC. The root cause of the dead-lock was identified by Max Dmitrichenko. There is no measurable difference in performance of currently supported OpenCL platforms. Differential Revision: https://developer.blender.org/D9039
Diffstat (limited to 'intern/opensubdiv')
0 files changed, 0 insertions, 0 deletions