Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorLukas Stockner <lukas.stockner@freenet.de>2017-05-07 21:48:24 +0300
committerLukas Stockner <lukas.stockner@freenet.de>2017-05-07 19:50:24 +0300
commite518ea9b5ea0d2517aaf79594d2661a97c6b4a5e (patch)
tree515650235e636e69add06d08bb51742dca14b59c /intern
parentc9451f1cff4403855d5a77c15cfd428e0a9ebe87 (diff)
Cycles: Fix transform addressing in the denoiser code
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/kernel/filter/filter_transform_gpu.h2
-rw-r--r--intern/cycles/kernel/filter/filter_transform_sse.h8
2 files changed, 1 insertions, 9 deletions
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]);
- }
}
}