[Mesa-dev] [PATCH 1/4] spirv: Update SPIR-V json and headers to Khronos master

Jason Ekstrand jason at jlekstrand.net
Sat Oct 13 13:48:31 UTC 2018


This corresponds to commit 801cca8104245c07e8cc532 on GitHub.
---
 src/compiler/spirv/spirv.core.grammar.json | 533 ++++++++++++++++++++-
 src/compiler/spirv/spirv.h                 |  84 ++++
 2 files changed, 604 insertions(+), 13 deletions(-)

diff --git a/src/compiler/spirv/spirv.core.grammar.json b/src/compiler/spirv/spirv.core.grammar.json
index cb641420d07..034e3ab4446 100644
--- a/src/compiler/spirv/spirv.core.grammar.json
+++ b/src/compiler/spirv/spirv.core.grammar.json
@@ -3813,6 +3813,72 @@
       "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
       "version" : "None"
     },
+    {
+      "opname" : "OpWritePackedPrimitiveIndices4x8NV",
+      "opcode" : 5299,
+      "operands" : [
+        { "kind" : "IdRef", "name" : "'Index Offset'" },
+        { "kind" : "IdRef", "name" : "'Packed Indices'" }
+      ],
+      "capabilities" : [ "MeshShadingNV" ],
+      "extensions" : [ "SPV_NV_mesh_shader" ],
+      "version" : "None"
+    },
+    {
+      "opname" : "OpReportIntersectionNVX",
+      "opcode" : 5334,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Hit'" },
+        { "kind" : "IdRef", "name" : "'HitKind'" }
+      ],
+      "capabilities" : [ "RaytracingNVX" ],
+      "extensions" : [ "SPV_NVX_raytracing" ]
+    },
+    {
+      "opname" : "OpIgnoreIntersectionNVX",
+      "opcode" : 5335,
+
+      "capabilities" : [ "RaytracingNVX" ],
+      "extensions" : [ "SPV_NVX_raytracing" ]
+    },
+    {
+      "opname" : "OpTerminateRayNVX",
+      "opcode" : 5336,
+
+      "capabilities" : [ "RaytracingNVX" ],
+      "extensions" : [ "SPV_NVX_raytracing" ]
+    },
+    {
+      "opname" : "OpTraceNVX",
+      "opcode" : 5337,
+      "operands" : [
+
+        { "kind" : "IdRef", "name" : "'Accel'" },
+        { "kind" : "IdRef", "name" : "'Ray Flags'" },
+        { "kind" : "IdRef", "name" : "'Cull Mask'" },
+        { "kind" : "IdRef", "name" : "'SBT Offset'" },
+        { "kind" : "IdRef", "name" : "'SBT Stride'" },
+        { "kind" : "IdRef", "name" : "'Miss Index'" },
+        { "kind" : "IdRef", "name" : "'Ray Origin'" },
+        { "kind" : "IdRef", "name" : "'Ray Tmin'" },
+        { "kind" : "IdRef", "name" : "'Ray Direction'" },
+        { "kind" : "IdRef", "name" : "'Ray Tmax'" },
+        { "kind" : "IdRef", "name" : "'PayloadId'" }
+      ],
+      "capabilities" : [ "RaytracingNVX" ],
+      "extensions" : [ "SPV_NVX_raytracing" ]
+    },
+    {
+      "opname" : "OpTypeAccelerationStructureNVX",
+      "opcode" : 5341,
+      "operands" : [
+        { "kind" : "IdResult" }
+      ],
+      "capabilities" : [ "RaytracingNVX" ],
+      "extensions" : [ "SPV_NVX_raytracing" ]
+    },
     {
       "opname" : "OpSubgroupShuffleINTEL",
       "opcode" : 5571,
@@ -3939,6 +4005,22 @@
       "capabilities" : [ "GroupNonUniformPartitionedNV" ],
       "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
       "version" : "None"
+    },
+	{
+      "opname" : "OpImageSampleFootprintNV",
+      "opcode" : 5283,
+      "operands" : [
+        { "kind" : "IdResultType" },
+        { "kind" : "IdResult" },
+        { "kind" : "IdRef", "name" : "'Sampled Image'" },
+        { "kind" : "IdRef", "name" : "'Coordinate'" },
+        { "kind" : "IdRef", "name" : "'Granularity'" },
+        { "kind" : "IdRef", "name" : "'Coarse'" },
+        { "kind" : "ImageOperands", "quantifier" : "?" }
+      ],
+      "capabilities" : [ "ImageFootprintNV" ],
+      "extensions" : [ "SPV_NV_shader_image_footprint" ],
+      "version" : "None"
     }
   ],
   "operand_kinds" : [
@@ -4010,6 +4092,32 @@
           "parameters" : [
             { "kind" : "IdRef" }
           ]
+        },
+        {
+          "enumerant" : "MakeTexelAvailableKHR",
+          "value" : "0x0100",
+          "capabilities" : [ "VulkanMemoryModelKHR" ],
+          "parameters" : [
+            { "kind" : "IdScope" }
+          ]
+        },
+        {
+          "enumerant" : "MakeTexelVisibleKHR",
+          "value" : "0x0200",
+          "capabilities" : [ "VulkanMemoryModelKHR" ],
+          "parameters" : [
+            { "kind" : "IdScope" }
+          ]
+        },
+        {
+          "enumerant" : "NonPrivateTexelKHR",
+          "value" : "0x0400",
+          "capabilities" : [ "VulkanMemoryModelKHR" ]
+        },
+        {
+          "enumerant" : "VolatileTexelKHR",
+          "value" : "0x0800",
+          "capabilities" : [ "VulkanMemoryModelKHR" ]
         }
       ]
     },
