From 72d899702bc611c9ab32644032fca54ce7bde935 Mon Sep 17 00:00:00 2001 From: clayjohn Date: Wed, 14 Sep 2022 08:30:35 -0700 Subject: Clear last frame directional light buffer when number of lights changes. This ensures that the buffers don't go out of sync. --- drivers/gles3/rasterizer_scene_gles3.cpp | 1 + servers/rendering/renderer_rd/environment/sky.cpp | 1 + 2 files changed, 2 insertions(+) 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 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; } } -- cgit v1.2.3