[spirv-reader] Update dimension error message in spirv-reader.

Update the invalid dimension error message to use the string version of
the dimension instead of just the enum value. Makes it a bit easier to
understand the error message.

Fixed: 42251234
Change-Id: I6104741e5f13ae87c62699cc76ed56132e07613e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/265894
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Auto-Submit: dan sinclair <dsinclair@chromium.org>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
diff --git a/src/tint/lang/spirv/reader/parser/BUILD.bazel b/src/tint/lang/spirv/reader/parser/BUILD.bazel
index a929fc7..850b8b7 100644
--- a/src/tint/lang/spirv/reader/parser/BUILD.bazel
+++ b/src/tint/lang/spirv/reader/parser/BUILD.bazel
@@ -75,6 +75,7 @@
   }) + select({
     ":tint_build_spv_reader_or_tint_build_spv_writer": [
       "//src/tint/lang/spirv/validate",
+      "@spirv_headers//:spirv_cpp11_headers", "@spirv_headers//:spirv_c_headers",
       "@spirv_tools//:spirv_tools_opt",
       "@spirv_tools",
     ],
diff --git a/src/tint/lang/spirv/reader/parser/BUILD.cmake b/src/tint/lang/spirv/reader/parser/BUILD.cmake
index 060efd6..8907216 100644
--- a/src/tint/lang/spirv/reader/parser/BUILD.cmake
+++ b/src/tint/lang/spirv/reader/parser/BUILD.cmake
@@ -84,6 +84,7 @@
     tint_lang_spirv_validate
   )
   tint_target_add_external_dependencies(tint_lang_spirv_reader_parser lib
+    "spirv-headers"
     "spirv-opt-internal"
     "spirv-tools"
   )
diff --git a/src/tint/lang/spirv/reader/parser/BUILD.gn b/src/tint/lang/spirv/reader/parser/BUILD.gn
index ac2411f..ba63246 100644
--- a/src/tint/lang/spirv/reader/parser/BUILD.gn
+++ b/src/tint/lang/spirv/reader/parser/BUILD.gn
@@ -79,6 +79,7 @@
 
     if (tint_build_spv_reader || tint_build_spv_writer) {
       deps += [
+        "${tint_spirv_headers_dir}:spv_headers",
         "${tint_spirv_tools_dir}:spvtools",
         "${tint_spirv_tools_dir}:spvtools_headers",
         "${tint_spirv_tools_dir}:spvtools_opt",
diff --git a/src/tint/lang/spirv/reader/parser/parser.cc b/src/tint/lang/spirv/reader/parser/parser.cc
index c4d75bd..1ce3f6d 100644
--- a/src/tint/lang/spirv/reader/parser/parser.cc
+++ b/src/tint/lang/spirv/reader/parser/parser.cc
@@ -37,6 +37,9 @@
 #include <utility>
 #include <vector>
 
+#define SPV_ENABLE_UTILITY_CODE
+#include "spirv/unified1/spirv.hpp11"
+
 // This header is in an external dependency, so warnings cannot be fixed without upstream changes.
 TINT_BEGIN_DISABLE_WARNING(NEWLINE_EOF);
 TINT_BEGIN_DISABLE_WARNING(OLD_STYLE_CAST);
@@ -790,8 +793,9 @@
                     if (img->dim() != spv::Dim::Dim1D && img->dim() != spv::Dim::Dim2D &&
                         img->dim() != spv::Dim::Dim3D && img->dim() != spv::Dim::Cube &&
                         img->dim() != spv::Dim::SubpassData) {
-                        TINT_ICE() << "Unsupported texture dimension: "
-                                   << static_cast<uint32_t>(img->dim());
+                        TINT_ICE()
+                            << "Unsupported texture dimension: " << spv::DimToString(img->dim())
+                            << " (val = " << static_cast<uint32_t>(img->dim()) << ")";
                     }
                     if (img->sampled() == 0) {
                         TINT_ICE() << "Unsupported texture sample setting: Known at Runtime";