From f689b23024c091eb7bf7818f63f604fea6f65d4e Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 13 Sep 2024 12:52:01 +0100 Subject: [PATCH] Don't run D3D12 singleton device test if we're using new device creation --- util/test/demos/d3d12/d3d12_parameter_zoo.cpp | 27 ++++++++++--------- util/test/demos/d3d12/d3d12_test.cpp | 2 ++ util/test/demos/d3d12/d3d12_test.h | 2 ++ 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/util/test/demos/d3d12/d3d12_parameter_zoo.cpp b/util/test/demos/d3d12/d3d12_parameter_zoo.cpp index e70beb7e1..2a951a14c 100644 --- a/util/test/demos/d3d12/d3d12_parameter_zoo.cpp +++ b/util/test/demos/d3d12/d3d12_parameter_zoo.cpp @@ -62,22 +62,25 @@ float4 main() : SV_Target0 if(!Init()) return 3; - LUID luid = dev->GetAdapterLuid(); - IDXGIAdapterPtr pDXGIAdapter; - ID3D12DevicePtr devB; + if(m_SingletonDevice) { - HRESULT hr = EnumAdapterByLuid(dev->GetAdapterLuid(), pDXGIAdapter); - if(FAILED(hr)) - return 2; + LUID luid = dev->GetAdapterLuid(); + IDXGIAdapterPtr pDXGIAdapter; + ID3D12DevicePtr devB; + { + HRESULT hr = EnumAdapterByLuid(dev->GetAdapterLuid(), pDXGIAdapter); + if(FAILED(hr)) + return 2; - devB = CreateDevice({pDXGIAdapter}, D3D_FEATURE_LEVEL_11_0); - if(!devB) - return 2; + devB = CreateDevice({pDXGIAdapter}, D3D_FEATURE_LEVEL_11_0); + if(!devB) + return 2; + } + + // create a buffer on another unrelated device + ID3D12ResourcePtr bufferB = D3D12BufferCreator(devB, this).Data(DefaultTri); } - // create a buffer on another unrelated device - ID3D12ResourcePtr bufferB = D3D12BufferCreator(devB, this).Data(DefaultTri); - ID3DBlobPtr vsblob = Compile(D3DDefaultVertex, "main", "vs_4_0"); ID3DBlobPtr psblob = Compile(pixel, "main", "ps_4_0"); diff --git a/util/test/demos/d3d12/d3d12_test.cpp b/util/test/demos/d3d12/d3d12_test.cpp index f546b5e5c..87e637774 100644 --- a/util/test/demos/d3d12/d3d12_test.cpp +++ b/util/test/demos/d3d12/d3d12_test.cpp @@ -375,6 +375,8 @@ bool D3D12GraphicsTest::Init() devConfig = devPtrs.config; d3d12Debug = devPtrs.debug; + m_SingletonDevice = (devFactory == NULL); + dev = CreateDevice(adapters, minFeatureLevel); if(!dev) return false; diff --git a/util/test/demos/d3d12/d3d12_test.h b/util/test/demos/d3d12/d3d12_test.h index 6c0227ed4..39f405859 100644 --- a/util/test/demos/d3d12/d3d12_test.h +++ b/util/test/demos/d3d12/d3d12_test.h @@ -219,6 +219,8 @@ struct D3D12GraphicsTest : public GraphicsTest bool gpuva = false, m_12On7 = false, m_DXILSupport = false; IDXGIFactory1Ptr m_Factory; + bool m_SingletonDevice; + ID3D12DebugPtr d3d12Debug; ID3D12InfoQueuePtr infoqueue;