android: video_core: gl_rasterizer_cache: Make cache access thread safe.
This commit is contained in:
parent
e43f3a2732
commit
3e484db1c5
@ -1818,6 +1818,8 @@ void RasterizerCacheOpenGL::ClearAll(bool flush) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void RasterizerCacheOpenGL::FlushRegion(PAddr addr, u32 size, Surface flush_surface) {
|
void RasterizerCacheOpenGL::FlushRegion(PAddr addr, u32 size, Surface flush_surface) {
|
||||||
|
std::lock_guard lock{mutex};
|
||||||
|
|
||||||
if (size == 0)
|
if (size == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -1854,6 +1856,8 @@ void RasterizerCacheOpenGL::FlushAll() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void RasterizerCacheOpenGL::InvalidateRegion(PAddr addr, u32 size, const Surface& region_owner) {
|
void RasterizerCacheOpenGL::InvalidateRegion(PAddr addr, u32 size, const Surface& region_owner) {
|
||||||
|
std::lock_guard lock{mutex};
|
||||||
|
|
||||||
if (size == 0)
|
if (size == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -1930,6 +1934,8 @@ Surface RasterizerCacheOpenGL::CreateSurface(const SurfaceParams& params) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void RasterizerCacheOpenGL::RegisterSurface(const Surface& surface) {
|
void RasterizerCacheOpenGL::RegisterSurface(const Surface& surface) {
|
||||||
|
std::lock_guard lock{mutex};
|
||||||
|
|
||||||
if (surface->registered) {
|
if (surface->registered) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1939,6 +1945,8 @@ void RasterizerCacheOpenGL::RegisterSurface(const Surface& surface) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void RasterizerCacheOpenGL::UnregisterSurface(const Surface& surface) {
|
void RasterizerCacheOpenGL::UnregisterSurface(const Surface& surface) {
|
||||||
|
std::lock_guard lock{mutex};
|
||||||
|
|
||||||
if (!surface->registered) {
|
if (!surface->registered) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include <array>
|
#include <array>
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <mutex>
|
||||||
#include <set>
|
#include <set>
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
@ -325,6 +326,8 @@ private:
|
|||||||
|
|
||||||
std::unordered_map<TextureCubeConfig, CachedTextureCube> texture_cube_cache;
|
std::unordered_map<TextureCubeConfig, CachedTextureCube> texture_cube_cache;
|
||||||
|
|
||||||
|
std::recursive_mutex mutex;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::unique_ptr<TextureFilterer> texture_filterer;
|
std::unique_ptr<TextureFilterer> texture_filterer;
|
||||||
std::unique_ptr<FormatReinterpreterOpenGL> format_reinterpreter;
|
std::unique_ptr<FormatReinterpreterOpenGL> format_reinterpreter;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user