[Bf-blender-cvs] [5cec64b4dc] soc-2016-cycles_denoising: Cycles Denoising: Remove now-useless feature utilities

Lukas Stockner noreply at git.blender.org
Thu Jan 12 05:14:11 CET 2017


Commit: 5cec64b4dc59693c6001a6e04e9cdf919eee37bd
Author: Lukas Stockner
Date:   Wed Jan 11 07:06:55 2017 +0100
Branches: soc-2016-cycles_denoising
https://developer.blender.org/rB5cec64b4dc59693c6001a6e04e9cdf919eee37bd

Cycles Denoising: Remove now-useless feature utilities

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

M	intern/cycles/kernel/filter/filter_features.h
M	intern/cycles/kernel/filter/filter_features_sse.h

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

diff --git a/intern/cycles/kernel/filter/filter_features.h b/intern/cycles/kernel/filter/filter_features.h
index 604b7fac03..1a0bba1e5a 100644
--- a/intern/cycles/kernel/filter/filter_features.h
+++ b/intern/cycles/kernel/filter/filter_features.h
@@ -165,43 +165,6 @@ ccl_device_inline bool filter_firefly_rejection(float3 pixel_color, float pixel_
 	return (color_diff > 3.0f*variance);
 }
 
-/* Fill design row and compute WLR weight.
- * Doing both at the same time allows for a nice early-out as soon as the weight is zero. */
-ccl_device_inline float filter_get_design_row_transform_weight(int3 pixel, float ccl_readonly_ptr buffer, float ccl_readonly_ptr feature_means, int pass_stride, float *features, int rank, float *design_row, float ccl_readonly_ptr feature_transform, int transform_stride, float ccl_readonly_ptr bandwidth_factor)
-{
-	filter_get_features(pixel, buffer, features, feature_means, pass_stride);
-	design_row[0] = 1.0f;
-	float weight = 1.0f;
-	for(int d = 0; d < rank; d++) {
-#ifdef __KERNEL_CUDA__
-		float x = math_vector_dot_strided(features, feature_transform + d*DENOISE_FEATURES*transform_stride, transform_stride, DENOISE_FEATURES);
-#else
-		float x = math_vector_dot(features, feature_transform + d*DENOISE_FEATURES, DENOISE_FEATURES);
-#endif
-		float x2 = x;
-		if(bandwidth_factor) x2 *= bandwidth_factor[d];
-		x2 *= x2;
-		if(x2 < 1.0f) {
-			/* Pixels are weighted by Epanechnikov kernels. */
-			weight *= 0.75f * (1.0f - x2);
-		}
-		else {
-			weight = 0.0f;
-			break;
-		}
-		design_row[1+d] = x;
-	}
-	return weight;
-}
-
-/* Fill design row with the quadratic elements. */
-ccl_device_inline void filter_extend_design_row_quadratic(int rank, float *design_row)
-{
-	for(int d = 0; d < rank; d++) {
-		design_row[1+rank+d] = design_row[1+d]*design_row[1+d];
-	}
-}
-
 /* Fill the design row without computing the weight. */
 ccl_device_inline void filter_get_design_row_transform(int3 pixel, float ccl_readonly_ptr buffer, float ccl_readonly_ptr feature_means, int pass_stride, float *features, int rank, float *design_row, float ccl_readonly_ptr feature_transform, int transform_stride)
 {
@@ -217,12 +180,4 @@ ccl_device_inline void filter_get_design_row_transform(int3 pixel, float ccl_rea
 	}
 }
 
-ccl_device_inline void filter_get_design_row(int3 pixel, float ccl_readonly_ptr buffer, float ccl_readonly_ptr feature_means, float ccl_readonly_ptr feature_scales, int pass_stride, float *design_row)
-{
-	design_row[0] = 1.0f;
-	filter_get_features(pixel, buffer, design_row+1, feature_means, pass_stride);
-	for(int d = 0; d < DENOISE_FEATURES; d++)
-		design_row[d+1] *= feature_scales[d];
-}
-
 CCL_NAMESPACE_END
