diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/memory_manager.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp index 1926bb025..e5d357773 100644 --- a/src/video_core/memory_manager.cpp +++ b/src/video_core/memory_manager.cpp | |||
| @@ -332,6 +332,10 @@ void MemoryManager::FlushRegion(GPUVAddr gpu_addr, size_t size) const { | |||
| 332 | void MemoryManager::CopyBlock(GPUVAddr gpu_dest_addr, GPUVAddr gpu_src_addr, std::size_t size) { | 332 | void MemoryManager::CopyBlock(GPUVAddr gpu_dest_addr, GPUVAddr gpu_src_addr, std::size_t size) { |
| 333 | std::vector<u8> tmp_buffer(size); | 333 | std::vector<u8> tmp_buffer(size); |
| 334 | ReadBlock(gpu_src_addr, tmp_buffer.data(), size); | 334 | ReadBlock(gpu_src_addr, tmp_buffer.data(), size); |
| 335 | |||
| 336 | // The output block must be flushed in case it has data modified from the GPU. | ||
| 337 | // Fixes NPC geometry in Zombie Panic in Wonderland DX | ||
| 338 | FlushRegion(gpu_dest_addr, size); | ||
| 335 | WriteBlock(gpu_dest_addr, tmp_buffer.data(), size); | 339 | WriteBlock(gpu_dest_addr, tmp_buffer.data(), size); |
| 336 | } | 340 | } |
| 337 | 341 | ||