summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2020-11-19 10:06:51 +0100
committerGitHub <noreply@github.com>2020-11-19 10:06:51 +0100
commit68f24175286ec26a4a9a1566d8e25a1fbe6f4caa (patch)
tree3c5c0059384ec331d0c25f9bf443b207e0523fe4
parent05b17d3dbfe6b4bfe7e16655949a3b130af4a8f1 (diff)
parentbce3e2c3f6061f10599f4dc0f8143315e15142b5 (diff)
Merge pull request #43665 from Nickswoboda/fix-invalid-free
Check uniform set validity before freeing
-rw-r--r--servers/rendering/rasterizer_rd/rasterizer_scene_rd.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/servers/rendering/rasterizer_rd/rasterizer_scene_rd.cpp b/servers/rendering/rasterizer_rd/rasterizer_scene_rd.cpp
index e1be9b0ef4..da2b00b7a7 100644
--- a/servers/rendering/rasterizer_rd/rasterizer_scene_rd.cpp
+++ b/servers/rendering/rasterizer_rd/rasterizer_scene_rd.cpp
@@ -1471,7 +1471,9 @@ void RasterizerSceneRD::_setup_giprobes(RID p_render_buffers, const Transform &p
}
if (giprobes_changed) {
- RD::get_singleton()->free(rb->gi_uniform_set);
+ if (RD::get_singleton()->uniform_set_is_valid(rb->gi_uniform_set)) {
+ RD::get_singleton()->free(rb->gi_uniform_set);
+ }
rb->gi_uniform_set = RID();
if (rb->volumetric_fog) {
if (RD::get_singleton()->uniform_set_is_valid(rb->volumetric_fog->uniform_set)) {