diff options
| -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*  }  void RasterizerCacheOpenGL::InvalidateRegion(Tegra::GPUVAddr addr, size_t size) { -    for (const auto& pair : surface_cache) { -        const auto& surface{pair.second}; +    for (auto iter = surface_cache.cbegin(); iter != surface_cache.cend();) { +        const auto& surface{iter->second};          const auto& params{surface->GetSurfaceParams()}; +        ++iter; +          if (params.IsOverlappingRegion(addr, size)) {              UnregisterSurface(surface);          } | 
