[Bf-blender-cvs] [7b1c5712f88] master: Cycles: Replace saturate with saturatef

William Leeson noreply at git.blender.org
Wed Oct 27 14:07:53 CEST 2021


Commit: 7b1c5712f888ea37bbccafd9ffd7a3a6a61e665f
Author: William Leeson
Date:   Wed Oct 27 13:28:13 2021 +0200
Branches: master
https://developer.blender.org/rB7b1c5712f888ea37bbccafd9ffd7a3a6a61e665f

Cycles: Replace saturate with saturatef

saturate is depricated in favour of __saturatef this replaces saturate
with __saturatef on CUDA by createing a saturatef function which replaces
all instances of saturate and are hooked up to the correct function on all
platforms.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D13010

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

M	intern/cycles/kernel/closure/bsdf_microfacet.h
M	intern/cycles/kernel/closure/bsdf_microfacet_multi.h
M	intern/cycles/kernel/closure/bsdf_oren_nayar.h
M	intern/cycles/kernel/closure/bsdf_toon.h
M	intern/cycles/kernel/film/passes.h
M	intern/cycles/kernel/film/read.h
M	intern/cycles/kernel/svm/bevel.h
M	intern/cycles/kernel/svm/brick.h
M	intern/cycles/kernel/svm/closure.h
M	intern/cycles/kernel/svm/color_util.h
M	intern/cycles/kernel/svm/gradient.h
M	intern/cycles/kernel/svm/hsv.h
M	intern/cycles/kernel/svm/image.h
M	intern/cycles/kernel/svm/musgrave.h
M	intern/cycles/kernel/svm/ramp.h
M	intern/cycles/kernel/util/lookup_table.h
M	intern/cycles/scene/constant_fold.cpp
M	intern/cycles/util/math.h
M	intern/cycles/util/math_float3.h

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

