rhi: d3d11: Flush() when destroying a swapchain

Task-number: QTBUG-120276
Change-Id: Iaf79c4dcf60d9a52bd562fd94976402cf570147d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit cff5a49cc20c3c9d98a5f97cd702a378ae29611b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit eb3529ea3554642c65402b89e39416bf657170d8)
(cherry picked from commit 87d075f7be7abdf56e622f2b5b20cdb6f6e418de)
This commit is contained in:
Laszlo Agocs 2024-02-06 10:16:27 +01:00 committed by Qt Cherry-pick Bot
parent 3a6031a99f
commit 51886d7c97

View File

@ -4736,8 +4736,12 @@ void QD3D11SwapChain::destroy()
}
QRHI_RES_RHI(QRhiD3D11);
if (rhiD)
if (rhiD) {
rhiD->unregisterResource(this);
// See Deferred Destruction Issues with Flip Presentation Swap Chains in
// https://learn.microsoft.com/en-us/windows/win32/api/d3d11/nf-d3d11-id3d11devicecontext-flush
rhiD->context->Flush();
}
}
QRhiCommandBuffer *QD3D11SwapChain::currentFrameCommandBuffer()