[Bf-blender-cvs] [7920ebd1573] master: Cycles: Fix NLM denoising kernels zeroing the wrong buffer on OpenCL

Lukas Stockner noreply at git.blender.org
Tue Oct 9 00:14:49 CEST 2018


Commit: 7920ebd1573a45d3c3f71cde7f748828b46bb91f
Author: Lukas Stockner
Date:   Tue Oct 9 00:03:47 2018 +0200
Branches: master
https://developer.blender.org/rB7920ebd1573a45d3c3f71cde7f748828b46bb91f

Cycles: Fix NLM denoising kernels zeroing the wrong buffer on OpenCL

Since my temporary buffer commit (about a month ago), the OpenCL device was zeroing the wrong buffer, leading to
completely wrong filtered feature passes and therefore significantly lower-quality results than CPU and CUDA.

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

M	intern/cycles/device/opencl/opencl_base.cpp

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

diff --git a/intern/cycles/device/opencl/opencl_base.cpp b/intern/cycles/device/opencl/opencl_base.cpp
index ffd3b7d7625..1e73d37d7a4 100644
--- a/intern/cycles/device/opencl/opencl_base.cpp
+++ b/intern/cycles/device/opencl/opencl_base.cpp
@@ -761,7 +761,7 @@ bool OpenCLDeviceBase::denoising_non_local_means(device_ptr image_ptr,
 	cl_mem variance_mem = CL_MEM_PTR(variance_ptr);
 	cl_mem out_mem = CL_MEM_PTR(out_ptr);
 
-	mem_zero_kernel(*difference, sizeof(float)*pass_stride);
+	mem_zero_kernel(*weightAccum, sizeof(float)*pass_stride);
 	mem_zero_kernel(out_ptr, sizeof(float)*pass_stride);
 
 	cl_kernel ckNLMCalcDifference = denoising_program(ustring("filter_nlm_calc_difference"));



More information about the Bf-blender-cvs mailing list