Merge pull request #71 from casey/rebuild-makefile

Add a makefile to the top level for convenience
diff --git a/include/spirv/spir-v.xml b/include/spirv/spir-v.xml
index 017615d..b05bfa7 100644
--- a/include/spirv/spir-v.xml
+++ b/include/spirv/spir-v.xml
@@ -68,7 +68,8 @@
         <id value="16"  vendor="X-LEGEND"   tool="Mesa-IR/SPIR-V Translator" comment="Contact Metora Wang, github:metora/MesaGLSLCompiler"/>
         <id value="17"  vendor="Khronos" tool="SPIR-V Tools Linker" comment="Contact David Neto, dneto@google.com"/>
         <id value="18"  vendor="Wine" tool="VKD3D Shader Compiler" comment="Contact wine-devel@winehq.org"/>
-        <unused start="19" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
+        <id value="19"  vendor="Clay" tool="Clay Shader Compiler" comment="Contact info@clayengine.com"/>
+        <unused start="20" end="0xFFFF" comment="Tool ID range reservable for future use by vendors"/>
     </ids>
 
     <!-- SECTION: SPIR-V Opcodes and Enumerants -->
diff --git a/include/spirv/unified1/OpenCL.std.h b/include/spirv/unified1/OpenCL.std.h
index 19a6688..fe759e1 100644
--- a/include/spirv/unified1/OpenCL.std.h
+++ b/include/spirv/unified1/OpenCL.std.h
@@ -24,6 +24,9 @@
 ** IN THE MATERIALS.
 */
 
+#ifndef OPENCLstd_H
+#define OPENCLstd_H
+
 namespace OpenCLLIB {
 
 enum Entrypoints {
@@ -208,3 +211,5 @@
 };
 
 } // end namespace OpenCLLIB
+
+#endif  // #ifndef OPENCLstd_H
diff --git a/include/spirv/unified1/spirv.core.grammar.json b/include/spirv/unified1/spirv.core.grammar.json
index 01f98ae..f4ffe14 100755
--- a/include/spirv/unified1/spirv.core.grammar.json
+++ b/include/spirv/unified1/spirv.core.grammar.json
@@ -3991,6 +3991,7 @@
         {
           "enumerant" : "ConstOffsets",
           "value" : "0x0020",
+          "capabilities" : [ "ImageGatherExtended" ],
           "parameters" : [
             { "kind" : "IdRef" }
           ]
@@ -5550,12 +5551,14 @@
           "enumerant" : "OverrideCoverageNV",
           "value" : 5248,
           "capabilities" : [ "SampleMaskOverrideCoverageNV" ],
+          "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
           "version" : "None"
         },
         {
           "enumerant" : "PassthroughNV",
           "value" : 5250,
           "capabilities" : [ "GeometryShaderPassthroughNV" ],
+          "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
           "version" : "None"
         },
         {
@@ -5568,6 +5571,7 @@
           "enumerant" : "SecondaryViewportRelativeNV",
           "value" : 5256,
           "capabilities" : [ "ShaderStereoViewNV" ],
+          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
           "version" : "None",
           "parameters" : [
             { "kind" : "LiteralInteger", "name" : "'Offset'" }
@@ -5960,12 +5964,14 @@
           "enumerant" : "SecondaryPositionNV",
           "value" : 5257,
           "capabilities" : [ "ShaderStereoViewNV" ],
+          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
           "version" : "None"
         },
         {
           "enumerant" : "SecondaryViewportMaskNV",
           "value" : 5258,
           "capabilities" : [ "ShaderStereoViewNV" ],
+          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
           "version" : "None"
         },
         {
@@ -6043,17 +6049,23 @@
         {
           "enumerant" : "PartitionedReduceNV",
           "value" : 6,
-          "capabilities" : [ "GroupNonUniformPartitionedNV" ]
+          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
+          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
+          "version" : "None"
         },
         {
           "enumerant" : "PartitionedInclusiveScanNV",
           "value" : 7,
-          "capabilities" : [ "GroupNonUniformPartitionedNV" ]
+          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
+          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
+          "version" : "None"
         },
         {
           "enumerant" : "PartitionedExclusiveScanNV",
           "value" : 8,
-          "capabilities" : [ "GroupNonUniformPartitionedNV" ]
+          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
+          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
+          "version" : "None"
         }
       ]
     },
@@ -6260,8 +6272,7 @@
         },
         {
           "enumerant" : "Int8",
-          "value" : 39,
-          "capabilities" : [ "Kernel" ]
+          "value" : 39
         },
         {
           "enumerant" : "InputAttachment",
diff --git a/tools/buildHeaders/bin/makeHeaders b/tools/buildHeaders/bin/makeHeaders
index d022fa1..bf2c615 100755
--- a/tools/buildHeaders/bin/makeHeaders
+++ b/tools/buildHeaders/bin/makeHeaders
@@ -1,4 +1,4 @@
-#!/usr/bin/bash
+#!/usr/bin/env bash
 
 cd ../../include/spirv/unified1
 ../../../tools/buildHeaders/build/install/bin/buildSpvHeaders -H spirv.core.grammar.json
diff --git a/tools/buildHeaders/jsonToSpirv.h b/tools/buildHeaders/jsonToSpirv.h
index b25b89e..00a2f70 100755
--- a/tools/buildHeaders/jsonToSpirv.h
+++ b/tools/buildHeaders/jsonToSpirv.h
@@ -26,6 +26,7 @@
 #ifndef JSON_TO_SPIRV
 #define JSON_TO_SPIRV
 
+#include <algorithm>
 #include <string>
 #include <vector>
 #include <assert.h>