From fde5fbe6f4ae32103013e2b35cf2026dd6d98362 Mon Sep 17 00:00:00 2001 From: itsRevela Date: Fri, 17 Apr 2026 11:55:04 -0500 Subject: [PATCH] fix: force VSync on main menu to prevent GPU coil whine --- Minecraft.Client/Windows64/Windows64_Minecraft.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp index ee42b222..1510e825 100644 --- a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp +++ b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp @@ -1966,7 +1966,11 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, // Present the frame. RenderManager.Present() hardcodes SyncInterval=1, // so when VSync is off we bypass it for uncapped frames. In DXGI // exclusive fullscreen this produces real tearing via direct scanout. - if (!g_bVSync && g_pSwapChain) + // Force VSync on the main menu regardless of user setting: an uncapped + // simple menu scene drives the GPU to thousands of FPS and causes coil + // whine on many cards. + const bool forceVSyncForMenu = !app.GetGameStarted(); + if (!g_bVSync && !forceVSyncForMenu && g_pSwapChain) { HRESULT hrPresent = g_pSwapChain->Present(0, 0); // If the direct Present fails (e.g. during fullscreen transition),