summaryrefslogtreecommitdiffstats
path: root/servers/rendering
diff options
context:
space:
mode:
authorclayjohn <claynjohn@gmail.com>2023-08-03 16:13:33 +0200
committerclayjohn <claynjohn@gmail.com>2023-08-03 16:13:33 +0200
commit558f4b75596e9352e38dd00b9d9837b2aa219047 (patch)
tree5372abe01a45c9fe4ffdb7c7f0a3884fc657a5d5 /servers/rendering
parent237bd0a615df8a0e57bc3d299894abece7b43a0c (diff)
downloadredot-engine-558f4b75596e9352e38dd00b9d9837b2aa219047.tar.gz
Initialize shader placeholders up front
Then use the placeholder to create the shader instead of swapping RIDs This fixes a false positive that reported leaked shaders
Diffstat (limited to 'servers/rendering')
-rw-r--r--servers/rendering/renderer_rd/shader_rd.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/servers/rendering/renderer_rd/shader_rd.cpp b/servers/rendering/renderer_rd/shader_rd.cpp
index d3814f175f..46ae2d9551 100644
--- a/servers/rendering/renderer_rd/shader_rd.cpp
+++ b/servers/rendering/renderer_rd/shader_rd.cpp
@@ -161,7 +161,7 @@ void ShaderRD::_clear_version(Version *p_version) {
// Clear versions if they exist.
if (p_version->variants) {
for (int i = 0; i < variant_defines.size(); i++) {
- if (variants_enabled[i] && group_enabled[variant_defines[i].group]) {
+ if (p_version->variants[i].is_valid()) {
RD::get_singleton()->free(p_version->variants[i]);
}
}