diff --git a/intern/cycles/kernel/closure/bsdf_microfacet.h b/intern/cycles/kernel/closure/bsdf_microfacet.h
index 83242a73685..466ba3e229e 100644
--- a/intern/cycles/kernel/closure/bsdf_microfacet.h
+++ b/intern/cycles/kernel/closure/bsdf_microfacet.h
@@ -315,8 +315,8 @@ ccl_device int bsdf_microfacet_ggx_setup(ccl_private MicrofacetBsdf *bsdf)
 {
   bsdf->extra = NULL;
 
-  bsdf->alpha_x = saturate(bsdf->alpha_x);
-  bsdf->alpha_y = saturate(bsdf->alpha_y);
+  bsdf->alpha_x = saturatef(bsdf->alpha_x);
+  bsdf->alpha_y = saturatef(bsdf->alpha_y);
 
   bsdf->type = CLOSURE_BSDF_MICROFACET_GGX_ID;
 
@@ -336,8 +336,8 @@ ccl_device int bsdf_microfacet_ggx_fresnel_setup(ccl_private MicrofacetBsdf *bsd
 {
   bsdf->extra->cspec0 = saturate3(bsdf->extra->cspec0);
 
-  bsdf->alpha_x = saturate(bsdf->alpha_x);
-  bsdf->alpha_y = saturate(bsdf->alpha_y);
+  bsdf->alpha_x = saturatef(bsdf->alpha_x);
+  bsdf->alpha_y = saturatef(bsdf->alpha_y);
 
   bsdf->type = CLOSURE_BSDF_MICROFACET_GGX_FRESNEL_ID;
 
@@ -351,7 +351,7 @@ ccl_device int bsdf_microfacet_ggx_clearcoat_setup(ccl_private MicrofacetBsdf *b
 {
   bsdf->extra->cspec0 = saturate3(bsdf->extra->cspec0);
 
-  bsdf->alpha_x = saturate(bsdf->alpha_x);
+  bsdf->alpha_x = saturatef(bsdf->alpha_x);
   bsdf->alpha_y = bsdf->alpha_x;
 
   bsdf->type = CLOSURE_BSDF_MICROFACET_GGX_CLEARCOAT_ID;
@@ -365,7 +365,7 @@ ccl_device int bsdf_microfacet_ggx_refraction_setup(ccl_private MicrofacetBsdf *
 {
   bsdf->extra = NULL;
 
-  bsdf->alpha_x = saturate(bsdf->alpha_x);
+  bsdf->alpha_x = saturatef(bsdf->alpha_x);
   bsdf->alpha_y = bsdf->alpha_x;
 
   bsdf->type = CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID;
@@ -783,8 +783,8 @@ ccl_device int bsdf_microfacet_ggx_sample(KernelGlobals kg,
 
 ccl_device int bsdf_microfacet_beckmann_setup(ccl_private MicrofacetBsdf *bsdf)
 {
-  bsdf->alpha_x = saturate(bsdf->alpha_x);
-  bsdf->alpha_y = saturate(bsdf->alpha_y);
+  bsdf->alpha_x = saturatef(bsdf->alpha_x);
+  bsdf->alpha_y = saturatef(bsdf->alpha_y);
 
   bsdf->type = CLOSURE_BSDF_MICROFACET_BECKMANN_ID;
   return SD_BSDF | SD_BSDF_HAS_EVAL;
@@ -800,7 +800,7 @@ ccl_device int bsdf_microfacet_beckmann_isotropic_setup(ccl_private MicrofacetBs
 
 ccl_device int bsdf_microfacet_beckmann_refraction_setup(ccl_private MicrofacetBsdf *bsdf)
 {
-  bsdf->alpha_x = saturate(bsdf->alpha_x);
+  bsdf->alpha_x = saturatef(bsdf->alpha_x);
   bsdf->alpha_y = bsdf->alpha_x;
 
   bsdf->type = CLOSURE_BSDF_MICROFACET_BECKMANN_REFRACTION_ID;
diff --git a/intern/cycles/kernel/closure/bsdf_microfacet_multi.h b/intern/cycles/kernel/closure/bsdf_microfacet_multi.h
index 77370fbec4e..5badbe9aa80 100644
--- a/intern/cycles/kernel/closure/bsdf_microfacet_multi.h
+++ b/intern/cycles/kernel/closure/bsdf_microfacet_multi.h
@@ -220,12 +220,12 @@ ccl_device_forceinline float mf_lambda(const float3 w, const float2 alpha)
 /* Height distribution CDF (based on page 4 of the supplemental implementation). */
 ccl_device_forceinline float mf_invC1(const float h)
 {
-  return 2.0f * saturate(h) - 1.0f;
+  return 2.0f * saturatef(h) - 1.0f;
 }
 
 ccl_device_forceinline float mf_C1(const float h)
 {
-  return saturate(0.5f * (h + 1.0f));
+  return saturatef(0.5f * (h + 1.0f));
 }
 
 /* Masking function (based on page 16 of the supplemental implementation). */
@@ -284,7 +284,7 @@ ccl_device_forceinline float mf_ggx_albedo(float r)
              0.027803f) *
                 r +
             0.00568739f;
-  return saturate(albedo);
+  return saturatef(albedo);
 }
 
 ccl_device_inline float mf_ggx_transmission_albedo(float a, float ior)
@@ -292,7 +292,7 @@ ccl_device_inline float mf_ggx_transmission_albedo(float a, float ior)
   if (ior < 1.0f) {
     ior = 1.0f / ior;
   }
-  a = saturate(a);
+  a = saturatef(a);
   ior = clamp(ior, 1.0f, 3.0f);
   float I_1 = 0.0476898f * expf(-0.978352f * (ior - 0.65657f) * (ior - 0.65657f)) -
               0.033756f * ior + 0.993261f;
@@ -302,7 +302,7 @@ ccl_device_inline float mf_ggx_transmission_albedo(float a, float ior)
   float R_2 = ((((5.3725f * a - 24.9307f) * a + 22.7437f) * a - 3.40751f) * a + 0.0986325f) * a +
               0.00493504f;
 
-  return saturate(1.0f + I_2 * R_2 * 0.0019127f - (1.0f - I_1) * (1.0f - R_1) * 9.3205f);
+  return saturatef(1.0f + I_2 * R_2 * 0.0019127f - (1.0f - I_1) * (1.0f - R_1) * 9.3205f);
 }
 
 ccl_device_forceinline float mf_ggx_pdf(const float3 wi, const float3 wo, const float alpha)
diff --git a/intern/cycles/kernel/closure/bsdf_oren_nayar.h b/intern/cycles/kernel/closure/bsdf_oren_nayar.h
index 00c2678f0a0..8827309a811 100644
--- a/intern/cycles/kernel/closure/bsdf_oren_nayar.h
+++ b/intern/cycles/kernel/closure/bsdf_oren_nayar.h
@@ -50,7 +50,7 @@ ccl_device int bsdf_oren_nayar_setup(ccl_private OrenNayarBsdf *bsdf)
 
   bsdf->type = CLOSURE_BSDF_OREN_NAYAR_ID;
 
-  sigma = saturate(sigma);
+  sigma = saturatef(sigma);
 
   float div = 1.0f / (M_PI_F + ((3.0f * M_PI_F - 4.0f) / 6.0f) * sigma);
 
diff --git a/intern/cycles/kernel/closure/bsdf_toon.h b/intern/cycles/kernel/closure/bsdf_toon.h
index 7f20a328b5e..20f3b8f0074 100644
--- a/intern/cycles/kernel/closure/bsdf_toon.h
+++ b/intern/cycles/kernel/closure/bsdf_toon.h
@@ -48,8 +48,8 @@ static_assert(sizeof(ShaderClosure) >= sizeof(ToonBsdf), "ToonBsdf is too large!
 ccl_device int bsdf_diffuse_toon_setup(ccl_private ToonBsdf *bsdf)
 {
   bsdf->type = CLOSURE_BSDF_DIFFUSE_TOON_ID;
-  bsdf->size = saturate(bsdf->size);
-  bsdf->smooth = saturate(bsdf->smooth);
+  bsdf->size = saturatef(bsdf->size);
+  bsdf->smooth = saturatef(bsdf->smooth);
 
   return SD_BSDF | SD_BSDF_HAS_EVAL;
 }
@@ -146,8 +146,8 @@ ccl_device int bsdf_diffuse_toon_sample(ccl_private const ShaderClosure *sc,
 ccl_device int bsdf_glossy_toon_setup(ccl_private ToonBsdf *bsdf)
 {
   bsdf->type = CLOSURE_BSDF_GLOSSY_TOON_ID;
-  bsdf->size = saturate(bsdf->size);
-  bsdf->smooth = saturate(bsdf->smooth);
+  bsdf->size = saturatef(bsdf->size);
+  bsdf->smooth = saturatef(bsdf->smooth);
 
   return SD_BSDF | SD_BSDF_HAS_EVAL;
 }
diff --git a/intern/cycles/kernel/film/passes.h b/intern/cycles/kernel/film/passes.h
index 3a91d1653fe..22b4b779a17 100644
--- a/intern/cycles/kernel/film/passes.h
+++ b/intern/cycles/kernel/film/passes.h
@@ -312,7 +312,7 @@ ccl_device_inline void kernel_write_data_passes(KernelGlobals kg,
     const float mist_inv_depth = kernel_data.film.mist_inv_depth;
 
     const float depth = camera_distance(kg, sd->P);
-    float mist = saturate((depth - mist_start) * mist_inv_depth);
+    float mist = saturatef((depth - mist_start) * mist_inv_depth);
 
     /* Falloff */
     const float mist_falloff = kernel_data.film.mist_falloff;
diff --git a/intern/cycles/kernel/film/read.h b/intern/cycles/kernel/film/read.h
index a87eff3832e..d308a9818e2 100644
--- a/intern/cycles/kernel/film/read.h
+++ b/intern/cycles/kernel/film/read.h
@@ -27,7 +27,7 @@ CCL_NAMESPACE_BEGIN
  * roulette. */
 ccl_device_forceinline float film_transparency_to_alpha(float transparency)
 {
-  return saturate(1.0f - transparency);
+  return saturatef(1.0f - transparency);
 }
 
 ccl_device_inline float film_get_scale(ccl_global const KernelFilmConvert *ccl_restrict
@@ -136,7 +136,7 @@ ccl_device_inline void film_get_pass_pixel_mist(ccl_global const KernelFilmConve
 
   /* Note that we accumulate 1 - mist in the kernel to avoid having to
    * track the mist values in the integrator state. */
-  pixel[0] = saturate(1.0f - f * scale_exposure);
+  pixel[0] = saturatef(1.0f - f * scale_exposure);
 }
 
 ccl_device_inline void film_get_pass_pixel_sample_count(
@@ -458,7 +458,7 @@ ccl_device_inline float4 film_calculate_shadow_catcher_matte_with_shadow(
   const float3 color_matte = make_float3(in_matte[0], in_matte[1], in_matte[2]) * scale_exposure;
 
   const float transparency = in_matte[3] * scale;
-  const float alpha = saturate(1.0f - transparency);
+  const float alpha = saturatef(1.0f - transparency);
 
   const float alpha_matte = (1.0f - alpha) * (1.0f - average(shadow_catcher)) + alpha;
 
diff --git a/intern/cycles/kernel/svm/bevel.h b/intern/cycles/kernel/svm/bevel.h
index 37c7caf1372..6799489514f 100644
--- a/intern/cycles/kernel/svm/bevel.h
+++ b/intern/cycles/kernel/svm/bevel.h
@@ -73,7 +73,7 @@ ccl_device_forceinline float svm_bevel_cubic_quintic_root_find(float xi)
     if (fabsf(f) < tolerance || f_ == 0.0f)
       break;
 
-    x = saturate(x - f / f_);
+    x = saturatef(x - f / f_);
   }
 
   return x;
diff --git a/intern/cycles/kernel/svm/brick.h b/intern/cycles/kernel/svm/brick.h
index 3c8729fa027..d8d01766106 100644
--- a/intern/cycles/kernel/svm/brick.h
+++ b/intern/cycles/kernel/svm/brick.h
@@ -56,7 +56,7 @@ ccl_device_noinline_cpu float2 svm_brick(float3 p,
   x = (p.x + offset) - brick_width * bricknum;
   y = p.y - row_height * rownum;
 
-  float tint = saturate((brick_noise((rownum << 16) + (bricknum & 0xFFFF)) + bias));
+  float tint = saturatef((brick_noise((rownum << 16) + (bricknum & 0xFFFF)) + bias));
   float min_dist = min(min(x, y), min(brick_width - x, row_height - y));
 
   float mortar;
diff --git a/intern/cycles/kernel/svm/closure.h b/intern/cycles/kernel/svm/closure.h
index 1dcfe003f74..71952e9e0f8 100644
--- a/intern/cycles/kernel/svm/closure.h
+++ b/intern/cycles/kernel/svm/closure.h
@@ -173,9 +173,9 @@ ccl_device_noinline int svm_node_closure_bsdf(KernelGlobals kg,
       float fresnel = fresnel_dielectric_cos(cosNO, ior);
 
       // calculate weights of the diffuse and specular part
-      float diffuse_weight = (1.0f - saturate(metallic)) * (1.0f - saturate(transmission));
+      float diffuse_weight = (1.0f - saturatef(metallic)) * (1.0f - saturatef(transmission));
 
-      float final_transmission = saturate(transmission) * (1.0f - saturate(metallic));
+      float final_transmission = saturatef(transmission) * (1.0f - saturatef(metallic));
       float specular_weight = (1.0f - final_transmission);
 
       // get the base color
@@ -746,7 +746,7 @@ ccl_device_noinline int svm_node_closure_bsdf(KernelGlobals kg,
       if (bsdf) {
         bsdf->N = N;
 
-        bsdf->sigma = saturate(param1);
+        bsdf->sigma = saturatef(param1);
         sd->flag |= bsdf_ashikhmin_velvet_setup(bsdf);
       }
       break;
@@ -1233,7 +1233,7 @@ ccl_dev

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list