diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 8b6d1b89d..c447e999c 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | |||
| @@ -761,10 +761,12 @@ void RasterizerCacheOpenGL::FlushRegion(Tegra::GPUVAddr /*addr*/, size_t /*size* | |||
| 761 | } | 761 | } |
| 762 | 762 | ||
| 763 | void RasterizerCacheOpenGL::InvalidateRegion(Tegra::GPUVAddr addr, size_t size) { | 763 | void RasterizerCacheOpenGL::InvalidateRegion(Tegra::GPUVAddr addr, size_t size) { |
| 764 | for (const auto& pair : surface_cache) { | 764 | for (auto iter = surface_cache.cbegin(); iter != surface_cache.cend();) { |
| 765 | const auto& surface{pair.second}; | 765 | const auto& surface{iter->second}; |
| 766 | const auto& params{surface->GetSurfaceParams()}; | 766 | const auto& params{surface->GetSurfaceParams()}; |
| 767 | 767 | ||
| 768 | ++iter; | ||
| 769 | |||
| 768 | if (params.IsOverlappingRegion(addr, size)) { | 770 | if (params.IsOverlappingRegion(addr, size)) { |
| 769 | UnregisterSurface(surface); | 771 | UnregisterSurface(surface); |
| 770 | } | 772 | } |