[Bf-blender-cvs] [95498f3888b] cycles-x: Cleanup: remove unused kernel variables

Brecht Van Lommel noreply at git.blender.org
Fri Aug 6 15:40:30 CEST 2021


Commit: 95498f3888b7fbafb2f4e88840fdcc827ef74165
Author: Brecht Van Lommel
Date:   Fri Aug 6 15:28:10 2021 +0200
Branches: cycles-x
https://developer.blender.org/rB95498f3888b7fbafb2f4e88840fdcc827ef74165

Cleanup: remove unused kernel variables

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

M	intern/cycles/kernel/kernel_accumulate.h
M	intern/cycles/kernel/kernel_shader.h
M	intern/cycles/kernel/kernel_types.h
M	intern/cycles/render/film.cpp
M	intern/cycles/render/film.h
M	intern/cycles/render/light.cpp
M	intern/cycles/render/light.h
M	intern/cycles/render/scene.cpp

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

diff --git a/intern/cycles/kernel/kernel_accumulate.h b/intern/cycles/kernel/kernel_accumulate.h
index f749a4b2afa..b7e840ecd28 100644
--- a/intern/cycles/kernel/kernel_accumulate.h
+++ b/intern/cycles/kernel/kernel_accumulate.h
@@ -32,10 +32,7 @@ CCL_NAMESPACE_BEGIN
  * that only one of those can happen at a bounce, and so do not need to accumulate
  * them separately. */
 
