gl_rasterizer_cache: Update AccurateCopySurface to flush complete source surface.

- Fixes issues with Breath of the Wild with use_accurate_gpu_emulation setting.
This commit is contained in:
bunnei 2018-11-28 21:58:30 -05:00
parent 3d3cc35ee7
commit 0f43564d09
1 changed files with 4 additions and 1 deletions

View File

@ -1031,7 +1031,10 @@ void RasterizerCacheOpenGL::AccurateCopySurface(const Surface& src_surface,
const Surface& dst_surface) { const Surface& dst_surface) {
const auto& src_params{src_surface->GetSurfaceParams()}; const auto& src_params{src_surface->GetSurfaceParams()};
const auto& dst_params{dst_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); LoadSurface(dst_surface);
} }