Merge pull request #65738 from BastiaanOlij/fix_ssao_ssil_memory_leak
This commit is contained in:
commit
0f3f8509ec
|
@ -443,6 +443,11 @@ void SSEffects::downsample_depth(RID p_depth_buffer, const Vector<RID> &p_depth_
|
||||||
|
|
||||||
RD::get_singleton()->draw_command_begin_label("Downsample Depth");
|
RD::get_singleton()->draw_command_begin_label("Downsample Depth");
|
||||||
if (p_invalidate_uniform_set || use_full_mips != ss_effects.used_full_mips_last_frame || use_half_size != ss_effects.used_half_size_last_frame || use_mips != ss_effects.used_mips_last_frame) {
|
if (p_invalidate_uniform_set || use_full_mips != ss_effects.used_full_mips_last_frame || use_half_size != ss_effects.used_half_size_last_frame || use_mips != ss_effects.used_mips_last_frame) {
|
||||||
|
if (ss_effects.downsample_uniform_set.is_valid() && RD::get_singleton()->uniform_set_is_valid(ss_effects.downsample_uniform_set)) {
|
||||||
|
RD::get_singleton()->free(ss_effects.downsample_uniform_set);
|
||||||
|
ss_effects.downsample_uniform_set = RID();
|
||||||
|
}
|
||||||
|
|
||||||
Vector<RD::Uniform> uniforms;
|
Vector<RD::Uniform> uniforms;
|
||||||
{
|
{
|
||||||
RD::Uniform u;
|
RD::Uniform u;
|
||||||
|
@ -516,6 +521,7 @@ void SSEffects::downsample_depth(RID p_depth_buffer, const Vector<RID> &p_depth_
|
||||||
|
|
||||||
ss_effects.used_full_mips_last_frame = use_full_mips;
|
ss_effects.used_full_mips_last_frame = use_full_mips;
|
||||||
ss_effects.used_half_size_last_frame = use_half_size;
|
ss_effects.used_half_size_last_frame = use_half_size;
|
||||||
|
ss_effects.used_mips_last_frame = use_mips;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SSIL */
|
/* SSIL */
|
||||||
|
|
|
@ -128,6 +128,11 @@ void RenderSceneBuffersRD::cleanup() {
|
||||||
ss_effects.linear_depth_slices.clear();
|
ss_effects.linear_depth_slices.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ss_effects.downsample_uniform_set.is_valid() && RD::get_singleton()->uniform_set_is_valid(ss_effects.downsample_uniform_set)) {
|
||||||
|
RD::get_singleton()->free(ss_effects.downsample_uniform_set);
|
||||||
|
ss_effects.downsample_uniform_set = RID();
|
||||||
|
}
|
||||||
|
|
||||||
sse->ssao_free(ss_effects.ssao);
|
sse->ssao_free(ss_effects.ssao);
|
||||||
sse->ssil_free(ss_effects.ssil);
|
sse->ssil_free(ss_effects.ssil);
|
||||||
sse->ssr_free(ssr);
|
sse->ssr_free(ssr);
|
||||||
|
|
Loading…
Reference in New Issue