diff options
| author | Arseny Kapoulkine <arseny.kapoulkine@gmail.com> | 2024-08-16 22:08:21 -0700 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-16 17:10:59 +0200 |
| commit | 40dcdcbe7902ee71f897fd73adfe1a4e337da81b (patch) | |
| tree | a853882f7915948f9275cee3938ae98d8e610f0c /platform/linuxbsd/platform_linuxbsd_builders.py | |
| parent | b2c83b42f6502d03457e4276417b5ab84b5c805b (diff) | |
| download | redot-engine-40dcdcbe7902ee71f897fd73adfe1a4e337da81b.tar.gz | |
Fix double free in FSR2 destructor
Before this change, using FSR2 resulted in the following error when the
effect was destroyed:
ERROR: Attempted to free invalid ID: 662734928609453
at: _free_internal (servers/rendering/rendering_device.cpp:4957)
This happened because ACCUMULATE and ACCUMULATE_SHARPEN passes shared
the same shader_version object but had different pipeline IDs. When
version_free was called for ACCUMULATE pass, it destroyed pipelines
created from that version, including the pipeline for the
ACCUMULATE_SHARPEN pass.
Using a unique version could work around this problem, but it's easier
to rely on version_free destroying the created pipelines through the
dependency mechanism.
(cherry picked from commit 0024cface56be436f6e5cd12d090333e8a6b3ef0)
Diffstat (limited to 'platform/linuxbsd/platform_linuxbsd_builders.py')
0 files changed, 0 insertions, 0 deletions
