diff --git a/pcsx2/Frontend/MetalHostDisplay.mm b/pcsx2/Frontend/MetalHostDisplay.mm index ebe41fcaf1648..a163b9c676849 100644 --- a/pcsx2/Frontend/MetalHostDisplay.mm +++ b/pcsx2/Frontend/MetalHostDisplay.mm @@ -303,9 +303,11 @@ static void OnMainThread(Fn&& fn) ImGui::Render(); dev->RenderImGui(ImGui::GetDrawData()); dev->EndRenderPass(); - dev->FlushEncoders(); if (m_current_drawable) - [m_current_drawable present]; + [dev->m_current_render_cmdbuf addScheduledHandler:[drawable = std::move(m_current_drawable)](id){ + [drawable present]; + }]; + dev->FlushEncoders(); m_current_drawable = nullptr; if (@available(macOS 10.15, iOS 13, *)) {