[Bf-blender-cvs] [c95a895] cycles_kernel_split: Complete all kernel exec before releasing tile
varunsundar08
noreply at git.blender.org
Thu Apr 30 23:25:34 CEST 2015
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);
}
}
More information about the Bf-blender-cvs
mailing list