mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-06-30 16:49:50 +00:00
[idd] driver: improve reInit logic on failure
This commit is contained in:
parent
f26fa17bc1
commit
75f07cb28c
@ -39,6 +39,7 @@ CIndirectMonitorContext::~CIndirectMonitorContext()
|
|||||||
|
|
||||||
void CIndirectMonitorContext::AssignSwapChain(IDDCX_SWAPCHAIN swapChain, LUID renderAdapter, HANDLE newFrameEvent)
|
void CIndirectMonitorContext::AssignSwapChain(IDDCX_SWAPCHAIN swapChain, LUID renderAdapter, HANDLE newFrameEvent)
|
||||||
{
|
{
|
||||||
|
reInit:
|
||||||
m_swapChain.reset();
|
m_swapChain.reset();
|
||||||
m_dx11Device = std::make_shared<CD3D11Device>(renderAdapter);
|
m_dx11Device = std::make_shared<CD3D11Device>(renderAdapter);
|
||||||
if (FAILED(m_dx11Device->Init()))
|
if (FAILED(m_dx11Device->Init()))
|
||||||
@ -59,9 +60,9 @@ void CIndirectMonitorContext::AssignSwapChain(IDDCX_SWAPCHAIN swapChain, LUID re
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case CD3D12Device::RETRY:
|
case CD3D12Device::RETRY:
|
||||||
WdfObjectDelete(swapChain);
|
m_dx12Device.reset();
|
||||||
m_devContext->ReplugMonitor();
|
m_dx11Device.reset();
|
||||||
return;
|
goto reInit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_devContext->SetupLGMP(alignSize))
|
if (!m_devContext->SetupLGMP(alignSize))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user