-ccl_device_inline void bsdf_eval_init(BsdfEval *eval,
-                                      const bool is_diffuse,
-                                      float3 value,
-                                      const bool use_light_pass)
+ccl_device_inline void bsdf_eval_init(BsdfEval *eval, const bool is_diffuse, float3 value)
 {
   eval->diffuse = zero_float3();
   eval->glossy = zero_float3();
diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h
index 1d88684c1e8..3052bb53040 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/kernel_shader.h
@@ -228,7 +228,7 @@ ccl_device_inline
                      BsdfEval *bsdf_eval,
                      const uint light_shader_flags)
 {
-  bsdf_eval_init(bsdf_eval, false, zero_float3(), kernel_data.film.use_light_pass);
+  bsdf_eval_init(bsdf_eval, false, zero_float3());
 
   return _shader_bsdf_multi_eval(
       kg, sd, omega_in, is_transmission, NULL, bsdf_eval, 0.0f, 0.0f, light_shader_flags);
@@ -322,7 +322,7 @@ ccl_device int shader_bsdf_sample_closure(const KernelGlobals *kg,
   if (*pdf != 0.0f) {
     const bool is_diffuse = (CLOSURE_IS_BSDF_DIFFUSE(sc->type) ||
                              CLOSURE_IS_BSDF_BSSRDF(sc->type));
-    bsdf_eval_init(bsdf_eval, is_diffuse, eval * sc->weight, kernel_data.film.use_light_pass);
+    bsdf_eval_init(bsdf_eval, is_diffuse, eval * sc->weight);
 
     if (sd->num_closure > 1) {
       const bool is_transmission = shader_bsdf_is_transmission(sd, *omega_in);
@@ -662,7 +662,7 @@ ccl_device float shader_volume_phase_eval(const KernelGlobals *kg,
                                           const float3 omega_in,
                                           BsdfEval *phase_eval)
 {
-  bsdf_eval_init(phase_eval, false, zero_float3(), kernel_data.film.use_light_pass);
+  bsdf_eval_init(phase_eval, false, zero_float3());
 
   return _shader_volume_phase_multi_eval(sd, phases, omega_in, -1, phase_eval, 0.0f, 0.0f);
 }
@@ -720,7 +720,7 @@ ccl_device int shader_volume_phase_sample(const KernelGlobals *kg,
   label = volume_phase_sample(sd, svc, randu, randv, &eval, omega_in, domega_in, pdf);
 
   if (*pdf != 0.0f) {
-    bsdf_eval_init(phase_eval, false, eval, kernel_data.film.use_light_pass);
+    bsdf_eval_init(phase_eval, false, eval);
   }
 
   return label;
@@ -743,7 +743,7 @@ ccl_device int shader_phase_sample_closure(const KernelGlobals *kg,
   label = volume_phase_sample(sd, sc, randu, randv, &eval, omega_in, domega_in, pdf);
 
   if (*pdf != 0.0f)
-    bsdf_eval_init(phase_eval, false, eval, kernel_data.film.use_light_pass);
+    bsdf_eval_init(phase_eval, false, eval);
 
   return label;
 }
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index d5468d8afce..d97689829b6 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -955,7 +955,6 @@ typedef struct KernelFilm {
 
   int light_pass_flag;
   int pass_stride;
-  int use_light_pass;
 
   int pass_combined;
   int pass_depth;
@@ -1030,6 +1029,9 @@ typedef struct KernelFilm {
   int display_pass_denoised_offset;
   int show_active_pixels;
   int use_approximate_shadow_catcher;
+
+  /* padding */
+  int pad1;
 } KernelFilm;
 static_assert_align(KernelFilm, 16);
 
diff --git a/intern/cycles/render/film.cpp b/intern/cycles/render/film.cpp
index 52366d32b64..929f6c32165 100644
--- a/intern/cycles/render/film.cpp
+++ b/intern/cycles/render/film.cpp
@@ -116,8 +116,6 @@ NODE_DEFINE(Film)
   SOCKET_FLOAT(mist_depth, "Mist Depth", 100.0f);
   SOCKET_FLOAT(mist_falloff, "Mist Falloff", 1.0f);
 
-  SOCKET_BOOLEAN(use_light_visibility, "Use Light Visibility", false);
-
   const NodeEnum *pass_type_enum = Pass::get_type_enum();
   SOCKET_ENUM(display_pass, "Display Pass", *pass_type_enum, PASS_COMBINED);
 
@@ -173,6 +171,7 @@ void Film::device_update(Device *device, DeviceScene *dscene, Scene *scene)
 
   /* update __data */
   kfilm->exposure = exposure;
+  kfilm->pass_alpha_threshold = pass_alpha_threshold;
   kfilm->pass_flag = 0;
 
   kfilm->display_pass_type = display_pass->type;
@@ -183,7 +182,6 @@ void Film::device_update(Device *device, DeviceScene *dscene, Scene *scene)
 
   kfilm->light_pass_flag = 0;
   kfilm->pass_stride = 0;
-  kfilm->use_light_pass = use_light_visibility;
 
   /* Mark with PASS_UNUSED to avoid mask test in the kernel. */
   kfilm->pass_background = PASS_UNUSED;
@@ -242,9 +240,6 @@ void Film::device_update(Device *device, DeviceScene *dscene, Scene *scene)
 
     int pass_flag = (1 << (pass->type % 32));
     if (pass->type <= PASS_CATEGORY_LIGHT_END) {
-      if (pass->type != PASS_COMBINED) {
-        kfilm->use_light_pass = 1;
-      }
       kfilm->light_pass_flag |= pass_flag;
     }
     else if (pass->type <= PASS_CATEGORY_DATA_END) {
@@ -397,19 +392,6 @@ void Film::device_update(Device *device, DeviceScene *dscene, Scene *scene)
     kfilm->pass_stride += pass->get_info().num_components;
   }
 
-  /* When displaying the normal/uv pass in the viewport we need to disable
-   * transparency.
-   *
-   * We also don't need to perform light accumulations. Later we want to optimize this to suppress
-   * light calculations. */
-  if (display_pass->type == PASS_NORMAL || display_pass->type == PASS_UV ||
-      display_pass->type == PASS_ROUGHNESS) {
-    kfilm->use_light_pass = 0;
-  }
-  else {
-    kfilm->pass_alpha_threshold = pass_alpha_threshold;
-  }
-
   /* update filter table */
   vector<float> table = filter_table(filter_type, filter_width);
   scene->lookup_tables->remove_table(&filter_table_offset_);
diff --git a/intern/cycles/render/film.h b/intern/cycles/render/film.h
index 834e4920e00..02b5b9ad902 100644
--- a/intern/cycles/render/film.h
+++ b/intern/cycles/render/film.h
@@ -56,7 +56,6 @@ class Film : public Node {
   NODE_SOCKET_API(float, mist_depth)
   NODE_SOCKET_API(float, mist_falloff)
 
-  NODE_SOCKET_API(bool, use_light_visibility)
   NODE_SOCKET_API(CryptomatteType, cryptomatte_passes)
   NODE_SOCKET_API(int, cryptomatte_depth)
 
diff --git a/intern/cycles/render/light.cpp b/intern/cycles/render/light.cpp
index 746a6f785d6..0e10ec49892 100644
--- a/intern/cycles/render/light.cpp
+++ b/intern/cycles/render/light.cpp
@@ -179,7 +179,6 @@ LightManager::LightManager()
 {
   update_flags = UPDATE_ALL;
   need_update_background = true;
-  use_light_visibility = false;
   last_background_enabled = false;
   last_background_resolution = 0;
 }
@@ -348,19 +347,15 @@ void LightManager::device_update_distribution(Device *,
     }
     if (!(object->get_visibility() & PATH_RAY_DIFFUSE)) {
       shader_flag |= SHADER_EXCLUDE_DIFFUSE;
-      use_light_visibility = true;
     }
     if (!(object->get_visibility() & PATH_RAY_GLOSSY)) {
       shader_flag |= SHADER_EXCLUDE_GLOSSY;
-      use_light_visibility = true;
     }
     if (!(object->get_visibility() & PATH_RAY_TRANSMIT)) {
       shader_flag |= SHADER_EXCLUDE_TRANSMIT;
-      use_light_visibility = true;
     }
     if (!(object->get_visibility() & PATH_RAY_VOLUME_SCATTER)) {
       shader_flag |= SHADER_EXCLUDE_SCATTER;
-      use_light_visibility = true;
     }
     if (!(object->get_is_shadow_catcher())) {
       shader_flag |= SHADER_EXCLUDE_SHADOW_CATCHER;
@@ -762,19 +757,15 @@ void LightManager::device_update_points(Device *, DeviceScene *dscene, Scene *sc
     }
     if (!light->use_diffuse) {
       shader_id |= SHADER_EXCLUDE_DIFFUSE;
-      use_light_visibility = true;
     }
     if (!light->use_glossy) {
       shader_id |= SHADER_EXCLUDE_GLOSSY;
-      use_light_visibility = true;
     }
     if (!light->use_transmission) {
       shader_id |= SHADER_EXCLUDE_TRANSMIT;
-      use_light_visibility = true;
     }
     if (!light->use_scatter) {
       shader_id |= SHADER_EXCLUDE_SCATTER;
-      use_light_visibility = true;
     }
     if (!light->is_shadow_catcher) {
       shader_id |= SHADER_EXCLUDE_SHADOW_CATCHER;
@@ -832,19 +823,15 @@ void LightManager::device_update_points(Device *, DeviceScene *dscene, Scene *sc
 
       if (!(visibility & PATH_RAY_DIFFUSE)) {
         shader_id |= SHADER_EXCLUDE_DIFFUSE;
-        use_light_visibility = true;
       }
       if (!(visibility & PATH_RAY_GLOSSY)) {
         shader_id |= SHADER_EXCLUDE_GLOSSY;
-        use_light_visibility = true;
       }
       if (!(visibility & PATH_RAY_TRANSMIT)) {
         shader_id |= SHADER_EXCLUDE_TRANSMIT;
-        use_light_visibility = true;
       }
       if (!(visibility & PATH_RAY_VOLUME_SCATTER)) {
         shader_id |= SHADER_EXCLUDE_SCATTER;
-        use_light_visibility = true;
       }
     }
     else if (light->light_type == LIGHT_AREA) {
@@ -994,8 +981,6 @@ void LightManager::device_update(Device *device,
 
   device_free(device, dscene, need_update_background);
 
-  use_light_visibility = false;
-
   device_update_points(device, dscene, scene);
   if (progress.get_cancel())
     return;
@@ -1014,8 +999,6 @@ void LightManager::device_update(Device *device,
   if (progress.get_cancel())
     return;
 
-  scene->film->set_use_light_visibility(use_light_visibility);
-
   update_flags = UPDATE_NONE;
   need_update_background = false;
 }
diff --git a/intern/cycles/render/light.h b/intern/cycles/render/light.h
index a5681db9f69..7f86237c8b3 100644
--- a/intern/cycles/render/light.h
+++ b/intern/cycles/render/light.h
@@ -109,8 +109,6 @@ class LightManager {
     UPDATE_NONE = 0u,
   };
 
-  bool use_light_visibility;
-
   /* Need to update background (including multiple importance map) */
   bool need_update_background;
 
diff --git a/intern/cycles/render/scene.cpp b/intern/cycles/render/scene.cpp
index 1d8f0bb2e40..a4b030190dc 100644
--- a/intern/cycles/render/scene.cpp
+++ b/intern/cycles/render/scene.cpp
@@ -256,7 +256,6 @@ void Scene::device_update(Device *device_, Progress &progress)
    * - Camera may be used for adaptive

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list