Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2021-10-17 21:09:45 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-10-18 20:02:10 +0300
commitfc4b1fede385687acb2cf7f82591aa43097110a9 (patch)
tree66e633e53090d54416fe1ca6c28b406d84b4590a /intern/cycles
parent1df3b51988852fa8ee6b530a64aa23346db9acd4 (diff)
Cleanup: consistently use uint32_t for path flag
Diffstat (limited to 'intern/cycles')
-rw-r--r--intern/cycles/kernel/closure/bsdf_transparent.h2
-rw-r--r--intern/cycles/kernel/integrator/integrator_intersect_closest.h4
-rw-r--r--intern/cycles/kernel/integrator/integrator_shade_surface.h6
-rw-r--r--intern/cycles/kernel/integrator/integrator_shade_volume.h6
-rw-r--r--intern/cycles/kernel/kernel_accumulate.h58
-rw-r--r--intern/cycles/kernel/kernel_bake.h2
-rw-r--r--intern/cycles/kernel/kernel_light.h10
-rw-r--r--intern/cycles/kernel/kernel_passes.h2
-rw-r--r--intern/cycles/kernel/kernel_shader.h4
-rw-r--r--intern/cycles/kernel/kernel_shadow_catcher.h14
-rw-r--r--intern/cycles/kernel/kernel_types.h66
-rw-r--r--intern/cycles/kernel/osl/background.cpp4
-rw-r--r--intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp2
-rw-r--r--intern/cycles/kernel/osl/bsdf_phong_ramp.cpp2
-rw-r--r--intern/cycles/kernel/osl/emissive.cpp2
-rw-r--r--intern/cycles/kernel/osl/osl_bssrdf.cpp4
-rw-r--r--intern/cycles/kernel/osl/osl_closures.cpp42
-rw-r--r--intern/cycles/kernel/osl/osl_closures.h6
-rw-r--r--intern/cycles/kernel/osl/osl_shader.cpp10
-rw-r--r--intern/cycles/kernel/osl/osl_shader.h6
-rw-r--r--intern/cycles/kernel/svm/svm.h2
-rw-r--r--intern/cycles/kernel/svm/svm_aov.h2
-rw-r--r--intern/cycles/kernel/svm/svm_closure.h4
-rw-r--r--intern/cycles/kernel/svm/svm_light_path.h2
-rw-r--r--intern/cycles/kernel/svm/svm_tex_coord.h6
25 files changed, 138 insertions, 130 deletions
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)
{
@@ -265,7 +264,7 @@ ccl_device void kernel_accum_shadow_catcher_transparent_only(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_float(buffer + kernel_data.film.pass_shadow_catcher_matte + 3, transparent);
}
}
@@ -278,12 +277,13 @@ ccl_device void kernel_accum_shadow_catcher_transparent_only(KernelGlobals kg,
/* Write combined pass. */
ccl_device_inline void kernel_accum_combined_pass(KernelGlobals kg,
- ConstIntegratorState state,
+ const uint32_t path_flag,
+ const int sample,
const float3 contribution,
ccl_global float *ccl_restrict buffer)
{
#ifdef __SHADOW_CATCHER__
- if (kernel_accum_shadow_catcher(kg, state, contribution, buffer)) {
+ if (kernel_accum_shadow_catcher(kg, path_flag, contribution, buffer)) {
return;
}
#endif
@@ -292,19 +292,20 @@ ccl_device_inline void kernel_accum_combined_pass(KernelGlobals kg,
kernel_write_pass_float3(buffer + kernel_data.film.pass_combined, contribution);
}
- kernel_accum_adaptive_buffer(kg, state, contribution, buffer);
+ kernel_accum_adaptive_buffer(kg, sample, contribution, buffer);
}
/* Write combined pass with transparency. */
ccl_device_inline void kernel_accum_combined_transparent_pass(KernelGlobals kg,
- ConstIntegratorState state,
+ const uint32_t path_flag,
+ const int sample,
const float3 contribution,
const float transparent,
ccl_global float *ccl_restrict
buffer)
{
#ifdef __SHADOW_CATCHER__
- if (kernel_accum_shadow_catcher_transparent(kg, state, contribution, transparent, buffer)) {
+ if (kernel_accum_shadow_catcher_transparent(kg, path_flag, contribution, transparent, buffer)) {
return;
}
#endif
@@ -315,7 +316,7 @@ ccl_device_inline void kernel_accum_combined_transparent_pass(KernelGlobals kg,
make_float4(contribution.x, contribution.y, contribution.z, transparent));
}
- kernel_accum_adaptive_buffer(kg, state, contribution, buffer);
+ kernel_accum_adaptive_buffer(kg, sample, contribution, buffer);
}
/* Write background or emission to appropriate pass. */
@@ -331,7 +332,7 @@ ccl_device_inline void kernel_accum_emission_or_background_pass(KernelGlobals kg
}
#ifdef __PASSES__
- const int path_flag = INTEGRATOR_STATE(state, path, flag);
+ const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
int pass_offset = PASS_UNUSED;
/* Denoising albedo. */
@@ -401,11 +402,14 @@ ccl_device_inline void kernel_accum_light(KernelGlobals kg,
ccl_global float *buffer = kernel_accum_pixel_render_buffer(kg, state, render_buffer);
- kernel_accum_combined_pass(kg, state, contribution, buffer);
+ const uint32_t path_flag = INTEGRATOR_STATE(state, shadow_path, flag);
+ const int sample = INTEGRATOR_STATE(state, path, sample);
+
+ kernel_accum_combined_pass(kg, path_flag, sample, contribution, buffer);
#ifdef __PASSES__
if (kernel_data.film.light_pass_flag & PASS_ANY) {
- const int path_flag = INTEGRATOR_STATE(state, shadow_path, flag);
+ const uint32_t path_flag = INTEGRATOR_STATE(state, shadow_path, flag);
int pass_offset = PASS_UNUSED;
if (path_flag & (PATH_RAY_REFLECT_PASS | PATH_RAY_TRANSMISSION_PASS)) {
@@ -467,6 +471,7 @@ ccl_device_inline void kernel_accum_light(KernelGlobals kg,
* in many places. */
ccl_device_inline void kernel_accum_transparent(KernelGlobals kg,
ConstIntegratorState state,
+ const uint32_t path_flag,
const float transparent,
ccl_global float *ccl_restrict render_buffer)
{
@@ -476,7 +481,7 @@ ccl_device_inline void kernel_accum_transparent(KernelGlobals kg,
kernel_write_pass_float(buffer + kernel_data.film.pass_combined + 3, transparent);
}
- kernel_accum_shadow_catcher_transparent_only(kg, state, transparent, buffer);
+ kernel_accum_shadow_catcher_transparent_only(kg, path_flag, transparent, buffer);
}
/* Write background contribution to render buffer.
@@ -493,12 +498,15 @@ ccl_device_inline void kernel_accum_background(KernelGlobals kg,
kernel_accum_clamp(kg, &contribution, INTEGRATOR_STATE(state, path, bounce) - 1);
ccl_global float *buffer = kernel_accum_pixel_render_buffer(kg, state, render_buffer);
+ const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
if (is_transparent_background_ray) {
- kernel_accum_transparent(kg, state, transparent, render_buffer);
+ kernel_accum_transparent(kg, state, path_flag, transparent, render_buffer);
}
else {
- kernel_accum_combined_transparent_pass(kg, state, contribution, transparent, buffer);
+ const int sample = INTEGRATOR_STATE(state, path, sample);
+ kernel_accum_combined_transparent_pass(
+ kg, path_flag, sample, contribution, transparent, buffer);
}
kernel_accum_emission_or_background_pass(
kg, state, contribution, buffer, kernel_data.film.pass_background);
@@ -515,8 +523,10 @@ ccl_device_inline void kernel_accum_emission(KernelGlobals kg,
kernel_accum_clamp(kg, &contribution, INTEGRATOR_STATE(state, path, bounce) - 1);
ccl_global float *buffer = kernel_accum_pixel_render_buffer(kg, state, render_buffer);
+ const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
+ const int sample = INTEGRATOR_STATE(state, path, sample);
- kernel_accum_combined_pass(kg, state, contribution, buffer);
+ kernel_accum_combined_pass(kg, path_flag, sample, contribution, buffer);
kernel_accum_emission_or_background_pass(
kg, state, contribution, buffer, kernel_data.film.pass_emission);
}
diff --git a/intern/cycles/kernel/kernel_bake.h b/intern/cycles/kernel/kernel_bake.h
index 933ee0082c2..25b8ca55ead 100644
--- a/intern/cycles/kernel/kernel_bake.h
+++ b/intern/cycles/kernel/kernel_bake.h
@@ -75,7 +75,7 @@ ccl_device void kernel_background_evaluate(KernelGlobals kg,
/* Evaluate shader.
* This is being evaluated for all BSDFs, so path flag does not contain a specific type. */
- const int path_flag = PATH_RAY_EMISSION;
+ const uint32_t path_flag = PATH_RAY_EMISSION;
shader_eval_surface<KERNEL_FEATURE_NODE_MASK_SURFACE_LIGHT>(
kg, INTEGRATOR_STATE_NULL, &sd, NULL, path_flag);
float3 color = shader_background_eval(&sd);
diff --git a/intern/cycles/kernel/kernel_light.h b/intern/cycles/kernel/kernel_light.h
index a7a95918b4e..b3eaed4fcb0 100644
--- a/intern/cycles/kernel/kernel_light.h
+++ b/intern/cycles/kernel/kernel_light.h
@@ -50,7 +50,7 @@ ccl_device_inline bool light_sample(KernelGlobals kg,
const float randu,
const float randv,
const float3 P,
- const int path_flag,
+ const uint32_t path_flag,
ccl_private LightSample *ls)
{
const ccl_global KernelLight *klight = &kernel_tex_fetch(__lights, lamp);
@@ -215,7 +215,7 @@ ccl_device bool lights_intersect(KernelGlobals kg,
const int last_prim,
const int last_object,
const int last_type,
- const int path_flag)
+ const uint32_t path_flag)
{
for (int lamp = 0; lamp < kernel_data.integrator.num_all_lights; lamp++) {
const ccl_global KernelLight *klight = &kernel_tex_fetch(__lights, lamp);
@@ -797,7 +797,7 @@ ccl_device_noinline bool light_distribution_sample(KernelGlobals kg,
const float time,
const float3 P,
const int bounce,
- const int path_flag,
+ const uint32_t path_flag,
ccl_private LightSample *ls)
{
/* Sample light index from distribution. */
@@ -837,7 +837,7 @@ ccl_device_inline bool light_distribution_sample_from_volume_segment(KernelGloba
const float time,
const float3 P,
const int bounce,
- const int path_flag,
+ const uint32_t path_flag,
ccl_private LightSample *ls)
{
return light_distribution_sample<true>(kg, randu, randv, time, P, bounce, path_flag, ls);
@@ -849,7 +849,7 @@ ccl_device_inline bool light_distribution_sample_from_position(KernelGlobals kg,
const float time,
const float3 P,
const int bounce,
- const int path_flag,
+ const uint32_t path_flag,
ccl_private LightSample *ls)
{
return light_distribution_sample<false>(kg, randu, randv, time, P, bounce, path_flag, ls);
diff --git a/intern/cycles/kernel/kernel_passes.h b/intern/cycles/kernel/kernel_passes.h
index 4d05b63bfbd..4e4ffa68d25 100644
--- a/intern/cycles/kernel/kernel_passes.h
+++ b/intern/cycles/kernel/kernel_passes.h
@@ -201,7 +201,7 @@ ccl_device_inline void kernel_write_data_passes(KernelGlobals kg,
ccl_global float *ccl_restrict render_buffer)
{
#ifdef __PASSES__
- const int path_flag = INTEGRATOR_STATE(state, path, flag);
+ const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
if (!(path_flag & PATH_RAY_CAMERA)) {
return;
diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h
index 4a57d22775a..4eded9039bd 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/kernel_shader.h
@@ -580,7 +580,7 @@ ccl_device void shader_eval_surface(KernelGlobals kg,
ConstIntegratorState state,
ccl_private ShaderData *ccl_restrict sd,
ccl_global float *ccl_restrict buffer,
- int path_flag)
+ uint32_t path_flag)
{
/* If path is being terminated, we are tracing a shadow ray or evaluating
* emission, then we don't need to store closures. The emission and shadow
@@ -767,7 +767,7 @@ template<const bool shadow, typename StackReadOp>
ccl_device_inline void shader_eval_volume(KernelGlobals kg,
ConstIntegratorState state,
ccl_private ShaderData *ccl_restrict sd,
- const int path_flag,
+ const uint32_t path_flag,
StackReadOp stack_read)
{
/* If path is being terminated, we are tracing a shadow ray or evaluating
diff --git a/intern/cycles/kernel/kernel_shadow_catcher.h b/intern/cycles/kernel/kernel_shadow_catcher.h
index 8dc7a568b33..00dddb5b198 100644
--- a/intern/cycles/kernel/kernel_shadow_catcher.h
+++ b/intern/cycles/kernel/kernel_shadow_catcher.h
@@ -39,7 +39,7 @@ ccl_device_inline bool kernel_shadow_catcher_is_path_split_bounce(KernelGlobals
return false;
}
- const int path_flag = INTEGRATOR_STATE(state, path, flag);
+ const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
if ((path_flag & PATH_RAY_TRANSPARENT_BACKGROUND) == 0) {
/* Split only on primary rays, secondary bounces are to treat shadow catcher as a regular
@@ -66,7 +66,7 @@ ccl_device_inline bool kernel_shadow_catcher_path_can_split(KernelGlobals kg,
return false;
}
- const int path_flag = INTEGRATOR_STATE(state, path, flag);
+ const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
if (path_flag & PATH_RAY_SHADOW_CATCHER_HIT) {
/* Shadow catcher was already hit and the state was split. No further split is allowed. */
@@ -105,16 +105,14 @@ ccl_device_inline bool kernel_shadow_catcher_split(KernelGlobals kg,
#ifdef __SHADOW_CATCHER__
-ccl_device_forceinline bool kernel_shadow_catcher_is_matte_path(KernelGlobals kg,
- ConstIntegratorState state)
+ccl_device_forceinline bool kernel_shadow_catcher_is_matte_path(const uint32_t path_flag)
{
- return (INTEGRATOR_STATE(state, path, flag) & PATH_RAY_SHADOW_CATCHER_HIT) == 0;
+ return (path_flag & PATH_RAY_SHADOW_CATCHER_HIT) == 0;
}
-ccl_device_forceinline bool kernel_shadow_catcher_is_object_pass(KernelGlobals kg,
- ConstIntegratorState state)
+ccl_device_forceinline bool kernel_shadow_catcher_is_object_pass(const uint32_t path_flag)
{
- return INTEGRATOR_STATE(state, path, flag) & PATH_RAY_SHADOW_CATCHER_PASS;
+ return path_flag & PATH_RAY_SHADOW_CATCHER_PASS;
}
#endif /* __SHADOW_CATCHER__ */
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index 5625c0e4d19..e478019b25c 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -197,30 +197,30 @@ enum PathRayFlag {
* NOTE: Recalculated after a surface bounce.
*/
- PATH_RAY_CAMERA = (1 << 0),
- PATH_RAY_REFLECT = (1 << 1),
- PATH_RAY_TRANSMIT = (1 << 2),
- PATH_RAY_DIFFUSE = (1 << 3),
- PATH_RAY_GLOSSY = (1 << 4),
- PATH_RAY_SINGULAR = (1 << 5),
- PATH_RAY_TRANSPARENT = (1 << 6),
- PATH_RAY_VOLUME_SCATTER = (1 << 7),
+ PATH_RAY_CAMERA = (1U << 0U),
+ PATH_RAY_REFLECT = (1U << 1U),
+ PATH_RAY_TRANSMIT = (1U << 2U),
+ PATH_RAY_DIFFUSE = (1U << 3U),
+ PATH_RAY_GLOSSY = (1U << 4U),
+ PATH_RAY_SINGULAR = (1U << 5U),
+ PATH_RAY_TRANSPARENT = (1U << 6U),
+ PATH_RAY_VOLUME_SCATTER = (1U << 7U),
/* Shadow ray visibility. */
- PATH_RAY_SHADOW_OPAQUE = (1 << 8),
- PATH_RAY_SHADOW_TRANSPARENT = (1 << 9),
+ PATH_RAY_SHADOW_OPAQUE = (1U << 8U),
+ PATH_RAY_SHADOW_TRANSPARENT = (1U << 9U),
PATH_RAY_SHADOW = (PATH_RAY_SHADOW_OPAQUE | PATH_RAY_SHADOW_TRANSPARENT),
/* Special flag to tag unaligned BVH nodes.
* Only set and used in BVH nodes to distinguish how to interpret bounding box information stored
- * in the node (either it should be intersected as AABB or as OBB). */
- PATH_RAY_NODE_UNALIGNED = (1 << 10),
+ * in the node (either it should be intersected as AABB or as OBBU). */
+ PATH_RAY_NODE_UNALIGNED = (1U << 10U),
/* Subset of flags used for ray visibility for intersection.
*
* NOTE: SHADOW_CATCHER macros below assume there are no more than
* 16 visibility bits. */
- PATH_RAY_ALL_VISIBILITY = ((1 << 11) - 1),
+ PATH_RAY_ALL_VISIBILITY = ((1U << 11U) - 1U),
/* --------------------------------------------------------------------
* Path flags.
@@ -228,69 +228,69 @@ enum PathRayFlag {
/* Don't apply multiple importance sampling weights to emission from
* lamp or surface hits, because they were not direct light sampled. */
- PATH_RAY_MIS_SKIP = (1 << 11),
+ PATH_RAY_MIS_SKIP = (1U << 11U),
/* Diffuse bounce earlier in the path, skip SSS to improve performance
* and avoid branching twice with disk sampling SSS. */
- PATH_RAY_DIFFUSE_ANCESTOR = (1 << 12),
+ PATH_RAY_DIFFUSE_ANCESTOR = (1U << 12U),
/* Single pass has been written. */
- PATH_RAY_SINGLE_PASS_DONE = (1 << 13),
+ PATH_RAY_SINGLE_PASS_DONE = (1U << 13U),
/* Zero background alpha, for camera or transparent glass rays. */
- PATH_RAY_TRANSPARENT_BACKGROUND = (1 << 14),
+ PATH_RAY_TRANSPARENT_BACKGROUND = (1U << 14U),
/* Terminate ray immediately at next bounce. */
- PATH_RAY_TERMINATE_ON_NEXT_SURFACE = (1 << 15),
- PATH_RAY_TERMINATE_IN_NEXT_VOLUME = (1 << 16),
+ PATH_RAY_TERMINATE_ON_NEXT_SURFACE = (1U << 15U),
+ PATH_RAY_TERMINATE_IN_NEXT_VOLUME = (1U << 16U),
/* Ray is to be terminated, but continue with transparent bounces and
* emission as long as we encounter them. This is required to make the
* MIS between direct and indirect light rays match, as shadow rays go
* through transparent surfaces to reach emission too. */
- PATH_RAY_TERMINATE_AFTER_TRANSPARENT = (1 << 17),
+ PATH_RAY_TERMINATE_AFTER_TRANSPARENT = (1U << 17U),
/* Terminate ray immediately after volume shading. */
- PATH_RAY_TERMINATE_AFTER_VOLUME = (1 << 18),
+ PATH_RAY_TERMINATE_AFTER_VOLUME = (1U << 18U),
/* Ray is to be terminated. */
PATH_RAY_TERMINATE = (PATH_RAY_TERMINATE_ON_NEXT_SURFACE | PATH_RAY_TERMINATE_IN_NEXT_VOLUME |
PATH_RAY_TERMINATE_AFTER_TRANSPARENT | PATH_RAY_TERMINATE_AFTER_VOLUME),
/* Path and shader is being evaluated for direct lighting emission. */
- PATH_RAY_EMISSION = (1 << 19),
+ PATH_RAY_EMISSION = (1U << 19U),
/* Perform subsurface scattering. */
- PATH_RAY_SUBSURFACE_RANDOM_WALK = (1 << 20),
- PATH_RAY_SUBSURFACE_DISK = (1 << 21),
- PATH_RAY_SUBSURFACE_USE_FRESNEL = (1 << 22),
+ PATH_RAY_SUBSURFACE_RANDOM_WALK = (1U << 20U),
+ PATH_RAY_SUBSURFACE_DISK = (1U << 21U),
+ PATH_RAY_SUBSURFACE_USE_FRESNEL = (1U << 22U),
PATH_RAY_SUBSURFACE = (PATH_RAY_SUBSURFACE_RANDOM_WALK | PATH_RAY_SUBSURFACE_DISK |
PATH_RAY_SUBSURFACE_USE_FRESNEL),
/* Contribute to denoising features. */
- PATH_RAY_DENOISING_FEATURES = (1 << 23),
+ PATH_RAY_DENOISING_FEATURES = (1U << 23U),
/* Render pass categories. */
- PATH_RAY_REFLECT_PASS = (1 << 24),
- PATH_RAY_TRANSMISSION_PASS = (1 << 25),
- PATH_RAY_VOLUME_PASS = (1 << 26),
+ PATH_RAY_REFLECT_PASS = (1U << 24U),
+ PATH_RAY_TRANSMISSION_PASS = (1U << 25U),
+ PATH_RAY_VOLUME_PASS = (1U << 26U),
PATH_RAY_ANY_PASS = (PATH_RAY_REFLECT_PASS | PATH_RAY_TRANSMISSION_PASS | PATH_RAY_VOLUME_PASS),
/* Shadow ray is for a light or surface. */
- PATH_RAY_SHADOW_FOR_LIGHT = (1 << 27),
+ PATH_RAY_SHADOW_FOR_LIGHT = (1U << 27U),
/* A shadow catcher object was hit and the path was split into two. */
- PATH_RAY_SHADOW_CATCHER_HIT = (1 << 28),
+ PATH_RAY_SHADOW_CATCHER_HIT = (1U << 28U),
/* A shadow catcher object was hit and this path traces only shadow catchers, writing them into
* their dedicated pass for later division.
*
* NOTE: Is not covered with `PATH_RAY_ANY_PASS` because shadow catcher does special handling
* which is separate from the light passes. */
- PATH_RAY_SHADOW_CATCHER_PASS = (1 << 29),
+ PATH_RAY_SHADOW_CATCHER_PASS = (1U << 29U),
/* Path is evaluating background for an approximate shadow catcher with non-transparent film. */
- PATH_RAY_SHADOW_CATCHER_BACKGROUND = (1 << 30),
+ PATH_RAY_SHADOW_CATCHER_BACKGROUND = (1U << 30U),
};
/* Configure ray visibility bits for rays and objects respectively,
diff --git a/intern/cycles/kernel/osl/background.cpp b/intern/cycles/kernel/osl/background.cpp
index 8e497986dcc..bb290a5ced2 100644
--- a/intern/cycles/kernel/osl/background.cpp
+++ b/intern/cycles/kernel/osl/background.cpp
@@ -54,7 +54,7 @@ using namespace OSL;
///
class GenericBackgroundClosure : public CClosurePrimitive {
public:
- void setup(ShaderData *sd, int /* path_flag */, float3 weight)
+ void setup(ShaderData *sd, uint32_t /* path_flag */, float3 weight)
{
background_setup(sd, weight);
}
@@ -69,7 +69,7 @@ class GenericBackgroundClosure : public CClosurePrimitive {
///
class HoldoutClosure : CClosurePrimitive {
public:
- void setup(ShaderData *sd, int /* path_flag */, float3 weight)
+ void setup(ShaderData *sd, uint32_t /* path_flag */, float3 weight)
{
closure_alloc(sd, sizeof(ShaderClosure), CLOSURE_HOLDOUT_ID, weight);
sd->flag |= SD_HOLDOUT;
diff --git a/intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp b/intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp
index a2f9d3f759a..45216f4c74d 100644
--- a/intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp
+++ b/intern/cycles/kernel/osl/bsdf_diffuse_ramp.cpp
@@ -53,7 +53,7 @@ class DiffuseRampClosure : public CBSDFClosure {
DiffuseRampBsdf params;
Color3 colors[8];
- void setup(ShaderData *sd, int /* path_flag */, float3 weight)
+ void setup(ShaderData *sd, uint32_t /* path_flag */, float3 weight)
{
DiffuseRampBsdf *bsdf = (DiffuseRampBsdf *)bsdf_alloc_osl(
sd, sizeof(DiffuseRampBsdf), weight, &params);
diff --git a/intern/cycles/kernel/osl/bsdf_phong_ramp.cpp b/intern/cycles/kernel/osl/bsdf_phong_ramp.cpp
index 812c3b6e71b..90160fba962 100644
--- a/intern/cycles/kernel/osl/bsdf_phong_ramp.cpp
+++ b/intern/cycles/kernel/osl/bsdf_phong_ramp.cpp
@@ -52,7 +52,7 @@ class PhongRampClosure : public CBSDFClosure {
PhongRampBsdf params;
Color3 colors[8];
- void setup(ShaderData *sd, int /* path_flag */, float3 weight)
+ void setup(ShaderData *sd, uint32_t /* path_flag */, float3 weight)
{
PhongRampBsdf *bsdf = (PhongRampBsdf *)bsdf_alloc_osl(
sd, sizeof(PhongRampBsdf), weight, &params);
diff --git a/intern/cycles/kernel/osl/emissive.cpp b/intern/cycles/kernel/osl/emissive.cpp
index 80dfbee879e..5a7fe14b22e 100644
--- a/intern/cycles/kernel/osl/emissive.cpp
+++ b/intern/cycles/kernel/osl/emissive.cpp
@@ -56,7 +56,7 @@ using namespace OSL;
///
class GenericEmissiveClosure : public CClosurePrimitive {
public:
- void setup(ShaderData *sd, int /* path_flag */, float3 weight)
+ void setup(ShaderData *sd, uint32_t /* path_flag */, float3 weight)
{
emission_setup(sd, weight);
}
diff --git a/intern/cycles/kernel/osl/osl_bssrdf.cpp b/intern/cycles/kernel/osl/osl_bssrdf.cpp
index b6b0d72103a..5bf7b604498 100644
--- a/intern/cycles/kernel/osl/osl_bssrdf.cpp
+++ b/intern/cycles/kernel/osl/osl_bssrdf.cpp
@@ -67,7 +67,7 @@ class CBSSRDFClosure : public CClosurePrimitive {
ior = 1.4f;
}
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
if (method == u_burley) {
alloc(sd, path_flag, weight, CLOSURE_BSSRDF_BURLEY_ID);
@@ -80,7 +80,7 @@ class CBSSRDFClosure : public CClosurePrimitive {
}
}
- void alloc(ShaderData *sd, int path_flag, float3 weight, ClosureType type)
+ void alloc(ShaderData *sd, uint32_t path_flag, float3 weight, ClosureType type)
{
Bssrdf *bssrdf = bssrdf_alloc(sd, weight);
diff --git a/intern/cycles/kernel/osl/osl_closures.cpp b/intern/cycles/kernel/osl/osl_closures.cpp
index 94712a4dd13..b59bf5a1322 100644
--- a/intern/cycles/kernel/osl/osl_closures.cpp
+++ b/intern/cycles/kernel/osl/osl_closures.cpp
@@ -203,7 +203,7 @@ CLOSURE_FLOAT3_PARAM(DiffuseClosure, params.N),
public:
PrincipledSheenBsdf params;
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
if (!skip(sd, path_flag, LABEL_DIFFUSE)) {
PrincipledSheenBsdf *bsdf = (PrincipledSheenBsdf *)bsdf_alloc_osl(
@@ -228,7 +228,7 @@ class PrincipledHairClosure : public CBSDFClosure {
public:
PrincipledHairBSDF params;
- PrincipledHairBSDF *alloc(ShaderData *sd, int path_flag, float3 weight)
+ PrincipledHairBSDF *alloc(ShaderData *sd, uint32_t path_flag, float3 weight)
{
PrincipledHairBSDF *bsdf = (PrincipledHairBSDF *)bsdf_alloc_osl(
sd, sizeof(PrincipledHairBSDF), weight, &params);
@@ -246,7 +246,7 @@ class PrincipledHairClosure : public CBSDFClosure {
return bsdf;
}
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
if (!skip(sd, path_flag, LABEL_GLOSSY)) {
PrincipledHairBSDF *bsdf = (PrincipledHairBSDF *)alloc(sd, path_flag, weight);
@@ -282,7 +282,7 @@ class PrincipledClearcoatClosure : public CBSDFClosure {
MicrofacetBsdf params;
float clearcoat, clearcoat_roughness;
- MicrofacetBsdf *alloc(ShaderData *sd, int path_flag, float3 weight)
+ MicrofacetBsdf *alloc(ShaderData *sd, uint32_t path_flag, float3 weight)
{
MicrofacetBsdf *bsdf = (MicrofacetBsdf *)bsdf_alloc_osl(
sd, sizeof(MicrofacetBsdf), weight, &params);
@@ -306,7 +306,7 @@ class PrincipledClearcoatClosure : public CBSDFClosure {
return bsdf;
}
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
MicrofacetBsdf *bsdf = alloc(sd, path_flag, weight);
if (!bsdf) {
@@ -496,7 +496,7 @@ void OSLShader::register_closures(OSLShadingSystem *ss_)
/* BSDF Closure */
-bool CBSDFClosure::skip(const ShaderData *sd, int path_flag, int scattering)
+bool CBSDFClosure::skip(const ShaderData *sd, uint32_t path_flag, int scattering)
{
/* caustic options */
if ((scattering & LABEL_GLOSSY) && (path_flag & PATH_RAY_DIFFUSE)) {
@@ -519,7 +519,7 @@ class MicrofacetClosure : public CBSDFClosure {
ustring distribution;
int refract;
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
static ustring u_ggx("ggx");
static ustring u_default("default");
@@ -595,7 +595,7 @@ class MicrofacetFresnelClosure : public CBSDFClosure {
float3 color;
float3 cspec0;
- MicrofacetBsdf *alloc(ShaderData *sd, int path_flag, float3 weight)
+ MicrofacetBsdf *alloc(ShaderData *sd, uint32_t path_flag, float3 weight)
{
/* Technically, the MultiGGX Glass closure may also transmit. However,
* since this is set statically and only used for caustic flags, this
@@ -625,7 +625,7 @@ class MicrofacetFresnelClosure : public CBSDFClosure {
class MicrofacetGGXFresnelClosure : public MicrofacetFresnelClosure {
public:
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
MicrofacetBsdf *bsdf = alloc(sd, path_flag, weight);
if (!bsdf) {
@@ -654,7 +654,7 @@ CCLOSURE_PREPARE(closure_bsdf_microfacet_ggx_fresnel_prepare, MicrofacetGGXFresn
class MicrofacetGGXAnisoFresnelClosure : public MicrofacetFresnelClosure {
public:
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
MicrofacetBsdf *bsdf = alloc(sd, path_flag, weight);
if (!bsdf) {
@@ -689,7 +689,7 @@ class MicrofacetMultiClosure : public CBSDFClosure {
MicrofacetBsdf params;
float3 color;
- MicrofacetBsdf *alloc(ShaderData *sd, int path_flag, float3 weight)
+ MicrofacetBsdf *alloc(ShaderData *sd, uint32_t path_flag, float3 weight)
{
/* Technically, the MultiGGX closure may also transmit. However,
* since this is set statically and only used for caustic flags, this
@@ -719,7 +719,7 @@ class MicrofacetMultiClosure : public CBSDFClosure {
class MicrofacetMultiGGXClosure : public MicrofacetMultiClosure {
public:
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
MicrofacetBsdf *bsdf = alloc(sd, path_flag, weight);
if (!bsdf) {
@@ -747,7 +747,7 @@ CCLOSURE_PREPARE(closure_bsdf_microfacet_multi_ggx_prepare, MicrofacetMultiGGXCl
class MicrofacetMultiGGXAnisoClosure : public MicrofacetMultiClosure {
public:
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
MicrofacetBsdf *bsdf = alloc(sd, path_flag, weight);
if (!bsdf) {
@@ -779,7 +779,7 @@ class MicrofacetMultiGGXGlassClosure : public MicrofacetMultiClosure {
{
}
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
MicrofacetBsdf *bsdf = alloc(sd, path_flag, weight);
if (!bsdf) {
@@ -813,7 +813,7 @@ class MicrofacetMultiFresnelClosure : public CBSDFClosure {
float3 color;
float3 cspec0;
- MicrofacetBsdf *alloc(ShaderData *sd, int path_flag, float3 weight)
+ MicrofacetBsdf *alloc(ShaderData *sd, uint32_t path_flag, float3 weight)
{
/* Technically, the MultiGGX closure may also transmit. However,
* since this is set statically and only used for caustic flags, this
@@ -843,7 +843,7 @@ class MicrofacetMultiFresnelClosure : public CBSDFClosure {
class MicrofacetMultiGGXFresnelClosure : public MicrofacetMultiFresnelClosure {
public:
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
MicrofacetBsdf *bsdf = alloc(sd, path_flag, weight);
if (!bsdf) {
@@ -873,7 +873,7 @@ CCLOSURE_PREPARE(closure_bsdf_microfacet_multi_ggx_fresnel_prepare,
class MicrofacetMultiGGXAnisoFresnelClosure : public MicrofacetMultiFresnelClosure {
public:
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
MicrofacetBsdf *bsdf = alloc(sd, path_flag, weight);
if (!bsdf) {
@@ -907,7 +907,7 @@ class MicrofacetMultiGGXGlassFresnelClosure : public MicrofacetMultiFresnelClosu
{
}
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
MicrofacetBsdf *bsdf = alloc(sd, path_flag, weight);
if (!bsdf) {
@@ -942,7 +942,7 @@ class TransparentClosure : public CBSDFClosure {
ShaderClosure params;
float3 unused;
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
bsdf_transparent_setup(sd, weight, path_flag);
}
@@ -961,7 +961,7 @@ CCLOSURE_PREPARE(closure_bsdf_transparent_prepare, TransparentClosure)
class VolumeAbsorptionClosure : public CBSDFClosure {
public:
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
volume_extinction_setup(sd, weight);
}
@@ -980,7 +980,7 @@ class VolumeHenyeyGreensteinClosure : public CBSDFClosure {
public:
HenyeyGreensteinVolume params;
- void setup(ShaderData *sd, int path_flag, float3 weight)
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight)
{
volume_extinction_setup(sd, weight);
diff --git a/intern/cycles/kernel/osl/osl_closures.h b/intern/cycles/kernel/osl/osl_closures.h
index e4058e3a746..90a965a3365 100644
--- a/intern/cycles/kernel/osl/osl_closures.h
+++ b/intern/cycles/kernel/osl/osl_closures.h
@@ -113,7 +113,7 @@ void closure_bsdf_principled_hair_prepare(OSL::RendererServices *, int id, void
class CClosurePrimitive {
public:
- virtual void setup(ShaderData *sd, int path_flag, float3 weight) = 0;
+ virtual void setup(ShaderData *sd, uint32_t path_flag, float3 weight) = 0;
OSL::ustring label;
};
@@ -122,7 +122,7 @@ class CClosurePrimitive {
class CBSDFClosure : public CClosurePrimitive {
public:
- bool skip(const ShaderData *sd, int path_flag, int scattering);
+ bool skip(const ShaderData *sd, uint32_t path_flag, int scattering);
};
#define BSDF_CLOSURE_CLASS_BEGIN(Upper, lower, structname, TYPE) \
@@ -132,7 +132,7 @@ class CBSDFClosure : public CClosurePrimitive {
structname params; \
float3 unused; \
\
- void setup(ShaderData *sd, int path_flag, float3 weight) \
+ void setup(ShaderData *sd, uint32_t path_flag, float3 weight) \
{ \
if (!skip(sd, path_flag, TYPE)) { \
structname *bsdf = (structname *)bsdf_alloc_osl(sd, sizeof(structname), weight, &params); \
diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp
index a1df63ca8ff..4c067e88ab6 100644
--- a/intern/cycles/kernel/osl/osl_shader.cpp
+++ b/intern/cycles/kernel/osl/osl_shader.cpp
@@ -90,7 +90,7 @@ void OSLShader::thread_free(KernelGlobalsCPU *kg)
static void shaderdata_to_shaderglobals(const KernelGlobalsCPU *kg,
ShaderData *sd,
const IntegratorStateCPU *state,
- int path_flag,
+ uint32_t path_flag,
OSLThreadData *tdata)
{
OSL::ShaderGlobals *globals = &tdata->globals;
@@ -140,7 +140,7 @@ static void shaderdata_to_shaderglobals(const KernelGlobalsCPU *kg,
/* Surface */
static void flatten_surface_closure_tree(ShaderData *sd,
- int path_flag,
+ uint32_t path_flag,
const OSL::ClosureColor *closure,
float3 weight = make_float3(1.0f, 1.0f, 1.0f))
{
@@ -177,7 +177,7 @@ static void flatten_surface_closure_tree(ShaderData *sd,
void OSLShader::eval_surface(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
- int path_flag)
+ uint32_t path_flag)
{
/* setup shader globals from shader data */
OSLThreadData *tdata = kg->osl_tdata;
@@ -285,7 +285,7 @@ static void flatten_background_closure_tree(ShaderData *sd,
void OSLShader::eval_background(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
- int path_flag)
+ uint32_t path_flag)
{
/* setup shader globals from shader data */
OSLThreadData *tdata = kg->osl_tdata;
@@ -343,7 +343,7 @@ static void flatten_volume_closure_tree(ShaderData *sd,
void OSLShader::eval_volume(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
- int path_flag)
+ uint32_t path_flag)
{
/* setup shader globals from shader data */
OSLThreadData *tdata = kg->osl_tdata;
diff --git a/intern/cycles/kernel/osl/osl_shader.h b/intern/cycles/kernel/osl/osl_shader.h
index 686a1e1374a..2b3810b0a33 100644
--- a/intern/cycles/kernel/osl/osl_shader.h
+++ b/intern/cycles/kernel/osl/osl_shader.h
@@ -57,15 +57,15 @@ class OSLShader {
static void eval_surface(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
- int path_flag);
+ uint32_t path_flag);
static void eval_background(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
- int path_flag);
+ uint32_t path_flag);
static void eval_volume(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd,
- int path_flag);
+ uint32_t path_flag);
static void eval_displacement(const KernelGlobalsCPU *kg,
const IntegratorStateCPU *state,
ShaderData *sd);
diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h
index 9692308c496..57879dc238f 100644
--- a/intern/cycles/kernel/svm/svm.h
+++ b/intern/cycles/kernel/svm/svm.h
@@ -230,7 +230,7 @@ ccl_device void svm_eval_nodes(KernelGlobals kg,
ConstIntegratorState state,
ShaderData *sd,
ccl_global float *render_buffer,
- int path_flag)
+ uint32_t path_flag)
{
float stack[SVM_STACK_SIZE];
int offset = sd->shader & SHADER_MASK;
diff --git a/intern/cycles/kernel/svm/svm_aov.h b/intern/cycles/kernel/svm/svm_aov.h
index d09eaa61cc0..aba5bdc0113 100644
--- a/intern/cycles/kernel/svm/svm_aov.h
+++ b/intern/cycles/kernel/svm/svm_aov.h
@@ -18,7 +18,7 @@
CCL_NAMESPACE_BEGIN
-ccl_device_inline bool svm_node_aov_check(const int path_flag, ccl_global float *render_buffer)
+ccl_device_inline bool svm_node_aov_check(const uint32_t path_flag, ccl_global float *render_buffer)
{
bool is_primary = (path_flag & PATH_RAY_CAMERA) && (!(path_flag & PATH_RAY_SINGLE_PASS_DONE));
diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h
index fb10288da72..3378832c233 100644
--- a/intern/cycles/kernel/svm/svm_closure.h
+++ b/intern/cycles/kernel/svm/svm_closure.h
@@ -79,7 +79,7 @@ ccl_device_noinline int svm_node_closure_bsdf(KernelGlobals kg,
ccl_private ShaderData *sd,
ccl_private float *stack,
uint4 node,
- int path_flag,
+ uint32_t path_flag,
int offset)
{
uint type, param1_offset, param2_offset;
@@ -1015,7 +1015,7 @@ ccl_device_noinline int svm_node_principled_volume(KernelGlobals kg,
ccl_private ShaderData *sd,
ccl_private float *stack,
uint4 node,
- int path_flag,
+ uint32_t path_flag,
int offset)
{
#ifdef __VOLUME__
diff --git a/intern/cycles/kernel/svm/svm_light_path.h b/intern/cycles/kernel/svm/svm_light_path.h
index 955a1f23379..c61ace9757a 100644
--- a/intern/cycles/kernel/svm/svm_light_path.h
+++ b/intern/cycles/kernel/svm/svm_light_path.h
@@ -25,7 +25,7 @@ ccl_device_noinline void svm_node_light_path(KernelGlobals kg,
ccl_private float *stack,
uint type,
uint out_offset,
- int path_flag)
+ uint32_t path_flag)
{
float info = 0.0f;
diff --git a/intern/cycles/kernel/svm/svm_tex_coord.h b/intern/cycles/kernel/svm/svm_tex_coord.h
index 657a4bb32a8..fe777eb34c8 100644
--- a/intern/cycles/kernel/svm/svm_tex_coord.h
+++ b/intern/cycles/kernel/svm/svm_tex_coord.h
@@ -24,7 +24,7 @@ CCL_NAMESPACE_BEGIN
ccl_device_noinline int svm_node_tex_coord(KernelGlobals kg,
ccl_private ShaderData *sd,
- int path_flag,
+ uint32_t path_flag,
ccl_private float *stack,
uint4 node,
int offset)
@@ -105,7 +105,7 @@ ccl_device_noinline int svm_node_tex_coord(KernelGlobals kg,
ccl_device_noinline int svm_node_tex_coord_bump_dx(KernelGlobals kg,
ccl_private ShaderData *sd,
- int path_flag,
+ uint32_t path_flag,
ccl_private float *stack,
uint4 node,
int offset)
@@ -190,7 +190,7 @@ ccl_device_noinline int svm_node_tex_coord_bump_dx(KernelGlobals kg,
ccl_device_noinline int svm_node_tex_coord_bump_dy(KernelGlobals kg,
ccl_private ShaderData *sd,
- int path_flag,
+ uint32_t path_flag,
ccl_private float *stack,
uint4 node,
int offset)