diff --git a/src/gui/rhi/qrhid3d11.cpp b/src/gui/rhi/qrhid3d11.cpp index b79a1b9b8a9..912ebb06f04 100644 --- a/src/gui/rhi/qrhid3d11.cpp +++ b/src/gui/rhi/qrhid3d11.cpp @@ -240,6 +240,8 @@ bool QRhiD3D11::create(QRhi::Flags flags) if (maxFrameLatency == 0) qCDebug(QRHI_LOG_INFO, "Disabling FRAME_LATENCY_WAITABLE_OBJECT usage"); + activeAdapter = nullptr; + if (!importedDeviceAndContext) { IDXGIAdapter1 *adapter; int requestedAdapterIndex = -1; @@ -276,7 +278,6 @@ bool QRhiD3D11::create(QRhi::Flags flags) } } - activeAdapter = nullptr; for (int adapterIndex = 0; dxgiFactory->EnumAdapters1(UINT(adapterIndex), &adapter) != DXGI_ERROR_NOT_FOUND; ++adapterIndex) { DXGI_ADAPTER_DESC1 desc; adapter->GetDesc1(&desc); @@ -394,6 +395,10 @@ bool QRhiD3D11::create(QRhi::Flags flags) } dxgiDev->Release(); } + if (!activeAdapter) { + qWarning("Failed to query adapter from imported device"); + return false; + } qCDebug(QRHI_LOG_INFO, "Using imported device %p", dev); } diff --git a/src/gui/rhi/qrhid3d12.cpp b/src/gui/rhi/qrhid3d12.cpp index d605693bad8..3d9ec3d43ec 100644 --- a/src/gui/rhi/qrhid3d12.cpp +++ b/src/gui/rhi/qrhid3d12.cpp @@ -249,6 +249,8 @@ bool QRhiD3D12::create(QRhi::Flags flags) } } + activeAdapter = nullptr; + if (!importedDevice) { IDXGIAdapter1 *adapter; int requestedAdapterIndex = -1; @@ -285,7 +287,6 @@ bool QRhiD3D12::create(QRhi::Flags flags) } } - activeAdapter = nullptr; for (int adapterIndex = 0; dxgiFactory->EnumAdapters1(UINT(adapterIndex), &adapter) != DXGI_ERROR_NOT_FOUND; ++adapterIndex) { DXGI_ADAPTER_DESC1 desc; adapter->GetDesc1(&desc);