Fix potential out-of-bounds access in pbr_functions.wgsl (#12585)
# Objective - Fix a potential out-of-bounds access in the `pbr_functions.wgsl` shader. ## Solution - Correctly compute the `GpuLights::directional_lights` array length. ## Comments I think this solves this comment in the code, but need someone to test it: ```rust //NOTE: When running bevy on Adreno GPU chipsets in WebGL, any value above 1 will result in a crash // when loading the wgsl "pbr_functions.wgsl" in the function apply_fog. ```
This commit is contained in:
parent
0c78bf3bb0
commit
2ee69807b1
@ -991,7 +991,8 @@ pub fn prepare_lights(
|
|||||||
cluster_factors_zw.y,
|
cluster_factors_zw.y,
|
||||||
),
|
),
|
||||||
cluster_dimensions: clusters.dimensions.extend(n_clusters),
|
cluster_dimensions: clusters.dimensions.extend(n_clusters),
|
||||||
n_directional_lights: directional_lights.iter().len() as u32,
|
n_directional_lights: directional_lights.iter().len().min(MAX_DIRECTIONAL_LIGHTS)
|
||||||
|
as u32,
|
||||||
// spotlight shadow maps are stored in the directional light array, starting at num_directional_cascades_enabled.
|
// spotlight shadow maps are stored in the directional light array, starting at num_directional_cascades_enabled.
|
||||||
// the spot lights themselves start in the light array at point_light_count. so to go from light
|
// the spot lights themselves start in the light array at point_light_count. so to go from light
|
||||||
// index to shadow map index, we need to subtract point light count and add directional shadowmap count.
|
// index to shadow map index, we need to subtract point light count and add directional shadowmap count.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user