From 5ba95f714d4e5fbdedd653cf7c4137ebe4faa271 Mon Sep 17 00:00:00 2001 From: foxnne Date: Fri, 6 Dec 2024 15:48:29 -0600 Subject: [PATCH] metal: Remove wait --- src/sysgpu/metal.zig | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/sysgpu/metal.zig b/src/sysgpu/metal.zig index ccfdc0df..19650ab5 100644 --- a/src/sysgpu/metal.zig +++ b/src/sysgpu/metal.zig @@ -478,16 +478,19 @@ pub const SwapChain = struct { const pool = objc.autoreleasePoolPush(); defer objc.autoreleasePoolPop(pool); - if (swapchain.current_drawable) |_| { + if (swapchain.current_drawable) |drawable| { const queue = try swapchain.device.getQueue(); const command_buffer: *mtl.CommandBuffer = queue.command_queue.commandBuffer() orelse { return error.NewCommandBufferFailed; }; - command_buffer.presentDrawable(@ptrCast(swapchain.current_drawable)); // TODO - objc casting? - command_buffer.commit(); - if (swapchain.surface.layer.displaySyncEnabled()) - command_buffer.waitUntilCompleted(); + if (swapchain.surface.layer.displaySyncEnabled()) { + command_buffer.commit(); + drawable.present(); + } else { + command_buffer.presentDrawable(@ptrCast(drawable)); + command_buffer.commit(); + } } } };