Merge pull request #119 from dneto0/spirv-issue-476

Add Volatile to Memory Semantics, for SPV_KHR_vulkan_memory_model
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index c3f4239..13a2618 100644
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -6120,6 +6120,12 @@
           "value" : "0x4000",
           "capabilities" : [ "VulkanMemoryModelKHR" ],
           "version" : "None"
+        },
+        {
+          "enumerant" : "Volatile",
+          "value" : "0x8000",
+          "capabilities" : [ "VulkanMemoryModelKHR" ],
+          "version" : "None"
         }
       ]
     },
diff --git a/include/spirv/unified1/spirv.cs b/include/spirv/unified1/spirv.cs
index 24470e0..99e95e7 100644
--- a/include/spirv/unified1/spirv.cs
+++ b/include/spirv/unified1/spirv.cs
@@ -453,6 +453,7 @@
             HlslCounterBufferGOOGLE = 5634,
             HlslSemanticGOOGLE = 5635,
             UserSemantic = 5635,
+            UserTypeGOOGLE = 5636,
         }
 
         public enum BuiltIn
@@ -633,6 +634,7 @@
             OutputMemoryKHR = 12,
             MakeAvailableKHR = 13,
             MakeVisibleKHR = 14,
+            Volatile = 15,
         }
 
         public enum MemorySemanticsMask
@@ -651,6 +653,7 @@
             OutputMemoryKHR = 0x00001000,
             MakeAvailableKHR = 0x00002000,
             MakeVisibleKHR = 0x00004000,
+            Volatile = 0x00008000,
         }
 
         public enum MemoryAccessShift
diff --git a/include/spirv/unified1/spirv.h b/include/spirv/unified1/spirv.h
index 73389fe..67e3ae0 100644
--- a/include/spirv/unified1/spirv.h
+++ b/include/spirv/unified1/spirv.h
@@ -637,6 +637,7 @@
     SpvMemorySemanticsOutputMemoryKHRShift = 12,
     SpvMemorySemanticsMakeAvailableKHRShift = 13,
     SpvMemorySemanticsMakeVisibleKHRShift = 14,
+    SpvMemorySemanticsVolatileShift = 15,
     SpvMemorySemanticsMax = 0x7fffffff,
 } SpvMemorySemanticsShift;
 
@@ -655,6 +656,7 @@
     SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
     SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
     SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
+    SpvMemorySemanticsVolatileMask = 0x00008000,
 } SpvMemorySemanticsMask;
 
 typedef enum SpvMemoryAccessShift_ {
diff --git a/include/spirv/unified1/spirv.hpp b/include/spirv/unified1/spirv.hpp
index 6a8a6ff..d6dd5d6 100644
--- a/include/spirv/unified1/spirv.hpp
+++ b/include/spirv/unified1/spirv.hpp
@@ -633,6 +633,7 @@
     MemorySemanticsOutputMemoryKHRShift = 12,
     MemorySemanticsMakeAvailableKHRShift = 13,
     MemorySemanticsMakeVisibleKHRShift = 14,
+    MemorySemanticsVolatileShift = 15,
     MemorySemanticsMax = 0x7fffffff,
 };
 
@@ -651,6 +652,7 @@
     MemorySemanticsOutputMemoryKHRMask = 0x00001000,
     MemorySemanticsMakeAvailableKHRMask = 0x00002000,
     MemorySemanticsMakeVisibleKHRMask = 0x00004000,
+    MemorySemanticsVolatileMask = 0x00008000,
 };
 
 enum MemoryAccessShift {
diff --git a/include/spirv/unified1/spirv.hpp11 b/include/spirv/unified1/spirv.hpp11
index 949435c..ea82d53 100644
--- a/include/spirv/unified1/spirv.hpp11
+++ b/include/spirv/unified1/spirv.hpp11
@@ -633,6 +633,7 @@
     OutputMemoryKHR = 12,
     MakeAvailableKHR = 13,
     MakeVisibleKHR = 14,
+    Volatile = 15,
     Max = 0x7fffffff,
 };
 
