[Bf-blender-cvs] [188b1e3] cycles_kernel_split: Bug fix : Fix viewport render issue
varunsundar08
noreply at git.blender.org
Wed Apr 15 17:37:06 CEST 2015
Commit: 188b1e331ee50899076884f665549df1da5437df
Author: varunsundar08
Date: Fri Apr 10 10:55:23 2015 +0530
Branches: cycles_kernel_split
https://developer.blender.org/rB188b1e331ee50899076884f665549df1da5437df
Bug fix : Fix viewport render issue
===================================================================
M intern/cycles/device/device_opencl.cpp
===================================================================
diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 104f6f0..8687a4c 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -3371,6 +3371,7 @@ public:
}
}
+#ifdef __SPLIT_KERNEL__
/* Calculates the amount of memory that has to be always
* allocated in order for the split kernel to function.
* This memory is tile/scene-property invariant (meaning,
@@ -3536,6 +3537,11 @@ public:
int num_tiles_x = (((d_w - 1) / render_feasible_tile_size.x) + 1);
int num_tiles_y = (((d_h - 1) / render_feasible_tile_size.y) + 1);
+ /* buffer and rng_state offset calc */
+ size_t offset_index = rtile.offset + (rtile.x + rtile.y * rtile.stride);
+ size_t offset_x = offset_index % rtile.stride;
+ size_t offset_y = offset_index / rtile.stride;
+
/* Resize to_path_trace_rtile */
to_path_trace_rtile.resize(num_tiles_x * num_tiles_y);
@@ -3543,10 +3549,10 @@ public:
for (int tile_iter_x = 0; tile_iter_x < num_tiles_x; tile_iter_x++) {
int rtile_index = tile_iter_y * num_tiles_x + tile_iter_x;
- to_path_trace_rtile[rtile_index].rng_state_offset_x = tile_iter_x * render_feasible_tile_size.x;
- to_path_trace_rtile[rtile_index].rng_state_offset_y = tile_iter_y * render_feasible_tile_size.y;
- to_path_trace_rtile[rtile_index].buffer_offset_x = tile_iter_x * render_feasible_tile_size.x;
- to_path_trace_rtile[rtile_index].buffer_offset_y = tile_iter_y * render_feasible_tile_size.y;
+ to_path_trace_rtile[rtile_index].rng_state_offset_x = offset_x + tile_iter_x * render_feasible_tile_size.x;
+ to_path_trace_rtile[rtile_index].rng_state_offset_y = offset_y + tile_iter_y * render_feasible_tile_size.y;
+ to_path_trace_rtile[rtile_index].buffer_offset_x = offset_x + tile_iter_x * render_feasible_tile_size.x;
+ to_path_trace_rtile[rtile_index].buffer_offset_y = offset_y + tile_iter_y * render_feasible_tile_size.y;
to_path_trace_rtile[rtile_index].start_sample = rtile.start_sample;
to_path_trace_rtile[rtile_index].num_samples = rtile.num_samples;
to_path_trace_rtile[rtile_index].sample = rtile.sample;
@@ -3576,6 +3582,7 @@ public:
}
return to_path_trace_rtile;
}
+#endif
void thread_run(DeviceTask *task)
{
@@ -3589,9 +3596,9 @@ public:
RenderTile tile;
#ifdef __SPLIT_KERNEL__
- bool initialize_data_and_check_render_feasibility = false;
- bool need_to_split_tiles_further = false;
- size_t feasible_global_work_size;
+ bool initialize_data_and_check_render_feasibility = false;
+ bool need_to_split_tiles_further = false;
+ size_t feasible_global_work_size;
#endif
/* keep rendering tiles until done */
More information about the Bf-blender-cvs
mailing list