summaryrefslogtreecommitdiff
path: root/src/video_core
diff options
context:
space:
mode:
authorGravatar bunnei2018-11-28 21:58:30 -0500
committerGravatar bunnei2018-11-29 20:10:11 -0500
commit0f43564d09fbf6a55bfe846f763aa8c50e53f551 (patch)
tree7fb1f61908f7b8c65dea527790aef8778e773175 /src/video_core
parentgl_rasterizer_cache: Remove BlitSurface and replace with more accurate copy. (diff)
downloadyuzu-0f43564d09fbf6a55bfe846f763aa8c50e53f551.tar.gz
yuzu-0f43564d09fbf6a55bfe846f763aa8c50e53f551.tar.xz
yuzu-0f43564d09fbf6a55bfe846f763aa8c50e53f551.zip
gl_rasterizer_cache: Update AccurateCopySurface to flush complete source surface.
- Fixes issues with Breath of the Wild with use_accurate_gpu_emulation setting.
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.cpp5
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,
1031 const Surface& dst_surface) { 1031 const Surface& dst_surface) {
1032 const auto& src_params{src_surface->GetSurfaceParams()}; 1032 const auto& src_params{src_surface->GetSurfaceParams()};
1033 const auto& dst_params{dst_surface->GetSurfaceParams()}; 1033 const auto& dst_params{dst_surface->GetSurfaceParams()};
1034 FlushRegion(src_params.addr, dst_params.MemorySize()); 1034
1035 // Flush enough memory for both the source and destination surface
1036 FlushRegion(src_params.addr, std::max(src_params.MemorySize(), dst_params.MemorySize()));
1037
1035 LoadSurface(dst_surface); 1038 LoadSurface(dst_surface);
1036} 1039}
1037 1040