[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