diff options
author | bunnei <bunneidev@gmail.com> | 2018-11-28 21:58:30 -0500 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-11-29 20:10:11 -0500 |
commit | 0f43564d09fbf6a55bfe846f763aa8c50e53f551 (patch) | |
tree | 7fb1f61908f7b8c65dea527790aef8778e773175 | |
parent | 3d3cc35ee76c4cfda01865ef1ed68d83969d6df1 (diff) |
gl_rasterizer_cache: Update AccurateCopySurface to flush complete source surface.
- Fixes issues with Breath of the Wild with use_accurate_gpu_emulation setting.
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 6b024d9d0..2fbc753af 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp @@ -1031,7 +1031,10 @@ void RasterizerCacheOpenGL::AccurateCopySurface(const Surface& src_surface, const Surface& dst_surface) { const auto& src_params{src_surface->GetSurfaceParams()}; const auto& dst_params{dst_surface->GetSurfaceParams()}; - FlushRegion(src_params.addr, dst_params.MemorySize()); + + // Flush enough memory for both the source and destination surface + FlushRegion(src_params.addr, std::max(src_params.MemorySize(), dst_params.MemorySize())); + LoadSurface(dst_surface); } |