[Bf-blender-cvs] [3191fa5] cycles_kernel_split: Bug fix : Always make max_render_feasible_tile_size a multiple of local work size

varunsundar08 noreply at git.blender.org
Wed Apr 15 17:37:07 CEST 2015


Commit: 3191fa5e58eb3afa35d064d10cbda9ca013c6045
Author: varunsundar08
Date:   Sun Apr 12 01:30:29 2015 +0530
Branches: cycles_kernel_split
https://developer.blender.org/rB3191fa5e58eb3afa35d064d10cbda9ca013c6045

Bug fix : Always make max_render_feasible_tile_size a multiple of local work size

===================================================================

M	intern/cycles/device/device_opencl.cpp

===================================================================

diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 8687a4c..02f156e 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -2426,6 +2426,10 @@ public:
 		cl_int d_stride = rtile.stride;
 #ifdef __SPLIT_KERNEL__
 
+		/* Make sure that set render feasible tile size is a multiple of local work size dimensions */
+		assert(rtile.max_render_feasible_tile_size.x % SPLIT_KERNEL_LOCAL_SIZE_X == 0);
+		assert(rtile.max_render_feasible_tile_size.y % SPLIT_KERNEL_LOCAL_SIZE_Y == 0);
+
 		/* ray_state and hostRayStateArray should be of same size */
 		assert(hostRayState_size == rayState_size);
 		assert(rayState_size == 1);
@@ -3650,7 +3654,8 @@ public:
 				else {
 					/* No splitting required; process the entire tile at once */
 					/* Render feasible tile size is user-set-tile-size itself */
-					tile.max_render_feasible_tile_size = tile.tile_size;
+					tile.max_render_feasible_tile_size.x = (((tile.tile_size.x - 1) / SPLIT_KERNEL_LOCAL_SIZE_X) + 1) * SPLIT_KERNEL_LOCAL_SIZE_X;
+					tile.max_render_feasible_tile_size.y = (((tile.tile_size.y - 1) / SPLIT_KERNEL_LOCAL_SIZE_Y) + 1) * SPLIT_KERNEL_LOCAL_SIZE_Y;
 					/* buffer_rng_state_stride is stride itself */
 					tile.buffer_rng_state_stride = tile.stride;
 					/* The second argument is dummy */




More information about the Bf-blender-cvs mailing list