Merge pull request #88 from jeffbolznv/physical_storage_buffer

SPV_EXT_physical_storage_buffer
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index cd17859..4739bfe 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -339,7 +339,10 @@
         { "kind" : "IdRef",        "name" : "'Pointer Type'" },
         { "kind" : "StorageClass" }
       ],
-      "capabilities" : [ "Addresses" ]
+      "capabilities" : [
+        "Addresses",
+        "PhysicalStorageBufferAddressesEXT"
+      ]
     },
     {
       "opname" : "OpConstantTrue",
@@ -563,7 +566,8 @@
       "capabilities" : [
         "Addresses",
         "VariablePointers",
-        "VariablePointersStorageBuffer"
+        "VariablePointersStorageBuffer",
+        "PhysicalStorageBufferAddressesEXT"
       ]
     },
     {
@@ -1048,7 +1052,10 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Pointer'" }
       ],
-      "capabilities" : [ "Addresses" ]
+      "capabilities" : [
+        "Addresses",
+        "PhysicalStorageBufferAddressesEXT"
+      ]
     },
     {
       "opname" : "OpSatConvertSToU",
@@ -1078,7 +1085,10 @@
         { "kind" : "IdResult" },
         { "kind" : "IdRef",        "name" : "'Integer Value'" }
       ],
-      "capabilities" : [ "Addresses" ]
+      "capabilities" : [
+        "Addresses",
+        "PhysicalStorageBufferAddressesEXT"
+      ]
     },
     {
       "opname" : "OpPtrCastToGeneric",
@@ -4502,6 +4512,12 @@
           "enumerant" : "Physical64",
           "value" : 2,
           "capabilities" : [ "Addresses" ]
+        },
+        {
+          "enumerant" : "PhysicalStorageBuffer64EXT",
+          "value" : 5348,
+          "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
+          "capabilities" : [ "PhysicalStorageBufferAddressesEXT" ]
         }
       ]
     },
@@ -4973,6 +4989,12 @@
           "value" : 5343,
           "extensions" : [ "SPV_NV_ray_tracing" ],
           "capabilities" : [ "RayTracingNV" ]
+        },
+        {
+          "enumerant" : "PhysicalStorageBufferEXT",
+          "value" : 5349,
+          "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
+          "capabilities" : [ "PhysicalStorageBufferAddressesEXT" ]
         }
       ]
     },
@@ -5964,6 +5986,20 @@
           ],
           "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
           "version" : "None"
+        },
+        {
+          "enumerant" : "RestrictPointerEXT",
+          "value" : 5355,
+          "capabilities" : [ "PhysicalStorageBufferAddressesEXT" ],
+          "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
+          "version" : "None"
+        },
+        {
+          "enumerant" : "AliasedPointerEXT",
+          "value" : 5356,
+          "capabilities" : [ "PhysicalStorageBufferAddressesEXT" ],
+          "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
+          "version" : "None"
         }
       ]
     },
@@ -7395,6 +7431,13 @@
           "capabilities" : [ "Shader" ],
           "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
           "version" : "None"
+        },
+        {
+          "enumerant" : "PhysicalStorageBufferAddressesEXT",
+          "value" : 5347,
+          "capabilities" : [ "Shader" ],
+          "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
+          "version" : "None"
         }
       ]
     },
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index bde9c1f..f031d72 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -87,6 +87,7 @@
             Logical = 0,
             Physical32 = 1,
             Physical64 = 2,
+            PhysicalStorageBuffer64EXT = 5348,
         }
 
         public enum MemoryModel
@@ -172,6 +173,7 @@
             HitAttributeNV = 5339,
             IncomingRayPayloadNV = 5342,
             ShaderRecordBufferNV = 5343,
+            PhysicalStorageBufferEXT = 5349,
         }
 
         public enum Dim
@@ -434,6 +436,8 @@
             PerTaskNV = 5273,
             PerVertexNV = 5285,
             NonUniformEXT = 5300,
+            RestrictPointerEXT = 5355,
+            AliasedPointerEXT = 5356,
             HlslCounterBufferGOOGLE = 5634,
             HlslSemanticGOOGLE = 5635,
         }
@@ -809,6 +813,7 @@
             RayTracingNV = 5340,
             VulkanMemoryModelKHR = 5345,
             VulkanMemoryModelDeviceScopeKHR = 5346,
+            PhysicalStorageBufferAddressesEXT = 5347,
             ComputeDerivativeGroupLinearNV = 5350,
             SubgroupShuffleINTEL = 5568,
             SubgroupBufferBlockIOINTEL = 5569,
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index d996f09..081e12b 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -95,6 +95,7 @@
     SpvAddressingModelLogical = 0,
     SpvAddressingModelPhysical32 = 1,
     SpvAddressingModelPhysical64 = 2,
