diff --git a/src/video_core/renderer_metal/mtl_buffer_cache.cpp b/src/video_core/renderer_metal/mtl_buffer_cache.cpp index 61a4570920..dfde651144 100644 --- a/src/video_core/renderer_metal/mtl_buffer_cache.cpp +++ b/src/video_core/renderer_metal/mtl_buffer_cache.cpp @@ -81,11 +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) { - // HACK: needs to be commented out, since it interrupts render pass - // for (const VideoCommon::BufferCopy& copy : copies) { - // command_recorder.GetBlitCommandEncoder()->copyFromBuffer( - // src_buffer, copy.src_offset, dst_buffer, copy.dst_offset, copy.size); - // } + 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) { diff --git a/src/video_core/renderer_metal/mtl_graphics_pipeline.cpp b/src/video_core/renderer_metal/mtl_graphics_pipeline.cpp index acca0c5bbf..4399b75297 100644 --- a/src/video_core/renderer_metal/mtl_graphics_pipeline.cpp +++ b/src/video_core/renderer_metal/mtl_graphics_pipeline.cpp @@ -59,7 +59,9 @@ void GraphicsPipeline::Configure(bool is_indexed) { buffer_cache.UpdateGraphicsBuffers(is_indexed); buffer_cache.BindHostGeometryBuffers(is_indexed); - texture_cache.UpdateRenderTargets(true); + texture_cache.SynchronizeGraphicsDescriptors(); + + texture_cache.UpdateRenderTargets(false); const Framebuffer* const framebuffer = texture_cache.GetFramebuffer(); if (!framebuffer) { return;