Module: vkd3d Branch: master Commit: fb20639eb449295131ca8e3c93fd5b4abc79da9f URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/fb20639eb449295131ca8e3c93fd5b...
Author: Conor McCarthy cmccarthy@codeweavers.com Date: Wed May 1 00:01:02 2024 +1000
vkd3d: Return E_INVALIDARG if the requested shader model is unknown.
---
libs/vkd3d/device.c | 8 ++++++++ tests/d3d12.c | 3 --- 2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 3eb7ec85..6b39663a 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -3487,6 +3487,14 @@ static HRESULT STDMETHODCALLTYPE d3d12_device_CheckFeatureSupport(ID3D12Device9 return E_INVALIDARG; }
+ if (data->HighestShaderModel != D3D_SHADER_MODEL_5_1 + && (data->HighestShaderModel < D3D_SHADER_MODEL_6_0 + || data->HighestShaderModel > D3D_HIGHEST_SHADER_MODEL)) + { + WARN("Unknown shader model %#x.\n", data->HighestShaderModel); + return E_INVALIDARG; + } + TRACE("Request shader model %#x.\n", data->HighestShaderModel);
#ifdef VKD3D_SHADER_UNSUPPORTED_DXIL diff --git a/tests/d3d12.c b/tests/d3d12.c index 8db0af99..f55eefc0 100644 --- a/tests/d3d12.c +++ b/tests/d3d12.c @@ -1010,15 +1010,12 @@ static void test_check_feature_support(void) "Got shader model %#x, expected <= %#x.\n", shader_model.HighestShaderModel, sm); shader_model.HighestShaderModel = 0x89; hr = ID3D12Device_CheckFeatureSupport(device, D3D12_FEATURE_SHADER_MODEL, &shader_model, sizeof(shader_model)); - todo ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr); shader_model.HighestShaderModel = 0x52; hr = ID3D12Device_CheckFeatureSupport(device, D3D12_FEATURE_SHADER_MODEL, &shader_model, sizeof(shader_model)); - todo ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr); shader_model.HighestShaderModel = 0; hr = ID3D12Device_CheckFeatureSupport(device, D3D12_FEATURE_SHADER_MODEL, &shader_model, sizeof(shader_model)); - todo ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
/* Root signature */