+    SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
     SpvAddressingModelMax = 0x7fffffff,
 } SpvAddressingModel;
 
@@ -180,6 +181,7 @@
     SpvStorageClassHitAttributeNV = 5339,
     SpvStorageClassIncomingRayPayloadNV = 5342,
     SpvStorageClassShaderRecordBufferNV = 5343,
+    SpvStorageClassPhysicalStorageBufferEXT = 5349,
     SpvStorageClassMax = 0x7fffffff,
 } SpvStorageClass;
 
@@ -440,6 +442,8 @@
     SpvDecorationPerTaskNV = 5273,
     SpvDecorationPerVertexNV = 5285,
     SpvDecorationNonUniformEXT = 5300,
+    SpvDecorationRestrictPointerEXT = 5355,
+    SpvDecorationAliasedPointerEXT = 5356,
     SpvDecorationHlslCounterBufferGOOGLE = 5634,
     SpvDecorationHlslSemanticGOOGLE = 5635,
     SpvDecorationMax = 0x7fffffff,
@@ -809,6 +813,7 @@
     SpvCapabilityRayTracingNV = 5340,
     SpvCapabilityVulkanMemoryModelKHR = 5345,
     SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
+    SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
     SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
     SpvCapabilitySubgroupShuffleINTEL = 5568,
     SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 9100356..44d0616 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -91,6 +91,7 @@
     AddressingModelLogical = 0,
     AddressingModelPhysical32 = 1,
     AddressingModelPhysical64 = 2,
+    AddressingModelPhysicalStorageBuffer64EXT = 5348,
     AddressingModelMax = 0x7fffffff,
 };
 
@@ -176,6 +177,7 @@
     StorageClassHitAttributeNV = 5339,
     StorageClassIncomingRayPayloadNV = 5342,
     StorageClassShaderRecordBufferNV = 5343,
+    StorageClassPhysicalStorageBufferEXT = 5349,
     StorageClassMax = 0x7fffffff,
 };
 
@@ -436,6 +438,8 @@
     DecorationPerTaskNV = 5273,
     DecorationPerVertexNV = 5285,
     DecorationNonUniformEXT = 5300,
+    DecorationRestrictPointerEXT = 5355,
+    DecorationAliasedPointerEXT = 5356,
     DecorationHlslCounterBufferGOOGLE = 5634,
     DecorationHlslSemanticGOOGLE = 5635,
     DecorationMax = 0x7fffffff,
@@ -805,6 +809,7 @@
     CapabilityRayTracingNV = 5340,
     CapabilityVulkanMemoryModelKHR = 5345,
     CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
+    CapabilityPhysicalStorageBufferAddressesEXT = 5347,
     CapabilityComputeDerivativeGroupLinearNV = 5350,
     CapabilitySubgroupShuffleINTEL = 5568,
     CapabilitySubgroupBufferBlockIOINTEL = 5569,
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index bc7ecaa..9a3bc07 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -91,6 +91,7 @@
     Logical = 0,
     Physical32 = 1,
     Physical64 = 2,
+    PhysicalStorageBuffer64EXT = 5348,
     Max = 0x7fffffff,
 };
 
@@ -176,6 +177,7 @@
     HitAttributeNV = 5339,
     IncomingRayPayloadNV = 5342,
     ShaderRecordBufferNV = 5343,
+    PhysicalStorageBufferEXT = 5349,
     Max = 0x7fffffff,
 };
 
@@ -436,6 +438,8 @@
     PerTaskNV = 5273,
     PerVertexNV = 5285,
     NonUniformEXT = 5300,
+    RestrictPointerEXT = 5355,
+    AliasedPointerEXT = 5356,
     HlslCounterBufferGOOGLE = 5634,
     HlslSemanticGOOGLE = 5635,
     Max = 0x7fffffff,
@@ -805,6 +809,7 @@
     RayTracingNV = 5340,
     VulkanMemoryModelKHR = 5345,
     VulkanMemoryModelDeviceScopeKHR = 5346,
+    PhysicalStorageBufferAddressesEXT = 5347,
     ComputeDerivativeGroupLinearNV = 5350,
     SubgroupShuffleINTEL = 5568,
     SubgroupBufferBlockIOINTEL = 5569,
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index 11fd7a4..7e7a693 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -103,7 +103,8 @@
                 {
                     "Logical": 0,
                     "Physical32": 1,
-                    "Physical64": 2
+                    "Physical64": 2,
+                    "PhysicalStorageBuffer64EXT": 5348
                 }
             },
             {
@@ -197,7 +198,8 @@
                     "RayPayloadNV": 5338,
                     "HitAttributeNV": 5339,
                     "IncomingRayPayloadNV": 5342,
-                    "ShaderRecordBufferNV": 5343
+                    "ShaderRecordBufferNV": 5343,
+                    "PhysicalStorageBufferEXT": 5349
                 }
             },
             {
@@ -472,6 +474,8 @@
                     "PerTaskNV": 5273,
                     "PerVertexNV": 5285,
                     "NonUniformEXT": 5300,
+                    "RestrictPointerEXT": 5355,
+                    "AliasedPointerEXT": 5356,
                     "HlslCounterBufferGOOGLE": 5634,
                     "HlslSemanticGOOGLE": 5635
                 }
