Fix destructor order in rasterizer cache (#5725)

This commit is contained in:
xperia64 2021-02-21 23:05:27 +00:00 committed by GitHub
parent e6c479f497
commit c2d36cde9f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -317,6 +317,12 @@ public:
/// Clear all cached resources tracked by this cache manager
void ClearAll(bool flush);
// Textures from destroyed surfaces are stored here to be recyled to reduce allocation overhead
// in the driver
// this must be placed above the surface_cache to ensure all cached surfaces are destroyed
// before destroying the recycler
std::unordered_multimap<HostTextureTag, OGLTexture> host_texture_recycler;
private:
void DuplicateSurface(const Surface& src_surface, const Surface& dest_surface);
@ -362,10 +368,6 @@ private:
public:
OGLTexture AllocateSurfaceTexture(const FormatTuple& format_tuple, u32 width, u32 height);
// Textures from destroyed surfaces are stored here to be recyled to reduce allocation overhead
// in the driver
std::unordered_multimap<HostTextureTag, OGLTexture> host_texture_recycler;
std::unique_ptr<TextureFilterer> texture_filterer;
std::unique_ptr<FormatReinterpreterOpenGL> format_reinterpreter;
};