[Bf-blender-cvs] [6e72430] cycles_kernel_split: Cycles kernel split: Fix for progressive refine
Lenny Wang
noreply at git.blender.org
Sat Apr 4 10:40:34 CEST 2015
Commit: 6e7243004e35fb381c9d74db713810c690fd2e88
Author: Lenny Wang
Date: Sat Apr 4 13:40:09 2015 +0500
Branches: cycles_kernel_split
https://developer.blender.org/rB6e7243004e35fb381c9d74db713810c690fd2e88
Cycles kernel split: Fix for progressive refine
===================================================================
M intern/cycles/device/device_opencl.cpp
M intern/cycles/kernel/kernel_SumAllRadiance.cl
===================================================================
diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 1748ea4..0d3b8bb 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -3259,6 +3259,7 @@ One possible tile size is %zux%zu \n", tile_max_x - local_size[0] , tile_max_y -
opencl_assert(clSetKernelArg(ckPathTraceKernel_SumAllRadiance_SPLIT_KERNEL, narg++, sizeof(d_w), (void *)&d_w));
opencl_assert(clSetKernelArg(ckPathTraceKernel_SumAllRadiance_SPLIT_KERNEL, narg++, sizeof(d_h), (void *)&d_h));
opencl_assert(clSetKernelArg(ckPathTraceKernel_SumAllRadiance_SPLIT_KERNEL, narg++, sizeof(d_stride), (void *)&d_stride));
+ opencl_assert(clSetKernelArg(ckPathTraceKernel_SumAllRadiance_SPLIT_KERNEL, narg++, sizeof(start_sample), (void*)&start_sample));
/* Enqueue ckPathTraceKernel_DataInit_SPLIT_KERNEL kernel */
opencl_assert(clEnqueueNDRangeKernel(cqCommandQueue, ckPathTraceKernel_DataInit_SPLIT_KERNEL, 2, NULL, global_size, local_size, 0, NULL, NULL));
diff --git a/intern/cycles/kernel/kernel_SumAllRadiance.cl b/intern/cycles/kernel/kernel_SumAllRadiance.cl
index 372e595..440bc6f 100644
--- a/intern/cycles/kernel/kernel_SumAllRadiance.cl
+++ b/intern/cycles/kernel/kernel_SumAllRadiance.cl
@@ -29,7 +29,8 @@ __kernel void kernel_ocl_path_trace_SumAllRadiance_SPLIT_KERNEL(
ccl_constant KernelData *data, /* To get pass_stride to offet into buffer */
ccl_global float *buffer, /* Output buffer of RenderTile */
ccl_global float *per_sample_output_buffer, /* Radiance contributed by all samples */
- int parallel_samples, int sw, int sh, int stride)
+ int parallel_samples, int sw, int sh, int stride,
+ int start_sample)
{
int x = get_global_id(0);
int y = get_global_id(1);
@@ -46,11 +47,10 @@ __kernel void kernel_ocl_path_trace_SumAllRadiance_SPLIT_KERNEL(
for(sample_iterator = 0; sample_iterator < parallel_samples; sample_iterator++) {
for(pass_stride_iterator = 0; pass_stride_iterator < num_floats; pass_stride_iterator++) {
- *(buffer + pass_stride_iterator) = (sample_iterator == 0) ? *(per_sample_output_buffer + pass_stride_iterator)
+ *(buffer + pass_stride_iterator) = (start_sample == 0 && sample_iterator == 0) ? *(per_sample_output_buffer + pass_stride_iterator)
: *(buffer + pass_stride_iterator) + *(per_sample_output_buffer + pass_stride_iterator);
}
per_sample_output_buffer += sample_stride;
}
-
}
-}
\ No newline at end of file
+}
More information about the Bf-blender-cvs
mailing list