@@ -4176,6 +4284,21 @@
         {
           "enumerant" : "ImageMemory",
           "value" : "0x0800"
+        },
+        {
+          "enumerant" : "OutputMemoryKHR",
+          "value" : "0x1000",
+          "capabilities" : [ "VulkanMemoryModelKHR" ]
+        },
+        {
+          "enumerant" : "MakeAvailableKHR",
+          "value" : "0x2000",
+          "capabilities" : [ "VulkanMemoryModelKHR" ]
+        },
+        {
+          "enumerant" : "MakeVisibleKHR",
+          "value" : "0x4000",
+          "capabilities" : [ "VulkanMemoryModelKHR" ]
         }
       ]
     },
@@ -4201,6 +4324,27 @@
         {
           "enumerant" : "Nontemporal",
           "value" : "0x0004"
+        },
+        {
+          "enumerant" : "MakePointerAvailableKHR",
+          "value" : "0x0008",
+          "parameters" : [
+            { "kind" : "IdScope" }
+          ],
+          "capabilities" : [ "VulkanMemoryModelKHR" ]
+        },
+        {
+          "enumerant" : "MakePointerVisibleKHR",
+          "value" : "0x0010",
+          "parameters" : [
+            { "kind" : "IdScope" }
+          ],
+          "capabilities" : [ "VulkanMemoryModelKHR" ]
+        },
+        {
+          "enumerant" : "NonPrivatePointerKHR",
+          "value" : "0x0020",
+          "capabilities" : [ "VulkanMemoryModelKHR" ]
         }
       ]
     },
@@ -4287,6 +4431,46 @@
           "enumerant" : "Kernel",
           "value" : 6,
           "capabilities" : [ "Kernel" ]
+        },
+        {
+          "enumerant" : "TaskNV",
+          "value" : 5267,
+          "capabilities" : [ "MeshShadingNV" ]
+        },
+        {
+          "enumerant" : "MeshNV",
+          "value" : 5268,
+          "capabilities" : [ "MeshShadingNV" ]
+        },
+        {
+          "enumerant" : "RayGenerationNVX",
+          "value" : 5313,
+          "capabilities" : [ "RaytracingNVX" ]
+        },
+        {
+          "enumerant" : "IntersectionNVX",
+          "value" : 5314,
+          "capabilities" : [ "RaytracingNVX" ]
+        },
+        {
+          "enumerant" : "AnyHitNVX",
+          "value" : 5315,
+          "capabilities" : [ "RaytracingNVX" ]
+        },
+        {
+          "enumerant" : "ClosestHitNVX",
+          "value" : 5316,
+          "capabilities" : [ "RaytracingNVX" ]
+        },
+        {
+          "enumerant" : "MissNVX",
+          "value" : 5317,
+          "capabilities" : [ "RaytracingNVX" ]
+        },
+        {
+          "enumerant" : "CallableNVX",
+          "value" : 5318,
+          "capabilities" : [ "RaytracingNVX" ]
         }
       ]
     },
