diff options
| author | 2018-11-28 21:58:30 -0500 | |
|---|---|---|
| committer | 2018-11-29 20:10:11 -0500 | |
| commit | 0f43564d09fbf6a55bfe846f763aa8c50e53f551 (patch) | |
| tree | 7fb1f61908f7b8c65dea527790aef8778e773175 /src/video_core | |
| parent | gl_rasterizer_cache: Remove BlitSurface and replace with more accurate copy. (diff) | |
| download | yuzu-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.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, | |||
| 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 | ||