D3D11/12/WGPU: Retried refused swap chain resize. D3D12/MTL/VK/WGPU: Fatal on failed pipeline creation. (#3985)

This commit is contained in:
Branimir Karadžić
2026-09-17 14:14:56 +00:00
committed by GitHub
parent b380f0ee73
commit 5777fe1f66
8 changed files with 111 additions and 20 deletions
+23 -2
View File
@@ -5700,6 +5700,8 @@ namespace bgfx { namespace d3d11
return;
}
const SwapChain prev = m_desc;
m_desc = _desc;
m_nwh = _desc.nwh;
@@ -5713,11 +5715,20 @@ namespace bgfx { namespace d3d11
if (FAILED(hr) )
{
BX_TRACE("Failed to resize swap chain, hr 0x%08x.", hr);
DX_RELEASE(m_swapChain, 0);
m_num = 0;
m_descPending = _desc;
m_needToRecreateSwapChain = true;
m_desc = prev;
m_desc.depth = _desc.depth;
createSwapChainViews();
return;
}
m_needToRecreateSwapChain = false;
createSwapChainViews();
}
@@ -6772,6 +6783,16 @@ namespace bgfx { namespace d3d11
renderDocTriggerCapture();
}
for (uint32_t ii = 1, num = m_numWindows; ii < num; ++ii)
{
FrameBufferD3D11& frameBuffer = m_frameBuffers[m_windows[ii].idx];
if (frameBuffer.m_needToRecreateSwapChain)
{
frameBuffer.update(frameBuffer.m_descPending);
}
}
BGFX_D3D11_PROFILER_BEGIN_LITERAL("rendererSubmit", kColorView);
ID3D11DeviceContext* deviceCtx = m_deviceCtx;