Switch Dx11 swap effects with Dx12 supported ones

This commit is contained in:
cdozdil
2025-10-28 16:46:01 +03:00
parent d99a243f6d
commit 4dfb8ceef0
+24
View File
@@ -97,6 +97,18 @@ HRESULT FGHooks::CreateSwapChain(IDXGIFactory* pFactory, IUnknown* pDevice, DXGI
if (State::Instance().activeFgOutput == FGOutput::XeFG && !pDesc->Windowed)
LOG_WARN("Using exclusive fullscreen with XeFG!!!");
// These effects are not supported in DX12
if (pDesc->SwapEffect == DXGI_SWAP_EFFECT_SEQUENTIAL)
{
LOG_WARN("DXGI_SWAP_EFFECT_SEQUENTIAL is not supported in DX12, changing to FLIP_SEQUENTIAL");
pDesc->SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL;
}
else if (pDesc->SwapEffect == DXGI_SWAP_EFFECT_DISCARD)
{
LOG_WARN("DXGI_SWAP_EFFECT_DISCARD is not supported in DX12, changing to FLIP_DISCARD");
pDesc->SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
}
auto scResult = fg->CreateSwapchain(pFactory, cq, pDesc, ppSwapChain);
if (Config::Instance()->FGDontUseSwapchainBuffers.value_or_default())
@@ -166,6 +178,18 @@ HRESULT FGHooks::CreateSwapChainForHwnd(IDXGIFactory* pFactory, IUnknown* pDevic
if (State::Instance().activeFgOutput == FGOutput::XeFG && pFullscreenDesc != nullptr && !pFullscreenDesc->Windowed)
LOG_WARN("Using exclusive fullscreen with XeFG!!!");
// These effects are not supported in DX12
if (pDesc->SwapEffect == DXGI_SWAP_EFFECT_SEQUENTIAL)
{
LOG_WARN("DXGI_SWAP_EFFECT_SEQUENTIAL is not supported in DX12, changing to FLIP_SEQUENTIAL");
pDesc->SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL;
}
else if (pDesc->SwapEffect == DXGI_SWAP_EFFECT_DISCARD)
{
LOG_WARN("DXGI_SWAP_EFFECT_DISCARD is not supported in DX12, changing to FLIP_DISCARD");
pDesc->SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
}
auto scResult = fg->CreateSwapchain1(pFactory, cq, hWnd, pDesc, pFullscreenDesc, ppSwapChain);
if (Config::Instance()->FGDontUseSwapchainBuffers.value_or_default())