From 733b7fe831f6ea22283fdb9c1df468d6e7a07075 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Thu, 18 Jan 2024 15:49:31 -0800 Subject: [PATCH] microsoft/compiler: Declare shader model 6.8 / validator 1.8 Part-of: --- src/gallium/drivers/d3d12/d3d12_screen.cpp | 3 ++- src/microsoft/compiler/dxil_validator.cpp | 4 ++-- src/microsoft/compiler/dxil_versions.h | 2 ++ src/microsoft/compiler/nir_to_dxil.c | 4 ++-- src/microsoft/vulkan/dzn_device.c | 4 ++-- src/microsoft/vulkan/dzn_pipeline.c | 2 +- 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/d3d12/d3d12_screen.cpp b/src/gallium/drivers/d3d12/d3d12_screen.cpp index cac0286b655..04752431cf5 100644 --- a/src/gallium/drivers/d3d12/d3d12_screen.cpp +++ b/src/gallium/drivers/d3d12/d3d12_screen.cpp @@ -1561,6 +1561,7 @@ d3d12_init_screen(struct d3d12_screen *screen, IUnknown *adapter) screen->max_feature_level = feature_levels.MaxSupportedFeatureLevel; static const D3D_SHADER_MODEL valid_shader_models[] = { + D3D_SHADER_MODEL_6_8, D3D_SHADER_MODEL_6_7, D3D_SHADER_MODEL_6_6, D3D_SHADER_MODEL_6_5, D3D_SHADER_MODEL_6_4, D3D_SHADER_MODEL_6_3, D3D_SHADER_MODEL_6_2, D3D_SHADER_MODEL_6_1, D3D_SHADER_MODEL_6_0, }; @@ -1568,7 +1569,7 @@ d3d12_init_screen(struct d3d12_screen *screen, IUnknown *adapter) D3D12_FEATURE_DATA_SHADER_MODEL shader_model = { valid_shader_models[i] }; if (SUCCEEDED(screen->dev->CheckFeatureSupport(D3D12_FEATURE_SHADER_MODEL, &shader_model, sizeof(shader_model)))) { static_assert(D3D_SHADER_MODEL_6_0 == 0x60 && SHADER_MODEL_6_0 == 0x60000, "Validating math below"); - static_assert(D3D_SHADER_MODEL_6_7 == 0x67 && SHADER_MODEL_6_7 == 0x60007, "Validating math below"); + static_assert(D3D_SHADER_MODEL_6_8 == 0x68 && SHADER_MODEL_6_8 == 0x60008, "Validating math below"); screen->max_shader_model = static_cast(((shader_model.HighestShaderModel & 0xf0) << 12) | (shader_model.HighestShaderModel & 0xf)); break; diff --git a/src/microsoft/compiler/dxil_validator.cpp b/src/microsoft/compiler/dxil_validator.cpp index c19b395aae1..fab8c85d9c8 100644 --- a/src/microsoft/compiler/dxil_validator.cpp +++ b/src/microsoft/compiler/dxil_validator.cpp @@ -101,9 +101,9 @@ get_validator_version(IDxcValidator *val) return NO_DXIL_VALIDATION; if (major == 1) - return (enum dxil_validator_version)(DXIL_VALIDATOR_1_0 + MIN2(minor, 7)); + return (enum dxil_validator_version)(DXIL_VALIDATOR_1_0 + MIN2(minor, 8)); if (major > 1) - return DXIL_VALIDATOR_1_7; + return DXIL_VALIDATOR_1_8; return NO_DXIL_VALIDATION; } diff --git a/src/microsoft/compiler/dxil_versions.h b/src/microsoft/compiler/dxil_versions.h index 83c80d56f93..320c40a59e9 100644 --- a/src/microsoft/compiler/dxil_versions.h +++ b/src/microsoft/compiler/dxil_versions.h @@ -37,6 +37,7 @@ enum dxil_shader_model { SHADER_MODEL_6_5, SHADER_MODEL_6_6, SHADER_MODEL_6_7, + SHADER_MODEL_6_8, }; enum dxil_validator_version { @@ -49,6 +50,7 @@ enum dxil_validator_version { DXIL_VALIDATOR_1_5, DXIL_VALIDATOR_1_6, DXIL_VALIDATOR_1_7, + DXIL_VALIDATOR_1_8, }; #ifdef __cplusplus diff --git a/src/microsoft/compiler/nir_to_dxil.c b/src/microsoft/compiler/nir_to_dxil.c index e67a40b14bd..5d14b8c823d 100644 --- a/src/microsoft/compiler/nir_to_dxil.c +++ b/src/microsoft/compiler/nir_to_dxil.c @@ -6428,9 +6428,9 @@ type_size_vec4(const struct glsl_type *type, bool bindless) } static const unsigned dxil_validator_min_capable_version = DXIL_VALIDATOR_1_4; -static const unsigned dxil_validator_max_capable_version = DXIL_VALIDATOR_1_7; +static const unsigned dxil_validator_max_capable_version = DXIL_VALIDATOR_1_8; static const unsigned dxil_min_shader_model = SHADER_MODEL_6_0; -static const unsigned dxil_max_shader_model = SHADER_MODEL_6_7; +static const unsigned dxil_max_shader_model = SHADER_MODEL_6_8; bool nir_to_dxil(struct nir_shader *s, const struct nir_to_dxil_options *opts, diff --git a/src/microsoft/vulkan/dzn_device.c b/src/microsoft/vulkan/dzn_device.c index be9b0ee7014..e037703f626 100644 --- a/src/microsoft/vulkan/dzn_device.c +++ b/src/microsoft/vulkan/dzn_device.c @@ -394,8 +394,8 @@ dzn_physical_device_cache_caps(struct dzn_physical_device *pdev) pdev->feature_level = levels.MaxSupportedFeatureLevel; static const D3D_SHADER_MODEL valid_shader_models[] = { - D3D_SHADER_MODEL_6_7, D3D_SHADER_MODEL_6_6, D3D_SHADER_MODEL_6_5, D3D_SHADER_MODEL_6_4, - D3D_SHADER_MODEL_6_3, D3D_SHADER_MODEL_6_2, D3D_SHADER_MODEL_6_1, + D3D_SHADER_MODEL_6_8 ,D3D_SHADER_MODEL_6_7, D3D_SHADER_MODEL_6_6, D3D_SHADER_MODEL_6_5, + D3D_SHADER_MODEL_6_4, D3D_SHADER_MODEL_6_3, D3D_SHADER_MODEL_6_2, D3D_SHADER_MODEL_6_1, }; for (UINT i = 0; i < ARRAY_SIZE(valid_shader_models); ++i) { D3D12_FEATURE_DATA_SHADER_MODEL shader_model = { valid_shader_models[i] }; diff --git a/src/microsoft/vulkan/dzn_pipeline.c b/src/microsoft/vulkan/dzn_pipeline.c index 3fa488a4804..a117dc0795e 100644 --- a/src/microsoft/vulkan/dzn_pipeline.c +++ b/src/microsoft/vulkan/dzn_pipeline.c @@ -384,7 +384,7 @@ enum dxil_shader_model dzn_get_shader_model(const struct dzn_physical_device *pdev) { static_assert(D3D_SHADER_MODEL_6_0 == 0x60 && SHADER_MODEL_6_0 == 0x60000, "Validating math below"); - static_assert(D3D_SHADER_MODEL_6_7 == 0x67 && SHADER_MODEL_6_7 == 0x60007, "Validating math below"); + static_assert(D3D_SHADER_MODEL_6_8 == 0x68 && SHADER_MODEL_6_8 == 0x60008, "Validating math below"); return ((pdev->shader_model & 0xf0) << 12) | (pdev->shader_model & 0xf); }