@@ -4328,6 +4512,11 @@
           "enumerant" : "OpenCL",
           "value" : 2,
           "capabilities" : [ "Kernel" ]
+        },
+        {
+          "enumerant" : "VulkanKHR",
+          "value" : 3,
+          "capabilities" : [ "VulkanMemoryModelKHR" ]
         }
       ]
     },
@@ -4475,7 +4664,7 @@
         {
           "enumerant" : "OutputVertices",
           "value" : 26,
-          "capabilities" : [ "Geometry", "Tessellation" ],
+          "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV" ],
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
           ]
@@ -4483,7 +4672,7 @@
         {
           "enumerant" : "OutputPoints",
           "value" : 27,
-          "capabilities" : [ "Geometry" ]
+          "capabilities" : [ "Geometry", "MeshShadingNV" ]
         },
         {
           "enumerant" : "OutputLineStrip",
@@ -4579,6 +4768,44 @@
           "capabilities" : [ "StencilExportEXT" ],
           "extensions" : [ "SPV_EXT_shader_stencil_export" ],
           "version" : "None"
+        },
+        {
+          "enumerant" : "OutputLinesNV",
+          "value" : 5269,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "OutputPrimitivesNV",
+          "value" : 5270,
+          "capabilities" : [ "MeshShadingNV" ],
+          "parameters" : [
+            { "kind" : "LiteralInteger", "name" : "'Primitive count'" }
+          ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "DerivativeGroupQuadsNV",
+          "value" : 5289,
+          "capabilities" : [ "ComputeDerivativeGroupQuadsNV" ],
+          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "DerivativeGroupLinearNV",
+          "value" : 5290,
+          "capabilities" : [ "ComputeDerivativeGroupLinearNV" ],
+          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "OutputTrianglesNV",
+          "value" : 5298,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
         }
       ]
     },
@@ -4649,6 +4876,30 @@
           ],
           "capabilities" : [ "Shader" ],
           "version" : "1.3"
+        },
+        {
+          "enumerant" : "RayPayloadNVX",
+          "value" : 5338,
+          "extensions" : [ "SPV_NVX_raytracing" ],
+          "capabilities" : [ "RaytracingNVX" ]
+        },
+        {
+          "enumerant" : "HitAttributeNVX",
+          "value" : 5339,
+          "extensions" : [ "SPV_NVX_raytracing" ],
+          "capabilities" : [ "RaytracingNVX" ]
+        },
+        {
+          "enumerant" : "IncomingRayPayloadNVX",
+          "value" : 5342,
+          "extensions" : [ "SPV_NVX_raytracing" ],
+          "capabilities" : [ "RaytracingNVX" ]
+        },
+{
+          "enumerant" : "ShaderRecordBufferNVX",
+          "value" : 5343,
+          "extensions" : [ "SPV_NVX_raytracing" ],
+          "capabilities" : [ "RaytracingNVX" ]
         }
       ]
     },
@@ -4659,11 +4910,12 @@
         {
           "enumerant" : "1D",
           "value" : 0,
-          "capabilities" : [ "Sampled1D" ]
+          "capabilities" : [ "Sampled1D", "Image1D" ]
         },
         {
           "enumerant" : "2D",
-          "value" : 1
+          "value" : 1,
+          "capabilities" : [ "Shader", "Kernel", "ImageMSArray" ]
         },
         {
           "enumerant" : "3D",
@@ -4672,17 +4924,17 @@
         {
           "enumerant" : "Cube",
           "value" : 3,
-          "capabilities" : [ "Shader" ]
+          "capabilities" : [ "Shader", "ImageCubeArray" ]
         },
         {
           "enumerant" : "Rect",
           "value" : 4,
-          "capabilities" : [ "SampledRect" ]
+          "capabilities" : [ "SampledRect", "ImageRect" ]
         },
         {
           "enumerant" : "Buffer",
           "value" : 5,
-          "capabilities" : [ "SampledBuffer" ]
+          "capabilities" : [ "SampledBuffer", "ImageBuffer" ]
         },
         {
           "enumerant" : "SubpassData",
@@ -5577,6 +5829,34 @@
             { "kind" : "LiteralInteger", "name" : "'Offset'" }
           ]
         },