@@ -820,6 +824,7 @@
                     "RayTracingNV": 5340,
                     "VulkanMemoryModelKHR": 5345,
                     "VulkanMemoryModelDeviceScopeKHR": 5346,
+                    "PhysicalStorageBufferAddressesEXT": 5347,
                     "ComputeDerivativeGroupLinearNV": 5350,
                     "SubgroupShuffleINTEL": 5568,
                     "SubgroupBufferBlockIOINTEL": 5569,
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 2964445..9efff39 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -80,6 +80,7 @@
         Logical = 0,
         Physical32 = 1,
         Physical64 = 2,
+        PhysicalStorageBuffer64EXT = 5348,
     },
 
     MemoryModel = {
@@ -162,6 +163,7 @@
         HitAttributeNV = 5339,
         IncomingRayPayloadNV = 5342,
         ShaderRecordBufferNV = 5343,
+        PhysicalStorageBufferEXT = 5349,
     },
 
     Dim = {
@@ -409,6 +411,8 @@
         PerTaskNV = 5273,
         PerVertexNV = 5285,
         NonUniformEXT = 5300,
+        RestrictPointerEXT = 5355,
+        AliasedPointerEXT = 5356,
         HlslCounterBufferGOOGLE = 5634,
         HlslSemanticGOOGLE = 5635,
     },
@@ -767,6 +771,7 @@
         RayTracingNV = 5340,
         VulkanMemoryModelKHR = 5345,
         VulkanMemoryModelDeviceScopeKHR = 5346,
+        PhysicalStorageBufferAddressesEXT = 5347,
         ComputeDerivativeGroupLinearNV = 5350,
         SubgroupShuffleINTEL = 5568,
         SubgroupBufferBlockIOINTEL = 5569,
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 89855e1..0da9660 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -80,6 +80,7 @@
         'Logical' : 0,
         'Physical32' : 1,
         'Physical64' : 2,
+        'PhysicalStorageBuffer64EXT' : 5348,
     },
 
     'MemoryModel' : {
@@ -162,6 +163,7 @@
         'HitAttributeNV' : 5339,
         'IncomingRayPayloadNV' : 5342,
         'ShaderRecordBufferNV' : 5343,
+        'PhysicalStorageBufferEXT' : 5349,
     },
 
     'Dim' : {
@@ -409,6 +411,8 @@
         'PerTaskNV' : 5273,
         'PerVertexNV' : 5285,
         'NonUniformEXT' : 5300,
+        'RestrictPointerEXT' : 5355,
+        'AliasedPointerEXT' : 5356,
         'HlslCounterBufferGOOGLE' : 5634,
         'HlslSemanticGOOGLE' : 5635,
     },
@@ -767,6 +771,7 @@
         'RayTracingNV' : 5340,
         'VulkanMemoryModelKHR' : 5345,
         'VulkanMemoryModelDeviceScopeKHR' : 5346,
+        'PhysicalStorageBufferAddressesEXT' : 5347,
         'ComputeDerivativeGroupLinearNV' : 5350,
         'SubgroupShuffleINTEL' : 5568,
         'SubgroupBufferBlockIOINTEL' : 5569,
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index 4791e7b..ea9eaed 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -90,6 +90,7 @@
     Logical = 0,
     Physical32 = 1,
     Physical64 = 2,
+    PhysicalStorageBuffer64EXT = 5348,
 }
 
 enum MemoryModel : uint
@@ -175,6 +176,7 @@
     HitAttributeNV = 5339,
     IncomingRayPayloadNV = 5342,
     ShaderRecordBufferNV = 5343,
+    PhysicalStorageBufferEXT = 5349,
 }
 
 enum Dim : uint
@@ -437,6 +439,8 @@
     PerTaskNV = 5273,
     PerVertexNV = 5285,
     NonUniformEXT = 5300,
+    RestrictPointerEXT = 5355,
+    AliasedPointerEXT = 5356,
     HlslCounterBufferGOOGLE = 5634,
     HlslSemanticGOOGLE = 5635,
 }
@@ -812,6 +816,7 @@
     RayTracingNV = 5340,
     VulkanMemoryModelKHR = 5345,
     VulkanMemoryModelDeviceScopeKHR = 5346,
+    PhysicalStorageBufferAddressesEXT = 5347,
     ComputeDerivativeGroupLinearNV = 5350,
     SubgroupShuffleINTEL = 5568,
     SubgroupBufferBlockIOINTEL = 5569,