Merge branch 'master' of github.com:KhronosGroup/OpenGL-Registry
diff --git a/README.adoc b/README.adoc
index d0d175c..b810918 100644
--- a/README.adoc
+++ b/README.adoc
@@ -6,7 +6,7 @@
 This site contains the API and Extension registries for the OpenGL family
 APIs - OpenGL, OpenGL ES, and OpenGL SC. It includes API specifications;
 specifications of Khronos- and vendor-approved extensions; header files
-corresponding to the specifications; the XML API Registry definining each
+corresponding to the specifications; the XML API Registry defining each
 API; and related tools and scripts.
 
 It does not contain the OpenGL and OpenGL ES Reference Pages, which are in
@@ -16,13 +16,13 @@
 existing specification, request allocation of enumerants and other
 controlled resources in the OpenGL / GLX / WGL namespaces, or otherwise
 change the Registry, propose a pull request against the OpenGL-Registry
-repository adding the appropriate extension specifications, making changes
+repository and adding the appropriate extension specifications, making changes
 to the appropriate XML file, etc. Note that any changes you propose to
 reserved values in the registry are not official until your pull request is
 *accepted* into the master branch.
 
 Feel free to post issues on the repository if it's unclear how to do
-something you need to with extensions, or if you find problems.
+something you need to with extensions, or if you find any problems.
 
 
 == Please Don't File API And GLSL Bugs Here!
diff --git a/extensions/ARB/ARB_gl_spirv.txt b/extensions/ARB/ARB_gl_spirv.txt
index 3583aa1..56c3c0a 100644
--- a/extensions/ARB/ARB_gl_spirv.txt
+++ b/extensions/ARB/ARB_gl_spirv.txt
@@ -15,11 +15,11 @@
 
 Contact Point for Bug Reports
 
-    https://www.khronos.org/bugzilla/enter_bug.cgi?product=OpenGL
+    https://github.com/KhronosGroup/OpenGL-Registry/issues/
 
 Notice
 
-    Copyright (c) 2015-2016 The Khronos Group Inc. Copyright terms at
+    Copyright (c) 2015-2019 The Khronos Group Inc. Copyright terms at
         http://www.khronos.org/registry/speccopyright.html
 
 Status
@@ -29,8 +29,8 @@
 
 Version
 
-    Last Modified Date: December 10, 2018
-    Revision: 41
+    Last Modified Date: January 9, 2019
+    Revision: 42
 
 Number
 
@@ -706,12 +706,51 @@
     "7.6.2.spv SPIR-V Uniform Offsets and Strides
 
     The SPIR-V decorations *GLSLShared* or *GLSLPacked* must not be used. A
-    variable in the *Uniform* Storage Class decorated as a *Block* must be
-    explicitly laid out using the *Offset*, *ArrayStride*, and *MatrixStride*
-    decorations. If the variable is decorated as a *BufferBlock*, its offsets
-    and strides must not contradict std430 alignment and minimum offset
-    requirements.  Otherwise, its offsets and strides must not contradict
-    std140 alignment and minimum offset requirements."
+    variable in the *Uniform* Storage Class decorated as a *Block* or
+    *BufferBlock* must be explicitly laid out using the *Offset*, *ArrayStride*,
+    and *MatrixStride* decorations. These must follow the alignment rules listed
+    above, but not necessarily the packing rules. More specifically, explicit
+    SPIR-V offsets and strides must obey the following:
+
+    Define the /base alignment/ recursively as:
+
+      - A scalar of size N has a base alignment of N.
+
+      - A two-component vector, with components of size N, has a base alignment
+        of 2N.
+
+      - A three- or four-component vector, with components of size N, has a base
+        alignment of 4N.
+
+      - An array has a base alignment equal to the base alignment of its element
+        type, rounded up to a multiple of 16.
+
+      - A structure has a base alignment equal to the largest base alignment of
+        any of its members, rounded up to a multiple of 16.
+
+      - A row-major matrix of C columns has a base alignment equal to the base
+        alignment of a vector of C matrix components.
+
+      - A column-major matrix has a base alignment equal to the base alignment
+        of the matrix column type.
+
+    Given this definition, blocks must be laid out such that:
+
+      - The *Offset* decoration must be a multiple of its base alignment.
+
+      - Any *ArrayStride* or *MatrixStride* decoration must be an integer
+        multiple of the base alignment of the array or matrix.
+
+      - The *Offset* decoration of a member must not place it between the end of
+        a structure or an array and the next multiple of the base alignment of
+        that structure or array.
+
+      - The numeric order of *Offset* decorations need not follow member
+        declaration order.
+
+    With one exception: Variables in the *Uniform* storage class with a
+    decoration of *BufferBlock* do not need their base alignments rounded up
+    to a multiple of 16.
 
   Modifications to Section 7.13 "Shader, Program, and Program Pipeline Queries"
 
@@ -2077,6 +2116,9 @@
 
     Rev.    Date         Author         Changes
     ----  -----------    ------------   ---------------------------------