@@ -651,6 +652,7 @@
     OutputMemoryKHR = 0x00001000,
     MakeAvailableKHR = 0x00002000,
     MakeVisibleKHR = 0x00004000,
+    Volatile = 0x00008000,
 };
 
 enum class MemoryAccessShift : unsigned {
diff --git a/include/spirv/unified1/spirv.json b/include/spirv/unified1/spirv.json
index f57b42f..93d3de0 100644
--- a/include/spirv/unified1/spirv.json
+++ b/include/spirv/unified1/spirv.json
@@ -654,7 +654,8 @@
                     "ImageMemory": 11,
                     "OutputMemoryKHR": 12,
                     "MakeAvailableKHR": 13,
-                    "MakeVisibleKHR": 14
+                    "MakeVisibleKHR": 14,
+                    "Volatile": 15
                 }
             },
             {
diff --git a/include/spirv/unified1/spirv.lua b/include/spirv/unified1/spirv.lua
index 76576ed..b51e847 100644
--- a/include/spirv/unified1/spirv.lua
+++ b/include/spirv/unified1/spirv.lua
@@ -601,6 +601,7 @@
         OutputMemoryKHR = 12,
         MakeAvailableKHR = 13,
         MakeVisibleKHR = 14,
+        Volatile = 15,
     },
 
     MemorySemanticsMask = {
@@ -618,6 +619,7 @@
         OutputMemoryKHR = 0x00001000,
         MakeAvailableKHR = 0x00002000,
         MakeVisibleKHR = 0x00004000,
+        Volatile = 0x00008000,
     },
 
     MemoryAccessShift = {
diff --git a/include/spirv/unified1/spirv.py b/include/spirv/unified1/spirv.py
index 6ce550b..298c2c6 100644
--- a/include/spirv/unified1/spirv.py
+++ b/include/spirv/unified1/spirv.py
@@ -428,7 +428,7 @@
         'HlslCounterBufferGOOGLE' : 5634,
         'HlslSemanticGOOGLE' : 5635,
         'UserSemantic' : 5635,
-        'UserTypeGOOGLE' : 5635,
+        'UserTypeGOOGLE' : 5636,
     },
 
     'BuiltIn' : {
@@ -601,6 +601,7 @@
         'OutputMemoryKHR' : 12,
         'MakeAvailableKHR' : 13,
         'MakeVisibleKHR' : 14,
+        'Volatile' : 15,
     },
 
     'MemorySemanticsMask' : {
@@ -618,6 +619,7 @@
         'OutputMemoryKHR' : 0x00001000,
         'MakeAvailableKHR' : 0x00002000,
         'MakeVisibleKHR' : 0x00004000,
+        'Volatile' : 0x00008000,
     },
 
     'MemoryAccessShift' : {
diff --git a/include/spirv/unified1/spv.d b/include/spirv/unified1/spv.d
index bde15c3..b3a18ad 100644
--- a/include/spirv/unified1/spv.d
+++ b/include/spirv/unified1/spv.d
@@ -456,6 +456,7 @@
     HlslCounterBufferGOOGLE = 5634,
     HlslSemanticGOOGLE = 5635,
     UserSemantic = 5635,
+    UserTypeGOOGLE = 5636,
 }
 
 enum BuiltIn : uint
@@ -636,6 +637,7 @@
     OutputMemoryKHR = 12,
     MakeAvailableKHR = 13,
     MakeVisibleKHR = 14,
+    Volatile = 15,
 }
 
 enum MemorySemanticsMask : uint
@@ -654,6 +656,7 @@
     OutputMemoryKHR = 0x00001000,
     MakeAvailableKHR = 0x00002000,
     MakeVisibleKHR = 0x00004000,
+    Volatile = 0x00008000,
 }
 
 enum MemoryAccessShift : uint