Explorar o código

Clear RIDs of weight buffers when freeing to avoid double free

clayjohn hai 1 ano
pai
achega
bafbde9f4b

+ 2 - 1
servers/rendering/renderer_rd/storage_rd/render_scene_buffers_rd.cpp

@@ -130,9 +130,10 @@ void RenderSceneBuffersRD::cleanup() {
 	named_textures.clear();
 
 	// Clear weight_buffer / blur textures.
-	for (const WeightBuffers &weight_buffer : weight_buffers) {
+	for (WeightBuffers &weight_buffer : weight_buffers) {
 		if (weight_buffer.weight.is_valid()) {
 			RD::get_singleton()->free(weight_buffer.weight);
+			weight_buffer.weight = RID();
 		}
 	}
 }