+        {
+          "enumerant" : "PerPrimitiveNV",
+          "value" : 5271,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "PerViewNV",
+          "value" : 5272,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "PerTaskNV",
+          "value" : 5273,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+		{
+          "enumerant" : "PerVertexNV",
+          "value" : 5285,
+          "capabilities" : [ "FragmentBarycentricNV" ],
+          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
+          "version" : "None"
+        },
         {
           "enumerant" : "NonUniformEXT",
           "value" : 5300,
@@ -5639,7 +5919,7 @@
         {
           "enumerant" : "PrimitiveId",
           "value" : 7,
-          "capabilities" : [ "Geometry", "Tessellation" ]
+          "capabilities" : [ "Geometry", "Tessellation", "RaytracingNVX" ]
         },
         {
           "enumerant" : "InvocationId",
@@ -5887,8 +6167,8 @@
         {
           "enumerant" : "DrawIndex",
           "value" : 4426,
-          "capabilities" : [ "DrawParameters" ],
-          "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
+          "capabilities" : [ "DrawParameters", "MeshShadingNV" ],
+          "extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader" ],
           "version" : "1.3"
         },
         {
@@ -5957,7 +6237,8 @@
         {
           "enumerant" : "ViewportMaskNV",
           "value" : 5253,
-          "capabilities" : [ "ShaderViewportMaskNV" ],
+          "capabilities" : [ "ShaderViewportMaskNV", "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_viewport_array2", "SPV_NV_mesh_shader" ],
           "version" : "None"
         },
         {
@@ -5977,13 +6258,15 @@
         {
           "enumerant" : "PositionPerViewNV",
           "value" : 5261,
-          "capabilities" : [ "PerViewAttributesNV" ],
+          "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
+          "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
           "version" : "None"
         },
         {
           "enumerant" : "ViewportMaskPerViewNV",
           "value" : 5262,
-          "capabilities" : [ "PerViewAttributesNV" ],
+          "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
+          "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
           "version" : "None"
         },
         {
@@ -5992,6 +6275,168 @@
           "capabilities" : [ "FragmentFullyCoveredEXT" ],
           "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
           "version" : "None"
+        },
+        {
+          "enumerant" : "TaskCountNV",
+          "value" : 5274,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "PrimitiveCountNV",
+          "value" : 5275,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "PrimitiveIndicesNV",
+          "value" : 5276,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ClipDistancePerViewNV",
+          "value" : 5277,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "CullDistancePerViewNV",
+          "value" : 5278,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "LayerPerViewNV",
+          "value" : 5279,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MeshViewCountNV",
+          "value" : 5280,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "MeshViewIndicesNV",
+          "value" : 5281,
+          "capabilities" : [ "MeshShadingNV" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "BaryCoordNV",
+          "value" : 5286,
+          "capabilities" : [ "FragmentBarycentricNV" ],
+          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "BaryCoordNoPerspNV",
+          "value" : 5287,
+          "capabilities" : [ "FragmentBarycentricNV" ],
+          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "FragmentSizeNV",
+          "value" : 5292 ,
+          "capabilities" : [ "ShadingRateNV" ],
+          "extensions" : [ "SPV_NV_shading_rate" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "InvocationsPerPixelNV",
+          "value" : 5293,
+          "capabilities" : [ "ShadingRateNV" ],
+          "extensions" : [ "SPV_NV_shading_rate" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "LaunchIdNVX",
+          "value" : 5319,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "LaunchSizeNVX",
+          "value" : 5320,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "WorldRayOriginNVX",
+          "value" : 5321,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "WorldRayDirectionNVX",
+          "value" : 5322,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "ObjectRayOriginNVX",
+          "value" : 5323,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "ObjectRayDirectionNVX",
+          "value" : 5324,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "RayTminNVX",
+          "value" : 5325,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "RayTmaxNVX",
+          "value" : 5326,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "InstanceCustomIndexNVX",
+          "value" : 5327,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "ObjectToWorldNVX",
+          "value" : 5330,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "WorldToObjectNVX",
+          "value" : 5331,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "HitTNVX",
+          "value" : 5332,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
+        },
+        {
+          "enumerant" : "HitKindNVX",
+          "value" : 5333,
+          "capabilities" : [ "RaytracingNVX" ],
+          "extensions" : [ "SPV_NVX_raytracing" ]
         }
       ]
     },
@@ -6018,6 +6463,11 @@
         {
           "enumerant" : "Invocation",
           "value" : 4
+        },
+        {
+          "enumerant" : "QueueFamilyKHR",
+          "value" : 5,
+          "capabilities" : [ "VulkanMemoryModelKHR" ]
         }
       ]
     },
@@ -6639,6 +7089,13 @@
           "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
           "version" : "None"
         },
+        {
+          "enumerant" : "MeshShadingNV",
+          "value" : 5266,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_NV_mesh_shader" ],
+          "version" : "None"
+        },
         {
           "enumerant" : "ShaderNonUniformEXT",
           "value" : 5301,
@@ -6723,6 +7180,13 @@
           "extensions" : [ "SPV_EXT_descriptor_indexing" ],
           "version" : "None"
         },
+        {
+          "enumerant" : "RaytracingNVX",
+          "value" : 5340,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_NVX_raytracing" ],
+          "version" : "None"
+        },
         {
           "enumerant" : "SubgroupShuffleINTEL",
           "value" : 5568,
@@ -6746,6 +7210,49 @@
           "value" : 5297,
           "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
           "version" : "None"
+        },
+        {
+          "enumerant" : "VulkanMemoryModelKHR",
+          "value" : 5345,
+          "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "VulkanMemoryModelDeviceScopeKHR",
+          "value" : 5346,
+          "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ImageFootprintNV",
+          "value" : 5282,
+          "extensions" : [ "SPV_NV_shader_image_footprint" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "FragmentBarycentricNV",
+          "value" : 5284,
+          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ComputeDerivativeGroupQuadsNV",
+          "value" : 5288,
+          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ComputeDerivativeGroupLinearNV",
+          "value" : 5350,
+          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "ShadingRateNV",
+          "value" : 5291,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_NV_shading_rate" ],
+          "version" : "None"
         }
       ]
     },
diff --git a/src/compiler/spirv/spirv.h b/src/compiler/spirv/spirv.h
index 4c90c936ce0..2965534566b 100644
--- a/src/compiler/spirv/spirv.h
+++ b/src/compiler/spirv/spirv.h
@@ -77,6 +77,14 @@ typedef enum SpvExecutionModel_ {
     SpvExecutionModelFragment = 4,
     SpvExecutionModelGLCompute = 5,
     SpvExecutionModelKernel = 6,
+    SpvExecutionModelTaskNV = 5267,
+    SpvExecutionModelMeshNV = 5268,
+    SpvExecutionModelRayGenerationNVX = 5313,
+    SpvExecutionModelIntersectionNVX = 5314,
+    SpvExecutionModelAnyHitNVX = 5315,
+    SpvExecutionModelClosestHitNVX = 5316,
+    SpvExecutionModelMissNVX = 5317,
+    SpvExecutionModelCallableNVX = 5318,
     SpvExecutionModelMax = 0x7fffffff,
 } SpvExecutionModel;
 
@@ -91,6 +99,7 @@ typedef enum SpvMemoryModel_ {
     SpvMemoryModelSimple = 0,
     SpvMemoryModelGLSL450 = 1,
     SpvMemoryModelOpenCL = 2,
+    SpvMemoryModelVulkanKHR = 3,
     SpvMemoryModelMax = 0x7fffffff,
 } SpvMemoryModel;
 
@@ -135,6 +144,11 @@ typedef enum SpvExecutionMode_ {
     SpvExecutionModeLocalSizeHintId = 39,
     SpvExecutionModePostDepthCoverage = 4446,
     SpvExecutionModeStencilRefReplacingEXT = 5027,
+    SpvExecutionModeOutputLinesNV = 5269,
+    SpvExecutionModeOutputPrimitivesNV = 5270,
+    SpvExecutionModeDerivativeGroupQuadsNV = 5289,
+    SpvExecutionModeDerivativeGroupLinearNV = 5290,
+    SpvExecutionModeOutputTrianglesNV = 5298,
     SpvExecutionModeMax = 0x7fffffff,
 } SpvExecutionMode;
 
@@ -152,6 +166,10 @@ typedef enum SpvStorageClass_ {
     SpvStorageClassAtomicCounter = 10,
     SpvStorageClassImage = 11,
     SpvStorageClassStorageBuffer = 12,
+    SpvStorageClassRayPayloadNVX = 5338,
+    SpvStorageClassHitAttributeNVX = 5339,
+    SpvStorageClassIncomingRayPayloadNVX = 5342,
+    SpvStorageClassShaderRecordBufferNVX = 5343,
     SpvStorageClassMax = 0x7fffffff,
 } SpvStorageClass;
 
@@ -279,6 +297,10 @@ typedef enum SpvImageOperandsShift_ {
     SpvImageOperandsConstOffsetsShift = 5,
     SpvImageOperandsSampleShift = 6,
     SpvImageOperandsMinLodShift = 7,
+    SpvImageOperandsMakeTexelAvailableKHRShift = 8,
+    SpvImageOperandsMakeTexelVisibleKHRShift = 9,
+    SpvImageOperandsNonPrivateTexelKHRShift = 10,
+    SpvImageOperandsVolatileTexelKHRShift = 11,
     SpvImageOperandsMax = 0x7fffffff,
 } SpvImageOperandsShift;
 
@@ -292,6 +314,10 @@ typedef enum SpvImageOperandsMask_ {
     SpvImageOperandsConstOffsetsMask = 0x00000020,
     SpvImageOperandsSampleMask = 0x00000040,
     SpvImageOperandsMinLodMask = 0x00000080,
+    SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
+    SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
+    SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
+    SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
 } SpvImageOperandsMask;
 
 typedef enum SpvFPFastMathModeShift_ {
@@ -397,6 +423,10 @@ typedef enum SpvDecoration_ {
     SpvDecorationPassthroughNV = 5250,
     SpvDecorationViewportRelativeNV = 5252,
     SpvDecorationSecondaryViewportRelativeNV = 5256,
+    SpvDecorationPerPrimitiveNV = 5271,
+    SpvDecorationPerViewNV = 5272,
+    SpvDecorationPerTaskNV = 5273,
+    SpvDecorationPerVertexNV = 5285,
     SpvDecorationNonUniformEXT = 5300,
     SpvDecorationHlslCounterBufferGOOGLE = 5634,
     SpvDecorationHlslSemanticGOOGLE = 5635,
@@ -474,6 +504,31 @@ typedef enum SpvBuiltIn_ {
     SpvBuiltInPositionPerViewNV = 5261,
     SpvBuiltInViewportMaskPerViewNV = 5262,
     SpvBuiltInFullyCoveredEXT = 5264,
+    SpvBuiltInTaskCountNV = 5274,
+    SpvBuiltInPrimitiveCountNV = 5275,
+    SpvBuiltInPrimitiveIndicesNV = 5276,
+    SpvBuiltInClipDistancePerViewNV = 5277,
+    SpvBuiltInCullDistancePerViewNV = 5278,
+    SpvBuiltInLayerPerViewNV = 5279,
+    SpvBuiltInMeshViewCountNV = 5280,
+    SpvBuiltInMeshViewIndicesNV = 5281,
+    SpvBuiltInBaryCoordNV = 5286,
+    SpvBuiltInBaryCoordNoPerspNV = 5287,
+    SpvBuiltInFragmentSizeNV = 5292,
+    SpvBuiltInInvocationsPerPixelNV = 5293,
+    SpvBuiltInLaunchIdNVX = 5319,
+    SpvBuiltInLaunchSizeNVX = 5320,
+    SpvBuiltInWorldRayOriginNVX = 5321,
+    SpvBuiltInWorldRayDirectionNVX = 5322,
+    SpvBuiltInObjectRayOriginNVX = 5323,
+    SpvBuiltInObjectRayDirectionNVX = 5324,
+    SpvBuiltInRayTminNVX = 5325,
+    SpvBuiltInRayTmaxNVX = 5326,
+    SpvBuiltInInstanceCustomIndexNVX = 5327,
+    SpvBuiltInObjectToWorldNVX = 5330,
+    SpvBuiltInWorldToObjectNVX = 5331,
+    SpvBuiltInHitTNVX = 5332,
+    SpvBuiltInHitKindNVX = 5333,
     SpvBuiltInMax = 0x7fffffff,
 } SpvBuiltIn;
 
@@ -532,6 +587,9 @@ typedef enum SpvMemorySemanticsShift_ {
     SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
     SpvMemorySemanticsAtomicCounterMemoryShift = 10,
     SpvMemorySemanticsImageMemoryShift = 11,
+    SpvMemorySemanticsOutputMemoryKHRShift = 12,
+    SpvMemorySemanticsMakeAvailableKHRShift = 13,
+    SpvMemorySemanticsMakeVisibleKHRShift = 14,
     SpvMemorySemanticsMax = 0x7fffffff,
 } SpvMemorySemanticsShift;
 
@@ -547,12 +605,18 @@ typedef enum SpvMemorySemanticsMask_ {
     SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
     SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
     SpvMemorySemanticsImageMemoryMask = 0x00000800,
+    SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
+    SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
+    SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
 } SpvMemorySemanticsMask;
 
 typedef enum SpvMemoryAccessShift_ {
     SpvMemoryAccessVolatileShift = 0,
     SpvMemoryAccessAlignedShift = 1,
     SpvMemoryAccessNontemporalShift = 2,
+    SpvMemoryAccessMakePointerAvailableKHRShift = 3,
+    SpvMemoryAccessMakePointerVisibleKHRShift = 4,
+    SpvMemoryAccessNonPrivatePointerKHRShift = 5,
     SpvMemoryAccessMax = 0x7fffffff,
 } SpvMemoryAccessShift;
 
@@ -561,6 +625,9 @@ typedef enum SpvMemoryAccessMask_ {
     SpvMemoryAccessVolatileMask = 0x00000001,
     SpvMemoryAccessAlignedMask = 0x00000002,
     SpvMemoryAccessNontemporalMask = 0x00000004,
+    SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
+    SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
+    SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
 } SpvMemoryAccessMask;
 
 typedef enum SpvScope_ {
@@ -569,6 +636,7 @@ typedef enum SpvScope_ {
     SpvScopeWorkgroup = 2,
     SpvScopeSubgroup = 3,
     SpvScopeInvocation = 4,
+    SpvScopeQueueFamilyKHR = 5,
     SpvScopeMax = 0x7fffffff,
 } SpvScope;
 
@@ -699,6 +767,11 @@ typedef enum SpvCapability_ {
     SpvCapabilityShaderStereoViewNV = 5259,
     SpvCapabilityPerViewAttributesNV = 5260,
     SpvCapabilityFragmentFullyCoveredEXT = 5265,
+    SpvCapabilityMeshShadingNV = 5266,
+    SpvCapabilityImageFootprintNV = 5282,
+    SpvCapabilityFragmentBarycentricNV = 5284,
+    SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
+    SpvCapabilityShadingRateNV = 5291,
     SpvCapabilityGroupNonUniformPartitionedNV = 5297,
     SpvCapabilityShaderNonUniformEXT = 5301,
     SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
@@ -712,6 +785,10 @@ typedef enum SpvCapability_ {
     SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
     SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
     SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
+    SpvCapabilityRaytracingNVX = 5340,
+    SpvCapabilityVulkanMemoryModelKHR = 5345,
+    SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
+    SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
     SpvCapabilitySubgroupShuffleINTEL = 5568,
     SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
     SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
@@ -1075,7 +1152,14 @@ typedef enum SpvOp_ {
     SpvOpGroupSMaxNonUniformAMD = 5007,
     SpvOpFragmentMaskFetchAMD = 5011,
     SpvOpFragmentFetchAMD = 5012,
+    SpvOpImageSampleFootprintNV = 5283,
     SpvOpGroupNonUniformPartitionNV = 5296,
+    SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
+    SpvOpReportIntersectionNVX = 5334,
+    SpvOpIgnoreIntersectionNVX = 5335,
+    SpvOpTerminateRayNVX = 5336,
+    SpvOpTraceNVX = 5337,
+    SpvOpTypeAccelerationStructureNVX = 5341,
     SpvOpSubgroupShuffleINTEL = 5571,
     SpvOpSubgroupShuffleDownINTEL = 5572,
     SpvOpSubgroupShuffleUpINTEL = 5573,
-- 
2.19.1



More information about the mesa-dev mailing list