From cda6da6945000ef4291441667aaf506186347d38 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 22 Sep 2025 13:49:51 +0100 Subject: [PATCH] Enumerate supported shader model in demos a bit more tightly --- util/test/demos/d3d12/d3d12_test.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/util/test/demos/d3d12/d3d12_test.cpp b/util/test/demos/d3d12/d3d12_test.cpp index 40c29ac01..de6548c25 100644 --- a/util/test/demos/d3d12/d3d12_test.cpp +++ b/util/test/demos/d3d12/d3d12_test.cpp @@ -422,11 +422,17 @@ void D3D12GraphicsTest::Prepare(int argc, char **argv) tmpdev->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS7, &opts7, sizeof(opts7)); D3D12_FEATURE_DATA_SHADER_MODEL oShaderModel = {}; oShaderModel.HighestShaderModel = D3D_SHADER_MODEL_6_7; - HRESULT hr = tmpdev->CheckFeatureSupport(D3D12_FEATURE_SHADER_MODEL, &oShaderModel, - sizeof(oShaderModel)); - if(SUCCEEDED(hr)) + while(oShaderModel.HighestShaderModel >= D3D_SHADER_MODEL_6_0) { - m_HighestShaderModel = oShaderModel.HighestShaderModel; + HRESULT hr = tmpdev->CheckFeatureSupport(D3D12_FEATURE_SHADER_MODEL, &oShaderModel, + sizeof(oShaderModel)); + if(SUCCEEDED(hr)) + { + m_HighestShaderModel = oShaderModel.HighestShaderModel; + break; + } + + oShaderModel.HighestShaderModel = D3D_SHADER_MODEL(oShaderModel.HighestShaderModel - 1); } } }