\ No newline at end of file
diff --git a/intern/cycles/kernel/filter/filter_features_sse.h b/intern/cycles/kernel/filter/filter_features_sse.h
index 51d8347d90..80e5b0282d 100644
--- a/intern/cycles/kernel/filter/filter_features_sse.h
+++ b/intern/cycles/kernel/filter/filter_features_sse.h
@@ -178,44 +178,5 @@ ccl_device_inline void filter_get_pixel_variance_3_sse(float ccl_readonly_ptr bu
 	var[2] = _mm_mask_ps(ccl_get_feature_sse(21), active_pixels);
 }
 
-ccl_device_inline __m128 filter_get_pixel_variance_sse(float ccl_readonly_ptr buffer, __m128 active_pixels, int pass_stride)
-{
-	return _mm_mask_ps(_mm_mul_ps(_mm_set1_ps(1.0f/3.0f), _mm_add_ps(_mm_add_ps(ccl_get_feature_sse(17), ccl_get_feature_sse(19)), ccl_get_feature_sse(21))), active_pixels);
-}
-
-ccl_device_inline __m128 filter_fill_design_row_sse(__m128 *features, __m128 active_pixels, int rank, __m128 *design_row, __m128 ccl_readonly_ptr feature_transform, __m128 ccl_readonly_ptr bandwidth_factor)
-{
-	__m128 weight = _mm_mask_ps(_mm_set1_ps(1.0f), active_pixels);
-	design_row[0] = weight;
-	for(int d = 0; d < rank; d++) {
-		__m128 x = math_vector_dot_sse(features, feature_transform + d*DENOISE_FEATURES, DENOISE_FEATURES);
-		__m128 x2 = _mm_mul_ps(x, bandwidth_factor[d]);
-		x2 = _mm_mul_ps(x2, x2);
-		weight = _mm_mask_ps(_mm_mul_ps(weight, _mm_mul_ps(_mm_set1_ps(0.75f), _mm_sub_ps(_mm_set1_ps(1.0f), x2))), _mm_and_ps(_mm_cmplt_ps(x2, _mm_set1_ps(1.0f)), active_pixels));
-		design_row[1+d] = x;
-	}
-	return weight;
-}
-
-ccl_device_inline __m128 filter_fill_design_row_quadratic_sse(__m128 *features, __m128 active_pixels, int rank, __m128 *design_row, __m128 ccl_readonly_ptr feature_transform)
-{
-	__m128 weight = _mm_mask_ps(_mm_set1_ps(1.0f), active_pixels);
-	design_row[0] = weight;
-	for(int d = 0; d < rank; d++) {
-		__m128 x = math_vector_dot_sse(features, feature_transform + d*DENOISE_FEATURES, DENOISE_FEATURES);
-		__m128 x2 = _mm_mul_ps(x, x);
-		weight = _mm_mask_ps(_mm_mul_ps(weight, _mm_mul_ps(_mm_set1_ps(0.75f), _mm_sub_ps(_mm_set1_ps(1.0f), x2))), _mm_and_ps(_mm_cmplt_ps(x2, _mm_set1_ps(1.0f)), active_pixels));
-		design_row[1+d] = x;
-		design_row[1+rank+d] = x2;
-	}
-	return weight;
-}
-
-ccl_device_inline __m128 filter_firefly_rejection_sse(__m128 ccl_readonly_ptr pixel_color, __m128 pixel_variance, __m128 ccl_readonly_ptr center_color, __m128 sqrt_center_variance)
-{
-	__m128 color_diff = _mm_mul_ps(_mm_set1_ps(1.0f/9.0f), _mm_add_ps(_mm_add_ps(_mm_fabs_ps(_mm_sub_ps(pixel_color[0], center_color[0])), _mm_fabs_ps(_mm_sub_ps(pixel_color[1], center_color[1]))), _mm_fabs_ps(_mm_sub_ps(pixel_color[2], center_color[2]))));
-	__m128 variance = _mm_add_ps(_mm_add_ps(sqrt_center_variance, _mm_sqrt_ps(pixel_variance)), _mm_set1_ps(0.005f));
-	return _mm_cmple_ps(color_diff, variance);;
-}
 
 CCL_NAMESPACE_END
\ No newline at end of file




More information about the Bf-blender-cvs mailing list