summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2022-09-14 19:06:19 +0200
committerGitHub <noreply@github.com>2022-09-14 19:06:19 +0200
commit957aa79ce03f3918867a4fba750744fab94e0cf9 (patch)
treeadf6054b63bc4a29857347a1cd22dc6539575dcf
parentf70959663112b5793463abbc20725ecf5d1dd7dd (diff)
parent72d899702bc611c9ab32644032fca54ce7bde935 (diff)
Merge pull request #65789 from clayjohn/sky-update-bug
Clear last frame directional light buffer when number of lights changes.
-rw-r--r--drivers/gles3/rasterizer_scene_gles3.cpp1
-rw-r--r--servers/rendering/renderer_rd/environment/sky.cpp1
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;
}
}