Merge pull request #89531 from sullyscience/fix-resource-leaks
Fix mobile renderer RID leaks
This commit is contained in:
commit
70c05f63da
2 changed files with 12 additions and 0 deletions
|
@ -2835,6 +2835,11 @@ RenderForwardMobile::~RenderForwardMobile() {
|
||||||
for (const RID &rid : scene_state.uniform_buffers) {
|
for (const RID &rid : scene_state.uniform_buffers) {
|
||||||
RD::get_singleton()->free(rid);
|
RD::get_singleton()->free(rid);
|
||||||
}
|
}
|
||||||
|
for (uint32_t i = 0; i < RENDER_LIST_MAX; i++) {
|
||||||
|
if (scene_state.instance_buffer[i].is_valid()) {
|
||||||
|
RD::get_singleton()->free(scene_state.instance_buffer[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
RD::get_singleton()->free(scene_state.lightmap_buffer);
|
RD::get_singleton()->free(scene_state.lightmap_buffer);
|
||||||
RD::get_singleton()->free(scene_state.lightmap_capture_buffer);
|
RD::get_singleton()->free(scene_state.lightmap_capture_buffer);
|
||||||
memdelete_arr(scene_state.lightmap_captures);
|
memdelete_arr(scene_state.lightmap_captures);
|
||||||
|
|
|
@ -128,6 +128,13 @@ void RenderSceneBuffersRD::cleanup() {
|
||||||
free_named_texture(E.value);
|
free_named_texture(E.value);
|
||||||
}
|
}
|
||||||
named_textures.clear();
|
named_textures.clear();
|
||||||
|
|
||||||
|
// Clear weight_buffer / blur textures.
|
||||||
|
for (const WeightBuffers &weight_buffer : weight_buffers) {
|
||||||
|
if (weight_buffer.weight.is_valid()) {
|
||||||
|
RD::get_singleton()->free(weight_buffer.weight);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderSceneBuffersRD::configure(const RenderSceneBuffersConfiguration *p_config) {
|
void RenderSceneBuffersRD::configure(const RenderSceneBuffersConfiguration *p_config) {
|
||||||
|
|
Loading…
Reference in a new issue