[Bf-blender-cvs] [e518ea9b5ea] master: Cycles: Fix transform addressing in the denoiser code

Lukas Stockner noreply at git.blender.org
Sun May 7 18:52:51 CEST 2017


Commit: e518ea9b5ea0d2517aaf79594d2661a97c6b4a5e
Author: Lukas Stockner
Date:   Sun May 7 20:48:24 2017 +0200
Branches: master
https://developer.blender.org/rBe518ea9b5ea0d2517aaf79594d2661a97c6b4a5e

Cycles: Fix transform addressing in the denoiser code

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

M	intern/cycles/kernel/filter/filter_transform_gpu.h
M	intern/cycles/kernel/filter/filter_transform_sse.h

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

diff --git a/intern/cycles/kernel/filter/filter_transform_gpu.h b/intern/cycles/kernel/filter/filter_transform_gpu.h
index f7414aeed8a..68304e14143 100644
--- a/intern/cycles/kernel/filter/filter_transform_gpu.h
+++ b/intern/cycles/kernel/filter/filter_transform_gpu.h
@@ -109,7 +109,7 @@ ccl_device void kernel_filter_construct_transform(ccl_global float ccl_restrict_
 	/* Bake the feature scaling into the transformation matrix. */
 	for(int i = 0; i < DENOISE_FEATURES; i++) {
 		for(int j = 0; j < (*rank); j++) {
-			transform[i*DENOISE_FEATURES + j] *= feature_scale[i];
+			transform[(i*DENOISE_FEATURES + j)*transform_stride] *= feature_scale[i];
 		}
 	}
 }
diff --git a/intern/cycles/kernel/filter/filter_transform_sse.h b/intern/cycles/kernel/filter/filter_transform_sse.h
index 846f3ab3afa..ed3a92f6241 100644
--- a/intern/cycles/kernel/filter/filter_transform_sse.h
+++ b/intern/cycles/kernel/filter/filter_transform_sse.h
@@ -81,10 +81,6 @@ ccl_device void kernel_filter_construct_transform(float ccl_restrict_ptr buffer,
 				break;
 			float s = feature_matrix[i*DENOISE_FEATURES+i];
 			reduced_energy += s;
-			/* Bake the feature scaling into the transformation matrix. */
-			for(int j = 0; j < DENOISE_FEATURES; j++) {
-				transform[(*rank)*DENOISE_FEATURES + j] *= _mm_cvtss_f32(feature_scale[j]);
-			}
 		}
 	}
 	else {
@@ -92,10 +88,6 @@ ccl_device void kernel_filter_construct_transform(float ccl_restrict_ptr buffer,
 			float s = feature_matrix[i*DENOISE_FEATURES+i];
 			if(i >= 2 && sqrtf(s) < pca_threshold)
 				break;
-			/* Bake the feature scaling into the transformation matrix. */
-			for(int j = 0; j < DENOISE_FEATURES; j++) {
-				transform[(*rank)*DENOISE_FEATURES + j] *= _mm_cvtss_f32(feature_scale[j]);
-			}
 		}
 	}




More information about the Bf-blender-cvs mailing list