[hlsl] Add support for Shader Model 6.10 Add the enum option to the Tint executable and hook it up to the DXC validation code. Fixed: 508333332 Change-Id: I2b5d6237b128366795c8950b3dd4a7bbe3f3bc15 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/306320 Commit-Queue: James Price <jrprice@google.com> Reviewed-by: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/cmd/tint/main.cc b/src/tint/cmd/tint/main.cc index 65f79b6..5ce6a00 100644 --- a/src/tint/cmd/tint/main.cc +++ b/src/tint/cmd/tint/main.cc
@@ -361,10 +361,11 @@ EnumName(tint::hlsl::validate::HlslShaderModel::kSM_6_2, "6.2"), EnumName(tint::hlsl::validate::HlslShaderModel::kSM_6_4, "6.4"), EnumName(tint::hlsl::validate::HlslShaderModel::kSM_6_6, "6.6"), + EnumName(tint::hlsl::validate::HlslShaderModel::kSM_6_10, "6.10"), }; auto& hlsl_shader_model = options.Add<EnumOption<tint::hlsl::validate::HlslShaderModel>>( "hlsl-shader-model", R"(The D3D Shader Model to compile and validate with. -Valid values are 6.0, 6.2, 6.4 and 6.6)", +Valid values are 6.0, 6.2, 6.4, 6.6 and 6.10)", hlsl_shader_model_enum_names, Default{tint::hlsl::validate::HlslShaderModel::kSM_6_0}); TINT_DEFER(opts->hlsl_shader_model = *hlsl_shader_model.value); #endif // TINT_BUILD_HLSL_WRITER
diff --git a/src/tint/lang/hlsl/validate/validate.cc b/src/tint/lang/hlsl/validate/validate.cc index a6a678f..ef69931 100644 --- a/src/tint/lang/hlsl/validate/validate.cc +++ b/src/tint/lang/hlsl/validate/validate.cc
@@ -183,6 +183,9 @@ case HlslShaderModel::kSM_6_6: profile += L"6_6"; break; + case HlslShaderModel::kSM_6_10: + profile += L"6_10"; + break; } std::wstring entry_point = std::wstring(entry_point_name.begin(), entry_point_name.end()); std::vector<const wchar_t*> args{
diff --git a/src/tint/lang/hlsl/validate/validate.h b/src/tint/lang/hlsl/validate/validate.h index 0f28e15..65094a5 100644 --- a/src/tint/lang/hlsl/validate/validate.h +++ b/src/tint/lang/hlsl/validate/validate.h
@@ -54,6 +54,7 @@ kSM_6_2, kSM_6_4, kSM_6_6, + kSM_6_10, }; /// HlslShaderModel less-than operator