[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