[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