Add enum for parameter usages.

Currently the ParameterUsages is built entirely from core.def. There are
usages we'd like to use which appear in alternate def files. This Cl
adds a `usages` enum into core.def which allows adding extra usages
above what already appears in core.def

Change-Id: Ibfbdead7a4e875fedce31546f8c1b519efa005f9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/197216
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/src/tint/lang/core/core.def b/src/tint/lang/core/core.def
index 26907a3..dce777d 100644
--- a/src/tint/lang/core/core.def
+++ b/src/tint/lang/core/core.def
@@ -224,6 +224,16 @@
   input_attachment_index
 }
 
+// These are paramter usages which show up in other def files but not in core.def.
+enum usages {
+  width
+  height
+  depth
+  elements
+  samples
+  num_levels
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // Primitive types                                                            //
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/tint/lang/core/parameter_usage.cc b/src/tint/lang/core/parameter_usage.cc
index 431dec2..4b39093 100644
--- a/src/tint/lang/core/parameter_usage.cc
+++ b/src/tint/lang/core/parameter_usage.cc
@@ -54,18 +54,28 @@
             return "ddx";
         case ParameterUsage::kDdy:
             return "ddy";
+        case ParameterUsage::kDepth:
+            return "depth";
         case ParameterUsage::kDepthRef:
             return "depth_ref";
+        case ParameterUsage::kElements:
+            return "elements";
+        case ParameterUsage::kHeight:
+            return "height";
         case ParameterUsage::kInputAttachment:
             return "input_attachment";
         case ParameterUsage::kLevel:
             return "level";
+        case ParameterUsage::kNumLevels:
+            return "num_levels";
         case ParameterUsage::kOffset:
             return "offset";
         case ParameterUsage::kSampleIndex:
             return "sample_index";
         case ParameterUsage::kSampler:
             return "sampler";
+        case ParameterUsage::kSamples:
+            return "samples";
         case ParameterUsage::kSourceLaneIndex:
             return "sourceLaneIndex";
         case ParameterUsage::kTexture:
@@ -74,6 +84,8 @@
             return "value";
         case ParameterUsage::kW:
             return "w";
+        case ParameterUsage::kWidth:
+            return "width";
         case ParameterUsage::kX:
             return "x";
         case ParameterUsage::kXy:
diff --git a/src/tint/lang/core/parameter_usage.h b/src/tint/lang/core/parameter_usage.h
index 10eecf6..5d16272 100644
--- a/src/tint/lang/core/parameter_usage.h
+++ b/src/tint/lang/core/parameter_usage.h
@@ -53,16 +53,22 @@
     kCoords,
     kDdx,
     kDdy,
+    kDepth,
     kDepthRef,
+    kElements,
+    kHeight,
     kInputAttachment,
     kLevel,
+    kNumLevels,
     kOffset,
     kSampleIndex,
     kSampler,
+    kSamples,
     kSourceLaneIndex,
     kTexture,
     kValue,
     kW,
+    kWidth,
     kX,
     kXy,
     kXyz,