Fix destructor order in rasterizer cache (#5725)
This commit is contained in:
parent
e6c479f497
commit
c2d36cde9f
|
@ -317,6 +317,12 @@ public:
|
||||||
/// Clear all cached resources tracked by this cache manager
|
/// Clear all cached resources tracked by this cache manager
|
||||||
void ClearAll(bool flush);
|
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:
|
private:
|
||||||
void DuplicateSurface(const Surface& src_surface, const Surface& dest_surface);
|
void DuplicateSurface(const Surface& src_surface, const Surface& dest_surface);
|
||||||
|
|
||||||
|
@ -362,10 +368,6 @@ private:
|
||||||
public:
|
public:
|
||||||
OGLTexture AllocateSurfaceTexture(const FormatTuple& format_tuple, u32 width, u32 height);
|
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<TextureFilterer> texture_filterer;
|
||||||
std::unique_ptr<FormatReinterpreterOpenGL> format_reinterpreter;
|
std::unique_ptr<FormatReinterpreterOpenGL> format_reinterpreter;
|
||||||
};
|
};
|
||||||
|
|
Reference in New Issue