From 2a9041b9d87bf400e8ea39a8440664007920ff5d Mon Sep 17 00:00:00 2001 From: cdozdil Date: Sun, 9 Nov 2025 23:10:46 +0300 Subject: [PATCH] Disabled ALLOW_MODE_SWITCH flag when using force borderless --- OptiScaler/hooks/DxgiFactory_Hooks.cpp | 2 ++ OptiScaler/hooks/DxgiFactory_WrappedCalls.cpp | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/OptiScaler/hooks/DxgiFactory_Hooks.cpp b/OptiScaler/hooks/DxgiFactory_Hooks.cpp index 4f23034f..bf9d444f 100644 --- a/OptiScaler/hooks/DxgiFactory_Hooks.cpp +++ b/OptiScaler/hooks/DxgiFactory_Hooks.cpp @@ -213,6 +213,7 @@ HRESULT DxgiFactoryHooks::CreateSwapChain(IDXGIFactory* realFactory, IUnknown* p pDesc->Windowed = true; } + pDesc->Flags &= ~DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; pDesc->BufferDesc.Scaling = DXGI_MODE_SCALING_STRETCHED; } @@ -434,6 +435,7 @@ HRESULT DxgiFactoryHooks::CreateSwapChainForHwnd(IDXGIFactory2* realFactory, IUn pFullscreenDesc->Windowed = true; } + pDesc->Flags &= ~DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; pDesc->Scaling = DXGI_SCALING_STRETCH; } diff --git a/OptiScaler/hooks/DxgiFactory_WrappedCalls.cpp b/OptiScaler/hooks/DxgiFactory_WrappedCalls.cpp index da2b18f7..292f3402 100644 --- a/OptiScaler/hooks/DxgiFactory_WrappedCalls.cpp +++ b/OptiScaler/hooks/DxgiFactory_WrappedCalls.cpp @@ -98,6 +98,7 @@ HRESULT DxgiFactoryWrappedCalls::CreateSwapChain(IDXGIFactory* realFactory, Wrap pDesc->Windowed = true; } + pDesc->Flags &= ~DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; pDesc->BufferDesc.Scaling = DXGI_MODE_SCALING_STRETCHED; } @@ -304,6 +305,7 @@ HRESULT DxgiFactoryWrappedCalls::CreateSwapChainForHwnd(IDXGIFactory2* realFacto pFullscreenDesc->Windowed = true; } + pDesc->Flags &= ~DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH; pDesc->Scaling = DXGI_SCALING_STRETCH; } @@ -327,7 +329,7 @@ HRESULT DxgiFactoryWrappedCalls::CreateSwapChainForHwnd(IDXGIFactory2* realFacto State::Instance().SCLastFlags = pDesc->Flags; State::Instance().realExclusiveFullscreen = pFullscreenDesc != nullptr && !pFullscreenDesc->Windowed; -#ifdef VER_PRE_RELEASE +#ifdef DETAILED_SC_LOGS LOG_TRACE("pDesc->AlphaMode : {}", magic_enum::enum_name(pDesc->AlphaMode)); LOG_TRACE("pDesc->BufferCount : {}", pDesc->BufferCount); LOG_TRACE("pDesc->BufferUsage : {}", pDesc->BufferUsage);