From 58ac31e2beeff6aed8e3b50e4dd7ec7218922272 Mon Sep 17 00:00:00 2001 From: Samuliak Date: Sun, 7 Apr 2024 16:03:20 +0200 Subject: [PATCH] metal: support buffer to buffer copy --- src/video_core/renderer_metal/mtl_buffer_cache.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/video_core/renderer_metal/mtl_buffer_cache.cpp b/src/video_core/renderer_metal/mtl_buffer_cache.cpp index 1e0454c7d5..dfde651144 100644 --- a/src/video_core/renderer_metal/mtl_buffer_cache.cpp +++ b/src/video_core/renderer_metal/mtl_buffer_cache.cpp @@ -9,6 +9,7 @@ #include "video_core/renderer_metal/mtl_buffer_cache.h" +#include "video_core/renderer_metal/mtl_command_recorder.h" #include "video_core/renderer_metal/mtl_device.h" namespace Metal { @@ -80,7 +81,10 @@ void BufferCacheRuntime::Finish() {} void BufferCacheRuntime::CopyBuffer(MTL::Buffer* dst_buffer, MTL::Buffer* src_buffer, std::span copies, bool barrier, bool can_reorder_upload) { - // TODO: copy buffer + for (const VideoCommon::BufferCopy& copy : copies) { + command_recorder.GetBlitCommandEncoder()->copyFromBuffer( + src_buffer, copy.src_offset, dst_buffer, copy.dst_offset, copy.size); + } } void BufferCacheRuntime::ClearBuffer(MTL::Buffer* dest_buffer, u32 offset, size_t size, u32 value) {