mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-10-25 18:25:29 +00:00
D3D11/12/WGPU: Retried refused swap chain resize. D3D12/MTL/VK/WGPU: Fatal on failed pipeline creation. (#3985)
This commit is contained in:
+23
-2
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user