|
|
|
@ -298,15 +298,13 @@ public: |
|
|
|
const GPUVAddr src_gpu_addr = src_config.Address(); |
|
|
|
const GPUVAddr dst_gpu_addr = dst_config.Address(); |
|
|
|
DeduceBestBlit(src_params, dst_params, src_gpu_addr, dst_gpu_addr); |
|
|
|
const std::optional<VAddr> dst_cpu_addr = |
|
|
|
system.GPU().MemoryManager().GpuToCpuAddress(dst_gpu_addr); |
|
|
|
const std::optional<VAddr> src_cpu_addr = |
|
|
|
system.GPU().MemoryManager().GpuToCpuAddress(src_gpu_addr); |
|
|
|
std::pair<TSurface, TView> dst_surface = |
|
|
|
GetSurface(dst_gpu_addr, *dst_cpu_addr, dst_params, true, false); |
|
|
|
std::pair<TSurface, TView> src_surface = |
|
|
|
GetSurface(src_gpu_addr, *src_cpu_addr, src_params, true, false); |
|
|
|
ImageBlit(src_surface.second, dst_surface.second, copy_config); |
|
|
|
|
|
|
|
const auto& memory_manager = system.GPU().MemoryManager(); |
|
|
|
const std::optional<VAddr> dst_cpu_addr = memory_manager.GpuToCpuAddress(dst_gpu_addr); |
|
|
|
const std::optional<VAddr> src_cpu_addr = memory_manager.GpuToCpuAddress(src_gpu_addr); |
|
|
|
std::pair dst_surface = GetSurface(dst_gpu_addr, *dst_cpu_addr, dst_params, true, false); |
|
|
|
TView src_surface = GetSurface(src_gpu_addr, *src_cpu_addr, src_params, true, false).second; |
|
|
|
ImageBlit(src_surface, dst_surface.second, copy_config); |
|
|
|
dst_surface.first->MarkAsModified(true, Tick()); |
|
|
|
} |
|
|
|
|
|
|
|
|