diff --git a/Dalamud/Interface/Internal/InterfaceManager.cs b/Dalamud/Interface/Internal/InterfaceManager.cs index 06a93e453..e2993f911 100644 --- a/Dalamud/Interface/Internal/InterfaceManager.cs +++ b/Dalamud/Interface/Internal/InterfaceManager.cs @@ -817,8 +817,12 @@ internal class InterfaceManager : IInternalDisposableService // This will wait for scene on its own. We just wait for this.dalamudAtlas.BuildTask in this.InitScene. _ = this.dalamudAtlas.BuildFontsAsync(); + SwapChainHelper.BusyWaitForGameDeviceSwapChain(); + SwapChainHelper.DetectReShade(); + try { + // Requires that game window to be there, which will be the case once game swap chain is initialized. if (Service.Get().WindowIsImmersive) this.SetImmersiveMode(true); } @@ -834,9 +838,6 @@ internal class InterfaceManager : IInternalDisposableService 0, this.SetCursorDetour); - SwapChainHelper.BusyWaitForGameDeviceSwapChain(); - SwapChainHelper.DetectReShade(); - Log.Verbose("===== S W A P C H A I N ====="); this.resizeBuffersHook = Hook.FromAddress( (nint)SwapChainHelper.GameDeviceSwapChainVtbl->ResizeBuffers,