+    42    9-Jan-2019     JohnK          Explicitly give rules for SPIR-V
+                                        uniform offsets (internal API issue
+                                        92)
     41    10-Dec-2018    Jon Leech      Use 'workgroup' consistently
                                         throughout (Bug 11723, internal API
                                         issue 87).
diff --git a/extensions/KHR/KHR_texture_compression_astc_hdr.txt b/extensions/KHR/KHR_texture_compression_astc_hdr.txt
index ce45b74..77fbf67 100644
--- a/extensions/KHR/KHR_texture_compression_astc_hdr.txt
+++ b/extensions/KHR/KHR_texture_compression_astc_hdr.txt
@@ -90,9 +90,10 @@
 
 New Tokens
 
-    Accepted by the <internalformat> parameter of CompressedTexImage2D,
-    CompressedTexSubImage2D, CompressedTexImage3D, CompressedTexSubImage3D,
-    TexStorage2D, TextureStorage2D, TexStorage3D, and TextureStorage3D:
+    Accepted by the <format> parameter of CompressedTexSubImage2D and
+    CompressedTexSubImage3D, and by the <internalformat> parameter of
+    CompressedTexImage2D, CompressedTexImage3D, TexStorage2D,
+    TextureStorage2D, TexStorage3D, and TextureStorage3D:
 
     COMPRESSED_RGBA_ASTC_4x4_KHR            0x93B0
     COMPRESSED_RGBA_ASTC_5x4_KHR            0x93B1
@@ -182,8 +183,8 @@
     not TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP_ARRAY, or TEXTURE_3D.
 
     An INVALID_OPERATION error is generated by CompressedTexImage3D if
-    <internalformat> is TEXTURE_CUBE_MAP_ARRAY and the "Cube Map Array"
-    column of table 8.19 is *not* checked, or if <internalformat> is
+    <target> is TEXTURE_CUBE_MAP_ARRAY and the "Cube Map Array"
+    column of table 8.19 is *not* checked, or if <target> is
     TEXTURE_3D and the "3D Tex." column of table 8.19 is *not* checked"
 
     Modify the fifth and sixth paragraphs on p. 170:
@@ -205,8 +206,8 @@
     TEXTURE_2D_ARRAY, TEXTURE_CUBE_MAP_ARRAY, or TEXTURE_3D.
 
     An INVALID_OPERATION error is generated by CompressedTexSubImage3D if
-    <format> is TEXTURE_CUBE_MAP_ARRAY and the "Cube Map Array" column of
-    table 8.19 is *not* checked, or if <format> is TEXTURE_3D and the "3D
+    <target> is TEXTURE_CUBE_MAP_ARRAY and the "Cube Map Array" column of
+    table 8.19 is *not* checked, or if <target> is TEXTURE_3D and the "3D
     Tex." column of table 8.19 is *not* checked"
 
     Modify the final error in the same section, on p. 171:
diff --git a/extensions/OES/OES_texture_compression_astc.txt b/extensions/OES/OES_texture_compression_astc.txt
index 7e103b0..db04dee 100644
--- a/extensions/OES/OES_texture_compression_astc.txt
+++ b/extensions/OES/OES_texture_compression_astc.txt
@@ -103,9 +103,9 @@
 
 New Tokens
 
-    Accepted by the <internalformat> parameter of CompressedTexImage2D,
-    CompressedTexSubImage2D, TexStorage2D, TextureStorage2D, TexStorage3D,
-    and TextureStorage3D:
+    Accepted by the <format> parameter of CompressedTexSubImage2D, and 
+    by the <internalformat> parameter of CompressedTexImage2D, TexStorage2D,
+    TextureStorage2D, TexStorage3D, and TextureStorage3D:
 
     COMPRESSED_RGBA_ASTC_4x4_KHR            0x93B0
     COMPRESSED_RGBA_ASTC_5x4_KHR            0x93B1
@@ -141,8 +141,9 @@
     accepted by TexStorage2DEXT, TextureStorage2DEXT, TexStorage3DEXT and
     TextureStorage3DEXT.
 
-    Accepted by the <internalformat> parameter of CompressedTexImage3D,
-    CompressedTexSubImage3D, TexStorage3D, and TextureStorage3D:
+    Accepted by the <format> parameter of CompressedTexSubImage3D, and 
+    by the <internalformat> parameter of CompressedTexImage3D, TexStorage3D,
+    and TextureStorage3D:
 
     COMPRESSED_RGBA_ASTC_3x3x3_OES          0x93C0
     COMPRESSED_RGBA_ASTC_4x3x3_OES          0x93C1
@@ -1791,7 +1792,7 @@
         w00 = 16 - fs - ft + w11;
         i = (p00*w00 + p01*w01 + p10*w10 + p11*w11 + 8) >> 4;
 
-    For 3D, simplex interpolation is used as it is cheaper than a naïve
+    For 3D, simplex interpolation is used as it is cheaper than a naïve
     trilinear interpolation. First, we pick some parameters for the inter-
     polation based on comparisons of the fractional parts of the texel
     position: