Commit: c95a89529569edb9c083e11823a67ad3a2030f9c
Author: varunsundar08
Date: Fri May 1 00:52:37 2015 +0530
Branches: cycles_kernel_split
https://developer.blender.org/rBc95a89529569edb9c083e11823a67ad3a2030f9c
Complete all kernel exec before releasing tile
===================================================================
M intern/cycles/device/device_opencl.cpp
===================================================================
diff --git a/intern/cycles/device/device_opencl.cpp
b/intern/cycles/device/device_opencl.cpp
index d95e954..146393c 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -1251,6 +1251,16 @@ public:
task->update_progress(&tile);
}
+
+ /* Complete kernel execution before release
tile */
+ /* This helps in multi-device render;
+ * The device that reaches the critical-section
function release_tile
+ * waits (stalling other devices from entering
release_tile) for all kernels
+ * to complete. If device1 (a slow-render
device) reaches release_tile first then
+ * it would stall device2 (a fast-render device)
from proceeding to render next tile
+ */
+ clFinish(cqCommandQueue);
+
task->release_tile(tile);
}
}
@@ -3566,6 +3576,16 @@ The current tile of dimensions %dx%d is split into tiles
of dimension %dx%d for
path_trace(tile, 0);
}
tile.sample = tile.start_sample +
tile.num_samples;
+
+ /* Complete kernel execution before release
tile */
+ /* This helps in multi-device render;
+ * The device that reaches the critical-section
function release_tile
+ * waits (stalling other devices from entering
release_tile) for all kernels
+ * to complete. If device1 (a slow-render
device) reaches release_tile first then
+ * it would stall device2 (a fast-render
device) from proceeding to render next tile
+ */
+ clFinish(cqCommandQueue);
+
task->release_tile(tile);
}
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs