[Bf-blender-cvs] [fc4b1fede38] master: Cleanup: consistently use uint32_t for path flag

Brecht Van Lommel noreply at git.blender.org
Mon Oct 18 19:03:54 CEST 2021


Commit: fc4b1fede385687acb2cf7f82591aa43097110a9
Author: Brecht Van Lommel
Date:   Sun Oct 17 20:09:45 2021 +0200
Branches: master
https://developer.blender.org/rBfc4b1fede385687acb2cf7f82591aa43097110a9

Cleanup: consistently use uint32_t for path flag

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

M	intern/cycles/kernel/closure/bsdf_transparent.h
M	intern/cycles/kernel/integrator/integrator_intersect_closest.h
M	intern/cycles/kernel/integrator/integrator_shade_surface.h
M	intern/cycles/kernel/integrator/integrator_shade_volume.h
M	intern/cycles/kernel/kernel_accumulate.h
M	intern/cycles/kernel/kernel_bake.h
M	intern/cycles/kernel/kernel_light.h
M	intern/cycles/kernel/kernel_passes.h
M	intern/cycles/kernel/kernel_shader.h
M	intern/cycles/kernel/kernel_shadow_catcher.h
M	intern/cycles/kernel/kernel_types.h
M	intern/cycles/kernel/osl/background.cpp
M	intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp
M	intern/cycles/kernel/osl/bsdf_phong_ramp.cpp
M	intern/cycles/kernel/osl/emissive.cpp
M	intern/cycles/kernel/osl/osl_bssrdf.cpp
M	intern/cycles/kernel/osl/osl_closures.cpp
M	intern/cycles/kernel/osl/osl_closures.h
M	intern/cycles/kernel/osl/osl_shader.cpp
M	intern/cycles/kernel/osl/osl_shader.h
M	intern/cycles/kernel/svm/svm.h
M	intern/cycles/kernel/svm/svm_aov.h
M	intern/cycles/kernel/svm/svm_closure.h
M	intern/cycles/kernel/svm/svm_light_path.h
M	intern/cycles/kernel/svm/svm_tex_coord.h

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

diff --git a/intern/cycles/kernel/closure/bsdf_transparent.h b/intern/cycles/kernel/closure/bsdf_transparent.h
index 8313ab964d7..e801b6ea1a3 100644
--- a/intern/cycles/kernel/closure/bsdf_transparent.h
+++ b/intern/cycles/kernel/closure/bsdf_transparent.h
@@ -36,7 +36,7 @@ CCL_NAMESPACE_BEGIN
 
 ccl_device void bsdf_transparent_setup(ccl_private ShaderData *sd,
                                        const float3 weight,
-                                       int path_flag)
+                                       uint32_t path_flag)
 {
   /* Check cutoff weight. */
   float sample_weight = fabsf(average(weight));
diff --git a/intern/cycles/kernel/integrator/integrator_intersect_closest.h b/intern/cycles/kernel/integrator/integrator_intersect_closest.h
index e915d984e1d..317ea76553a 100644
--- a/intern/cycles/kernel/integrator/integrator_intersect_closest.h
+++ b/intern/cycles/kernel/integrator/integrator_intersect_closest.h
@@ -58,7 +58,7 @@ ccl_device_forceinline bool integrator_intersect_terminate(KernelGlobals kg,
    * and evaluating the shader when not needed. Only for emission and transparent
    * surfaces in front of emission do we need to evaluate the shader, since we
    * perform MIS as part of indirect rays. */
-  const int path_flag = INTEGRATOR_STATE(state, path, flag);
+  const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
   const float probability = path_state_continuation_probability(kg, state, path_flag);
 
   if (probability != 1.0f) {
@@ -184,7 +184,7 @@ ccl_device void integrator_intersect_closest(KernelGlobals kg, IntegratorState s
     /* NOTE: if we make lights visible to camera rays, we'll need to initialize
      * these in the path_state_init. */
     const int last_type = INTEGRATOR_STATE(state, isect, type);
-    const int path_flag = INTEGRATOR_STATE(state, path, flag);
+    const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
 
     hit = lights_intersect(
               kg, &ray, &isect, last_isect_prim, last_isect_object, last_type, path_flag) ||
diff --git a/intern/cycles/kernel/integrator/integrator_shade_surface.h b/intern/cycles/kernel/integrator/integrator_shade_surface.h
index bc97fde0e4a..bbf613a669e 100644
--- a/intern/cycles/kernel/integrator/integrator_shade_surface.h
+++ b/intern/cycles/kernel/integrator/integrator_shade_surface.h
@@ -56,7 +56,7 @@ ccl_device_forceinline bool integrate_surface_holdout(KernelGlobals kg,
     if (kernel_data.background.transparent) {
       const float3 throughput = INTEGRATOR_STATE(state, path, throughput);
       const float transparent = average(holdout_weight * throughput);
-      kernel_accum_transparent(kg, state, transparent, render_buffer);
+      kernel_accum_transparent(kg, state, path_flag, transparent, render_buffer);
     }
     if (isequal_float3(holdout_weight, one_float3())) {
       return false;
@@ -118,7 +118,7 @@ ccl_device_forceinline void integrate_surface_direct_light(KernelGlobals kg,
   /* Sample position on a light. */
   LightSample ls ccl_optional_struct_init;
   {
-    const int path_flag = INTEGRATOR_STATE(state, path, flag);
+    const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
     const uint bounce = INTEGRATOR_STATE(state, path, bounce);
     float light_u, light_v;
     path_state_rng_2D(kg, rng_state, PRNG_LIGHT_U, &light_u, &light_v);
@@ -375,7 +375,7 @@ ccl_device bool integrate_surface(KernelGlobals kg,
 #ifdef __VOLUME__
   if (!(sd.flag & SD_HAS_ONLY_VOLUME)) {
 #endif
-    const int path_flag = INTEGRATOR_STATE(state, path, flag);
+    const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
 
 #ifdef __SUBSURFACE__
     /* Can skip shader evaluation for BSSRDF exit point without bump mapping. */
diff --git a/intern/cycles/kernel/integrator/integrator_shade_volume.h b/intern/cycles/kernel/integrator/integrator_shade_volume.h
index e465a993041..d0dde815b5c 100644
--- a/intern/cycles/kernel/integrator/integrator_shade_volume.h
+++ b/intern/cycles/kernel/integrator/integrator_shade_volume.h
@@ -94,7 +94,7 @@ ccl_device_inline bool volume_shader_sample(KernelGlobals kg,
                                             ccl_private ShaderData *ccl_restrict sd,
                                             ccl_private VolumeShaderCoefficients *coeff)
 {
-  const int path_flag = INTEGRATOR_STATE(state, path, flag);
+  const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
   shader_eval_volume<false>(kg, state, sd, path_flag, [=](const int i) {
     return integrator_state_read_volume_stack(state, i);
   });
@@ -686,7 +686,7 @@ ccl_device_forceinline bool integrate_volume_sample_light(
   }
 
   /* Sample position on a light. */
-  const int path_flag = INTEGRATOR_STATE(state, path, flag);
+  const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
   const uint bounce = INTEGRATOR_STATE(state, path, bounce);
   float light_u, light_v;
   path_state_rng_2D(kg, rng_state, PRNG_LIGHT_U, &light_u, &light_v);
@@ -725,7 +725,7 @@ ccl_device_forceinline void integrate_volume_direct_light(
    * TODO: decorrelate random numbers and use light_sample_new_position to
    * avoid resampling the CDF. */
   {
-    const int path_flag = INTEGRATOR_STATE(state, path, flag);
+    const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
     const uint bounce = INTEGRATOR_STATE(state, path, bounce);
     float light_u, light_v;
     path_state_rng_2D(kg, rng_state, PRNG_LIGHT_U, &light_u, &light_v);
diff --git a/intern/cycles/kernel/kernel_accumulate.h b/intern/cycles/kernel/kernel_accumulate.h
index bc45bbd5b07..d4bb1ef8685 100644
--- a/intern/cycles/kernel/kernel_accumulate.h
+++ b/intern/cycles/kernel/kernel_accumulate.h
@@ -153,7 +153,7 @@ ccl_device_inline int kernel_accum_sample(KernelGlobals kg,
 }
 
 ccl_device void kernel_accum_adaptive_buffer(KernelGlobals kg,
-                                             ConstIntegratorState state,
+                                             const int sample,
                                              const float3 contribution,
                                              ccl_global float *ccl_restrict buffer)
 {
@@ -166,7 +166,6 @@ ccl_device void kernel_accum_adaptive_buffer(KernelGlobals kg,
     return;
   }
 
-  const int sample = INTEGRATOR_STATE(state, path, sample);
   if (sample_is_even(kernel_data.integrator.sampling_pattern, sample)) {
     kernel_write_pass_float4(
         buffer + kernel_data.film.pass_adaptive_aux_buffer,
@@ -186,7 +185,7 @@ ccl_device void kernel_accum_adaptive_buffer(KernelGlobals kg,
  * passes (like combined, adaptive sampling). */
 
 ccl_device bool kernel_accum_shadow_catcher(KernelGlobals kg,
-                                            ConstIntegratorState state,
+                                            const uint32_t path_flag,
                                             const float3 contribution,
                                             ccl_global float *ccl_restrict buffer)
 {
@@ -198,7 +197,7 @@ ccl_device bool kernel_accum_shadow_catcher(KernelGlobals kg,
   kernel_assert(kernel_data.film.pass_shadow_catcher_matte != PASS_UNUSED);
 
   /* Matte pass. */
-  if (kernel_shadow_catcher_is_matte_path(kg, state)) {
+  if (kernel_shadow_catcher_is_matte_path(path_flag)) {
     kernel_write_pass_float3(buffer + kernel_data.film.pass_shadow_catcher_matte, contribution);
     /* NOTE: Accumulate the combined pass and to the samples count pass, so that the adaptive
      * sampling is based on how noisy the combined pass is as if there were no catchers in the
@@ -206,7 +205,7 @@ ccl_device bool kernel_accum_shadow_catcher(KernelGlobals kg,
   }
 
   /* Shadow catcher pass. */
-  if (kernel_shadow_catcher_is_object_pass(kg, state)) {
+  if (kernel_shadow_catcher_is_object_pass(path_flag)) {
     kernel_write_pass_float3(buffer + kernel_data.film.pass_shadow_catcher, contribution);
     return true;
   }
@@ -215,7 +214,7 @@ ccl_device bool kernel_accum_shadow_catcher(KernelGlobals kg,
 }
 
 ccl_device bool kernel_accum_shadow_catcher_transparent(KernelGlobals kg,
-                                                        ConstIntegratorState state,
+                                                        const uint32_t path_flag,
                                                         const float3 contribution,
                                                         const float transparent,
                                                         ccl_global float *ccl_restrict buffer)
@@ -227,12 +226,12 @@ ccl_device bool kernel_accum_shadow_catcher_transparent(KernelGlobals kg,
   kernel_assert(kernel_data.film.pass_shadow_catcher != PASS_UNUSED);
   kernel_assert(kernel_data.film.pass_shadow_catcher_matte != PASS_UNUSED);
 
-  if (INTEGRATOR_STATE(state, path, flag) & PATH_RAY_SHADOW_CATCHER_BACKGROUND) {
+  if (path_flag & PATH_RAY_SHADOW_CATCHER_BACKGROUND) {
     return true;
   }
 
   /* Matte pass. */
-  if (kernel_shadow_catcher_is_matte_path(kg, state)) {
+  if (kernel_shadow_catcher_is_matte_path(path_flag)) {
     kernel_write_pass_float4(
         buffer + kernel_data.film.pass_shadow_catcher_matte,
         make_float4(contribution.x, contribution.y, contribution.z, transparent));
@@ -242,7 +241,7 @@ ccl_device bool kernel_accum_shadow_catcher_transparent(KernelGlobals kg,
   }
 
   /* Shadow catcher pass. */
-  if (kernel_shadow_catcher_is_object_pass(kg, state)) {
+  if (kernel_shadow_catcher_is_object_pass(path_flag)) {
     /* NOTE: The transparency of the shadow catcher pass is ignored. It is not needed for the
      * calculation and the alpha channel of the pass contains numbers of samples contributed to a
      * pixel of the pass. */
@@ -254,7 +253,7 @@ ccl_device bool kernel_accum_shadow_catcher_transparent(KernelGlobals kg,
 }
 
 ccl_device void kernel_accum_shadow_catcher_transparent_only(KernelGlobals kg,
-                                                             ConstIntegratorState state,
+                                                             const uint32_t path_flag,
                                                              const float transparent,
                                                              ccl_global float *ccl_restrict buffer)
 {
@@ -2

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list