From 355dd53857248322f509303cafc9f39decabc6db Mon Sep 17 00:00:00 2001 From: Ronald M Zielaznicki Date: Mon, 21 Oct 2024 13:16:53 -0400 Subject: [PATCH] change(Core): deinit platform after GPU backend release --- src/Core.zig | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Core.zig b/src/Core.zig index 6c72cc37..d9e5cf7c 100644 --- a/src/Core.zig +++ b/src/Core.zig @@ -355,13 +355,21 @@ pub fn deinit(entities: *mach.Entities.Mod, core: *Mod) !void { } } - state.platform.deinit(); + // GPU backend (ie. d3d12, metal, opengl, vulkan) + // + // Must be done BEFORE platform deinit. + // Otherwise, we enter a race condition where GPU might try to present + // to the window server. state.swap_chain.release(); state.queue.release(); state.device.release(); state.surface.release(); state.adapter.release(); state.instance.release(); + + // Platform (ie. Windows, MacOS, Linux X11 or Wayland) + state.platform.deinit(); + state.events.deinit(); }