Fix: EEVEE-Next: Nvidia compilation error

Workaround Error: C1317: qualified actual parameter #1 cannot be converted to less qualified parameter
This commit is contained in:
Miguel Pozo 2023-10-09 13:17:19 +02:00
parent f37a8cda30
commit 25160def62
2 changed files with 14 additions and 9 deletions

View File

@ -37,7 +37,7 @@ float shadow_unpack(uint shadow_bits, uint bit_depth, uint shift)
return float((shadow_bits >> shift) & ~(~0u << bit_depth)) / float((1u << bit_depth) - 1u);
}
void light_shadow_single(LightData light,
void light_shadow_single(uint l_idx,
const bool is_directional,
vec3 P,
vec3 Ng,
@ -45,6 +45,8 @@ void light_shadow_single(LightData light,
inout uint shadow_bits,
inout uint shift)
{
LightData light = light_buf[l_idx];
if (light.tilemap_index == LIGHT_NO_SHADOW) {
return;
}
@ -73,12 +75,12 @@ void light_shadow_mask(vec3 P, vec3 Ng, float vPz, float thickness, out uint sha
uint shift = 0u;
shadow_bits = 0u;
LIGHT_FOREACH_BEGIN_DIRECTIONAL (light_cull_buf, l_idx) {
light_shadow_single(light_buf[l_idx], true, P, Ng, thickness, shadow_bits, shift);
light_shadow_single(l_idx, true, P, Ng, thickness, shadow_bits, shift);
}
LIGHT_FOREACH_END
LIGHT_FOREACH_BEGIN_LOCAL (light_cull_buf, light_zbin_buf, light_tile_buf, PIXEL, vPz, l_idx) {
light_shadow_single(light_buf[l_idx], false, P, Ng, thickness, shadow_bits, shift);
light_shadow_single(l_idx, false, P, Ng, thickness, shadow_bits, shift);
}
LIGHT_FOREACH_END
}
@ -117,7 +119,7 @@ void light_eval_single_closure(LightData light,
}
}
void light_eval_single(LightData light,
void light_eval_single(uint l_idx,
const bool is_directional,
inout ClosureLightStack stack,
vec3 P,
@ -127,6 +129,7 @@ void light_eval_single(LightData light,
uint packed_shadows,
inout uint shift)
{
LightData light = light_buf[l_idx];
int ray_count = uniform_buf.shadow.ray_count;
int ray_step_count = uniform_buf.shadow.step_count;
@ -171,12 +174,12 @@ void light_eval(inout ClosureLightStack stack,
uint shift = 0u;
LIGHT_FOREACH_BEGIN_DIRECTIONAL (light_cull_buf, l_idx) {
light_eval_single(light_buf[l_idx], true, stack, P, Ng, V, thickness, packed_shadows, shift);
light_eval_single(l_idx, true, stack, P, Ng, V, thickness, packed_shadows, shift);
}
LIGHT_FOREACH_END
LIGHT_FOREACH_BEGIN_LOCAL (light_cull_buf, light_zbin_buf, light_tile_buf, PIXEL, vPz, l_idx) {
light_eval_single(light_buf[l_idx], false, stack, P, Ng, V, thickness, packed_shadows, shift);
light_eval_single(l_idx, false, stack, P, Ng, V, thickness, packed_shadows, shift);
}
LIGHT_FOREACH_END
}

View File

@ -13,8 +13,10 @@
#pragma BLENDER_REQUIRE(eevee_shadow_lib.glsl)
void thickness_from_shadow_single(
LightData light, const bool is_directional, vec3 P, vec3 Ng, inout vec2 thickness)
uint l_idx, const bool is_directional, vec3 P, vec3 Ng, inout vec2 thickness)
{
LightData light = light_buf[l_idx];
if (light.tilemap_index == LIGHT_NO_SHADOW) {
return;
}
@ -47,12 +49,12 @@ float thickness_from_shadow(vec3 P, vec3 Ng, float vPz)
vec2 thickness = vec2(0.0);
LIGHT_FOREACH_BEGIN_DIRECTIONAL (light_cull_buf, l_idx) {
thickness_from_shadow_single(light_buf[l_idx], true, P, Ng, thickness);
thickness_from_shadow_single(l_idx, true, P, Ng, thickness);
}
LIGHT_FOREACH_END
LIGHT_FOREACH_BEGIN_LOCAL (light_cull_buf, light_zbin_buf, light_tile_buf, PIXEL, vPz, l_idx) {
thickness_from_shadow_single(light_buf[l_idx], false, P, Ng, thickness);
thickness_from_shadow_single(l_idx, false, P, Ng, thickness);
}
LIGHT_FOREACH_END