diff options
author | clayjohn <claynjohn@gmail.com> | 2022-09-14 08:30:35 -0700 |
---|---|---|
committer | clayjohn <claynjohn@gmail.com> | 2022-09-14 08:30:35 -0700 |
commit | 72d899702bc611c9ab32644032fca54ce7bde935 (patch) | |
tree | 63129aa737b049ae9fc75bdeccff0760849af3db | |
parent | bf271ea6af5e4e1dbf12a5428445f0efa54f8651 (diff) |
Clear last frame directional light buffer when number of lights changes.
This ensures that the buffers don't go out of sync.
-rw-r--r-- | drivers/gles3/rasterizer_scene_gles3.cpp | 1 | ||||
-rw-r--r-- | servers/rendering/renderer_rd/environment/sky.cpp | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gles3/rasterizer_scene_gles3.cpp b/drivers/gles3/rasterizer_scene_gles3.cpp index dae26b1e5f..1952efff0e 100644 --- a/drivers/gles3/rasterizer_scene_gles3.cpp +++ b/drivers/gles3/rasterizer_scene_gles3.cpp @@ -683,6 +683,7 @@ void RasterizerSceneGLES3::_setup_sky(const RenderDataGLES3 *p_render_data, cons light_data_dirty = true; for (uint32_t i = sky_globals.directional_light_count; i < sky_globals.max_directional_lights; i++) { sky_globals.directional_lights[i].enabled = false; + sky_globals.last_frame_directional_lights[i].enabled = false; } } diff --git a/servers/rendering/renderer_rd/environment/sky.cpp b/servers/rendering/renderer_rd/environment/sky.cpp index ceba43ae8f..307af99e91 100644 --- a/servers/rendering/renderer_rd/environment/sky.cpp +++ b/servers/rendering/renderer_rd/environment/sky.cpp @@ -1261,6 +1261,7 @@ void SkyRD::setup(RID p_env, Ref<RenderSceneBuffersRD> p_render_buffers, const P light_data_dirty = true; for (uint32_t i = sky_scene_state.ubo.directional_light_count; i < sky_scene_state.max_directional_lights; i++) { sky_scene_state.directional_lights[i].enabled = false; + sky_scene_state.last_frame_directional_lights[i].enabled = false; } } |