microsoft/compiler: Declare shader model 6.8 / validator 1.8

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27160>
This commit is contained in:
Jesse Natalie
2024-01-18 15:49:31 -08:00
committed by Marge Bot
parent bf461d856f
commit 733b7fe831
6 changed files with 11 additions and 8 deletions

View File

@@ -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<dxil_shader_model>(((shader_model.HighestShaderModel & 0xf0) << 12) |
(shader_model.HighestShaderModel & 0xf));
break;

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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,

View File

@@ -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] };

View File

@@ -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);
}