[idd] driver: re-plug the monitor if the heap test failed

This commit is contained in:
Geoffrey McRae
2025-03-28 23:47:31 +00:00
parent 868504d22d
commit 648fca7caa
5 changed files with 35 additions and 22 deletions

View File

@@ -49,10 +49,19 @@ void CIndirectMonitorContext::AssignSwapChain(IDDCX_SWAPCHAIN swapChain, LUID re
UINT64 alignSize = CPlatformInfo::GetPageSize();
m_dx12Device = std::make_shared<CD3D12Device>(renderAdapter);
if (!m_dx12Device->Init(m_devContext->GetIVSHMEM(), alignSize))
switch (m_dx12Device->Init(m_devContext->GetIVSHMEM(), alignSize))
{
WdfObjectDelete(swapChain);
return;
case CD3D12Device::SUCCESS:
break;
case CD3D12Device::FAILURE:
WdfObjectDelete(swapChain);
return;
case CD3D12Device::RETRY:
WdfObjectDelete(swapChain);
m_devContext->ReplugMonitor();
return;
}
if (!m_devContext->SetupLGMP(alignSize))