Nuke gfxstream-protocols for move to hardware/google/gfxstream am: 54641db9f8

Original change: https://android-review.googlesource.com/c/platform/external/gfxstream-protocols/+/2608672

Change-Id: Ica651dbee3a6f354089d802ff44f8e19a555bf05
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/Android.bp b/Android.bp
deleted file mode 100644
index dac09de..0000000
--- a/Android.bp
+++ /dev/null
@@ -1,17 +0,0 @@
-package {
-    default_applicable_licenses: ["external_gfxstream-protocols_license"],
-}
-
-license {
-    name: "external_gfxstream-protocols_license",
-    visibility: [":__subpackages__"],
-    license_kinds: [
-        "SPDX-license-identifier-Apache-2.0",
-        "SPDX-license-identifier-BSD",
-        "SPDX-license-identifier-CC-BY-4.0",
-        "SPDX-license-identifier-MIT",
-    ],
-    license_text: [
-        "LICENSE",
-    ],
-}
diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100644
index 79f15d7..0000000
--- a/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-project(gfxstream-protocols)
-cmake_minimum_required(VERSION 3.11)
-
-add_subdirectory(common)
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 74890bf..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,667 +0,0 @@
-// Copyright 2020-2021 The Khronos Group Inc.
-// SPDX-License-Identifier: CC-BY-4.0
-
-= LICENSE file for the KhronosGroup/Vulkan-Docs project
-
-Files in this repository fall under one of these licenses:
-
-  * SPDX license identifier: "`Apache-2.0 OR MIT`"
-  ** Apache License 2.0 OR MIT License
-  ** For scripts and XML which need to be usable in GPL-licensed projects.
-
-  * SPDX license identifier: "`Apache-2.0`"
-  ** Apache License 2.0
-  ** For other scripts
-
-  * SPDX license identifier: "`CC-BY-4.0`"
-  ** Creative Commons Attribution 4.0 International
-  ** For specification source documents
-
-  * SPDX license identifier: "`MIT`"
-  ** MIT License
-  ** For files copied from other MIT-licensed projects
-
-  * SPDX license identifier: "`LicenseRef-MPLUS`"
-  ** M+ Font License
-  ** For fonts derived from the M+ Font Project
-  ** This license is open source, but not OSI approved
-
-Full license text of these licenses is available at:
-
-  * Apache-2.0: https://opensource.org/licenses/Apache-2.0
-
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
-
-  * MIT: https://opensource.org/licenses/MIT
-
-MIT License
-
-Copyright (c) 2020-2021 The Khronos Group Inc.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-
-  * CC-BY-4.0: https://creativecommons.org/licenses/by/4.0/legalcode
-
-Attribution 4.0 International
-
-=======================================================================
-
-Creative Commons Corporation ("Creative Commons") is not a law firm and
-does not provide legal services or legal advice. Distribution of
-Creative Commons public licenses does not create a lawyer-client or
-other relationship. Creative Commons makes its licenses and related
-information available on an "as-is" basis. Creative Commons gives no
-warranties regarding its licenses, any material licensed under their
-terms and conditions, or any related information. Creative Commons
-disclaims all liability for damages resulting from their use to the
-fullest extent possible.
-
-Using Creative Commons Public Licenses
-
-Creative Commons public licenses provide a standard set of terms and
-conditions that creators and other rights holders may use to share
-original works of authorship and other material subject to copyright
-and certain other rights specified in the public license below. The
-following considerations are for informational purposes only, are not
-exhaustive, and do not form part of our licenses.
-
-     Considerations for licensors: Our public licenses are
-     intended for use by those authorized to give the public
-     permission to use material in ways otherwise restricted by
-     copyright and certain other rights. Our licenses are
-     irrevocable. Licensors should read and understand the terms
-     and conditions of the license they choose before applying it.
-     Licensors should also secure all rights necessary before
-     applying our licenses so that the public can reuse the
-     material as expected. Licensors should clearly mark any
-     material not subject to the license. This includes other CC-
-     licensed material, or material used under an exception or
-     limitation to copyright. More considerations for licensors:
-    wiki.creativecommons.org/Considerations_for_licensors
-
-     Considerations for the public: By using one of our public
-     licenses, a licensor grants the public permission to use the
-     licensed material under specified terms and conditions. If
-     the licensor's permission is not necessary for any reason--for
-     example, because of any applicable exception or limitation to
-     copyright--then that use is not regulated by the license. Our
-     licenses grant only permissions under copyright and certain
-     other rights that a licensor has authority to grant. Use of
-     the licensed material may still be restricted for other
-     reasons, including because others have copyright or other
-     rights in the material. A licensor may make special requests,
-     such as asking that all changes be marked or described.
-     Although not required by our licenses, you are encouraged to
-     respect those requests where reasonable. More considerations
-     for the public:
-    wiki.creativecommons.org/Considerations_for_licensees
-
-=======================================================================
-
-Creative Commons Attribution 4.0 International Public License
-
-By exercising the Licensed Rights (defined below), You accept and agree
-to be bound by the terms and conditions of this Creative Commons
-Attribution 4.0 International Public License ("Public License"). To the
-extent this Public License may be interpreted as a contract, You are
-granted the Licensed Rights in consideration of Your acceptance of
-these terms and conditions, and the Licensor grants You such rights in
-consideration of benefits the Licensor receives from making the
-Licensed Material available under these terms and conditions.
-
-
-Section 1 -- Definitions.
-
-  a. Adapted Material means material subject to Copyright and Similar
-     Rights that is derived from or based upon the Licensed Material
-     and in which the Licensed Material is translated, altered,
-     arranged, transformed, or otherwise modified in a manner requiring
-     permission under the Copyright and Similar Rights held by the
-     Licensor. For purposes of this Public License, where the Licensed
-     Material is a musical work, performance, or sound recording,
-     Adapted Material is always produced where the Licensed Material is
-     synched in timed relation with a moving image.
-
-  b. Adapter's License means the license You apply to Your Copyright
-     and Similar Rights in Your contributions to Adapted Material in
-     accordance with the terms and conditions of this Public License.
-
-  c. Copyright and Similar Rights means copyright and/or similar rights
-     closely related to copyright including, without limitation,
-     performance, broadcast, sound recording, and Sui Generis Database
-     Rights, without regard to how the rights are labeled or
-     categorized. For purposes of this Public License, the rights
-     specified in Section 2(b)(1)-(2) are not Copyright and Similar
-     Rights.
-
-  d. Effective Technological Measures means those measures that, in the
-     absence of proper authority, may not be circumvented under laws
-     fulfilling obligations under Article 11 of the WIPO Copyright
-     Treaty adopted on December 20, 1996, and/or similar international
-     agreements.
-
-  e. Exceptions and Limitations means fair use, fair dealing, and/or
-     any other exception or limitation to Copyright and Similar Rights
-     that applies to Your use of the Licensed Material.
-
-  f. Licensed Material means the artistic or literary work, database,
-     or other material to which the Licensor applied this Public
-     License.
-
-  g. Licensed Rights means the rights granted to You subject to the
-     terms and conditions of this Public License, which are limited to
-     all Copyright and Similar Rights that apply to Your use of the
-     Licensed Material and that the Licensor has authority to license.
-
-  h. Licensor means the individual(s) or entity(ies) granting rights
-     under this Public License.
-
-  i. Share means to provide material to the public by any means or
-     process that requires permission under the Licensed Rights, such
-     as reproduction, public display, public performance, distribution,
-     dissemination, communication, or importation, and to make material
-     available to the public including in ways that members of the
-     public may access the material from a place and at a time
-     individually chosen by them.
-
-  j. Sui Generis Database Rights means rights other than copyright
-     resulting from Directive 96/9/EC of the European Parliament and of
-     the Council of 11 March 1996 on the legal protection of databases,
-     as amended and/or succeeded, as well as other essentially
-     equivalent rights anywhere in the world.
-
-  k. You means the individual or entity exercising the Licensed Rights
-     under this Public License. Your has a corresponding meaning.
-
-
-Section 2 -- Scope.
-
-  a. License grant.
-
-       1. Subject to the terms and conditions of this Public License,
-          the Licensor hereby grants You a worldwide, royalty-free,
-          non-sublicensable, non-exclusive, irrevocable license to
-          exercise the Licensed Rights in the Licensed Material to:
-
-            a. reproduce and Share the Licensed Material, in whole or
-               in part; and
-
-            b. produce, reproduce, and Share Adapted Material.
-
-       2. Exceptions and Limitations. For the avoidance of doubt, where
-          Exceptions and Limitations apply to Your use, this Public
-          License does not apply, and You do not need to comply with
-          its terms and conditions.
-
-       3. Term. The term of this Public License is specified in Section
-          6(a).
-
-       4. Media and formats; technical modifications allowed. The
-          Licensor authorizes You to exercise the Licensed Rights in
-          all media and formats whether now known or hereafter created,
-          and to make technical modifications necessary to do so. The
-          Licensor waives and/or agrees not to assert any right or
-          authority to forbid You from making technical modifications
-          necessary to exercise the Licensed Rights, including
-          technical modifications necessary to circumvent Effective
-          Technological Measures. For purposes of this Public License,
-          simply making modifications authorized by this Section 2(a)
-          (4) never produces Adapted Material.
-
-       5. Downstream recipients.
-
-            a. Offer from the Licensor -- Licensed Material. Every
-               recipient of the Licensed Material automatically
-               receives an offer from the Licensor to exercise the
-               Licensed Rights under the terms and conditions of this
-               Public License.
-
-            b. No downstream restrictions. You may not offer or impose
-               any additional or different terms or conditions on, or
-               apply any Effective Technological Measures to, the
-               Licensed Material if doing so restricts exercise of the
-               Licensed Rights by any recipient of the Licensed
-               Material.
-
-       6. No endorsement. Nothing in this Public License constitutes or
-          may be construed as permission to assert or imply that You
-          are, or that Your use of the Licensed Material is, connected
-          with, or sponsored, endorsed, or granted official status by,
-          the Licensor or others designated to receive attribution as
-          provided in Section 3(a)(1)(A)(i).
-
-  b. Other rights.
-
-       1. Moral rights, such as the right of integrity, are not
-          licensed under this Public License, nor are publicity,
-          privacy, and/or other similar personality rights; however, to
-          the extent possible, the Licensor waives and/or agrees not to
-          assert any such rights held by the Licensor to the limited
-          extent necessary to allow You to exercise the Licensed
-          Rights, but not otherwise.
-
-       2. Patent and trademark rights are not licensed under this
-          Public License.
-
-       3. To the extent possible, the Licensor waives any right to
-          collect royalties from You for the exercise of the Licensed
-          Rights, whether directly or through a collecting society
-          under any voluntary or waivable statutory or compulsory
-          licensing scheme. In all other cases the Licensor expressly
-          reserves any right to collect such royalties.
-
-
-Section 3 -- License Conditions.
-
-Your exercise of the Licensed Rights is expressly made subject to the
-following conditions.
-
-  a. Attribution.
-
-       1. If You Share the Licensed Material (including in modified
-          form), You must:
-
-            a. retain the following if it is supplied by the Licensor
-               with the Licensed Material:
-
-                 i. identification of the creator(s) of the Licensed
-                    Material and any others designated to receive
-                    attribution, in any reasonable manner requested by
-                    the Licensor (including by pseudonym if
-                    designated);
-
-                ii. a copyright notice;
-
-               iii. a notice that refers to this Public License;
-
-                iv. a notice that refers to the disclaimer of
-                    warranties;
-
-                 v. a URI or hyperlink to the Licensed Material to the
-                    extent reasonably practicable;
-
-            b. indicate if You modified the Licensed Material and
-               retain an indication of any previous modifications; and
-
-            c. indicate the Licensed Material is licensed under this
-               Public License, and include the text of, or the URI or
-               hyperlink to, this Public License.
-
-       2. You may satisfy the conditions in Section 3(a)(1) in any
-          reasonable manner based on the medium, means, and context in
-          which You Share the Licensed Material. For example, it may be
-          reasonable to satisfy the conditions by providing a URI or
-          hyperlink to a resource that includes the required
-          information.
-
-       3. If requested by the Licensor, You must remove any of the
-          information required by Section 3(a)(1)(A) to the extent
-          reasonably practicable.
-
-       4. If You Share Adapted Material You produce, the Adapter's
-          License You apply must not prevent recipients of the Adapted
-          Material from complying with this Public License.
-
-
-Section 4 -- Sui Generis Database Rights.
-
-Where the Licensed Rights include Sui Generis Database Rights that
-apply to Your use of the Licensed Material:
-
-  a. for the avoidance of doubt, Section 2(a)(1) grants You the right
-     to extract, reuse, reproduce, and Share all or a substantial
-     portion of the contents of the database;
-
-  b. if You include all or a substantial portion of the database
-     contents in a database in which You have Sui Generis Database
-     Rights, then the database in which You have Sui Generis Database
-     Rights (but not its individual contents) is Adapted Material; and
-
-  c. You must comply with the conditions in Section 3(a) if You Share
-     all or a substantial portion of the contents of the database.
-
-For the avoidance of doubt, this Section 4 supplements and does not
-replace Your obligations under this Public License where the Licensed
-Rights include other Copyright and Similar Rights.
-
-
-Section 5 -- Disclaimer of Warranties and Limitation of Liability.
-
-  a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
-     EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
-     AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
-     ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
-     IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
-     WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
-     PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
-     ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
-     KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
-     ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
-
-  b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
-     TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
-     NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
-     INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
-     COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
-     USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
-     ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
-     DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
-     IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
-
-  c. The disclaimer of warranties and limitation of liability provided
-     above shall be interpreted in a manner that, to the extent
-     possible, most closely approximates an absolute disclaimer and
-     waiver of all liability.
-
-
-Section 6 -- Term and Termination.
-
-  a. This Public License applies for the term of the Copyright and
-     Similar Rights licensed here. However, if You fail to comply with
-     this Public License, then Your rights under this Public License
-     terminate automatically.
-
-  b. Where Your right to use the Licensed Material has terminated under
-     Section 6(a), it reinstates:
-
-       1. automatically as of the date the violation is cured, provided
-          it is cured within 30 days of Your discovery of the
-          violation; or
-
-       2. upon express reinstatement by the Licensor.
-
-     For the avoidance of doubt, this Section 6(b) does not affect any
-     right the Licensor may have to seek remedies for Your violations
-     of this Public License.
-
-  c. For the avoidance of doubt, the Licensor may also offer the
-     Licensed Material under separate terms or conditions or stop
-     distributing the Licensed Material at any time; however, doing so
-     will not terminate this Public License.
-
-  d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
-     License.
-
-
-Section 7 -- Other Terms and Conditions.
-
-  a. The Licensor shall not be bound by any additional or different
-     terms or conditions communicated by You unless expressly agreed.
-
-  b. Any arrangements, understandings, or agreements regarding the
-     Licensed Material not stated herein are separate from and
-     independent of the terms and conditions of this Public License.
-
-
-Section 8 -- Interpretation.
-
-  a. For the avoidance of doubt, this Public License does not, and
-     shall not be interpreted to, reduce, limit, restrict, or impose
-     conditions on any use of the Licensed Material that could lawfully
-     be made without permission under this Public License.
-
-  b. To the extent possible, if any provision of this Public License is
-     deemed unenforceable, it shall be automatically reformed to the
-     minimum extent necessary to make it enforceable. If the provision
-     cannot be reformed, it shall be severed from this Public License
-     without affecting the enforceability of the remaining terms and
-     conditions.
-
-  c. No term or condition of this Public License will be waived and no
-     failure to comply consented to unless expressly agreed to by the
-     Licensor.
-
-  d. Nothing in this Public License constitutes or may be interpreted
-     as a limitation upon, or waiver of, any privileges and immunities
-     that apply to the Licensor or You, including from the legal
-     processes of any jurisdiction or authority.
-
-
-=======================================================================
-
-Creative Commons is not a party to its public
-licenses. Notwithstanding, Creative Commons may elect to apply one of
-its public licenses to material it publishes and in those instances
-will be considered the “Licensor.” The text of the Creative Commons
-public licenses is dedicated to the public domain under the CC0 Public
-Domain Dedication. Except for the limited purpose of indicating that
-material is shared under a Creative Commons public license or as
-otherwise permitted by the Creative Commons policies published at
-creativecommons.org/policies, Creative Commons does not authorize the
-use of the trademark "Creative Commons" or any other trademark or logo
-of Creative Commons without its prior written consent including,
-without limitation, in connection with any unauthorized modifications
-to any of its public licenses or any other arrangements,
-understandings, or agreements concerning use of licensed material. For
-the avoidance of doubt, this paragraph does not form part of the
-public licenses.
-
-Creative Commons may be contacted at creativecommons.org.
-
-
-  * LicenseRef-MPLUS:  https://osdn.net/softwaremap/trove_list.php?form_cat=370
-
-M+ Font License
-
-These fonts are free softwares.
-Unlimited permission is granted to use, copy, and distribute it,
-with or without modification, either commercially and noncommercially.
-THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY. 
diff --git a/METADATA b/METADATA
deleted file mode 100644
index 1e27929..0000000
--- a/METADATA
+++ /dev/null
@@ -1,15 +0,0 @@
-name: "gfxstream-protocols"
-description:
-    "gfxstream-protocols is a package containing Vulkan specifications and "
-    "Vulkan encoder/decoder generator scripts used for gfxstream "
-    "(https://android.googlesource.com/device/generic/vulkan-cereal/)."
-
-third_party {
-  url {
-    type: GIT
-    value: "https://github.com/KhronosGroup/Vulkan-Docs.git"
-  }
-  version: "v1.2.198"
-  last_upgrade_date { year: 2022 month: 2 day: 3 }
-  license_type: NOTICE 
-}
diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2
deleted file mode 100644
index e69de29..0000000
--- a/MODULE_LICENSE_APACHE2
+++ /dev/null
diff --git a/OWNERS b/OWNERS
deleted file mode 100644
index f3f3c2b..0000000
--- a/OWNERS
+++ /dev/null
@@ -1,12 +0,0 @@
-bohu@google.com
-cstout@google.com
-doughorn@google.com
-gurchetansingh@google.com
-kaiyili@google.com
-lfy@google.com
-liyl@google.com
-natsu@google.com
-reveman@google.com
-rkir@google.com
-yahan@google.com
-
diff --git a/codegen/scripts/generate-vulkan-sources.sh b/codegen/scripts/generate-vulkan-sources.sh
deleted file mode 100755
index 3f3da70..0000000
--- a/codegen/scripts/generate-vulkan-sources.sh
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/bin/bash
-
-# Copyright 2022 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-PROJECT_ROOT=$(pwd)
-
-WHICH=which
-if [[ "$OSTYPE" == "msys" ]]; then
-    WHICH=where
-fi
-
-if [ -z "$1" ] || [ -z "$2" ];
-then
-    AOSP_DIR=$(pwd)/../..
-    export GOLDFISH_OPENGL_DIR=$AOSP_DIR/device/generic/goldfish-opengl
-    export VULKAN_CEREAL_DIR=$AOSP_DIR/device/generic/vulkan-cereal
-    export VULKAN_REGISTRY_DIR=$AOSP_DIR/external/gfxstream-protocols/codegen/vulkan
-else
-    export GOLDFISH_OPENGL_DIR=$1
-    export VULKAN_CEREAL_DIR=$2
-    export VULKAN_REGISTRY_DIR=codegen/vulkan
-fi
-
-# Detect clang-format
-if ! $WHICH clang-format > /dev/null; then
-    echo "Failed to find clang-format." 1>&2
-    exit 1
-fi
-
-# Generate Vulkan headers
-VULKAN_HEADERS_ROOT=$PROJECT_ROOT/common/vulkan
-rm -rf $VULKAN_HEADERS_ROOT && mkdir -p $VULKAN_HEADERS_ROOT
-if [ $? -ne 0 ]; then
-    echo "Failed to clear the old Vulkan headers." 1>&2
-    exit 1
-fi
-
-cd $VULKAN_REGISTRY_DIR/xml && make GENOPTS="-removeExtensions VK_GOOGLE_gfxstream" GENERATED=$VULKAN_HEADERS_ROOT
-if [ $? -ne 0 ]; then
-    echo "Failed to generate Vulkan headers." 1>&2
-    exit 1
-fi
-
-cd $PROJECT_ROOT
-
-export VK_CEREAL_GUEST_ENCODER_DIR=$GOLDFISH_OPENGL_DIR/system/vulkan_enc
-export VK_CEREAL_GUEST_HAL_DIR=$GOLDFISH_OPENGL_DIR/system/vulkan
-export VK_CEREAL_HOST_DECODER_DIR=$VULKAN_CEREAL_DIR/host/vulkan
-export VK_CEREAL_HOST_INCLUDE_DIR=$VULKAN_CEREAL_DIR/host
-export VK_CEREAL_HOST_SCRIPTS_DIR=$VULKAN_CEREAL_DIR/scripts
-export VK_CEREAL_BASELIB_PREFIX=aemu/base
-export VK_CEREAL_BASELIB_LINKNAME=aemu-base.headers
-export VK_CEREAL_VK_HEADER_TARGET=gfxstream_vulkan_headers
-export VK_CEREAL_UTILS_LINKNAME=gfxstream_utils.headers
-export VK_CEREAL_UTILS_PREFIX=utils
-
-VK_CEREAL_OUTPUT_DIR=$VK_CEREAL_HOST_DECODER_DIR/cereal
-if [ -d "$VK_CEREAL_GUEST_DIR" ]; then
-    mkdir -p $VK_CEREAL_GUEST_ENCODER_DIR
-    mkdir -p $VK_CEREAL_GUEST_HAL_DIR
-fi
-if [ -d "$VK_CEREAL_HOST_DIR" ]; then
-    mkdir -p $VK_CEREAL_HOST_DECODER_DIR
-    mkdir -p $VK_CEREAL_OUTPUT_DIR
-fi
-
-VULKAN_REGISTRY_XML_DIR=$VULKAN_REGISTRY_DIR/xml
-VULKAN_REGISTRY_SCRIPTS_DIR=$VULKAN_REGISTRY_DIR/scripts
-
-python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $VK_CEREAL_OUTPUT_DIR
-
-
-# Generate VK_ANDROID_native_buffer specific Vulkan definitions.
-if [ -d $VK_CEREAL_HOST_DECODER_DIR ]; then
-    OUT_DIR=$VK_CEREAL_HOST_DECODER_DIR
-    OUT_FILE_BASENAME="vk_android_native_buffer.h"
-
-    python3 registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml -o $OUT_DIR \
-        $OUT_FILE_BASENAME
-
-    if [ $? -ne 0 ]; then
-        echo "Failed to generate vk_android_native_buffer.h" 1>&2
-        exit 1
-    fi
-    if ! clang-format -i $OUT_DIR/$OUT_FILE_BASENAME; then
-        echo "Failed to reformat vk_android_native_buffer.h" 1>&2
-        exit 1
-    fi
-fi
-
-# Generate gfxstream specific Vulkan definitions.
-for OUT_DIR in $VK_CEREAL_HOST_DECODER_DIR $VK_CEREAL_GUEST_ENCODER_DIR; do
-    if [ -d "$OUT_DIR" ]; then
-        OUT_FILE_BASENAME=vulkan_gfxstream.h
-        python3 registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml -o $OUT_DIR \
-            $OUT_FILE_BASENAME
-
-        if [ $? -ne 0 ]; then
-            echo "Failed to generate gfxstream specific vulkan headers." 1>&2
-            exit 1
-        fi
-        if ! clang-format -i $OUT_DIR/$OUT_FILE_BASENAME; then
-            echo "Failed to reformat gfxstream specific vulkan headers." 1>&2
-            exit 1
-        fi
-    fi
-done
diff --git a/codegen/vulkan/BUILD.adoc b/codegen/vulkan/BUILD.adoc
deleted file mode 100644
index 855b7d3..0000000
--- a/codegen/vulkan/BUILD.adoc
+++ /dev/null
@@ -1,459 +0,0 @@
-// Copyright 2014-2021 The Khronos Group Inc.
-// SPDX-License-Identifier: CC-BY-4.0
-
-= Vulkan^(R)^ Specification Build Instructions and Notes
-:toc2:
-:toclevels: 2
-
-ifdef::env-github[]
-:note-caption: :information_source:
-endif::[]
-
-[[intro]]
-== Introduction
-
-This README describes how to build the Vulkan API specification, reference
-pages, and/or other related targets.
-
-It documents how to set up your build environment, build steps and targets,
-and contains some troubleshooting advice.
-
-[[building]]
-== Building The Spec
-
-First, clone the Khronos Github repository containing the Vulkan
-specification to your local Linux, Windows, or Mac PC.
-The repository is located at https://github.com/KhronosGroup/Vulkan-Docs/.
-
-Next, install all the necessary build tools (see <<depends,Software
-Dependencies>> below).
-If you are using the <<depends-docker, Khronos-Provided Docker Image>>,
-which we strongly recommend, then one way to build using the image (assuming
-a Linux docker host) is:
-
-    $ docker run --user `id -u`:`id -g` -it --rm \
-      -v <vulkan-path>:/vulkan \
-      khronosgroup/docker-images:asciidoctor-spec /bin/bash
-
-where <vulkan-path> is the path to the cloned repository. This runs the
-image with the cloned repository under /vulkan and accesses it as a
-specified user (set to your own user and group ID above), so that it doesn't
-get filled with files owned by another user.
-
-Then in the running image,
-
-    $ cd /vulkan
-    $ ./makeSpec -spec core html
-
-which builds an HTML5 specification output for the core Vulkan 1.2
-specification, with no extensions included, or
-
-    $ ./makeSpec -spec all all
-
-which builds the spec targets `html`, `pdf`, `styleguide`, `registry`,
-`manhtmlpages`, and `allchecks`, with *all* registered extensions included.
-
-There are many other ways of using the image, including inside a Continuous
-Integration pipeline; locally with persistent Docker volume storage of the
-repository; and so on.
-
-If you are not using our Docker image to build with, and you have a
-<<depends-nondocker, Non-Docker Build Environment>> with the entire
-toolchain installed, you can go to <vulkan-path> and invoke the same `make`
-commands there.
-
-[NOTE]
-.Note
-====
-  * While it's possible to invoke `make` directly, this is rarely
-    appropriate or useful.
-    Usually dozens to hundreds of build options must be set to specify the
-    desired set of extensions to include in the specification.
-    The `makeSpec` python script, which is discussed in more detail
-    <<building-extensions, below>>, simplifies this process for common
-    cases.
-  * The `all` target takes a long time to run, and generates outputs that
-    are irrelevant for most users.
-    The `html` target just generates the HTML output, which is often all
-    that's needed for spec bugfixes not involving extensions.
-  * The default `make` options build a Vulkan 1.2 specification with no
-    optional extensions.
-  * The `validusage` target is not built as part of the `all` target, due to
-    it needing to be built with all extensions enabled (`-spec all`).
-    Building the `validusage` target will fail otherwise.
-====
-
-These targets generate a variety of output documents in the directory
-specified by the Makefile variable `$(OUTDIR)` (by default, `out/`).
-The checked-in file `out/index.html` links to all these
-targets, or they can individually be found as follows:
-
-Vulkan Specification::
-  * `html` -- Single-file HTML5 in `$(OUTDIR)/html/vkspec.html`, and KaTeX
-    dependency in $(OUTDIR)/katex
-  * `chunked` -- Chunked HTML5 in `$(OUTDIR)/html/chap?.html`
-  * `pdf` -- PDF in `$(OUTDIR)/pdf/vkspec.pdf`
-"`styleguide`" (Vulkan Documentation and Extensions: Procedures and Conventions)::
-  * `styleguide` -- Single-file HTML5 in `$(OUTDIR)/styleguide.html`
-XML Registry schema document::
-  * `registry` -- Single-file HTML5 in `$(OUTDIR)/registry.html`
-<<building-diff,Diff spec>>::
-  * `diff_html` -- Single-file HTML5 in `$(OUTDIR)/html/diff.html`
-<<refpages,Reference pages>>::
-  * `manhtmlpages` -- File-per-entry-point HTML in `$(OUTDIR)/man/html/*`.
-    Must be built with all extensions enabled (using `makeSpec -spec all`).
-<<validation-scripts,Validator output>>::
-  * None at present. The `allchecks` target writes to standard output unless
-    the underlying script is given additional options.
-Valid usage database::
-  * `validusage` - json database of all valid usage statements in the
-     specification. Must be built with `./makeAllExts` (for now).
-     Output in `$(OUTDIR)/validation/validusage.json`.
-     A validated schema for the output of this is stored in
-     `$(CURDIR)/config/vu-to-json/vu_schema.json`
-
-Once you have the basic build working, an appropriate parallelization
-option, such as `-j 8`, should significantly speed up the reference page
-builds.
-
-If you encounter problems refer to the <<troubleshooting>> section.
-
-
-[[building-versions]]
-=== Building Specifications For Different API Versions
-
-The `Makefile` defaults to building a Vulkan 1.2 specification.
-This is controlled by Asciidoctor attributes passed in the Makefile variable
-`$(VERSIONS)`
-To instead build a Vulkan 1.1 specification, pass
-
-----
-VERSIONS="VK_VERSION_1_0 VK_VERSION_1_1"
-----
-
-on the `makeSpec` command line.
-
-
-[[building-extensions]]
-=== Building With Extensions Included
-
-Extensions are defined in the same source as the core Specification, but
-are only conditionally included in the output.
-http://asciidoctor.org/docs/user-manual/#attributes[Asciidoctor attributes]
-of the same name as the extension are used to define whether the extension
-is included or not -- defining such an attribute will cause the output to
-include the text for that extension.
-
-When building the specification, the extensions included are those specified
-as a space-separated list of extension names (e.g. `VK_KHR_surface`) in the
-Makefile variable `$(EXTENSIONS)`, usually set on the make command line.
-When changing the list of extensions, it is critical to remove all generated
-files using the `clean_generated` Makefile target, as the contents of
-generated files depends on `$(EXTENSIONS)`.
-
-The `makeSpec` wrapper script can clean generated files and then build one
-or more specification targets for a set of explicitly specified extensions,
-including all implicit extension dependencies of that set.
-It accepts these options:
-
-  * -clean - remove generated targets before building
-  * -v - print actions as well as executing them
-  * -n - print actions without executing them
-  * -genpath *path* - specify path to generated files (default `gen`)
-  * -spec *type* - build with sepcified sets of extensions.
-    *type* may be
-  ** *core* - no extensions added (default if not specified)
-  ** *khr* - all KHR extensions added
-  ** *all* - all registered extensions added
-  * -extension *extname* - build with specified extension included,
-    as well as the set specified by `-spec`.
-    Can be given multiple times.
-  * All remaining targets are arbitrary `make` options or
-    targets in the Makefile.
-
-The `target(s)` passed to these scripts are arbitrary `make` options, and
-can be used to set Makefile variables and options discussed above, as well
-as specify actual build targets.
-For example, to build the HTML specification with all KHR extensions
-included as well as a single vendor extension:
-
-----
-$ ./makeSpec -clean -spec khr -extension VK_EXT_debug_report html
-----
-
-The scripts `makeAllExts`, `makeKHR`, and `makeExt` set appropriate options
-and invoke `makeSpec`, for backwards compatibility, but are no longer used
-by Khronos.
-
-The Makefile variable `$(APITITLE)` defines an additional string which is
-appended to the specification title.
-When building with extensions enabled, this should be set to something like
-`(with extension VK_extension_name)`.
-The `makeSpec` script already does this.
-
-The reference pages (the `manhtmlpages` target) must be built using the
-`-spec all` option; there are markup and scripting issues which will
-probably cause any more restricted set of refpages to fail to build.
-
-
-[[building-diff]]
-==== Building A Highlighted Extension Diff
-
-The `diff_html` target in the Makefile can be used to generate a version of
-the specification which highlights changes made to the specification by the
-inclusion of a particular set of extensions.
-
-Extensions in the Makefile variable `$(EXTENSIONS)` define the base
-extensions to be enabled by the specification, and these will not be
-highlighted in the output.
-Extensions in the Makefile variable `$(DIFFEXTENSIONS)` define the set of
-extensions whose changes to the text will be highlighted when they are
-enabled.
-Any extensions in both variables will be treated as if they were only
-included in `$(DIFFEXTENSIONS)`.
-`$(DIFFEXTENSIONS)` can be set when using the `makeSpec` script described
-above.
-
-In the resulting HTML document, content that has been added by one of the
-extensions will be highlighted with a lime background, and content that was
-removed will be highlighted with a pink background.
-Each section has an anchor of `#differenceN`, with an arrow (=>) at the end
-of each section which links to the next difference section.
-The first diff section is `#difference1`.
-
-[NOTE]
-.Note
-====
-This output is not without errors.
-It may instead result in visible `+++[.added]##content##+++` and
-`+++[.removed]##content##+++`, and so also highlights not being rendered.
-But such visible markup still correctly encapsulates the modified content.
-====
-
-[[building-test]]
-=== Alternate and Test Builds
-
-If you are just testing Asciidoctor formatting, macros, stylesheets, etc.,
-you may want to edit `vkspec.txt` to just include your test code.
-The asciidoctor HTML build is very fast, even for the whole Specification,
-but PDF builds take several minutes.
-
-
-=== Images Used In The Specification
-
-All images used in the specification are in the `images/` directory in the
-SVG format, and were created with Inkscape.
-We recommend using Inkscape to modify or create new images, as we've had
-problems using SVG files created by some other tools; especially in the PDF
-builds.
-
-
-[[validation-scripts]]
-=== Validation Scripts
-
-The `allchecks` Makefile target runs a Python script that looks for markup
-errors, missing interfaces, macro misuse, and inconsistencies in the
-specification text.
-This script is necessarily heuristic, since it's dealing with lots of
-hand-written material, but it identifies many problems and can suggest
-solutions.
-This script is also run as part of the CI tests in the internal Khronos
-gitlab repository.
-
-
-[[macros]]
-== Our Asciidoctor Macros
-
-We use many custom Ruby macros in the reference pages and API spec
-Asciidoctor sources.
-The validator scripts rely on these macros as part of their sanity checks,
-and you should use the macros whenever referring to an API command, struct,
-token, or enum name, so the documents are semantically tagged and more
-easily verifiable.
-
-The supported macros are defined in the `config/spec-macros/extension.rb`
-asciidoctor extension script.
-
-The tags used are described in the
-link:https://www.khronos.org/registry/vulkan/specs/1.1/styleguide.html[style
-guide] (generated from `styleguide.txt`).
-
-We (may) eventually tool up the spec and reference pages to the point that
-anywhere there's a type or token referred to, clicking on (or perhaps
-hovering over) it in the HTML view will take reader to the definition of
-that type/token.
-That will take some more plumbing work to tag the stuff in the autogenerated
-include files, and do something sensible in the spec (e.g. resolve links to
-internal references).
-
-Most of these macros deeply need more intuitive names.
-
-
-[[refpages]]
-== Reference Pages
-
-The reference pages are extracted from the API Specification source, which
-has been tagged to help identify boundaries of language talking about
-different commands, structures, enumerants, and other types.
-A set of Python scripts extract and lightly massage the relevant tagged
-language into corresponding reference page sources.
-
-To regenerate the reference page sources from scratch yourself, execute:
-
-----
-./makeSpec -spec all refpages
-----
-
-The `genRef.py` script will generate many warnings, but most are just
-reminders that some pages are automatically generated.
-If everything is working correctly, all the `$(GENERATED)/refpage/*.txt`
-files will be regenerated, but their contents will not change.
-
-If you add new API features to the Specification in a branch, make sure that
-the commands have the required tagging and that reference pages are
-generated for them, and build properly.
-
-When executing the `manhtmlpages` target in the Makefile, after building
-HTML versions of all reference pages extracted from the spec, symbolic links
-from aliases to the reference page for the API they alias will also be
-created.
-
-
-[[styles]]
-== Our stylesheets
-
-We use an HTML stylesheet `config/khronos.css` derived from the
-http://asciidoctor.org/docs/produce-custom-themes-using-asciidoctor-stylesheet-factory/[Asciidoctor
-stylesheet factory] "`colony`" theme, with the default Arial font family
-replaced by the sans-serif https://en.wikipedia.org/wiki/Noto_fonts[Noto
-font family].
-
-
-[[styleguide]]
-== Vulkan Style Guide
-
-
-If you're writing new spec language or modifying existing language, see the
-link:https://www.khronos.org/registry/vulkan/specs/1.2/styleguide.html["`style
-guide`"] (formally titled "`Vulkan Documentation and Extensions: Procedures
-and Conventions`") document for details of our asciidoctor macros,
-extensions, mathematical equation markup, writing style, etc.
-
-
-[[depends]]
-== Software Dependencies
-
-This section describes the software components used by the Vulkan spec
-toolchain.
-
-In the past, we previously specified package versions and instructions for
-installing the toolchain in multiple desktop environments including Linux,
-MacOS X, and Microsoft Windows.
-The underlying components evolve rapidly, and we have not kept those
-instructions up to date.
-
-
-[[depends-docker]]
-=== Khronos-Provided Docker Image
-
-Khronos has published a Docker image containing a Debian Linux distribution
-with the entire toolchain preinstalled.
-
-We will occasionally update this image if needed, and we recommend people
-needing to build from this repository use the Docker image.
-
-Docker installation is beyond the scope of this document.
-Refer to link:https://docs.docker.com/get-docker/[the Docker website] for
-information about installing Docker on Linux, Windows, and MacOS X.
-
-The name of the build image is
-
-    khronosgroup/docker-images:asciidoctor-spec
-
-It can be pulled from the
-link:https://hub.docker.com/repository/docker/khronosgroup/docker-images[Dockerhub
-repository] with the command
-
-    docker pull khronosgroup/docker-images:asciidoctor-spec
-
-Once docker is installed and the image is available, it can be executed as
-described above under <<building, Building the Spec>> to generate
-Specification output documents or other Makefile targets.
-
-[NOTE]
-.Note
-====
-The old `vulkan-docs-base` and `vulkan-docs` images continue to be hosted,
-but the new `asciidoctor-spec` image is preferred - the added functionality
-of `vulkan-docs`, to set the user/group inside Docker based on environment
-variables passed into Docker, is no longer needed with the Docker `--user`
-option.
-====
-
-
-[[depends-nondocker]]
-=== Non-Docker Build Environments
-
-We do not actively support building outside of our Docker image, but it is
-straightforward to reproduce our toolchain in a Debian (or similar APT-based
-Linux) distribution by executing the same steps as the
-link:https://github.com/KhronosGroup/DockerContainers/blob/master/asciidoctor-spec.dockerfile[Dockerfile]
-used to build our Docker image.
-
-It should be possible to apply the same steps in a Windows Subsystem for
-Linux (WSL2) environment on Windows 10, as well.
-
-For other native environments, such as MacOS X and older Unix-like
-environments for Windows such as MinGW and Cygwin, we provided instructions
-in older versions of this document.
-While those instructions are out of date and have been removed from current
-versions of this document, you may be able to make use of
-link:https://github.com/KhronosGroup/Vulkan-Docs/blob/v1.2.135/BUILD.adoc#depends[the
-version of BUILD.adoc in the v1.2.135 repository tag]
-
-[NOTE]
-.Note
-====
-While we have no intention of forcing people to use our Docker image, we
-cannot support every possible environment.
-The Docker image is a straightforward way to use the Vulkan-Docs repository
-with almost all modern desktop environments.
-====
-
-
-[[history]]
-== Revision History
-
-  * 2021-03-12 - Use the new Docker image.
-  * 2020-07-15 - Update to use `makeSpec` instead of `makeAllExts`.
-  * 2020-03-23 - Document Khronos' published Docker image for building the
-    spec, and remove all platform-specific instructions.
-  * 2018-12-04 - Update Rbenv and ruby gem installation instructions and
-    package dependencies for Linux and Ubuntu/Windows 10.
-  * 2018-10-25 - Update Troubleshooting, and Windows and Linux build. Plus
-    random editing.
-  * 2018-03-13 - Rename to BUILD.adoc and update for new directory
-    structure.
-  * 2018-03-05 - Update README for Vulkan 1.1 release.
-  * 2017-03-20 - Add description of prawn versioning problem and how to fix
-    it.
-  * 2017-03-06 - Add description of ruby-enum versioning problem and how to
-    fix it.
-  * 2017-02-13 - Move some comments here from ../../../README.md. Tweak
-    asciidoctor markup to more clearly delineate shell command blocks.
-  * 2017-02-10 - Add more Ruby installation guidelines and reflow the
-    document in accordance with the style guide.
-  * 2017-01-31 - Add rbenv instructions and update the README elsewhere.
-  * 2017-01-16 - Modified dependencies for Asciidoctor
-  * 2017-01-06 - Replace MathJax with KaTeX.
-  * 2016-08-25 - Update for the single-branch model.
-  * 2016-07-10 - Update for current state of spec and ref page generation.
-  * 2015-11-11 - Add new can: etc.
-    macros and DBLATEXPREFIX variable.
-  * 2015-09-21 - Convert document to asciidoc and rename to README.md in the
-    hope the gitlab browser will render it in some fashion.
-  * 2015-09-21 - Add descriptions of LaTeX and MathJax math support for all
-    output formats.
-  * 2015-09-02 - Added Cygwin package info.
-  * 2015-09-02 - Initial version documenting macros, required toolchain
-    components and versions, etc.
diff --git a/codegen/vulkan/CODE_OF_CONDUCT.adoc b/codegen/vulkan/CODE_OF_CONDUCT.adoc
deleted file mode 100644
index d8c2546..0000000
--- a/codegen/vulkan/CODE_OF_CONDUCT.adoc
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2018-2021 The Khronos Group Inc.
-// SPDX-License-Identifier: CC-BY-4.0
-
-= Code of Conduct
-
-A reminder that this issue tracker is managed by the Khronos Group.
-Interactions here should follow the
-https://www.khronos.org/developers/code-of-conduct[Khronos Code of Conduct],
-which prohibits aggressive or derogatory language. Please keep the
-discussion friendly and civil.
diff --git a/codegen/vulkan/CONTRIBUTING.adoc b/codegen/vulkan/CONTRIBUTING.adoc
deleted file mode 100644
index 9551984..0000000
--- a/codegen/vulkan/CONTRIBUTING.adoc
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2020-2021 The Khronos Group Inc.
-// SPDX-License-Identifier: CC-BY-4.0
-
-= Contributing
-
-Contributions to the Vulkan-Docs repository are welcome.
-
-Contributions may be in the form of Issues proposing a change, or Pull
-Requests containing fixes for, or additions to:
-
-  * Specification text and other documentation
-  * XML API Registry
-  * Specification scripting / build toolchains and related infrastructure
-
-Please keep contributions focused on solving a single issue or bug.
-
-== Copyright Notice and License Template
-
-If you are adding a new file, it must be under one of the following
-licenses:
-
-  * Creative Commons Attribution 4.0 International, for specification text
-    (for example, link:vkspec.txt[`vkspec.txt`])
-  * Apache 2.0, for all other changes (for example,
-    link:scripts/reg.py[`reg.py`])
-  * Apache 2.0 OR MIT, for source-like files that may need to used in GPL
-    projects (for example, link:xml/vk.xml[`vk.xml`])
-
-We use a short license in each file consisting of just the copyright
-statement and the SPDX license identifier of the license applying to that
-file, and link to the full license text from link:LICENSE.adoc.
-
-== Contributor License Agreement
-
-When you propose a pull request on Vulkan-Docs you must execute the Khronos
-Mixed Repository Contributor License Agreement, to confirm you own your work
-and are granting Khronos the necessary permissions to redistribute it under
-our licenses.
diff --git a/codegen/vulkan/COPYING.adoc b/codegen/vulkan/COPYING.adoc
deleted file mode 100644
index 8aafada..0000000
--- a/codegen/vulkan/COPYING.adoc
+++ /dev/null
@@ -1,91 +0,0 @@
-// Copyright 2020-2021 The Khronos Group Inc.
-// SPDX-License-Identifier: CC-BY-4.0
-
-= COPYING file for the KhronosGroup/Vulkan-Docs project
-
-== Licenses
-
-The Vulkan-Docs project uses several licenses.
-
-* The source files (in asciidoctor and other formats) for the Vulkan
-  Specification, reference pages, and supporting documentation are licensed
-  under the Creative Commons Attribution 4.0 International License (SPDX
-  license identifier "`CC-BY-4.0`").
-* Header files, scripts, programs, XML files, and other tooling used or
-  generated as part of the build process are typically licensed under the
-  Apache License, Version 2.0 (SPDX license identifier "`Apache-2.0`").
-* For compatibility with external developers working in GPLed projects who
-  have requested it, link:xml/vk.xml[`vk.xml`] is licensed under a dual
-  (SPDX license identifier "`Apache-2.0 OR MIT`" License).
-* Fonts derived from the M+ Font Project, found in
-  link:config/fonts/[`config/fonts/`] are licensed under the M+ Font License
-  (SPDX license identifier "`LicenseRef-MPLUS`"). This is an open source
-  license but is not OSI-approved, and is found at
-  https://osdn.net/softwaremap/trove_list.php?form_cat=370
-* Code which converts the single-file HTML specification to a chunked
-  HTML document, kept in
-  link:scripts/asciidoctor-chunker[`scripts/asciidoctor-chunker`], is
-  licensed under the MIT license. The home of the
-  link:https://github.com/wshito/asciidoctor-chunker[chunker project] is
-  found on github.
-* There are a few remaining files adopted from other open source projects,
-  such as a copy of the KaTeX distribution. Such files continue under their
-  original MIT licenses, or in a few cases, like
-  link:scripts/htmldiff/htmldiff[`scripts/htmldiff/htmldiff`], had no
-  license statement. We have not added SPDX license identifiers to such
-  externally originated files.
-* Some generated, transient files produced during the course of building the
-  specification, headers, or other targets may not have copyrights. These
-  are typically very short asciidoc fragments describing parts of the Vulkan
-  API, and are incorporated by reference into specification or reference
-  page builds.
-
-Users outside Khronos who create and post Vulkan Specifications, whether
-modified or not, should use the CC-BY-4.0 license on the *output* documents
-(HTML, PDF, etc.) they generate. This is the default when building the
-Specification.
-
-
-== Frequently Asked Questions
-
-Q: Why are the HTML and PDF Specifications posted on Khronos' website under
-a license which is neither CC-BY nor Apache-2.0?
-
-A: The Specifications posted by Khronos in the Vulkan Registry are licensed
-under the proprietary Khronos Specification License. Only these
-Specifications are Ratified by the Khronos Board of Promoters, and therefore
-they are the only Specifications covered by the Khronos Intellectual
-Property Rights Policy.
-
-
-Q: Does Khronos allow the creation and distribution of modified versions of
-the Vulkan Specification, such as translations to other languages?
-
-A: Yes. Such modified Specifications, since they are not created by Khronos,
-should be placed under the CC-BY license. If you believe your modifications
-are of general interest, consider contributing them back by making a pull
-request (PR) on the Vulkan-Docs project.
-
-
-Q: Can I contribute changes to the Vulkan Specification?
-
-A: Yes, by opening an Issue or Pull Request (PR) on the
-link:https://github.com/KhronosGroup/Vulkan-Docs/[Vulkan-Docs] Github
-project.
-You must execute a click-through Contributor License Agreement, which brings
-your changes under the umbrella of the Khronos IP policy.
-
-
-Q: Can you change the license on your files so they're compatible with my
-license?
-
-A: We are using a dual license license on `vk.xml`, to make it compatible
-with GPL-licensed projects such as externally-generated language bindings.
-This replaces an earlier Apache 2.0 + "Exception Clause" license on the file
-with a more standard methodology, and allows use of the SPDX license
-identifier "`Apache-2.0 OR MIT`" to denote the license.
-
-If you *require* GPL compatibility for use of other Apache-2.0 licensed
-files in our repository, please raise an issue identifying the files and we
-will consider changing those specific files to the dual license as well.
-
diff --git a/codegen/vulkan/ChangeLog.txt b/codegen/vulkan/ChangeLog.txt
deleted file mode 100644
index aecdfa0..0000000
--- a/codegen/vulkan/ChangeLog.txt
+++ /dev/null
@@ -1,9691 +0,0 @@
-Copyright 2016-2021 The Khronos Group Inc.
-SPDX-License-Identifier: CC-BY-4.0
-
-Update Log for the Vulkan-Docs repository on Github. Updates are in reverse
-chronological order starting with the latest public release.
-
-This summarizes the periodic public updates, not individual commits. Updates
-on Github are done as single large patches at the release point, collecting
-together the resolution of many Khronos internal issues, along with any
-public pull requests that have been accepted.
-
------------------------------------------------------
-
-Change log for November 9, 2021 Vulkan 1.2.198 spec update:
-
-  * Update release number to 198 for this update.
-
-Github Issues:
-
-  * Sort dependencies of "`Provided by`" comments in generated API includes,
-    and remove duplicates (public issue 1483, internal issue 2620).
-  * Remove max-width attribute from document headers, causing CSS to limit
-    page width in wide windows (public pull request 1660).
-
-Internal Issues:
-
-  * Filter out `VK_VERSION_1_x` pages when generating refpage sources for a
-    build that does not include the corresponding core version (internal
-    issue 1971).
-  * Adjust section header level for extension appendix refpages to match
-    other refpages (internal issue 2151).
-  * Add and fix protected memory valid usage statements to require queues be
-    protected if any batch if a protected batch, and restrict indirect
-    operations when pname:protectedNoFault is supported (internal issues
-    2169, 2841)
-  * Generate refpages to SPIR-V builtins, which were marked up in the spec
-    source but not being extracted and built (internal issue 2395).
-  * Clarify VUID 04918 regarding use of code:Location decorations (internal
-    issue 2737).
-  * Remove redundant nested VK_VERSION_1_1 conditional markup from the
-    <<initialization>> chapter (internal issue 2851).
-  * Add code:IdrPicFlag to code:StdVideoDecodeH264PictureInfoFlags for
-    provisional video extensions (internal issue 2901).
-  * Fix incorrect example code in apiext:VK_HUAWEI_subpass_shading appendix
-    sample code (internal merge request 4889).
-  * Promote ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT and
-    ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT in a few
-    places where the etext:KHR suffixes had not been removed (internal merge
-    request 4902).
-  * Add missing format properties consistency checks for
-    slink:VkDrmFormatModifierPropertiesList2EXT and
-    slink:VkAndroidHardwareBufferFormatProperties2ANDROID.
-  * Minor editorial markup fixes.
-
------------------------------------------------------
-
-Change log for November 2, 2021 Vulkan 1.2.197 spec update:
-
-  * Update release number to 197 for this update.
-
-Github Issues:
-
-  * Align some of the provisional video standard headers enums and bitfields
-    to have predictable sizes (public issue 1571).
-  * Remove exporting of D3D memory handles from
-    slink:VkExportMemoryWin32HandleInfoKHR (public pull request 1612).
-  * Add language to slink:VkAccelerationStructureBuildGeometryInfoKHR
-    explicitly stating that source and target acceleration structures are
-    allowed to be the same or different during an update (public issue
-    1641).
-  * Fix typos (public pull request 1662).
-  * Register remaining newly introduced `vk_video` types in `vk.xml` (public
-    pull request 1663).
-
-Internal Issues:
-
-  * Clarify <<resources-external-sharing, ownership transfers on external
-    resources>> (internal issue 2692).
-  * Changes to (nearly) eliminate dead internal links and improve scripts:
-  ** Correctly generate API dependencies on extensions and core versions in
-     cases where "`spelling aliases`" were present
-  ** Clean up a few incorrectly marked up links, anchors, and refpage block
-     alias= attributes
-  ** Use an API alias map to substitute promoted API names for promoted-to
-     APIs when an older or restricted spec is being generated and the
-     promoted-to API is not included
-  * Tag sname:VkVideo{Encode,Decode}H26{4,5}ProfileEXT structures as
-    extending slink:VkQueryPoolCreateInfo in `vk.xml` (internal issue 2861).
-  * Grammar edits to slink:VkAccelerationStructureKHR (internal issue 2887).
-  * Change the cited title of the <<LoaderInterfaceArchitecture>> document
-    to "`Architecture of the Vulkan Loader Interfaces`" matching a recent
-    change in https://github.com/KhronosGroup/Vulkan-Loader/pull/685
-    (internal merge request 4823).
-  * Re-remove etext:VkVideoEncodeH265CapabilityFlagBitsEXT, which was
-    accidentally reintroduced but is still unused (internal merge request
-    4885).
-  * Update wording for
-    ename:VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR since it no
-    longer contains `"update`" (internal merge request 4886).
-  * Consistency edits to remove "`instance of`" when referring to a specific
-    structure, and use "`render pass`" instead of "`renderpass`" as a noun
-    (internal merge request 4896).
-  * Add -version option to 'makeSpec' frontend build script.
-
-New Extensions
-
-  * `<<VK_KHR_dynamic_rendering>>`
-
------------------------------------------------------
-
-Change log for October 13, 2021 Vulkan 1.2.196 spec update:
-
-  * Update release number to 196 for this update.
-
-Github Issues:
-
-  * Clarify normative language for
-    ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT in
-    elink:VkImageUsageFlagBits, allowing two styles of implementation
-    (public issue 1616).
-  * Fix typo in flink:vkCmdSetScissor (public pull request 1659).
-  * Reorder attributes of elink:VkFormatFeatureFlags2KHR in `vk.xml` for
-    consistency (public pull request 1653).
-
-Internal Issues:
-
-  * More cleanup of internal broken links in various builds of the specs.
-    Fix typos on xrefs and anchors, add stub pages for missing Flags and
-    FlagBits types, update `spirvcapgenerator.py` to put anchors with the
-    same table row they belong to, validate `apiext:` macro targets at build
-    time, and don't generate API requirements for `<type>` tags with no
-    `category`, eliminating spurious warnings for external types (internal
-    issues 2864, 2866).
-  * Update `htmldiff` scripts for Python3.
-  * Add subsection titles and anchors in the <<fxvertex, Fixed-Function
-    Vertex Processing>> chapter to make thematic breaks more clear (internal
-    merge request 4867).
-
-New Extensions
-
-  * `<<VK_EXT_border_color_swizzle>>`
-  * `<<VK_EXT_video_encode_h265>>` *provisional* H.265 video encode codec extension
-
------------------------------------------------------
-
-Change log for October 5, 2021 Vulkan 1.2.195 spec update:
-
-  * Update release number to 195 for this update.
-
-Github Issues:
-
-  * Add a NOTE to flink:vkDestroyQueryPool clarifying when a query pool can
-    be destroyed (public issue 1647).
-
-Internal Issues:
-
-  * Begin cleanup of internal broken links in various builds of the specs,
-    including generating a Ruby API map to be used by the asciidoctor macros
-    to validate their API name arguments; using "nofollow" on github issue
-    opening links to avoid link-checkers being interpreted as DOS attacks;
-    improved checker scripts; minor markup fixes; and using the `apiext:`
-    macro to replace `<<VK_KHR_extension_name>>`-style extension links
-    everywhere (internal issue 2831).
-  * Minor editorial cleanups to descriptions of
-    `apiext:VK_FUCHSIA_buffer_collection` APIs (internal issue 2836).
-  * Match `Cull Mask` SPIR-V name to pname:mask parameter name in the
-    <<acceleration-structure, Acceleration Structures>> chapter (internal
-    merge request 4844).
-  * Add pname:minTexelOffset and pname:maxTexelOffset limit valid usage
-    statements for code:OpImageSample* and code:OpImageFetch* in the
-    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    section (internal merge request 4845).
-  * Add pname:maxFragmentDualSrcAttachments and
-    pname:maxFragmentCombinedOutputResources limit valid usage statements
-    for output and color attachments in the
-    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    section (internal merge request 4847).
-
-New Extensions
-
-  * `<<VK_KHR_format_feature_flags2>>`
-  * `<<VK_KHR_maintenance4>>`
-  * `<<VK_EXT_rgba10x6_formats>>`
-
------------------------------------------------------
-
-Change log for September 28, 2021 Vulkan 1.2.194 spec update:
-
-  * Update release number to 194 for this update.
-
-Github Issues:
-
-  * Add missing `len` attribute to
-    slink:VkCuModuleCreateInfoNVX::pname:pData (public merge request 1646).
-  * Refer to dynamic state consistently from ftext:vkCmdSet* commands, and
-    link to the definition of dynamic state (public issue 1428, but with
-    expanded scope beyond the actual ask in that issue).
-
-Internal Issues:
-
-  * Fix incorrect member name in slink:VkRenderPassCreateInfo valid usage
-    statement 02515 (internal issue 2824).
-  * Fix XML dependency for `<<VK_NV_device_generated_commands>>` (internal
-    issue 2818).
-  * Add packed formats from `<<VK_KHR_sampler_ycbcr_conversion>>`` to the
-    <<formats-packed, table of packed formats>> and improve description of
-    packed format naming conventions (internal merge request 4798).
-
-New Extensions
-
-  * `<<VK_FUCHSIA_buffer_collection>>`
-
------------------------------------------------------
-
-Change log for September 21, 2021 Vulkan 1.2.193 spec update:
-
-  * Update release number to 193 for this update.
-
-Github Issues:
-
-  * Use consistent `implicitexternsync` language in XML for
-    flink:vkDestroyDevice (public issue 1482).
-  * Clarify requirements of flink:vkGetInstanceProcAddr to match that of the
-    Android loader when attempting to retrieve a global function with a
-    non-NULL instance parameter (public issue 1605).
-  * Add new elink:VK_DRIVER_ID reservations for upcoming Mesa drivers
-    (public pull request 1642).
-
-Internal Issues:
-
-  * Fix flink:vkCmdEndDebugUtilsLabelEXT to clarify command buffer recording
-    interactions with debug labels (internal issue 2777).
-  * Improve NOTE for acceleration structure capture / replay in
-    slink:VkAccelerationStructureCreateInfoKHR (internal issue 2769).
-  * Add "`See Also`" crosslinks to extension refpages providing aliased APIs
-    in API refpages (internal issue 2819).
-  * Fix markup for core version (`VK_VERSION_1_0`, etc.) refpages -
-    asciidoctor doesn't allow section headers here and this affected the
-    specification appendix rendering (internal issue 2826).
-  * Use open range notation for slink:VkSamplerCreateInfo
-    ptext:addressMode[UVW] descriptions (internal issue 2829).
-  * Replace term "`channel`" with "`component`" when discussing formats, and
-    update glossary to help clarify formats such as
-    ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 and
-    ename:VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 (internal merge
-    request 4799).
-  * Fix some primitive_topology_list_restart VUIDs to only apply if
-    pname:primitiveRestartEnable is ename:VK_TRUE (internal merge request
-    4818).
-  * Fix slink:VkPhysicalDeviceShaderCorePropertiesAMD `limittype` attributes
-    in XML (internal merge request 4819).
-  * Fix accidentally duplicated VUIDs 06256 due to missing {accessMaskName}
-    in VUID markup (internal merge request 4829).
-  * Miscellaneous minor formatting and style fixes (internal merge requests
-    4832, 4838).
-
------------------------------------------------------
-
-Change log for September 14, 2021 Vulkan 1.2.192 spec update:
-
-  * Update release number to 192 for this update.
-
-Github Issues:
-
-  * Correctly describe slink:VkDeviceQueueInfo2::pname:pNext (public issue
-    1622).
-  * Improve behavior of contact links from extension metadata generator
-    (public merge request 1635).
-  * Require slink:VkDeviceAddress in 1.0 spec conditional markup, matching
-    XML (public issue 1636).
-
-Internal Issues:
-
-  * Turn <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    section into formal Valid Usage statements with assigned valid usage IDs
-    (internal issue 1598).
-  * Use `pass:[~~~~]` delimiters for `[source]` blocks inside reference page
-    `[open]` blocks to bypass logic problem with VUID assignment script
-    (internal issue 2040).
-  * Update style guide to incorporate Khronos Inclusive Language document by
-    reference. Followon changes will apply the suggestions as needed
-    (internal issue 2293).
-  * Add clarifications about ray tracing transform matrices to
-    slink:VkAccelerationStructureGeometryTrianglesDataKHR,
-    slink:VkAccelerationStructureBuildOffsetInfoKHR, and the
-    <<ray-intersection-candidate-determination, Ray Intersection Candidate
-    Determination>> section (internal issue 2709).
-  * Clarify descriptor requirements for code:Buffer and code:Subpassdata in
-    the <<interfaces-resources-correspondence, Shader Resource and
-    Descriptor Type Correspondence>> table (internal issue 2751).
-  * Add aliases for versioned extensions which don't treat the trailing
-    version number as a separate word, such as
-    ename:VK_KHR_MAINTENANCE1_SPEC_VERSION ->
-    ename:VK_KHR_MAINTENANCE_1_SPEC_VERSION, and add a CI test in
-    `scripts/xml_consistency.py` to try and detect future occurrences
-    (internal issue 2810).
-  * Add missing pname:sType and pname:pNext boilerplate descriptions to spec
-    language for several elink:*Features structures that were missing it
-    (though they did have them in the XML definition of the structures)
-    (internal issue 2815).
-  * Add extension and version crosslinks to generated reference pages,
-    expressing the same information in the `Provided by` comments in
-    generated API includes (internal issue 2816).
-  * Move the old "`Fragment Shader Execution`" section from the <<shaders>>
-    chapter to the <<fragops-shader, Fragment Shading>> section of the
-    <<fragops>> chapter, change anchor names accordingly, and factor out
-    common related language from several parts of the spec into this section
-    (internal merge request 4765).
-  * Allow access to the code:PrimitiveId builtin from shaders declared with
-    the code:MeshShadingNV capability (internal merge request 4767).
-  * Make the <<features-primitiveTopologyListRestart,
-    pname:primitiveTopologyListRestart>> feature mandatory for
-    `<<VK_EXT_primitive_topology_list_restart>>` (internal merge request
-    4790).
-  * Edit <<limits-types, Required Limit Types>> table to add Vulkan 1.2
-    interactions for pname:filterMinmaxSingleComponentFormats and
-    pname:filterMinmaxImageComponentMapping limits (internal merge request
-    4802).
-  * Add ename:VK_FORMAT_R10X6_UNORM_PACK16 and
-    ename:VK_FORMAT_R12X4_UNORM_PACK16 to the list of 16-bit packed formats,
-    and fix formatting of "`wildcard`" enums containing a placeholder _i_
-    tag corresponding to supported integers (internal merge request 4803).
-  * Refactor CI scripts to use the Makefile `allchecks` target as part of CI
-    instead of multiple separate steps, allowing a quick local check
-    equivalent to that part of CI, and update that target accordingly
-    (internal merge request 4807).
-  * Make slink:VkImageCreateInfo valid usage statement 01572 apply to all
-    compressed formats (internal merge request 4812).
-
-
------------------------------------------------------
-
-Change log for September 7, 2021 Vulkan 1.2.191 spec update:
-
-  * Update release number to 191 for this update.
-
-Internal Issues:
-
-  * Update checker scripts to detect extension number conflicts in `vk.xml`,
-    and run the check in CI (internal issue 2612).
-  * Minor cleanup for the provisional video extensions, including
-    documenting a few undocumented enums and structure members and some
-    language cleanup (internal issue 2705).
-  * Add a NOTE to flink:vkAllocateMemory.txt about protected memory
-    allocation count limits (internal issue 2791).
-  * Use "`cube map`" rather than "`cubemap`" spelling, and add this case to
-    the style guide (internal merge request 4794).
-
-New Extensions:
-
-  * `<<VK_EXT_pageable_device_local_memory>>`
-
------------------------------------------------------
-
-Change log for August 29, 2021 Vulkan 1.2.190 spec update:
-
-  * Update release number to 190 for this update.
-  * Released a few days in advance of the usual Tuesday spec updates due to
-    holiday meeting schedule.
-
-Github Issues:
-
-  * Make treatment of empty etext:Vk*FlagBits types consistent in `vk.xml`
-    (public issue 1601 and merge request 1609)
-
-Internal Issues:
-
-  * Add more descriptive language for transforms in the
-    <<ray-intersection-candidate-determination, Ray Intersection Candidate
-    Determination>> section (internal issue 2709).
-  * Update `-validate` logic in registry scripts to validate the `limittype`
-    attribute presence and values where required (internal issue 2606).
-  * Update common validity statements for access masks to allow shader
-    pipeline bits to be use with ename:VK_ACCELERATION_STRUCTURE_READ_BIT
-    (internal issue 2782).
-  * Fix typo in the description of code:CullDistancePerViewNV (internal
-    merge request 4769).
-  * Various fixes and simplifications for
-    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>> valid
-    usage statements:
-  ** Flatten markup for VK_KHR_shader_subgroup_extended_types valid usage
-     statements (internal issue 1598)
-  ** Flatten markup for VK_EXT_shader_atomic_float valid usage statements
-     (internal issue 1598).
-  ** Remove asciidoctor conditional check for
-     `VK_KHR_storage_buffer_storage_class`, not needed because the SPIR-V
-     specification is unified and `spirv-val` will throw an error if trying
-     to use code:StorageBuffer without the proper extension / version being
-     set (internal merge request 4779).
-
-New Extensions:
-
-  * `<<VK_KHR_shader_integer_dot_product>>`
-  * `<<VK_EXT_primitive_topology_list_restart>>`
-
------------------------------------------------------
-
-Change log for August 17, 2021 Vulkan 1.2.189 spec update:
-
-  * Update release number to 189 for this update.
-
-Github Issues:
-
-  * Add parent check valid usage statements to flink:vkUpdateDescriptors
-    (public issue 1581).
-  * Document the feature requirement for separate depth/stencil layouts in
-    the <<resources-image-layouts, Image Layouts>> section (public issue
-    1583).
-  * Revert a valid usage statement constraining
-    slink:VkMemoryAllocateInfo::pname:allocationSize (public issue 1595).
-  * Remove misleading reference to `z` from the description of image
-    coordinates for slink:VkSamplerCreateInfo::pname:unnormalizedCoordinates
-    (public issue 1602).
-  * Fix typo in <<fxvertex-input-extraction>> section (public pull request
-    1604).
-  * Fix comment in example for `<<VK_EXT_debug_utils>>` appendix to
-    correctly reference pname:objectHandle, not ptext:object (public pull
-    request 1606).
-  * Revert `vk_platform.h` path change in `vk.xml` from public pull request
-    1538, which was causing build issues for some projects. We will revisit
-    this in the future but did not want to put a problematic change into the
-    next SDK update (public pull request 1610).
-
-Internal Issues:
-
-  * Use `hexapdf` for PDF optimization, rather than Ghostscript. This
-    improves overall PDF generation time about 15-20%, and final PDF size by
-    about 1/3 (internal issue 2422).
-  * Improve contrast for better accessibility of HTML outputs, based on
-    feedback from the ANDI tool. This includes updating the specification
-    CSS in `config/khronos.css`, switching to the rouge source code
-    highlighter instead of coderay, and overriding some of the rouge theme
-    CSS (internal issue 2784).
-  * Clarify that transforms are consumed only if transformData is non-null
-    for slink:VkAccelerationStructureBuildRangeInfoKHR.txt (internal issue
-    2787).
-  * Make spec language describing bitmasks consistent as 'Bits which can: be
-    set' (internal merge request 4762).
-  * Support `optional` attribute in the valid usage statement generator for
-    union types (internal merge request 4772).
-
------------------------------------------------------
-
-Change log for August 10, 2021 Vulkan 1.2.188 spec update:
-
-  * Update release number to 188 for this update.
-
-Github Issues:
-
-  * Add missing `optional="true"` attributes to pname:pNext members. Enable
-    `scripts/xml_consistency.py` in CI, and add check for this case (public
-    pull request 1597).
-  * Add missing markup (setting `refpage` attributes where they were needed
-    for commonvalidity statements) to fix some broken valid usage ID link
-    names (public issue 1598).
-  * Update valid usage statement 02650 to use "`potential format features`"
-    consistently with other recent changes (discussion on public
-    Vulkan-ValidationLayers pull request 3139).
-
-Internal Issues:
-
-  * Clarify the role of <<ray-traversal-culling-face, face winding>> in the
-    context of ray intersection candidate determination and alias
-    ename:VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR to
-    ename:VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR, corresponding
-    to the clarifications (internal issue 2780).
-  * Add valid usage statement for flink:vkCmdBeginTransformFeedbackEXT
-    requiring a valid graphics pipeline be bound (internal issue 2785).
-  * Use the term <<acceleration-structure-def, "`constructed`">> to refer to
-    an acceleration structure that was previously built or created by
-    copying or deserialization of a built acceleration structure (internal
-    merge request 4727).
-  * Add explicit valid usage statements to flink:vkWaitForPresentKHR and
-    slink:VkPresentInfoKHR requiring the corresponding features be enabled
-    (internal merge request 4754).
-  * Remove extraneous trailing periods from some valid usage statements
-    (internal merge request 4759).
-
-New Extensions:
-
-  * `<<VK_EXT_load_store_op_none>>`
-
------------------------------------------------------
-
-Change log for August 3, 2021 Vulkan 1.2.187 spec update:
-
-  * Update release number to 187 for this update.
-
-Github Issues:
-
-  * Add glossary terms for "`pipeline ray tracing instructions`" and "`ray
-    tracing commands`" (public issue 1578).
-  * Limit the code:OpTypeImage code:Unknown format restriction to storage
-    images in the <<spirvenv-module-validation-runtime, Runtime SPIR-V
-    Validation>> section (public issue 1588).
-  * Fix slink:VkRect2D::pname:extent in a few places where it was
-    misreferenced as pname:offset (public pull request 1590).
-
-Internal Issues:
-
-  * Clarify that depth values outside the range [0,1] become undefined
-    following the depthClamp stage of the pipeline, by rearranging the
-    <<fragops-depth, Depth Test>> section and adding a new "`Depth Clamping
-    and Range Adjustment`" subsection (internal issues 2445, 2753).
-  * Clarify valid usage statement 01843 for slink:VkDeviceQueueInfo2 to
-    match similar statement for flink:vkGetDeviceQueue, and split off part
-    of it into a new VU statement (internal issue 2645).
-  * Fix a few enumerant and member names in the provisional video extensions
-    to comply with the spec style guidelinse (internal issue 2710).
-  * Update the descriptions of flink:vkCmdDrawMultiEXT and
-    flink:vkCmdDrawMultiIndexedEXT to clarify how they are equivalent to
-    calling underlying drawing commands multiple times with different
-    parameters (internal issue 2757).
-  * Renumber VUIDs which duplicated the numeric portion of another
-    non-common VUID, and add a duplicate number detection test to CI to
-    prevent recurrences (internal issue 2764).
-  * Make code:SubgroupSize command scope uniform in compute dispatches
-    (internal issue 2773).
-  * Expand the list of valid image layouts for
-    <<attachment-type-imagelayout, input attachments>>,
-    <<descriptorsets-sampleimage, sampled images>>, and
-    <<descriptorsets-combinedimagesampler, combined image samplers>> to
-    include DEPTH_READ_ONLY_OPTIMAL and STENCIL_READ_ONLY_OPTIMAL (internal
-    issue 2774).
-  * Remove `flowRoot` SVG elements from a few recent image updates, as they
-    are not supported by the current PDF toolchain (internal issue 2778).
-  * Update to asciidoctor-chunker 1.0.4, adding support for `aria-label`
-    accessibility tags on the chunked specification forward/back section
-    navigation arrows (internal issue 2784).
-  * Clean up description of flink:vkCmdClearAttachments and remove redundant
-    information (internal merge request 4717).
-  * Add a description of each of the
-    flink:vkCmdWriteAccelerationStructuresPropertiesKHR::pname:queryPool
-    query types (internal merge request 4728).
-  * Add new valid usage statement to slink:VkMemoryAllocateInfo when
-    allocating a memory object larger than the reported limit (internal
-    merge request 4737).
-  * Add missing description of pname:layerCount member of
-    slink:VkFramebufferAttachmentImageInfo (internal merge request 4744).
-
-
------------------------------------------------------
-
-Change log for July 27, 2021 Vulkan 1.2.186 spec update:
-
-  * Update release number to 186 for this update.
-
-Github Issues:
-
-  * Reduce size and increase clarity of some SVG images for the provisional
-    video extensions (public issue 1537).
-  * Use a consistent description of pname:stride as "`byte stride`" rather
-    than "`distance in bytes`" in a few places (public issue 1575)
-  * Clarify the equivalence of flink:vkQueueWaitIdle to
-    fence submission (public issue 1579).
-  * Fix XML capabilities for new code:*Float*Atomic* SPIR-V capabilities to
-    require slink:VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT rather than
-    slink:VkPhysicalDeviceShaderAtomicFloatFeaturesEXT (public pull request
-    1587, although fixed internally first).
-
-Internal Issues:
-
-  * Refactor asciidoctor conditionals imbedded within valid usage statements
-    so they are extracted properly to `validusage.json`, and add a CI check
-    to prevent this happening in the future (internal issues 1529, 2439).
-  * Clarify that dynamic vertex buffer object stride of 0 is allowed in
-    valid usage statement for flink:vkCmdBindVertexBuffers2EXT
-    (internal issue 2742)
-  * Add valid usage statement to
-    ftext:vkGetPhysicalDeviceSurfaceCapabilities{KHR,2EXT,2KHR},
-    ftext:vkGetPhysicalDeviceSurfacePresentModes{KHR,2EXT}, and
-    ftext:vkGetDeviceGroupSurfacePresentModes{KHR,2EXT} requiring surface /
-    device compatibility (internal issue 2744).
-  * Clarify the requirements on code:OpTypeImage for input attachments in
-    the <<spirvenv-module-validation, Validation Rules within a Module>> and
-    <<interfaces-inputattachment, Fragment Input Attachment Interface>>
-    sections (internal issue 2752)
-  * Clarify that stipple parameters are ignored when line stipple is
-    disabled in slink:VkPipelineRasterizationLineStateCreateInfoEXT
-    (internal issue 2763)
-  * Improve wording for the shader interface code:Location limit in the
-    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    section (internal merge request 4693)
-
------------------------------------------------------
-
-Change log for July 20, 2021 Vulkan 1.2.185 spec update:
-
-  * Update release number to 185 for this update.
-  * Going forward we will probably be moving the default day for spec
-    updates to Tuesday (Pacific time) rather than Monday.
-
-Github Issues:
-
-  * Clarify that only *device* extensions are required to be specified in
-    valid usage statement for flink:vkCreateDevice (public issue 1567).
-  * Fix extension dependencies for `<<VK_EXT_calibrated_timestamps>>` to
-    include `<<VK_KHR_get_physical_device_properties2>>` (public issue
-    1568).
-  * Conditionalize xref to VkPhysicalDeviceSubgroupProperties in
-    `<<VK_KHR_spirv_1_4>>` appendix so it does not show up in a 1.0 spec
-    build (public issue 1574).
-  * Relax portability usage of the identity swizzle in
-    slink:VkImageViewCreateInfo valid usage statement 04465 (public
-    KhronosGroup/Vulkan-Portability issue 27).
-
-Internal Issues:
-
-  * Document in the <<extendingvulkan-extensions-extensiondependencies,
-    Extension Dependencies>> section that instance extensions do not have
-    dependencies on device extensions, and add a similar requirement to the
-    description of the `requires` attribute of extension tags in the
-    registry schema document (internal issue 2387).
-  * Fix `optional` attribute in XML for
-    flink:vkCmdBindVertexBuffers2EXT::pname:pBuffers (internal issue 2574).
-  * Remove redundant valid usage statements from flink:vkCmdPipelineBarrier,
-    flink:vkCmdSetEvent, and flink:vkCmdResetEvent. Add missing VUs for
-    slink:VkSubpassDependency and slink:VkSubpassDependency2 (internal issue
-    2583).
-  * Clarify that
-    ename:VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
-    must be supported in pname:bufferFeatures (internal issue 2686).
-  * Clarify that a valid function pointer pname:fp returned from
-    flink:vkGetInstanceProcAddr must not be `NULL` (internal issue 2720).
-  * Relax code:Flat, code:NoPerspective, code:Sample, and code:Centroid
-    storage class restriction in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section (internal issue 2721).
-  * Clarify forward progress behavior of flink:vkAcquireNextImageKHR and
-    flink:vkQueuePresentKHR (internal issue 2729).
-  * Remove duplicated language describing queue submission in the
-    <<fundamentals-execmodel, Execution Model>> and
-    <<fundamentals-queueoperation, Queue Operation>> sections (internal
-    issue 2736).
-  * Describe the new pipeline stage
-    ename:VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI in several sections
-    of the <<synchronization>> chapter where it was missing (internal issue
-    2745).
-  * Improve formatting in the <<limits>> chapter, add support for the
-    missing optionally: normative word macro, and replace most use of
-    (non-normative) "`optionally`" with normative "`can:`". Update style
-    guide to add more contractions and remove contractions from the spec.
-    add a better description of the pname:shaderDrawParameters feature
-    (internal merge requests 4699, 4708).
-  * Fix name of parameter
-    flink:vkGetMemoryRemoteAddressNV::pname:pMemoryGetRemoteAddressInfo to
-    follow Vulkan conventions (internal merge request 4704).
-  * Minor fixes for the <<resources-image-views-compatibility, image view
-    compatibility table>> and related minor spec language fixes elsewhere
-    (internal merge request 4709).
-
-New Extensions:
-
-  * `<<VK_EXT_shader_atomic_float2>>`
-  * `<<VK_HUAWEI_invocation_mask>>`
-  * `<<VK_KHR_present_id>>`
-  * `<<VK_KHR_present_wait>>`
-
-Miscellany:
-
-  * Happy Lunar Landing Day!
-
------------------------------------------------------
-
-Change log for July 5, 2021 Vulkan 1.2.184 spec update:
-
-  * Update release number to 184 for this update.
-
-Github Issues:
-
-  * Make description of
-    slink:VkSparseImageMemoryRequirements::pname:formatProperties.imageGranularity
-    consistent by replacing the nested structure descriptions with a simple
-    description of pname:formatProperties (public issue 1444).
-  * Update `<<VK_HUAWEI_subpass_shading>>` extension to rename
-    flink:vkGetSubpassShadingMaxWorkgroupSizeHUAWEI to
-    flink:vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI and give it a
-    dispatchable slink:VkDevice parameter (public issue 1564).
-  * Fix labelling of "`Resource`" reference block in pipeline block
-    diagrams (public issue 1582).
-
-Internal Issues:
-
-  * Replace the old <<resources-image-views-compatibility>> table with a
-    simplified image type / image view type compatibility table, and move
-    the parameter compatibility portions of the table into explicit valid
-    usage statements (internal issue 2586).
-  * Define the slink:VkPipelinCacheHeaderVersionOne structure in `vk.xml`
-    instead of the previous "`Layout for pipeline cache header version one`"
-    table (internal merge request 4011).
-  * Make the `requires` attribute of the `spirvcapability` XML tag required
-    when specifying a structure, even if what's required is
-    `"VK_VERSION_1_0"`, to address a problem in the generated table from
-    these tags (internal merge request 4689).
-
-New Extensions:
-
-  * `<<VK_NV_extermal_memory_rdma>>`
-
------------------------------------------------------
-
-Change log for June 28, 2021 Vulkan 1.2.183 spec update:
-
-  * Update release number to 183 for this update.
-
-Github Issues:
-
-  * Rewrite and simplify the <<interfaces-iointerfaces-matching, Interface
-    Matching>> section. Clarify that results are undefined if the size of a
-    vector mismatches (public issue 666; internal issues 1269, 2059, 2323).
-  * Remove inappropriate `const` from `void *pNext` members of
-    `returnedonly` structures in `vk.xml` (public issue 1482, internal issue
-    2644).
-  * Add a NOTE to the <<interfaces, Shader Interfaces>> chapter that SPIR-V
-    execution model keywords with extension suffixes will always be present
-    in spec builds, even in a build not supporting any extensions, since
-    these keywords appear in the unified SPIR-V specification without such
-    qualifiers (public issue 1483, internal issue 2621).
-  * Modify `vk.xml` to include the Vulkan platform header via the path
-    `vulkan/vk_platform.h` rather than just `vk_platform.h`
-    (public pull request 1538).
-  * Add length annotations for slink:VkCuLaunchInfoNVX (public issue 1548).
-  * Describe slink:VkSubpassDescription::pname:pDepthStencilAttachment
-    correctly as a pointer to a structure, not a pointer to an array of
-    structures (public issue 1561).
-  * Fix `structextends` attribute of
-    slink:VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, declare its
-    pname:pNext member correctly, and fix some typos in the related
-    extension language (public issue 1565, internal issue 2724).
-
-Internal Issues:
-
-  * Add explicit valid usage statements for
-    flink:vkCmdClearColorImage::slink:VkClearColorValue and
-    slink:VkRenderPassBeginInfo::slink:VkClearValue (internal issue 2490).
-  * Change the term "`vertex processing {shader} stage`" to
-    "`pre-rasterization shader stage`" throughout the specification, link to
-    a single definition, and add "`pre-rasterization`" to the glossary
-    (internal issue 2634).
-  * Add an `<implicitexternsync>` constraint for
-    flink:vkResetCommandBuffers::pname:pool (internal issue 2646).
-  * Fix typo `vkCmdResetEvent` -> `vkResetEvent` in flink:vkResetEvent valid
-    usage statements (internal issue 2651).
-  * Fix wording of scope dependencies for slink:VkMemoryBarrier2KHR,
-    slink:VkBufferMemoryBarrier2KHR, and slink:VkImageMemoryBarrier2KHR
-    members pname:srcAccessMask and pname:dstAccessMask (internal issue
-    2654).
-  * Require support for pname:shaderInt64 in the <<features-requirements,
-    Feature Requirements>> section when pname:atomicInt64 features are
-    supported (internal issue 2660).
-  * Clarify ray tracing valid usage statements for cases where a parameter
-    refers to an acceleration structure that must have been built (internal
-    issue 2715).
-  * Add a NOTE clarifying shader record buffer uniformity in the
-    <<shader-binding-table, Shader Binding Table>> section (internal issue
-    2719).
-  * Minor clarifications and typo fixes to `<<VK_HUAWEI_subpass_shading>>`
-    (internal issue 2722).
-  * Add missing <spirvextension> entry in `vk.xml` to enable
-    `SPV_KHR_subgroup_uniform_control_flow`
-    (internal issue 2733).
-  * Move SPIR-V valid usage statement from the
-    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    section to <<spirvenv-module-validation-standalone]] Standalone SPIR-V
-    Validation>> (internal merge request 4637).
-  * Add a new <<spirvenv-image-signedness, Signedness of SPIR-V Image
-    Accesses>> section to allow the use of unsigned Sampled Types with
-    code:SignExtend and signed code:Format decorations (internal merge
-    request 4638).
-  * Add missing slink:VkDeviceCreateInfo to `structextends` attribute of
-    slink:VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT (internal merge
-    request 4652).
-  * Remove nonexistent pname:minFragmentSize from the <<limits-minmax, Limit
-    Requirements>> table (internal merge request 4655).
-  * Fix markup typo for `<<VK_NV_fragment_shader_barycentric>>` ifdef
-    (internal merge request 4663).
-
------------------------------------------------------
-
-Change log for June 21, 2021 Vulkan 1.2.182 spec update:
-
-  * Update release number to 182 for this update.
-
-Github Issues:
-
-  * Add XML attributes & schema updates to link untyped Vulkan object handle
-    values to corresponding object types (public issue 1536).
-
-Internal Issues:
-
-  * Automatically generate links to extension proposal documents from
-    extension appendices (internal issue 2713).
-  * Clean up wording of flink:vkCmdWriteTimestamp and
-    flink:vkCmdWriteTimestamp2KHR (internal issue 2425).
-  * Fix hpp-compile CI stage after recent changes to Vulkan-Headers
-    repository which generate additional header files.
-
-New Extensions:
-
-  * `<<VK_EXT_acquire_drm_display>>` (public pull request 1529).
-  * `<<VK_EXT_multi_draw>>`
-  * `<<VK_EXT_physical_device_drm>>` (public pull request 1356).
-  * `<<VK_HUAWEI_subpass_shading>>`
-  * `<<VK_NV_ray_tracing_motion_blur>>`
-
------------------------------------------------------
-
-Change log for June 14, 2021 Vulkan 1.2.181 spec update:
-
-  * Update release number to 181 for this update.
-
-Github Issues:
-
-  * Add stub slink:VkPipelineLayoutCreateFlagBits <enum> type in `vk.xml` to
-    reduce spurious warnings from XML processing scripts that don't respect
-    the `supported="disabled"` attribute, and update the registry schema
-    documentation to make more clear that `extension` tags with this
-    attribute should not be processed (public issue 1549).
-
-Internal Issues:
-
-  * Clarify implicit conversions between the vertex input attribute
-    description format and the shader vertex attribute input type in the
-    <<fxvertex-attrib-location, Attribute Location and Component
-    Assignment>> and <<fxvertex-input-extraction>> sections (internal issue
-    902).
-  * Add text about the <<interfaces-alignment-requirements, base alignment
-    of empty structures>> (internal issue 2174).
-  * Clarify the use of rasterization order <<primsrast-order,
-    "`operations`">> (internal merge request 4582).
-  * Allow any pipeline barrier command for queue transfers in the
-    <<synchronization-queue-transfers, Queue Family Ownership Transfer>>
-    section (internal merge request 4596).
-  * Remove potentially confusing reference to
-    ename:VK_ERROR_INVALID_SHADER_NV in the description of
-    flink:vkCreateShaderModule (internal merge request 4602).
-  * Improve visibility of instance creation callbacks by migrating some
-    language from the `<<VK_EXT_debug_report>>` and `<<VK_EXT_debug_utils>>`
-    appendix examples to the description of slink:VkInstanceCreateInfo
-    (internal merge request 4614).
-  * Fix markup for sparse image atomic requirements in the
-    <<features-requirements, Feature Requirements>> section and for
-    slink:VkDeviceCreateInfo valid usage statements (internal merge request
-    4618).
-  * Correct the definition of
-    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
-    to constrain pname:chromaFilter, not pname:minFilter / pname:magFilter
-    (internal merge request 4623).
-  * Add level 3 headings in <<pipelines-cache, Pipeline Cache>> section
-    (internal merge request 4627).
-  * Clarify flink:vkCmdCopyAccelerationStructureKHR to add details on the
-    copy command itself, as well as the etext:CLONE and etext:COMPACT copy
-    modes (internal merge request 4631).
-  * Remove `<mask>` tags from some SVG images in the provisional video
-    extensions. These tags are not supported by components of the PDF
-    toolchain. Removing them removes many warnings from the PDF build and is
-    a workaround for editing the SVGs to use alternate constructs for the
-    intended purpose, although it also make these images in the HTML output
-    show the same artifacts as the PDF output.
-
------------------------------------------------------
-
-Change log for June 7, 2021 Vulkan 1.2.180 spec update:
-
-  * Update release number to 180 for this update.
-
-Github Issues:
-
-  * Add more details about zero shader group handles and draw linkage to
-    etext:VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL* flags (public issue 1487).
-  * Clarify that semaphore operations don't do work in a specific pipeline
-    stage in slink:VkSemaphoreSubmitInfoKHR::pname:stageMask (public issue
-    1501).
-  * Fix markup in shared valid usage statements 03766 / 03767 (public issue
-    1528).
-
-Internal Issues:
-
-  * Grammatical improvements for various ray tracing sections. Add statement
-    that AABB intersections may be false-positives (internal issue 2597).
-  * Disambiguate ASTC HDR block error handling in
-    <<appendix-compressedtex-astc, ASTC Compressed Image Formats>> and the
-    following "`ASTC decode mode`" section (internal issue 2603).
-  * Fix some holes in `<<VK_EXT_vertex_input_dynamic_state>>`, including
-    adding some missing common draw validity statements; an interaction
-    with VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT; an interaction
-    with code:nullDescriptor to flink:vkCmdBindVertexBuffers2EXT; and
-    language to
-    slink:VkGraphicsPipelineCreateInfo::pname:pVertexInputState (internal
-    issue 2637, 2684).
-  * Make elink:VkAccessFlagBits and elink:VkAccessFlagBits2KHR descriptions
-    consistent and reorganize them in matching order (internal issue 2650).
-  * Add slink:VkSpecializationInfo::pname:pMapEntries valid usage
-    statement requiring the pname:constantID values be unique (internal
-    issue 2668).
-  * Clarify <<[[queries-wait-bit-not-set, the cases in which
-    flink:vkGetQueryPoolResults returns VK_NOT_READY>> (internal issue
-    2676).
-  * Add spec language and refpages for API constants. With this change all
-    APIs should be defined in the spec (internal issue 2698).
-  * Move some restrictions in the <<interfaces, Shader Interfaces>> chapter
-    into the <<spirvenv-module-validation-standalone, Standalone SPIR-V
-    Validation>> section (internal merge request 4537).
-  * Add missing member descriptions to slink:VkSurfaceCapabilities2EXT
-    (internal merge request 4544).
-  * Update glossary definition of "`Aspect`" to accomodate copy commands
-    which can operate on multiple aspects (internal merge request 4586).
-  * Add ename:VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHING_EXT
-    enum to provide a standard way to disable caching of shader validation
-    results (internal merge request 4589).
-  * Remove the `pipeline` attribute from `vk.xml`, and the corresponding
-    "`Pipeline Types`" column from the generated command properties tables.
-    The `queues` attribute should be used instead (internal merge request
-    4594).
-  * Fix typos and improve consistency in the provisional video extension
-    language (internal merge request 4598).
-  * Use "`implementation-dependent`" spelling consistently, and update the
-    style guide to match (internal merge request 4611).
-  * Update <<ray-intersection-candidate-determination, ray tracing
-    intersection equation>> for triangles to match other API. This cannot be
-    distinguished in practice (internal vk-gl-cts issue 2846).
-
-New Extensions:
-
-  * `<<VK_KHR_shader_subgroup_uniform_control_flow>>`
-  * `<<VK_EXT_global_priority_query>>`
-
------------------------------------------------------
-
-Change log for May 24, 2021 Vulkan 1.2.179 spec update:
-
-  * Update release number to 179 for this update.
-
-Github Issues:
-
-  * Require that the queried
-    slink:VkPhysicalDeviceExternalMemoryHostPropertiesEXT::pname:minImportedHostPointerAlignment
-    is a power of two (public issue 1442).
-  * Fix direction of enum aliasing for fragment shading rate extensions,
-    so NV tokens don't show up in a KHR-only specification build
-    (public issue 1482).
-  * Split the new <<fundamentals-validusage, Valid Usage>> section off from
-    its previous location within the <<fundamentals-errors, Errors>> section
-    (public pull request 1503).
-  * Correct some typos in stage parameter names (public pull request 1507).
-  * Fix minor markup issues (public pull request 1508).
-  * Add missiong `optional` attribute to
-    flink:vkGetPhysicalDeviceVideoFormatPropertiesKHR::pname:pVideoFormatPropertyCount
-    in `vk.xml` (public pull request 1514).
-  * Add additional header dependecies for external code:Std* types in the
-    provisional video extensions (public pull request 1515).
-  * Tagged slink:VkCuModuleCreateInfoNVX::pname:pName as
-    `len="null-terminated"` in `vk.xml` (public issue 1526).
-  * Fix `:anchor-prefix:` markup showing up in spec outputs due to
-    overzealous whitespace removal (public issue 1530).
-  * Protect use of `__cplusplus` macro in a preprocessor test in the headers
-    (public Vulkan-Headers issue 4).
-
-Internal Issues:
-
-  * Rephrase the language describing lifetime of EDID query results for
-    slink:VkDisplayPropertiesKHR to be more precise (internal issue 695).
-  * Clarify descriptor pool size aggregation behavior for
-    slink:VkDescriptorPoolCreateInfo.txt (internal issue 2577).
-  * Make valid usage statements for slink:VkImportMemoryFdInfoKHR and
-    slink:VkMemoryGetFdInfoKHR properly enforce the relationship between
-    pname:fd and pname:handleType (internal issue 2607).
-  * Add missing common, non-indirect shared valid usage statements for
-    flink:vkCmdDispatchBase (internal issue 2625).
-  * Call out precision of pname:subPixelPrecisionBits clearly in the
-    <<vertexpostproc-viewport, Controlling the Viewport>> section (internal
-    issue 2635)
-  * Do not allow code:RayPayloadKHR on any-hit shaders in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section (internal issue 2640).
-  * Simplify specification language for sname:VkMemoryDedicatedRequirements
-    (internal issue 2661).
-  * Remove `optional="true"` attributes from XML for
-    slink:VkSurfaceCapabilities* members pname:supportedTransforms,
-    pname:supportedCompositeAlpha, and pname:supportedUsageFlags, matching
-    descriptions in the specification (internal issue 2666).
-  * Add a concurrent deferred host operation example to the
-    `<<VK_KHR_deferred_host_operations>>` appendix (internal issue 2677).
-  * Add a NOTE to slink:VkAccelerationStructureCompatibilityKHR encouraging
-    host-cachable memory for host acceleration structure builds (internal
-    issue 2682).
-  * Remove redundant language in basetype:VkSampleMask duplicating valid
-    usage statements for slink:VkGraphicsPipelineCreateInfo (internal issue
-    2624).
-  * Allow `<<VK_EXT_shader_image_atomic_int64>>` to enable the
-    code:shaderImageInt64Atomics SPIR-V feature in `vk.xml` (internal SPIR-V
-    issue 644).
-  * Add valid usage statement to fname:vkCmdWriteTimestamp* for the
-    pname:query index in pname:queryPool (internal merge request 4528).
-  * Add valid usage statements to flink:vkQueueSubmit2KHR for pname:fence
-    (internal merge request 4530).
-  * Add *GlCompute* to the disallowed *Output* storage classes in shared valid
-    usage statement 04644 for ray tracing functionality (internal merge
-    request 4532).
-  * Remove redundant code:Patch decoration shared valid usage statement 04671
-    (internal merge request 4530).
-  * Make the code:sparseImage*Atomics features a superset of the corresponding
-    code:shaderImage*Atomics features, in the slink:VkDeviceCreateInfo valid
-    usage statements and the <<features-requirements, Feature Requirements>>
-    section (internal merge request 4561).
-  * Add `specialuse="glemulation,d3demulation"` attribute to XML for
-    `<<VK_EXT_custom_border_color>>` (internal merge request 4564).
-  * Make array count and pointer-to-array parameter / member descriptions
-    more consistent (internal merge request 4566).
-  * Add third-level section headings to the <<memory-device, Device Memory>>
-    section for clarity (internal merge request 4567).
-  * Use the terminology "`drawing/dispatching command`" consistently, add it
-    to the style guide, and remove occasional use of "`record`" or "`perform`"
-    in refpage summaries of ftext:vkCmd* (internal merge request 4569).
-  * Use asciidoctor attributes to genericize more instances of header file
-    names, to enable future variant APIs (internal merge request 4581).
-  * Fix SVG for some images that render incorrectly in Chrome on MacOS
-    (internal merge request 4583).
-  * Move some valid usage statements for
-    `<<VK_QCOM_render_pass_shader_resolve>>` into
-    slink:VkGraphicsPipelineCreateInfo, slink:VkRenderPassCreateInfo2, and
-    the <<spirvenv-module-validation-standalone, Standalone SPIR-V
-    Validation>> section (internal merge request 4584).
-
------------------------------------------------------
-
-Change log for May 10, 2021 Vulkan 1.2.178 spec update:
-
-  * Update release number to 178 for this update.
-
-Github Issues:
-
-  * Add `optional` attribute to pname:pFragmentShadingRateAttachment member
-    of slink:VkFragmentShadingRateAttachmentInfoKHR, to match specification
-    text (public issue 1482).
-  * Lots of minor markup and phrasing fixes (public issue 1482).
-  * Additional fixes specific to ray tracing extensions, including a few
-    duplicate valid usage statements, incorrect descriptions of structure
-    members, and incorrect SPIR-V opcodes (public issue 1483).
-  * Fix formatting around "`Special Use`" sections in generated refpages
-    (public issue 1518).
-
-Internal Issues:
-
-  * Language cleanup including removing contractions, and some wording in
-    more egregious violation of the style guide.
-  * Make parameter handling text in the
-    <<deferred-host-operations-requesting, Requesting Deferral>> section
-    consistent with the <<fundamentals>> chapter (internal issue 2018).
-  * Relax slink:VkCopyDescriptorSet valid usage statements to remove some
-    constraints on copying descriptors from sets residing in host memory
-    other kinds of sets (internal issue 2610).
-  * Clarify the definition of "`intersection`" in the
-    <<ray-intersection-candidate-determination, Ray Intersection Candidate
-    Determination>> section (internal issue 2623).
-  * Allow pname:stride to equal buffer size in
-    slink:VkStridedDeviceAddressRegionKHR (internal issue 2631).
-  * Fix the ray tracing shader interface table in the
-    <<interfaces-raypipeline, Ray Tracing Pipeline Interface>> section
-    (internal issue 2640).
-  * Try to use consistently-phrased descriptions of etext:*FlagBits* members
-    and parameters everywhere (internal issue 2656).
-  * Replace "`optional pointer`" terminology with "`NULL or a pointer`" (and
-    similar uses), and update the style guide accordingly (internal issue
-    2662).
-  * Modify wording of some pipeline creation valid usage statements to tidy
-    up cases where certain state isn't required (internal merge request
-    4496).
-  * Clarify consistent <<descriptorsets-updates-consecutive, consecutive
-    binding updates>> (internal merge request 4500).
-  * Clarify that code:scalarBlockLayout is supported on the
-    code:ShaderRecordBufferKHR storage class in the
-    <<interfaces-resources-standard-layout, Standard Buffer Layout>> section
-    (internal merge request 4525).
-  * Hide boilerplate Features and Properties text where it incorrectly
-    appeared outside the descriptions of feature and property structures,
-    respectively (internal merge request 4541).
-  * Add missing section headers to the
-    `<<VK_KHR_zero_initialize_workgroup_memory>> appendix (internal merge
-    request 4553).
-  * Add missing `R64ui` and `R64i` entries to the SPIR-V
-    <<spirvenv-format-type-matching tables, image format matching tables>>
-    for `<<VK_EXT_shader_image_atomic_int64>>` (internal
-    Tracker/vk-gl-cts#2885).
-
-New Extensions:
-
-  * `<<VK_NVX_binary_import>>` (only appendix and XML - no spec language
-    yet).
-
------------------------------------------------------
-
-Change log for April 26, 2021 Vulkan 1.2.177 spec update:
-
-  * Update release number to 177 for this update.
-
-Github Issues:
-
-  * Add valid usage statement to flink:vkDestroyImage to prevent destruction
-    of presentable images acquired from flink:vkGetSwapchainImagesKHR
-    (public Vulkan-ValidationLayers issue 2718).
-
-Internal Issues:
-
-  * Add proposal template for new feature development (internal issue 2529).
-  * Remove valid usage statement 03361 from flink:vkCmdBindVertexBuffers2EXT
-    (internal issue 2600).
-  * Finish fixing refpage formatting issues for the new video extensions
-    (internal issue 2611).
-  * Invert direction of ray space matrix to correct the
-    <<ray-intersection-candidate-determination, ray/triangle sidedness
-    test>> (internal merge request 4480).
-  * Fix capitalization of etext:*_EXTENSION_NAME and etext:*_SPEC_VERSION
-    tokens for `<<VK_QCOM_render_pass_store_ops>>` (internal merge request
-    4490).
-  * Don't generate etext:*_MAX_ENUM tokens for 64-bit flag types. Note that
-    these tokens are *explicitly* not part of the Vulkan API and are not
-    included in the Specification, only in generated headers. They are added
-    to enumerated types to ensure padding to 32 bits, but are completely
-    pointless for the 64-bit flag types, which are defined as integer
-    constants rather than enumerants (internal merge request 4493).
-  * Remove empty VK_ENABLE_BETA_EXTENSION guards from headers when disabling
-    extensions (internal merge request 4498).
-  * Reproduce valid usage statement constraining pname:query from
-    flink:vkCmdBeginQuery to
-    flink:vkCmdWriteAccelerationStructuresPropertiesKHR (internal merge
-    request 4520).
-
-New Extensions:
-
-  * `<<VK_EXT_provoking_vertex>>`
-
------------------------------------------------------
-
-Change log for April 19, 2021 Vulkan 1.2.176 spec update:
-
-  * Update release number to 176 for this update.
-
-Github Issues:
-
-  * Fix many typos (based on public issues 1483 & 1484).
-  * Fix an error in the definition of dname:VK_NULL_HANDLE which caused a
-    compilation error with one version of MSVC (public issue 1502).
-  * Remove duplicate requirement for elink:VkStructureType from
-    dname:VK_VERSION_1_0 block of `vk.xml` (public merge request 1504).
-
-Internal Issues:
-
-  * Modify extension metadoc generator to include Contact information in
-    extension reference pages (internal issue 2611).
-  * Fix XML consistency checker script to add exceptions to naming patterns
-    for new extensions (internal merge request 4491).
-  * Clean up latest revision numbers in some video extension appendices to
-    be integers, for compatibility with the consistency checker script
-    (internal merge request 4492).
-  * Mark slink:VkIndirectCommandsLayoutCreateInfoNV pname:flags member as
-    `optional` in `vk.xml` (internal merge request 4501).
-
-New Extensions:
-
-  * `<<VK_EXT_extended_dynamic_state2>>`
-
------------------------------------------------------
-
-Change log for April 13, 2021 Vulkan 1.2.175 spec update:
-
-  * Update release number to 175 for this update.
-
-Github Issues:
-
-  * Specify that fragment shader invocations in the same quad scope are also
-    in the same primitive scope (public issue 1465).
-  * Fix an incorrect reference to ename:VK_SHARING_MODE_CONCURRENT to the
-    correct ename:VK_SHARING_MODE_EXCLUSIVE in the queue transfer wording
-    for slink:VkBufferMemoryBarrier2KHR (public issue 1479).
-  * Fix description of <<vertexpostproc-clipping, Primitive Clipping>>
-    (public issues 1480 and 1481).
-
-Internal Issues:
-
-  * Use consistent language in describing <<features, feature>> and
-    <<limits, property (limit)>> queries. In particular, a few structures
-    were described as being usable to query feature support, but not to set
-    it. This was incorrect. All feature structures which can appear in the
-    pname:pNext chain of slink:VkPhysicalDeviceFeatures2 can be used to both
-    query and set (internal issue 2310).
-  * Add `limittype` attributes to the XML schema and to `vk.xml` for
-    structure members which are part of physical device property queries, to
-    annotate how the resulting properties are interpreted and replace some
-    manual interpretation of these properties (internal issue 2427).
-  * Improve slink:VkAttachmentDescription2 wording around the use of
-    slink:VkAttachmentDescriptionStencilLayout for specifying the stencil
-    aspect layout (internal issue 2496).
-  * Split the <<extendingvulkan-coreversions-versionnumbers, major version
-    field>> of a packed pname:apiVersion value, introducing a new `variant`
-    field. This field allows identification of APIs based on Vulkan, but not
-    fully compatible with Vulkan applications. Vulkan is variant 0, making
-    the change backwards compatible with the previous definition of
-    pname:apiVersion. This change was introduced to enable variants of the
-    Vulkan API that Khronos may release in the future, in particular the
-    in-development Vulkan SC API. It is purely a future-proofing measure and
-    no near-term further use is planned. To support this split, a set of new
-    macros is introduced: dname:VK_API_VERSION_VARIANT,
-    dname:VK_API_VERSION_MAJOR, dname:VK_API_VERSION_MINOR, and
-    dname:VK_API_VERSION_PATCH (internal issue 2531).
-  * Clarify that the slink:VkRectLayerKHR members of a
-    slink:VkPresentRegionKHR structure must not be transformed to align with
-    the swapchain's pname:pTransform. The presentation engine must do this
-    transform (internal issue 2571).
-  * Fix minor issues with exposed asciidoctor markup in spec outputs
-    (internal issue 2576).
-  * Tighten up wording around pool entries of mutable descriptor types. for
-    slink:VkDescriptorPoolCreateInfo (internal issue 2578).
-  * Expand on wording of code:FPRoundingMode valid usage statement in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section (internal merge request 4298).
-  * Document interaction with `<<VK_KHR_fragment_shading_rate>>` for
-    `<<VK_QCOM_render_pass_transform>>` (internal merge request 4221).
-  * Require compile-time constants be explicitly tagged as unsigned or float
-    in `vk.xml`. Modify the generator scripts and schema documentation to
-    require `type` attributes for such constants. This allows generating
-    headers compliant with MISRA section 10.4 requirements, where needed
-    (internal merge request 4451).
-  * Minor editorial fixes (internal merge request 4454).
-  * Disallow code:*Offset* decorations on storage images
-    in the <<spirvenv-module-validation-standalone, Standalone SPIR-V
-    Validation>> section (internal merge request 4465).
-  * Improve the code: macro used in spec markup to allow imbedded wildcards
-    separating words and a trailing wildcard (internal merge request 4466).
-  * Modify `vk.xml` `requires` attributes to reorder definitions of
-    dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE and dname:VK_NULL_HANDLE. This
-    prevents a corner case where the app overriding the first macro
-    explicitly would prevent definition of dname:VK_NULL_HANDLE (internal
-    merge request 4476).
-
-New Extensions:
-
-  * `<<VK_EXT_color_write_enable>>`
-  * `<<VK_EXT_vertex_input_dynamic_state>>`
-  * `<<VK_EXT_ycbcr_2plane_444_format>>`
-  * `<<VK_NV_inherited_viewport_scissor>>`
-  * Vulkan video core & codecs provisional extension package, including
-  ** `<<VK_KHR_video_queue>>`
-  ** `<<VK_KHR_video_decode_queue>>`
-  ** `<<VK_KHR_video_encode_queue>>`
-  ** `<<VK_EXT_video_decode_h264>>`
-  ** `<<VK_EXT_video_decode_h265>>`
-  ** `<<VK_EXT_video_encode_h264>>`
-
------------------------------------------------------
-
-Change log for March 29, 2021 Vulkan 1.2.174 spec update:
-
-  * Update release number to 174 for this update.
-
-Github Issues:
-
-  * Add a common header macro dname:VK_USE_64_BIT_PTR_DEFINES to specify at
-    compile time whether non-dispatchable handles are declared using a
-    64-bit pointer type, or a 64-bit unsigned interger type. NOTE: it is
-    possible that the complex platform-dependent C preprocessor block will
-    move from vk.xml into the static (non-generated) vk_platform.h header in
-    the near future (partially addresses public issue 1431, in addition to
-    internal needs).
-  * Clarify code:PatchVertices documentation for tessellation shaders
-    (public pull request 1475).
-
-Internal Issues:
-
-  * Add valid usage statements restricting bitfield operations to 32-bit
-    types in the <<spirvenv-module-validation-standalone, Standalone SPIR-V
-    Validation>> section (internal issue 2561).
-  * Update registry documentation to require providing the `type` attribute
-    of `enum` tags when they are specifying compile-time constants, and
-    change the accepted values of the attribute to a small set of C scalar
-    type names, instead of schema-specific names. The XML schema itself
-    would ideally be updated to match, but we don't know how to do that yet
-    (internal issue 2564). NOTE: it is possible this will affect downstream
-    consumers of `vk.xml`, although we consider this unlikely.
-  * Document in the style guide that bits reserved in corresponding 32- and
-    64-bit bitmasks should be reserved in both types (internal merge issue
-    2565).
-  * Add output generator options to generate MISRA-friendly headers, and
-    check generator scripts to avoid generating etext:RESERVED 64-bit
-    bitflag names specified by `disabled` extensions in `vk.xml` (internal
-    merge request 4239, internal issue 2572).
-  * Clarify that compressed copies need to round up division in the
-    computation `rowLength` and `imageHeight` in the sample code for the
-    <<copies-buffers-images-addressing, Buffer and Image Addressing>>
-    section (internal merge request 4439).
-
------------------------------------------------------
-
-Change log for March 21, 2021 Vulkan 1.2.173 spec update:
-
-  * Update release number to 173 for this update.
-
-Github Issues:
-
-  * Fix valid usage statement for flink:vkCmdBeginQueryIndexedEXT to allow
-    multiple active queries of the same type, as long as their index values
-    are different (public issue 1357).
-  * Fix tagging for slink:VkPhysicalDeviceVulkan11Features in `vk.xml`
-    (public issue 1437).
-  * Update the <<WSI Swapchain>> chapter's use of "`release`" and
-    "`present`" terminology (public pull request 1470).
-  * Migrate from Azure Pipelines to Github Actions for CI, and use updated
-    Khronos Docker image to build (public pull request 1473).
-
-Internal Issues:
-
-  * Document requirements for extension <<extensions-feature-structures,
-    Feature Structures>> (internal issue 2503).
-  * Add missing valid usage statements for slink:VkAttachmentReference2 and
-    separate depth/stencil layouts (internal issue 2509).
-  * Clarify interactions between `<<VK_EXT_buffer_device_address>>` and
-    Vulkan 1.2 in slink:VkDeviceCreateInfo valid usage (internal issue
-    2530).
-  * Allow variation in number of acceleration structure handles following a
-    top-level acceleration structures for
-    flink:vkCmdCopyAccelerationStructureToMemoryKHR (internal issue 2538).
-  * Specify implementation requirement for device timestamps in the
-    description of elink:VkTimeDomainEXT (internal issue 2551).
-  * Update valid usage ID assignment and extraction scripts to handle IDs
-    containing function pointer names (internal issue 2557).
-  * Move some runtime restrictions to
-    <<spirvenv-module-validation-standalone Standalone SPIR-V>> valid usage
-    statements (internal merge request 4286).
-  * Use new version of the HTML asciidoctor-chunker, which runs much faster,
-    and a new Docker image which omits the old implementation of the chunker
-    (internal merge request 4391).
-  * Fix <<devsandqueues-devices, logical device creation language>> for
-    Vulkan 1.1 (internal merge request 4405).
-  * Modify scripts to enable platform extensions to be filtered by the
-    `"supported"` attribute in `vk.xml` (internal merge request 4411).
-  * Add common valid usage statement for draw/dispatch commands on format
-    support for mip filters (internal merge request 4413).
-  * Fix valid usage statement extractor (vu-to-json) to add padding after
-    inserted list items, so they don't absorb other markup that might come
-    after in the document (internal merge request 4423).
-  * Disallow shadow lookups on 3D images in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section. This is not supported on all hardware, and should not have been
-    allowed (internal merge request 4424).
-
-New Extensions:
-
-  * `<<VK_FUCHSIA_external_memory>>`
-  * `<<VK_FUCHSIA_external_semaphore>>`
-
------------------------------------------------------
-
-Change log for March 8, 2021 Vulkan 1.2.172 spec update:
-
-  * Update release number to 172 for this update.
-
-Internal Issues:
-
-  * Remove asciidoctor conditional markup for extensions from
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V valid usage
-    statements>>, and add a note to this effect for future additions
-    (internal issue 2512).
-  * Update the descriptions (and related validation rules) of
-    code:uniformAndStorageBuffer8BitAccess and
-    code:uniformAndStorageBuffer16BitAccess to only refer to the
-    code:Uniform storage class; and update the 16-bit storage feature
-    validation rules to refer to 16-bit floating-point, similarly to the
-    feature descriptions. These changes are in the
-    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    <<features-requirements, Feature Requirements>> sections (internal issue
-    2535).
-  * Ban recursion in tlink:PFN_vkDebugUtilsMessengerCallbackEXT callbacks,
-    for consistency of `<<VK_EXT_debug_utils_callbacks>>` with
-    `<<VK_EXT_device_memory_report>>` and the rules for
-    slink:VkAllocationCallbacks (internal issue 2537).
-  * Remove dependency on `<<VK_KHR_create_renderpass2>>` from `vk.xml` for
-    `<<VK_KHR_synchronization2>>` (internal issue 2539).
-  * Add the transform feedback pipeline stage as valid for
-    ename:VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT access (internal
-    merge request 4355).
-  * Fix typo in `<<VK_EXT_debug_utils>>` examples (internal merge request
-    4395).
-  * Fix typo to refer to "`buffer view`" rather than "`image view`" in the
-    valid usage statements for code:OpImageWrite (internal merge request
-    4398).
-  * Fix typo in the mandatory features section related to
-    `<<VK_KHR_ray_tracing_pipeline>>` (internal merge request 4406).
-
------------------------------------------------------
-
-Change log for March 1, 2021 Vulkan 1.2.171 spec update:
-
-  * Update release number to 171 for this update.
-
-Github Issues:
-
-  * Use `strictly increasing` rather than `monotonically increasing` in the
-    definition of <<glossary, timeline semaphores>> (public issue 1424).
-  * Add missing raytracing pipeline creation information from
-    `<<VK_KHR_pipeline_executable_properties>>` to
-    flink:vkGetPipelineExecutableStatisticsKHR and
-    flink:vkGetPipelineExecutableInternalRepresentationsKHR valid usage
-    statements (public issue 1433).
-  * Add missing `SPV_EXT_shader_atomic_float` to `vk.xml` (public issue
-    1447).
-  * Fix ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL to
-    ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT in synchronization
-    valid usage statement 03938 (public issue 1458).
-  * Correct the <<interfaces-resources-setandbinding, DescriptorSet and
-    Binding Assignment>> "`noteworthy example`" to refer to code:OpTypeImage
-    code:Samplerd=1, not code:OpTypeSampler code:Sampled=1 (public pull
-    request 1459).
-  * Clarify that the value of slink:VkViewport::pname:minDepth is not
-    restricted relative to pname:maxDepth (Vulkan-Headers public issue 180).
-  * Add valid usage statement to <<spirvenv-module-validation-standalone,
-    Standalone SPIR-V Validation>> specifying that push constant array
-    members must only be accessed with dynamically uniform indices
-    (SPIRV-Tools public issue 2909)
-  * Add valid usage statement to <<spirvenv-module-validation-standalone,
-    Standalone SPIR-V Validation>> specifying when the code:Flat decoration
-    must be used (SPIRV-Tools public issue 3154)
-
-Internal Issues:
-
-  * Specifiy the maximum allowed pname:depthBias unit for
-    flink:vkCmdSetDepthBias (internal issue 2455).
-  * Add `"protect"` attribute to provisional extension enumerants, and emit
-    them with that symbol for runtime conditional inclusion from
-    `vulkan_core.h`. Update description of ename:VK_ENABLE_BETA_EXTENSIONS
-    to match (internal issue 2481).
-  * Add valid usage statement to slink:VkImageViewCreateInfo to ban 3D image
-    views when the ename:VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT is
-    set (internal issue 2501).
-  * Add explicit language for the zero hit group intersection shader to the
-    <<ray-intersection-confirmation, Ray Intersection Confirmation>> section
-    (internal issue 2505).
-  * Add a new <<raytraversal-ray-intersection-candidate-diagram, basic ray
-    diagram>> (internal issue 2518).
-  * Clarify that acceptable fragment shading rates are less than *or equal*
-    to, not just less than, in the description of the
-    <<primsrast-fragment-shading-rate-combining final combined shading
-    rate>> (internal issue 2524)
-  * Refer to correct barycentric coordinates for
-    <<ray-intersection-candidate-determination, triangle intersection
-    coordinates>> (internal issue 2525).
-  * Add valid usage statements to drawing commands to match
-    pname:rasterizationSamples in the pipeline state and the current
-    attachments (internal merge request 4332).
-  * Make use of ename:VK_WHOLE_SIZE consistent with sized flush in valid
-    usage statement for slink:VkMappedMemoryRange (internal merge request
-    4373).
-  * Fix asciidoctor ifdef markup around
-    ename:VK_MEMORY_HEAP_MULTI_INSTANCE_BIT (internal merge request 4383).
-  * Move improperly placed valid usage statements from
-    slink:VkImageViewCreateInfo to slink:VkImageCreateInfo (internal merge
-    request 4390).
-  * Add valid usage statements to <<spirvenv-module-validation-standalone,
-    Standalone SPIR-V Validation>> for pname:minTexelGatherOffset and
-    pname:minTexelGatherOffset.
-  * Make <<spirvenv-module-validation-standalone, Standalone SPIR-V
-    Validation>> valid usage statement 04681 unconditional, rather than
-    having two versions when a relevant Vulkan extension is or is not
-    enabled, since this is *standalone* validation.
-
-New Extensions
-
-  * `<<VK_QNX_screen_surface>>` (public pull request 1449).
-
------------------------------------------------------
-
-Change log for February 15, 2021 Vulkan 1.2.170 spec update:
-
-  * Update release number to 170 for this update.
-
-Internal Issues:
-
-  * Add missing language for zero hit groups to the <<shader-binding-table,
-    Shader Binding Table>> section and related valid usage statements
-    (internal issue 2505).
-
-New Extensions:
-
-  * `<<VK_KHR_synchronization2>>`
-
------------------------------------------------------
-
-Change log for February 2, 2021 Vulkan 1.2.169 spec update:
-
-  * Update release number to 169 for this update.
-
-Github Issues:
-
-  * Fix typos in language in the <<vertexpostproc-renderpass-transform,
-    Render Pass Transform>> section (public issue 1406).
-  * Fix case of etext:EXTENSION_NAME and etext:SPEC_VERSION enums in
-    `vk.xml` for the `<<VK_QCOM_rotated_copy>>` extension (public issue
-    1427).
-  * Fix equations in the <<ray-intersection-candidate-determination, Ray
-    Intersection Candidate Determination>> section (public issue 1427).
-  * Modify examples in the `<<VK_EXT_debug_utils>>` appendix to use
-    flink:vkGetInstanceProcAddr (public issue 1432).
-  * Various typo fixes (public pull request 1434).
-
-Internal Issues:
-
-  * Add missing query types to the the introduction of the <<queries>>
-    chapter (internal issue 2488).
-  * Tag use of union types in `vk.xml` as `noautovalidity`, since we don't
-    generate meaningful valid usage statements or validation layer code at
-    present. This removes a few nonsensical, and unimplemented valid usage
-    statements of form 'ptext:param must: be a valid stext:VkUnionType union
-    (internal issue 2490).
-  * Flatten inline lists in valid usage statements in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section so the VU extraction script can process them properly (internal
-    issue 2502).
-  * Move some common copy buffer / copy image valid usage statements to
-    `copy_bufferimage_to_imagebuffer_common.txt` so they can be shared
-    (internal merge request 4344).
-  * Update copyright dates to 2021 (internal merge request 4345),
-  * Fix typos in asciidoctor conditional markup in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section (internal issue 4349).
-  * Fix typos in SPIR-V capability names
-    code:WorkgroupMemoryExplicitLayout8BitAccessKHR and
-    code:WorkgroupMemoryExplicitLayout16BitAccessKHR (internal merge request
-    4359).
-  * Fix typo in description of
-    slink:VkCoarseSampleLocationNV::pname:pSampleLocations (internal merge
-    request 4365).
-
-
------------------------------------------------------
-
-Change log for January 25, 2021 Vulkan 1.2.168 spec update:
-
-  * Update release number to 168 for this update.
-
-Internal Issues:
-
-  * Change slink:VkAccelerationStructureNV resource classification to
-    non-linear, and slink:VkAccelerationStructureKHR is neither linear nor
-    non-linear. This affects the memory classification for purposes of
-    <<resources-bufferimagegranularity,bufferImageGranularity>> (internal
-    issue 2289).
-  * Specify which storage classes are affected by code:scalarBlockLayout in
-    the <<interfaces-resources-standard-layout, Standard Buffer Layout>>
-    section (internal merge request 4280).
-  * Flatten valid usage statements in the
-    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    section so they are correctly processed by the VU extractor script
-    (internal merge request 4285).
-
-New Extensions:
-
-  * `<<VK_KHR_workgroup_memory_explicit_layout>>`
-  * `<<VK_KHR_zero_initialize_workgroup_memory>>`
-
------------------------------------------------------
-
-Change log for January 19, 2021 Vulkan 1.2.167 spec update:
-
-  * Update release number to 167 for this update.
-
-Github Issues:
-
-  * Clarify valid usage statements for slink:VkGraphicsPipelineCreateInfo
-    interaction with potential format features (public issue 1392).
-  * Use default PDF theme with a local fallback font, to provide
-    floor/ceiling symbols (public issue 1400).
-  * Fix valid usage statements to clarify that
-    flink:vkCmdWriteAccelerationStructuresPropertiesNV only accepts
-    ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV (public
-    Vulkan-ValidationLayers issue 2448).
-  * Add missing `SPV_KHR_multiview` SPIR-V extension to `vk.xml` (public
-    Vulkan-ValidationLayers issue 2456).
-
-Internal Issues:
-
-  * Move Acceleration Structure chapter before Ray Traversal and Ray Tracing
-    chapters and reorganize asciidoctor source markup, including inlining
-    ray tracing sub-chapters (internal issue 2249).
-  * Clarify the definition of the `optional='true'` XML attribute to allow
-    its use with scalar types, and use it consistently in the specification
-    and XML; this removes a few uses of the attribute and simplifies some
-    valid usage statements (internal issue 2435).
-  * Clarify that it is not valid to create an image view using a format that
-    requires YCbCr conversion without passing a
-    slink:VkSamplerYcbcrConversion in valid usage for
-    slink:VkImageViewCreateInfo (internal issue 2458).
-  * Clarify that pipeline flags do not cause the corresponding flags to
-    appear in code:IncomingRayFlagsKHR variables (internal issue 2470).
-  * Require that pname:supportedAlpha is never zero in text and valid usage
-    statements for slink:VkDisplayPlaneCapabilitiesKHR and
-    slink:VkDisplaySurfaceCreateInfoKHR (internal issue 2471).
-  * Clarify that Dref values are supposed to be clamped for fixed-point
-    accesses in the <<textures-depth-compare-operation, Depth Compare
-    Operation>> section (internal issue 2474).
-  * Fix typo for a destination stage in an issue in the
-    `<<VK_EXT_transform_feedback>>` extension appendix (internal issue
-    2477).
-  * Restrict code:OpImageQueryLod, code:OpImageQuerySizeLod, and
-    code:OpImageQueryLevels to require a sampler (not storage image) in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section (internal issue 2478).
-  * Allow
-    flink:vkGetAccelerationStructureBuildSizesKHR::pname:pMaxPrimitiveCounts
-    to be zero by setting the `optional` attribute in the XML (internal
-    issue 2480).
-  * Update description of
-    slink:VkDeviceMemoryReportCallbackDataEXT::pname:objectType for
-    consistency with description of other parameters (internal issue 2485).
-  * Add a valid usage statement to slink:VkRayTracingPipelineCreateInfoKHR
-    requiring that all linked pipelines have the same set of flags specified
-    from the etext:VK_PIPELINE_CREATE_RAY_TRACING_* bits (internal issue
-    2489).
-  * Add valid usage statements to flink:vkCmdBeginQuery /
-    flink:vkCmdBeginQueryIndexedEXT to disallow use with pools created with
-    ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR /
-    ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR types
-    (internal issue 2493).
-  * Fix normative language for valid usage statements in the <<spirvenv,
-    Vulkan Environment for SPIR-V>> appendix (internal merge request 4265).
-  * Remove a few cases where `_KHR` suffixes were left on promoted
-    extensions in valid usage statements (internal merge request 4293)
-  * Update and futureproof a previously hardwired reference to Vulkan 1.1 in
-    the <<introduction-conventions, Document Conventions>> section (internal
-    merge request 4295).
-  * Add code:PhysicalStorageBuffer as a valid atomic storage class in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section (internal merge request 4296).
-  * Clean up phrasing of valid usage statements in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section (internal merge request 4297).
-  * Add shared valid usage statement for buffer copy commands requiring
-    pname:bufferRowLength to fit in a signed 32-bit integer (internal merge
-    request 4302).
-  * Add dname:VK_NO_STDDEF_H to allow apps to prevent including
-    `<stddef.h>`, and document it in the <<boilerplate, API Boilerplate>>
-    appendix (internal merge request 4312).
-  * Fix typo `SkipTrianglesKHR` -> `SkipAABBsKHR` in the
-    <<ray-traversal-culling-primitive, Ray Primitive Culling>> section
-    (internal merge request 4315).
-
------------------------------------------------------
-
-Change log for January 4, 2021 Vulkan 1.2.166 spec update:
-
-  * Update release number to 166 for this update.
-
-Github Issues:
-
-  * Add an Issue to the appendix for `<<VK_EXT_debug_report>>` discussing
-    how to compare handles returned by the debug report callback to
-    application handles (public issue 368).
-  * Specify the purpose of ename:VK_LOD_CLAMP_NONE in the description of
-    slink:VkSamplerCreateInfo::pname:maxLod (public issue 663).
-  * Clarify in the <<extendingvulkan-extensions-extensiondependencies,
-    Extension Dependencies>> section that extensions may depend on both
-    other extensions, and specific core API versions. Together with previous
-    changes to this section, this should close out the original issue
-    (public issue 865).
-
-Internal Issues:
-
-  * Add descriptions of image queries to the <<textures, Image Operations
-    Overview>> and <<textures-queries, Image Query Instructions>> sections
-    (internal issues 2416 and 2423).
-  * Allow axis swapping to be carried through clamping in the
-    <<primsrast-fragment-shading-rate-combining, Combining the Fragment
-    Shading Rates>> section (internal issue 2420).
-  * Move even-size requirements for planar formats to valid usage statements
-    for slink:VkImageCreateInfo and slink:VkImageViewCreateInfo, and tweak
-    descriptions of <<formats-definition, the corresponding formats>>
-    accordingly (internal issue 2434).
-  * Remove asciidoctor conditional macros from markup for
-    slink:VkSamplerCreateInfo valid usage statement 01079 (internal issue
-    2440).
-  * Clarify behavior of the <<features-alphaToOne, pname:alphaToOne>>
-    feature by linking the enable to the corresponding <<fragops-covg,
-    Multisample Coverage>> fragment operation language, and specifying in
-    the introduction to the <<fragops, Fragment Operations>> chapter that
-    "`replacing`" a fragment shader output occurs whether or not the shader
-    actually wrote that output (internal issue 2448).
-  * Modify XML for
-    slink:VkPipelineViewportShadingRateImageStateCreateInfoNV::pname:viewportCount
-    to allow pname:viewportCount == 0 (internal issue 2449).
-  * Remove "`built as`" requirement from valid usage statement 03579 for
-    slink:VkWriteDescriptorSetAccelerationStructureKHR (internal issue
-    2466).
-  * Remove incorrect valid usage statement 03655 for
-    slink:VkAccelerationStructureGeometryTrianglesDataKHR (internal issue
-    2467).
-  * Add location limits for mesh shaders to the
-    <<interfaces-iointerfaces-limits, Shader Input and Output Locations>>
-    table (internal merge request 3428).
-
------------------------------------------------------
-
-Change log for December 14, 2020 Vulkan 1.2.165 spec update:
-
-  * Update release number to 165 for this update.
-
-Github Issues:
-
-  * Fix interaction between imageless framebuffers and
-    slink:VkImageViewUsageCreateInfo for slink:VkRenderPassBeginInfo,
-    elink:VkImageUsageFlagBits, and in the
-    <<resources-image-inherited-usage>> section (public issue 1391).
-  * Fix `vk.xml` `optional` / `noautovalidity` attributes and corresponding
-    explicit valid usage statements for
-    slink:VkBuildAccelerationStructureModeKHR (public issue 1405).
-  * Remove redundant / incomplete handle comments from `vk.xml` for
-    elink:VkObjectType enumerants (public merge request 1412).
-
-Internal Issues:
-
-  * Create valid usage statements from constraints in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section (internal issue 2394).
-  * Fix valid usage staement 01256 for slink:VkDisplaySurfaceCreateInfoKHR
-    (internal issue 2404).
-  * Expand and clarify the event race condition warning for
-    flink:vkCmdWaitEvents to include two additional scenarios in which the
-    effect and/or state of an event becomes undefined without additional
-    synchronization operations (internal issue 2411).
-  * Update valid usage statement for flink:vkSetLocalDimmingAMD (internal
-    issue 2446).
-  * Recast slink:VkStridedDeviceAddressRegionKHR valid usage statements in
-    terms of size being non-zero, instead of pname:deviceAddress (internal
-    issue 2450).
-  * Add missing ename:VK_SHARING_MODE_CONCURRENT valid usage statement for
-    flink:vkQueueSubmit (internal merge request 4244).
-  * Add limits related to local size to the
-    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    section (internal merge request 4255).
-  * Fix typo in description of
-    slink:VkDescriptorUpdateTemplateEntry::pname:dstArrayElement (internal
-    merge request 4260).
-  * Remove repeated "`all`" from slink:VkGraphicsPipelineCreateInfo valid
-    usage statements (internal merge request 4266).
-  * Fix internal xrefs to the SPIR-V capabilities tables, which broke as a
-    side effect of generating the table instead of handcoding it (internal
-    merge request 4270).
-  * Fix normative language for code:WorkgroupSize (internal merge request
-    4272).
-  * Restore `len` attribute to `vk.xml` after its recent accidental removal
-    from slink:VkDescriptorSetAllocateInfo::pname:pSetLayouts (internal
-    merge request 4275).
-  * Remove trailing periods from SPIR-V valid usage statements (internal
-    merge request 4284).
-  * Base PDF theme on builtin fallback theme, simplifying it and adding
-    support for some math characters not found in the default theme
-    (internal merge request 4287).
-
------------------------------------------------------
-
-Change log for December 7, 2020 Vulkan 1.2.164 spec update:
-
-  * Update release number to 164 for this update.
-
-Github Issues:
-
-  * Reserve vendor ID for PoCL (public pull request 1411).
-
-Internal Issues:
-
-  * Add valid usage statements to ray tracing commands requiring they be
-    given a ray tracing pipeline, and removing support for
-    ename:ACCELERATION_STRUCTURE_TYPE_GENERIC in
-    flink:vkCmdBuildAccelerationStructureNV (internal issue 2271).
-  * Add valid usage statements disallowing the use of protected command
-    buffers with Ray Tracing Pipelines and Ray Query instructions (internal
-    issue 2409).
-  * Move the un-numbered glossary / abbreviations / prefixes pseudo-chapters
-    into a single appendix, so the table of contents looks cleaner (internal
-    issue 2437).
-  * Remove redundant valid usage statement from
-    slink:VkCommandBufferAllocateInfo (internal merge request 4229).
-  * Add missing <<features-inlineUniformBlock>> valid usage statement to
-    slink:VkDescriptorSetLayoutBinding (internal merge request 4246).
-  * Tweak example of Docker image invocation in `BUILD.adoc` (internal merge
-    request 4249).
-  * Capitalize code:LaunchIdKHR the same as in SPIR-V. code:LaunchSizeKHR
-    and code:LaunchIdKHR are accessible in the code:CallableKHR shader stage
-    (internal merge request 4252).
-  * Remove unreachable (redundant) valid usage statements from
-    flink:vkCmdBeginRenderPass and flink:vkCmdBeginRenderPass2 (internal
-    merge request 4254).
-  * Add missing `objtypeenum` attribute to `vk.xml` for slink:VkInstance
-    (internal merge request 4263).
-  * Change the chunked HTML target to use a more robust method of inserting
-    additional Javascript and HTML to support the searchbox.
-
-New Extensions:
-
-  * `<<VK_NV_acquire_winrt_display>>`
-  * `<<VK_VALVE_mutable_descriptor_type>>`
-
------------------------------------------------------
-
-Change log for November 30, 2020 Vulkan 1.2.163 spec update:
-
-  * Update release number to 163 for this update.
-
-Github Issues:
-
-  * Add XML mapping between VK_OBJECT_TYPE_* names and object type names
-    (public issue 1379).
-  * Remove *_READ_BIT from .srcAccessMask in code samples (public issue
-    1389).
-  * Fix example code for slink:VkPushConstantRange to take
-    elink:VkShaderStageFlags, not elink:VkPipelineStageFlags (public pull
-    request 1393).
-  * Add missing :refpage: attribute to slink:VkBlitImageInfo2KHR (public
-    issue 1407).
-  * Remove extraneous newline from texel block size table (public issue
-    1409).
-
-Internal Issues:
-
-  * Update style guide to require `optional="true"` be set on pname:pNext
-    structure members (internal issue 2428).
-  * Sort conditionals in ifdef:: output of spirvcapgenerator for stability
-    (internal issue 2430).
-  * Fix slink:VkGraphicsPipelineShaderGroupsCreateInfoNV VU 02886
-    (internal merge request 4225).
-
-
------------------------------------------------------
-
-Change log for November 23, 2020 Vulkan 1.2.162 spec update:
-
-  * Update release number to 162 for this update.
-
-Github Issues:
-
-  * Mark pname:pNext pointers as `optional="true"` in `vk.xml` (public pull
-    request 1396).
-  * Make a formerly implicit slink:VkSubpassDescriptionDepthStencilResolve
-    valid usage statement explicit (public Vulkan-ValidationLayers issue
-    2311).
-
-Internal Issues:
-
-  * Clarify lifetime of push constants in the flink:vkCmdPushConstants
-    description (internal issue 2168).
-  * Clarify that flink:vkGetDeviceProcAddr is not intended to return
-    physical device-level commands (internal issue 2344).
-  * Tweak CI test for SPEC_VERSION to always succeed when the branch name
-    exists, but the extension is disabled (internal merge request 4219).
-
-New Extensions:
-
-  * Add final (non-provisional) versions of the Vulkan Ray Tracing
-    extensions (internal merge request 4143):
-  ** `<<VK_KHR_acceleration_structure>>`
-  ** `<<VK_KHR_ray_tracing_pipeline>>`
-  ** `<<VK_KHR_ray_query>>`
-  ** `<<VK_KHR_pipeline_library>>`
-  ** `<<VK_KHR_deferred_host_operations>>`
-
------------------------------------------------------
-
-Change log for November 16, 2020 Vulkan 1.2.161 spec update:
-
-  * Update release number to 161 for this update.
-
-Github Issues:
-
-  * Add some missing types to the table of handle type <->
-    etext:VK_OBJECT_TYPE_* enums in the debugging chapter (in response to a
-    comment on public issue 1379).
-
-Internal Issues:
-
-  * Move copyright statement into its own "`Preamble`" chapter to simplify
-    preprocessing for chunked HTML target and make PDF / single-page HTML
-    consistent with the chunked output (internal issue 2384).
-  * Clarify that slink:VkExternalMemoryBufferCreateInfo::pname:handleTypes
-    and slink:VkExternalMemoryImageCreateInfo::pname:handleTypes can be
-    zero, and fix missing `optional` attribute in `vk.xml` for the latter
-    case (internal issue 2388).
-  * Make `specialuse` attributes in source markup expand properly in
-    extension refpages (internal issue 2412).
-  * Remove as yet unused slink:VkSemaphoreCreateFlagBits type from `vk.xml`
-    (internal issue 2413).
-  * Remove unreachable valid usage statements for
-    slink:VkRenderPassMultiviewCreateInfo::pname:pViewMask in the
-    slink:VkRenderPassCreateInfo pname:pNext chain, and for
-    slink:VkRenderPassCreateInfo2::pname:viewMask. These statements cannot
-    ever be violated given that view masks cannot exceed index 31 and
-    pname:maxFramebufferLayers exceeds this value (internal merge request
-    4204).
-  * Only allow forward pointers for physical storage buffers in the
-    <<spirvenv-module-validation>> section (internal merge request 4206).
-  * Fix a variety of minor valid usage statement issues with the
-    `<<VK_KHR_fragment_shading_rate>>` extension (internal merge request
-    4207).
-
------------------------------------------------------
-
-Change log for November 9, 2020 Vulkan 1.2.160 spec update:
-
-  * Update release number to 160 for this update.
-
-Github Issues:
-
-  * Remove redundant input attachment valid usage statements from
-    slink:VkAttachmentReference2 (public issue 1378).
-
-Internal Issues:
-
-  * Restore "`Preamble`" section containing the copyright statement to the
-    proper place in the chunked specification index (internal issue 2384).
-  * Add missing valid usage statements for
-    flink:vkCmdDrawIndirectByteCountEXT (internal issue 2400).
-  * Move vertex input example from the <<fxvertex>> chapter to the Vulkan
-    Guide (internal merge request 4162).
-  * Clarify update-after-bind limits for dynamic buffers in the
-    <<limits-maxDescriptorSetUpdateAfterBindUniformBuffersDynamic>> and
-    <<limits-maxDescriptorSetUpdateAfterBindStorageBuffersDynamic>> sections
-    (internal merge request 4186).
-  * Clarify slink:VkFramebufferCreateInfo to allow read-only use of depth
-    images as attachments and non-attachments (internal merge request 4191).
-  * Remove redundant valid usage statement from slink:VkWriteDescriptorSet
-    (internal merge request 4196).
-  * Remove redundant valid usage statement from flink:vkFreeDescriptorSets
-    (internal merge request 4198).
-  * Fix typo in slink:VkDisplaySurfaceCreateInfoKHR valid usage statement
-    (internal merge request 4199).
-  * Remove redundant pname:firstViewport / pname:firstScissor limit checks
-    in valid usage statements for flink:vkCmdSetViewportWScalingNV,
-    flink:vkCmdSetScissor, flink:vkCmdSetExclusiveScissorNV,
-    flink:vkCmdSetViewportShadingRatePaletteNV, and flink:vkCmdSetViewport
-    (internal merge request 4200).
-
-New Extensions:
-
-  * `<<VK_NV_fragment_shading_rate_enums>>`
-
------------------------------------------------------
-
-Change log for November 1, 2020 Vulkan 1.2.159 spec update:
-
-  * Update release number to 159 for this update.
-
-Github Issues:
-
-  * Clarify handle uniqueness with private data in the
-    <<fundamentals-objectmodel-overview, Object Model>> section (public
-    issue 1349).
-  * Make ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR
-    an alias of
-    ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR
-    and ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR
-    an alias of
-    ename:VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
-    for backwards compatibility while complying with naming conventions
-    (public issue 1367).
-  * Make ename:VK_SURFACE_COUNTER_VBLANK_EXT an alias of
-    ename:VK_SURFACE_COUNTER_VBLANK_BIT_EXT for backwards compatibility
-    while complying with naming conventions (public issue 1368).
-  * Add a note to the <<memory-model-synchronizes-with, Synchronizes-With>>
-    section that fragment shader interlock instructions don't perform
-    implicit availability or visibility operations (public issue 1383).
-
-Internal Issues:
-
-  * Dynamically generate SPIR-V <<spirvenv-capabilities-table,
-    Capabilities>> and <<spirvenv-extensions-table, Extensions>> tables from
-    new tags in `vk.xml`, exposing this information for other projects
-    downstream (internal issue 2156).
-  * Clarify when a <<renderpass-feedbackloop, feedback loop>> creates a data
-    race (internal issue 2296).
-  * Remove un-needed `noautovalidity` attributes on pname:pNext structure
-    members, including a few cases where they were actually suppressing
-    appropriate autogenerated validity statements (internal issue 2335;
-    similar purpose to closed public PR 1339).
-  * Clarify treatment of most-negative signed normalized fixed-point values
-    in the <<fundamentals-fixedfpconv, Conversion from Normalized
-    Fixed-Point to Floating-Point>> section (internal issue 2367).
-  * Clarify that enabling an extension cannot change existing implementation
-    behavior in the introduction to the <<extendingvulkan-extensions,
-    Extensions>> chapter (internal issue 2375).
-  * Add missing valid usage statement to flink:vkCreatePrivateDataSlotEXT
-    (internal issue 2379).
-  * Fix a misplaced asciidoctor `endif::` for flink:vkCreateSwapchainKHR
-    (internal merge request 4177).
-  * Add missing pname:aspectMask valid usage statement to
-    slink:VkSubpassDescription2, matching
-    slink:VkInputAttachmentAspectReference (internal merge request 4177).
-  * Clarify <<interfaces, SPIR-V rules on decorations>> (internal
-    spirv/SPIR-V issue 444).
-  * Add missing `<<VK_VERSION_1_2>>` to all
-    `<<VK_EXT_separate_stencil_usage>>` conditional markup (internal
-    vulkansc/vulkansc issue 58).
-
-New Extensions:
-
-  * `<<VK_QCOM_rotated_copy_commands>>` (internal merge request 4132).
-
------------------------------------------------------
-
-Change log for October 19, 2020 Vulkan 1.2.158 spec update:
-
-  * Update release number to 158 for this update.
-
-Internal Issues:
-
-  * Clarify that  linear filtering can be used with comparison sampling
-    in valid usage statements for dispatched draw commands
-    (internal issue 2365).
-  * Add valid usage statement for flink:vkGetQueryPoolResults requiring
-    pname:stride to be large enough for a single performance query result
-    (internal issue 2380).
-  * Move input attachment imageLayout to valid usage reference section,
-    and refer to the <<attachment-type-imagelayout>> section
-    to reduce complexity of valid usage statement
-    (internal merge request 4117).
-  * Update issues list for `<<VK_QCOM_render_pass_transform>>`
-    (internal merge request 4175).
-  * Add valid usage statement for
-    slink:VkPipelineColorBlendStateCreateInfo::pname:attachmentCount (public
-    Vulkan-ValidationLayers issue 2197).
-
-New Extensions:
-
-  * `<<VK_KHR_fragment_shading_rate>>`
-  * `<<VK_KHR_shader_terminate_invocation>>`
-
------------------------------------------------------
-
-Change log for October 12, 2020 Vulkan 1.2.157 spec update:
-
-  * Update release number to 157 for this update.
-
-Github Issues:
-
-  * Fix `<<VK_KHR_shader_draw_parameters>>` missing as a feature alias
-    (based on public pull request 1310).
-  * Remove unnecessary sentence about device extensions implemented by
-    layers in the flink:vkCreateDevice description (based on public pull
-    request 1350).
-  * Fix parenthesis in equation in the
-    <<textures-texel-anisotropic-filtering, Texel Anisotropic Filtering>>
-    section (public merge request 1365).
-  * Add missing types to `vk.xml` for `<<VK_EXT_device_memory_report>>`
-    (public issue 1374).
-  * Add slink:VkBufferImageCopy valid usage statement for
-    ename:VK_IMAGE_ASPECT_DEPTH_BIT and ename:VK_IMAGE_ASPECT_STENCIL_BIT
-    pname:aspectMask values (public Vulkan-ValidationLayers issue 2113).
-
-Internal Issues:
-
-  * Remove unused etext:VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT
-    token
-    (internal issue 2275).
-  * Clarify the specific stage requirement for synchronization
-    between flink:vkCmdResetEvent and flink:vkCmdWaitEvents
-    (internal merge request 4152).
-
------------------------------------------------------
-
-Change log for October 5, 2020 Vulkan 1.2.156 spec update:
-
-  * Update release number to 156 for this update.
-
-Github Issues:
-
-  * Define memory import/export using the glossary term _payload_, rather
-    than "`the same underlying memory`", for slink:VkFence,
-    <<synchronization-semaphores-payloads, the semaphore payload section>>,
-    and many places in the <<memory, Memory Allocation>> chapter (public
-    issue 1145).
-
-New Extensions:
-
-  * `<<VK_EXT_device_memory_report>>`
-
------------------------------------------------------
-
-Change log for September 28, 2020 Vulkan 1.2.155 spec update:
-
-  * Update release number to 155 for this update.
-
-New Extensions:
-
-  * `<<VK_EXT_shader_image_atomic_int64>>`
-
------------------------------------------------------
-
-Change log for September 7, 2020 Vulkan 1.2.153 spec update:
-
-  * Update release number to 153 for this update.
-
-Github Issues:
-
-  * Specification default branch for updates and PRs is now `main` instead
-    of `master`. `master` branch still exists, but is frozen at the 1.2.152
-    level. If you are pulling content from this repository, please switch
-    from `master` to `main` branch (internal issue 1351).
-  * Fix slink:VkSubpassDependency2 link from slink:VkRenderPassCreateInfo2
-    (public issue 1358).
-
-Internal Issues:
-
-  * Add developer documentation to the appendices for
-    `<<VK_EXT_memory_budget>>`, `<<VK_KHR_buffer_device_address>>`,
-    `<<VK_KHR_depth_stencil_resolve>>`, `<<VK_KHR_draw_indirect_count>>`,
-    `<<VK_KHR_multiview>>`, `<<VK_KHR_sampler_ycbcr_conversion>>` (internal
-    issue 2109).
-  * Implement VUID expander treeprocessor plugin to make VUID text visible
-    and searchable in generated outputs (internal issue 2253, 2258).
-  * Clarify when acceleration structures can be indexed dynamically in the
-    <<interfaces-resources-descset, Descriptor Set Interface>> section
-    (internal issue 2316).
-  * Add missing valid usage statement for flink:vkImportFenceWin32HandleKHR
-    (internal merge request 4087).
-  * Replace badly formatted VUID for `<<VK_AMD_display_native_hdr>>`
-    (internal merge request 4096).
-  * Add ray tracing acceleration structures to the lists of objects where
-    appropriate in the <<fundamentals-objectmodel-lifetime, Object
-    Lifetime>> section (internal merge request 4100).
-  * Move GLSL and SPIR-V extension references in the extension appendices
-    into the "`Interactions and External Dependencies`" sections (internal
-    merge request 3969).
-
------------------------------------------------------
-
-Change log for August 26, 2020 Vulkan 1.2.152 spec update:
-
-  * Update release number to 152 for this update.
-
-Github Issues:
-
-  * Add attachment image layout valid usage statements for
-    slink:VkSubpassDescription and slink:VkSubpassDescription2 (public issue
-    1316).
-  * Clarify and generalize use of "`graphics commands`" in the
-    <<descriptorsets>> and <<pipelines>> chapters (public issue 1322).
-  * Fix description of handle returned in slink:VkDeviceQueueInfo2 (public
-    pull request 1347).
-
-Internal Issues:
-
-  * Promote valid usage statements requiring multiple parameters of a copy
-    command from the structure parameter descriptions to the command itself,
-    significantly restructuring some of the common validity files (internal
-    issue 2034).
-  * Add details of clamping and quantization behavior for border colors that
-    are outside the normal range for slink:VkSamplerCreateInfo and in the
-    <<textures-operation-validation, Instruction/Sampler/Image View
-    Validation>> and <<textures-texel-replacement, Texel Replacement>>
-    sections (internal issue 2281).
-  * Clarify in the <<spirvenv-module-validation-standalone, Standalone
-    SPIR-V Validation>> section that the value of code:XfbBuffer cannot
-    differ for members of the same block (internal issue 2307).
-  * Add valid usage blocks to the <<interfaces>> chapter where discussing
-    allowed uses of built-in SPIR-V variables (internal merge requests 3933,
-    4090).
-  * Refactor <<spirvenv-module-validation-standalone, Standalone SPIR-V
-    Validation>> constraints to single statement phrases not using ifdef::ed
-    asciidoctor markup, and move some of them down to the
-    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    section (internal merge request 4054).
-  * Fix XML attributes for some `<<VK_INTEL_performance_query>>` interfaces
-    (internal merge request 4061).
-  * Fix the "`Differences relative to `VK_KHR_shader_float16_int8``"
-    paragraph in the <<versions-1.2, Version 1.2>> appendix (internal merge
-    request 4062).
-  * Fix several valid usage statements for
-    flink:vkCmdBindTransformFeedbackBuffersEXT (public
-    KhronosGroup/Vulkan-ValidationLayers issue 2105).
-  * Clarify `shader_read_only` layout restrictions for
-    slink:VkWriteDescriptorSet and elink:VkImageLayout (internal merge
-    request 4060).
-  * Clarify wording for required 4444 and {YCbCr} formats in the
-    <<formats-mandatory-features-subbyte, Mandatory format support: sub-byte
-    channels>> and <<formats-requiring-sampler-ycbcr-conversion, Formats
-    requiring sampler {YCbCr} conversion for ename:VK_IMAGE_ASPECT_COLOR_BIT
-    image views>> tables (internal merge request 4066).
-  * Move a feature valid usage statement from flink:vkCmdDrawIndexedIndirect
-    to its proper home in flink:vkCmdDrawIndexedIndirectCount, matching what
-    the validation layer already does (internal merge request 4070).
-  * Split valid usage statement for slink:VkWriteDescriptorSet into one
-    statement for each descriptor type for image layout requirements
-    (internal merge request 4071).
-  * Add the a <<valid-imageview-imageusage>> definition to capture which
-    elink:VkImageUsageFlagBits must be set when creating a
-    sname:VkImageView, and use that definition to simplify
-    slink:VkImageViewCreateInfo valid usage statements (internal merge
-    request 4073).
-  * Remove redundant valid usage statement 03269 for slink:VkPresentInfoKHR
-    (internal merge request 4084).
-  * Move valid usage statement from slink:VkProtectedSubmitInfo to
-    slink:VkSubmitInfo (internal merge request 4085).
-  * Update reference to pname:framebufferIntegerColorSampleCounts from the
-    description of the <<limits-framebufferColorSampleCounts>> feature if
-    Vulkan 1.2 is supported (internal merge request 4088).
-
------------------------------------------------------
-
-Change log for August 17, 2020 Vulkan 1.2.151 spec update:
-
-  * Update release number to 151 for this update.
-
-Github Issues:
-
-  * Clarify that the <<memory-protected-memory,Protected Memory>> is not
-    cross-physical device (public issue 1335).
-
-Internal Issues:
-
-  * Improve the layout of the <<Standard sample locations>> table to avoid
-    overflow in the HTML output (internal issue 1354).
-  * Also build core-only HTML spec in internal CI, to try and catch
-    extension ifdef errors (should probably also do this in Azure CI on
-    github) (internal issue 1770).
-  * Add internal CI test for un-tagged uses of "`undefined`", to help make
-    sure we've carefully considered all such uses (internal issue 2270).
-  * Add style guide section "`Commands which Return Error Codes`" to give
-    guidance on assigning error codes and when to use
-    ename:VK_ERROR_OUT_OF_HOST_MEMORY (internal issue 2290).
-  * Use the term "`reference monitor`" instead of "`mastering display`" for
-    the `<<VK_EXT_hdr_metadata>>` extension (internal issue 2291).
-  * Explicitly state that SPIR-V modules must be valid after specialization
-    in slink:VkPipelineShaderStageCreateInfo and the
-    <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    section (internal issue 2302).
-  * Add slink:VkShaderModuleCreateInfo valid usage statements to match the
-    SPIR-V capabilities (internal merge request 4047).
-  * Add missing features to the <<[spirvenv-module-validation-runtime,
-    Runtime SPIR-V Validation>> section (internal merge request 4048).
-  * Update slink:VkPhysicalDeviceVulkan11Properties to follow the same
-    renaming of "`subgroups`" to "`groups`" previously done for
-    slink:VkPhysicalDeviceSubgroupProperties (internal merge request 4050).
-
------------------------------------------------------
-
-Change log for August 10, 2020 Vulkan 1.2.150 spec update:
-
-  * Update release number to 150 for this update.
-
-Github Issues:
-
-  * Remove ename:VK_ERROR_TOO_MANY_OBJECTS as a required error code for
-    flink:vkAllocateMemory and and flink:vkCreateSampler, and note that
-    while it may still occur as a historical artifact, exceeding
-    implementation limits will result in undefined behavior (public issue
-    1295).
-  * Allow duplicate slink:VkDebugUtilsMessengerCreateInfoEXT structs in
-    pname:pNext chain (public issue 1329)
-  * Fix typo in slink:VkSubmitInfo valid usage statement 04120 (public merge
-    request 1336).
-  * Remove `KHR` suffix from some names promoted to core, in the
-    <<renderpass, Render Pass>> chapter (public merge request 1341).
-
-Internal Issues:
-
-  * Add ename:VK_ERROR_OUT_OF_HOST_MEMORY to `vk.xml` as a possible error
-    code for some additional commands returing elink:VkResult, and add a
-    note to the description of elink:VkResult giving some guidance on which
-    commands may and may not return that error code (internal issue 2063).
-  * Make a handful of terminology changes which move this repository closer
-    to the conventions of the AOSP
-    https://source.android.com/setup/contribute/respectful-code[Coding with
-    Respect] document (internal issue 2282).
-  * Update `<<VK_MVK_ios_surface>>` and `<<VK_MVK_macos_surface>>`
-    documentation and mark them as deprecated and replaced by
-    `<<VK_EXT_metal_surface>>` (internal merge request 4024).
-  * Add a section to the style guide on markup for the copyright and license
-    block on files in the repository (internal merge request 4036).
-  * Add ename:VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT to
-    `<<VK_EXT_validation_features>>` to enable synchronization validation
-    (internal merge request 4037).
-
------------------------------------------------------
-
-Change log for August 3, 2020 Vulkan 1.2.149 spec update:
-
-  * Update release number to 149 for this update.
-
-Github Issues:
-
-  * Fix valid usage statements to clarify interactions between
-    `<<VK_EXT_extended_dynamic_state>>` and the old viewport related
-    extensions `<<VK_NV_clip_space_w_scaling>>`,
-    `<<VK_NV_shading_rate_image>>` (for the palettes),
-    `<<VK_NV_viewport_swizzle>>`, and `<<VK_NV_scissor_exclusive>>` (public
-    issue 1296).
-
-Internal Issues:
-
-  * Clarify wording around non-uniform and non-constant descriptor access in
-    <<interfaces-resources-descset, Descriptor Set Interface>> (internal
-    issue 2163).
-  * Add a missing code:StorageBuffer reference in the <<interface-resources,
-    Shader Resource Interface>> section (internal issue 2191).
-  * Refactor common valid usage statements for flink:vkBindBufferMemory,
-    slink:VkBindBufferMemoryInfo, flink:vkBindImageMemory, and
-    slink:VkBindImageMemoryInfo (internal issue 2260).
-  * Copy over import/export behavior for sync file descriptor value `-1`
-    from slink:VkImportFenceFdInfoKHR to slink:VkImportSemaphoreFdInfoKHR
-    (internal issue 2274).
-  * State that a deriviative group is a quad scope instance in the
-    <<shaders-derivative-operations, Derivative Operations>> section
-    (internal merge request 4025)
-
-New Extensions:
-
-  * `<<VK_EXT_4444_formats>>`
-
------------------------------------------------------
-
-Change log for July 19, 2020 Vulkan 1.2.148 spec update:
-
-  * Update release number to 148 for this update.
-
-Github Issues:
-
-  * Move description of slink:VkPhysicalDevicePerformanceQueryFeaturesKHR to
-    the <<features>> chapter (public merge request 1312).
-  * Fix a few broken internal and external links, and add stub description
-    of empty elink:VkPipelineCompilerControlFlagsAMD type (public merge
-    request 1313).
-
-Internal Issues:
-
-  * Fix a few new places where "`undefined`" was used imprecisely, by
-    clarifying the difference between undefined results and undefined
-    behavior (internal issue 543).
-  * Add valid usage statement to common indirect draw valid usage statements
-    requiring that the pname:countBufferOffset to the count being used lie
-    within the pname:countBuffer (internal issue 1309).
-  * Add <<interfaces-raypipeline, Ray Tracing Pipeline Interface>> section
-    (internal issues 2094, 2237).
-  * Add valid usage statement to flink:vkCmdBeginTransformFeedbackEXT to
-    require that the last vertex processing stage of the bound graphics
-    pipeline be declared with the code:Xfb execution mode (internal issue
-    2124).
-  * Do not allow flink:vkWaitForFences or flink:kWaitSemaphores to return
-    timeouts before the period has expired, even though this is valid in
-    some other synchronisation APIs (internal issue 2146).
-  * Add elink:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT as an alias
-    of elink:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT for clarity
-    when interacting with D3D11 fences (internal issue 2175).
-  * Ignore slink:VkMemoryAllocateInfo::pname:allocationSize when importing
-    D3D resources (internal issue 2176).
-  * Clarify the definition of flink:vkCmdBindVertexBuffers2EXT::pname:pSizes
-    (internal issue 2262).
-  * Fix markup error in slink:VkDescriptorSetLayoutBindingFlagsCreateInfo
-    (internal merge request 3998).
-  * Remove un-needed dependency of `<<VK_EXT_filter_cubic>>` on
-    `<<VK_IMG_filter_cubic>>` (internal merge request 4000).
-  * Minor textual clarifications in ray tracing extensions (internal merge
-    request 4017).
-  * Modify the validity generator so that, when generating valid usage for
-    array lengths with a chain of parameters (e.g. pname:pFoo->bar), don'
-    non-zero values are not required if any parameter in the chain is
-    optional, and consider the last parameter only when deciding the type of
-    the parameter (internal merge request 4021).
-  * Fix a typo in the `<<VK_EXT_fragment_density_map2>>` extension appendix
-    markup that caused refpage build warnings, and modify CI and
-    `BUILD.adoc` to use `makeSpec` instead of the old `makeAllExts` script
-    (internal merge request 4023).
-
-New Extensions:
-
-  * `<<VK_EXT_image_robustness>>`
-  * `<<VK_EXT_shader_atomic_float>>`
-
------------------------------------------------------
-
-Change log for July 13, 2020 Vulkan 1.2.147 spec update:
-
-  * Update release number to 147 for this update.
-
-Github Issues:
-
-  * Allow physical-device-level structures in pname:pNext chains (public
-    merge request 1303).
-  * Remove elink:VkRenderPassCreateFlags from dependencies of
-    `<<VK_QCOM_render_pass_transform>>` (public merge request 1311)
-
-Internal Issues:
-
-  * Require that variables with code:HitAttributeKHR storage class must:
-    <<spirvenv-module-validation-standalone, only be written in intersection
-    shaders>> (internal issue 2103).
-  * Specify that acceleration structure scratch buffer accesses from
-    acceleration structure build should be synchronized with the
-    ename:VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR pipeline
-    stage and an access mask of
-    ename:VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR or
-    ename:VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR (internal issue
-    2173).
-  * Improve description of 3D blitting in flink:vkCmdBlitImage (internal
-    issue 2212).
-  * Split <<fragops-coverage-reduction, Coverage Reduction>> section into
-    multiple steps when multi-pixel fragments are involved: first per-pixel
-    coverage is separated out, then per-sample coverage is generated for
-    each color sample from per-pixel coverage. dditionally, the definition
-    of "`color sample mask`" and discussions of it have been removed in
-    favour of the per-color-sample coverage. (internal merge request 3951).
-  * Modify slink:VkSamplerYcbcrConversionCreateInfo valid usage statements,
-    as well as the <<textures-chroma-reconstruction, Chroma Reconstruction>>
-    section, to make it clear the values of pname:xChromaOffset and
-    pname:yChromaOffset are only validated when chroma channels are
-    downsampled (internal merge request 3959).
-  * Allow flink:vkGetBufferMemoryRequrements and
-    flink:vkGetBufferMemoryRequrements2 to be called for an Android Hardware
-    Buffer backed slink:VkBuffer, before it is been bound to memory
-    (internal merge request 3982).
-  * Remove *Draft* status from `<<VK_EXT_private_data>>` (internal merge
-    request 3982).
-  * Move valid usage statement from slink:VkProtectedSubmitInfo to
-    slink:VkSubmitInfo (internal merge request 3987).
-  * Add valid usage statements for protected buffers to
-    slink:VkBindBufferMemoryInfo and slink:VkBindImageMemoryInfo
-    (internal merge request 3988).
-  * Add valid usage statement to slink:VkImageCreateInfo requiring that
-    images with linear tiling cannot have sparse residency (internal merge
-    request 3988).
-  * Clarify that the ptext:maxPerStageDesciptorUpdateAfterBind*
-    <<limits-required, Required Limits>> must be at least the corresponding
-    non- ptext:UpdateAfterBind limits (internal merge request 3992).
-
------------------------------------------------------
-
-Change log for July 3, 2020 Vulkan 1.2.146 spec update:
-
-  * Update release number to 146 for this update.
-
-Github Issues:
-
-  * Fix valid usage generation script for optional bitmasks in a
-    non-optional array (public pull request 1228).
-  * Add lunr to `package.json` and update the locally cached copy (public
-    pull request 1238).
-  * Require that newly released extensions have etext:*_SPEC_VERSION `1`
-    (public issue 1263).
-  * Add to the NOTE in slink:VkPhysicalDeviceIDProperties, advising
-    implementations on returning unique pname:deviceUUID values and avoiding
-    hardwired values, especially 0 (public issue 1273).
-  * Add noscript fallback for HTML output (public pull request 1289).
-  * Fix duplicated VUIDs in flink:vkCmdExecuteGeneratedCommandsNV (public
-    pull request 1304).
-  * Fix link markup in <<ray-traversal, Ray Traversal>> chapter, nested link
-    markup, and linear equation markup in
-    <<textures-unnormalized-to-integer>> (public pull requests 1305, 1306,
-    1307).
-
-Internal Issues:
-
-  * Add comments to extending enums in the generated API interfaces showing
-    which core version and/or extensions provide the enum, matching recent
-    changes to show this information for commands and structures (internal
-    issue 1431).
-  * Only allow code:Invocation memory scope in the
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    section when memory semantics is *None* (internal issue 1782).
-  * Make reflow script handle literal block delimiters and lines containing
-    only whitespace properly (internal issues 2039, 2042).
-  * Clarify definition of <<limits-maxFragmentCombinedOutputResources,
-    pname:maxFragmentCombinedOutputResources>> (internal issue 2236).
-  * Add missing `errorcodes=` XML attributes for some
-    `<<VK_EXT_display_control>>` commands.
-  * Clarify <<features-extentperimagetype, allowed extent values based on
-    image type>> and the related <<limits-maxImageDimension1D>>,
-    <<limits-maxImageDimension2D>>, <<limits-maxImageDimension3D>>,
-    <<limits-maxImageDimensionCube>> limits (internal merge request 3922).
-  * Remove redundant valid usage statement
-    VUID-VkFramebufferCreateInfo-flags-03188 (internal merge request 3934).
-  * Update style guide to recommend new extension spec language be contained
-    in existing asciidoctor files, unless it's of enough scope to create a
-    and new chapter (internal merge request 3955).
-
-New Extensions:
-
-  * `<<VK_EXT_directfb_surface>>` (public pull requests 1292, 1294).
-  * `<<VK_EXT_fragment_density_map2>>` (internal merge request 3914).
-
------------------------------------------------------
-
-Change log for June 20, 2020 Vulkan 1.2.145 spec update:
-
-  * Update release number to 145 for this update.
-
-Github Issues:
-
-  * Fix `<<VK_EXT_conservative_rasterization>>` interactions with external
-    SPIR-V and GLSL functionality in the extension appendix (public issue
-    1288).
-
-Internal Issues:
-
-  * Break SPIR-V validation into two sections,
-    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
-    and <<spirvenv-module-validation-runtime, Runtime SPIR-V Validation>>
-    (internal issue 1598).
-  * Add VkFormat enums for ASTC 3D formats to `vk.xml`. These values are
-    slotted into the reserved, and still disabled extension 289. They will
-    not appear in the published `vulkan_core.h` header and there is no
-    published extension utilizing them, but this allows external projects
-    such as KTX2 to use these values as part of their internal cross-API
-    formats by generating a header including this disabled extension
-    (internal merge requests 1662, 2216).
-  * Synchronize that shader binding table accesses from ray tracing
-    pipelines should be synchronized with the
-    ename:VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR pipeline stage and an
-    access mask of ename:VK_ACCESS_SHADER_READ_BIT (internal issue 1749).
-  * Validate that 3D image views are not used as attachments in
-    slink:VkFramebufferCreateInfo and slink:VkRenderPassAttachmentBeginInfo
-    (internal issue 2142).
-  * Increase the number of conditions recognized as build errors by the
-    valid usage extraction plugin (internal issue 2215).
-  * Relax slink:VkImportAndroidHardwareBufferInfoANDROID valid usage
-    statement 01881 to support external formats (internal issue 2220).
-  * Clearly define what "`optional capabilities`" means in the
-    <<spirvenv-capabilities, Capabilities>> section, and specify that if
-    *any* of the required core versions and/or extensions for a capability
-    is enabled, then it is valid to use that capability (internal merge
-    request 3827).
-  * Add ename:VK_FORMAT_B5G5R5_UNORM_PACK16 and
-    ename:VK_FORMAT_B5G5R5A1_UNORM_PACK16 to
-    `<<VK_EXT_custom_border_color>>` as exceptions when
-    <features-customBorderColorWithoutFormat>> is enabled (internal merge
-    request 3833).
-  * Add new <<spirvenv-format-type-matching, Image Format and Type
-    Matching>> section and refer to it from elsewhere in the spec,
-    clarifying rules regarding types for image operations (internal merge
-    request 3916).
-  * Fix typo sname:VkImageFormatProperties -> slink:VkFormatProperties
-    (internal merge request 3921).
-  * Move <<sparsememory-examples, sparse image examples>> to the Vulkan
-    Guide (internal merge request 3930).
-  * Fix typo in slink:VkAccelerationStructureBuildOffsetInfoKHR valid usage
-    statement 03553 (internal merge request 3938).
-  * Support <remove> tags for extending enumerants in XML (internal merge
-    request 3942).
-
-New Extensions:
-
-  * `<<VK_EXT_extended_dynamic_state>>`
-
------------------------------------------------------
-
-Change log for June 8, 2020 Vulkan 1.2.144 spec update:
-
-  * Update release number to 144 for this update.
-
-Internal Issues:
-
-  * Require `volatile` semantics for loading <<builtin-volatile-semantics,
-    certain variables used in ray pipeline stages>> in the
-    <<spirvenv-module-validation, Validation Rules within a Module>> and
-    also the <<ray-tracing-shader-call, Shader Call Instructions>> section
-    (internal issue 1924).
-  * Created new <<potential-format-features, Potential Format Features>>
-    section and corresponding glossary term, use the new term where
-    appropriate, and add some related valid usage statements to
-    flink:vkCmdBeginRenderPass, flink:vkCmdBeginRenderPass2,
-    slink:VkSubpassDescription, and slink:VkSubpassDescription2 (internal
-    issue 2031).
-  * Add interaction with `<<VK_KHR_ray_tracing>>` and corresponding `NV`
-    extension to flink:vkUpdateDescriptorSetWithTemplate (internal issue
-    2193).
-  * Resolve collisions in common VUID names using `{stageMaskName}`
-    qualifiers as part of the name and make fixes to
-    `config/vu-to-json/extension.rb` to match (internal issue 2215).
-  * Replace `shutil.move` operations with `copy` / `remove` in the base
-    `generator.py` code, working around a problem with bind mounts while
-    using the Khronos docker build image with `podman` instead of `docker`
-    (internal merge request 3872).
-  * Add a new <<spirvenv-extensions, SPIR-V Extensions>> subsection
-    containing a table showing the corresponding Vulkan extension or core
-    API required to support each of the SPIR-V extensions, replacing a
-    harder-to-read list of extensions (internal merge request 3876).
-  * Remove two redundant valid usage statements from flik:vkCmdResolveImage
-    (internal merge request 3878).
-  * Make repository REUSE-compliant, and run the `reuse` license checker as
-    part of internal CI. While most files now have SPDX license identifier
-    tags, some licenses are recorded in `.reuse/dep5` instead. Note that
-    this does not change licenses in the repository (aside from adding some
-    to files missing them), just insures that every file *has* an explicit
-    license (internal merge request 3904).
-  * Clarify that code:ImageMSArray is supported as part of the
-    <<features-shaderStorageImageMultisample>> feature (internal merge
-    request 3905).
-  * Reorganize some valid usage statements for flink:vkCmdBlitImage,
-    flink:vkCmdCopyBuffer, flink:vkCmdCopyBufferToImage,
-    flink:vkCmdCopyImage, flink:vkCmdCopyImageToBuffer, and
-    flink:vkCmdResolveImage as common valid usage statements, for
-    future-proofing (internal merge requests 3906, 3907, 3908, 3909, 3910).
-  * Add two valid usage statements to flink:vkAllocateMemory and
-    flink:vkCreateSampler for allocation limits of slink:VkDeviceMemory and
-    elink:VkSamplers, respectively (internal merge request 3923).
-
------------------------------------------------------
-
-Change log for June 8, 2020 Vulkan 1.2.143 spec update:
-
-  * Update release number to 143 for this update.
-  * Reorganize some valid usage statements for slink:VkBufferMemoryBarrier,
-    and for commands with elink:VkPipelineStageFlags parameters, as common
-    valid usage statements, for future-proofing (internal merge requests
-    3863, 3867).
-
-Github Issues:
-
-  * Move `translate_math.js` to the `scripts/` directory (public pull
-    request 1286).
-  * Minor cleanup of math markup (public pull request 1287).
-
-Internal Issues:
-
-  * Misc. licensing updates (internal issue 1017):
-  ** Replace the "`Exceptions`" clause on `vk.xml` with a dual Apache-2.0 OR
-     MIT license, with agreement of downstream developers known to be
-     affected by it. This enables use of `vk.xml` in GPLed projects under a
-     more widely used licensing scheme.
-  ** Use `SPDX-License-Identifier` tags in place of longer license text.
-     This does not change the license terms on files other than `vk.xml`,
-     but makes license statements in most files more compact.
-  ** Reorganize repository documentation (README.adoc, COPYING.adoc,
-     LICENSE.adoc, CONTRIBUTING.adoc, CODE_OF_CONDUCT.adoc, and BUILD.adoc)
-     with a more widely used split of information; make all of these files
-     Asciidoctor instead of Markdown format for consistency with the rest of
-     the repository; describe use of SPDX identifiers; and point to full
-     license text of the various OSS licenses used in the repository.
-  * Add new <<resources-image-views-identity-mappings, text describing the
-    identity swizzle>> incorporating the existing "`Component Mappings
-    Equivalent To ename:VK_COMPONENT_SWIZZLE_IDENTITY`" table, and refer to
-    this text in place of explicit references to
-    ename:VK_COMPONENT_SWIZZLE_IDENTITY in many places (internal merge
-    request 3399).
-  * Require code:storageBuffer16BitAccess capability if
-    `<<VK_KHR_16bit_storage>>` is enabled (internal merge request 3709).
-  * Added XML schema and generator script extensions to support 64-bit flags
-    and corresponding bitmasks (internal merge request 3718).
-  * Correct <<interfaces-resources-standard-layout, Standard Buffer Layout>>
-    alignment rules (internal merge request 3750).
-  * Relax non-strict line constraints in the <<primsrast-lines-basic>> and
-    <<primsrast-lines-bresenham>> sections (internal merge request 3792).
-  * Add missing `structextends` attribute to the
-    slink:VkPhysicalDevicePrivateDataFeaturesEXT definition in `vk.xml`
-    (internal merge request 3873).
-  * Move slink:VkImageFormatListCreateInfo valid usage statements to
-    flink:vkCreateImageView (internal merge request 3879).
-  * Update valid usage statements for slink:VkImageViewASTCDecodeModeEXT to
-    allow ASTC HDR formats (internal merge request 3881).
-  * Add missing extension dependency to
-    `<<VK_KHR_pipeline_executable_properties>>` definition in `vk.xml`
-    (internal merge request 3882).
-  * Require the <<features-customBorderColors>> feature be enabled when
-    using etext:VK_BORDER_COLOR_* in slink:VkSamplerCreateInfo (internal
-    merge request 3884).
-
------------------------------------------------------
-
-Change log for June 1, 2020 Vulkan 1.2.142 spec update:
-
-  * Update release number to 142 for this update.
-
-Github Issues:
-
-  * Add boilerplate descriptions of reserved bitmask types (public pull
-    request 1265).
-  * Move dynamic state valid usage statements from
-    slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV and
-    VkPipelineViewportShadingRateImageStateCreateInfoNV to
-    slink:VkGraphicsPipelineCreateInfo, where they are testable, and make
-    corresponding tweaks in `vk.xml` (public pull request 1268).
-  * Add missing flink:vkDestroyPrivateDataSlotEXT explicit valid usage
-    statement (public pull request 1269).
-  * Cast arguments of dlink:VK_MAKE_VERSION macro to code:uint32_t to avoid
-    compiler warnings (public pull request 1279).
-
-Internal Issues:
-
-  * Update <<fundamentals-validusage-pNext, description of pname:pNext
-    chains>> to allow structures in the chain to be defined by either core
-    versions or extensions. Add the new term "`extending structure`" to the
-    glossary to describe such structures, and use it in place of "`extension
-    structure`". Update the style guide accordingly (internal issue 1083).
-  * Add a comment to the beginning of generated API includes showing which
-    combinations of API core versions and extensions provide that API, based
-    on the explicit requirements in the API XML. This does not yet document
-    enumerants introduced by extending a base enum type (internal issue
-    1431).
-  * Relax the restriction that slink:VkBufferImageCopy::pname:bufferOffset
-    must be a multiple of 4 for flink:vkCmdCopyBufferToImage and
-    flink:vkCmdCopyImageToBuffer when run on graphics or compute queues, but
-    not on transfer queues (internal issue 1701).
-  * Document the types of "`special use`" extensions in the new
-    <<extendingvulkan-compatibility-specialuse, Special Use Extensions>>
-    section, summarize special uses in the generated metadata for extension
-    appendices, and link back to the new section from each special use
-    extension (internal issue 1938).
-  * Clarify behavior of flink:vkGetDeferredOperationMaxConcurrencyKHR,
-    allowing it to return zero for competed operations (internal issue 2036).
-  * Allow flink:vkGetInstanceProcAddr to resolve itself with a `NULL`
-    pname:instance (internal issue 2057).
-  * Modify the valid usage statement ID assignment script to track a range
-    of unused IDs for each extension branch under development, instead of
-    only allowing VUID assignment in `master` and `devel` branches (internal
-    issue 2100).
-  * Add `selector` and `selection` attributes for unions in XML, to enable
-    automatic generation of validation code (internal issue 2140).
-  * Fix validity generator for stext:Vk*Flags types that are aliases,
-    correcting generation of implicit valid usage for
-    slink:VkAccelerationStructureInfoNV::pname:flags. Remove
-    `noautovalidity` attribute for this member, as well as the previously
-    written explicit valid usage (internal issue 2140).
-  * Fix description of slink:VkTextureLODGatherFormatPropertiesAMD (internal
-    issue 2189).
-  * Remove redundant text about variables being explicitly laid out in the
-    <<interfaces-resources-layout, Offset and Stride Assignment>> section
-    (internal merge request 3691).
-  * Fix conflicting slink:VkSamplerYcbcrConversionCreateInfo valid usage
-    statements (internal merge request 3716).
-  * Fix use of code:AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT to
-    code:AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER in valid usage statement
-    02386 for slink:VkMemoryAllocateInfo (internal merge request 3808).
-  * Add missing `externsync` XML attributes for ftext:vkCmd* commands
-    (internal merge request 3825).
-  * Add missing `extends` attribute to
-    slink:VkDevicePrivateDataCreateInfoEXT XML (internal merge request
-    3834).
-  * Add code:RayGeometryIndexKHR to the `<<VK_KHR_ray_tracing>>` list of
-    built-in variables (internal merge request 3853).
-  * Restrict slink:VkBufferViewCreateInfo with ename:VK_WHOLE_SIZE, and
-    round down results of division in calculating the test in the
-    corresponding valid usage statements (internal merge request 3858).
-  * Miscellaneous cleanup and reorganization of synchronization language in
-    multiple places, and add the
-    <<synchronization-image-barrier-layout-transition-order>> section
-    (internal merge request 3861).
-  * Redefine ename:VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT and
-    ename:VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT as pseudo-stages in multiple
-    places (internal merge request 3862).
-  * Reorganize some valid usage statements, especially but not limited to
-    stage mask parameters for slink:VkImageMemoryBarrier,
-    slink:VkPipelineStageFlags, flink:vkCmdPipelineBarrier,
-    flink:vkCmdResetEvent, flink:vkCmdSetEvent, flink:vkCmdWaitEvents,
-    flink:vkCmdWriteBufferMarkerAMD, and flink:vkCmdWriteTimestamp as common
-    valid usage statements, for future-proofing (internal merge requests
-    3864, 3865, 3866, 3867, 3868).
-
------------------------------------------------------
-
-Change log for May 15, 2020 Vulkan 1.2.141 spec update:
-
-  * Update release number to 141 for this update.
-  * *Note*: Using the default build options, specification outputs will now
-    be created in `gen/out/` instead of `out/`, and header files will be
-    created in `gen/include/vulkan` instead of `include/vulkan`. This can be
-    overridden using the `-genpath` option to the frontend scripts like
-    `makeAllExts` and `makeSpec`, or by specifying `GENERATED=*path*` on the
-    make command line when invoking it directly.
-
-Github Issues:
-
-  * Assign new elink:VkDriverId and elink:VkVendorId enums for Mesa (public
-    issue 1256).
-
-Internal Issues:
-
-  * Fix a typo in the <<fragops-stencil, Stencil Test>> section, removing a
-    sentence fragment accidentally left over from an earlier merge conflict
-    resolution (internal issue 2158).
-  * Typo fixes for flink:vkGetRayTracingShaderGroupHandlesKHR and
-    flink:vkGetRayTracingCaptureReplayShaderGroupHandlesKHR valid usage
-    statements (internal merge request 3831).
-  * Add a `requiredBy` dictionary to the generated `vkapi.py` showing which
-    core versions or extensions require each API (internal merge request
-    3832).
-  * Allow specifying multiple API names for and tags in registry processing
-    scripts. Update the registry schema documentation accordingly, and
-    remove the redundant `xml_supported_name_of_api` method from the
-    VulkanConventions object (internal merge request 3836).
-  * Consolidate generated intermediate files and output documents into
-    $(GENERATED) directory, add -genpath option to scripts requiring them,
-    and modify Makefile accordingly. Add a new `makeSpec` script which
-    combines and extends the functionality of the `makeExt`, `makeKHR`, and
-    `makeAllExts` scripts (internal merge requests 3837, 3838, 3840, 3841).
-  * Add "`runtime`" to style guide and use that spelling consistently
-    (internal merge request 3843).
-
------------------------------------------------------
-
-Change log for May 3, 2020 Vulkan 1.2.140 spec update:
-
-  * Update release number to 140 for this update.
-
-Github Issues:
-
-  * Add `vk.xml` `noautovalidity` attribute to
-    flink:vkCmdBindTransformFeedbackBuffersEXT::pname:pSizes to cause change
-    in the generation of implicit valid usage statement for
-    pname:bindingCount (public issue 1227).
-  * Remove the special tokens (not part of the Vulkan API) suffixed with
-    etext:*_BEGIN_RANGE etext:*_END_RANGE, and etext:*_RANGE_SIZE from the
-    generated C headers, after consultation with downstream components and
-    ISVs and advanced warning to the developer community (public issue 1230,
-    internal issue 872).
-
-    *Note* if you absolutely require these tokens for some reason, you can
-    still build a version of the header which restores them. Edit
-    `scripts/genvk.py` to add the parameter `genEnumBeginEndRange = True` to
-    the `CGeneratorOptions` objects for the header file targets you want to
-    restore. See the version of `genvk.py` in the 1.2.139 spec update for an
-    example.
-  * Add valid usage statement to slink:VkApplicationInfo requiring that
-    pname:apiVersion be greater than or equal to dlink:VK_API_VERSION_1_0
-    (public pull request 1252).
-  * Add \<implicitexternsync> tags to `vk.xml` for flink:vkDestroyDevice
-    slink:VkQueue objects received from pname:device (public pull request
-    1255).
-  * Fix typo in slink:VkBufferMemoryBarrier language (public pull request
-    1257).
-
-Internal Issues:
-
-  * Automatically generate interface lists for extension appendices from
-    `vk.xml` using a new interface generator script, and update the style
-    guide's description of these appendices accordingly (internal issue
-    977, internal merge request 3819).
-  * Add transitive language to the <<formats-compatible-planes, Compatible
-    formats of planes of multi-planar formats>> section to pull in format
-    compatibility classes as well (internal issue 1615).
-  * Add valid usage statements to ftext:vkCmdBuildAccelerationStructure*KHR,
-    flink:vkCmdCopyAccelerationStructureToMemoryKHR, and
-    flink:vkCmdCopyMemoryToAccelerationStructureKHR for structure builds
-    bound to device memory (internal issue 2033).
-  * Don't generate etext:*_MAX_ENUM values in documentation generators,
-    since they're not part of the API, and only meaningful on compiled
-    headers (internal issue 2056).
-  * Remove special lifetime rules for pipelines in the
-    <<fundamentals-objectmodel-lifetime-cmdbuffers>> section (internal issue
-    2068).
-  * Improve valid usage statements for ftext:vkCmdTraceRays*, share more
-    common VUs between ftext:vkTraceRays*, and add ftext:vkCmdTracerays* VUs
-    for bound buffers. Improve documentation for the
-    pname:raygenShaderBindingOffset parameters and fork `NV` and `KHR` valid
-    usage statements, since the shader binding table is described
-    differently (internal issues 2075, 2136).
-  * Clarify lifetime of acceleration structure build inputs for
-    flink:vkCreateAccelerationStructureKHR (internal issue 2077).
-  * Add a Note to the <<framebuffer-blending, Blending>> section to stop
-    claiming that blending is ignored for all integer formats (internal
-    issue 2098).
-  * Mark handle parameters of some ftext:vkDestroy* commands as `optional`
-    and `externsync="true"` in `vk.xml` (internal issue 2129).
-  * Add missing `:refpage:` attributes for ray tracing common valid usage
-    statements (internal issue 2141).
-  * Redefine fragment to include the possibility of it covering multiple
-    pixels. This affects many parts of the specification including the
-    <<pipelines, Pipelines>>, <<primsrast, Rasterization>>, and <<fragops,
-    Fragment Operations>> chapters, the `<<VK_EXT_post_depth_coverage>>`
-    appendix, the `Coverage*` and `Sample Index` glossary entries, the
-    code:SampleId and code:SampleMask definitions in the
-    <<interfaces-builtin-variables, Built-In Variables>> section, and the
-    <<shaders-fragment-execution, Fragment Shader Execution>>,
-    <<shaders-fragment-earlytest, Early Fragment Tests>>, and
-    <<textures-texel-coordinate-systems, Texel Coordinate Systems>> sections
-    (internal merge request 3568).
-  * Refactor `scripts/genvk.py` script to specify generator and generator
-    options to the `Registry` object before loading XML. This allows
-    generator options to influence behavior such as reparenting enum
-    elements from feature/extension elmements to the enums they are being
-    added to, which is desirable for generating complete feature lists for
-    an extension or core version (internal merge request 3789).
-  * Raise a fatal error (instead of a warning) in `scripts/generator.py`
-    when two enumerants that are not aliased have the same value, so that CI
-    will fail (internal merge request 3807).
-  * Remove accidentally duplicated slink:VkSubpassDependency2 valid usage
-    statement 03093 (internal merge request 3826).
-
-New Extensions:
-
-  * `<<VK_EXT_private_data>>`
-  * `<<VK_EXT_custom_border_color>>`
-
------------------------------------------------------
-
-Change log for April 26, 2020 Vulkan 1.2.139 spec update:
-
-  * Update release number to 139 for this update.
-
-Github Issues:
-
-  * Configure Github CI with Azure pipelines and the Khronos Docker build
-    image (public pull request 1141).
-  * Move NOTE in flink:vkEnumerateInstanceVersion prior to valid usage
-    statements (public pull request 1237).
-  * Add `implicitexternsyncparams` to flink:vkDestroyInstance for
-    slink:VkPhysicalDevice objects (public pull request 1244).
-  * Note in the style guide that extension names are used as preprocessor
-    symbols in all the generated Vulkan headers (public pull request 1245).
-  * Move NOTE about app use of `switch` statements and Vulkan API enums from
-    the style guide into the <<fundamentals-validusage-enums, Valid Usage
-    for Enumerated Types>> section (public pull request 1246).
-  * Modify generator script to use Unix newlines on all platforms (public
-    pull request 1250).
-
-Internal Issues:
-
-  * Allow ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT error to be
-    generated by flink:vkQueuePresentKHR (internal issue 1932).
-  * Update references to the SPIR-V Specification to version 1.5.3 (internal
-    issue 1957).
-  * Add a \<comment> explaining why the bitfields defined for
-    slink:VkAccelerationStructureInstanceKHR in `vk.xml` are non-normative
-    (internal issue 1975).
-  * Add valid usage statement for flink:vkBindImageMemory2::pname:pBindInfos
-    to prevent binding disjoint memory twice (internal merge request 3696).
-  * Add valid usage statements to flink:vkGetBufferMemoryRequirements,
-    flink:vkGetImageMemoryRequirements, and
-    slink:VkBufferMemoryRequirementsInfo2 requiring that external Android
-    hardware buffers be bound to memory (internal merge request 3717).
-  * Fix implicit valid usage statement generation script for handle
-    parameters with `optional="false,true"` XML attributes (internal merge
-    request 3753).
-
-New Extensions:
-
-  * `<<VK_EXT_robustness2>>`
-  * `<<VK_QCOM_render_pass_shader_resolve>>`
-
------------------------------------------------------
-
-Change log for April 16, 2020 Vulkan 1.2.138 spec update:
-
-  * Update release number to 138 for this update.
-
-Github Issues:
-
-  * Use correctly tagged normative term macros in various places (public
-    pull request 1217).
-  * Fix C arrow markup in parameter descriptions (public pull request 1222).
-
-Internal Issues:
-
-  * Add language to the <<features-requirements, Feature Requirements>>
-    section, the <<versions, Core Revisions>> appendix, and the applicable
-    extensions to require major feature bits if the corresponding extension
-    is supported (internal issue 1961).
-  * Allow slink:VkAccelerationStructureCreateInfoKHR::pname:maxGeometryCount
-    = 0, and clarify that exactly one of pname:compactedSize and
-    pname:maxGeometryCount must: be zero. (internal issue 2079).
-  * Add `allowduplicate` attribute to XML `type` tags to enable future
-    structures which can allow multiple copies of a structure in their
-    pname:pNext chain (internal issue 2090).
-  * Add the glossary term "`format features`", and make minor clarifications
-    to uses of this term in several places in the <<resources, Resource
-    Creation>> chapter and the
-    <<resources-sampler-ycbcr-conversion-format-features, Sampler Ycbcr
-    Conversion Format Features>> section (internal merge request 3727).
-  * Add a constraint to the <<memory-external-android-hardware-buffer,
-    Android Hardware Buffer>> section requiring that bound slink:VkImage or
-    slink:VkBuffer objects be created with the
-    ename:VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID
-    flag set, and corresponding valid usage statements to
-    flink:vkBindBufferMemory, slink:VkBindBufferMemoryInfo,
-    flink:vkBindImageMemory, and slink:VkBindImageMemoryInfo (internal merge
-    request 3732).
-  * Fix pname:memoryTypes ordering description for device coherent memory
-    (ename:VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD) in the
-    <<memory-device-bitmask-list>> section (internal merge request 3738).
-  * Replace code:AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT with
-    code:AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER in the
-    <<memory-external-android-hardware-buffer-usage, AHardwareBuffer Usage
-    Equivalence>> table, and add
-    ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT flag for this case
-    (internal merge request 3741).
-  * Add more references to `NV` and `KHR` ray tracing pipelines in
-    discussions of creating pipelines, or generalize text so they need not
-    all be mentioned by name (internal merge request 3743).
-  * Allow *ShaderCallKHR* memory scope in ray tracing shaders, in the
-    <<spirvenv-module-validation, Validation Rules within a Module>>
-    appendix (internal merge request 3744).
-  * Use Khronos Dockerhub image for spec builds in internal CI (internal
-    merge request 3748).
-  * Add the `<<VK_KHR_dedicated_allocation>>` extension as a dependency of
-    `<<VK_ANDROID_external_memory_android_hardware_buffer>>` (internal merge
-    request 3751).
-
------------------------------------------------------
-
-Change log for April 06, 2020 Vulkan 1.2.137 spec update:
-
-  * Update release number to 137 for this update.
-
-Github Issues:
-
-  * Incorporate several changes to the specification build process and HTML
-    load-time scripts which pre-render KaTeX math, pre-fetch fonts, and
-    perform several other optimizations which can significantly improve load
-    time for the single-page HTML specification. In our internal evaluation
-    these changes appear to primarily help when using Chrome or Chromium,
-    with smaller improvements for Firefox and Safari. Speedups seem more
-    significant on Linux, Windows, and Android platforms, while MacOS
-    browsers may benefit less (public pull requests 702, 704, and 708).
-  * Clarify that code:OpVariable is decorated with code:Location, not
-    code:OpTypeStruct in the <<interfaces-iointerfaces-locations, Location
-    Assignment>> section (public issue 1203).
-  * Add a NOTE about the WSI origin location in the description of
-    flink:vkQueuePresentKHR (public pull request 1208).
-  * Add the `null-terminated` attribute to
-    slink:VkPerformanceValueDataINTEL::pname:valueString in `vk.xml` (public
-    pull request 1209).
-  * Mark slink:VkPhysicalDeviceVulkan11Properties and
-    slink:VkPhysicalDeviceVulkan12Properties structures as `returnedonly` in
-    `vk.xml` (public pull request 1210).
-  * Create explicit valid usage statements from text in the description of
-    slink:VkValidationFeaturesEXT (public pull request 1212).
-  * Update style guide to add "`user`" to the list of words *not* to use,
-    instead recommending "`application`" (public pull request 1213).
-  * Fix typos where `ext:` was used in the style guide instead of the new
-    `apiext:` asciidoctor macro (public pull request 1214).
-  * Miscellaneous minor markup and editing fixes (public pull request 1215).
-  * Remove etext:KHR from promoted ename:VK_MAX_DRIVER_NAME_SIZE in the
-    description of slink:VkPhysicalDeviceDriverProperties (public pull
-    request 1218).
-  * Correct use of `NULL` to dlink:VK_NULL_HANDLE in the
-    <<acceleration-structure-inactive-prims, Inactive Primitives and
-    Instances>> section (public pull request 1219).
-  * Remove trailing periods on valid usage statement text, as required by
-    the style guide, and add `scripts/deperiodize_vuids.py` to do this in
-    the future if needed (public pull request 1220).
-
-Internal Issues:
-
-  * Provide a warning in the repository `README.adoc` of pending header
-    changes to remove etext:VK_*_BEGIN_RANGE, etext:VK_*_END_RANGE, and
-    etext:VK_*_RANGE_SIZE tokens (internal issue 872).
-  * Describe the meaning of code:Device for the `<<VK_KHR_shader_clock>>`
-    extension in the <<shaders-scope-device, Device>>,
-    <<shaders-scope-queue-family, Queue Family>>, and
-    <<shaders-scope-command, Command>> sections of the shader
-    <<shaders-scope, Scope>> section (internal issue 1955).
-  * Allow slink:VkDebugUtilsObjectNameInfoEXT::pname:pObjectName to be
-    either NULL or an empty string to remove a previously set name (internal
-    issue #2019).
-  * Add missing VK_ERROR_OUT_OF_HOST_MEMORY error code in `vk.xml` for
-    flink:vkEnumerateInstanceVersion (internal issue 2029).
-  * Require code:R32i or code:R32ui image format for
-    code:OpImageTexelPointer atomic operations in the
-    <<spirvenv-module-validation, Validation Rules within a Module>> section
-    (internal issue 2049).
-  * Remove the `<pattern>` element from images used in the specification, to
-    avoid complaints from prawn-svg during PDF spec builds (internal issue
-    2053).
-  * Clarify usable sample counts for empty subpasses in the
-    <<features-variableMultisampleRate>> section and the related
-    flink:vkCmdBindPipeline valid usage statement, as well as in the
-    <<limits-framebufferNoAttachmentsSampleCounts>>
-    <<renderpass-noattachments>> sections (internal issue 2066).
-  * Clarify pname:aspectMask usage in render passes in
-    slink:VkGraphicsPipelineCreateInfo valid usage statement 01565 and in
-    slink:VkAttachmentReference2 (internal merge request 3664).
-  * Remove unused etext:VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_KHR
-    token from `vk.xml` and the `<<VK_KHR_ray_tracing>>` appendix
-    (internal merge request 3680).
-  * Require <<features-subgroup-extended-types,
-    pname:shaderSubgroupExtendedTypes>> for Vulkan 1.2 (internal merge
-    request 3680).
-  * Generate symlinks from refpage aliases to the API they're aliasing
-    (internal merge request 3694).
-  * Add an alias from the old ename:VK_ANDROID_NATIVE_BUFFER_EXTENSION_NAME
-    token (internal merge request 3697).
-  * Add `scripts/compImages.sh` to compare all images in two git branches of
-    the specification (internal merge request 3699).
-  * Improve valid usage statements for `<<VK_NV_device_generated_commands>>`
-    in flink:vkCmdExecuteGeneratedCommandsNV,
-    slink:VkGeneratedCommandsInfoNV,
-    flink:vkCmdPreprocessGeneratedCommandsNV,
-    slink:VkIndirectCommandsStreamNV, slink:VkIndirectCommandsLayoutTokenNV
-    and slink:VkGraphicsPipelineCreateInfo (internal merge request 3702).
-  * Clarify differences between `<<VK_NV_ray_tracing>>` and
-    `<<VK_KHR_ray_tracing>>` for
-    slink:VkPipelineCreationFeedbackCreateInfoEXT pipeline creation,
-    pname:shaderGroupHandleSize and pname:maxRecursionDepth limit
-    requirement differences, and detangle `SPV_KHR/NV_ray_tracing` in the
-    <<spirvenv-capabilities-table, List of SPIR-V Capabilities and enabling
-    features or extensions>> (internal merge request 3710).
-  * Add flink:vkGetImageViewAddressNVX and
-    slink:VkImageViewAddressPropertiesNVX to `<<VK_NVX_image_view_handle>>`
-    (internal merge request 3710).
-  * Shorten 'make' output by reducing redundant logging output from refpage
-    build targets (internal merge request 3729).
-  * Replace sname: macro with slink: everywhere except language actually
-    describing the structure in the macro argument (internal merge request
-    3728).
-  * Add flink:vkGetBufferMemoryRequirements2 and
-    flink:vkGetImageMemoryRequirements2 to the commands for which the
-    implementation makes guarantees about certain properties of the memory
-    requirements in the <<resources-association, Resource Memory
-    Association>> section, following the description of
-    slink:VkMemoryRequirements (internal merge request 3730).
-  * Add valid usage statements for
-    `<<VK_ANDROID_external_memory_android_hardware_buffer>>` (internal merge
-    request 3731).
-  * Add requirements on the
-    slink:VkAccelerationStructureMemoryRequirementsInfoKHR acceleration
-    structure for which memory type bits must be exposed (internal
-    advisorypanel issue 28).
-
-New Extensions:
-
-  * `<<VK_QCOM_render_pass_store_ops>>`
-
------------------------------------------------------
-
-Change log for March 24, 2020 Vulkan 1.2.136 spec update:
-
-  * Update release number to 136 for this update.
-
-Github Issues:
-
-  * Generate per-extension refpages from the extension appendices in the
-    specification instead of the old, minimal generated refpages, and update
-    the registry index to point to these refpages instead of the
-    specification (public issue 1195, internal issue 1999).
-  * Rename ename:VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL to
-    ename:VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL
-    to match the similar renaming of sname:VkQueryPoolCreateInfoINTEL to
-    slink:VkQueryPoolPerformanceQueryCreateInfoINTEL (public issue 1207,
-    internal issue 2048).
-
-Internal Issues:
-
-  * Add a new <<resources-sampler-ycbcr-conversion-format-features, Sampler
-    Ycbcr Conversion Format Features>> section, and update
-    elink:VkFormatFeatureFlagBits and valid usage statements for
-    slink:VkSamplerCreateInfo and slink:VkSamplerYcbcrConversionCreateInfo
-    to refer to it (internal issue 1963).
-  * Comment out reserved but unused ename:VK_ACCESS_RESERVED_31_BIT_KHR to
-    avoid generator script warnings (internal issue 2016).
-  * Fix some `<<VK_KHR_ray_tracing>>` valid usage IDs that were broken in
-    the 1.2.135 update (internal issue 2044).
-  * Remove `const` qualifier from
-    sname:VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::pname:pNext
-    in `vk.xml` (internal issue 2047).
-  * Remove `flowRoot` elements supported only by Inkscape from some of the
-    images, and update a couple to 96 DPI from 90 DPI due to current
-    Inkscape's insistence. This reduces warnings from prawn-svg during PDF
-    builds (internal issue 2053).
-  * Remove reference in the <<devsandqueues-lost-device, Lost Device>>
-    section to a non-existent list of functions returning
-    ename:VK_ERROR_DEVICE_LOST (internal merge request 3667).
-  * Add valid usage statements to slink:VkImageViewCreateInfo for cube and
-    cube array image view (internal merge request 3682).
-  * Remove redundant valid usage statement 00228 from flink:vkCmdBlitImage
-    (internal merge request 3684).
-  * Document the Khronos-provided Docker image, whose use is recommended
-    when building documents and generated files from this repository
-    (internal merge request 3686).
-  * Rename ename:VK_PIPELINE_COMPILE_REQUIRED_EXT from
-    ename:VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT and add an alias from the
-    old name, since it is not actually an error code. Add it to the
-    `successcodes` attributes of appropriate commands in `vk.xml` (internal
-    merge request 3687).
-
------------------------------------------------------
-
-Change log for March 17, 2020 Vulkan 1.2.135 spec update:
-
-  * Update release number to 135 for this update.
-
-Github Issues:
-
-  * Add missing dependencies of slink:VkExportMemoryWin32HandleInfoKHR on
-    slink:VkExportMemoryAllocateInfo in the slink:VkMemoryAllocateInfo
-    pname:pNext chain; slink:VkExportFenceWin32HandleInfoKHR on
-    slink:VkExportFenceCreateInfo in the slink:VkFenceCreateInfo pname:pNext
-    chain; and slink:VkExportSemaphoreWin32HandleInfoKHR on
-    slink:VkExportSemaphoreCreateInfo in the slink:VkSemaphoreCreateInfo
-    pname:pNext chain (public issue 1095).
-  * Update the <<spirvenv-module-validation, Validation Rules within a
-    Module>> section of the SPIR-V environment appendix to allow the
-    code:PhysicalStorageBuffer64 addressing model (public issue 1199).
-  * Fix markup in parameters section of
-    flink:vkGetPhysicalDeviceXcbPresentationSupportKHR (public pull request
-    1201).
-  * Amend rules in the <<extensions-vendor-id, Registering a Vendor ID with
-    Khronos>> section of the style guide to allow other Khronos APIs such as
-    OpenCL to reserve vendor IDs here so they can be shared with those APIs
-    (public KhronosGroup/OpenCL-Docs pull request 203).
-
-Internal Issues:
-
-  * Clarify layer loading order for slink:VkInstanceCreateInfo and in the
-    <<extendingvulkan-layers, Layers>> chapter following the specification
-    of slink:VkLayerProperties (internal issue 1986).
-  * Simplify markup for SPIR-V versions required by different Vulkan
-    versions in the <<spirvenv, Vulkan Environment for SPIR-V>> appendix
-    (internal issue 2011).
-  * Rename sname:VkQueryPoolCreateInfoINTEL to
-    slink:VkQueryPoolPerformanceQueryCreateInfoINTEL in the
-    `<<VK_INTEL_performance_query>>` extension (internal issue 2022).
-  * Add ename:VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT to
-    elink:VkValidationFeatureEnableEXT to specify that layers will process
-    code:debugPrintfEXT operations (internal issue 2023).
-  * Fix conflicting language in slink:VkSamplerYcbcrConversionCreateInfo
-    valid usage statement 01653 (internal merge request 3629).
-  * Add missing valid usage statement for slink:VkSparseImageMemoryBindInfo
-    to require slink:VkImage objects created with the
-    ename:VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag set (internal merge
-    request 3633).
-  * Remove redundant valid usage statement 00122 from flink:vkCmdCopyImage
-    (internal merge request 3643).
-  * Fix several places where `VULKAN_1_1` was used in asciidoctor
-    conditional markup instead of `VK_VULKAN_1_1` (internal merge request
-    3654).
-  * Fix conditional markup around slink:VkImageViewCreateInfo valid usage
-    statement 01018 to ensure it doesn't overlap a similar valid usage
-    statement written for another combination of enabled extensions and
-    versions (internal merge request 3655).
-  * Remove redundant valid usage statement from flink:vkCmdCopyImage that
-    was already covered by statements for slink:VkImageCopy. Eventually this
-    will be inverted so the statements are located with flink:vkCmdCopyImage
-    but that requires more work and is deferred (internal merge request
-    3656).
-  * Clarify wording of slink:VkImageMemoryBarrier valid usage statement
-    01671 and add a missing statement (internal merge request 3657).
-  * Minor fixes to the style guide to bring it up to date with respect to
-    the asciidoctor client, assignment of valid usage ID tags, and proper
-    placement of valid usage statements (internal merge request 3662).
-  * Add missing valid usage statements to slink:VkSubpassDescription2 based
-    on comparable statements for slink:VkSubpassDescription (internal merge
-    request 3663).
-
-New Extensions
-
-  * Ray Tracing package of extensions, including
-  ** `<<VK_KHR_deferred_host_operations>>`
-  ** `<<VK_KHR_pipeline_library>>`
-  ** `<<VK_KHR_ray_tracing>>`
-  * `<<VK_EXT_pipeline_creation_cache_control>>`
-  * `<<VK_NV_device_diagnostics_config>>`
-  * `<<VK_NV_device_generated_commands>>` (replacing
-    `VK_NVX_device_generated_commands`, which was an experimental vendor
-    extension and has been removed from the Specification and `vk.xml`).
-
------------------------------------------------------
-
-Change log for March 6, 2020 Vulkan 1.2.134 spec update:
-
-  * Update release number to 134 for this update.
-
-Github Issues:
-
-  * Fix flink:vkGetPhysicalDeviceToolPropertiesEXT implicit array valid
-    usage statements, rewrite for consistency, and explicitly state lifetime
-    of retrieved results (public pull request 1148).
-  * Change use of "`happens before`" to glossary term "`happens-before`"
-    (public pull request 1170).
-  * Use glossary terms "`release operation`" / "`acquire operation`" instead
-    of similar colloquial language (public pull request 1171).
-  * Fix minor spelling errors and duplicated words (public pull request
-    1174).
-  * Remove duplicate "`to`" word (public pull request 1176).
-  * Rephrase description of signaling / unsignaling for slink:VkEvent
-    (public pull request 1179).
-  * Update asciidoctor extension handling of C arrow operator to avoid need
-    for escaping it in custom macros, and corresponding fixes to markup in
-    the spec and to the style guide (public pull request 1186).
-  * Move layout transition NOTE in the
-    <<synchronization-image-layout-transitions, Image Layout Transitions>>
-    section below the corresponding normative paragraph (public pull request
-    1190).
-  * Change the parent handle types of slink:VkDisplayKHR and
-    slink:VkDisplayModeKHR in `vk.xml` (public pull request 1194).
-  * Add missing `len` attribute for
-    flink:vkQueueSignalReleaseImageANDROID::pname:pWaitSemaphores parameter
-    in `vk.xml` (public pull request 1196).
-
-Internal Issues:
-
-  * Link to HTML preview of `SPV_KHR_non_semantic_info` link in the
-    `<<VK_KHR_shader_non_semantic_info>>` appendix, instead of asciidoctor
-    source document (internal merge request 3614).
-  * Improve registry schema documentation description of allowed <enum> tags
-    inside <remove> tags (internal merge request 3614).
-
-  * Clarify behavior when reading or writing image formats with padding
-    ("`X`" components) in the "`Common Operation`" section of the <<copies>>
-    chapter, and that padding components are unused in the elink:VkFormat
-    description of such formats (internal issue 1122).
-  * Clarify that flink:vkGetDeviceProcAddr can be used for device-level
-    commands from instance extensions (internal issue 1960).
-  * Add a note to the <<primsrast-lines-bresenham, Bresenham Line Segment
-    Rasterization>> section clarifying that line rasterization does not
-    depend on sample locations (internal issue 1855).
-  * Add a new header macro dlink:VK_HEADER_VERSION_COMPLETE which provides
-    the complete version (major, minor, and patch/release) of the Vulkan
-    headers at compile time, and document the intended use cases for this
-    macro (internal issue 1990).
-  * Remove `optional` attribute from
-    slink:VkDebugUtilsObjectNameInfoEXT::pname:pObjectName in `vk.xml`,
-    making the string required (internal issue 2002).
-  * Add a missing `structextends` attribute for
-    slink:VkQueryPoolCreateInfoINTEL in `vk.xml` (internal merge request
-    3599).
-  * Clarify when implicit subpass dependencies are introduced in the
-    definition of slink:VkSubpassDependency (internal merge request 3603).
-  * Update several valid usage statements for flink:vkCmdResetQueryPool,
-    flink:vkCmdBeginQuery, and flink:vkCmdBeginQueryIndexedEXT which
-    interact with the presence of flink:vkCmdResetQueryPool commands in a
-    command buffer, and restrict the VUs to performance queries (internal
-    merge request 3604).
-  * Simplify a hard-to-parse sentence in the <<textures-RGB-sexp, RGB to
-    Shared Exponent Conversion>> section (internal merge request 3606).
-  * Add a `pdfwidth` attribute to markup for images inside tables, to work
-    around a crash occurring in recent versions of asciidoctor-pdf (internal
-    merge request 3626).
-
-New Extensions
-
-  * `<<VK_QCOM_render_pass_transform>>`
-
------------------------------------------------------
-
-Change log for February 15, 2020 Vulkan 1.2.133 spec update:
-
-  * Update release number to 133 for this update.
-
-Github Issues:
-
-  * Clarify language describing the <<commandbuffers-lifecycle, command
-    buffer lifecycle>> (public pull request 1152).
-  * Add anchor handles to chapters and VUID statements in the HTML outputs
-    (public pull request 1157).
-  * Update declaration of flink:vkCmdDrawIndexedIndirectCountAMD to alias
-    the core function rather than the KHR extension function (public pull
-    request 1165).
-  * Remove redundant NOTE discussing
-    ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT after the description
-    of slink:VkCommandBufferInheritanceInfo.txt (public pull request 1167).
-  * Reserved vendor ID for Codeplay (public pull request #1167).
-
-Internal Issues:
-
-  * Restrict flag bits to bit positions 0..30. Add language to the
-    <<fundamentals-validusage-flags, Valid Usage for Flags>> section
-    expressing the restriction; to the registry documentation where the
-    `bitpos` attribute is defined; and finally, add a test to the generator
-    scripts that warns of bits 31 and higher being used (internal issue
-    1945).
-  * Clarify dynamic indexing of sampler objects in the
-    <<interfaces-resources-descset, Descriptor Set Interface>> section, to
-    be controlled by the same feature as sampled images (internal issue
-    1951).
-  * Make the effect of query reset commands requiring multiple passes to
-    complete explicit, by disallowing resets of the same query from the same
-    primary command buffer in the description of flink:vkCmdResetQueryPool
-    and the valid usage statements for ftext:vkCmdBeginQuery* (internal
-    issue 1965).
-  * Update interaction between elink:VkFormatFeatureFlagBits affecting
-    slink:VkSamplerYcbcrConversionCreateInfo::pname:forceExplicitReconstruction
-    (internal merge request 3533).
-  * Generate implicit pname:sType-unique valid usage statements from
-    `validitygenerator.py` even for pname:pNext chains with only a single
-    valid structure type, to enable validation layers work (internal merge
-    request 3534).
-  * Clean up wording of some flink:vkBindImageMemory valid usage statements
-    (internal merge request 3547).
-  * Mark the `VK_EXT_shader_subgroup_vote` and
-    `VK_EXT_shader_subgroup_ballot` as deprecated in `vk.xml` (internal
-    merge request 3558).
-  * Tighten slink:VkSamplerYcbcrConversionCreateInfo::pname:chromaFilter
-    valid usage restriction to be ename:VK_FILTER_NEAREST instead of
-    ename:VK_FILTER_LINAER, now that other filters exist (internal merge
-    request 3561).
-  * Add valid usage statements to slink:VkCommandPoolCreateInfo and
-    slink:VkDeviceQueueCreateInfo requiring that the corresponding
-    ename:VK_COMMAND_POOL_CREATE_PROTECTED_BIT and
-    ename:VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT not be set if the protected
-    memory feature is not enabled. Previously this restriction was described
-    for the elink:VkCommandPoolCreateFlagBits and
-    elink:VkDeviceQueueCreateFlagBits types containing those flags, but not
-    in valid usage statements (internal merge request 3563).
-  * Fix conditional markup in the <<shaders-scope-device>> and
-    <<shaders-scope-queue-family>> sections to apply to Vulkan 1.2, as well
-    as `VK_KHR_vulkan_memory_model` (internal merge request 3570).
-  * Add performance queries to the list in the introduction of the
-    <<supported query types, queries>> chapter (internal merge request
-    3577).
-
-New Extensions
-
-  * `<<VK_KHR_shader_non_semantic_info>>`
-
------------------------------------------------------
-
-Change log for January 20, 2020 Vulkan 1.2.132 spec update:
-
-  * Update release number to 132 for this update.
-
-Github Issues:
-
-  * Move and reword a NOTE in the <<extendingvulkan-extensions, Extensions>>
-    section (public pull request 1131).
-  * Change redundant description of application error when using
-    flink:vkMapMemory into a non-normative NOTE (public pull request 1143).
-  * Remove redundant valid usage statement for flink:vkCmdExecuteCommands
-    (public pull request 1151).
-  * Remove redundant command buffer
-    ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT language in
-    flink:vkCmdExecuteCommands valid usage statements (public pull request
-    1153).
-  * Add flink:vkBeginCommandBuffer valid usage statement to prevent using a
-    primary command buffer with both the
-    ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT and
-    ename:VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flags (public pull
-    request 1154).
-  * Add slink:VkRenderPassBeginInfo valid usage statements for
-    pname:renderArea (public pull request 1159).
-  * Add missing valid usage statements for flink:vkCmdBeginRenderPass when
-    `VK_KHR_separate_depth_stencil_layouts` is enabled (public
-    KhronosGroup/Vulkan-ValidationLayers issue 1470).
-
-Internal Issues:
-
-  * Clarify the definition of "`transfer commands`" for
-    <<synchronization-pipeline-stages-transfer,
-    ename:VK_PIPELINE_STAGE_TRANSFER_BIT>> (internal issue 816).
-  * Clarify VK_ATTACHMENT_STORE_OP_DONT_CARE and reorder render pass chapter
-    (internal issue 1098).
-  * Clarify that <<pipelines-dynamic-state, Dynamic State>> can be set
-    before pipeline bind, and update valid usage statements accordingly
-    (internal issue 1624).
-  * Clarify the behavior of floating-point divide by zero in the
-    <<spirvenv-precision-operation, Precision and Operation of SPIR-V
-    Instructions>> section (internal issue 1669).
-  * Add a valid usage statement to flink:vkCmdResetQueryPool which allows
-    not calling flink:vkCmdEndQuery if a prior flink:vmCmdResetQuery command
-    was called (internal issue 1700).
-  * Refactor specification of shader scopes into the new <<shaders-scope,
-    Scope>> section, and modify other references to this language
-    accordingly. Also describe quad invocation groups properly, with
-    derivative and quad group operations referencing the description, and
-    call out helper invocations as being able to become spontaneously
-    inactive. Simplify parts of the texturing chapter accordingly (internal
-    issues 1824, 1884, 1885, 1911).
-  * Stop claiming that semaphore signals are ordered between different queue
-    commands in the <<synchronization-signal-operation-order>> section
-    (internal merge request 3542).
-  * Move a valid usage statement from slink:VkBindImagePlaneMemoryInfo to
-    flink:vkBindImageMemory2, where it can be determined (internal merge
-    request 3548).
-
------------------------------------------------------
-
-Change log for January 15, 2020 Vulkan 1.2.131 spec update:
-
-  * Vulkan 1.2 initial release. Update release number to 131 for this
-    update. The patch number will be used for all Vulkan 1.x spec updates,
-    and continue to increment continuously from the previous Vulkan 1.1.130
-    update.
-
-Github Issues:
-
-  * Use the attributes {prime}, {YCbCr}, and {RGBprime} for better markup of
-    prime symbols, and ease of changing the markup for the commonly used
-    color format names (public issue 636).
-  * Expand the <<extendingvulkan-extensions-extensiondependencies, Extension
-    Dependencies>> section to acknowledge that extension dependencies are
-    usually, but not always satisfied by promoted versions of the
-    dependencies, and point to the extension and version appendices for more
-    information (public issue 1085).
-  * Clarify the <<features-shaderStorageImageExtendedFormats,
-    pname:shaderStorageImageExtendedFormats>> feature and add corresponding
-    formats to the <<formats-mandatory-features-2byte>>,
-    <<formats-mandatory-features-10bit>>,
-    <<formats-mandatory-features-16bit>>, and
-    <<formats-mandatory-features-64bit>> tables (public pull request 1098).
-  * Fix issue 2 wording in the `<<VK_KHR_surface>>` appendix (public pull
-    request 1100).
-  * Fix valid usage statements for
-    slink:VkSwapchainCreateInfoKhr::pname:minImageCount interactions with
-    `<<VK_KHR_shared_presentable_image>>` (public pull request 1101).
-  * Change the etext:VK_QUERY_SCOPE_* tokens in the
-    slink:VkPerformanceCounterScopeKHR to aliases of new
-    etext:VK_PERFORMANCE_COUNTER_SCOPE_* tokens, following the naming
-    conventions for enumerants (public issue 1130).
-  * Move `NV` extension pipe stages in elink:VkShaderStageFlagBits so they
-    are not included in enmae:VK_SHADER_STAGE_ALL_GRAPHICS (public pull
-    request 1133).
-  * Clarify the introduction of the "`Surface Queries`" section of the
-    <<wsi, Window System Integration>> chapter (public pull request 1135).
-  * Fix macros that consume codelike text like pname:foo\->bar (public pull
-    request 1149).
-
-Internal Issues:
-
-  * Add a new <<fundamentals-errorcodes, error code>>,
-    ename:VK_ERROR_UNKNOWN, that can be returned by any function that has
-    error returns (internal issue 1654).
-  * Remove the `<<VK_EXT_filter_cubic>>` requirement to cubic filter the
-    formats etext:*USCALED_PACKED32, etext:*SSCALED_PACKED32,
-    etext:*UINT_PACK32, and etext:*SINT_PACK32 in the
-    <<features-required-format-support, Required Format Support>> section
-    (internal issue 1934).
-  * Add a missing valid usage statement for
-    `<<VK_KHR_buffer_device_address>>` to slink:VkBindBufferMemoryInfo,
-    based on a similar statement for flink:vkBindBufferMemory (internal
-    merge request 3512).
-  * Fix some 'name:' macros to the correct 'pname:' (internal merge request
-    3529).
-  * Changes to script tools to stay relatively aligned with OpenXR scripts
-    (internal merge request 3530).
-
------------------------------------------------------
-
-Change log for December 9, 2019 Vulkan 1.1.130 spec update:
-
-  * Update release number to 130
-
-Github Issues:
-
-  * Mark slink:VkPipelineExecutableInternalRepresentationKHR as
-    `returnedonly` in `vk.xml` (public pull request 1092).
-  * Use 'slink:' in autogenerated valid usage statements instead of 'sname:'
-    (public pull request 1093).
-  * Split flink:vkGetQueryPoolResults VU statement 00815, which had
-    disallowed internal asciidoctor conditionals into two (public issue
-    1094).
-  * Minor markup and editing fixes (public pull request 1099).
-  * Hide outdated valid usage statement when not building with timeline
-    semaphore extension (public pull request 1121).
-  * Add `<<VK_NV_glsl_shader>>` deprecation note (public pull request 1125).
-  * Add SPV and GLSL links to `<<VK_KHR_multiview>>` (public pull request
-    1128).
-
-Internal Issues:
-
-  * Clarify and consistently refer to the shader interface matching rules in
-    the <<interfaces, Shader Interfaces>> chapter (internal issue 1067).
-  * Clarify that inner array dimensions can't be sized with specialization
-    constants in the <<spirvenv-module-validation, Validation Rules within a
-    Module>> section (internal issue 1739).
-  * Use consistent markup for nested access (members, array references,
-    pointers) to structure members and function parameters (internal issues
-    503, 1765).
-  * Make slink:VkDeviceQueueInfo2::flags optional in `vk.xml` to remove an
-    inappropriate valid usage statement (internal issue 1805).
-  * Fix API name assignment for valid usage blocks in `scripts/reflow.py`
-    (internal issue 1809).
-  * Make spec language more internally consistent by fixing remaining cases
-    where the term "`an instance of (structurename)`" was used, and
-    expanding the style guide rules for describing pname:pNext chains along
-    with corresponding edits it (internal issue 1814).
-  * Disallow code:Workgroup memory and execution scope and code:Workgroup
-    storage class in all but compute, mesh, and task shaders in the
-    <<spirvenv-module-validation, Validation Rules within a Module>>
-    section. There is an exception for code:Workgroup execution scope in
-    tessellation control shaders because we do not have a more appropriate
-    scope for patch barriers (internal issue 1905).
-  * Restore 'Promoted to Vulkan 1.1 Core' comments in extension appendices,
-    which were accidentally removed in spec revision 1.1.129 (internal issue
-    1914).
-  * Add some minor markup fixes as well as new valid usage statements for
-    slink:VkAttachmentDescription, slink:VkAttachmentDescription2KHR, and
-    slink:VkAttachmentReference2KHR (internal merge request 3493).
-
-New Extensions
-
-  * `<<VK_EXT_tooling_info>>`
-
------------------------------------------------------
-
-Change log for November 25, 2019 Vulkan 1.1.129 spec update:
-
-  * Update release number to 129
-
-Github Issues:
-
-  * Rename "`pixel shaders`" to "`fragment shaders`" (public issue 1082).
-  * Fix some markup in external semaphore extension (public pull request
-    1083).
-  * Fix styleguide em-dash example (public pull request 1088).
-  * Update `.gitignore` to include some additional static refpages (public
-    pull request 1089).
-  * Restructure query language in <<wsi, Window System Integration (WSI)>>
-    chapter - split into sections, reordered orphaned paragraphs, simplify
-    language (public pull request 1090).
-
-Internal Issues:
-
-  * Remove NVIDIA contributors from `<<VK_KHR_performance_query>>` (internal
-    merge request 3481).
-
-New Extensions
-
-  * `<<VK_KHR_buffer_device_address>>`
-
------------------------------------------------------
-
-Change log for November 18, 2019 Vulkan 1.1.128 spec update:
-
-  * Update release number to 128
-
-Github Issues:
-
-  * Fix valid usage condition for
-    flink:vkAllocationMemory::pname:pAllocateInfo (public issue 1032).
-  * Change explicit valid usage statements for queue transfer operations in
-    flink:vkCmdWaitEvents and flink:vkCmdPipelineBarrier, and corresponding
-    language in the <<synchronization-queue-transfers-release>> section, to
-    incorporate access masks and clarify when queue transfer ops occur
-    (public pull request 1046).
-  * Ignore disabled bits in valid usage statements (public pull request
-    1062).
-  * Fix some broken HTML links (public pull request 1063).
-  * Change ename:VK_PIPELINE_CREATE_DISPATCH_BASE to an alias of new token
-    ename:VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, to follow the naming
-    conventions for bitmasks (public issue 1075).
-
-Internal Issues:
-
-  * Add valid usage statement to flink:vkQueueSubmit for attempted use of a
-    resource currently not available for use (internal issue 1751).
-  * Make it invalid for an implementation to return anything but
-    ename:VK_SUCCESS for the flink:vkFreeDescriptorSets and
-    flink:vkResetDescriptorPool commands (internal issue 1781).
-  * Add a note clarifying the relationship between
-    code:SubgroupLocalInvocationId and code:LocalInvocationId or
-    code:LocalInvocationIndex to the <<interfaces-builtin-variables-sgli,
-    code:SubgroupLocalInvocationId>> description (internal issue 1810).
-  * Add valid usage statements for scissor regions to
-    slink:VkPipelineViewportStateCreateInfo based on similar statements for
-    flink:vkCmdSetScissor, and generalize all these VUs to cover each
-    element of the pname:pScissors array (internal issue 1861).
-  * Fix the basis matrix for <<textures-texel-cubic-filtering, Texel Cubic
-    Filtering>> (internal issue 1878).
-  * Make the
-    slink:VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT::pname:pNext
-    member non-const, like other feature structures (internal issue 1880).
-  * Document that aggregate load/store may access padding bytes in the
-    <<memory-model-memory-location, Memory Location>> appendix (internal
-    cross-api/memory-model issue 113).
-  * Clarify in the description of elink:VkDescriptorBindingFlagBitsEXT that
-    ename:VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT descriptors allow
-    for updating different descriptors in the same set at the same time on
-    multiple threads (internal merge request 3419).
-  * Clarify that resolve attachments don't need to be compatible in the
-    <<renderpass-compatibility, Render Pass Compatibility>> section
-    (internal merge request 3422).
-  * Add Visual Studio folders to `.gitignore` (internal merge request 3450).
-  * Add language to
-    slink:sname:VkPipelineCoverageModulationStateCreateInfoNV documenting
-    that coverage modulation has no effect when using the
-    ename:VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV reduction mode, clarifying
-    an interaction with `<<VK_NV_coverage_reduction_mode>>` (internal merge
-    request 3456).
-
-New Extensions
-
-  * `<<VK_KHR_performance_query>>`
-
------------------------------------------------------
-
-Change log for November 4, 2019 Vulkan 1.1.127 spec update:
-
-  * Update release number to 127
-
-Github Issues:
-
-  * Consistently use the feature name pname:pipelineExecutableInfo as found
-    in `vk.xml` and the generated header files, instead of
-    pname:pipelineExecutableProperties as sometimes used in the
-    specification text (public issue 1061).
-  * Clarify the definition of the code:PrimitiveId returned by a
-    `<<VK_NV_ray_tracing>>` shader (public issue 1068).
-
-Internal Issues:
-
-  * Remove unused `draw_renderpass_validation.txt` valid usage text
-    (internal issue 1869).
-  * Require <<features-features-timelineSemaphore, pname:timelineSemaphore>>
-    if the `<<VK_KHR_timeline_semaphore>>` extension is supported (internal
-    issue 1873).
-  * Fix typos in slink:VkBindBufferMemoryInfo valid usage statement 02791
-    and various slink:VkSparseMemoryBind VUs (internal merge request 3411).
-  * Minor non-semantic markup and diagram fixes (internal merge request
-    3417).
-  * Clarify that <<interfaces-iointerfaces-locations, Location>> values are
-    physical slots, not a virtual table that just imposes an overall maximum
-    on the number of locations that can be used (internal merge request
-    3426).
-  * Add links to GLSL specs from the `<<VK_KHR_shader_clock>>` appendix, as
-    well as expected mappings for GLSL builtins (internal merge request
-    3429).
-
-New Extensions
-
-  * `<<VK_KHR_separate_depth_stencil_layouts>>`
-
------------------------------------------------------
-
-Change log for October 21, 2019 Vulkan 1.1.126 spec update:
-
-  * Update release number to 126
-
-Github Issues:
-
-  * Update the elink:VkAccessFlagBits etext:VK_ACCESS_MEMORY_* flags
-    definition to make clear that ename:VK_ACCESS_MEMORY_READ_BIT and
-    ename:VK_ACCESS_MEMORY_WRITE_BIT are meant to be equivalent to setting
-    all applicable etext:READ and etext:WRITE access flags, and update the
-    <<synchronization-access-types-supported, supported access types>> table
-    accordingly (public pull request 1014).
-  * Remove misleading NOTE in the <<synchronization-dependencies-chains>>
-    section (public pull request 1048).
-  * Clarify the memory mapping NOTE about invalidation described for
-    flink:vkInvalidateMappedMemoryRanges (public pull request 1049).
-  * Fix label for flink:vkCmdWaitEvents VUID 02803 (public pull request
-    1056).
-  * Styleguide fixes to several NOTES in the <<synchronization>> chapter
-    (public pull request 1057).
-  * Markup fix to <<features-features-timelineSemaphore>> section (public
-    pull request 1058).
-  * Convert some external links to `https` protocol (public pull request
-    1064).
-  * Remove unsupported nested links inside table captions (public pull
-    request 1067 + followon tweak to make 'allchecks' target pass).
-
-Internal Issues:
-
-  * Restrict the SPIR-V code:Invariant decoration to only be used with
-    code:Output variables in the <<spirvenv-module-validation, Validation
-    Rules within a Module>> section (internal issue 1832).
-  * Clarify that the <<features-independentResolve, independentResolve>>
-    feature implies support for the <<features-independentResolveNone,
-    independentResolveNone>> feature (internal issue 1848).
-  * Clarify self-contradictory language for slink:VkSubpassDescription to
-    say that resolves only happen within the render area (internal issue
-    1850).
-  * Add valid usage statements for slink:VkMemoryAllocateInfo and
-    corresponding language to elink:VkExternalMemoryFeatureFlagBitsKHR to
-    restrict implementations and applications from using both an external
-    host memory allocation and dedicated allocation (internal merge request
-    3375).
-
------------------------------------------------------
-
-Change log for October 13, 2019 Vulkan 1.1.125 spec update:
-
-  * Update release number to 125.
-
-Github Issues:
-
-  * Allow slink:VkRenderPassFragmentDensityMapCreateInfoEXT to extend
-    slink:VkRenderPassCreateInfo2KHR in `vk.xml` (public issue 1027).
-  * Fix markup in `<<VK_EXT_external_memory_dma_buf>>` appendix (public pull
-    request 1051).
-  * Update .gitignore (public pull request 1052).
-
-Internal Issues:
-
-  * Disallowed slink:VkEvent from participating in queue family ownership
-    transfers in the <<devsandqueues-index, Queue Family Index>> section
-    (internal issue 1691).
-  * Relax language describing default NT handle access rights for
-    slink:VkExportMemoryWin32HandleInfoKHR and
-    slink:VkExportSemaphoreWin32HandleInfoKHR (internal issue 1838).
-  * Fix markup for slink:VkDeviceCreateInfo valid usage statement 00372 to
-    remove imbedded asciidoctor conditionals by splitting it into two VUs
-    (internal issue 1846).
-  * Clarify lifetime of samplers used as immutable samplers in
-    slink:VkDescriptorSetLayoutBinding (internal issue 1849).
-  * Add a valid usage statement prohibiting flink:vkCmdBeginQuery on
-    timestamp queries (internal issue 1851).
-  * Correct some <<Precision of GLSL.std.450 Instructions, SPIR-V
-    instruction precisions>> (internal merge request 3391).
-  * Fix a typo in flink:vkQueueBindSparse valid usage statement 03245
-    (internal merge request 3394).
-
-New Extensions
-
-  * `<<VK_KHR_spirv_1_4>>`
-
------------------------------------------------------
-
-Change log for October 6, 2019 Vulkan 1.1.124 spec update:
-
-  * Update release number to 124.
-
-Github Issues:
-
-  * Fix Makefile SPECREMARK macro to work when not building in a git tree
-    (public issue 992).
-  * Ignore pname:aspectMask for unused attachments in
-    slink:VkSubpassDescription2KHR valid usage statements (public pull
-    request 1028).
-  * Minor markup / spelling fixes (public pull requests 1035, 1045).
-
-Internal Issues:
-
-  * Fix markup in Valid Usage statement for slink:VkCreateFramebuffer
-    (internal issue 1823).
-  * Add a new <<synchronization-signal-operation-order, _signal operation
-    order_>> section to the synchronization chapter which describes in
-    detail the ordering guarantees provided by the API between fence and
-    semaphore signal operations (internal merge request 3368).
-  * Move generated `appendix/meta/` files into the Makefile GENERATED
-    directory (internal merge request 3381).
-
-New Extensions
-
-  * `<<VK_KHR_shader_clock>>`
-  * `<<VK_KHR_timeline_semaphore>>`
-
------------------------------------------------------
-
-Change log for September 15, 2019 Vulkan 1.1.123 spec update:
-
-  * Update release number to 123.
-
-Github Issues:
-
-  * Add missing aspect mask descriptions to elink:VkImageAspectFlagBits
-    (public pull request 1029).
-  * Modify validity generator script to not check validity of ignored values
-    in same-parent valid usage statements (public pull request 1030).
-  * Make slink:VkDescriptorUpdateTemplateCreateInfo::pname:descriptorSetLayout
-    `noautovalidity` in `vk.xml` (public pull request 1031).
-  * Fix footnote markup in the <<vkGetDeviceProcAddr behavior>> table
-    (public pull request 1034).
-
-Internal Issues:
-
-  * Require that <<interfaces-builtin-variables-sgs, code:SubgroupSize>> be
-    a power of two (internal issue 1499).
-  * Clarify that shaderFloat64 and shaderInt64 enable all storage classes,
-    while shaderFloat16, shaderInt8, and shaderInt16 only enable
-    non-interface storage classes. in the <<features-shaderFloat64>>,
-    <<features-shaderInt64>>, and <<features-shaderInt16>> descriptions and
-    for slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR (internal issue
-    1582).
-  * Fix broken asciidoctor conditional logic in the
-    <<spirvenv-module-validation, Validation Rules within a Module>>
-    section, and add style guide language to help avoid this problem in the
-    future (internal issue 1808).
-  * Modify VUID assignment script to use the first API include in a block as
-    part of the VUID name rather than the last one, so the VUID is based on
-    the promoted API name (internal issue 1809).
-  * Cleanup string descriptions to consistently refer to "`null-terminated
-    UTF-8`" strings (internal issue 1813).
-  * Clarify the purpose of the
-    slink:VkPhysicalDeviceLimits::ptext:maxDescriptorSet* limits (internal
-    merge request 3357).
-  * Fix the slink:VkPhysicalDeviceRayTracingPropertiesNV limits for
-    pname:maxGeometryCount, pname:maxInstanceCount, and
-    pname:maxTriangleCount in the <<limits-required, Required Limits>>
-    section (internal issue 3372).
-  * Update SPIR-V image op sign-matching rules in the
-    <<spirvenv-module-validation, Validation Rules within a Module>>
-    section, the <<formats-numericformat>> table, and the
-    <<interfaces-resources-descset, Descriptor Set Interface>> section
-    (internal spirv/SPIR-V issue 332).
-
-New Extensions
-
-  * `<<VK_KHR_shader_subgroup_extended_types>>`
-  * `<<VK_GOOGLE_user_type>>`
-
------------------------------------------------------
-
-Change log for September 8, 2019 Vulkan 1.1.122 spec update:
-
-  * Update release number to 122.
-
-Internal Issues:
-
-  * Add style guide language on not using standalone `+` signs (internal
-    issue 736); not using leading whitespace for markup (internal issue
-    747); and on keeping descriptions of a single API in a contiguous block
-    of markup (internal issue 949), and apply them to the specification.
-  * Add a glossary definition of "`constant integral expression`", pointing
-    to the SPIR-V "`constant instruction`" definition (internal issue 1225).
-  * Many minor edits to improve writing style consistency and capture
-    additional style guidelines (internal issue 1553).
-  * Clarify that <<fragops-depth-write, depth writes are not performed>> if
-    there is no depth framebuffer attachment (internal issue 1771).
-  * Allow implementations to use rectangular line style of interpolation for
-    <<primsrast-lines-bresenham, wide Bresenham lines>>, though replicating
-    attributes is still preferred. Clarify that code:FragCoord is not
-    replicated (internal issue 1772).
-  * Resolve a contradiction in valid usage statements for
-    slink:VkImageCreateInfo and slink:VkImageStencilUsageCreateInfoEXT
-    (internal issue 1773).
-  * Add style guide discussion of markup for indented equations, and use
-    markup workaround for asciidoctor 2 compatibility (internal issue 1793).
-  * Deprecate the `<<VK_EXT_validation_flags>>` extension in `vk.xml` and
-    the extension appendix (internal issue 1801).
-  * Add a new checker script `scripts/xml_consistency.py`. This is not
-    currently run as part of internal CI (internal merge request 3285).
-  * Correct "`an`" -> "`a`" prepositions where needed (internal merge
-    request 3334).
-  * Clarify that the <<features-uniformBufferStandardLayout,
-    pname:uniformBufferStandardLayout>> feature is only required when the
-    extension defining it is supported (internal merge request 3341).
-  * Bring scripts into closer sync with OpenXR, mainly through conversion of
-    comments to docstrings where appropriate, and add gen-scripts-docs.sh
-    (internal merge request 3324).
-  * Correct pname:maxDrawMeshTasksCount to 2^16^-1 in the <<limits-required,
-    Required Limits>> table (internal merge requests 3361).
-
-New Extensions
-
-  * `<<VK_IMG_format_pvrtc>>` (public issue 512).
-
------------------------------------------------------
-
-Change log for August 25, 2019 Vulkan 1.1.121 spec update:
-
-  * Update release number to 121.
-
-Github Issues:
-
-  * Add missing `structextends` attribute in `vk.xml` for
-    slink:VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR (public
-    issue 1018).
-  * Change attributes of flink:vkCmdCopyAccelerationStructureNV,
-    flink:vkCmdWriteAccelerationStructuresPropertiesNV,
-    flink:vkCmdBuildAccelerationStructureNV, and flink:vkCmdTraceRaysNV to
-    require that these commands execute outside renderpasses (public issue
-    1021).
-  * Add an issue to the `<<VK_EXT_buffer_device_address>>` appendix
-    discussing the introduction of new names and aliasing by equivalent old
-    names (public pull request 1024).
-
-Internal Issues:
-
-  * Protect the `VK_KHR_sampler_mirror_clamp_to_edge` extension with
-    asciidoctor conditionals, and remove it from the core-only specification
-    builds, where it had previously been force-included in the Makefile. It
-    is now treated like any other extension (internal issue 1776).
-  * Edit some asciidoctor anchor names starting with `features-features-` to
-    just start with `features-`, since the old chapters was split into 3
-    pieces. There are still some mild naming inconsistencies with anchors
-    which may be addressed in the future (internal issue 1792).
-  * Add `KHR` alias for the non-suffixed extension token
-    ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, for compatibility
-    with naming rules for extensions (internal issue 1796).
-  * Clarify requirements for external memory in NOTEs for
-    sname:VkExternalMemoryBufferCreateInfo, and valid usage statements for
-    flink:vkBindBufferMemory, slink:VkBindBufferMemoryInfo,
-    flink:vkBindImageMemory, and slink:VkBindImageMemoryInfo (internal merge
-    request 3301).
-  * Make extension version numbers in `vk.xml` and extension appendices
-    consistent. In a few cases, we could not recover history at this
-    granularity, and left the summary of a version's change undefined
-    (internal merge request 3323).
-  * Fix invocation of `CodeInlineMacro` in the Ruby extension backing the
-    `code:` macro, which was delegating to the wrong base class (internal
-    merge request 3331).
-  * Modify `reg.py` to do a better job of recognizing equivalent <enum>
-    definitions.
-  * Add a `sortorder` attribute to XML feature and extension tags.
-
-New Extensions
-
-  * `<<VK_AMD_device_coherent_memory>>`
-
------------------------------------------------------
-
-Change log for August 17, 2019 Vulkan 1.1.120 spec update:
-
-  * Update release number to 120.
-
-Github Issues:
-
-  * Add slink:VkAccelerationStructureTypeNV explicitly to extension XML for
-    `<<VK_NV_ray_tracing>>` (public issue 848).
-  * Add missing valid usage statements for feature flags in
-    slink:VkCommandBufferInheritanceInfo (public pull request 1017).
-
-Internal Issues:
-
-  * Clarify behavior of non-premultiplied destination colors for
-    `<<VK_EXT_blend_operation_advanced>>` prior to the definition of
-    slink:VkBlendOverlapEXT (internal issue 1766).
-  * Fix the confusing phrasing "`no other queue must: be (doing something)`"
-    for flink:vkQueuePresentKHR, flink:vkQueueSubmit, and
-    flink:vkQueueBindSparse (internal issue 1774).
-  * Add `<<VK_EXT_validation_features>>` flag to enable best practices
-    checks, which will soon be available in the validation layer (internal
-    issue 1779).
-  * Specify allowed characters for VUID tag name components in the style
-    guide (internal issue 1788).
-  * Update links to SPIR-V extension specifications, and parameterize their
-    markup in case the URLs change in the future (internal issue 1797).
-  * Fix an off-by-one error in the valid usage statement for
-    slink:VkPipelineExecutableInfoKHR (internal merge request 3303).
-  * Clean up markup indentation not matching the style guide (internal merge
-    request 3314).
-  * Minor script updates to allow refpage aliases, generate a dynamic TOC
-    for refpages, generate Apache rewrite rules for aliases, open external
-    links from refpages in a new window, and synchronize with the OpenCL
-    scripts. This will shortly enable a paned navigation setup for refpages,
-    similar to the OpenCL 2.2 refpages (internal merge request 3322).
-  * Script updates to add tests to the checker, refactor and reformat code,
-    generate better text for some valid usage statements, use more Pythonic
-    idioms, and synchronize with the OpenXR scripts (internal merge request
-    3239).
-  * Script updates and minor fixes in spec language to not raise checker
-    errors for refpage markup of pages not existing in the API, such as
-    VKAPI_NO_STDINT_H. Remove corresponding suppression of some
-    check_spec_links.py tests from .gitlab-ci.yml and 'allchecks' target
-    (internal merge request 3315).
-
------------------------------------------------------
-
-Change log for August 11, 2019 Vulkan 1.1.119 spec update:
-
-  * Update release number to 119.
-  * A new extension was accidentally left out of the 1.1.118 spec update.
-    This update corrects that oversight.
-
-New Extensions:
-
-  * `<<VK_KHR_pipeline_executable_properties>>`
-
------------------------------------------------------
-
-Change log for August 11, 2019 Vulkan 1.1.118 spec update:
-
-  * Update release number to 118.
-
-Github Issues:
-
-  * Update `BUILD.adoc` to specifically require asciidoctor 1.5.8, and make
-    that change to the gitlab CI script (public issue 968).
-  * Remove redundant slink:VkSubpassDependency and
-    slink:VkSubpassDependency2KHR valid usage statements
-    (public pull request 995).
-  * Clarify the <<vkGetInstanceProcAddr behavior>> and <<vkGetDeviceProcAddr
-    behavior>> tables (public pull request 1004).
-  * Fix use of nonexistent
-    slink:VkSamplerYcbcrConversionImageFormatProperties::pname:maxCombinedImageSamplerDescriptorCount
-    (public pull request 1010).
-  * Use compatible pathlib for python2 (public pull request 1012).
-
-Internal Issues:
-
-  * Mark the <<VK_KHR_vulkan_memory_model>> extension as no longer
-    provisional in `vk.xml` (internal issue 1369).
-  * Clarify that use-defined code:Input and code:Output variables cannot be
-    code:Boolean in the <<interfaces-iointerfaces-user, User-defined
-    Variable Interface>> section (internal issue 1663).
-  * Fix naming inconsistencies in
-    slink:VkPhysicalDevicePerformanceQueryFeaturesKHR,
-    slink:VkPhysicalDevicePerformanceQueryPropertiesKHR,
-    slink:VkQueryPoolPerformanceCreateInfoKHR, and associated enumerants
-    (internal issue 1746).
-  * Use ACM reference style for normative references (internal merge request
-    3256).
-  * Explicitly list the features changed in Vulkan 1.1 in the
-    <<features-requirements, Feature Requirements>> section and the
-    <<versions, Core Revisions (Informative)>> appendix (internal merge
-    request 3274).
-  * Add the slink:VkPhysicalDeviceSubgroupSizeControlFeaturesEXT structure
-    to the <<VK_EXT_subgroup_size_control>> extension, which was
-    accidentally omitted in the initial release of the extension (internal
-    merge request 3287).
-  * Add missing slink:VkImageUsageFlag description for
-    ename:VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT (internal merge
-    request 3292).
-  * Add valid usage statements to slink:VkAccelerationStructureInfoNV and
-    flink:vkGetAccelerationStructureHandleNV to clarify usage of
-    acceleration structure handle and geometries (internal merge request
-    3292).
-
-New Extensions:
-
-  * `<<VK_AMD_shader_core_properties2>>`
-  * `<<VK_AMD_pipeline_compiler_control>>`
-
------------------------------------------------------
-
-Change log for July 28, 2019 Vulkan 1.1.117 spec update:
-
-  * Update release number to 117.
-
-Github Issues:
-
-  * Add ename:VK_STENCIL_FACE_FRONT_AND_BACK for naming consistency, and
-    alias the old ename:VK_STENCIL_FRONT_AND_BACK for backwards
-    compatibility (public issue 991).
-  * Fix minor issues with valid usage statements for
-    flink:vkCreateFramebuffer, slink:VkFramebufferCreateInfo, and
-    slink:VkRenderPassBeginInfo when the `<<VK_KHR_imageless_framebuffer>>`
-    extension is enabled (public issue 998).
-  * Clarify the subpass dependency requirement in the
-    <<renderpass-layout-transitions>> section to eliminate the need for a
-    subpass dependency for either the same or different layouts as long as
-    they're both read-only (relates to
-    https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/948).
-
-Internal Issues:
-
-  * Document that <<extendingvulkan-compatibility-promotion, backwards
-    compatibility aliases are not promoted>> as part of promoting an
-    extension (internal issue 1677).
-  * Update VK_ANDROID_native_buffer extension to spec version 8 (internal
-    issue 1753).
-  * Add missing section to the <<VK_KHR_shader_controls_v4_incompatibility,
-    VK_KHR_shader_float_controls>> extension appendix describing
-    the reason for the breaking API change in version 4 of the extension,
-    and correct the version to 4 in `vk.xml` (internal merge request
-    3275).
-  * Add valid usage statements to slink:VkAccelerationStructureInfoNV
-    requiring the ename:VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag for
-    buffers used in acceleration structure building.
-
-New Extensions:
-
-  * `<<VK_EXT_line_rasterization>>`
-  * `<<VK_EXT_texture_compression_astc_hdr>>`
-  * `<<VK_EXT_index_type_uint8>>`
-
------------------------------------------------------
-
-Change log for July 20, 2019 Vulkan 1.1.116 spec update:
-
-  * Happy 50th Lunar Landing Day!
-  * Update release number to 116.
-
-Internal Issues:
-
-  * Clarify that flink:vkCmdBeginQuery is the same as
-    flink:vkCmdBeginQueryIndexEXT with index = 0, and that
-    flink:vkCmdEndQuery is the same as flink:vkCmdEndQueryIndexEXT with
-    index = 0 (internal issue 1735).
-  * Clarify that when copying the depth aspect between buffers and images
-    via slink:VkBufferImage Copy, the depth values in buffer memory must be
-    in range if the `<<VK_EXT_depth_range_unrestricted>>` extension is not
-    enabled (internal issue 1737).
-  * Minor language tweaks in the <<spirvenv-module-validation, Validation
-    Rules within a Module>> section (internal issue 1744).
-  * Change the slink:VkPhysicalDeviceFloatControlsPropertiesKHR structure in
-    the `<<VK_KHR_shader_controls>>` extension. This is a rare case of
-    breaking the interface of an existing extension to acknowledge the
-    reality of divergent vendor implementations that could not be described
-    properly otherwise, and the breaking change is considered acceptable
-    given the expected low use of the extension (internal issue 1734).
-    Specific changes:
-  ** Added the slink:VkShaderFloatControlsIndependenceKHR enumeration to
-     describe the three possible behaviors.
-  ** Renamed pname:separateDenormSettings to
-     pname:denormBehaviorIndependence.
-  ** Renamed pname:separateRoundingModeSettings to
-     pname:roundingModeIndependence
-  * Add a missing valid usage statement for
-    slink:VkQueryPoolCreateInfo::pname:queryCount (internal issue 1742).
-  * Update the `<<VK_NV_shading_rate_image>>` appendix to list all
-    interfaces defined by the extension.
-  * Add a valid usage statement to
-    slink:VkWriteDescriptorSetAccelerationStructureNV to clarify that
-    acceleration structure descriptors must be top level structures.
-
-New Extensions:
-
-  * `<<VK_EXT_subgroup_size_control>>`
-
------------------------------------------------------
-
-Change log for July 14, 2019 Vulkan 1.1.115 spec update:
-
-  * Update release number to 115.
-
-GitHub issues:
-
-  * Add valid usage statements to slink:VkWriteDescriptorSet and
-    slink:VkCopyDescriptorSet specifying that updating immutable descriptors
-    with ename:VK_DESCRIPTOR_TYPE_SAMPLER is invalid, and that updating
-    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER ignores the update's
-    samplers (public issue 985).
-  * Document that the `manhtmlpages` target requires building with all
-    extensions enabled, in `BUILD.adoc` (public issue 992).
-  * Fix reference to the wrong subpass in valid usage statement for
-    slink:VkRenderPassCreateInfo (public pull request 994).
-
-Internal Issues:
-
-  * Rename slink:VkPhysicalDeviceShaderIntegerFunctions2INTEL and
-    ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS2_FEATURES_INTEL
-    for consistency with global naming conventions, and to help code
-    generation in other projects (internal issue 1685).
-  * Update valid usage statements for image code:Offset / code:ConstOffset
-    usage in the <<textures-gather, Texel Gathering>> and
-    <<spirvenv-module-validation, Validation Rules within a Module>>
-    sections, and for the <<limits-minTexelGatherOffset>> and
-    <<limits-maxTexelGatherOffset>> limits (internal issue 1723).
-  * Require code:code:OpGroupNonUniformBroadcast to take a constant `Id`
-    operand in the <<spirvenv-module-validation, Validation Rules within a
-    Module>> sections (internal issue 1726).
-  * Note that the swapchain specified in slink:VkImageSwapchainCreateInfoKHR
-    when creating an image must match the one specified in
-    slink:VkBindImageMemorySwapchainInfoKHR when binding memory to the image
-    (internal issue 1729).
-  * Remove stext:KHR suffix from some structure cross-references that were
-    promoted to Vulkan 1.1 (internal issue 1730).
-  * Fix structure name in `structextends` attribute for
-    slink:VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT in `vk.xml`
-    (internal issue 1740).
-  * Fix an error in the code:ClipColor() pseudocode for
-    <<VK_EXT_blend_operation_advanced>> (internal issue 1741).
-  * Add a row for
-    ename:VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV to the
-    description of elink:VkQueryType, and make a few related minor text
-    cleanups.
-  * Rename slink:VkPhysicalDeviceFloat16Int8FeaturesKHR to
-    slink:VkPhysicalDeviceShaderFloat16Int8FeaturesKHR for consistency,
-    retaining aliases of the old structure name and structure type enum for
-    backwards compatibility.
-
------------------------------------------------------
-
-Change log for July 7, 2019 Vulkan 1.1.114 spec update:
-
-  * Update release number to 114.
-
-Internal Issues:
-
-  * Fix extension appendix for `<<VK_INTEL_performance_query>>` to remove
-    duplicate citation of ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
-    (internal merge request 3234).
-
-New Extensions:
-
-  * `<<VK_KHR_imageless_framebuffer>>`
-
------------------------------------------------------
-
-Change log for June 30, 2019 Vulkan 1.1.113 spec update:
-
-  * Update release number to 113.
-
-Github Issues:
-
-  * Fix typo in `<<VK_EXT_global_priority>>` appendix (public issue 979).
-
-Internal Issues:
-
-  * Expand the explanation of
-    slink:VkSamplerYcbcrConversionImageFormatPropertiesKHR::pname:combinedImageSamplerDescriptorCount,
-    and explain how it interacts with slink:VkWriteDescriptorSet,
-    slink:VkDescriptorSetLayoutBinding::pname:descriptorCount, and
-    slink:VkDescriptorPoolSize::pname:descriptorCount (internal issue 1643).
-  * Clarify restrictions on components for code:OpImageGather in the
-    <<spirvenv-module-validation, Validation Rules within a Module>> section
-    (internal issue 1707).
-  * Clarify the descriptions of <<limits-computeUnitsPerShaderArray,
-    pname:computeUnitsPerShaderArray>> and <<limits-wavefrontSize,
-    pname:wavefrontSize>> fields in
-    slink:VkPhysicalDeviceShaderCorePropertiesAMD.
-
-New Extensions:
-
-  * `<<VK_EXT_texel_buffer_alignment>>`
-  * `<<VK_EXT_shader_demote_to_helper_invocation>>`
-
------------------------------------------------------
-
-Change log for June 23, 2019 Vulkan 1.1.112 spec update:
-
-  * Update release number to 112.
-
-Github Issues:
-
-  * Clarify that it is possible to use the <<memory-host, Host Memory>>
-    pname:pfnReallocation callback to free memory in any case that
-    pname:pfnFree could be used (public issue 973).
-
-Internal Issues:
-
-  * Clarify range and precision of code:OpImageQueryLod in the discussion of
-    scale factor and level-of-detail operation in the
-    <<textures-normalized-operations, Normalized Texel Coordinate
-    Operations>> section (internal issues 926, 1719).
-  * Fix framebuffer layer valid usage statements for
-    slink:VkRenderPassCreateInfo, slink:VkRenderPassCreateInfo2KHR, and
-    slink:VkFramebufferCreateInfo (internal issue 1670).
-  * Refactor common valid usage statements for flink:vkCmdBeginQuery and
-    flink:vkCmdBeginQueryIndexedEXT (internal issue 1682).
-  * Prohibit the ename:ename:VK_SAMPLER_YCBCR_RANGE_ITU_NARROW range from
-    being used in slink:VkSamplerYcbcrConversionCreateInfo for formats with
-    a bit depth less than 8 (internal issue 1688).
-  * Add missing interactions with `<<VK_EXT_host_query_reset_usage>>` in the
-    <<queries, Queries>> chapter (internal issue 1692).
-  * Clean up error output from the `optimize-pdf` build script on success.
-  * Fix an internal link to the <<spirvenv-correctly-rounded, Correctly
-    Rounded>> section in the SPIR-V appendix by adding and referring to that
-    anchor.
-  * Fix extension version numbers in `vk.xml` for `VK_EXT_filter_cubic` and
-    `VK_IMG_filter_cubic`.
-  * Specify division precision for negative numbers, and remove statement
-    that trigonometric functions have undefined precision, in the
-    <<spirvenv-precision-operation, Precision and Operation of SPIR-V
-    Instructions>> appendix.
-
------------------------------------------------------
-
-Change log for June 10, 2019 Vulkan 1.1.111 spec update:
-
-  * Update release number to 111.
-
-Github Issues:
-
-  * Clean up flink:vkGetPhysicalDeviceSurfaceFormatsKHR and
-    flink:vkGetPhysicalDeviceSurfaceFormats2KHR to drop the
-    ename:VK_FORMAT_UNDEFINED case, require callers pass a supported
-    surface, and rearrange some validation-related language (public issue
-    207).
-  * Allow dynamic and nonuniform indexing of acceleration structures in the
-    <<interfaces-resources-descset, Descriptor Set Interface>> section
-    (public KhronosGroup/glslang issue 1766).
-
-Internal Issues:
-
-  * Clarify when images require the use of YCbCr samplers for
-    slink:VkWriteDescriptorSet and slink:VkImageViewCreateInfo (internal
-    issue 1639).
-  * Remove the "`block`" language around <<features-robustBufferAccess,
-    vectorizing and robust buffer access>> (internal issue 1642).
-  * Allow code:OpTypeImageFormat == code:Unknown for input attachments in
-    the <<interfaces-resources-descset, Descriptor Set Interface>> section
-    (internal issue 1645).
-  * Fix asciidoctor conditionals around
-    ename:VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT in the
-    <<fundamentals-errorcodes>> section (internal issue 1679).
-  * Remove error codes from `vk.xml` for
-    flink:vkUninitializePerformanceApiINTEL, which has a `void` return type
-    (internal issue 1704).
-  * Various subgroup-related fixes in the <<spirvenv-capabilities,
-    Capabilities>>, <<shaders-subgroup-arithmetic, Arithmetic Subgroup
-    Operations>>, <<shaders-subgroup-clustered, Clustered Subgroup
-    Operations>>, and <<shaders-subgroup-partitioned, Partitioned Subgroup
-    Operations>> sections (internal merge request 3164).
-  * Fix asciidoctor markup affecting math rendering in the <<Precision of
-    core SPIR-V Instructions>> table (internal merge request 3166).
-  * Fix incorrect reference to flink:vkGetPhysicalDeviceFeatures2KHR in the
-    description of slink:VkPhysicalDeviceASTCDecodeFeaturesEXT (internal
-    merge request 3169).
-  * Fix a non-sentence in the introduction to the <<textures, Image
-    Operations Overview>> section (internal merge request 3184).
-  * Minor markup, grammar, and typo fixes for the
-    `<<NV_shader_sm_builtins>>` extension spec language (internal merge
-    request 3189).
-  * Clarify that 1D and 1D array format support is optional for cubic
-    filters, immediately following the <<formats-mandatory-features-astc,
-    Mandatory ASTC LDR format support>> table (internal merge request 3194).
-
------------------------------------------------------
-
-Change log for June 2, 2019 Vulkan 1.1.110 spec update:
-
-  * Update release number to 110.
-
-Github Issues:
-
-  * Fix typo (public pull request 972).
-  * Rename Pastel driver ID to SwiftShader (public pull request 974).
-
-New Extensions:
-
-  * `<<VK_EXT_fragment_shader_interlock>>`
-  * `<<VK_NV_shader_sm_builtins>>`
-
------------------------------------------------------
-
-Change log for May 24, 2019 Vulkan 1.1.109 spec update:
-
-  * Update release number to 109.
-
-Github Issues:
-
-  * Require matching for physical devices to be in a device group in the
-    <<devsandqueues-devices, Devices>> section (public issue 695).
-  * Fix typo in an equation in the <<fragmentdensitymap-fetch-density-value,
-    Fetch Density Value>> section (public issue 954).
-  * Fix styleguide links (public pull request 965).
-
-Internal Issues:
-
-  * Allow <<renderpass-compatibility, compatibility of single-subpass
-    renderpasses>> with different resolve attachments (internal issue 1464).
-  * Add some missing empty flags types to API spec so custom refpage
-    generation doesn't break (internal issue 1607).
-  * Add a "`SPIR-V Sampled Type`" column to the <<formats-numericformat,
-    Interpretation of Numeric Formats>> table, and clarify the requirement
-    that the code:OpTypeImage sampled type match the bound image's numeric
-    format for slink:VkClearColorValue and in the
-    <<interfaces-resources-descset, Descriptor Set Interface>> section
-    (internal issue 1646).
-  * Fix a typo in the <<tessellation-quad-tessellation, Quad Tessellation>>
-    section which should refer to rectangles, not triangles (internal issue
-    1667).
-  * Clarify the definition of time domains in elink:VkTimeDomainEXT
-    (internal merge request 3110).
-  * Add R10X6 and R12X4 formats to the <<formats-mandatory-features-10bit>>
-    table (internal merge request 3137).
-  * Don't require extern sync on wait/signal semaphores in `vk.xml` for
-    flink:vkQueueSubmit and flink:vkQueueBindSparse (internal merge request
-    3116).
-  * Improve phrasing of compute and mesh shader size related to
-    code:LocalSize and code:WorkgroupSize in
-    slink:VkPhysicalDeviceMeshShaderPropertiesNV and
-    slink:VkPhysicalDeviceMaintenance3Properties (internal merge request
-    3156).
-  * Make the flink:vkCmdBindShadingRateImageNV pname:imageView parameter
-    optional in `vk.xml` (internal merge request 3157).
-
-New Extensions:
-
-  * `<<VK_INTEL_performance_query>>`
-  * `<<VK_INTEL_shader_integer_functions2>>`
-
------------------------------------------------------
-
-Change log for May 13, 2019 Vulkan 1.1.108 spec update:
-
-  * Update release number to 108.
-
-Internal Issues:
-
-  * Clarify that only external resources can be bound to external memory in
-    valid usage statements for flink:vkBindBufferMemory,
-    flink:vkBindImageMemory, slink:VkSparseMemoryBind, and
-    slink:VkSparseImageMemoryBind (internal issue 1496).
-  * Move all `vk.xml`requirements for
-    flink:vkGetDeviceGroupSurfacePresentModes2EXT into
-    `<<VK_EXT_full_screen_exclusive>>` (internal issue 1622).
-  * Add some missing valid usage statements for
-    flink:vkCmdEndQueryIndexedEXT (internal issue 1638).
-  * Specify rules for defining "`New Flags and Bitmask Types`" in that
-    section of the style guide (internal issue 1649).
-  * Add a comment to the `vk.xml` extension block for
-    `VK_ANDROID_native_buffer` explaining why the extension is tagged
-    `"disabled"` (internal issue 1657).
-  * Fix typos in the description of slink:VkImageViewCreateInfo (internal
-    issue 1661).
-  * Modify valid usage statements for slink:VkImageViewCreateInfo to fix the
-    description about the restriction for pname:baseArrayLayer and
-    pname:layerCount from pname:extent.depth to the depth of mipmap level
-    while creating a 2D array image view on a 3D image.
-  * Forbid structures that contain opaque types (images or samplers) in the
-    SPIR-V <<spirvenv-module-validation, Validation Rules within a Module>>
-    section.
-  * Minor editorial changes for the `VK_EXT_swapchain_colorspace` extension
-    in the description of slink:VkColorSpace KHR and `vk.xml`, including:
-  ** Consistently specify which function (OETF or Inverse-EOTF) is being
-     defined;
-  ** Remove the Display P3 EOTF, since no other EOTFs are defined;
-  ** Include luminance range for the HLG OETF;
-  ** Remove a duplicated paragraph; and,
-  ** Rename ename:VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, leaving the old
-     ename:VK_COLOR_SPACE_DCI_P3_LINEAR_EXT token as an alias.
-
-New Extensions:
-
-  * `<<VK_NV_framebuffer_mixed_samples_coverage_reduction_mode>>`
-  * `<<VK_KHR_uniform_buffer_standard_layout>>`
-
------------------------------------------------------
-
-Change log for April 16, 2019 Vulkan 1.1.107 spec update:
-
-  * Update release number to 107.
-
-Public Issues:
-
-  * Fix revision date for the `<<VK_AMD_gpu_shader_half_float>>` appendix
-    (public issue 617).
-  * Make <<synchronization-pipeline-barriers-subpass-self-dependencies,
-    subpass self-dependencies>> less restrictive (public issue 777).
-  * Fix the `<<VK_EXT_full_screen_exclusive>>` dependency on
-    `<<VK_KHR_win32_surface>>` in `vk.xml` (public pull request 849).
-  * Remove single-page (`apispec.html`) refpage sub-targets from the
-    Makefile `allman` target and the build instructions. The target is still
-    present in the Makefile, but we have not been actively maintaining the
-    single-page document and do not promise it will work. The full
-    Specification and the individual API reference pages are what we support
-    and publish at present (public issue 949).
-
-Internal Issues:
-
-  * De-duplicate common valid usage statements shared by multiple commands
-    or structures by using asciidoctor includes and dynamically assigning
-    part of the valid usage ID based on which command or structure they're
-    being applied to (internal issue 779).
-  * Add reference pages for constructs not part of the formal API, such as
-    platform calling convention macros, and script changes supporting them
-    This required suppressing some check_spec_links warning classes in order
-    to pass CI, until a more sophisticated fix can be done (internal issue
-    888).
-  * Change math notation for the elink:VkPrimitiveTopology descriptions to
-    use short forms `v` and `p` instead of `vertex` and `primitive`,
-    increasing legibility (internal issue 1611).
-  * Rewrite generated file includes relative to a globally specified path,
-    fixing some issues with refpage generation (internal issue 1630).
-  * Update contributor list for `<<VK_EXT_calibrated_timestamps>>`.
-  * Fix use of pathlin in `scripts/generator.py` so the script will work on
-    Windows under Python 3.5 (internal merge request 3107).
-  * Add missing conditionals around the
-    <<descriptorsets-accelerationstructure, Acceleration Structure>>
-    section (internal merge request 3108).
-  * More script synchronization with OpenXR spec repository (internal merge
-    request 3109).
-  * Mark the `<<VK_AMD_gpu_shader_half_float>>` and
-    `<<VK_AMD_gpu_shader_int16>>` extensions as deprecated in `vk.xml` and
-    the corresponding extension appendices (internal merge request 3112).
-
-New Extensions:
-
-  * `<<VK_EXT_headless_surface>>`
-
------------------------------------------------------
-
-Change log for April 7, 2019 Vulkan 1.1.106 spec update:
-
-  * Update release number to 106.
-
-Public Issues:
-
-  * Add searchbox and generate search index for the chunked HTML target.
-    Note that doing this requires several new toolchain components to build
-    the `chunked` target (public issue 578 / internal issue 1352).
-  * Remove descriptions of flink:vkCreateSampler sampler constraints which
-    were repeated in the valid usage statements (public pull request 648).
-  * Fix sense of conditional around a valid usage statement in the
-    <<copies>> chapter (public issue 942).
-
-Internal Issues:
-
-  * Add missing pname:extent.width and pname:extent.height valid usage
-    statements for flink:vkCmdClearAttachments (internal issue 1583).
-  * Fix some inconsistencies in structures and corresponding pname:sType
-    enumerant names by renaming
-    sname:VkPhysicalDeviceShaderDrawParameterFeatures ->
-    slink:slink:VkPhysicalDeviceShaderDrawParametersFeatures;
-    sname:VkPhysicalDeviceVariablePointerFeatures ->
-    slink:VkPhysicalDeviceVariablePointerFeatures;
-    sname:VkPhysicalDeviceVariablePointerFeaturesKHR ->
-    slink:VkPhysicalDeviceVariablePointerFeaturesKHR;
-    sname:VkPhysicalDeviceBufferAddressFeaturesEXT ->
-    slink:VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
-    etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES
-    ->
-    ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES;
-    etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES ->
-    ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
-    etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR ->
-    ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR;
-    and etext:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT
-    ->
-    ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT.
-    The old names are still available as aliases for backwards
-    compatibility. This change required introducing valid XML markup which
-    externally written XML processing scripts may need to be modified to
-    accomodate, to support multiple aliases of a single command or token
-    name (internal issue 1592).
-  * Add slink:VkDevice as the first parameter to flink:vkSetLocalDimmingAMD
-    (internal issue 1618).
-  * Improve CI header compilation tests to test all Vulkan platform
-    includes, using fake platform headers where needed, and change the
-    `allchecks` Makefile target to use the more comprehensive
-    `check_spec_links.py` script instead of the retired `checkinc` and
-    `checklinks` targets.
-  * Move descriptions of the ASTC compressed texture decode mode from the
-    <<appendix-compressedtex-astc,appendix>> to the recently updated
-    external Khronos Data Format Specification.
-  * Fix minor markup and spelling issues in the `VK_NV_ray_tracing`
-    extension.
-
------------------------------------------------------
-
-Change log for March 19, 2019 Vulkan 1.1.105 spec update (GDC edition):
-
-  * Update release number to 105.
-
-Public Issues:
-
-  * Fix contractions and other markup issues (public pull request 935).
-
-New Extensions:
-
-  * Google Games Platform
-  ** New `ggp` platform and associated header file `vulkan_ggp.h`
-  ** `VK_GGP_frame_token`
-  ** `VK_GGP_stream_descriptor_surface`
-
------------------------------------------------------
-
-Change log for March 18, 2019 Vulkan 1.1.104 spec update:
-
-  * Update release number to 104.
-
-Public Issues:
-
-  * Remove the incorrect line from "`Initial`" to "`Invalid`" state in the
-    <<commandbuffer-lifecycle-diagram, Lifecycle of a command buffer>>
-    diagram (public issue 881).
-  * Add Fuchsia platform to <<boilerplate-wsi-header-table, Window System
-    Extensions and Headers>> table (public pull request 933).
-  * Change the type of
-    slink:VkBufferDeviceAddressCreateInfoEXT::pname:deviceAddress from
-    basetype:VkDeviceSize to basetype:VkDeviceAddress. These are both
-    typedefs of code:uint64_t, so it is an ABI-compatible change (public
-    issue 934).
-
-Internal Issues:
-
-  * Remove generated header files and update the CI tests to build a copy of
-    the headers for use by the hpp-generate / hpp-compile CI stages. Targets
-    to generate the headers will not be removed, but keeping these generated
-    files in the repository increased the frequency of conflicts between
-    branches when merging to master (internal issue 745).
-  * Reword "`undefined: behavior if *action*" to "`must: not do *action*`"
-    in the places the old terminology was used, and add a new
-    <<writing-undefined, Describing Undefined Behavior>> section of the
-    style guide to explain how to write such language in the future
-    (internal issue 1579).
-  * Move almost all Python scripts into the toplevel `scripts/` directory.
-    Apply extensive internal edits to clean up and simplify the scripts, and
-    try to follow PEP8 guidelines. Generalize the scripts with the use of a
-    Conventions object controlling many aspects of output generation, to
-    enable their use in other Khronos projects with similar requirements.
-    Autogenerate extension interface refpages (these are experimental and
-    may be retired going forward).
-
-New Extensions:
-
-  * `VK_AMD_display_native_hdr`
-  * `VK_EXT_full_screen_exclusive` (internal issue 1439)
-  * `VK_EXT_host_query_reset`
-  * `VK_EXT_pipeline_creation_feedback` (internal issue 1560)
-  * `VK_KHR_surface_protected_capabilities` (internal issue 1520)
-
------------------------------------------------------
-
-Change log for March 11, 2019 Vulkan 1.1.103 spec update:
-
-  * Update release number to 103.
-
-Public Issues:
-
-  * Remove (unnecessary) scoped modification order case from the memory
-    model <<memory-model-location-ordered, location-ordered>> definition
-    (public pull request 924).
-  * Add an <<memory-model-acyclicity, acyclicity>> axiom to the memory model
-    (public pull request 927).
-
-Internal Issues:
-
-  * Fix reversed logic of slink:VkFormatProperties discussion of multi-plane
-    formats and ename:VK_FORMAT_FEATURE_DISJOINT_BIT (internal issue 1493).
-  * Clarify how slink:VkImageStencilUsageCreateInfoEXT works, including new
-    valid usage statements for flink:vkCmdClearDepthStencilImage, and the
-    <<copies, Common Operation>> section of the Copy Commands chapter
-    (internal issue 1565).
-  * Update <<spirvenv-precision-operation, Precision and Operation of SPIR-V
-    Instructions>> section to require that denorms be preserved by several
-    instructions that don't perform any mathematical operations (internal
-    issue 1584).
-  * Remove duplicate valid usage statement from flink:vkAcquireNextImageKHR
-    (internal merge request 3062).
-
------------------------------------------------------
-
-Change log for March 3, 2019 Vulkan 1.1.102 spec update:
-
-  * Update release number to 102.
-
-Public Issues:
-
-  * Simplify flink:vkGetImageMemoryRequirements constraint for
-    ename:VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT (public pull request 817).
-  * Fix typo in markup of the <<textures-texel-coordinate-systems-diagrams,
-    Texel Coordinate Systems, Corner Sampling>> image that was generating
-    complaints from chunked HTML output generation (public pull request
-    928).
-
-Internal Issues:
-
-  * Split the old <<features, Features>> chapter into four chapters:
-    <<features, Features>>, <<limits, Limits>>, <<formats, Formats>>, and
-    <<capabilities, Capabilities>>, with minor edits to the introductory
-    paragraph of each chapter. Anchor names in these chapters were changed,
-    with corresponding effects to xrefs to these anchors elsewhere in spec
-    markup . The purpose is to make the chunked HTML spec output load faster
-    on what was previously a single, gigantic chapter (internal issue 1554).
-  * Add ename:VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV, to the supported
-    pipeline stages for ename:VK_ACCESS_UNIFORM_READ,
-    ename:VK_ACCESS_SHADER_READ, and ename:VK_ACCESS_SHADER_WRITE in the
-    <<synchronization-access-types-supported>> table.
-  * Correct legal name of Google, LLC in vk.xml <tags> section and a
-    copyright statement.
-  * Clarify that Vulkan treats the Android
-    code:AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM format as RGBA, and the
-    application is responsible for forcing the X/A component to be read as
-    1.0, in the <<memory-external-android-hardware-buffer-formats>> table.
-  * Clarify the vertex order of various primitive topologies, and define the
-    order of transform feedback vertex capture based on that. This involves
-    a lot of refactoring and cleanup in the <<drawing-primitive-topologies,
-    Primitive Topologies>>, <<geometry-input, Geometry Shader Input
-    Primitives>> sections, and <<vertexpostproc-transform-feedback Transform
-    Feedback>> sections, and numerous places in the <<tessellation>>
-    chapter,
-
-New Extensions:
-
-  * `VK_EXT_metal_surface`
-  * `VK_EXT_ycbcr_image_arrays` (internal issue 1361).
-  * `VK_NVX_image_view_handle`
-
------------------------------------------------------
-
-Change log for February 17, 2019 Vulkan 1.1.101 spec update:
-
-  * Update release number to 101.
-
-Public Issues:
-
-  * Make clear that memory types for imported host memory must be host
-    visible in slink:VkMemoryHostPointerPropertiesEXT.txt (public issue
-    897).
-  * Make <<interfaces-resources-layout, WARNING block>> into a NOTE block,
-    per the styleguide (public pull request 916).
-
-Internal Issues:
-
-  * Make <<textures-output-format-conversion, computation of derivatives in
-    non-uniform flow control>> have undefined behavior (internal issue
-    1367).
-  * Make behavior, not just values, undefined for
-    <<textures-layout-validation, reads from inconsistent YCbCr layouts>>
-    (internal issue 1366).
-  * Consolidate version and extension behavior documentation in the
-    <<extended-functionality, Extended Functionality>> appendix, While a
-    great deal of text was moved from other parts of the Specification into
-    the appendix, this just serves to simplify and make consistent
-    discussions of versions and extensions (internal issue 1473).
-  * Add limits for slink:VkPhysicalDeviceRayTracingPropertiesNV in the
-    <<features-limits-types, Required Limit Types>> and
-    <<features-limits-required, Required Limits>> tables (internal issue
-    1511).
-  * Disallow <<memory-protected-memory, indirect calls within protected
-    command buffers>> by adding valid usage statements for the related
-    indirect dispatch and draw commands (internal issue 1513).
-  * Add valid usage stataements to slink:VkGraphicsPipelineCreateInfo,
-    slink:VkSubpassDescription, slink:VkSubpassDescription2KHR,
-    slink:VkSubpassDescriptionDepthStencilResolveKHR, and
-    slink:VkImageViewCreateInfo preventing the creation of a renderpass with
-    attachments in formats that are not supported for rendering (internal
-    issue 1552).
-  * Qualify valid usage statements for
-    slink:VkAttachmentReference::pname:layout parameter so restrictions only
-    apply if an attachment is ename:VK_ATTACHMENT_UNUSED (internal issue
-    1561).
-  * Add valid usage statement for flink:vkCmdDrawIndirectByteCountEXT
-    restricting pname:vertexStride to be positive (internal issue 1566).
-  * Make the `VK_EXT_sample_locations` extension depend on
-    `VK_KHR_get_physical_device_properties2` in `vk.xml`.
-  * Rearrange and simplify the <<interfaces-resources-layout, block layout
-    rules>>.
-
-New Extensions:
-
-  * `VK_NV_cooperative_matrix`
-  * `VK_EXT_depth_clip_enable` (internal issue 1485).
-
------------------------------------------------------
-
-Change log for February 10, 2019 Vulkan 1.1.100 spec update:
-
-  * Update release number to 100.
-
-Public Issues:
-
-  * Clarify that scoped modification order only relates to
-    <<memory-model-atomic-operation, atomic writes>> (public pull request
-    906).
-  * Remove `readme.txt` reference from `xml/README.adoc` (public pull
-    request 907).
-  * Add missing slink:VkShaderResourceUsageAMD to the <<VK_AMD_shader_info>>
-    appendix (public pull request 908).
-  * Fix markup for <<VK_EXT_filter_cubic>> appendix (public pull request
-    911).
-  * Fix typo "`attachment`" (public pull request 914).
-  * Alias the enums for `VK_IMG_filter_cubic` properly to the corresponding
-    `VK_EXT_filter_cubic` enums, so they appear in the corresponding
-    enumerated types, instead of as #defines (Vulkan-Headers issue 40).
-
-Internal Issues:
-
-  * Remove nested conditionals in valid usage statements for
-    slink:VkFramebufferCreateInfo and flink:vkCmdPipelineBarrier by
-    duplicating statements along ifdef/ifndef paths for
-    VK_KHR_depth_stencil_resolve (internal issue 1527).
-  * Clarify allowed values of <<spirv-precision-operation, SPIR-V operations
-    near infinity>>. For very large results of operations the allowed range
-    of return values as defined in the spec didn't include the largest
-    finite number. In some rounding modes (eg. RTZ) the largest finite
-    number is the correctly rounded result, so it should be allowed.
-  * Require descriptor types to match in slink:VkCopyDescriptorSet.
-
------------------------------------------------------
-
-Change log for February 3, 2019 Vulkan 1.1.99 spec update:
-
-  * Update release number to 99.
-
-Public Issues:
-
-  * Add missing pname:pMemoryHostPointerProperties description to
-    flink:vkGetMemoryHostPointerPropertiesEXT.txt (public pull request 896).
-  * Minor markup fixes (public pull request 900).
-  * Minor update to `khronos.css` and markup fixes (originally proposed in
-    public pull request 901, but done via an internal MR).
-
-Internal Issues:
-
-  * Document restrictions on image queries for {YCbCr} formats in the
-    <<formats-requiring-sampler-ycbcr-conversion>> table as well as
-    for slink:sname:VkImageFormatProperties and slink:VkImageCreateInfo
-    (internal issue 1361).
-  * Correct type of the code:FragSizeEXT built-in in the
-    <<interfaces-builtin-variables, Built-In Variables>> section (internal
-    issue 1526).
-  * Clean up math in the <<textures, Image Operations>> chapter by
-    refactoring, using better naming conventions, updating diagrams to use
-    the correct orientation, etc. (internal merge request 2968).
-  * Fix minor typos for slink:VkImageCreateInfo and
-    slink:VkImageStencilUsageCreateInfoEXT.
-  * Add missing documentation for tlink:VkResolveModeFlagsKHR.
-  * Fix extension dependency of pname:scalarBlockLayout in the
-    <<features-features-requirements, Feature Requirements>> section.
-  * Fix indexing math for shader binding table calculations in the
-    <<shader-binding-table-indexing-rules, Indexing Rules>> section, and use
-    spelling "`any-hit`" consistently.
-  * Reconcile valid usage statement and text for sampled image layouts in
-    slink:VkWriteDescriptorSet
-    (https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/551).
-  * Make SPIR-V code:OpConvertUToPtr and code:OpConvertPtrToU operations
-    require a 64-bit integer for physical storage buffer pointers in the
-    <<spirvenv-module-validation, Validation Rules within a Module>>
-    section.
-  * Update to KaTeX 10.0.
-
-New Extensions:
-
-  * `VK_EXT_filter_cubic`
-  * `VK_NV_dedicated_allocation_image_aliasing`
-
------------------------------------------------------
-
-Change log for January 13, 2019 Vulkan 1.1.98 spec update:
-
-  * Update release number to 98.
-
-Public Issues:
-
-  * Fix missing markup in flink:vkDestroyPipelineLayout valid usage
-    statement (pull request 882).
-  * Add missing contributors for `<<VK_EXT_buffer_device_address>>` (public
-    pull request 891).
-
-Internal Issues:
-
-  * Detect nested bullet points in valid usage blocks and warn about them
-    during VUID assignment (internal issue 1382).
-  * Update the style guide to document the process for reserving new bits in
-    bitmask types (internal issue 1411).
-  * Clarify for slink:VkApplicationInfo::pname:apiVersion and in the
-    <<fundamentals-validusage-versions, Valid Usage for Newer Core
-    Versions>> section when it is valid for an application to use a certain
-    version of Vulkan API functionality (for an instance and for a
-    device/physical device); and when the validation layers must generate an
-    error (internal issue 1412).
-  * Add optional <<memory-model-availability-visibility, transitive
-    availability/visibility operations to the memory model, including a new
-    pname:vulkanMemoryModelAvailabilityVisibilityChains feature for
-    slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (internal issue
-    1460).
-  * Add the code:StorageBuffer storage class to those in the
-    <<interfaces-resources-descset, Descriptor Set Interface>> (internal
-    issue 1480).
-  * Add missing `returnedonly` tags for a number of returned extension
-    structures that can be passed in pname:pNext chains (internal issue
-    1515).
-  * Clean up and rearrange some spec language for
-    slink:VkRenderPassCreateInfo and slink:VkAttachmentReference.txt
-    (internal issue 1522).
-  * Correctly round the code:OpVectorTimesScalar and
-    code:OpMatrixTimesScalar SPIR-V operations in the <<Precision of core
-    SPIR-V Instructions>> table (internal merge request 2996).
-  * Work around cases in flink:vkCmdBeginTransformFeedbackEXT,
-    flink:vkCmdEndTransformFeedbackEXT, and
-    slink:VkPipelineCoverageModulationStateCreateInfoNV where an array
-    parameter is `optional` but the length is not in `vk.xml`. This is an
-    interim fix using `noautovalidity` + handcoded VU replacing those that
-    should be autogenerated (internal issue 2944 and
-    https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/480).
-  * Remove redundant capability validation of the code:float16 and code:int8
-    SPIR-V capabilities from the <<spirvenv-capabilities, Capabilities>>
-    section, since they are already covered in the preceding table.
-  * Update check_spec_links script, including validation for reference page
-    open blocks. Fix errors identified by the script.
-
------------------------------------------------------
-
-Change log for January 05, 2019 Vulkan 1.1.97 spec update:
-
-  * Update release number to 97.
-
-Public Issues:
-
-  * Add a special case to the <<renderpass-compatibility, Render Pass
-    Compatibility>> rules allowing single-subpass renderpasses to be
-    compatible even if they have different resolve attachment references
-    (public issue 835).
-  * Fix the miss shader binding table record address rule in the
-    <<shader-binding-table-indexing-rules, Miss Shaders>> section to index
-    by code:missIndex, not code:sbtOffset (public issue 875).
-
-Internal Issues:
-
-  * Add a missing anchor to the elink:VkSamplerCreateFlagBits language
-    (internal issue 1483).
-  * Add missing implicit valid usage include for slink:VkHdrMetadataEXT and
-    corresponding `noautovalidity` attributes in `vk.xml` for the
-    externally-defined metadata properties (internal issue 1514).
-  * Remove restrictions on the `mask` parameter of SPIR-V's
-    code:OpGroupNonUniformXor in the <<spirvenv-module-validation,
-    Validation Rules within a Module>> appendix (internal merge request
-    2971).
-  * Restore `noautovalidity` attribute for
-    slink:VkPipelineViewportWScalingStateCreateInfoNV::pname:pViewportWScalings
-    in `vk.xml` (internal merge request 2975).
-  * Update copyright dates on Khronos-copyrighted files to 2019 (internal
-    merge request 2980).
-
-New Extensions:
-
-  * `VK_KHR_depth_stencil_resolve`
-  * `VK_EXT_buffer_device_address`
-  * `VK_EXT_memory_budget`
-  * `VK_EXT_memory_priority`
-  * `VK_EXT_validation_features`
-
------------------------------------------------------
-
-Change log for December 16, 2018 Vulkan 1.1.96 spec update:
-
-  * Update release number to 96.
-
-Public Issues:
-
-  * Fix typo in `vk.xml` for `structextends` attribute of
-    slink:VkPhysicalDeviceShadingRateImagePropertiesNV (public PR 870).
-  * Fix links in optimized PDF output (public PR 879).
-
-Internal Issues:
-
-  * Add a link to GitHub contributors in the <<credits, Other Credits>>
-    section (internal issue 808).
-  * Clarify the behavior of command aliases described in the <<versions,
-    Core Revisions>> and <<initialization-functionpointers, Command Function
-    Pointers>> sections and the registry schema document with respect to
-    whether they are or are not the same entry point, and what the behaviour
-    of the ftext:vkGet*ProcAddr commands is for each alias (internal issue
-    1462).
-  * Update slink:VkPipelineShaderStageCreateInfo valid usage statements for
-    writing to code:Layer and code:viewportIndex to apply to any vertex
-    processing stage (internal issue 1475).
-  * Make sparse image creation optional for {YCbCr} formats in the
-    <<features-required-format-support, Required Format Support>> section
-    and the <<formats-requiring-sampler-ycbcr-conversion, Formats
-    requiring sampler {YCbCr} conversion for
-    ename:VK_IMAGE_ASPECT_COLOR_BIT image views>> table (internal issue
-    1476).
-  * Modify the valid usage statement for
-    flink:vkCmdDrawIndirectByteCountEXT::pname:vertexStride to use the
-    pname:maxTransformFeedbackBufferDataStride limit rather than the
-    pname:maxVertexInputBindingStride limit, which is a better match for
-    transform feedback related operations (internal issue 1487).
-  * Changed all members of slink:VkPhysicalDevicePCIBusInfoPropertiesEXT to
-    have the `uint32_t` type. This is an imcompatible change to an EXT
-    that's very recently released; although this is against usual Vulkan WG
-    policy, we discussed and consider this an acceptable risk, but have
-    polled the mesa-dev list in case there are use cases we missed (internal
-    issue 1492).
-  * Set spec vetsion to 1 for `VK_GOOGLE_hlsl_functionality1` and
-    `VK_GOOGLE_decorate_string` in `vk.xml` (internal MR 2948).
-  * Remove redundant valid usage statement `VkImageCreateInfo-pNext-02395`
-    (internal MR 2950).
-  * Add `check_spec_links.py` script, use it in Gitlab CI, and fix many
-    minor markup issues discovered by the script (internal MR 2955).
-  * Update `BUILD.md` to the current Ruby version (2.5.3), and make some
-    corresponding updates to per-platform build instructions (internal MR
-    2956).
-  * Fix binding numbers and other details in
-    flink:vkUpdateDescriptorSetWithTemplate.txt example code blocks
-    (internal MR 2960).
-  * Remove some nautovalidity="true" in `vk.xml` for NV extensions where
-    it's clearly wrong (internal MR 2970).
-
------------------------------------------------------
-
-Change log for December 3, 2018 Vulkan 1.1.95 spec update:
-
-  * Update release number to 95.
-
-Public Issues:
-
-  * Fix valid usage and XML issues found in public issues 789 and 790 for
-    the `VK_EXT_debug_utils` extension (public pull request 794).
-  * Replace references to `VK_NV_dedicated_allocation` with links to the
-    corresponding slink:slink:VkMemoryDedicatedRequirements and
-    slink:slink:VkMemoryDedicatedAllocateInfo structures in the description
-    of elink:VkExternalMemoryFeatureFlagBits (public issue 801).
-  * Fix miscellaneous minor markup and spelling issues in
-    `VK_NV_ray_tracing` extension (public pull request 860).
-  * Remove "returnedonly" from XML for
-    slink:VkPhysicalDeviceInlineUniformBlockFeaturesEXT and
-    slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (public issue 862).
-
-Internal Issues:
-
-  * Add to the description of the
-    <<features-limits-maxComputeSharedMemorySize,
-    pname:maxCompureSharedMemorySize>> feature to state the shared variables
-    should be packed at least as tightly as std430 (internal issue 1386).
-  * Fix and clarify various references to image and image view usage in
-    flink:vkCmdBindShadingRateImageNV, flink:vkCmdBeginRenderPass, and
-    slink:VkImageStencilUsageCreateInfoEXT (internal issue 1432).
-  * Require that the slink:VkImage mipmap chain match the Android hardware
-    buffer mipmap chain for slink:VkMemoryAllocateInfo (internal issue
-    1479).
-  * Fix the definition of slink:VkSwapchainCreateInfoKHR valid usage
-    statement 01778 (Vulkan-ValidationLayers!15)
-  * Fix descriptions of <<interfaces-builtin-variables-launchid,
-    code:LaunchIDNV>> and <<interfaces-builtin-variables-launchsize,
-    code:LaunchSizeNV>> to code:uvec3.
-
-New Extensions:
-
-  * `VK_KHR_shader_float16_int8`
-  * `VK_KHR_shader_float_controls`
-
------------------------------------------------------
-
-Change log for November 25, 2018 Vulkan 1.1.94 spec update:
-
-  * Update release number to 94.
-
-Public Issues:
-
-  * Use the terms "`texel block`" and "`texel block size`" instead of "`data
-    element`" and "`element size`", and define "`element`" as an array slot.
-    In addition to the terminology changes, retitled the <<texel-block-size,
-    Representation and Texel Block Size>> section and added texel block size
-    / no. of texels/block information to the
-    <<features-formats-compatibility, Compatible Formats>> table. There is
-    some additional work underway to make sure the compatibility language
-    makes sense for all of uncompressed, compressed, and multiplanar formats
-    (public issue 763).
-  * Cleanup `VK_NV_ray_tracing` language (public issues 858, 859).
-
-Internal Issues:
-
-  * Specify in <<shaders-invocationgroups, Invocation and Derivative
-    Groups>> and <<textures-output-format-conversion, Texel Output Format
-    Conversion>> that derivative groups are quads when code:SubgroupSize >=
-    4 (internal issue 1390).
-  * Make the type of slink:VkDescriptorUpdateTemplateCreateInfo::pNext
-    `const` following pattern for the other stext:Vk*CreateInfo structures
-    (internal issue 1459).
-  * Specify that flink:vkCmdClearAttachments executes as a drawing command,
-    rather than a transfer command (internal issue 1463).
-  * Update `VK_NV_ray_tracing` to use code:InstanceId instead of
-    code:InstanceIndex.
-
-New Extensions:
-
-  * `VK_KHR_swapchain_mutable_format`
-  * `VK_EXT_fragment_density_map`
-
------------------------------------------------------
-
-Change log for November 18, 2018 Vulkan 1.1.93 spec update:
-
-  * Update release number to 93.
-
-Public Issues:
-
-  * Add spec language for ename:VK_INDEX_TYPE_NONE_NV and fix up
-    slink:VkAccelerationStructureTypeNV (public issue 848).
-  * Add missing suffix in description of slink:VkSubpassDescription2KHR
-    parameters (public pull request 851).
-  * Fix miscellaneous typos (public pull request 855).
-  * Add driver ID for Pastel (public pull request 856).
-  * Add missing include directive for slink:VkMemoryWin32HandlePropertiesKHR
-    implicit valid usage statements (public pull request 857).
-
-Internal Issues:
-
-  * Restrict the storage classes permitted for SPIR-V atomics to what is
-    actually supported, in the <<spirvenv-module-validation, Validation
-    Rules within a Module>> section (internal issue 1123).
-  * Add a missing Valid Usage statement to slink:VkRenderPassCreateInfo for
-    the case pname:stencilLoadOp == ename:VK_LOAD_OP_CLEAR, pname:layout ==
-    ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL (internal issue
-    1408).
-  * Modify optimize-pdf script and Makefile to retain non-optimized original
-    PDF on errors (internal issue 1435).
-  * Add <<spirvenv-module-validation, SPIR-V validation rules>> stating that
-    only the listed code:BuiltIn decorations are permitted, and only when
-    relevante features and extensions are enabled (internal issue 1449).
-  * Remove some duplicated Valid Usage IDs created via cut & paste error
-    (internal issue 1455).
-  * Build HTML output for extension reference pages (internal issue 1461).
-  ** Improve genRef.py handling of aliases defined inside other refpages.
-  ** Emit aliases in pygenerator.py.
-  ** Add XML noautovalidity flag for VkRenderPassCreateFlags until there
-     are some corresponding FlagBits defined.
-  ** Corrected types= attribute on some refpage blocks to 'flags'
-  ** Added refpage blocks for some missing types detected by CI tests.
-  * Fixed many Valid Usage statement issues in slink:VkRenderPassCreateInfo,
-    slink:VkSubpassDescription, slink:VkSubpassDescription2KHR,
-    slink:VkSubpassDependency2KHR, flink:vkCmdBeginRenderPass,
-    flink:vkCmdBeginRenderPass2KHR, and slink:VkRenderPassBeginInfo
-    discovered while adding `VK_KHR_create_renderpass2` to the validation
-    layers.
-
-New Extensions:
-
-  * `VK_EXT_scalar_block_layout`
-  * `VK_EXT_separate_stencil_usage`
-
------------------------------------------------------
-
-Change log for November 12, 2018 Vulkan 1.1.92 spec update:
-
-  * Update release number to 92.
-
-Public Issues:
-
-  * Move and modify valid usage statements dealing with pname:aspectMask in
-    flink:vkCmdClearColorImage, flink:vkCmdClearDepthStencilImage, and
-    slink:VkClearAttachment, so they are in places where all necessary
-    information is available (public issue 529).
-  * Fix math markup in <<textures-texel-anisotropic-filtering, Texel
-    Anisotropic Filtering>> (public pull request 840).
-  * Fix misspellings (public pull request 845).
-
-Internal Issues:
-
-  * Add installation instructions and a Makefile "`chunked`" target for
-    chunked HTML generation (internal issue 1352).
-  * Fix pipeline mesh diagram style; also fix a minor bug in the classic
-    pipeline diagram where vertex/index buffers wrongly fed into the vertex
-    shader (internal issue 1436).
-  * Make asciidoctor ERROR output raise an error, and don't suppress
-    executed command output from CI make invocation (internal issue 1454).
-  * Minor typo fixes and clarifications for `VK_NV_raytracing`.
-  * Cleanup extension-specific properties
-  ** Remove duplicated documentation for pname:maxDiscardRectangles,
-     pname:pointClippingBehavior, and pname:maxVertexAttribDivisor (they
-     shouldn't be documented with the other members of
-     slink:VkPhysicalDeviceLimits at all).
-  ** Remove duplicate anchor for pname:maxVertexAttribDivisor
-  ** Consistently document stext:VkPhysicalDevice<Extension>PropertiesKHR
-  *** Always document pname:sType/pname:pNext (was inconsistent before)
-  *** Always mention chaining to slink:VkPhysicalDeviceProperties2 (and not
-      as slink:VkPhysicalDeviceProperties2KHR)
-  *** Always include Valid Usage statements last
-  * Update Makefile 'checklinks' target and associated scripts, and fix
-    markup problems identified by checkLinks.py, so that we can rely on the
-    checklinks script as part of Gitlab CI.
-
------------------------------------------------------
-
-Change log for November 4, 2018 Vulkan 1.1.91 spec update:
-
-  * Update release number to 91.
-
-Public Issues:
-
-  * Update Ubuntu subsystem build instructions in `BUILD.adoc` (public pull
-    request 624).
-  * Delete the `VK_KHR_mir_surface` extension from the Specification and
-    XML, due to EOL of the only driver known to have supported it, and
-    near-EOL of Mir itself (public issue 814).
-  * Fix options for some figures that were using old ones (public pull
-    request 841).
-  * Fix various accidentally repeated words (public pull request 843).
-  * Use `time.process_time()`, introduced in Python 3.3, in the scripts
-    instead of `time.clock()`, which will be removed in Python 3.8 (public
-    pull request 844).
-
-Internal Issues:
-
-  * Update valid usage statements for
-    `VK_ANDROID_external_memory_android_hardware_buffer` in
-    slink:VkMemoryAllocateInfo,
-    slink:VkImportAndroidHardwareBufferInfoANDROID, and
-    flink:vkGetAndroidHardwareBufferPropertiesANDROID to actually be
-    verifiable (internal issue 1419).
-  * Update valid usage statements for
-    `VK_ANDROID_external_memory_android_hardware_buffer` in
-    slink:VkMemoryAllocateInfo, slink:VkImageCreateInfo, and
-    slink:VkImageViewCreateInfo to move valid usage statements in
-    doubly-nested bullet points up one level, accomodating limitations of
-    the valid usage extraction script that creates `validusage.json`
-    (internal issue 1434).
-  * Fix typo etext:VK_ACCESS_SHADING_RATE_IMAGE_BIT_NV to the correct
-    ename:VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV.
-  * Add missing etext:VK_STRUCTURE_TYPE_* tokens to appendices for
-    extensions missing them.
-
-New Extensions:
-
-  * `VK_AMD_memory_overallocation_behavior`
-  * `VK_NV_ray_tracing`, replacing `VK_NVX_raytracing`
-
------------------------------------------------------
-
-Change log for October 28, 2018 Vulkan 1.1.90 spec update:
-
-  * Update release number to 90.
-
-Public Issues:
-
-  * Tag flink:vkQueueWaitIdle as `externsync` in `vk.xml` (public pull
-    request 815).
-  * Update README (public pull request 834).
-  * `VK_NV_framebuffer_mixed_samples` and `VK_AMD_mixed_attachment_samples`
-    had confusing and contradictory valid usage statements when read in the
-    all-extensions spec build. Change them to explicitly mention which
-    extension each is for (public issue Vulkan-ValidationLayers/issues/353).
-
-Internal Issues:
-
-  * Update `COPYING.md` to clarify how externally generated Vulkan
-    Specifications (for translations, annotations, or other reasons) must be
-    copyrighted, and acknowledge the Exception Clause on the `vk.xml`
-    license (internal issue 1079).
-  * Specify that flink:vkGetPhysicalDeviceImageFormatProperties may: return
-    pname:maxMipLevels 1 if the format is ycbcr (internal issue 1361).
-  * Clarify previously underspecified language for
-    flink:vkCmdPushConstants::pname:pStageFlags regarding use of push
-    constants across multiple pipelines (internal issue 1403).
-  * Fix typo in XML/headers for
-    ename:VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,
-    which was previously
-    etext:VK_STRUCTURE_TYPE_IMAGE_EXCPLICIT_DRM_FORMAT_MODIFIER_CREATE_INFO_EXT
-    (internal issue 1428).
-  * Fix markup of equations that were sporadically breaking the
-    `optimize-pdf` step of PDF generation, due (apparently) to inconsistent
-    treatment of unwrapped multicharacter terms by different LaTeX parsers
-    (internal issue 1435).
-  * For the <<memory-model-synchronizes-with synchronizes-with>> memory
-    model relation cases involving a release barrier plus relaxed atomic
-    write, treat the atomic as if it were a release atomic and allow the
-    acquire side to read from its hypothetical release sequence. This is
-    more consistent with how C++ defines synchronization for release fences
-    (internal issue cross-api/memory-model#72).
-  * Minor editorial changes to the <<memory-model, memory model>> appendix
-    based on external feedback.
-
------------------------------------------------------
-
-Change log for October 21, 2018 Vulkan 1.1.89 spec update:
-
-  * Update release number to 89.
-
-Public Issues:
-
-  * Clarify the reference to <<features-limits-mipmapPrecisionBits, mipmap
-    precision bits>> in the <<textures-image-level-selection, Image Level(s)
-    Selection>> section (public issue 660).
-  * Update <<debugging-object-types,VkObjectType and Vulkan Handle
-    Relationship>> table with missing types (public pull request 820).
-  * Miscellaneous minor markup cleanup (public pull request 822).
-  * Fix copy/paste bugs in the description of how implicit
-    availability/visibility operations for atomics/barriers are ordered in
-    the <<memory-model-availability-visibility-semantics, Availability and
-    Visibility Semantics>> section (public issue 823).
-  * Add ename:VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV bit missing from
-    the mesh shading list of the <<synchronization-pipeline-graphics,
-    graphics pipeline>> (public issue 824).
-
-Internal Issues:
-
-  * Clarify that only statically used members of a push constant block need
-    to be in the push constant range, and stop referring to block members as
-    "`variables`" in the <<interfaces-resources-pushconst, Push Constant
-    Interface>> section. This is related to
-    https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/340
-    (internal issue 1401).
-  * Clarify interaction between flink:vkCmdSetDeviceMask and render pass
-    control commands in the slink:VkDeviceGroupRenderPassBeginInfo section
-    (internal issue 1416).
-  * Miscellaneous minor markup cleanup.
-  * Remove types defined by `"disabled"` extensions from
-    validextensionstructs in the XML processing scripts, so downstream code
-    generators don't emit them.
-
------------------------------------------------------
-
-Change log for October 13, 2018 Vulkan 1.1.88 spec update:
-
-  * Update release number to 88.
-
-Public Issues:
-
-  * Make clear that
-    tname:PFN_vkDebugUtilsMessengerCallbackEXT::pname:messageTypes is a
-    bitmask, and correct a typo in the spelling of
-    slink:VkDebugUtilsMessengerCreateInfoEXT.txt::pname:messageType (public
-    pull request 800).
-  * Make an ABI-compatible change of the type of
-    slink:VkPhysicalDeviceDriverPropertiesKHR::pname:driverID to use the new
-    elink:VkDriverIdKHR type (public issue 811).
-
-Internal Issues:
-
-  * Clarify for the <<features-features-shaderStorageImageExtendedFormats>>
-    feature and in the <<spirvenv-capabilities-table>> that the feature
-    means that all of the formats are supported, and that otherwise the
-    features can be queried per-format (internal issue 1273).
-  * Clarified interactions of `VK_EXT_external_memory_host` with host cache
-    management commands and structures flink:vkMapMemory,
-    flink:vkFlushMappedMemoryRanges, slink:VkMappedMemoryRange, and
-    flink:vkUnmapMemory using the new glossary term "`Host Mapped Device
-    Memory`" (internal issue 1385).
-  * Update the language for flink:vkCreateViSurfaceNN.txt describing the
-    pname:currentExtent of a VI surface to more accurately reflect current
-    capabilities, replacing "`undefined`" with more explicit behavior
-    (internal issue 1410).
-
-New Extensions:
-
-  * `VK_EXT_calibrated_timestamps`
-  * `VK_EXT_image_drm_format_modifier` (this extension was previously
-    disabled in vk.xml, and has now been enabled after some changes to fix
-    performance issues).
-  * `VK_EXT_pci_bus_info`
-  * `VK_EXT_transform_feedback`
-  * `VK_GOOGLE_hlsl_functionality1`, exposing support for
-    `SPV_GOOGLE_hlsl_functionality1`.
-  * `VK_GOOGLE_decorate_string`, exposing support for
-    `SPV_GOOGLE_decorate_string`.
-
------------------------------------------------------
-
-Change log for October 7, 2018 Vulkan 1.1.87 spec update:
-
-  * Update release number to 87.
-
-Public Issues:
-
-  * Merge flink:vkCmdPipelineBarrier self-dependency barrier VUs referring
-    to the same subpass dependency (public pull request 756).
-  * Describe default value of `"optional"` attribute in the registry schema
-    document (public issue 769)
-  * Fix links in <<VK_NVX_raytracing>> extension (public pull request 805).
-  * Mark the <<VK_KHR_mir_surface>> extension obsolete (see public issue 814
-    - does not close this, however).
-  * Fix missing endif in Image Creation block (public issue 817).
-
-Internal Issues:
-
-  * Clarify that the compressed texture formats corresponding to
-    <<features-features-textureCompressionETC2>>,
-    <<features-features-textureCompressionASTC_LDR>>, and
-    <<features-features-textureCompressionBC>> is not contingent on the
-    feature bits, and may be supported even if the features are not enabled
-    (internal issue 663).
-  * Clarify that code:FragStencilRefEXT is output only in the
-    <<interfaces-builtin-variables, Built-In Variables>> section (internal
-    issue 1173).
-  * Identify and correct many overly-aggressive uses of "`undefined`", and
-    narrow them down, where straightforward to do so. Mark such resolved
-    uses of "`undefined`" with the custom undefined: macro. Add a new
-    <<writing-undefined, Describing Undefined Behavior>> section (internal
-    issue 1267).
-  * Don't require code:inline_uniform_block descriptors to be populated
-    before use in the flink:vkAllocateDescriptorSets section (internal issue
-    1380).
-  * Allow suppressing inline SVG images by controlling this with an
-    attribute set in the Makefile, rather than the explicit [%inline]
-    directive (internal issue 1391).
-  * Mark 'Khronos' as a registered trademark in several places, now that it
-    is one.
-  * Fix typo in the <<VK_KHR_shader_atomic_int64>> appendix using the GLSL
-    naming of the compare exchange op when referring to the SPIR-V op.
-  * Specify in the flink:vkGetPhysicalDeviceQueueFamilyProperties section
-    that all implementations must support at least one queue family, and
-    that every queue family must contain at least one queue.
-  * Make slink:VkPipelineDynamicStateCreateInfo::pname:dynamicStateCount,
-    slink:VkSampleLocationsInfoEXT::pname:sampleLocationsPerPixel, and
-    slink:VkSampleLocationsInfoEXT::pname:sampleLocationsCount optional, to
-    fix bogus implicit valid usage checks that were causing failures in the
-    conformance tests.
-  * Fix vendor tag in reserved extension 237 constants. Does not affect
-    anything since it's just a placeholder, but this should avoid further
-    comments.
-  * Minor markup fixes in some extension appendices.
-
-New Extensions:
-
-  * `<<VK_FUCHSIA_imagepipe_surface>>`
-
------------------------------------------------------
-
-Change log for September 29, 2018 Vulkan 1.1.86 spec update:
-
-  * Update release number to 86.
-
-Internal Issues:
-
-  * Add new <<resources-image-creation-limits, Image Creation Limits>>
-    section and reference that from valid usage statements, reducing
-    combinatorial complexity of extension-dependent VUs. Also fixes some
-    underspecified limits (such as pname:maxMipLevels) in the VUs for
-    slink:VkImageCreateInfo when
-    slink:VkExternalMemoryImageCreateInfo::pname:externalMemoryHandles
-    contains multiple bits, and fixes incorrectly (and underspecified)
-    limits when an Android external format is used (internal issue 1370).
-  * Remove unused "`Fragment Area Granularity`" glossary entry accidentally
-    introduced in the 1.1.85 update.
-
-New Extensions:
-
-  * `VK_KHR_driver_properties`
-  * `VK_KHR_shader_atomic_int64`
-  * The specification sources contain text for another extension,
-    `VK_EXT_image_drm_format_modifier`, but this extension is not yet
-    complete, and is marked disabled in `vk.xml`. The extension will be
-    enabled, and become part of the spec, only when the authors decide it is
-    ready.
-
------------------------------------------------------
-
-Change log for September 19, 2018 Vulkan 1.1.85 spec update:
-
-  * Update release number to 85.
-
-Public Issues:
-
-  * Add self-dependency ename:VK_DEPENDENCY_BY_REGION_BIT valid usage
-    statements for slink:VkSubpassDependency(public pull request 778).
-  * Apply fix from pull request 742 to slink:VkSubpassDependency and
-    slink:VkSubpassDependency2 (public pull request 779).
-  * Specify the units of slink:VkBufferImageCopy::pname:bufferRowLength and
-    pname:bufferImageHeight as texels (public pull request 781).
-  * Better specify promoted parameter mapping in the
-    `<<VK_KHR_create_renderpass2>>` appendix (public pull request 782).
-
-Internal Issues:
-
-  * Only include the <<fundamentals-validusage-versions, Valid Usage for
-    Newer Core Versions>> section in Vulkan 1.1 or later (internal issue
-    1381).
-
-Other Issues:
-
-  * Clean up redundant valid usage language for the
-    `VK_ANDROID_external_memory_android_hardware_buffer` extension
-    interaction with slink:VkImageCreateInfo.
-  * Fix error in a flag name within valid usage statements for
-    slink:VkMemoryAllocateInfo.
-  * Clarify that memory types are not totally ordered in
-    slink:VkPhysicalDeviceMemoryProperties.
-  * For slink:VkWriteDescriptorSetInlineUniformBlockEXT, set
-    structextends="VkWriteDescriptorSet" in `vk.xml`, and make
-    slink:VkDescriptorSetLayoutBindingFlagsCreateInfoEXT::pname:pBindingFlags
-    optional.
-  * Add documentation of 'provisional' XML attribute to registry.txt.
-
-New Extensions:
-
-  * `VK_NV_compute_shader_derivatives`
-  * `VK_NV_corner_sampled_image`
-  * `VK_NV_fragment_shader_barycentric`
-  * `VK_NV_mesh_shader`
-  * `VK_NV_representative_fragment_test`
-  * `VK_NV_scissor_exclusive`
-  * `VK_NV_shader_image_footprint`
-  * `VK_NV_shading_rate_image`
-  * `VK_NVX_raytracing`
-
------------------------------------------------------
-
-Change log for September 8, 2018 Vulkan 1.1.84 spec update:
-
-  * Update release number to 84.
-
-Public Issues:
-
-  * Fix code sample in the `<<VK_EXT_debug_utils>>` extension (public issue
-    751).
-  * Fix misleading comment in `vk.xml` for
-    slink:VkDescriptorBufferInfo::pname:buffer (public pull request 762).
-  * Fix formatting of deprecation attributes in schema doc (public pull
-    request 767).
-  * Change `can` to `may` in the description of
-    elink:VkSparseImageFormatFlagBits, which are return values from queries
-    (public pull request 768).
-  * Prettify generated contact list in extension appendices, adding logos
-    and a New Issue link (public pull request 770).
-  * Enable sRGB conversion based on the image view format, not the image
-    format, in the <<textures-format-conversion, Format Conversion>> section
-    (public pull request 773).
-  * Fix typo in equation in the <<primsrast-lines-basic, Basic Line Segment
-    Rasterization>> section (public pull request 780).
-  * Fix special characters in GitHub contacts links (public pull request
-    783).
-  * Make clean_pdf target remove pdf folder (public pull request 784).
-  * Fix styleguide bad markup of block continuation (public pull request
-    792).
-
-Other Issues:
-
-  * Allow a zero vertex attribute divisor in the
-    `<<VK_EXT_vertex_attribute_divisor>>` extension, exposed via the
-    slink:VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT feature.
-  * Add missing `structextends="VkDeviceCreateInfo"` to
-    slink:VkPhysicalDeviceShaderDrawParameterFeatures and
-    slink:VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT.
-
-New Extensions:
-
-  * `VK_KHR_memory_model`
-  * `VK_EXT_astc_decode_mode`
-  * `VK_EXT_inline_uniform_block`
-
------------------------------------------------------
-
-Change log for August 13, 2018 Vulkan 1.1.83 spec update:
-
-  * Update release number to 83.
-
-Public Issues:
-
-  * Use [%inline] directive for all SVGs to reduce file size (public pull
-    request 734).
-  * Convert XML `value` aliases into <alias> tags (public pull request
-    747).
-  * Fix metadoc script showing non-selected extensions (public pull request
-    748).
-  * Reapply public pull request 742 to make
-    ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT part of the
-    graphices pipeline (public pull request 749).
-  * Fix numerous typos related to accidental duplication of words (public
-    pull request 760).
-  * Fix `vk.xml` contact typos (public pull request 761).
-
-
-Internal Issues:
-
-  * Add images to the <<Standard sample locations>> table (internal issue
-    1115).
-  * Add a definition of "`Inherited from`" precision in the
-    <<spirvenv-precision-operation, Precision and Operation of SPIR-V
-    Instructions>> section (internal issue 1314).
-  * Clarify that both built-in and user-defined variables count against the
-    location limits for shader interfaces in the
-    <<interfaces-iointerfaces-locations, Location Assignment>> section
-    (internal issue 1316).
-  * Merge "`required`" capabilities into the <<spirvenv-capabilities-table,
-    list of optional: SPIR-V capabilities>> (internal issue 1320).
-  * Relax the layout matching rules of descriptors referring to only a
-    single aspect of a depth/stencil image, by reference to the new
-    <<resources-image-layouts-matching-rule, Image Layout Matching Rules>>
-    section (internal issue 1346).
-  * Revert extension metadoc generator warning about name mismatches to a
-    diagnostic, due to annoying warnings in build output for conscious
-    choices we've made (internal issue 1351).
-
-Other Issues:
-
-  * Reserve bits for pending vendor extensions.
-  * Make Vulkan consistent with SPIR-V regarding code:DepthReplacing and
-    code:FragDepth in the <<interfaces-builtin-variables, Built-In
-    Variables>> section.
-  * Add missing ChangeLog entries for the previous three spec updates.
-
------------------------------------------------------
-
-Change log for July 30, 2018 Vulkan 1.1.82 spec update:
-
-  * Update release number to 82.
-
-Public Issues:
-
-  * Add flink:vkDestroyPipelineLayout valid usage statement that the layout
-    must not have been used with command buffers still in the recording
-    state (public issue 730).
-  * Correct <unused> tag for elink:VkResult in `vk.xml` (public merge
-    request 746).
-
-Internal Issues:
-
-  * Add a valid usage statement to flink:vkQueueSubmit, and similar language
-    to the definitions of <<synchronization-queue-transfers-acquire, acquire
-    operations>> requiring that an acquire operation follow a previous
-    release of the same subresource (internal issue 1290).
-  * Add <<resources-image-format-features,Image Format Features>> and
-    <<resources-image-view-format-features,Image View Format Features>>
-    sections that precisely define the slink:VkFormatFeatures supported by
-    images and image views, and rewrite valid usage statements to reference
-    these sections instead of duplicating language (internal issue 1310).
-  * Reword and consolidate synchronization valid usage statements for
-    flink:vkCmdPipelineBarrier such that they correctly account for mutiple
-    possible self-dependencies (internal issue 1322).
-  * Change order of <<Standard sample locations>> for 2xMSAA (internal issue
-    1347).
-  * Add definitions of "`<<Correctly Rounded>>`" and "`<<ULP>>`" in the
-    SPIR-V environment appendix, and "`Units in the Last Place (ULP)`" in
-    the glossary.
-
-New Extensions:
-
-  * `VK_NV_device_diagnostic_checkpoints`
-
------------------------------------------------------
-
-Change log for July 23, 2018 Vulkan 1.1.81 spec update:
-
-  * Update release number to 81.
-
-Public Issues:
-
-  * Fix missing "`valid`" phrasing in some obscure cases (public pull
-    request 605).
-  * Replace improper use of cannot: referring to the implementation in the
-    description of the
-    <<features-limits-maxUpdateAfterBindDescriptorsInAllPools,
-    pname:maxUpdateAfterBindDescriptorsInAllPools>> limit (public pull
-    request 738).
-  * Reorder description of bits in elink:VkPipelineStageFlagBits and the
-    <<synchronization-pipeline-stages-supported, Supported pipeline stage
-    flags>> table to match their definition order (public pull request 740).
-  * Add description of ename:VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT
-    to elink:VkBufferUsageFlagBits (public pull request 741).
-  * Fix value usage statement for slink:VkSubpassDependency stage mask
-    parameters (public pull request 742).
-  * Fix visible markup in registry schema document (public pull request
-    #745).
-
-Internal Issues:
-
-  * Make the <<geometry-invocations, geometry shader invocation
-    description>> and <<shaders-geometry-execution, Geometry Shader
-    Execution>> descriptions consistent with other pipeline stages (internal
-    issue 1325).
-  * Mark the `VK_NV_glsl_shader` extension as deprecated.
-  * Adjust the per-instance vertex attribute offset formula specified by
-    `VK_EXT_vertex_attribute_divisor` for
-    slink:VkVertexInputBindingDivisorDescriptionEXT so that the interaction
-    between pname:firstInstance and pname:divisor matches the OpenGL
-    convention (internal issue 1333).
-
------------------------------------------------------
-
-Change log for July 7, 2018 Vulkan 1.1.80 spec update:
-
-  * Update release number to 80.
-
-Public Issues:
-
-  * Remove unused "`API Order`" term from glossary (public issue 657).
-  * Dynamically generate the extension appendix includes based on
-    information in `vk.xml`, including new metadata tags describing
-    deprecated, obsoleted, and promoted extensions (public pull request
-    690).
-
-Internal Issues:
-
-  * Add valid usage statements to flink:vkCmdBindDescriptorSets to keep
-    offsets + range less than or equal to the buffer size (internal issue
-    1174).
-
-New Extensions:
-
-  * `VK_EXT_conditional_render`
-  * `VK_KHR_create_renderpass2` (public issue 736)
-  * `VK_KHR_8bit_storage` (public issue 737)
-
------------------------------------------------------
-
-Change log for July 1, 2018 Vulkan 1.1.79 spec update:
-
-  * Update release number to 79.
-
-Public Issues:
-
-  * Add a note to the <<features-required-format-support, Required Format
-    Support>> section clarifying that the required formats don't depend on
-    the used flags (public issue 671).
-  * Add a valid usage statement for flink:vkUpdateDescriptors that was
-    previously described for slink:VkImageSubresourceRange, but not as a
-    valid usage statement (public issue 713).
-  * Modify implicit valid usage generator script to not emit 'must: not be
-    0' for a parameter that is a pointer to a flags field, such as
-    pname:pPeerMemoryFeatures (public issue 729).
-
-Internal Issues:
-
-  * Add definitions of "`obsoleted`" and "`deprecated`", and modify the
-    definition of "`promoted`" in the <<glossary, Glossary>> (internal issue
-    988).
-  * Add language for integer texel output conversions (the conversion is
-    undefined) to the <<textures-output-format-conversion]] Texel Output
-    Format Conversion>> section. Simplify and clarify the floating-point
-    conversion language in the <<fundamentals-general, General
-    Requirements>> section and the new <<fundamentals-fp-conversion,
-    Floating-Point Format Conversions>> section, and remove obsolete
-    language in the format-specific floating-point sections (internal issue
-    1275).
-  * Add the elink:VkVendorId enumerated type to the Vulkan API / XML /
-    header, so reserved Khronos vendor IDs can be referred to symbolically
-    by clients. Note that only Khronos vendor IDs (e.g. non-PCI vendor IDs)
-    are defined (internal issue 1299).
-  * Fix typo in the <<fig-non-strict-lines, Non strict lines>> table
-    (internal issue 1315).
-  * Clean up and simplify the
-    <<formats-requiring-sampler-ycbcr-conversion, YCbCr format
-    properties>> table and use symbols consistently with other tables. Add a
-    column for the number of planes.
-  * Add code:Float16 to the <<spirvenv-capabilities-table, List of optional
-    SPIR-V capabilities>> for the `VK_AMD_gpu_shader_half_float` extension.
-
------------------------------------------------------
-
-Change log for June 18, 2018 Vulkan 1.1.78 spec update:
-
-  * Update release number to 78.
-
-Public Issues:
-
-  * Change markup so parameter descriptions include links to structures,
-    instead of just their names (public issue 697).
-  * Resume publishing updated Vulkan 1.0 + KHR extensions and Vulkan 1.0 +
-    all extensions versions of the specification (public issue 722).
-  * Reapply fixes from public pull request 698 for
-    `VK_ANDROID_external_memory_android_hardware_buffer`, which accidentally
-    were reverted at some point (public pull request 724).
-  * Fix undefined format valid usage statements for slink:VkImageCreateInfo
-    in the presence of the
-    `VK_ANDROID_external_memory_android_hardware_buffer` extension (public
-    pull request 725).
-  * Miscellaneous markup consistency fixes (public pull request 728).
-
-Internal Issues:
-
-  * When building specifications containing vendor extensions, add terms to
-    the Khronos spec copyright specifying that the result is not a ratified
-    specification (internal issue 739).
-  * Change the value of the
-    pname:maxDescriptorSetUpdateAfterBindUniformBuffers minimum limit to 72
-    (6 times pname:maxPerStageDescriptorUpdateAfterBindUniformBuffers) in
-    the <<features-limits-required, Required Limits>> table (internal issue
-    1300).
-
-Other Issues:
-
-  * Fix link to resource image view compatibility table in the valid usage
-    statements for slink:VkImageFormatListCreateInfoKHR (internal pull
-    request 2711).
-
------------------------------------------------------
-
-Change log for June 10, 2018 Vulkan 1.1.77 spec update:
-
-  * Update release number to 77.
-
-Public Issues:
-
-  * Remove redundant asciidoctor ifdef in slink:VkDeviceCreateInfo valid
-    usage statement (public pull request 718).
-
-Internal Issues:
-
-  * Require that the returned slink:VkMemoryRequirements::pname:alignment
-    reflect the minimum alignment requirements for the buffer's usages, and
-    make dynamic offset alignment valid usage more explicit for
-    flink:vkBindBufferMemory and flink:vkCmdBindDescriptorSets (internal
-    issue 1170).
-  * Explicitly state that objects of type code:OpTypeImage,
-    code:OpTypeSampler, and code:OpTypeSampledImage must not be stored to in
-    the <<spirvenv-module-validation, Validation Rules within a Module>>
-    section (internal issue 1262).
-  * Clarify rules about validating descriptor set/binding against storage
-    class and descriptor type in the <<spirvenv-module-validation,
-    Validation Rules within a Module>> section, and add an anchor for and
-    references to the <<interfaces-resources-storage-class-correspondence,
-    Shader Resource and Storage Class Correspondence>> table (internal issue
-    1266).
-  * Use correct spelling of SPIR-V decoration code:NonWritable in several
-    places (internal issue 1298).
-
-Other Issues:
-
-  * Update specification links to files in the old
-    KhronosGroup/Vulkan-LoaderAndValidationLayers repository with
-    corresponding links into the new repositories that replace it.
-  * Move validity requirement for slink:VkSamplerCreateInfo into the valid
-    usage block instead of the body text, and give it a VUID.
-  * Use the full name of the "`style guide`" in a reference in the
-    description of slink:vkGetPhysicalDeviceProperties, update the
-    <<vulkan-styleguide, link to that document>>, and use the full name
-    in the registry index page.
-
------------------------------------------------------
-
-Change log for May 25, 2018 Vulkan 1.1.76 spec update:
-
-  * Update release number to 76.
-
-Internal Issues:
-
-  * Add an exception clause to the license on `vk.xml`, enabling its use
-    with GPL-based projects (internal issue 1017).
-  * Remove the generated `vulkan_ext.[ch]` files, which are no longer
-    supported. Add `src/ext_loader/README.md` explaining why, and update
-    files in `xml/` to not generate them by default (internal issue 1268)
-
-Other Issues:
-
-  * Fix typos in valid usage statements for the
-    ftext:vkDrawIndexedIndirectCount* commands, replacing
-    sizeof(VkDrawIndirectComment) with sizeof(VkDrawIndexedIndirectCommand).
-  * Modify the <<spirvenv-module-validation, Validation Rules within a
-    Module>> section to require code:NonReadable or code:NonWriteable in
-    SPIR-V code for images with an image format of code:Unknown if one of
-    the requisite code:shaderImageReadWithoutFormat or
-    code:shaderImageWriteWithoutFormat features is disabled.
-
-New Extensions:
-
-  * `VK_KHR_get_display_properties2`
-  * `VK_KHR_draw_indirect_count`
-
------------------------------------------------------
-
-Change log for May 16, 2018 Vulkan 1.1.75 spec update:
-
-  * Update release number to 75.
-
-Github Issues:
-
-  * Use Github handles (e.g. @handle) for contact information in vk.xml,
-    when available (partial fix for public issue 630).
-  * Add size invariance guarantee to slink:VkMemoryRequirements for
-    buffer/image memory requirements (public issue 661).
-  * Correct scope (conditional constructs) in valid usage statement for
-    slink:VkBindImageMemoryInfo (public pull request 684).
-  * Clean up minor markup issues and typos in the
-    `VK_ANDROID_external_memory_android_hardware_buffer` extension appendix
-    (public pull request 698).
-  * Modify registry processing script to avoid irrelevant warnings of benign
-    enumerant redefinitions (public pull request 705).
-  * Fix some duplicate words and some misspelled "`stagess`" (public pull
-    request 712)
-
-Internal Issues:
-
-  * Enable continuous integration tests on the internal Khronos gitlab
-    server by adding a .gitlab-ci.yml file. Note: this does not implement CI
-    on the public Github repository (internal issue 408).
-  * Add link from description of depth clamping in the <<fragops-depth,
-    depth test>> section to the
-    slink:VkPipelineRasterizationStateCreateInfo::pname:depthClampEnable
-    parameter which enables it, making it easily searchable / findable
-    (internal issue 1125).
-  * Clarify that arrays of arrays of descriptors are not allowed in the
-    <<interfaces-resources-descset, Descriptor Set Interface>> and
-    <<interfaces-resources-setandbinding, DescriptorSet and Binding
-    Assignment>> sections (internal issue 1192).
-  * Comment out some redundant nested asciidoctor conditionals in the
-    slink:VkImageViewCreateInfo valid usage block, and explain in all cases
-    why the redundant conditional exist and are commented out (internal
-    issue 1231).
-  * Move a valid usage statement from slink:VkCommandPoolCreateInfo to the
-    parent flink:vkCreateCommandPool, where the device queue is known
-    (internal issue 1233).
-  * Add new slink:VkBaseInStructure and slink:VkBaseOutStructure types which
-    can be used by extensions and implementations for handling Vulkan
-    sType/pNext style structures in a more generic way (internal issue
-    1265).
-  * Clarify that
-    slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures
-    only applies to external-format images. Add references to this in valid
-    usage statements that previously only referred to
-    slink:VkFormatProperties (internal issue 1244).
-  * Fix the description of elink:VkPipelineCreateFlagBits enumerant
-    ename:VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT to match the
-    name (internal issue 1279).
-  * Add a NOTE to the <<interfaces-resources-setandbinding, DescriptorSet
-    and Binding Assignment>> section making it clear that variables sharing
-    a storage class may use identical descriptor set and bindings.
-    Specifically state the sometimes misunderstood ability to have one or
-    more differently typed image descriptors sharing a descriptor set and
-    binding (internal SPIR-V issue 264).
-  * Make DynamicIndexing features and capabilities also control the
-    uniformity of the descriptor used in memory access instructions in the
-    <<interfaces-resources-descset, Descriptor Set Interface>> section. This
-    makes them also apply to variable_pointer usage, which can bypass the
-    array indexing operation (internal SPIR-V issue 289).
-
-Other Issues:
-
-  * Correct flink:vkCmdBlitImage limitations on cubic blits to be 2D only,
-    not 3D.
-  * Update valid usage statements for slink:VkRenderPassCreateInfo and
-    slink:VkInputAttachmentAspectReference.
-  * Move YCbCr-related VU statements from slink:VkDescriptorImageInfo to
-    slink:VkWriteDescriptorSet, where all needed information is known, and
-    remove redundant statements.
-  * Move SPIR-V restriction that images be of either sampled or storage
-    types from the <<interfaces-resources-descset, Descriptor Set
-    Interface>> section to the <<spirvenv-module-validation, Validation
-    Rules within a Module>> section of the SPIR-V appendix.
-
------------------------------------------------------
-
-Change log for April 21, 2018 Vulkan 1.1.74 spec update:
-
-  * Update release number to 74.
-
-Github Issues:
-
-  * Clarify which buffer locations are accessed in
-    flink:vkCmdCopyBufferToImage valid usage statements (public issue 676).
-  * Refine description of <<extended-functionality-extensions-dependencies,
-    extension dependencies>>, related NOTE in the
-    <<extended-functionality-extensions, Extensions>> section, and
-    "`Required Extensions`" glossary term (public pull request 693).
-  * Add support for specifying required Vulkan core version in `vk.xml` and
-    the extension metadoc generator (public issue 696).
-  * Update .gitignore for directory reorganization (public pull request
-    699).
-  * Fix typo (public pull request 703).
-
-Internal Issues:
-
-  * Update valid usage of slink:VkClearRect::pname:layerCount (internal
-    issue 1241).
-
-Other Issues:
-
-  * Fix typo in <<NV_geometry_shader_passthrough>> issues list.
-
------------------------------------------------------
-
-Change log for April 15, 2018 Vulkan 1.1.73 spec update:
-
-  * Update release number to 73.
-
-Github Issues:
-
-  * Refine swapchain association with surface for slink:VkSwapchainKHR, with
-    matching valid usage statements for slink:VkSwapchainCreateInfoKHR and
-    discussion following the <<swapchain-wsi-image-create-info>> table
-    (public issue 637).
-  * Re-remove several valid usage statements from slink:VkImageCreateInfo
-    that had previously been removed at the time that
-    ename:VK_IMAGE_CREATE_EXTENDED_USAGE_BIT was introduced. These
-    statements had incorrectly been restored due to an glitch while merging
-    from the old `1.0` branch to the current `master` branch (public issue
-    683).
-
-Internal Issues:
-
-  * Fix reference page generation and configure build to generate reference
-    pages 1.1 with all extensions, rather than core only, as was the case
-    for the 1.0 ref pages (internal issues 484, 1056, 1205).
-  * Require that
-    slink:VkMemoryDedicatedRequirements::pname:prefersDedicateAllocation is
-    ename:VK_TRUE when
-    slink:VkMemoryDedicatedRequirements::pname:requiresDedicateAllocation is
-    ename:VK_TRUE (internal issue 1222).
-  * Fix Ruby extension code so `diff_html` Makefile target works (internal
-    issue 1230).
-  * Update `genRelease` script to generate 1.1 + all extensions reference
-    pages - but not the single-page HTML / PDF versions, which are even
-    larger than the API spec (internal issue 1245).
-
-Other Issues:
-
-  * Add missing attributes to `vk.xml` for `VK_ANDROID_native_buffer`.
-  * Specify that the slink:VkAttachmentDescription::pname:format member is
-    the format of the image *view* that will be used for the attachment.
-  * Use core sname:VkPhysicalDeviceFeatures2 in the `structextends` `vk.xml`
-    attribute for sname:VkPhysicalDeviceDescriptorIndexingFeaturesEXT and
-    sname:VkPhysicalDeviceDescriptorIndexingPropertiesEXT, rather than the
-    KHR equivalent it was promoted from.
-  * Fix the "`Fragment Input Attachment Interface`" glossary entry to match
-    the specification body.
-  * Clarify the interaction of sRGB images used as storage or texel buffers
-    with <<textures-output-format-conversion, Texel Output Format
-    Conversion>>.
-  * Moved three valid usage statements from
-    slink:VkRenderPassMultiviewCreateInfo up to
-    slink:VkRenderPassCreateInfo, and added a new valid usage statement for
-    slink:VkRenderPassInputAttachmentAspectCreateInfo.
-  * Added valid usage statements for slink:VkBufferMemoryBarrier and
-    slink:VkImageMemoryBarrier reflecting the global requirement that
-    "`non-sparse resources must be bound to memory before being recorded to
-    command`".
-
------------------------------------------------------
-
-Change log for April 5, 2018 Vulkan 1.1.72 spec update:
-
-  * Update release number to 72.
-
-Github Issues:
-
-  * Restructure the repository to put the specification `Makefile` and
-    associated spec source material at the top level, `vk.xml` and
-    associated scripts material in `xml/`, and generated include and source
-    files in `include/vulkan/` and `src/ext_loader/`, respectively (public
-    issue 436).
-  * Add missing bullet point markup to flink:vkCmdCopyImage valid usage
-    statement, so it gets a VUID assigned (public issue 627).
-  * Fix broken links in a couple of extension appendices (public pull
-    request 665).
-  * Add the <platform> tag to the index in section 4.1 of the registry
-    schema documentation, and add the protect= attribute of <extension>
-    tags to the comments in `registry.rnc` (public issues 673, 678).
-  * Add missing valid usage statements for sparse image interactions to
-    flink:VkImageCreateInfo (public pull request 675).
-  * Fix improper usage and grammar of "`can: not`" (public pull request
-    681).
-  * Remove duplicate spec language and NOTE on present layout between the
-    flink:vkAcquireNextImageKHR and flink:vkAcquireNextImage2KHR commands
-    (public pull request 685).
-  * Fix some typos and markup issues (public pull request 689; public issues
-    642, 667, 687).
-  * Fix typo etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT ->
-    ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT in the
-    <<external-semaphore-handle-types-compatibility, External semaphore
-    handle types compatibility>> table (public pull request 691).
-
-Internal Issues:
-
-  * Remove the need for the "`noautovalidity`" attribute on extension
-    structures in `vk.xml`. It is now implied by the "`structextends`"
-    attribute instead (internal issue 942).
-  * Replace uses of "`currently bound`" with "`bound`", since "`currently`"
-    is redundant and distracting, and add a corresponding rule to the style
-    guide (internal issue 993).
-  * Fixed subtle issues with the last updates to flink:vkAcquireNextImageKHR
-    language that had resulted in ambiguities (internal issue 1178).
-  * Make it clear that only one query of a given type is allowed at a time
-    by reordering valid usage statements for flink:vkCmdBeginQuery and
-    flink:vkCmdEndQuery, and removing redundant ones (internal issue 1213).
-  * Swapped OL1 and OL3 in `tessparamUL.svg` to match previous version, and
-    fixed where "`(no edge)`" appears (internal issue 1215).
-
-Other Issues:
-
-  * Fixed a minor problem with the valid usage statement extraction script,
-    and corresponding markup in the spec source.
-
-New Extensions:
-
-  * `VK_AMD_shader_core_properties`
-  * `VK_EXT_descriptor_indexing`
-  * `VK_NV_shader_subgroup_partitioned`
-
------------------------------------------------------
-
-Change log for March 16, 2018 Vulkan 1.1.71 spec update:
-
-  * First public update for Vulkan 1.1.
-
-Github Issues:
-
-  * Refer to standard sparse image block shape format tables explicitly in
-    the <<sparsememory-standard-shapes, Standard Sparse Image Block Shapes>>
-    section (public issue 93).
-  * Add the missing definition of the code:LocalInvocationIndex decoration
-    in the <<interfaces-builtin-variables, Built-In Variables>> section
-    (public issue 532).
-  * Clarify dynamic state definition in the introduction to the <<pipelines,
-    Pipelines>> section and the new <<pipelines-dynamic-state, Dynamic
-    State>> subsection (public issue 620).
-  * Clarified deprecation statement in the `VK_AMD_negative_viewport_height`
-    appendix (public issue 674).
-  * Fix parameter descriptions for flink:vkCreateIndirectCommandsLayoutNVX
-    (public issue 677).
-
-Internal Issues:
-
-  * Remove description of <<primsrast-points, rasterization point size>>
-    being taken from the tessellation control shader, since there are no
-    circumstances under which you can have TCS without TES (internal issue
-    522).
-  * Define <<copies-images-format-size-compatibility, _size-compatible_
-    image formats>> for flink:vkCmdCopyImage, add it to the glossary, and
-    use that definition for slink:VkImageViewCreateInfo (internal issue
-    771).
-  * Change brief descriptions of enumerant names, and of parameters which
-    are enumerants, from "`enum *indicates*`" to "`enum *specifies*`" for
-    consistency, and add a markup style guide rule (internal issue 862).
-  * Clarify how execution dependencies interact with
-    <<synchronization-submission-order, submission order>> at numerous
-    places in the <<renderpass, Render Pass>> and <<synchronization,
-    Synchronization>> chapters (internal issue 1062).
-  * Clarify statement in the <<interfaces-resources-setandbinding,
-    DescriptorSet and Binding Assignment>> section that only interface
-    variables statically used by the entry point used in a pipeline must be
-    present in the descriptor set layout (internal issue 1172).
-  * Flip sparse image diagrams with partially full mip levels vertically, to
-    match graph origins of other image diagrams (internal issue 1176).
-  * Update new SVG diagrams to have consistent style and base font size,
-    increase consistency of primitive topology diagrams, and add a section
-    to the style guide on creating and editing images in a consistent style
-    (internal issue 1177).
-  * Resolve problems with valid usage statement extraction by fixing
-    existing VUID tags for interfaces promoted to version 1.1 and fixing
-    conditional directives around
-    VUID-VkMemoryDedicatedAllocateInfo-image-01797 (internal issue 1184).
-  * Strip `KHR` suffixes from a few interfaces promoted to Vulkan 1.1 that
-    were missed previously (internal issue 1185).
-  * Restrict code:OpImageQuerySizeLod and code:OpImageQueryLevels to only
-    work on code:Image operands with their code:Sampled operand set to 1. In
-    other words, these operations are not defined to work with storage
-    images (internal issue 1193).
-  * Recycle extension slot for extension #82 in `vk.xml`. This extension was
-    never published (internal issue 1195).
-  * Add an issue to the `VK_KHR_maintenance1` appendix noting that zero
-    height viewports are allowed when this extension is enabled (internal
-    issue 1202).
-  * Fix slink:VkDescriptorSetLayoutBinding description so that shader stages
-    always use descriptor bindings, not the other way around (internal issue
-    1206).
-  * Fix field name for
-    slink:VkInputAttachmentAspectReference::pname:inputAttachmentIndex
-    (internal issue 1210).
-
-Other Issues:
-
-  * Fix a few broken links in the <<versions-1.1, Version 1.1>> appendix.
-  * Replace a few old refBegin/refEnd tags with open block markup around
-    interfaces, and remove old KHX VUID tags that were breaking the valid
-    usage statement extraction.
-  * Fix error codes accidentally tagged as success codes in `vk.xml` for
-    flink:vkGetSwapchainCounterEXT.
-  * Added valid usage statements for ftext:vkBind*Memory2 input structures
-    stext:VkBind*MemoryInfo, and fix a pname:image -> pname:buffer typo in a
-    couple of places.
-  * Fix swapped descriptions of elink:VkDescriptorType enums
-    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE and
-    ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (reported via tweet).
-
-New Extensions:
-
-  * `VK_ANDROID_external_memory_android_hardware_buffer`
-
------------------------------------------------------
-
-Change log for March 7, 2018 Vulkan 1.1.70 spec update:
-
-  * Vulkan 1.1 initial release. Bump API patch number and header version
-    number to 70 for this update. The patch number will be used for both
-    Vulkan 1.1 and Vulkan 1.0 updates, and continues to increment
-    continuously from the previous Vulkan 1.0.69 update.
-
-    NOTE: We are not publishing an updated 1.0.70 specification, or 1.1
-    reference pages, along with 1.1.70. There are still minor issues to work
-    out with those build targets. However, we will soon generate all three
-    types of documents as part of the regular spec update cycle.
-
-    NOTE: The GitHub KhronosGroup/Vulkan-Docs repository now maintains the
-    current specification in the `master` branch. The `1.0` branch is out of
-    date and will not be maintained, since we will be generating both 1.1
-    and 1.0 specifications from the `master` branch in the future.
-
-Github Issues:
-
-  * Clarify how mapped memory ranges are flushed in
-    flink:vkFlushMappedMemoryRanges (public issue 127).
-  * Specify that <<synchronization-pipeline-stages, Pipeline Stages>> are a
-    list of tasks that each command performs, rather than necessarily being
-    discrete pieces of hardware that one task flows through. Add a
-    "`synchronization command`" pipeline type which all synchronization
-    command execute (it's just TOP + BOTTOM), with an explanatory note
-    (public issue 554).
-
-Internal Issues:
-
-  * Regenerate all images used in the spec in Inkscape with a consistent
-    look-and-feel, and adjust image size attributes so they're all legible,
-    and not too large with respect to the spec body text (internal issue
-    701).
-  * Document in the <<extensions,extensions>> appendix and in the style
-    guide that `KHX` extensions are no longer supported or used in the
-    Vulkan 1.1 timeframe (internal issue 714).
-  * Remove the leftover equations_temp directory after PDF build completes
-    (internal issue 925).
-  * Update the <<credits, Credits (Informative)>> appendix to include
-    contributors to Vulkan 1.1, and to list them according to the API
-    version(s) they contributed to (internal issue 987).
-  * Add a NOTE to the introduction explaining that interfaces defined by
-    extensions which were promoted to Vulkan 1.1 are now expressed as
-    aliases of the Vulkan 1.1 type (internal issue 991).
-  * Instrument spec source conditionals so spec can be built with 1.1
-    features, extensions promoted to 1.1, or both (internal issues 992,
-    998).
-  * Modify the XML schema and tools to support explicit aliasing of types,
-    structures, and commands, and use this to express the promotion of 1.0
-    extensions to 1.1 core features, by making the extension interfaces
-    aliases of the core features they were promoted to. Mark up promoted
-    interfaces to allow still generating 1.0 + extension specifications
-    (internal issue 991).
-  * Platform names, along with corresponding preprocessor symbols to enable
-    extensions specific to those platforms, are now reserved in vk.xml using
-    the <platform> tag. Update the registry schema and schema specification
-    to match (internal issue 1011).
-  * Updated the <<textures-texel-replacement, Texel Replacement>> section to
-    clarify that reads from invalid texels for image resources result in
-    undefined values (internal issue 1014).
-  * Modify description of patch version so it continues to increment across
-    minor version changes (internal issue 1033).
-  * Clarify and unify language describing physical device-level core and
-    extension functionality in the <<fundamentals-validusage-extensions,
-    Valid Usage for Extensions>>, <<fundamentals-validusage-versions, Valid
-    Usage for Newer Core Versions>>, <<initialization-functionpointers
-    Command Function Pointers>>, <<initialization-phys-dev-extensions,
-    Extending Physical Device From Device Extensions>>
-    <<extended-functionality-instance-extensions-and-devices, Instance
-    Extensions and Device Extensions>> sections and for
-    flink:vkGetPhysicalDeviceImageFormatProperties2. This documents that
-    instance-level functionality is tied to the loader, and independent of
-    the ICD; physical device-level functionality is tied to the ICD, and
-    associated with device extensions; physical devices are treated more
-    uniformly between core and extensions; and instance and physical
-    versions can be different (internal issue 1048).
-  * Updated the <<commandbuffers-lifecycle, Command Buffer Lifecycle>>
-    section to clarify the ability for pending command buffers to transition
-    to the invalid state after submission, and add a command buffer
-    lifecycle diagram (internal issue 1050).
-  * Clarify that some flink:VkDescriptorUpdateTemplateCreateInfo parameters
-    are ignored when push descriptors are not supported (internal issue
-    1054).
-  * Specify that flink:vkCreateImage will return an error if the image is
-    too large, in a NOTE in the slink:VkImageFormatProperties description
-    (internal issue 1078).
-  * Remove near-duplicate NOTEs about when to query function pointers
-    dynamically in the <<initialization, Initialization>> chapter and
-    replace by extending the NOTE in the <<fundamentals-abi, Application
-    Binary Interface>> section (internal issue 1085).
-  * Restore missing references to "`Sparse Resource Features`" in the
-    flink:VkBufferCreateFlagBits description (internal issue 1086).
-  * Tidy up definitions of descriptor types in the `GL_KHR_vulkan_glsl`
-    specification, the <<descriptorsets, Resource Descriptors>> section and
-    its subsections, and the <<interfaces-resources-descset, Descriptor Set
-    Interface>> for consistency, reduction of duplicate information, and
-    removal of GLSL correspondance/examples (internal issue 1090).
-  * Correctly describe code:PrimitiveId as an Input for tessellation control
-    and evaluation shaders, not an Output (internal issue 1109).
-  * Relax the requirements on chroma offsets for nearest filtering in
-    <<textures-implict-reconstruction, Implicit Reconstruction>> (internal
-    issue 1116).
-
-Other Issues:
-
-  * Clarify the intended relationship between specification language and
-    certain terms defined in the Khronos Intellectual Property Rights
-    policy. Specific changes include:
-  ** Rewrote IP/Copyright preamble and introduction to better agree with
-     normative language both as laid out in the introduction, and the
-     Khronos IPR policy.
-  ** Added notion of fully informative sections, which are now tagged with
-     "`(Informative)`" in their titles.
-  ** Removed non-normative uses of the phrase "`not required`"
-  ** Clarified the distinction between terms "`optional`" and "`not
-     required:`" as they relate to the IPR Policy, and updated specification
-     text to use terms consistent with the intent.
-  ** Reduced additions to RFC 2119, and ensured the specification agreed
-     with the leaner language.
-  ** Removed the terms "`hardware`", "`software`", "`CPU`", and "`GPU`" from
-     normative text.
-  ** Moved several paragraphs that should not have been normative to
-     informative notes.
-  ** Clarified a number of definitions in the Glossary.
-  ** Updated the document writing guide to match new terminology changes.
-  * Explicitly state in the <<fundamentals-objectmodel-lifetime-acquire,
-    application memory lifetime>> language that for objects other than
-    descriptor sets, a slink:VkDescriptorSetLayout object used in the
-    creation of another object (such as slink:VkPipelineLayout or
-    slink:VkDescriptorUpdateTemplateKHR) is only in use during the creation
-    of that object and can be safely destroyed afterwards.
-  * Updated the <<textures-scale-factor, Scale Factor Operation>> section to
-    use the ratio of anisotropy, rather than the integer sample rate, to
-    perform the LOD calculation. The spec still allows use of the sample
-    rate as the value used to calculate the LOD, but no longer requires it.
-  * Update `vulkan_ext.c` to include all platform-related definitions from
-    the Vulkan platform headers, following the split of the headers into
-    platform-specific and non-platform-specific files.
-  * Fix bogus anchor name in the <<commandbuffers, Command Buffers>> chapter
-    which accidentally duplicated an anchor in the pipelines chapter. There
-    were no reference to this anchor, fortunately.
-  * Add valid usage statement for slink:VkWriteDescriptorSet and
-    slink:VkCopyDescriptorSet requiring that the slink:VkDescriptorSetLayout
-    used to allocate the source and destination sets must not have been
-    destroyed at the time flink:vkUpdateDescriptorSets is called.
-  * Document mapping of subgroup barrier functions to SPIR-V, and clarify a
-    place where subgroupBarrier sounds like it's execution-only in the
-    standalone `GL_KHR_shader_subgroup` specification.
-  * Use an HTML stylesheet derived from the Asciidoctor `colony` theme, with
-    the default Arial font family replaced by the sans-serif Noto font
-    family.
-  * Numerous minor updates to README.adoc, build scripts, Makefiles, and
-    registry and style guide specifications to support Vulkan 1.1 outputs,
-    use them as defaults, and remove mention of `KHX` extensions, which are
-    no longer supported.
-
-
-New Extensions:
-
-  * `VK_EXT_vertex_attrib_divisor`
-
------------------------------------------------------
-
-Change log for February 19, 2018 Vulkan 1.0.69 spec update:
-
-  * Bump API patch number and header version number to 69 for this update.
-
-Github Issues:
-
-  * Clean up description of synchronization for flink:vkAcquireNextImageKHR
-    (public issue 626).
-  * Move valid usage statements requiring offset and extent to respect image
-    transfer granularity requirements of the queue family they are submitted
-    against from slink:VkImageCopy and slink:VkBufferImageCopy to the
-    corresponding flink:vkCmdCopyImage, flink:vkCmdCopyBufferToImage, and
-    flink:vkCmdCopyImageToBuffer commands, where are relevant information is
-    known (public issue 654).
-  * Clarify that flink:vkGetDeviceProcAddr only supports device-level
-    commands (public issue 655).
-
-Internal Issues:
-
-  * Associate each elink:VkDescriptorType with a type of descriptor, and
-    link to descriptions of those types (internal issue 860).
-  * Rework valid usage extraction script to better utilize and respond to
-    spec markup, and fix some spec markup accordingly (internal issues 846,
-    909, 945).
-  * Rephrase flink:vkCmdPushConstants valid usage to allow overlapping push
-    constant ranges in different shader stages (internal issue 1103).
-  * Fix problem with diff_html target in extension.rb (internal issue 1104).
-  * Modify valid usage statements for slink:VkClearDepthStencilValue,
-    slink:VkGraphicsPipelineCreateInfo, slink:VkViewport, and
-    flink:vkCmdSetDepthBounds, and the description of vkCmdSetDepthBias, to
-    clarify that clamping is applied if and only if the
-    `VK_EXT_depth_range_unrestricted` is not enabled (internal issue 1124),
-    in versions of the specification built with that extension included.
-  * Resolve contradictions and use of undefined "`per-sample shading`" term
-    in the <<primsrast-sampleshading, Sample Shading>> and
-    <<shaders-fragment-execution, Fragment Shader Execution>> sections; for
-    the <<features-features-sampleRateShading, sampleRateShading feature>>;
-    for code:FragCoord, code:SampleId, and code:SamplePosition; and for
-    slink:sname:VkPipelineMultisampleStateCreateInfo (internal issue 1134).
-  * Clarify the meaning of the ptext:maxDescriptorSet* limits in footnote 8
-    of the <<features-limits-required,Required Limits>> table (internal
-    issue 1139).
-  * Fix broken NOTE markup in slink:VkSamplerCreateInfo.txt (internal issue
-    1140).
-  * Remove extend comparison language from valid usage statement for
-    slink:VkImageCreateInfo, turning it into a simple validation of
-    pname:mipLevels against pname:maxMipLevels (internal issue 1151).
-  * Update valid usage statements for slink:VkImageCopy when the
-    `VK_KHR_maintenance1` extension is enabled to allow multi-slice 2D <->
-    3D copies when the pnaem:extent.depth parameter specifies the number of
-    layers being copied, and matches the
-    slink:VkImageSubresourceLayers.layerCount of the 2D image (internal
-    issue 1152).
-  * Rephrase memory / control barrier rules in the
-    <<spirvenv-module-validation, Validation Rules within a Module>> section
-    to avoid "`not use none`", which could be misconstrued to allow no
-    synchronization semantics, and only storage class semantics (internal
-    issue 1154).
-
-Other Issues:
-
-  * Move GLSL extension specifications to the KhronosGroup/GLSL repository
-    on Github.
-  * Add missing description of ename:VK_FILTER_CUBIC_IMG enum to
-    slink:VkFilter.
-  * Update description of code:PrimitiveId in the
-    <<interfaces-builtin-variables,Built-In Variables>> section to clarify
-    its behavior.
-  * Disallow disjoint images from being used with dedicated-memory images in
-    slink:VkMemoryDedicatedAllocateInfoKHR.
-  * Update README to suggest older versions of "mathematical" and
-    "ruby-gems" packages for use on Cygwin.
-  * Fix typos
-
-New Extensions:
-
-  * `VK_AMD_buffer_marker`
-
------------------------------------------------------
-
-Change log for January 15, 2018 Vulkan 1.0.68 spec update:
-
-  * Bump API patch number and header version number to 68 for this update.
-
-Github Issues:
-
-  * Added more details in the
-    <<extended-functionality-extensions-compatibility, Extension
-    Compatibility>> section, allowing explicit incompatibilities, and
-    simplify corresponding language in the style guide, which now defers to
-    the API Specification on this point (public issue 638).
-  * Fix typo in description of slink:VkCommandBufferLevel::pname:level
-    (public issue 651).
-  * Only include extension-dependent valid usage statement for
-    slink:VkImageSubresourceRange, and note that the extension names for
-    header files described in the <<boilerplate-wsi-header, Window
-    System-Specific Header Control>> section are only valid links, when the
-    specification being viewed is built with the corresponding extensions
-    enabled (public issue 652).
-
-Internal Issues:
-
-  * Add language to elink:VkResult specifying that when commands return an
-    error, output parameter contents are undefined instead of unmodified
-    (except for pname:sType and pname:pNext). Note that this is a behavior
-    change. Add notes calling out slink:VkImageFormatProperties as an
-    exception (internal issue 1118).
-  * Add "`general-purpose`" to the style guide, and correct existing uses of
-    "`general purpose`" as an adjective (internal issue 1121).
-  * Add the ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT token
-    for the `VK_EXT_validation_cache` extension, following the same naming
-    pattern as other tokens in the extension, but keep the old
-    ename:VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT token around for
-    backwards compatibility (internal issue 1126).
-
-Other Issues:
-
-  * Specify that flink:vkCmdSetDiscardRectangleEXT does not affect copies or
-    clears, matching existing language for the scissor rectangle test.
-  * Move the <<boilerplate-sType, pname:sType>> definition from the
-    boilerplate appendix to the Fundamentals chapter, putting it together
-    with the valid usage of pname:sType rather than having the definition
-    split across two places.
-  * Inline all of the etext:Vk*Flags definitions, moving each one from the
-    boilerplate appendix to appear either after the corresponding
-    etext:Vk*FlagBits value if one is defined, or after the first structure
-    that includes them if not.
-
------------------------------------------------------
-
-Change log for January 5, 2018 Vulkan 1.0.67 spec update:
-
-  * Bump API patch number and header version number to 67 for this update.
-  * Update copyright dates to 2018
-
-Github Issues:
-
-  * Fix texture lookup functions in `GL_KHR_vulkan_glsl` specification
-    (public pull request 363).
-  * Clarify the state waited semaphores are left in when a call to
-    flink:vkQueuePresentKHR fails (public issue 572).
-  * Cleanup descriptions of slink:VkObjectTablePushConstantEntryNVX and
-    slink:VkObjectTableDescriptorSetEntryNVX (public issue 583)
-  * Remove redundant flink:vkCmdSetDiscardRectangleEXT valid usage
-    statements (public pull 586).
-  * Make dynamic state array length valid usage statements implicit for
-    flink:vkCmdSetViewportWScalingNV, flink:vkCmdSetDiscardRectangleEXT, and
-    flink:vkCmdSetViewport (public pull 589).
-  * Clarify meaning of window extent (0,0) in slink:VkSwapchainKHR for the
-    Windows and X11 platforms, in their respective extensions (public issue
-    590).
-  * Allow flink:vkGetPastPresentationTimingGOOGLE to return
-    ename:VK_INCOMPLETE (public issue 604).
-  * Add synchronization valid usage statements to flink:vkAcquireNextImage
-    (public pull 611).
-  * Fix some broken external links and internal xrefs (public pull 613).
-  * Clean up slink:VkViewport valid usage statements in the presence or
-    absence of relevant extensions (public pull 623).
-  * Remove
-    ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR
-    token from VK_KHR_maintenance2 from the non-extension VU path for
-    slink:VkGraphicsPipelineCreateInfo (public issue 628).
-  * Miscellaneous minor markup fixes - extension name strings (public pull
-    631), Notes (pull 633), queue names emitted by generator scripts (pull
-    634), block formatting in slink:VkDescriptorUpdateTemplateEntryKHR (pull
-    635), ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG (pull
-    641), quotes and apostrophes (pull 643),
-  * Miscellaneous minor grammar fixes (public pull 644).
-  * Fix markup macros so usage like ptext:*Src* works (public pull 647).
-
-Internal Issues:
-
-  * Clarify in the `VK_KHR_surface` and `VK_KHR_swapchain` extensions that
-    parameter combinations which aren't supported for normal images are also
-    unsupported for presentable images, even if the parameter values are
-    individually supported as reported by the surface capability queries
-    (internal issue 1029).
-  * Fixed XML typo in the valid value field of the pname:sType member of
-    slink:VkPhysicalDeviceExternalMemoryHostPropertiesEXT (internal issue
-    1100).
-
-Other Issues:
-
-  * Add memory semantics validity rules to the <<spirvenv-module-validation,
-    Validation Rules within a Module>> section of the SPIR-V environment
-    appendix, and specify that sequentiality consistency is not supported.
-    This forbids certain cases like "`Load+Release`" that we don't expect to
-    ever be meaningful.
-  * Document mapping of OpenGL Shading Language barriers to SPIR-V scope and
-    semantics in the `GL_KHR_vulkan_glsl` specification.
-
-New Extensions:
-
-  * `VK_EXT_conservative_rasterization`
-
------------------------------------------------------
-
-Change log for November 27, 2017 Vulkan 1.0.66 spec update:
-
-  * Bump API patch number and header version number to 66 for this update.
-
-Github Issues:
-
-  * Clarified how and when ename:VK_ERROR_TOO_MANY_OBJECTS is generated in
-    flink:vkAllocate Memory, and remove incorrect valid usage statement
-    about exceeding the API limit (public issue 356).
-  * Minor clarification of the description of
-    flink:vkUpdateDescriptorSetWithTemplateKHR::pname:descriptorUpdateTemplate
-    (public issue 564).
-  * Minor fixes for flink:vkCmdSetViewportWScalingNV (public pull request
-    588).
-  * Fix random name markup issues (public pull request 603).
-  * Fix code:BuiltIn decoration typo in the <<fxvertex-attrib, Vertex
-    Attributes>> section (public pull request 606).
-  * Fix synchronization language following the definition of
-    flink:vkAcquireNextImageKHR (public issue 607).
-  * Restore descriptions of several commands and structures missing from the
-    generated spec due to a mistyped asciidoctor conditional (public issue
-    612).
-  * Fix 1.0.41 changelog to refer to public issues 403/404 (public issue
-    618).
-
-Internal Issues:
-
-  * Refactor valid usage statements with internal conditionals in
-    `copies.txt`, `pipelines.txt`, `renderpass.txt`, and `resources.txt` so
-    each branch of the conditional appears as a standalone statement which
-    can contain a separate VUID. This should have no impact on the generated
-    specs, but is necessary given the present state of the VU extractor and
-    the validation layer code that consumes them (internal issue 1043).
-  * Fix VkQueueGlobalPriorityEXT enum values missing _EXT suffix (internal
-    issue 1045).
-  * Clarified initial ownership of resources bound to shared memory objects,
-    (internal issue 1068).
-  * Fix duplicated valid usage ID tag for flink:vkCmdCopyImage, and make the
-    required layouts include ename:VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL in
-    both cases (internal issue 1084).
-
-Other Issues:
-
-  * Remove the noise functions from GLSL for SPIR-V for Vulkan in the
-    `GL_KHR_vulkan_glsl.txt` extension.
-
-New Extensions:
-
-  * `VK_EXT_external_memory_host`
-  * `VK_EXT_external_memory_dma_buf`
-  * `VK_EXT_queue_family_foreign`
-
------------------------------------------------------
-
-Change log for October 27, 2017 Vulkan 1.0.65 spec update:
-
-  * Bump API patch number and header version number to 65 for this update.
-
-Github Issues:
-
-  * Replaced inaccurate "`pixel`" with "`texel`" or "`compressed texel
-    block`" as appropriate in the <<sparsememory, Sparse Resources>> chapter
-    (public issue 86).
-  * Attempt to clarify security/integrity guarantees in the
-    <<fundamentals-errors, Errors>> section (public issue 147).
-  * Update the <<memory-device,Device Memory>> section with clarifications
-    and markup fixes (public pull request 194).
-  * Fix typo VkDeviceCreateInfo -> slink:VkDebugMarkerObjectNameInfoEXT in
-    sample code for `VK_EXT_debug_marker` extension (public pull request
-    227).
-  * Clarified slink:VkFramebufferCreateInfo language regarding concurrent
-    use of attachment resources during a render pass instance (public issue
-    299).
-  * Added overlap rules for destination regions in <<copies,copy commands>>.
-    Also unified the sparse and non-sparse source-destination overlap rules,
-    since the non-sparse rules were technically inaccurate in the face of
-    aliasing in flink:vkBindMemory2 - the new rules are true regardless
-    (public issue 317).
-  * Clarified the <<features-features-samplerAnisotropy,
-    pname:samplerAnisotropy feature>> to only affect the
-    slink:VkSamplerCreateInfo::pname:anisotropyEnable value, and that
-    pname:maxAnisotropy is ignored when pname:anisotropyEnable is VK_FALSE
-    (public issue 503).
-  * Clarify pointer valid usage statements to use "`valid pointer to valid
-    _object_`" terminology and update the
-    <<fundamentals-validusage-pointers,Valid Usage for Pointers>> section
-    accordingly (public pull request 547).
-  * Some operations that use integer coordinates can also accept a LOD to
-    sample from. Add a description of that selection and the validity
-    conditions in the new <<textures-integer-coordinate-operations, Integer
-    Texel Coordinate Operations>> section (public issue 548).
-  * Update stext:VkImageSubresource* valid usage statements (public pull
-    request 550).
-  * Added text tying ename:VK_OUT_OF_POOL_MEMORY error for
-    flink:vkAllocateDescriptorSets to the number of descriptor types in the
-    allocating pool. Removed redundant "`length`" text about number of
-    descriptors returned (public issue 582).
-  * Update slink:VkSwapchainCreateInfoKHR descriptions (public pull request
-    585).
-  * Update slink:VkPipelineViewportWScalingStateCreateInfoNV and related
-    structures' valid usage statements (public pull request 587).
-  * Change some dates to conform to ISO 8601 as specified in the style guide
-    (public pull request 601).
-  * Fix some math markup problems and be more consistent in use of asciidoc
-    math markup (public pull request 602).
-
-Internal Issues:
-
-  * Clarified that attribute reads from incomplete vertex buffer elements
-    are considered out of bounds accesses, in the
-    slink:VkPhysicalDeviceFeatures and flink:vkCmdBindVertexBuffers.txt
-    sections (internal issue 842).
-
------------------------------------------------------
-
-Change log for October 20, 2017 Vulkan 1.0.64 spec update:
-
-  * Bump API patch number and header version number to 64 for this update.
-
-Github Issues:
-
-  * Add chapter name to the PDF page footer (public pull request 458).
-  * Fix several mistaken references to the nonexistent etext:VK_DEVICE_LOST
-    status to etext:VK_ERROR_DEVICE_LOST (public pull request 502).
-  * Fix description of the tlink:PFN_vkDebugReportCallbackEXT debug report
-    callback function pointer to match the validation layer behavior (public
-    issue 534).
-  * Document experimental KHX extensions and alternate vendor author IDs
-    also ending in X in more detail in the <<extensions, Layers &
-    Extensions>> appendix, the extensions section of the style guide, and
-    the registry schema description document (public issues 536, 580).
-  * Fix references to ptext:pDepthStencil to properly refer to
-    pname:pDepthStencilState or pname:pRasterizationState as appropriate in
-    the slink:VkGraphicsPipelineCreateInfo description (public issue 542).
-  * Fix wrong parameter name in slink:VkPipelineMultisampleStateCreateInfo
-    valid usage (public pull request 571).
-
-Internal Issues:
-
-  * Update the style guide to describe how to write LaTeX math expressions
-    in table cells (internal issue 908).
-  * Define how framebuffer-local dependencies work between subpasses with
-    the same or different numbers of samples, in the
-    slink:VkSubpassDescription and <<synchronization-framebuffer-regions,
-    Framebuffer Region Dependencies>> sections. This clarifies which samples
-    in an input attachment you are allowed to access after a
-    framebuffer-local dependency (internal issue 915).
-  * Specify which storage classes can have an initializer in the
-    <<spirvenv-module-validation, Validation Rules within a Module>> section
-    (internal issue 1023).
-  * Use "LOD" consistently for "level-of-detail", to eliminate spelling
-    inconsistencies. The term is already standardized in the Glossary
-    (internal issue 1027).
-
-Other Issues:
-
-  * Fix false positives in Makefile dependencies when rules fail, by
-    deleting partially-made targets.
-
-New Extensions:
-
-  * `VK_AMD_shader_info`
-
------------------------------------------------------
-
-Change log for October 13, 2017 Vulkan 1.0.63 spec update:
-
-  * Bump API patch number and header version number to 63 for this update.
-
-Github Issues:
-
-  * Add missing valid usage statements for ptext:maxDescriptorSets*,
-    ptext:maxPerStageDescriptorInputAttachments, and
-    ptext:maxPerStageResources to slink:VkPipelineLayoutCreateInfo.txt,
-    flink:VkComputePipelineCreateInfo, and
-    flink:VkGraphicsPipelineCreateInfo (public issue 546).
-  * Fix typos in ftext:vkCmdDraw*AMD descriptions (public pull request 549).
-  * Fixed flink:vkCmdWriteTimestamp so it is not unnecessarily restricted to
-    queues supporting graphics or compute operations (public issue 558).
-  * Improvements to valid usage generator for output `*Flags` pointer
-    parameters and for some `void *` parameters (public pull requests 560,
-    562).
-  * Document `altlen` attribute in XML schema as valid C99 syntax and tweak
-    `vk.xml` to match (public pull request 566).
-  * Clarify when pname:fence is signaled by flink:vkQueueSubmit in a more
-    obvious place (public issue 577).
-
-Internal Issues:
-
-  * Specify a list of supported SPIR-V Storage Classes in the
-    <<spirvenv-module-validation, Validation Rules within a Module>>
-    appendix (internal SPIR-V issue 166).
-  * Relax the shared semaphore wait timeout requirement in the
-    <<synchronization-semaphores-importing, Importing Semaphore Payloads>>
-    section (internal issue 820).
-  * Update the <<textures-image-level-selection, Image Level(s) Selection>>
-    equations so that the parameters returned by the level-of-detail query
-    appear explicitly, also fixing the issue that linear filtering would
-    select a level below the base level for magnification (internal issue
-    926).
-  * Disallow creation of a swapchain with zero pname:imageExtent in
-    slink:VkSurfaceCapabilitiesKHR and slink:VkSwapchainCreateInfoKHR
-    (internal issue 1020).
-
-Other Issues:
-
-  * Clarify in <<textures-operation-validation,Image View Validation>> that
-    the layout of subresources in an image view must have a layout that
-    matches that written into the descriptor, and that this section is about
-    validating image views, not images.
-
-New Extensions:
-
-  * `VK_EXT_global_priority`
-
------------------------------------------------------
-
-Change log for October 6, 2017 Vulkan 1.0.62 spec update:
-
-  * Bump API patch number and header version number to 62 for this update.
-
-Github Issues:
-
-  * Move asciidoc conditionals for `VK_KHR_maintenance1` in
-    slink:VkDescriptorSetAllocateInfo so valid usage statements for
-    `VK_KHR_push_descriptor` aren't accidentally removed when the first
-    extension isn't enabled (public issue 573).
-
-Internal Issues:
-
-  * Specify constraints on concurrent access to fences that share payload in
-    the <<synchronization-fences-importing, Importing Fence Payloads>> and
-    <<synchronization-semaphores-waiting-state, Semaphore State Requirements
-    For Wait Operations>> sections (internal issue 820).
-  * Define the term "`retired swapchain`", reorganize some swapchain
-    language, and improve language for pname:oldSwapchain in
-    flink:VkSwapchainCreateInfoKHR, the <<swapchain-wsi-image-create-info>>
-    table, flink:vkDestroySwapchainKHR, and flink:vkAcquireNextImage2KHX
-    (internal issue 869).
-  * Describe in the <<writing-arrays, Describing Properties of Array
-    Elements>> section of the style guide how and when to use "`each`" and
-    "`any`" to refer to properties of array elements, and make those uses in
-    the specification consistent (internal issue 884).
-  * Clarified that events cannot be used for cross-queue synchronization in
-    the <<synchronization-events, Events>> section and for
-    flink:vkCmdWaitEvents (internal issue 970).
-  * Add success and error codes to +vk.xml+ for
-    flink:vkCreateValidationCacheEXT (internal issue 995).
-  * Clarify aspect mask usage for image memory barriers of multi-plane
-    images in slink:VkImageSubresourceRange, slink:VkImageMemoryBarrier, and
-    the <<textures-layout-validation, Layout Validation>> section (internal
-    issue 996).
-
-Other Issues:
-
-  * Fixed typo in flink:VkRenderPassSampleLocationsBeginInfoEXT (renamed
-    field pname:pSubpassSampleLocations to
-    pname:pPostSubpassSampleLocations).
-  * Add missing buffer usage requirements for indirect draws in
-    flink:vkCmdDrawIndirect, flink:vkCmdDrawIndirectCountAMD,
-    flink:vkCmdDrawIndexedIndirect, and
-    flink:vkCmdDrawIndexedIndirectCountAMD.
-  * Modify Makefile to allow specification to build in git "`detached HEAD`"
-    state.
-  * Update valid usage ID generation script to allow recursively operating
-    on all `.txt` files in a specified directory, and move the `startVUID`
-    tracking information into a separate python file that is automatically
-    updated by the script.
-  * Fixed errors in API example code for
-    flink:vkUpdateDescriptorSetWithTemplateKHR and
-    flink:vkCmdPushDescriptorSetWithTemplateKHR.
-
-New Extensions:
-
-  * Add +vk.xml+ entries for pending `VK_ANDROID_native_buffer` extension
-    (note, this extension is not yet enabled).
-  * `VK_AMD_shader_image_load_store_lod`
-
------------------------------------------------------
-
-Change log for September 15, 2017 Vulkan 1.0.61 spec update:
-
-  * Bump API patch number and header version number to 61 for this update.
-
-Github Issues:
-
-  * Provide alternate length attributes (altlen=) in the XML schema, for
-    those using length attributes to generate code instead of documentation
-    (public issue 555).
-  * Fix erroneous references to `latex:` being used for asciidoc math
-    markup, rather than `latexmath:` (public pull request 556).
-  * Add author ID to XML for Kazan software renderer (public pull request
-    557).
-
-Internal Issues:
-
-  * Add the <<fundamentals-abi,Application Binary Interface>> section
-    describing platform ABI requirements and recommendations, add examples
-    of function and function pointer declarations to the
-    <<boilerplate-platform-specific-calling-conventions, Platform-Specific
-    Calling Conventions>> section, and remove related language that existed
-    elsewhere in the specification (internal issue 64).
-  * Describe where to document valid usage interactions of chained
-    structures in the style guide, and fix one case now appearing in
-    slink:VkBufferCreateInfo instead of the child
-    slink:VkDedicatedAllocationBufferCreateInfoNV structure (internal issue
-    715).
-  * Add example to the style guide of describing enumerated types which are
-    empty when the spec is built without relevant extensions enabled, and
-    apply it to existing examples for
-    elink:VkDescriptorSetLayoutCreateFlagBits and
-    elink:VkSubpassDescriptionFlagBits (internal issue 864).
-  * Add a note to the <<fundamentals-validusage-enums, Valid Usage for
-    Enumerated Types>> section that the special values suffixed with
-    etext:_BEGIN_RANGE, etext:_END_RANGE, etext:_RANGE_SIZE and
-    etext:_MAX_ENUM are not part of the API and should: not be used by
-    applications (internal issue 872).
-  * Added note to flink:vkCmdUpdateBuffers explaining the performance
-    penalty for copies done in this way, and why the upper copy limit is
-    what it is (internal issue 952).
-  * Update `VK_KHX_device_group` to split some functionality into the new
-    `VK_KHR_bind_memory2` extension, and rename that functionality (internal
-    issue 969).
-  * Remove *Status* fields from extension appendices, since they are by
-    definition published and complete by the time they reach the public
-    github repository (internal issue 973).
-
-Other Issues:
-
-  * Update Data Format specification dependency to version 1.2 and change
-    references to DF sections accordingly.
-  * Update XML to make the pname:pAllocator parameter of
-    flink:vkRegisterDeviceEventEXT and flink:vkRegisterDisplayEventEXT in
-    the `VK_EXT_display_control` extension as optional.
-
-New Extensions:
-
-  * `VK_KHR_bind_memory2`
-  * `VK_KHR_image_format_list`
-  * `VK_KHR_maintenance2`
-  * `VK_KHR_sampler_ycbcr_conversion`
-
------------------------------------------------------
-
-Change log for September 5, 2017 Vulkan 1.0.60 spec update:
-
-  * Bump API patch number and header version number to 60 for this update.
-
-Github Issues:
-
-  * Document that <<queries-timestamps, Timestamp Queries>> can only be
-    meaningfully compared when they are written from the same queue (public
-    issue 216).
-  * Document that the `<extension>` tag `type` attribute is required for
-    non-disabled extensions (derived from, but does not close public issue
-    354).
-  * Clean up registry schema length attribute descriptions to be consistent
-    and correct (public issue 555).
-
-Internal Issues:
-
-  * Replace as much of the hand-written extension appendix metadata as
-    possible with asciidoc includes generated from corresponding attributes
-    of +vk.xml+, and enhance the style guide to match. This avoids
-    inconsistencies between +vk.xml+ and the appendices, and produces a more
-    uniform style (internal issue 137).
-  * Remove the generated extDependency.{py,sh} files from the tree and
-    create them dynamically on demand instead, reducing merge conflicts
-    (internal issue 713).
-  * Add a prototype tool for generating in-place difference markup for
-    sections guarded by asciidoc conditionals, and new syntax for open
-    blocks to support it (internal issue 833).
-  * Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle
-    types to the same physical device in the
-    slink:VkPhysicalDeviceIDPropertiesKHR,
-    flink:VkImportMemoryWin32HandleInfoKHR,
-    slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR,
-    slink:VkImportSemaphoreWin32HandleInfoKHR,
-    slink:VkImportSemaphoreFdInfoKHR
-    <<external-memory-handle-types-compatibility, External memory handle
-    types compatibility>>, <<external-semaphore-handle-types-compatibility,
-    External semaphore handle types compatibility>>, and
-    <<external-fence-handle-types-compatibility, External fence handle types
-    compatibility>> sections (internal issue 956).
-
-Other Issues:
-
-  * Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there
-    is an interaction, but not a strict dependency), and add a new
-    `extension` attribute to the `<require` XML tag to allow classifying a
-    subset of interfaces of an extension as requiring another extension.
-    Update the registry schema and documentation accordingly.
-
-New Extensions:
-
-  * `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask`
-    GLSL extension)
-  * `VK_EXT_sample_locations`
-  * `VK_EXT_validation_cache`
-
------------------------------------------------------
-
-Change log for August 19, 2017 Vulkan 1.0.59 spec update:
-
-  * Bump API patch number and header version number to 59 for this update.
-
-Github Issues:
-
-  * Fix a few missing Implicit Valid Usage statements to indicate that a
-    common parent of two objects is required (public issue 497).
-  * Clarify render pass synchronization language for
-    slink:VkSubpassDependency and <<renderpass,render passes>> (public
-    issue 531).
-  * Rename ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT to
-    ename:VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT for consistency, and
-    add an alias for backwards compatibility (public issue 539).
-
-Internal Issues:
-
-  * Add an explanation to the <<interfaces-builtin-variables-layer,
-    code:Layer>> description explaining that writing to invalid layers
-    results may or may not result in primitives being processed and fragment
-    shaders being run, and gives undefined results in the framebuffer
-    (internal issue 614)
-  * Add valid usage statement for slink:VkDescriptorSetLayoutBinding
-    requiring that input attachment descriptor bindings must not use
-    non-fragment stages (internal issue 933).
-
-Other Issues:
-
-  * Makes description of pname:loadOp and pname:storeOp easier to read in
-    the <<renderpass-load-store-ops>> section.
-
-New Extensions:
-
-  * `VK_EXT_shader_stencil_export`
-
------------------------------------------------------
-
-Change log for August 14, 2017 Vulkan 1.0.58 spec update:
-
-  * Bump API patch number and header version number to 58 for this update.
-
-Github Issues:
-
-  * Update the <<interfaces-resources-descset,Descriptor Set Interface>>
-    section to allow multiple variables with the same descriptor set/binding
-    decorations, and require that all variables that are statically used
-    must be consistent with the pipeline layout. Allow
-    ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER to be used with texture
-    and sampler variables (public issues 522, 524).
-
-Internal Issues:
-
-  * Replace networkx package used for extension dependency generation with a
-    homegrown network dependency traverser (internal issue 713).
-  * Specify in the <<interfaces-fragmentoutput, Fragment Output Interface>>
-    section that if a fragment shader writes integers that cannot be
-    represented in the format of the colour attachment, then the result is
-    undefined (internal issue 893).
-  * Separate malformed valid usage statement for
-    slink:VkPipelineRasterizationStateCreateInfo into two (internal issue
-    918).
-  * Fix cases where the term 'pNext chain' is incorrectly used in reference
-    to functions, rather than their parameters. Replace 'pNext list' with
-    'pNext chain'. Fixed typo in the example code of
-    +VK_KHR_dedicated_allocation+ (internal issue 944).
-  * Fix typo in elink:VkExternalSemaphoreHandleTypeFlagBitsKHR enum
-    descriptions, replacing
-    etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR with
-    ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR, and make the
-    description more consistent with
-    VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR (internal issue 950).
-
-Other Issues:
-
-  * Clarify how pipeline stage masks affect
-    <<synchronization-pipeline-stages-masks, access and synchronization
-    scopes>>.
-  * Clarify that dedicated allocations do not allow aliasing in the
-    flink:vkBindBufferMemory and flink:vkBindImageMemory valid usage
-    statements.
-  * Correct specification of pname:dynamicCount for push_constant token in
-    slink:VkIndirectCommandsLayoutNVX.
-
-New Extensions:
-
-  * `VK_EXT_shader_viewport_index_layer`
-
------------------------------------------------------
-
-Change log for August 1, 2017 Vulkan 1.0.57 spec update:
-
-  * Bump API patch number and header version number to 57 for this update.
-
-Github Issues:
-
-  * Fix error in description of ename:VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
-    block size (public issue 342).
-  * Update documentation of ename:VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT
-    to explicitly mention both graphics and compute pipelines (public issue
-    525).
-
-Internal Issues:
-
-  * Document that
-    slink:VkPhysicalDeviceLimits::pname:framebufferColorSampleCounts does
-    not cover integer formats (internal issue 550).
-  * Add a note under slink:VkImageViewCreateInfo describing how values meant
-    for one format can be sanitized when used via another format (internal
-    issue 927).
-  * Add valid usage statements to ftext:vkCmd* documenting that image
-    subresources used as attachments must not be accessed as non-attachments
-    in a render pass (internal issue 929).
-  * Remove obsolete 'validextensionstructs' attribute from +vk.xml+, the XML
-    schema, and the schema documentation (internal issue 946).
-
-New Extensions:
-
-  * `VK_AMD_mixed_attachment_samples`
-  * `VK_EXT_post_depth_coverage`
-  * `VK_KHR_relaxed_block_layout`
-
------------------------------------------------------
-
-Change log for July 21, 2017 Vulkan 1.0.56 spec update:
-
-  * Bump API patch number and header version number to 56 for this update.
-
-Github Issues:
-
-  * Add valid usage statements for commands introduced by
-    `VK_EXT_debug_report` and `VK_EXT_debug_marker` extensions, regarding
-    the valid pname:object and pname:objectType values (public issue 495).
-  * Modify `GL_KHR_vulkan_glsl` specification to document that uniform and
-    buffer block arrays each take only a single binding (public issue 514).
-  * Add `KHX` author tag to +vk.xml+ (public issue 526).
-
-Internal Issues:
-
-  * Document use of code: macro for non-Vulkan APIs in the style guide
-    (internal issue 863).
-  * Document that reference page open block delimiters must not contain
-    asciidoc section markup in the style guide (internal issue 898).
-  * Fix <<spirvenv,SPIR-V appendix>> to say
-    code:VariablePointersStorageBuffer instead of
-    code:VariablePointersUniformBufferBlock (internal issue 928).
-
-Other Commits:
-
-  * Add missing extension structures to dependency attributes in +vk.xml+.
-
-New Extenions:
-
-  * `VK_EXT_depth_range_unrestricted`
-
------------------------------------------------------
-
-Change log for July 15, 2017 Vulkan 1.0.55 spec update:
-
-  * Bump API patch number and header version number to 55 for this update.
-
-Github Issues:
-
-  * Removed unintended optional parameter in +vk.xml+ from the
-    pname:pWaitSemaphores member of slink:VkPresentInfoKHR, which resulted
-    in the generation of an incorrect implicit valid usage clause allowing
-    pname:pWaitSemaphores to be NULL even when pname:waitSemaphoreCount is
-    non-zero (public issue 491).
-  * Add missing attribute to +vk.xml+ documenting that
-    slink:VkSwapchainCounterCreateInfoEXT extends
-    slink:VkSwapchainCreateInfo (public issue 510).
-  * Add const qualifier for some `VK_EXT_debug_market` extension command
-    parameters that were missing it (public issue 513).
-  * Fix definition of q and level~base~ in
-    <<textures-image-level-selection,Image Level(s) Selection>> (public
-    issue 515).
-  * Clarify lifetime requirement for slink:VkRenderPass objects used in
-    object creation (public issue 516).
-  * Fix link to floating/normalized fixed-point conversion from
-    <<interfaces-fragmentoutput,Fragment Output Interface>> (public issue
-    521).
-
-Internal Issues:
-
-  * Update the style guide to include the general structure of a Vulkan
-    command name, the specific rule for using "`Get`" vs. "`Enumerate`" in
-    names, and a table of verbs commonly used in command names (spinoff of
-    internal issue 753).
-  * Clarified the behavior of automatic layout transitions in case of
-    attachment views that are 2D or 2D array views of 3D images. In
-    addition, restructured the valid usage clauses corresponding to the
-    members of the slink:VkImageSubresourceRange structure and added missing
-    valid usage clauses for its pname:baseMipLevel and pname:baseArrayLayer
-    members (internal issues 803, 849).
-  * Modify `GL_KHR_vulkan_glsl` specification to allow explicit std430 on a
-    push_constant declaration (internal issue 919).
-
-Other Commits:
-
-  * Modify <<synchronization-framebuffer-regions, Framebuffer Region
-    Dependencies>> to use synchronization scope terminology.
-  * Add ename:VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT to the
-    `VK_EXT_swapchain_colorspace` extension.
-  * Replace XML comments with `comment` attributes and/or tags, to enable
-    tools which transform the XML without loss of information.
-  * Replace `validextensionstructs` with `structextends`, which is tagged in
-    the child structure instead of the parent. This makes it slightly
-    simpler to add new structs to the XML, causes fewer merge conflicts, and
-    the information is kept localized to the extension structures where it
-    belongs. The old `validextensionstructs` attributes will be retained
-    until we're certain this doesn't cause problems with known consumers of
-    +vk.xml+.
-
------------------------------------------------------
-
-Change log for July 13, 2017 Vulkan 1.0.54 spec update:
-
-  * Bump API patch number and header version number to 54 for this update.
-
-Github Issues:
-
-Internal Issues:
-
-  * Fix tessellation domain to have an upper-left origin in the
-    <<img-tessellation-topology-ul, tessellation toplogy image>> and related
-    language. CTS and all implementations were already doing this, it was
-    just a documentation bug that it was flipped to lower-left (internal
-    issue 603).
-  * Add a section to the style guide describing how VUID tags are changed
-    and removed when the corresponding Valid Usage statements are modified
-    (internal issue 829).
-  * Add explicit Valid Usage statement to
-    slink:VkPipelineDynamicStateCreateInfo to require that members of
-    pname:pDynamicStates must be unique (internal issue 851).
-
-New Extensions:
-
-  * `VK_KHR_16bit_storage`
-  * `VK_KHR_dedicated_allocation`
-  * `VK_KHR_external_fence`
-  * `VK_KHR_external_fence_capabilities`
-  * `VK_KHR_external_fence_fd`
-  * `VK_KHR_external_fence_win32`
-  * `VK_KHR_get_memory_requirements2`
-  * `VK_KHR_storage_buffer_storage_class`
-  * `VK_KHR_variable_pointers`
-
-Extensions Promoted From KHX To KHR Status:
-
-  * `VK_KHR_external_memory`
-  * `VK_KHR_external_memory_capabilities`
-  * `VK_KHR_external_memory_fd`
-  * `VK_KHR_external_memory_win32`
-  * `VK_KHR_external_semaphore`
-  * `VK_KHR_external_semaphore_capabilities`
-  * `VK_KHR_external_semaphore_fd`
-  * `VK_KHR_external_semaphore_win32`
-  * `VK_KHR_win32_keyed_mutex`
-
------------------------------------------------------
-
-Change log for June 24, 2017 Vulkan 1.0.53 spec update:
-
-  * Bump API patch number and header version number to 53 for this update.
-
-Github Issues:
-
-Internal Issues:
-
-  * Clarify mappings of coordinates for mutable, compatible image views in
-    slink:VkImageViewCreateInfo (internal issue 815).
-  * Make ename:VK_BIND_SFR_BIT require a logical device with multiple
-    physical devices, so that standard sparse image block dimensions are
-    only required on systems that support multi-GPU (internal issue 835).
-  * Convert all files from use of // refBegin .. // refEnd comments to
-    delimit ref pages, to use of open blocks, and update style guide
-    accordingly (internal issue 839).
-  * Add valid usage for slink:VkWriteDescriptorSet when performing updates
-    to a ename:VK_STORAGE_IMAGE descriptor with layout
-    ename:VK_IMAGE_LAYOUT_GENERAL.
-  * Add a hack to the validity generator script to support an odd
-    interaction between flink:vkCmdFillBuffer and an extension (internal
-    issue 853).
-  * Remove redundant text describing slink:VkBufferCreateInfo::pname:usage,
-    which was already covered by implicit valid usage (internal issue 854).
-  * Update implicit validity generator script to properly handle the
-    pname:sType and pname:pNext members of "returnedonly" structures
-    (internal issue 874).
-  * Note that slink:VkApplicationInfo::pname:pApplicationName &
-    slink:VkApplicationInfo::pname:pEngineName are optional, and add missing
-    implicit valid usage statements for flink:vkDestroyInstance.
-  * Added missing valid usage for flink:vkCmdWriteTimestamp to require a
-    timestamp query pool.
-  * Simplify and/or split "`non-atomic`" valid usage statements.
-
-New Extensions:
-
-  * `VK_AMD_gpu_shader_int16`
-  * `VK_EXT_blend_operation_advanced`
-  * `VK_EXT_sampler_filter_minmax`
-  * `VK_NV_framebuffer_mixed_samples`
-
------------------------------------------------------
-
-Change log for June 13, 2017 Vulkan 1.0.52 spec update:
-
-  * Bump API patch number and header version number to 52 for this update.
-
-Github Issues:
-
-Internal Issues:
-
-  * Clarify behavior when non-coherent memory has
-    <<memory-device-unmap-does-not-flush, not been flushed before being
-    unmapped>> (internal issue 819).
-  * Fix description of code:WorkgroupSize builtin to note it decorates an
-    object, not a variable (internal issue 836).
-  * Fix asciidoc attributes so that trailing '{plus}' symbols in [eq] style
-    equations are rendered properly (internal issue 845).
-  * Add language to the "`Extension Handles, Objects, Enums, and Typedefs`"
-    section of the Procedures and Conventions document stating that any new
-    handle type requires a corresponding entry in the elink:VkObjectType
-    enumerated type (internal issue 856).
-  * Update style guide to use slink macro for Vulkan handle type names, and
-    define narrow conditions under which to use the *name and *text macros
-    instead of *link (internal issue 886).
-  * Add a dependency of the <<VK_KHX_device_group,VK_KHX_device_group>>
-    extension on VK_KHX_device_group_creation to +vk.xml+ and the extension
-    appendix.
-  * Change the copyright on Vulkan specification asciidoc *source* files to
-    CC-BY 4.0, and update the proprietary Khronos copyright applied to the
-    generated *output* formats (internal issue 327). This enables broader
-    re-use and modification of the Vulkan specification sources, while not
-    affecting the Reciprocal IP License between Vulkan Adopters and Working
-    Group Members.
-
-New Extensions:
-
-  * `VK_NV_fill_rectangle`
-  * `VK_NV_fragment_coverage_to_color`
-
------------------------------------------------------
-
-Change log for June 4, 2017 Vulkan 1.0.51 spec update:
-
-  * Bump API patch number and header version number to 51 for this update.
-
-Github Issues:
-
-  * Add Valid Usage statement to flink:vkCmdResolveImage to require that
-    source and destination image formats match (public issue 492).
-  * Specify that a code:char* parameter must: be a valid null-terminated
-    string in the <<fundamentals-implicit-validity, implicit valid usage>>
-    section (public issue 494).
-  * Removed unnecessary VU for slink:VkPhysicalDeviceFeatures which is
-    covered by ename:VK_ERROR_FEATURE_NOT_PRESENT already (public issue
-    496).
-  * Clarify valid usage of pname:pQueueFamilyIndices in
-    slink:VkBufferCreateInfo, slink:VkImageCreateInfo, and
-    slink:VkSwapchainCreateInfoKHR (public issue 501).
-  * Document that dependencies of enabled extensions must also be enabled in
-    the <<extended-functionality-extensions-dependencies, Extension
-    Dependencies>> section (public issue 507).
-
-Internal Issues:
-
-  * Change slink:VkMappedMemoryRange valid usage to allow pname:offset +
-    pname:size == size of the allocation. Also, if ename:VK_WHOLE_SIZE is
-    used, require the end of the mapping to be aligned to a multiple of
-    pname:nonCoherentAtomSize (internal issue 611).
-  * Add issue to `VK_KHR_win32_surface` about reusing window objects from a
-    different graphics API or Vulkan ICD (internal issue 639).
-  * Require locations on user in/out in `GL_KHR_vulkan_glsl` (internal issue
-    783).
-  * Added version info to the json validation output, and updated the schema
-    to match (internal issue 838).
-  * Restructure enumerated type descriptions separately from the command or
-    structure they are used in, allowing better reference page generation
-    (internal issue 841).
-  * Re-sort extension appendices to be in alphabetical order within each
-    author ID section.
-  * Fix enum naming and clarify behavior for
-    `VK_NVX_device_generated_commands` extension.
-
------------------------------------------------------
-
-Change log for May 20, 2017 Vulkan 1.0.50 spec update:
-
-  * Bump API patch number and header version number to 50 for this update.
-
-Github Issues:
-
-  * Fix numerous minor issues with the VK_EXT_debug_report extension (public
-    issues 478, 483, 486, 489, 490).
-
-Internal Issues:
-
-  * Update flink:vkAllocateDescriptorSets to specify conditions under which
-    to return ename:VK_ERROR_FRAGMENTED_POOL or
-    ename:VK_ERROR_OUT_OF_POOL_MEMORY instead of
-    out-of-host/out-of-device-memory, and improve the
-    <<fundamentals-errorcodes, description of those errors (internal issue
-    654).
-  * Add a NOTE documenting that flink:vkAcquireNextImageKHR can only signal
-    a single semaphore, and how to deal with that when multiple physical
-    devices in a logical device need to wait on it (internal issue 730).
-  * Improve description of pname:pNext chains of
-    slink:VkPhysicalDeviceImageFormatInfo2KHR and
-    slink:VkImageFormatProperties2KHR (internal issue 814).
-  * Clean up math markup issues in the <<textures, Image Operations>>
-    chapter (internal issue 818).
-  * Update validusage target to use more robust code for preprocessing, by
-    making direct use of Asciidoctor's preprocessor. Added uniqueItems check
-    to JSON vu schema and add clean_validusage target (internal issue 826).
-  * Update style guide to prohibit writing non-self-contained (on a single
-    bullet point) Valid Usage statements, and modify offending Valid Usage
-    statements in the Specification to match, to assist with automatic
-    extraction for the validation layers (internal issue 828).
-  * Add ename:VK_VALIDATION_CHECK_SHADERS_EXT to elink:VkValidationCheckEXT
-    of the `VK_EXT_validation_flags` extension, to selectively disable
-    shader validation.
-  * Remove duplicate valid usage statement for slink:VkImageMemoryBarrier.
-  * Modify reflow.py script to place VUID tag anchors standalone on a line
-    following their corresponding bullet point, and reflow the spec text
-    accordingly (this had been pending since the initial tag deployment).
-
-New Extensions:
-
-  * `VK_AMD_texture_gather_bias_lod`
-
------------------------------------------------------
-
-Change log for May 12, 2017 Vulkan 1.0.49 spec update:
-
-  * Bump API patch number and header version number to 49 for this update.
-
-Github Issues:
-
-  * Modify reference page extraction script to make internal links to spec
-    anchors refer to the core specification instead of being dangling links
-    (public issue 455).
-  * Fix GL_KHR_vulkan_glsl typo and add a nor-normative mapping to the newly
-    published StorageBuffer class (public issue 466).
-  * Both flink:vkEnumerateInstanceExtensionProperties and
-    flink:vkEnumerateDeviceExtensionProperties return
-    ename:VK_ERROR_LAYER_NOT_PRESENT, which covers the error case of an
-    application providing a layer name that wasn't returned by
-    ftext:vkEnumerate{Instance|Device}LayerProperties (public issue 487).
-  * The specification for flink:VkApplicationInfo::apiVersion says that the
-    driver must return ename:VK_ERROR_INCOMPATIBLE_DRIVER in the case that
-    pname:apiVersion specifies a non-supported version. That means that the
-    valid usage should not also state that, and so the VU statement is
-    removed. The VU had language about "`an effective substitute`" that
-    would have been lost, and so it was moved to the pname:apiVersion
-    description (public issue 488).
-
-Internal Issues:
-
-  * Modify implicit validity generator script to assign asciidoc anchors to
-    all valid usage statements it generates, and reflow.py script to insert
-    Valid Usage ID (VUID) tags into the specification source files for
-    explicit valid usage statements. This has no semantic effects on the
-    specification, but will support the validation layer's detection of
-    valid usage violations and allow it to link into the corresponding part
-    of the specification (internal issue 583).
-  * Assign VUID tags to all explicit VU statements and document
-    the process and tag format in the style guide (internal issue 583).
-  * Clarify the rules of whether to structure new functionality as instance
-    extensions, device extensions, or both in the
-    <<extended-functionality-instance-extensions-and-devices, Instance
-    Extensions and Device Extensions>> section (internal issue 749).
-  * Require that SPIR-V run-time arrays are only used with the
-    code:BufferBlock decoration (internal issue 750).
-  * Fix implicit and explicit valid usage statements for
-    slink:VkWriteDescriptorSet::pname:dstSet (internal issue 767)
-  * Fix SPIR-V code sample for ename:VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
-    in the <<descriptorsets-uniformtexelbuffer, Uniform Texel Buffer>>
-    section (internal issue 770).
-  * Clarify that disabling depth testing also disables depth writes in the
-    <<fragops-ds-state, Depth and Stencil Operations>> section (internal
-    issue 775).
-  * flink:VkDescriptorImageInfo::pname:imageLayout must match the actual
-    imageLayout at the time the image is accessed. This was in the spec
-    text, but needed an associated valid usage statement.
-  * Note that only 32-bit atomic operations are supported in the
-    <<spirvenv-module-validation, Validation Rules within a Module>>
-    section.
-  * Note that code:UniformConstant variables must not have initializers in
-    the <<spirvenv-module-validation, Validation Rules within a Module>>
-    section.
-  * Add a new elink:VkObjectType enumeration to the core API, promoted from
-    elink:VkDebugObjectTypeEXT, since it is used for much more than just the
-    debug_report extension.
-
-New Extensions:
-
-  * `VK_KHR_get_surface_capabilities2`
-  * `VK_KHR_shared_presentable_image`
-
------------------------------------------------------
-
-Change log for April 15, 2017 Vulkan 1.0.48 spec update:
-
-  * Bump API patch number and header version number to 48 for this update.
-
-Internal Issues:
-
-  * Add missing VU statements for flink:vkUpdateDescriptorSets (internal
-    issue 333).
-  * Correct swapped ifdef/ifndef blocks for `VK_KHR_maintenance1` extension
-    (internal issue 776).
-
------------------------------------------------------
-
-Change log for April 8, 2017 Vulkan 1.0.47 spec update:
-
-  * Bump API patch number and header version number to 47 for this update.
-
-Github Issues:
-
-  * Allow <<synchronization-pipeline-barriers-subpass-self-dependencies,
-    self-dependencies>> (also described for slink:VkSubpassDependency) to
-    have earlier stages depend on later stages if all stages are
-    framebuffer-space (public issue 125).
-  * Clarify when pipeline state structures are ignored in the
-    slink:VkGraphicsPipelineCreateInfo strucure, when the tessellation
-    structure must be valid, and remove 'if `NULL`' descriptions from the
-    valid usage statements (public issue 445).
-  * Remove the obsolete "validextensionstructs" attribute for
-    flink:VkPresentRegionsKHR. This caused a pname:pNext valid usage
-    statement to be generated which wasn't consistent with what is stated in
-    the spec (public issue 481).
-
-Internal Issues:
-
-  * Clarify facingness of non-polygon fragments for slink:VkStencilOpState
-    and in the code:FrontFacing <<interfaces-builtin-variables,built-in
-    variable description>>. Define 'facingness' of a fragment as a distinct
-    term from facingness of a polygon (internal issue 662).
-  * Clarify that the texture compression features (e.g.
-    pname:textureCompressionBC) means that all formats of that type
-    (<<features-features-textureCompressionASTC_LDR,ASTC>>,
-    <<features-features-textureCompressionETC2,ETC2>>,
-    <<features-features-textureCompressionBC,BC>>) are supported, and that
-    support for individual formats may: queried separately (internal issue
-    663).
-  * Clarify in the valid usage for slink:VkBindImageMemoryInfoKHX that each
-    SFR rectangle must be a multiple of the sparse block size for each
-    aspect, e.g. in a depth/stencil image using separate depth/stencil
-    planes (internal issue 721).
-  * Re-remove KHX variants of KHR structure types after promotion (internal
-    issue 762).
-
------------------------------------------------------
-
-Change log for March 31, 2017 Vulkan 1.0.46 spec update:
-
-  * Bump API patch number and header version number to 46 for this update.
-
-Github Issues:
-
-  * Add language to the <<fundamentals-validusage-enums, Valid Usage for
-    Enumerated Types>> section allowing values to be returned from Vulkan
-    that are not present in extensions explicitly enabled by the
-    application, similar to existing language for bit flags in the
-    <<fundamentals-validusage-flags, Valid Usage for Flags>> section (public
-    issue 442).
-  * *Important*: run `gem update --pre asciidoctor-pdf` before trying to
-    build this version of the spec - 1.5.0.alpha15 is required for this
-    change. Removes the monkey patch currently used to draw valid usage
-    blocks across multiple pages which had numerous issues. A fixed version
-    was incorporated into Asciidoctor-PDF for the latest release, so the
-    monkey patch or any variant thereof is no longer required (public issue
-    465).
-
-Internal Issues:
-
-  * Add ename:VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT
-    to `VK_EXT_debug_report` extension
-  * Fix ptext:pNext member of
-    slink:VkPhysicalDeviceDiscardRectanglePropertiesEXT to be a non-const
-    pointer. Properties structures return values, so the chain should be
-    non-const.
-  * Explicitly remove gl_NumSamples from the `GL_KHR_vulkan_glsl` extension,
-    against 1.0 (internal issue 612).
-  * Add Valid Usage statements requiring that each structure type valid in a
-    ptext:pNext chain must: not appear more than once in a chain (internal
-    issue 752).
-  * Use ename:VK_USE_PLATFORM_WIN32_KHX in the
-    `VK_KHX_external_memory_win32` extension, rather than etext:_KHR
-    (internal issue 754).
-
-New Extensions:
-
-  * `VK_KHR_incremental_present`
-
------------------------------------------------------
-
-Change log for March 24, 2017 Vulkan 1.0.45 spec update:
-
-  * Bump API patch number and header version number to 45 for this update.
-
-Github Issues:
-
-  * Defined the lifetime of the memory pointed to by
-    slink:VkDisplayPropertiesKHR::pname:displayName to be equal to that of
-    its associated display handle (public issue 460).
-  * Correct several cases where the sparse memory feature name
-    pname:residencyNonResidentStrict was written as
-    pname:sparseResidencyNonResidentStrict (public issue 475).
-
-Internal Issues:
-
-  * Fix ptext:pNext member of slink:VkPhysicalDeviceGroupPropertiesKHX to be
-    a non-const pointer. Properties structures return values, so the chain
-    should be non-const.
-  * Clarify definition of memory aliasing to consistently use the terms
-    "linear" and "non-linear" when referring to resources, and define what
-    those terms mean.
-  * Modified XML schema and implicit validity scripts to generate language
-    for all ptext:pNext values in a ptext:pNext chain instead of just the
-    top level struct, and made `noautovalidity` functional for ptext:sType
-    and ptext:pNext (internal issue 535).
-  * Add more detail for BT2020 and scRGB color spaces in
-    `VK_EXT_swapchain_colorspace` extension (internal issue 632).
-  * Add naming rules for Extension Structure Names (structures added to the
-    ptext:pNext chain of a base structure) to the style guide (internal
-    issue 706).
-  * Define the glossary term "ptext:pNext chain", and use it consistently in
-    the spec (internal issue 744).
-
------------------------------------------------------
-
-Change log for March 17, 2017 Vulkan 1.0.44 spec update:
-
-  * Bump API patch number and header version number to 44 for this update.
-
-Github Issues:
-
-  * Fix description of <<features-extentperimagetype, Allowed Extent Values
-    Based On Image Type>> (public issue 290).
-  * Better specify VK_DEVICE_LOST behavior around flink:vkQueueSubmit,
-    flink:vkWaitForFences, and flink:vkGetFenceStatus (public issue 423).
-  * Clarify definition of flink:vkGetQueryPoolResults::pname:queryCount
-    (public issue 441).
-  * Simplify and clean up normative language. Remove shall and replace
-    recommend and variants with should wherever possible (public issue 448).
-  * Fix all dangling internal cross-references in the 1.0-extensions
-    specification, and add scripts/checkXrefs to find these in the future
-    (public issue 456).
-  * Reverse order of ChangeLog.txt entries so the most recent version is
-    documented first (public issue 463)
-  * Removes "become invalid" which clashes with invalid state for command
-    buffers. (public issue 467)
-  * Disallowed pending state in spec text for vkResetCommandBuffer, matching
-    valid usage (public issue 468)
-  * Removes sentence describing invalid state "like initial state". (public
-    issue 469)
-  * Disallows begin command buffer from resetting command buffers in the
-    "recording" state. (public issue 470)
-  * Removes mention of state from description of
-    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT (public issue 471)
-  * Removed extra valid usage statement in VkSubmitInfo (public issue 472)
-
-Internal Issues:
-
-  * Clarify description of the pname:imageLayout member of
-    sname:VkDescriptorImageInfo.
-  * Fix typos where etext:VK_VIEW_TYPE* was used instead of
-    etext:VK_IMAGE_VIEW_TYPE.
-  * Removed the <<VK_KHR_display>> and <<VK_KHR_display_swapchain>> example
-    code from the specification and noted it has been moved to the Vulkan
-    SDK cube demo (internal issue 179).
-  * Reorder VkExternalMemoryHandleTypeFlagBitsNV description (internal issue
-    480).
-  * Clarify than an implementation is
-    <<fundamentals-validusage-flags,permitted to return 'undefined' bit
-    flags>> in a bitfield (internal issue 640).
-  * Break Valid Usage statements describing unrelated parameters into
-    separate statements, and add a style guide entry to follow this approach
-    (internal issue 685).
-  * Move valid usage statement for slink:VkImageCreateInfo from spec body to
-    the explicit valid usage block (internal issue 693).
-  * Fix typos in the descriptions of slink:VkDisplaySurfaceCreateInfoKHR,
-    flink:vkCreateDisplayModeKHR, and
-    flink:vkGetDisplayPlaneSupportedDisplaysKHR in the <<display,Presenting
-    Directly to Display Devices>> section (internal issue 698, 704, 716).
-  * Clarified that mandatory depth/stencil formats are only a requirement
-    for 2D images (internal issue 719).
-  * Clarify that variables decorated with DeviceIndex/ViewIndex must be in
-    the Input storage class (internal issue 733).
-  * Work around generator script problem with removal of Unicode literals
-    from Python 3.0-3.2 using `future` package (internal issue 737).
-  * Remove nonexistent structure type enums from vk.xml (internal issue
-    738).
-  * Fix validextensionstructs attributes for structures in the pname:pNext
-    chain for VkPresentInfoKHR, fixing implicit valid usage statements for
-    those structures (internal issue 740).
-
------------------------------------------------------
-
-Change log for March 10, 2017 Vulkan 1.0.43 spec update:
-
-  * Bump API patch number and header version number to 43 for this update.
-
-Github Issues:
-
-  * Make clearer that color write mask is applied regardless of whether
-    blending is enabled, by referring to the
-    <<framebuffer-color-write-mask,Color Write Mask>> section (public issue
-    241).
-  * Fix public issue 414:
-  ** Added two new command buffer states (invalid, pending), and an explicit
-     "command buffer lifecycle" section to explain them.
-  ** Replaced "pending execution" with "in the pending state".
-  ** Replaced a bunch of "this will invalidate the command buffer" language
-     with "this will move the command buffer to the invalid state", and added
-     validation language for what state those command buffers should be in.
-  ** Added additional validation language about what state a command buffer
-     should be in for various commands that affect it.
-  ** Added invalidation language to destroy commands in the lifetimes section
-     of fundamentals.
-  ** Added command buffers to list of objects which must not be deleted
-     whilst a (primary) command buffer is in the recording or pending state.
-  * Update `GL_KHR_vulkan_glsl` extension to allow anonymous push constant
-    blocks (public issue 428).
-
-Internal Issues:
-
-  * Document rules about extension interactions in the style guide (internal
-    issue 579).
-  * Require ename:VK_PRESENT_MODE_MAILBOX_KHR support in queries of surfaces
-    created with flink:vkCreateWaylandSurfaceKHR using the
-    VK_KHR_wayland_surface extension (internal issue 666).
-  * Remove Valid Usage constraints for flink:vkAllocateDescriptorSets when
-    the `VK_KHR_maintainance1` extension is present (internal issue 686).
-  * Remove undocumented KHX-variants of vkGetPhysicalDeviceProperties2KHR
-    and vkGetPhysicalDeviceImageFormatProperties2KHR from the
-    <<VK_KHX_external_memory_capabilities>> and
-    <<VK_KHX_external_semaphore_capabilities>> extensions.
-
-New Extensions:
-
-  * `VK_EXT_hdr_metadata`
-  * `VK_GOOGLE_display_timing`
-
------------------------------------------------------
-
-Change log for February 27, 2017 Vulkan 1.0.42 spec update:
-
-  * Bump API patch number and header version number to 42 for this update
-    (the first anniversary edition).
-
-Github Issues:
-
-  * Changed asciidoctor macros so cross-page links in the standalone
-    reference pages function properly (public issue 462).
-
-Internal Issues:
-
-  * Clarified host visibility discussion for slink:VkMemoryType,
-    flink:vkInvalidateMappedMemoryRanges, elink:VkAccessFlagBits, and the
-    <<synchronization-framebuffer-regions,Framebuffer Region Dependencies>>
-    section, removing duplicated information and adding a central definition
-    in the access types section (internal issue 552).
-  * Change description of
-    slink:vkGetPhysicalDeviceSurfacePresentModesKHR::pname:pPresentModes to
-    return an array of values, not structures (internal issue 699).
-
-New Extensions:
-
-  * Add a NOTE to the <<extensions,Layers & Extensions>> chapter describing
-    the experimental status of `KHX` extensions.
-  * Add new Khronos, Khronos Experimental, and vendor Vulkan extensions for
-    release at GDC:
-  ** VK_KHR_descriptor_update_template
-  ** VK_KHR_push_descriptor
-  ** VK_KHX_device_group
-  ** VK_KHX_device_group_creation
-  ** VK_KHX_external_memory
-  ** VK_KHX_external_memory_capabilities
-  ** VK_KHX_external_memory_fd
-  ** VK_KHX_external_memory_win32
-  ** VK_KHX_external_semaphore
-  ** VK_KHX_external_semaphore_capabilities
-  ** VK_KHX_external_semaphore_fd
-  ** VK_KHX_external_semaphore_win32
-  ** VK_KHX_multiview
-  ** VK_KHX_win32_keyed_mutex
-  ** VK_EXT_discard_rectangles
-  ** VK_MVK_ios_surface
-  ** VK_MVK_macos_surface
-  ** VK_NVX_multiview_per_view_attributes
-  ** VK_NV_clip_space_w_scaling
-  ** VK_NV_geometry_shader_passthrough
-  ** VK_NV_sample_mask_override_coverage
-  ** VK_NV_viewport_array2
-  ** VK_NV_viewport_swizzle
-  * Add new GLSL vendor extensions to support new builtin variables:
-  ** GL_EXT_device_group
-  ** GL_EXT_multiview
-
------------------------------------------------------
-
-Change log for February 17, 2017 Vulkan 1.0.41 spec update:
-
-  * Bump API patch number and header version number to 41 for this update.
-
-Github Issues:
-
-  * Made all uses of `NULL` vs. code:VK_NULL_HANDLE consistent (public issue
-    276).
-  * Clarify render pass compatibility in different usage scenarios (public
-    issues 403 and 404).
-  * Add valid usage statements to slink:VkFramebufferCreateInfo requiring
-    that the width, height, and number of layers of the framebuffer all be
-    nonzero (public issue 432).
-  * Allow `offset` and `align` in any GLSL version for the
-    `GL_KHR_vulkan_glsl` extension (public issue 435).
-  * Specify lifetime of string objects passed to the
-    tlink:PFN_vkDebugReportCallbackEXT user callback in the
-    +VK_EXT_debug_report+ extension (public issue 446).
-  * Fix inter-page links in multi-file reference pages (public issue 454).
-
-Internal Issues:
-
-  * Update valid usage language for slink:VkImageCreateInfo to disallow
-    creating images that have ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
-    set without other attachment usage bits
-    (ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT,
-    ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, or
-    ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT) (internal issue 540).
-  * Disable `VK_EXT_swapchain_colorspace` extension until internal issues
-    640 and 661 are mutually resolved.
-  * Allow alternative mipmap level selection when [eq]#lambda == 0.5# during
-    texture <<textures-image-level-selection,Image Level(s) Selection>>
-    (internal issue 680).
-
-Other Issues:
-
-  * Add a clarification to the style guide that the extension revision
-    number is treated as a patch number, so that changes to published
-    extensions should only include bug fixes and spec clarifications.
-
------------------------------------------------------
-
-Change log for February 10, 2017 Vulkan 1.0.40 spec update:
-
-  * Bump API patch number and header version number to 40 for this update.
-  * There is a major build change in this release. We are now using the
-    Ruby-based ``asciidoctor'' implementation, rather than the Python-based
-    ``asciidoc'' implementation, to process the specification. While the
-    actual specification markup changes were minimal, this requires a new
-    set of build tools and a very different installation process, especially
-    because we now use an experimental direct-to-PDF backend for Asciidoctor
-    instead of Docbook->dblatex->PDF. It is no longer possible to build the
-    Specification using asciidoc. See doc/specs/vulkan/README.adoc
-    for some guidance on installing the new toolchain components.
-  * There are some minor rendering issues in the PDF output due to teething
-    problems with the asciidoctor toolchain, especially with mathematical
-    equations. We are aware of these and working on them.
-
-Github Issues:
-
-  * Updated sample code for the <<sparsememory-examples-basic,sparse
-    resource binding example>> (public issue 97).
-  * Modify line and point clipping behavior in the
-    <<vertexpostproc-clipping, Primitive Clipping>> section to allow for
-    pop-free behavior. The ability to check for which behavior is
-    implemented may be added a future feature or extension (public issue
-    113).
-  * Unify the discussions of implicit ordering throughout the spec, in
-    particular in the new sections <<drawing-primitive-order, Primitive
-    Order>>, <<primsrast-order, Rasterization Order>>, and
-    <<synchronization-implicit, Implicit Synchronization Guarantees>>; the
-    discussion of <<synchronization-submission-order, submission order>>;
-    and references elsewhere to these sections (public issue 133).
-  * Clarify <<descriptorsets-compatibility,Pipeline Layout Compatibility>>
-    language and introduce the term ``identically defined'' (public issue
-    164).
-  * Add a dependency to the +VK_EXT_debug_marker+ extension that's needed to
-    reuse the object type enum from +VK_EXT_debug_report+, and moves the
-    definition of that enum into +VK_EXT_debug_report+ where it should be
-    (public issue 409).
-  * Remove redundant valid usage statement from slink:VkImageBlit (public
-    issue 421).
-  * Update GL_KHR_vulkan_glsl to allow the ternary operator to result in a
-    specialization constant (public issue 424).
-  * Fix valid usage for flink:VkPipelineShaderStageCreateInfo (public issue
-    426).
-  * Correct typo in New Objects list for <<VK_EXT_debug_report>> (public
-    issue 447).
-
-Internal Issues:
-
-  * Moved to asciidoctor for spec builds (internal issue 121).
-  * Update style guide to describe where to put new extensions-specific
-    asciidoc files, and what to name them (internal issue 626).
-  * Add src/spec/indexExt.py to autogenerate registry index entries linking
-    into the 1.0-extensions specification, instead of maintaining the index
-    manually. (internal issue 642).
-  * Autogenerate extension dependencies and lists of all extensions and all
-    KHR extensions from the "supported" attributes in +vk.xml+. Execute
-    +make config/extDependency.sh+ from +doc/specs/vulkan+ when a supported
-    extension is added to vk.xml, to regenerate the dependency script. The
-    consequence is that specifying a single extension to the +makeExt+
-    script will automatically enable all extensions it depends on as well,
-    and that the +makeAllExts+ and +makeKHR+ scripts do not need to be
-    updated when a new extension is supported (internal issue 648).
-  * Put extension appendices all at the same asciidoc section level, so KHR
-    WSI extensions show up in the HTML index (internal issue 648).
-
-Other Issues:
-
-  * Imbed images in the generated HTML specs instead of loading them from
-    the images/ directory.
-  * Fix missing EXT in extension name
-    (ename:VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME).
-  * Add new +VK_EXT_SMPTE_2086_metadata+ extension.
-  * In the <<platformCreateSurface_xlib,Xlib Surface>> section of the
-    `VK_KHR_xlib_surface` specification, add language warning users that
-    they always need to call code:XinitThreads.
-  * Use the term "presentable image" (rather than "swapchain image")
-    consistently in `VK_KHR_swapchain` and related extensions, and add a
-    glossary term defining it.
-  * Relocate the valid usage for samples of
-    flink:vkGetPhysicalDeviceSparseImageFormatProperties2KHR::pname:pFormatInfo
-    to be below the flink:VkPhysicalDeviceSparseImageFormatInfo2KHR
-    structure.
-
------------------------------------------------------
-
-Change log for January 23, 2017 Vulkan 1.0.39 spec update:
-
-  * Bump API patch number and header version number to 39 for this update.
-
-Github Issues:
-
-  * Clarified that only accesses via the specified buffer/image subresource
-    ranges are included in the access scopes (public issue 306).
-  * Add missing valid usage statements for flink:vkCreateComputePipelines
-    and flink:vkCreateGraphicsPipelines (public issue 427).
-
-Internal Issues:
-
-  * Add a Note to the <<invariance,Invariance>> appendix about a difference
-    between OpenGL and Vulkan with regards to how primitives derived from
-    offsets are handled (internal issue 355).
-  * Add the +<<VK_KHR_get_physical_device_properties2>>+,
-    +<<VK_KHR_maintenance1>>+, and +<<VK_KHR_shader_draw_parameters>>+
-    extensions (internal issue 448).
-  * Add the +<<VK_EXT_shader_subgroup_vote>>+ and
-    +<<VK_EXT_shader_subgroup_ballot>>+ extensions (internal issue 449).
-  * Update the texture level-of-detail equation in the
-    <<textures-scale-factor,Scale Factor Operation>> section to better
-    approximate the ellipse major and minor axes (internal issue 547).
-  * Forbid non-explicitly allowed uses of interface decorations in the
-    introduction to the <<interfaces,Shader Interfaces>> chapter (internal
-    issue 607).
-  * Replace use of MathJax with KaTeX, for improved load-time performance as
-    well as avoiding the scrolling-and-scrolling behavior due to MathJax
-    asynchronous rendering when loading at an anchor inside the spec. This
-    change also requires moving to HTML5 output for the spec instead of
-    XHTML, and there is a visible difference in that the chapter navigation
-    index is now in a scrollable sidebar instead of at the top of the
-    document. We may or may not retain the nav sidebar based on feedback
-    (internal issue 613).
-  * Improve consistency of markup and formatting in extension appendices
-    (internal issue 631).
-
-Other Issues:
-
-  * Add explicit valid usage statements to slink:VkImageCopy requiring that
-    the source and destination layer ranges be contained in their respective
-    source and destination images.
-  * Add valid usage language for swapchain of flink:vkAcquireNextImage. If
-    the swapchain has been replaced, then it should not be passed to
-    flink:vkAcquireNextImage.
-  * Add a valid usage statement to flink:vkCreateImageView, that the image
-    must have been created with an appropriate usage bit set.
-  * Noted that slink:VkDisplayPresentInfoKHR is a valid extension of
-    slink:VkPresentInfoKHR in the <<wsi_swapchain,WSI Swapchain>> section.
-  * Update valid usage for flink:vkCmdSetViewport and flink:vkCmdSetScissor
-    to account for the multiple viewport feature. If the feature is not
-    enabled, the parameters for these functions have required values that
-    are defined in the <<features-features-multiViewport,multiple
-    viewports>> section of the spec but were not reflected in the valid
-    usage text for these functions.
-  * Add the +<<VK_EXT_swapchain_colorspace>>+ extension defining common
-    color spaces.
-
------------------------------------------------------
-
-Change log for December 16, 2016 Vulkan 1.0.38 spec update:
-
-  * Bump API patch number and header version number to 38 for this update.
-
-Github Issues:
-
-  * Make ename:VK_PIPELINE_STAGE_HOST_BIT invalid for all stage masks,
-    except for flink:vkCmdWaitEvents (public issue 261).
-
-Internal Issues:
-
-  * Added validation language for flink:vkQueueBindSparse,
-    slink:VkPresentInfoKHR, and slink:VkSubmitInfo, and a note to the
-    <<synchronization-semaphores-waiting,Semaphore Waiting and Unsignaling>>
-    section to clarify that semaphores must be signaled and waited on in a
-    1:1 fashion (internal issue 546).
-  * Modify valid usage for slink:VkBufferImageCopy to only require
-    pname:bufferOffset to be a multiple of the image format's element size
-    when the format is not depth/stencil (internal issue 594).
-
-Other Issues:
-
-  * Vulkan is now a registered trademark symbol, and this is reflected in
-    documents and copyright statements.
-
------------------------------------------------------
-
-Change log for December 10, 2016 Vulkan 1.0.37 spec update:
-
-  * Bump API patch number and header version number to 37 for this update.
-
-Github Issues:
-
-  * Add usability guarantees on the values returned by
-    flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR in the
-    slink:VkSurfaceCapabilitiesKHR structure and by
-    flink:vkGetPhysicalDeviceSurfaceFormatsKHR in the
-    pname:pSurfaceFormatCount parameter (public issue 385).
-  * Add elink:VkDebugReportObjectTypeEXT enumerants for new object types
-    introduced by new extensions (public issue 408).
-  * Add +VK_NVX_device_generated_commands+ etext:ACCESS bits and define how
-    they are used (public issue 415).
-  * Fix indentation for slink:VkDebugReportCallbackCreateInfoEXT member
-    descriptions (public issue 419).
-
-Internal Issues:
-
-  * Expand requirements memory binding of non-sparse images and buffers from
-    the <<resources-association,Resource Memory Association>> section into
-    valid usage statements for all of the applicable API calls (internal
-    issue 508).
-  * Explicitly state that valid usage of flink:vkCreateImage requires that
-    flink:vkGetPhysicalDeviceImageFormatProperties would return
-    ename:VK_SUCCESS for the requested image configuration (internal issue
-    598).
-
------------------------------------------------------
-
-Change log for December 1, 2016 Vulkan 1.0.36 spec update:
-
-  * Bump API patch number and header version number to 36 for this update.
-
-Github Issues:
-
-  * Fix "recorded with" terminology in the valid usage language for the
-    flink:vkCmdExecuteCommands::pname:pCommandBuffers parameter (public
-    issue 390).
-  * Modify +genvk.py+ to support specifying extensions to remove from output
-    generators, allowing the extension loader +vulkan_ext.c+ to be created
-    without WSI extensions which are statically exported by the Vulkan
-    loader (public issue 412).
-  * Added validation language for slink:VkSubpassDependency and in the
-    <<synchronization-access-types-supported,supported access types>>
-    section to catch access masks that include bits which are not supported
-    by pipeline stages in the stage masks (partially addresses
-    github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/1006 ).
-
-Internal Issues:
-
-  * Added validation language for flink:vkCmdWaitEvents,
-    flink:vkQueueSubmit, flink:VkRenderPassCreateInfo, and in the
-    <<synchronization-pipeline-stages-supported>> section to prevent
-    recording stage dependencies that aren't supported on the queue
-    (internal issue 516).
-  * Make a few changes that generalize spec language for use with possible
-    future extensions by adding glossary terms and generalizing ``feature''
-    to ``feature or extension'' where relevant (internal issues 448, 590).
-  * Added "pipeline type" attribute to +vk.xml+ for relevant commands and
-    utilize it in automatic generation of the Command Properties table
-    (internal issue 517).
-  * Specify that WSI implementations must provide both UNORM and sRGB
-    formats in the description of slink:VkColorSpaceKHR (internal issue
-    529).
-  * Remove nesting of explicit valid usage statements where it is not
-    meaningful (internal issue 583).
-
-Other Issues:
-
-  * Add validity language requiring that
-    slink:VkPushConstantRange::pname:offset be a multiple of 4, as stated in
-    the spec language.
-
------------------------------------------------------
-
-Change log for November 25, 2016 Vulkan 1.0.35 spec update:
-
-  * Bump API patch number and header version number to 35 for this update.
-
-Github Issues:
-
-  * Document in the <<memory-device-hostaccess,Host Access>> section that
-    mapping and unmapping does not invalidate or flush the mapped memory
-    (public issues 27, 126).
-  * Redefine the entire <<synchronization>> chapter in terms of consistent
-    and well defined terminology, that's called out at the start of the
-    chapter. This terminology is applied equally to all synchronization
-    types, including subpass dependencies, submissions, and much of the
-    implicit ordering stuff dotted around the spec. Key terms are laid out
-    in the <<synchronization-dependencies,Execution and Memory
-    Dependencies>> section at the top of the rewritten chapter (public
-    issues 128, 131, 132, 217, 299, 300, 302, 306, 322, 346, 347, 371, 407).
-  * Specify order of submission for batches in the
-    <<vkQueueSubmit,vkQueueSubmit>> and
-    <<vkQueueBindSparse,vkQueueBindSparse>> commands (public issue 371).
-  * Add valid usage statements to each of the WSI extension sections
-    indicating that the WSI-specific structure parameters must be valid, and
-    remove automatically generated valid usage statements now covered by the
-    manual sections (public issue 383).
-  * Clarify render pass compatibility for flink:vkCmdExecuteCommands (public
-    issue 390).
-
-Internal Issues:
-
-  * Update +vk.xml+ to make previously explicit valid usage statements for
-    <<vkDebugReportMessageEXT,vkDebugReportMessageEXT>> implicit instead
-    (internal issue 553).
-  * Add valid usage statement for slink:VkCreateImageInfo preventing
-    creation of 1D sparse images (internal issue 573).
-  * Fix Python scripts to always read/write files in utf-8 encoding, and a
-    logic error in reflib.py which could cause a fatal error for
-    malstructured asciidoc (internal issues 578, 586).
-
------------------------------------------------------
-
-Change log for November 18, 2016 Vulkan 1.0.34 spec update:
-
-  * Bump API patch number and header version number to 34 for this update.
-
-Github Issues:
-
-  * Allow vkUpdateDescriptorSets overflow to skip empty bindings. Clarify
-    that unused bindings have a descriptorCount of zero. Improve some valid
-    usage for vkUpdateDescriptorSets (public issue 256).
-  * Require that slink:VkImageSubresourceRange always define a non-empty
-    range of the resource (public issue 303).
-  * Added valid usage for slink:VkPresentInfoKHR on the layout of presented
-    images (public issue 397).
-
-Internal Issues:
-
-  * Add dependency in src/spec/Makefile so specversion.txt is regenerated
-    when needed (internal issue 462).
-  * Shorten the table of contents in the single-page ref page HTML output.
-    Still working on the PDF (internal issue 536).
-
------------------------------------------------------
-
-Change log for November 11, 2016 Vulkan 1.0.33 spec update:
-
-  * Bump API patch number and header version number to 33 for this update.
-
-Github Issues:
-
-  * Added implicit external synchronization parameters to
-    vkBegin/EndCommandBuffer, and fixed missing command pool host
-    synchronization from per-command lists (public issue 398).
-  * Started using git tags including the spec release number, such as
-    'v1.0.32-core', instead of tags including the date of release, such as
-    'v1.0-core-20161025' (public issue 405).
-
-Internal Issues:
-
-  * Add validity constraint for
-    slink:VkImportMemoryWin32HandleInfoNV::pname:handle (internal issue
-    #480).
-  * Add scripts to compare two Vulkan HTML specifications, derived from W3
-    htmldiff service (internal issue 525).
-  * Relax requirement that memoryTypeBits can't depend on format, to allow
-    it to differ only for depth/stencil formats (internal issue 544).
-  * Add a new generator script to create a simple extension loader for
-    Vulkan based on +vk.xml+ (internal issue 558).
-  * Add the overlooked requirement that buffer and image memory
-    alignment requirements must be a power of two in the
-    <<resources-association,Resource Memory Association>> section
-    (internal issue 569).
-
-Other Issues:
-
-  * Add a naming rule to the style guide for members of extension structures
-    defining array lengths which are the same as array lengths of the core
-    structure they are chained from.
-  * Add a new generator to create a simple extension loader in
-    +src/ext_loader/vulkan_ext.[ch]+ from +vk.xml+. This code can be
-    included in your project, and is expected to be packaged in the Vulkan
-    SDK provided by LunarG in the future.
-
------------------------------------------------------
-
-Change log for October 25, 2016 Vulkan 1.0.32 spec update:
-
-  * Bump API patch number and header version number to 32 for this update.
-
-Github Issues:
-
-  * Add automatic visibility operations to the presentation engineE when
-    doing a queue present in flink:vkAcquireNextImageKHR. Removed all
-    references to MEMORY_READ that referenced WSI - they no longer make
-    sense (some aspects of public issues 128, 131, 132, 261, and 298).
-  * Document valid non-boolean +externsync+ attribute values for <param>
-    tags in +vk.xml+ (public issue 265).
-  * Add valid usage to slink:VkImageCreateInfo requiring that
-    pname:arrayLayers be 1 for images of type ename:VK_IMAGE_TYPE_3D
-    (public issue 319).
-  * Add missing captions to figures in the <<textures,Image Operations>>
-    chapter (public issue 334).
-  * Clarify WSI interaction with exclusive sharing mode (public issue
-    344).
-  * Added explicit language clarifying the allowed queue usage of
-    resources created with ename:VK_SHARING_MODE_CONCURRENT (public
-    issue 386).
-  * Require that the
-    slink:VkDescriptorSetLayoutCreateInfo::pname:binding members of the
-    pname:pBindings array passed to
-    flink:vkDescriptorSetLayoutCreateInfo all be distinct (public issue
-    391).
-
-Internal Issues:
-
-  * Remove empty validity blocks from +vk.xml+ and suppressed broken
-    validity statements and added missing statements to explicit
-    validity. Doesn't affect output, other than some statements
-    appearing in another block now (internal issue 513).
-
------------------------------------------------------
-
-Change log for October 14, 2016 Vulkan 1.0.31 spec update:
-
-  * Bump API patch number and header version number to 31 for this update.
-
-Github Issues:
-
-  * Clarifying wording of slink:VkGraphicsPipelineCreateInfo parameters and
-    adding Valid Usage statements on render pass compatibility to the
-    <<drawing,drawing commands>> (public issue 375).
-  * Replace 'texel size' with 'element size', and add a definition to the
-    glossary (public issue 382).
-  * Clarify the description of ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR to
-    make it accurate, but still generic (non-exhaustive). Remove two Valid
-    Usage statements describing error situations that will return
-    ename:VK_ERROR_NATIVE_WINDOW_IN_USE_KHR (public issue 387).
-  * Fix refBegin tag for elink:VkDebugReportFlagBitsEXT (public issue 392).
-  * The <<interfaces-builtin-variables,built-in variable>> code:PrimitiveId
-    in a fragment shader needs the code:Input storage class (public issue
-    393).
-
-Internal Issues:
-
-  * Unused ({y,z} and {height,depth} for 1D, z and depth for 2D) offsets
-    must be 0 and unused extents must be 1. Added basic offset and extent
-    valid usage for slink:VkImageResolve to match that of slink:VkImageCopy
-    (internal issue 413).
-  * Describe what flink:vkGetPhysicalDeviceImageFormatProperties returns for
-    pname:sampleCounts when for pname:usage only includes transfer-related
-    flags (internal issue 478).
-  * Remove mention of
-    slink:VkPhysicalDeviceLimits::pname:maxImageArrayLayers from the valid
-    usage for slink:VkImageCreateInfo::pname:arrayLayers (internal issue
-    520).
-  * Tag usages of ``dynamically uniform'' as glossary terms and add a
-    glossary entry pointing to the SPIR-V Specification's definition of the
-    term (internal issue 531).
-
------------------------------------------------------
-
-Change log for October 7, 2016 Vulkan 1.0.30 spec update:
-
-  * Bump API patch number and header version number to 30 for this update.
-
-Github Issues:
-
-  * Document missing pname:sType and pname:pNext parameters for
-    slink:VkCommandBufferInheritanceInfo (public issue 224).
-  * As promised, we are removing the example code, from the appendix, for
-    the VK_KHR_surface and VK_KHR_swapchain extensions. The cube demo
-    (shipped in the official Khronos SDK) has been updated, and is the
-    example code that we want people to look at for how to use these two
-    extensions (public issues 279, 308, and 311).
-  * Clarify the formats for which the slink:VkClearColorValue pname:float32
-    member is used. Also clean up related language for flink:vkCmdBlitImage
-    (public issue 369).
-  * Reword the <<invariance, Invariance>> appendix chapter to better match
-    Vulkan terminology (public issue 372).
-
-Internal Issues:
-
-  * Update slink:VkMemoryRequirements to not require a host_visible memory
-    type exists that can be bound to sparse buffers (internal issue 494).
-  * Modify the <<features-supported-sample-counts,Supported Sample Counts>>
-    language to allow multisampled depth-stencil images (internal issue
-    521).
-
------------------------------------------------------
-
-Change log for September 30, 2016 Vulkan 1.0.29 spec update:
-
-  * Bump API patch number and header version number to 29 for this update.
-
-Github Issues:
-
-  * Remove redundant constraint on
-    slink:VkCommandBufferInheritanceInfo::pname:queryFlags (public issue
-    224).
-  * Fix typo and remove link in Note in the
-    <<extended-functionality-instance-extensions-and-devices, Instance
-    Extensions and Device Extensions>> section (public issue 359).
-  * Fix erroneous validation statement for the pname:layout member of
-    slink:VkComputePipelineCreateInfo (public issue 362).
-
-Internal Issues:
-
-  * Restore long figure captions using asciidoc sidebar blocks, due to
-    restrictions of asciidoc syntax (internal issue 101).
-  * Replace most latexmath equations with comparable markup in straight
-    asciidoc, which significantly improves time required to fully load and
-    process the HTML forms of the Specification. There are known minor font
-    and alignment inconsistencies with MathJax and PDF rendering of
-    latexmath equations. Please do not file github issues about these. We
-    are aware of the inconsistencies and will make refinements over time,
-    while the performance improvements are compelling in at least some major
-    browsers (internal issue 313).
-  * Move handcoded validity statements from +vk.xml+ into the Specification
-    body, easing work in the single-branch model. Specify the distinction
-    between these explicit statements, and the implicit validity statements
-    inferred from vk.xml. Validity statements now appear in two blocks for
-    each command and structure - handcoded "Valid Usage" and the implicit
-    "Valid Usage (Implicit)" (internal issue 392).
-  * Add the +returnedonly="false"+ attribute to WSI output structures,
-    removing incorrectly generated implicit validity statements for
-    slink:VkDisplayPropertiesKHR, slink:VkDisplayPlanePropertiesKHR,
-    slink:VkDisplayModePropertiesKHR, slink:VkDisplayPlaneCapabilitiesKHR,
-    slink:VkSurfaceCapabilitiesKHR, and slink:VkSurfaceFormatKHR structures
-    (internal issue 486).
-  * Update slink:VkImageLayout to require the
-    ename:VK_IMAGE_USAGE_SAMPLED_BIT be set for sampled depth/stencil images
-    (internal issue 487).
-  * Use an explicit format specifier string for the date command invocation
-    in the +Makefile+ instead of the shorthand -R option, which doesn't work
-    on BSD and MaxOS X date commands (internal issue 500).
-
-Other Issues:
-
-  * Use the terms ``allocation scope'' and ``extension scope'' instead of
-    just ``scope'', and add them to the glossary.
-
------------------------------------------------------
-
-Change log for September 23, 2016 Vulkan 1.0.28 spec update:
-
-  * Bump API patch number and header version number to 28 for this update.
-
-Github Issues:
-
-  * Minor spelling and typography cleanup, add definitions of
-    ename:VK_FALSE and ename:VK_TRUE as just what their names say
-    (public issues 220, 318, 325, 365; internal issues 451, 496)
-  * Clarify that the pname:maxDescriptorSet limits in the
-    <<features-limits-required,Required Limits>> table are n *
-    maxPerStage limit (where n=number of supported stages) (public issue
-    254).
-  * Minor cleanup to <<boilerplate-platform-macros,Platform-Specific
-    Macro Definitions>> appendix (public issue 314).
-  * Add valid usage statement to slink:VkPipelineLayoutCreateInfo
-    disallowing multiple push constant ranges for the same shader stage
-    (public issue 340).
-  * Clarify the elink:VkSharingMode description of what executing the
-    "same" barriers means in case of ownership transfer (public issue
-    347).
-  * Rename copyright.txt and add COPYING.md to try and reduce confusion
-    about applicable copyrights (public issue 350).
-  * Extend the table in the <<boilerplate-wsi-header, Window System-Specific
-    Header Control>> section to describe the external headers included when
-    each etext:VK_USE_PLATFORM_* macro is defined (public issue 376).
-
-Internal Issues:
-
-  * Add "Revision History" to the PDF outputs following the table of
-    contents, to match HTML outputs (internal issue 43).
-  * Clarified that flink:vkMapMemory may fail due to virtual address
-    space limitations (internal issue 346).
-  * Add +refBody+ comment markup for ref page autoextraction when required
-    (internal issue 400).
-  * Document proper use of "mipmap" and "mip" in the style guide API
-    naming rules, matching the spelling rules (internal issue 471).
-  * Tweak the <<extensions,Layers and Extensions>> appendix to note that
-    the Specification may be built with arbitrary combinations of
-    extensions (internal issue 483).
-  * Remove incorrect statement allowing
-    slink:VkClearAttachment::pname:colorAttachment to be >=
-    slink:VkSubpassDescription::pname:colorAttachmentCount (internal
-    issue 488).
-  * The <<features-limits-viewportboundsrange,viewportBoundsRange>> is
-    expressed in terms of the pname:maxViewportDimensions but this is
-    actually two values. Clarify that it's based on the larger of the two
-    (if they differ) (internal issue 499).
-
-Other Issues:
-
-  * Reflowed text of the entire spec using the 'reflow' Makefile target, to
-    (hopefully) reduce future internal git churn as edits are made and
-    extensions added in return for one-time pain. This has no perceptible
-    effect on the spec outputs, but considerable changes on the asciidoc
-    source (internal issue 367).
-
------------------------------------------------------
-
-Change log for September 16, 2016 Vulkan 1.0.27 spec update:
-
-  * Bump API patch number and header version number to 27 for this update.
-
-Github Issues:
-
-  * Weaken flink:vkGetPipelineCacheData invariance conditions; previous
-    conditions were stronger than agreed and can't be guaranteed (public
-    issue 280).
-  * Add link to "Vulkan Loader Specification and Architecture Overview"
-    document to Normative References section (public issue 359).
-
-Internal Issues:
-
-  * Be more clear in the <<interfaces-resources-layout-std140, uniform
-    buffer layout>> section that block offsets can be out of order
-    (internal issue 396).
-  * Document that extension authors should add support for their extensions
-    to the validation layers (internal issue 398).
-  * Clarify that the valid range of depth clear values should be limited
-    to the 0..1 range and that copies to depth aspect must also be in this
-    range (internal issue 412).
-  * Specify ``a'' vs. ``an'' use in the style guide (internal issue 432).
-  * Increase the maximum pname:nonCoherentAtomSize value in the
-    <<features-limits-required,Required Limits>> section from 128 to 256
-    (internal issue 435).
-  * Fix vk_platform.h for compiler errors on some Android platforms
-    (internal issue 441).
-  * Clarify that slink:VkPhysicalDeviceFeatures::pname:pEnabledFeatures ==
-    `NULL` disables all features, including the "required" feature
-    pname:robustBufferAccess (internal issue 479).
-
-Other Issues:
-
-  * Expand style guide and make it more self-consistent.
-  * Use ISO 8601 date format everywhere.
-  * Emphasise the correct way of using
-    slink:VkSurfaceCapabilitiesKHR::pname:maxImageCount.
-  * Added +VK_EXT_validation_flags+ extension for validation flag mechanism.
-  * Fix an <<credits,author credit>> to include their current employer.
-
------------------------------------------------------
-
-Change log for September 6, 2016 Vulkan 1.0.26 spec update:
-
-  * Bump API patch number and header version number to 26 for this update.
-
-Github Issues:
-
-  * Bring sample code in the `VK_KHR_surface` and `VK_KHR_swapchain`
-    extension summary appendices up to date, and note they will be replaced
-    with pointers to the LunarG SDK examples in the future (public issue
-    279).
-  * Add a new <<fundamentals-commandsyntax-results-lifetime,Lifetime of
-    Retrieved Results>> section specifying that ftext:vkGet* and
-    ftext:VkEnumerate* results are invariant unless otherwise specified, and
-    specify behavior for individual commands which are not invariant (public
-    issue 280).
-  * Remove conflicting definition of
-    slink:VkDisplayPlaneCapabilitiesKHR::pname:maxSrcPosition and clean up
-    language of the remaining definition (public issue 351).
-  * Fix many minor spelling errors and add rules to the style guide to
-    prevent recurrences (public issue 352).
-
-Internal Issues:
-
-  * Remove redundant descriptions of the etext:VK_USE_PLATFORM_* macros from
-    the <<wsi,Window System Integration>> chapter in favor of the
-    description in the <<boilerplate-wsi-header,Window System-Specific
-    Header Control>> appendix (internal issue 6).
-  * Replace misleading 'can: be destroyed when not X' with more correct
-    'must: not be destroyed while X' in the
-    <<fundamentals-objectmodel-lifetime,Object Lifetime>> section. Disallow
-    destroying a pipeline layout while a command buffer using it is
-    recording (internal issue 241).
-  * Clarify that ename:VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT is valid for
-    all images used as attachments in elink:VkImageUsageFlagBits and the
-    slink:VkImageLayout validity language (internal issue 320).
-  * Note that <<extended-functionality-layers,Layers>> may wrap object
-    handles, but that this is a generally discouraged. A link to additional
-    information in the documentation for layer authors is provided (issue
-    398)
-  * Replace the mustnot: and shouldnot: macros with equivalent must: not and
-    should: not to get rid of non-English words while still highlighting
-    normative language (internal issue 407).
-  * Disallow creating multisampled images with
-    ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT in the slink:VkImageLayout
-    validity language and the <<features-supported-sample-counts,Supported
-    Sample Counts>> section (internal issue 445).
-  * Fix typo so that flink:vkCmdDrawIndexedIndirect is defined in terms of
-    flink:vkCmdDrawIndexed rather than flink:vkCmdDrawIndirect (internal
-    issue 446).
-  * Reorganize the per-extension information sections to all be in the
-    <<extensions,Layers & Extensions>> appendix. Also fix a typo in
-    +VK_IMG_filter_cubic+ which incorrectly identified it as a +KHR+
-    extension (internal issue 461).
-
-Other Issues:
-
-  * Use asciidoc markup instead of latexmath to simplify diagrams in the
-    <<features-formats-non-packed,byte mapping tables>> for color formats.
-  * Fix a markup problem with the wildcarded enumerant names in a NOTE in
-    the <<textures-texel-replacement,Texel Replacement>> section.
-  * Fix missing attributes in the XML interface for
-    elink:VkExternalMemoryHandleTypeFlagBitsNV and
-    elink:VkExternalMemoryFeatureFlagBitsNV (KhronosGroup/Vulkan-Hpp issue
-    25)
-  * Cleanup reference page builds so only core pages are built for releases.
-
------------------------------------------------------
-
-Change log for August 26, 2016 Vulkan 1.0.25 spec update:
-
-  * Bump API patch number and header version number to 25 for this update.
-  * Structurally change the specification so that multiple extensions are
-    included in the +1.0+ git branch, and specifications will include or not
-    include those extensions at build time based on options passed to the
-    Makefile. See +doc/specs/vulkan/README.html+ and the ``Layers and
-    Extensions'' section of the ``Vulkan Documentation and Extensions''
-    document for more information on this change.
-  * Register and publish new extensions in the single-branch form:
-  ** +VK_NV_external_memory_capabilities+
-  ** +VK_NV_external_memory+
-  ** +VK_NV_external_memory_win32+
-  ** +VK_NV_win32_keyed_mutex+
-
-Github Issues:
-
-  * Clarify description of GetInstanceProcAddr and GetDeviceProcAddr (public
-    issue 212).
-  * Add SPIR-V <<textures-operation-validation, instruction validation>> for
-    single-sampled images (public issue 316).
-  * Fix spelling of ``tesselation'' in a few places and note it as an
-    exception to the American spelling rules convention (public issue
-    327).
-  * Fix Makefile to create output directory for ``styleguide''
-    target (public issue 329).
-  * Fix numerous minor issues with incorrectly tags on enumerant names and
-    table titles (public issue 330).
-  * Generate specversion.txt date in UTC time and RFC 2822 format
-    (public issue 335).
-  * Convert link to the SPIR-V Specification for
-    flink:VkShaderModuleCreateInfo into an internal link to the normative
-    reference (public issue 336).
-  * Add ename:VK_ERROR_OUT_OF_MEMORY error code to
-    flink:vkCreateDebugReportCallbackEXT (public issue 337).
-
-Internal Issues:
-
-  * Update style guide regarding use of code:NULL and dname:VK_NULL_HANDLE
-    (internal issue 393).
-  * Change the definition of latexmath:[$q$] in the
-    <<textures-image-level-selection,texture image level selection>> section
-    to be the index of the maximum defined level for the view, not the
-    number of levels in the view (internal issue 406).
-  * Allow developers to override dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE
-    with their own binary-compatible definition (internal issue 439).
-  * Fix +vk_platform.h+ conditional logic causing compile failure with some
-    Android compilers (internal issue 441).
-  * Implement the single-branch model as described above (internal issue
-    461).
-
------------------------------------------------------
-
-Change log for August 12, 2016 Vulkan 1.0.24 spec update:
-
-  * Bump API patch number and header version number to 24 for this update.
-
-Github Issues:
-
-  * Fix type mismatch in swapchain image equivalency table (public issue
-    289).
-  * Fix a copy-and-paste error in the description of
-    flink:vkGetSwapchainImagesKHR::pname:pSwapchainImages, that said it
-    was an array of ``sname:VkSwapchainImageKHR structures'' instead of
-    an array of ``sname:VkImage handles'' (public issue 292).
-  * Specify that ename:VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT is only valid
-    for ename:VK_IMAGE_TYPE_2D images (public issue 293).
-  * Add a valid usage statement to flink:vkCmdExecuteCommands saying
-    that when called outside a render pass instance, the secondary
-    command buffers must not have been created with the
-    ename:VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT (public issue
-    297).
-  * Fix description of +VK_NO_STDINT_H+ in the
-    <<boilerplate-platform-macros,platform macros>> section (public
-    issue 314).
-
-Internal Issues:
-
-  * Normalize the language for the remaining built-in variables in the
-    <<interfaces-builtin-variables,Built-In Variables>> section. Fix
-    code:FrontFacing and code:HelperInvocation, as they should be of
-    code:boolean type rather than code:integer (internal issue 323).
-  * Clarify that when ename:VK_WHOLE_SIZE is used for a buffer
-    descriptor range, the effective range must still be within the max
-    buffer range (internal issue 426).
-  * Clarify that command buffers and descriptor sets are allocated
-    rather than created. Also clarify when the recording state of a
-    command buffer is relevant (internal issue 434).
-
------------------------------------------------------
-
-Change log for August 5, 2016 Vulkan 1.0.23 spec update:
-
-  * Bump API patch number and header version number to 23 for this update.
-
-Github Issues:
-
-  * Add explicit valid value attributes to pname:sType members in vk.xml
-    (public issue 34).
-  * Clarify usage of flink:vkGetInstanceProcAddr and
-    flink:vkGetDeviceProcAddr (public issue 225).
-  * Fix a copy-and-paste error in the description of
-    pname:pSwapchainImageCount saying that it was the count of ``format
-    pairs'' instead of ``swapchain images'' (public issue 292).
-  * flink:vkCmdExecuteCommandBuffers requires all command buffers to be
-    allocated from command pools created for the same queue family (public
-    issue 296).
-  * Remove bogus +optional+ attribute for
-    flink:vkEnumerateDeviceLayerProperties::pname:physicalDevice from vk.xml
-    (public issue 301).
-  * Clean up the <<resources-image-views-compatibility,image and image view
-    compatibility table>> reference and contents. Use full enumerant names.
-    Refer to pname:layerCount in the ``view parameters'' column instead of
-    pname:arrayLayers. Require N >= 1 for the cube array subview row, not
-    just arrayLayers >= 6 N (public issue 304).
-  * Modify description of <<resources-memory-aliasing,memory aliasing>> to
-    be consistent with the description of
-    <<resources-bufferimagegranularity,buffer image granularity>> (public
-    issue 307).
-
-Internal Issues:
-
-  * Describe remaining +vk_platform.h+ macros in the <<boilerplate,API
-    Boilerplate>> appendix (internal issue 6).
-  * Clarify
-    <<features-features-robustBufferAccess,pname:robustBufferAccess>>
-    feature behavior; what memory can be accessed, how bounds checking is
-    performed, and allowing for vectorization (internal issue 332).
-  * Document markup for automatic extraction of reference pages from the
-    spec sources in the style guide (internal issue 395).
-  * Allow flink:vkCreateDisplayModeKHR to return
-    ename:VK_ERROR_INITIALIZAION_FAILED_KHR if the user requests mode
-    parameters that the specified display does not support (internal issue
-    411).
-  * Remove atomic counters (atomic_uint style) from KHR_vulkan_glsl, and
-    more clearly remove the subroutine keyword alongside it (internal issue
-    421).
-  * Clarify behavior of flink:vkCmdBindDescriptorSets for descriptor sets
-    not contained in the layout (internal issue 427).
-
-Other Commits:
-
-  * Change the order in which members of sname:VkAttachmentDescription and
-    sname:VkPipelineInputAssemblyStateCreateInfo are described to match
-    their order in the structures.
-
------------------------------------------------------
-
-Change log for July 22, 2016 Vulkan 1.0.22 spec update:
-
-  * Bump API patch number and header version number to 22 for this update.
-
-Github Issues:
-
-  * Translate the subpass self-dependency language into concrete
-    validity statements, and added a validity statement about the
-    restrictions on layout parameters (public issue 267).
-  * Add validity requirement that
-    slink:VkAttachmentDescription::pname:finalLayout and
-    slink:VkAttachmentReference::pname:layout must not be
-    ename:VK_IMAGE_LAYOUT_UNDEFINED or
-    ename:VK_IMAGE_LAYOUT_PREINITIALIZED (public issue 268).
-  * Clarify that slink:VkSubpassDescription::pname:pResolveAttachments
-    layouts are used. Make language consistent with other attachment
-    arrays (public issue 270).
-  * Changed 64-bit definition for
-    dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE to work for x32 platform in
-    +vk.xml+ and the resulting +vulkan.h+ (public issue 282).
-  * Add missing error return code for
-    flink:vkEnumerateInstanceExtensionProperties and
-    flink:vkEnumerateDeviceExtensionProperties (public issue 285)
-  * Fix several cases of stext::VkStructName.memberName markup to
-    stext::VkStructName::pname:memberName, to match other usage in the
-    spec, and describe this markup in the style guide (public issue
-    286).
-  * Modified validity language generation script to avoid redundant
-    common ancestor language if covered by generic parent language, and
-    used `Both' instead of `Each' when appropriate (public issue 288).
-
-Internal Issues:
-
-  * Add language about behavior of flink:vkAllocateDescriptorSets when
-    allocation fails due to fragmentation, a new error
-    ename:VK_ERROR_FRAGMENTED_POOL, and a Note explaining the situation
-    (internal issue 309).
-  * For the features of code:PointSize, code:ClipDistance, and
-    code:CullDistance, the SPIR-V capability is required to be declared
-    on use (read or write) rather than on decoration (internal issue
-    359).
-  * Have desktop versions of GLSL respect precision qualification
-    (code:mediump and code:lowp) when compiling for Vulkan. These will
-    get translated to SPIR-V's code:RelaxedPrecision decoration as they
-    do with OpenGL ES versions of GLSL (ESSL). The default precision of
-    all types is code:highp when using a desktop version (internal issue
-    360).
-  * Add validity statement for slink:VkImageCreateInfo specifying that
-    multisampled images must be two-dimensional, optimally tiled, and
-    with a single mipmap level (internal issue 369).
-  * Add validity statements to slink:VkImageViewCreateInfo disallowing
-    creation of images or image views with no supported features. Made
-    some slink:VkImageViewCreateInfo validity statements more precise
-    and consistent. Added a Note to the <<features,features>> chapter
-    about formats with no features (internal issue 371).
-  * Remove +manpages+ from default build targets. Nroff outputs
-    containing imbedded latexmath will not render properly. Fixing this
-    is a lot of work for limited use cases (internal issue 401).
-
-Other Commits:
-
-  * Fix flink:vkRenderPassBeginInfo::pname:clearValueCount validity
-    statement to be based on attachment indices rather than the number
-    of cleared attachments
-    (Vulkan-LoaderAndValidationLayers/issues/601).
-  * Convert registry documentation from LaTeX to asciidoc source and
-    rename from +src/spec/readme.tex+ to +src/spec/registry.txt+.
-  * Fix lack of Oxford commas in validity language.
-  * Lots of cleanup of generator scripts and Makefiles to move extension
-    list for generator into the script arguments instead of the body of
-    genvk.py, and express better dependencies between XML, scripts, and
-    generated files.
-
------------------------------------------------------
-
-Change log for July 15, 2016 Vulkan 1.0.21 spec update:
-
-  * Bump API patch number and header version number to 21 for this update.
-
-Github Issues:
-
-  * Clarify how <<features-supported-sample-counts,sample count queries>>
-    relate to the limits in slink:VkPhysicalDeviceLimits. (public issue
-    185).
-  * Clarify in the <<interfaces-iointerfaces,Shader Input and Output
-    Interfaces>> section that shader output variables have undefined values
-    until the shader writes to them (public issue 240).
-  * Specify the implicit value of image parameters that cannot be set in
-    slink:VkSwapchainCreateInfo::pname:flags, pname:imageType,
-    pname:mipLevels, pname:samples, pname:tiling, and pname:initialLayout
-    (public issue 243).
-  * Make use of code:NULL and code:VK_NULL_HANDLE consistent in the
-    VK_KHR_swapchain extension (public issue 276).
-
-Internal Issues:
-
-  * Clarify that presenting an image to a display surface swapchain applies
-    the display surface's mode, and that destroying a display surface
-    swapchain may reset the display's mode, in the VK_KHR_display_swapchain
-    extension (internal issue 247).
-  * Better describe what a slink:VkSurfaceKHR is, and that creating one does
-    not set a mode, in the VK_KHR_display extension. This is a round-about
-    way of pointing out that mode setting is not covered by the extension,
-    but rather is performed as a side effect of presentation (internal issue
-    247).
-  * Add more valid usage statements to flink:vkQueuePresentKHR command when
-    the VK_KHR_display_swapchain extension is present (internal issue
-    247).
-  * Add more includes to the VK_KHR_swapchain extension to better document
-    interactions with VK_KHR_display_swapchain (internal issue 247).
-  * Clarify restrictions on location aliasing in the
-    <<fxvertex,Fixed-Function Vertex Processing>> section (internal issue
-    370).
-  * Add mathematical description of blitting to flink:vkCmdBlitImage, and
-    link it to the <<textures,Image Operations>> chapter. Use mathematical
-    notation for ranges of texel coordinates in the <<textures,Image
-    Operations>> chapter. Fixed miscellaneous validity statements for
-    flink:vkCmdBlit and slink:VkImageBlit (internal issue 382).
-
-Other Commits:
-
-  * Added a valid usage rule to flink:VkGraphicsPipelineCreateInfo that the
-    ename:VK_PRIMITIVE_TOPOLOGY_PATCH_LIST topology must only be used when
-    tessellation shaders are used.
-  * Expand the style guide into a formal "Procedures and Conventions"
-    document. Add a API Naming Conventions section, move most of the API
-    Specification Appendix C (Layers and Extensions) content into the new
-    document, and define the resulting procedures as mandatory (where
-    relevant). This more clearly separates use vs. specification of Vulkan
-    APIs.
-  * Update vk_platform.h to handle 32-bit ARMv8 binaries.
-  * Various minor cleanups to the Makefile and build process.
-
------------------------------------------------------
-
-Change log for July 8, 2016 Vulkan 1.0.20 spec update:
-
-  * Bump API patch number and header version number to 20 for this
-    update.
-
-Github Issues:
-
-  * Replaced existing reference pages by text automatically extracted from
-    the specification source, or generated from vk.xml in some cases. This
-    is not a complete solution for the reference pages, but puts them in a
-    much better state. The ref pages (only) are now placed under a CC BY
-    open source license, which is more current than the obsolete license
-    previously used. Various minor tweaks to the Specification sources were
-    made to enable this, and a new ``API Boilerplate'' chapter added to
-    include definitions of all the entities in the API and +vulkan.h+ which
-    were not already described in some form in the document.
-
-    Further improvements to the pages should not edit them directly, but
-    instead concentrate on the specification source from which the ref pages
-    are being extracted (public issues 44, 55, 160; internal issue 389).
-
------------------------------------------------------
-
-Change log for July 1, 2016 Vulkan 1.0.19 spec update:
-
-  * Bump API patch number and header version number to 19 for this
-    update.
-
-Github Issues:
-
-  * Clarified how flink:vkGetImageSubresourceLayout interacts with image
-    layouts (public issue 247).
-  * Remove ename:VK_IMAGE_LAYOUT_PREINITIALIZED from valid usage rule for
-    slink:VkImageMemoryBarrier::pname:oldLayout. It is only valid if it is
-    the current layout (public issue 248).
-  * Modify valid usage for flink:vkBindBufferMemory so implementations are
-    free to require a different backing memory size than the buffer size
-    (public issue 251).
-  * Clarify that filtering rules for flink:vkCmdBlitImage always apply, and
-    are usually no-ops if the formats are the same (public issue 253).
-  * Remove 'non-sparse' from description of
-    flink:vkGetBufferMemoryRequirements and
-    flink:vkGetImageMemoryRequirements (public issue 257).
-  * Remove ename:VK_ERROR_LAYER_NOT_PRESENT error code from
-    flink:vkCreateDevice (public issue 259).
-  * Change "must: not" to "should: not" in constraint on when
-    flink:vkAcquireNextImageKHR is called in the VK_KHR_swapchain branch
-    (public issue 262).
-  * Change type of flink:vkCmdUpdateBuffer::pname:pData from
-    basetype:uint32_t* to basetype:void* (public issue 263).
-  * Change should: to must: in description of where additional segments are
-    placed in the <<[tessellation-tessellator-spacing,Tessellator Spacing>>
-    section (public issue 264).
-
-Internal Issues:
-
-  * Normalize the language of all the compute shader built-ins in the
-    <<interfaces-builtin-variables,Built-in Variables>> section (internal
-    issue 323).
-  * Remove definition of presentation engine internal queue lengths
-    associated with ename:VK_PRESENT_MODE_FIFO_KHR and
-    ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the <<Window System
-    Integration,wsi>> chapter (internal issue 374).
-  * The language of a Note was too broad, and implied that loaders for a
-    given OS would statically export functions for WSI extensions that
-    were not relevant to (or supported on) the OS. Also, removed
-    "Khronos-provided" since the Android loader is not (internal issue 380)
-
-Other Commits:
-
-  * Add ename:VK_INCOMPLETE to list of return values for
-    flink:vkGetPipelineCacheData. Spec says this value is returnable, but it
-    was not listed in the error codes.
-  * Fix "correponds" typo in member definitions for
-    slink:VkSubpassDescription.
-
------------------------------------------------------
-
-Change log for June 24, 2016 Vulkan 1.0.18 spec update:
-
-  * Bump API patch number and header version number to 18 for this
-    update.
-
-Github Issues:
-
-  * Added "queue operation" terminology, and modified spec to actually
-    use this terminology (public issue 155). The act of submitting a
-    piece of work to a queue now generates "operations" for the queue to
-    execute, including operations to wait on/signal semaphores and
-    fences. Synchronization waits on these operations, making execution
-    dependency chains more obvious for semaphores and fences (though
-    additional work is still needed here). These changes include:
-  ** Overview of "queue submission" commands in chapter
-     <<devsandqueues-submission>>.
-  ** Updated descriptions for fence and semaphore waits and signals in
-     the synchronization chapter <<synchronization-semaphores-waiting>>,
-     <<synchronization-semaphores-signaling>> and
-     <<synchronization-fences-waiting>>.
-  ** Clarifications to semaphore and fence operation within queue
-     submission functions.
-  ** New glossary terms.
-  ** Moved device idle and queue wait idle to synchronization chapter in
-     order to describe them in terms of other synchronization
-     primitives.
-  ** Clarifications to semaphore and fence operation allowed removal of
-     the "implicit ordering guarantees" section, as this information is
-     now wholly covered where these primitives are described.
-  *** The "host writes" section of this is still there for now - in its
-      own section. This could probably be merged into other sections
-      later.
-  *** Modified fundamentals chapter on queue ordering to make sense in
-      context of the new changes, and avoid duplication.
-      <<fundamentals-queueoperation>>
-  * Added "aspect" and "component" definitions to the glossary, and made
-    sure these terms are referenced correctly (public issue 163).
-  * Update valid usage for ftext:vkGet*ProcAddr to only include
-    conditions that must be met to get a valid result. In particular,
-    it is okay to call flink:vkGetDeviceProcAddr with any string and will
-    get a code:NULL if that string is not a core Vulkan function or an
-    enabled extension function (addresses but does not fully close
-    public issue 214).
-  * Change the WSI extension dependencies to refer to version 1.0 of the
-    Vulkan API, instead of the pre-1.0-release internal revisions
-    numbers (public issue 238).
-  * Specified that <<interfaces-fragmentoutput,undeclared fragment
-    shader outputs>> result in undefined values input to the blending
-    unit or color attachment (public issue 240).
-  * Fix latexmath:[$\leq$] operators turning into Unicode left arrow symbols
-    (public issue 245).
-
-Internal Issues:
-
-  * Better documented that the registry XML "optional" tag for values
-    only applies when that value is the size of an array (internal issue
-    335).
-  * Add a stronger definition for the valid usages of
-    VkSpecializationMapEntry.size in the
-    <<pipelines-specialization-constants,Specialization Constants>>
-    section (internal issue 345).
-  * Change code:OpName to code:OpDecorate (along with appropriate
-    syntax) for vertex shader built-ins (internal issue 368).
-  * Add missing ref pages (those which are not currently stubs) to
-    apispec.txt for the single-page version of the ref pages (internal
-    issue 378).
-
-Other Commits:
-
-  * Fix example in the <<descriptorsets,Descriptor Sets>> section to use
-    M, N, and I, describing set, binding, and index, consistently
-    throughout the example code.
-
------------------------------------------------------
-
-Change log for June 17, 2016 Vulkan 1.0.17 spec update:
-
-  * Bump API patch number and header version number to 17 for this
-    update.
-
-Github Issues:
-
-  * Update description of vertex shader reuse in
-    <<shaders-vertex-execution>> (public issue 106).
-  * Simplify validity language around pname:ppEnabledExtensionNames and
-    pname:ppEnabledLayerNames (in the <<initialization-instances>> and
-    <<devsandqueues-device-creation>> sections) (public issue 214).
-  * Add missing validity rule to flink:vkCmdBeginRenderPass requiring
-    compatibility between slink:VkAttachmentDescription pname:initalLayout
-    members and the corresponding attached framebuffer images (public issue
-    233).
-  * Fix Unicode arrows appearing in output instead of relational operators
-    (public issue 239).
-  * Correctly describe the required number of elements for
-    code:TessLevelInner and code:TessLevelOuter arrays in the
-    <<interfaces-builtin-variables,Built-In Variables>> section as two and
-    four, respectively, instead of the other way around, and refer to this
-    section from the <<tessellation,Tessellation>> chapter (public issue
-    246).
-
-Internal Issues:
-
-  * Document deprecation of ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR in the
-    VK_KHR_surface extension, and of
-    ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT in the
-    VK_EXT_debug_report extension (internal issue 328).
-  * Added language to define what a valid usage statement is and should be,
-    with a note about some apparent weirdnesses this might entail (internal
-    issue 357).
-
-Other Commits:
-
-  * Added missing ename:VK_ERROR_DEVICE_LOST error to
-    flink:vkQueueBindSparse.
-
------------------------------------------------------
-
-Change log for June 10, 2016 Vulkan 1.0.16 spec update:
-
-  * Bump API patch number and header version number to 16 for this
-    update.
-
-Github Issues:
-
-  * Clarify that integer border values are meant to be 0/1, and that
-    integer texture lookups are sign-extended in the
-    <<textures-format-conversion,Format Conversion>> and
-    <<textures-texel-replacement,Texel Replacement>> sections (public
-    issue 52).
-  * Add logic to generate spec boilerplate without using the 'git'
-    command-line client, needed when building from a tarball or another
-    source of the Vulkan tree rather than a cloned git repo. Remove
-    boilerplate as part of 'clean' target (public issue 195).
-  * Document that color writes and clears to unused attachments have no
-    effect for slink:VkClearAttachment and
-    elink:VkColorComponentFlagBits (public issue 198).
-  * Fixed flink:vkCmdExecuteCommands validity statement for
-    sname:VkCommandBufferInheritanceInfo::pname:framebuffer. If used, it
-    must match the framebuffer in the current renderpass instance
-    (public issue 226).
-  * Added valid usage language to require for all functions that set
-    dynamic state that the currently bound graphics pipeline has the
-    corresponding dynamic state enabled (public issue 235).
-
-Internal Issues:
-
-  * Clarify for flink:vkEnumerateInstanceExtensionProperties, in the
-    <<extended-functionality-instance-extensions-and-devices, Instance
-    Extensions and Device Extensions>> section, and in the
-    <<glossary,Glossary>> section when functionality should be exposed
-    as an instance extension, as a device extension, or as both
-    (internal issue 109).
-  * Place WorkgroupSize in alphabetical order in the
-    <<interfaces-builtin-variables,Built-in Variables>> section
-    (internal issue 323).
-  * Corrects valid usage in vkEndRenderPass to only affect primary
-    render passes, as secondaries may be entirely within a render pass,
-    and should be able to be ended (previous language disallowed that)
-    (internal issue 338).
-  * Fix relational operator from <= to >= in the
-    <<features-extentperimagetype,Allowed Extent Values>> section
-    (internal issue 343).
-  * Disallow recursion under SPIR-V entry points in the
-    <<spirvenv-module-validation,Validation Rules within a Module>>
-    section (internal SPIR-V issue 37).
-
-Other Commits:
-
-  * Use standard Python ElementTree package instead of lxml.etree in
-    header / validation layer / include autogeneration from XML,
-    reducing platform dependencies.
-
------------------------------------------------------
-
-Change log for May 27, 2016 Vulkan 1.0.15 spec update:
-
-  * Bump API patch number and header version number to 15 for this
-    update.
-
-Github Issues:
-
-  * Fixed the <<glossary,Glossary>> entry for Fragment Input Attachment
-    Interface to specify code:UniformConstant storage class (public issue
-    156).
-  * Disallow lazily allocated memory for buffers in the description of
-    slink:VkMemoryRequirements::pname:memoryTypeBits (public issue 196).
-  * Add numbered figure captions (public issue 219).
-  * Fix output variable names in the <<fundamentals-fpfixedconv,Conversion
-    from Floating-Point to Normalized Fixed-Point>> section and related
-    minor normative language and markup cleanup (public issue 220).
-
-Internal Issues:
-
-  * Fix reference to nonexistent etext:VK_IMAGE_LAYOUT_TRANSFER_{SRC,DST}BIT
-    to the actual etext:VK_IMAGE_LAYOUT{SRC,DST}_OPTIMAL (internal issue
-    296).
-  * Update the <<sparsememory-sparse-memory-aliasing,Sparse Resource
-    Implementation Guidelines>> to refer to the correct feature names
-    (internal issue 305).
-
------------------------------------------------------
-
-Change log for May 20, 2016 Vulkan 1.0.14 spec update:
-
-  * Bump API patch number and header version number to 14 for this
-    update.
-
-Github Issues:
-
-  * Fix validity language for sname:VkCommandBufferAllocateInfo to
-    impose range limits on pname:commandBufferCount (public issue 178).
-  * Fix validity language for flink:vkCmdExecuteCommands to refer to the
-    correct structure names (public issue 179).
-  * Fix two copy-and-paste errors in the WSI queries, where the wrong
-    term was used for what was being returned (public issue 206).
-  * Add a note in the documentation of
-    flink:vkGetPhysicalDeviceSurfaceFormatsKHR, about what it means if
-    ename:VK_FORMAT_UNDEFINED is returned (public issue 207).
-
-Internal Issues:
-
-  * Clarify the usage and correct the name for the bitmask referenced in
-    <<queries-pipestats,Pipeline Statistics Queries>> (internal issue
-    334).
-
-Other Commits:
-
-  * Fix the names of decorations listed in the
-    <<interfaces-builtin-variables,Built-in Variables>> section such
-    that they match the SPIR-V specification.
-
------------------------------------------------------
-
-Change log for May 13, 2016 Vulkan 1.0.13 spec update:
-
-  * Bump API patch number and header version number to 13 for this
-    update.
-
-Github Issues:
-
-  * Improve the description of ename:VK_PRESENT_MODE_FIFO_RELAXED_KHR in the
-    VK_KHR_surface extension (public issue 174).
-  * Clarify use of etext:*_SIMULTANEOUS_USE_BIT for secondary command
-    buffers (public issue 182).
-  * Fix typos in VK_KHR_wayland_surface extension where code:wl_device was
-    used instead of code:wl_display (public issue 193).
-  * Replaced {apiname} with ``Vulkan'' in XML validity statements (public
-    issue 199).
-  * Fix dead links for WSI handle types (public issue 200).
-  * Use "signaled" instead of "signalled" spelling everywhere (public issue
-    201).
-  * Move readme.pdf target directory for XML schema documentation into the
-    target generation directory, instead of leaving it checked into the spec
-    source tree (public issue 203).
-  * Fix duplicate 'which which' typo in description of
-    elink:VkCommandPoolResetFlagBits (public issue 204).
-  * Move the <<Programmable Primitive Shading>> section up one level, out of
-    the <<drawing-primitive-topologies,Primitive Topologies>> section
-    (public issue 209).
-
-Internal Issues:
-
-  * Clarify in the <<pipelines-cache,Pipeline Cache>> section that
-    implementations should not manage the size of pipeline cache (internal
-    issue 192).
-  * Deprecate the concept of device layers and associated commands (internal
-    issue 255).
-  * Remove ename:VK_INCOMPLETE from the list of possible result codes of
-    flink:vkGetPhysicalDeviceSurfaceCapabilitiesKHR (internal issue 314).
-  * Add missing std140/std430 rule: the base alignment of a member following
-    a structure is a multiple of the structure's base alignment (internal
-    issue 321).
-  * Fixes naming of the single elink:VkColorSpaceKHR enum from
-    ename:VK_COLORSPACE_SRGB_NONLINEAR_KHR to
-    ename:VK_COLOR_SPACE_SRGB_NONLINEAR_KHR in XML/header and the
-    VK_KHR_swapchain and VK_KHR_surface extensions to match the style of the
-    typename (space and color are two words, not one) (internal issue 322).
-  * Make it clear that code:LocalInvocationID should only be applied to an
-    input variable and normalize the language describing
-    code:LocalInvocationID to the language for other compute shader
-    variables in the <<interfaces-builtin-variables,Built-in Variables>>
-    section, and add normative language (internal issue 323).
-  * Clarify in the <<fundamentals-returncodes,Return Codes>> section that
-    the result pointer may be modified for specific commands, even if a
-    runtime error is returned (internal issue 324).
-
------------------------------------------------------
-
-Change log for April 29, 2016 Vulkan 1.0.12 spec update:
-
-  * Bump API patch number and header version number to 12 for this
-    update.
-
-Github Issues:
-
-  * Change valid usage statements intended to be "sub-points" to
-    be actual sub-points (public issue 66).
-  * Replace double negation in description of
-    slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
-    merge 142).
-  * Cleanup minor typos in spec, ref pages and XML, including those
-    proposed in public pull requests 144, 150, 151, 167, 168, 181, and
-    186.
-  * Use *strict subset* in describing the partial order of memory
-    property types for slink:VkMemoryType, and update the style guide
-    accordingly (public issue 190).
-  * Fix various "a image" -> "an image" typos (public issue 191).
-  * Note in the <<fundamentals-validusage,Valid Usage>> and
-    <<extensions-interactions,Extension Interactions>> sections that
-    structures defined by extensions which may be passed in structure
-    chains using the ptext:pNext member must include initial
-    ptext:sType and ptext:pNext members (public issue 192).
-
-Internal Issues:
-
-  * Remove duplicate language from the description of the pname:fence
-    parameter to flink:vkQueueSubmit and improve validity language
-    (internal issue 91).
-  * Added documentation for "optional" attribute to XML readme.tex/pdf
-    (internal issue 149).
-  * Clarify the host-side data validity rules and behavior of
-    flink:vkFlushMappedMemoryRanges and
-    flink:vkInvalidateMappedMemoryRanges (internal issue 266).
-
-Other Commits:
-
-  * Added clarification to flink:vkCmdFillBuffer regarding the use of
-    ename:VK_WHOLE_SIZE.
-  * Fixed and documented implementation of "validextensionstructs"
-    attribute. in XML processing scripts and readme.tex/pdf.
-  * Add missing validity statements to flink:vkResetEvent and
-    flink:vkCmdResetEvent.
-  * Fix validity for the
-    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
-    Correct all the draw/dispatch commands to mention optimally tiled
-    images as well as linear tiled images, and say image VIEWS instead
-    of images. Add validity statement to flink:vkCmdBlitImage
-  * Replace the {apiname} macro with hardcoded "Vulkan", now that we have
-    committed to that name.
-  * Add the VK_AMD_rasterization_order extension to vk.xml.
-
------------------------------------------------------
-
-Change log for April 22, 2016 Vulkan 1.0.11 spec update:
-
-  * Bump API patch number and header version number to 11 for this
-    update.
-
-Github Issues:
-
-  * Clarify the WSI extension language by switching from the fuzzier
-    "ownership" language to more-consistent "acquire" language (public
-    issue 117).
-  * Clarify that memory barriers apply to all commands in the dependency
-    chains in the flink:vkGetRenderAreaGranularity command and the
-    <<synchronization-execution-and-memory-dependencies,Execution And
-    Memory Dependencies>> section (public issue 132).
-  * Clarify that a queue family is a set of queues in the
-    <<fundamentals-execmodel,Execution Model>> section (public issue
-    166).
-  * Removed requirement from valid usage language that
-    VkPresentInfoKHR::waitSemaphoreCount must be greater than 0 (public
-    issue 171).
-  * Fix broken internal links, describe structures consistently, use
-    consistent style for SPIR-V codewords, and tag normative terms that
-    were missing asciidoc tags (public issue 183 and ancillary
-    markup/normative language fixes).
-  * Fix typos for slink:VkPhysicalDeviceLimits member names in
-    slink:VkImageCreateInfo validity language (public issue 184).
-
-Internal Issues:
-
-  * Document that the requested patch version number specified as part
-    of slink:VkApplicationInfo::pname:apiVersion is ignored when
-    creating an instance (internal issue 176).
-  * Clarify handling of extension structs in the
-    <<fundamentals-validusageValid Usage>> section (internal issue 254).
-  * Update required slink:VkImageFormatProperties::pname:maxMipLevels to
-    be limited to the maximum allowed mipmap pyramid size corresponding
-    to the actual maximum supported size for the format (internal issue
-    256).
-  * Modify the <<features-extentperimagetype,Allowed Extent Values Based
-    On Image Type>> section so the allowed maximum extent is the maximum
-    image dimension supported for each dimension of the type of texture
-    being queried (internal issue 257).
-  * Clarify in the <<spirvenv-module-validation,Validation Rules within
-    a Module>> section that at least one of the code:LocalSize execution
-    mode or code:WorkgroupSize decoration is required for each compute
-    shader entry point in a shader module (internal issue 279).
-  * Add validity rules for formats in flink:vkCmdClearColorImage and
-    flink:vkCmdClearDepthStencilImage (internal issue 283).
-  * Clarify that slink:VkImageFormatProperties::pname:maxResourceSize is
-    an upper bound, and that it may not be possible to create an image
-    anywhere near that size (internal issue 284).
-
-Other Commits:
-
-  * Fix various minor markup errors reported by validation scripts.
-  * Change copyright from Khronos Free Use License to Apache 2.0 license
-    on relevant script/XML/header files. This does not affect the
-    specification source copyright.
-
------------------------------------------------------
-
-Change log for April 15, 2016 Vulkan 1.0.10 spec update:
-
-  * Bump API patch number and header version number to 10 for this
-    update.
-
-Github Issues:
-
-  * Slightly tweak the <<memory-allocation,Host Memory>> allocator language
-    so that an application wrapping the standard C alloc/free/realloc
-    functions is still correct - the previous language was too strong with
-    regards to freeing memory. Also made certain scenarios clearer - an
-    implementation may now continue without error if an allocation failed
-    and it is able to continue correctly (public issue 21).
-  * Require that etext:VK_*_CREATE_SPARSE_BINDING_BIT is set when the
-    corresponding etext:VK_*_CREATE_SPARSE_RESIDENCY_BIT is used, in the
-    <<sparsememory-miptail,Mip Tail Regions>> section and related commands
-    flink:vkCreateBuffer and flink:vkCreateImage (public issue 84).
-  * Update the <<features,Features, Limits, and Formats>> chapter to clarify
-    interactions between optional features and dynamic state for the
-    pname:depthBiasClamp and pname:wideLines features (public issue 89).
-  * Describe the code:WorkgroupSize builtin in the
-    <<interfaces-builtin-variables,Built-In Variables>> section, and update
-    the <<compute-shaders,Compute Shaders>> section to further clarify how
-    to set the number of workgroups to execute in a compute shader (public
-    issue 145).
-  * Use the term *image subresource* everywhere instead of *subresource*,
-    except for the special case of *host-accessible subresource*, which may
-    be either an image subresource or buffer range (public issue 120)
-  * Add a note to the <<features,Features, Limits, and Formats>> section
-    about extensibility of structures (Public issue 165).
-  * Fix return code flink:vkAcquireNextImageKHR when the timeout parameter
-    is 0 to ename:VK_NOT_READY instead of ename:VK_TIMEOUT (public issue
-    170).
-  * Fix typo in slink:VkLayerProperties::pname:apiVersion field (public
-    issue 172).
-
-Internal Issues:
-
-  * Fix a few minor internally-detected typos.
-  * Minor formatting tweaks to pseudocode in the <<resources,Resource
-    Creation>> chapter (internal issue 179).
-  * Fix typo in the definition of point sampling for
-    elink:VkCullModeFlagBits (internal issue 268).
-
------------------------------------------------------
-
-Change log for April 8, 2016 Vulkan 1.0.9 spec update:
-
-  * Bump API patch number and header version number to 9 for this
-    update.
-
-Github Issues:
-
-  * Fix memory type preorder definition and clarify example list and source
-    code for slink:VkMemoryRequirements and slink:VkMemoryHeap (public issue
-    26).
-  * Ensure slink:VkAllocationCallbacks are properly defined (public issue
-    73).
-  * Clarify the WSI extension language by switching from the fuzzier
-    "ownership" language to more-consistent "acquire" language (public issue
-    117).
-  * Add language allowing allocation and freeing of memory scoped to the
-    duration of any API command in the <<memory-allocation,Memory
-    Allocation>> section (public issue 136).
-  * Clarify the explicit location assignment always overrides the inherited
-    location in the <<interfaces-iointerfaces-locations,Location
-    Assignment>> section, even for the first member of a block (public issue
-    141).
-  * Fixed references to
-    slink:VkCommandBufferInheritanceInfo::pname:pipelineStatistics (public
-    issue 158).
-  * Fix name of slink:VkBufferCopy::pname:size field in validity language
-    for flink:vkCmdCopyBuffer (public issue 162).
-
-Internal Issues:
-
-  * Update GL_KHR_vulkan_glsl specification to clarify disallowance of
-    spec-const arrays in initializers (internal issue 248).
-  * Clarify <<interfaces-iointerfaces-matching,Interface Matching>> section
-    to state that user-defined variable interface must match too (internal
-    issue 250).
-
------------------------------------------------------
-
-Change log for April 1, 2016 Vulkan 1.0.8 spec update:
-
-  * Bump API patch number and header version number to 8 for this
-    update.
-
-Github Issues:
-
-  * Specify in the validity language for flink:vkBeginCommandBuffer that
-    pname:commandBuffer must not currently be pending execution (public
-    issue 96).
-  * Describe depth comparison using the correct temporary variable names
-    in the <<textures-depth-compare-operation,Depth Compare Operation>>
-    section (public issue 100).
-  * Clarify the order of descriptor update operations in the
-    flink:vkUpdateDescriptorSets command (public issue 115).
-  * Specify in the VK_KHR_swapchain extension that
-    flink:vkAcquireNextImageKHR's pname:semaphore and pname:fence
-    parameters cannot both be sname:VK_NULL_HANDLE (partly addresses,
-    but does not fully close, public issue 117 / internal issue 246).
-  * Change reference to the "lifetime" of a Vulkan command to
-    "duration", and define the "duration" term (public issue 135).
-  * Added valid usage language for slink:VkImageLayout to require both
-    pname:height and pname:depth to be 1 for 1D images and pname:depth
-    to be 1 for 2D images (public issue 137).
-  * Fix SPIR-V example code in the
-    <<descriptorsets-inputattachment,Input Attachment>> section to
-    properly decorate the code:InputAttachmentIndex (public issue 139).
-  * Fix reference to nonexistent pname:imageInfo in the description of
-    flink:VkWriteDescriptorSet to refer to pname:pImageInfo (public
-    issue 140).
-
-Internal Issues:
-
-  * Link to the fixed-function vertex chapter from the drawing chapter
-    (internal issue 110)
-  * Fix typo in slink:VkImageCreateInfo validity language:
-    ptext:maxExtent.sampleCounts -> pname:sampleCounts (internal issue
-    249).
-  * Explain why the non-core token etext:VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
-    is used in the example in the
-    <<synchronization-semaphores,Semaphores>> section (internal issue
-    251).
-  * Attempt to clarify in the VK_KHR_android_surface extension's
-    <<platformQuerySupport_android,Android Platform Support>> section
-    that there is no Android-specific WSI query, and why (internal issue
-    252).
-
-Other Commits:
-
-  * Add missing language about ename:VK_INCOMPLETE being returned from
-    array queries when the passed array is too short, in the
-    VK_KHR_display, VK_KHR_swapchain, and VK_KHR_surface extensions.
-
------------------------------------------------------
-
-Change log for March 25, 2016 Vulkan 1.0.7 spec update:
-
-  * Bump API patch number and header version number to 7 for this
-    update.
-
-Github Issues:
-
-  * Fix slink:VkSpecializationMapEntry example to avoid C/C++ strict
-    aliasing issues (public issue 14).
-  * Clarify the meaning of "matching" in flink:vkCmdBindDescriptorSets
-    validity language (public issue 33).
-  * Add stub reference pages so xrefs to not-yet-written pages do not
-    generate 404 errors. However, the actual content of these pages
-    still needs to be filled in as time allows (public issue 44, but
-    does not close that issue out).
-  * Remove incorrect validity statement for
-    flink:vkGetImageSparseMemoryRequirements (public issue 85).
-  * Reword the
-    <<features-limits-bufferImageGranularity,bufferImageGranularity>>
-    feature in terms of "aliasing", and clarify that it applies to
-    bindings in the same memory object (public issue 90).
-  * Clarify the relationship of the slink:VkPhysicalDeviceLimits
-    pname:maxViewportDimensions and pname:viewportBoundsRange limits
-    (public issue 92).
-  * Specify sparse unbound texture replacement in the
-    <<textures-texel-replacement,Texel Replacement>> section
-    independently of robust buffer access language (public issue 100).
-  * Add the <<fundamentals-architecture-model,Architecture Model>>
-    section to explain architecture constraints Vulkan has chosen to
-    accept in order to enable portable and performant code (public issue
-    122).
-  * State that an object must not be destroyed until *all* (not *any*)
-    uses of that object have completed (public issue 123).
-  * Minor editorial cleanup (public issues 129, 134, 146, 148).
-  * Add validity language for layer and extension names to
-    slink:VkDeviceCreateInfo matching that used for
-    slink:VkInstanceCreateInfo (public issue 130).
-  * Clean up terminology for the case when the bits set in one bitmask
-    are a subset of the bits set in another bitmask (public issue 138).
-  * Document that input attachments are UniformConstant not Input, in
-    the <<interfaces-inputattachment,Fragment Input Attachment
-    Interface>> section (public glslang bug 169).
-
-Internal Issues:
-
-  * Add max enum values to "flag bits" enums (internal issue 136).
-  * Clarify language around the various uses of the term "block" in the
-    <<appendix-compressedtex-bc,Block Compressed Image Formats>> section
-    (internal issue 202).
-  * Removed "expand" dependency from <enums> groups in vk.xml and added
-    auto-generation code in the scripts to infer it instead, to ensure
-    consistency. This caused renaming of sname:VkColorSpaceKHR and
-    sname:VkPresentModeKHR etext:BEGIN_RANGE (etc.) tokens, but those
-    tokens are metadata, not part of the API, and the Vulkan WG is OK
-    with this change. This change adds ranges to two additional enums
-    that were missing them due to not defining the "expand" attribute
-    (internal issue 217).
-  * Tweak makefile to generate ref page nroff (.3) files in the right
-    output directory, working around an a2x limitation (internal issue
-    223).
-
-Other Commits:
-
-  * Add validity requirements for flink:vkCmdCopyQueryPoolResults
-    pname:dstBuffer parameter.
-  * Fix ref page build to generate .3 targets in the right output
-    directory.
-
------------------------------------------------------
-
-Change log for March 10, 2016 Vulkan 1.0.6 spec update:
-
-  * Bump API patch number and header version number to 6 for this
-    update.
-
-Github Issues:
-
-  * Define 'invocation group' for compute and graphics shaders. Cleanup
-    definition and use of 'workgroup', and add glossary entries (public
-    issue 1).
-  * Various minor editorial fixes (public issue 33).
-  * Clarify locations for block members in the
-    <<interfaces-iointerfaces-locations,Location Assignment>>
-    section (public issue 45).
-  * Editorial fixes for <<commandbuffer-allocation,Command Buffer
-    Allocation>> section (public issues 54, 59).
-  * Clarify behavior of depth test in the <<fragops-depth,Depth Test>>
-    section (public issues 80, 81).
-  * Remove discussion of return codes from
-    flink:vkGetPhysicalDeviceSparseImageFormatProperties and
-    flink:vkGetImageSparseMemoryRequirements, which do not return values
-    (public issue 82).
-  * Allow flink:vkCmdDrawIndirect and flink:vkCmdDrawIndexedIndirect
-    pname:drawCount of 0, as well as 1, when the multiDrawIndirect
-    feature is not supported (public issue 88).
-  * Remove confusing wording in the <<features-limits,Limits>>
-    section describing the slink:VkPhysicalDeviceLimits
-    pname:minTexelBufferOffsetAlignment,
-    pname:minUniformBufferOffsetAlignment, and
-    pname:minStorageBufferOffsetAlignment members as both minimums and
-    maximums (public issue 91).
-  * Clarified that only the RGB components should be affected in places
-    where sRGB is referred to in the spec, such as ASTC formats. Minor
-    re-wording to avoid "color space" when actively incorrect, now that
-    we refer to the Data Format Spec which actually makes a distinction
-    between color space and transfer function (public issue 94).
-  * Treat pname:pPropertyCount == 0 consistently in
-    flink:vkEnumerateInstanceLayerProperties and
-    flink:vkEnumerateDeviceLayerProperties (public issue 99)
-  * Cleanup minor editorial issues in chapters 14-17 (public issue 100).
-  * Clarify definition of flink:vkEnumerateInstanceExtensionProperties
-    and flink:vkEnumerateDeviceExtensionProperties (public issue 101).
-  * Define the flink:vkEnumerateInstanceExtensionProperties and
-    flink:vkEnumerateDeviceExtensionProperties pname:pLayerName
-    parameter to be a pointer to a null-terminated UTF-8 string (public
-    issue 101).
-  * Rearrange "Missing information" references in mandatory format
-    tables (public issue 101).
-  * Clarify that the enumerated extensions returned by
-    flink:vkEnumerateInstanceExtensionProperties and
-    flink:vkEnumerateDeviceExtensionProperties will only include
-    extensions provided by the platform or extensions implemented in
-    implicitly enabled layers (public issue 101).
-  * Miscellaneous editorial fixes. Include the Vulkan spec patch number
-    in the PDF title. Fix label on <<fig-non-strict-lines,Non
-    strict lines>> diagram. Use more easily distinguished symbols in
-    tables in the <<features-required-format-support,Required
-    Format Support>> section. Do not require FQDNs used as layer names be
-    encoded in lower case if not possible, in the
-    <<extensions-naming-conventions, Extension and Layer Naming
-    Conventions>> section (public issues 101, 119, 121).
-
-Internal Issues:
-
-  * Fixed excessive spacing in tables in XHTML (internal issue 18).
-  * Clarify that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
-    applies to secondary command buffers. Previously spec only referred
-    to the members of pname:pCommandBuffers being affected by this bit.
-    Added a separate slink:VkSubmitInfo Valid Usage restriction
-    specifying that ename:VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
-    also applies to any secondary command buffers that are recorded into
-    the primary command buffers in pname:pCommandBuffers (internal issue
-    106).
-  * Clarify that slink:VkDeviceCreateInfo::pname:pEnabledFeatures can be
-    NULL (internal issue 117).
-  * Remove "the value of" where it is redundant (e.g. speaking of an API
-    parameter, struct member, or SPIR-V variable, but not when speaking
-    of color components) (internal issue 175).
-  * Forced patch version to always be 0 in the header. Add a
-    "VK_API_VERSION_<major>_<minor>" macro for people to use to do the
-    right thing. Add a VK_HEADER_VERSION which captures the header
-    release number independent of the spec patch number (internal issue
-    176).
-  * Correct description of
-    slink:VkPipelineShaderStageCreateInfo::pname:pName to "a pointer to
-    a null-terminated UTF-8 string" (internal issue 197).
-
-Other Commits:
-
-  * Updated DataFormat spec reference to the new date for revision 5 of
-    that spec.
-  * Fixed KEEP option (to retain LaTeX intermediate files) in the
-    Makefile to be included when edited there, as well as set on the
-    command line.
-  * Reserve and add "VK_IMG_filter_cubic" to the registry, and implement
-    script functionality to add and remove validity from existing
-    functions. Includes schema and readme changes.
-  * Update GL_KHR_vulkan_glsl so push_constants do not have descriptor
-    sets.
-
------------------------------------------------------
-
-Change log for March 4, 2016 Vulkan 1.0.5 spec update:
-
-  * Bump API patch number to 5 for this update.
-
-Github Issues:
-
-  * Correctly describe slink:VkPhysicalDeviceProperties pname:deviceName
-    member as a string, not a pointer to a string. Also one typo fix for
-    "hetereogeneous" (public issue 4).
-  * Replace maynot: macro with may: not, and "may: or maynot:" with
-    "may:" (public issue 4).
-  * Clarify that redundantly setting the state of a fence or event has
-    no effect (public issue 4).
-  * Minor fixes to ref pages to track descriptions of memory bits that
-    changed in the core spec. Fix name of a member in the description of
-    sname:sname:VkPipelineMultisampleStateCreateInfo (public issues 8,
-    13).
-  * Remove redundant validity statement for
-    sname:VkGraphicsPipelineCreateInfo::pname:stageCount (public issue
-    14).
-  * Fix typos in chapters 7-9 (public issue 14).
-  * Clarify the example demonstrating the behavior of
-    code:OpMemoryBarrier in the
-    <<shaders-execution-memory-ordering,shader memory acces
-    ordering>> section (public issue 16).
-  * Specify that freeing mapped memory implicitly unmaps the memory in
-    the description of flink:vkFreeMemory (public issue 17).
-  * Forbid allocation callbacks from calling into the API in the
-    <<memory-allocation,memory allocation>> section (public issue
-    20).
-  * Add missing validity rules about size being greater than 0 and
-    offset being less than size of object. Fix
-    flink:VkMappedMemoryRange's misinterpretation of offset (public
-    issues 27, 31).
-  * Add validity rule disallowing overlapping source/destination
-    descriptors in flink:VkCopyDescriptorSet (public issue 32).
-  * Clarify that array and matrix stride has to be a multiple of the
-    base alignment of the array or matrix in the
-    <<interfaces-resources-layout,Offset and Stride Assignment>>
-    section (public issue 38).
-  * Correct parenthesis floor nesting error in equation for
-    <<textures-RGB-sexp,RGB to shared exponent conversion>>.
-    Clarify case of when exp' is forced to 0, avoiding log2(0) undefined
-    problem (public issue 40).
-  * Remove redundant statement from the code:FragDepth description in
-    the <<interfaces-builtin-variables,Built-In Variables>>
-    section (public issue 47).
-  * Define the clamping of the
-    <<textures-level-of-detail-operation,bias added to the scale
-    factor>> by linking to the slink:VkPhysicalDevice feature
-    pname:maxSamplerLodBias (public issue 64).
-  * Fix typo "optimal linear resources" and clarify the set of resources
-    <<features-limits-bufferImageGranularity,the
-    pname:bufferImageGranularity resource>> applies to (public issue
-    67).
-  * Replace 'descriptor accessed by a pipeline' language for
-    sname:VkDescriptorSetAllocateInfo with more precise phrasing about
-    binding a descriptor set before a command that invokes work using
-    that set (public issue 69).
-  * tstripadj.svg contained an Inkscape tag which caused Firefox and IE
-    11 to fail to render it, and was illegal SVG. Generating Plain SVG
-    from the Inkscape SVG source fixes this (public issue 70).
-  * Fix validity for sname:VkVertexInputBindingDescription and
-    sname:VkVertexInputAttributeDescription numbers (public issue 72).
-
-Internal Issues:
-
-  * Clarify the meaning of
-    ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT in
-    elink:VkFormatFeatureFlagBits with respect to depth compare
-    (internal issue 107).
-  * Added a note explaining that ename:VK_QUEUE_TRANSFER_BIT may or may
-    not be reported for a queue family that already supports
-    ename:VK_QUEUE_GRAPHICS_BIT or ename:VK_QUEUE_COMPUTE_BIT as the
-    former is a strict subset of the latter ones (internal issue 116).
-  * Add validity language for sname:VkDescriptorSetAllocateInfo about
-    exceeding the descriptor pool capacity (internal issue 140).
-  * Add ename:VK_INCOMPLETE success code for
-    flink:vkEnumeratePhysicalDevices query (internal issue 163).
-
-Other Commits:
-
-  * Add the VK_NV_glsl_shader extension definitions to the API.
-  * Update GL_KHR_vulkan_glsl with 1) origin_upper_left as default 2)
-    specialization array constant semantics.
-  * Corrected/updated Data Format Specification date.
-
------------------------------------------------------
-
-Change log for February 25, 2015 Vulkan 1.0.4 spec update:
-
-  * Bump API patch number from 3 to 4 for the first public update to the
-    spec. Add patch number to the spec title (this will be done
-    automatically from XML, later).
-  * Fixes for numerous editorial issues. Regularize descriptions of
-    variable-length array queries. Properly tag enumerants so they come
-    out in the right font (many were mislabeled in usage tags in vk.xml,
-    or not tagged). Spelling and markup corrections (public issue 4).
-  * Fix typos and clearly separate description of different types of
-    memory areas (public issue 5).
-  * Use standards-compliant preprocessor guard symbols on headers
-    (public issue 7).
-  * Note that Github users cannot currently set labels on issues, and
-    recommend a fallback approach (public issue 15).
-  * Use latexmath prefix on len= attributes (public issue 29).
-  * Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
-    issue 65).
-  * Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
-    optional feature not introducing new commands or enums (internal
-    issue 104).
-  * Cleanup invariance language inherited from the GL specification to
-    not refer to nonexistent (GL-specific) state (internal issue 111).
-  * Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
-    not be the "base offset within the index buffer" but rather the
-    "value added to the vertex index before indexing into the vertex
-    buffer" (internal issue 118).
-  * Fix drawing chapter in the "Programmable Primitive Shading" section
-    where it described categories of drawing commands. It referenced
-    flink:vkCmdDrawIndexed twice. Replace the second reference with
-    flink:vkCmdDrawIndexedIndirect (internal issue 119).
-  * Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
-    Resources>> sparse memory example (internal issue 122).
-  * Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
-    VK_KHR_display extension (internal issue 125)
-  * Add missing optional="false,true" to
-    flink:vkGetImageSparseMemoryRequirements
-    pname:pSparseMemoryRequirementCount parameter (internal issue 132)
-  * Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
-    ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
-    (internal issue 133)
-  * Fix a handful of broken cross-references in the
-    <<samplers,Samplers>> chapter (internal issue 134).
-  * Fix "Input Attachement" GLSL example to use correct syntax (internal
-    issue 135).
-  * Update XML schema and documentation to accommodate recently added
-    attributes for validity. Add some introductory material describing
-    design choices and pointing to the public repository to file issues.
-  * Put include of validity in the core spec extensions chapter on its
-    own line, so that asciidoc is happy.
-  * Fix vertexOffset language to specify that it is the value added to
-    the vertex index before indexing into the vertex buffer, not the
-    base offset within the index buffer.
-  * Fix error in the description of flink:vkCmdNextSubpass.
-
------------------------------------------------------
-
-February 16, 2016 - Vulkan 1.0 initial public release
-
diff --git a/codegen/vulkan/LICENSE.adoc b/codegen/vulkan/LICENSE.adoc
deleted file mode 100644
index cb7c404..0000000
--- a/codegen/vulkan/LICENSE.adoc
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2020-2021 The Khronos Group Inc.
-// SPDX-License-Identifier: CC-BY-4.0
-
-= LICENSE file for the KhronosGroup/Vulkan-Docs project
-
-Files in this repository fall under one of these licenses:
-
-  * SPDX license identifier: "`Apache-2.0 OR MIT`"
-  ** Apache License 2.0 OR MIT License
-  ** For scripts and XML which need to be usable in GPL-licensed projects.
-
-  * SPDX license identifier: "`Apache-2.0`"
-  ** Apache License 2.0
-  ** For other scripts
-
-  * SPDX license identifier: "`CC-BY-4.0`"
-  ** Creative Commons Attribution 4.0 International
-  ** For specification source documents
-
-  * SPDX license identifier: "`MIT`"
-  ** MIT License
-  ** For files copied from other MIT-licensed projects
-
-  * SPDX license identifier: "`LicenseRef-MPLUS`"
-  ** M+ Font License
-  ** For fonts derived from the M+ Font Project
-  ** This license is open source, but not OSI approved
-
-Full license text of these licenses is available at:
-
-  * Apache-2.0: https://opensource.org/licenses/Apache-2.0
-  * MIT: https://opensource.org/licenses/MIT
-  * CC-BY-4.0: https://creativecommons.org/licenses/by/4.0/legalcode
-  * LicenseRef-MPLUS: https://osdn.net/softwaremap/trove_list.php?form_cat=370
diff --git a/codegen/vulkan/LICENSES/Apache-2.0.txt b/codegen/vulkan/LICENSES/Apache-2.0.txt
deleted file mode 100644
index 4ed90b9..0000000
--- a/codegen/vulkan/LICENSES/Apache-2.0.txt
+++ /dev/null
@@ -1,208 +0,0 @@
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION,
-AND DISTRIBUTION
-
-   1. Definitions.
-
-      
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution
-as defined by Sections 1 through 9 of this document.
-
-      
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright
-owner that is granting the License.
-
-      
-
-"Legal Entity" shall mean the union of the acting entity and all other entities
-that control, are controlled by, or are under common control with that entity.
-For the purposes of this definition, "control" means (i) the power, direct
-or indirect, to cause the direction or management of such entity, whether
-by contract or otherwise, or (ii) ownership of fifty percent (50%) or more
-of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-      
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions
-granted by this License.
-
-      
-
-"Source" form shall mean the preferred form for making modifications, including
-but not limited to software source code, documentation source, and configuration
-files.
-
-      
-
-"Object" form shall mean any form resulting from mechanical transformation
-or translation of a Source form, including but not limited to compiled object
-code, generated documentation, and conversions to other media types.
-
-      
-
-"Work" shall mean the work of authorship, whether in Source or Object form,
-made available under the License, as indicated by a copyright notice that
-is included in or attached to the work (an example is provided in the Appendix
-below).
-
-      
-
-"Derivative Works" shall mean any work, whether in Source or Object form,
-that is based on (or derived from) the Work and for which the editorial revisions,
-annotations, elaborations, or other modifications represent, as a whole, an
-original work of authorship. For the purposes of this License, Derivative
-Works shall not include works that remain separable from, or merely link (or
-bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-      
-
-"Contribution" shall mean any work of authorship, including the original version
-of the Work and any modifications or additions to that Work or Derivative
-Works thereof, that is intentionally submitted to Licensor for inclusion in
-the Work by the copyright owner or by an individual or Legal Entity authorized
-to submit on behalf of the copyright owner. For the purposes of this definition,
-"submitted" means any form of electronic, verbal, or written communication
-sent to the Licensor or its representatives, including but not limited to
-communication on electronic mailing lists, source code control systems, and
-issue tracking systems that are managed by, or on behalf of, the Licensor
-for the purpose of discussing and improving the Work, but excluding communication
-that is conspicuously marked or otherwise designated in writing by the copyright
-owner as "Not a Contribution."
-
-      
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
-of whom a Contribution has been received by Licensor and subsequently incorporated
-within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this
-License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
-no-charge, royalty-free, irrevocable copyright license to reproduce, prepare
-Derivative Works of, publicly display, publicly perform, sublicense, and distribute
-the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License,
-each Contributor hereby grants to You a perpetual, worldwide, non-exclusive,
-no-charge, royalty-free, irrevocable (except as stated in this section) patent
-license to make, have made, use, offer to sell, sell, import, and otherwise
-transfer the Work, where such license applies only to those patent claims
-licensable by such Contributor that are necessarily infringed by their Contribution(s)
-alone or by combination of their Contribution(s) with the Work to which such
-Contribution(s) was submitted. If You institute patent litigation against
-any entity (including a cross-claim or counterclaim in a lawsuit) alleging
-that the Work or a Contribution incorporated within the Work constitutes direct
-or contributory patent infringement, then any patent licenses granted to You
-under this License for that Work shall terminate as of the date such litigation
-is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or
-Derivative Works thereof in any medium, with or without modifications, and
-in Source or Object form, provided that You meet the following conditions:
-
-(a) You must give any other recipients of the Work or Derivative Works a copy
-of this License; and
-
-(b) You must cause any modified files to carry prominent notices stating that
-You changed the files; and
-
-(c) You must retain, in the Source form of any Derivative Works that You distribute,
-all copyright, patent, trademark, and attribution notices from the Source
-form of the Work, excluding those notices that do not pertain to any part
-of the Derivative Works; and
-
-(d) If the Work includes a "NOTICE" text file as part of its distribution,
-then any Derivative Works that You distribute must include a readable copy
-of the attribution notices contained within such NOTICE file, excluding those
-notices that do not pertain to any part of the Derivative Works, in at least
-one of the following places: within a NOTICE text file distributed as part
-of the Derivative Works; within the Source form or documentation, if provided
-along with the Derivative Works; or, within a display generated by the Derivative
-Works, if and wherever such third-party notices normally appear. The contents
-of the NOTICE file are for informational purposes only and do not modify the
-License. You may add Your own attribution notices within Derivative Works
-that You distribute, alongside or as an addendum to the NOTICE text from the
-Work, provided that such additional attribution notices cannot be construed
-as modifying the License.
-
-You may add Your own copyright statement to Your modifications and may provide
-additional or different license terms and conditions for use, reproduction,
-or distribution of Your modifications, or for any such Derivative Works as
-a whole, provided Your use, reproduction, and distribution of the Work otherwise
-complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any
-Contribution intentionally submitted for inclusion in the Work by You to the
-Licensor shall be under the terms and conditions of this License, without
-any additional terms or conditions. Notwithstanding the above, nothing herein
-shall supersede or modify the terms of any separate license agreement you
-may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names,
-trademarks, service marks, or product names of the Licensor, except as required
-for reasonable and customary use in describing the origin of the Work and
-reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to
-in writing, Licensor provides the Work (and each Contributor provides its
-Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied, including, without limitation, any warranties
-or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR
-A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness
-of using or redistributing the Work and assume any risks associated with Your
-exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether
-in tort (including negligence), contract, or otherwise, unless required by
-applicable law (such as deliberate and grossly negligent acts) or agreed to
-in writing, shall any Contributor be liable to You for damages, including
-any direct, indirect, special, incidental, or consequential damages of any
-character arising as a result of this License or out of the use or inability
-to use the Work (including but not limited to damages for loss of goodwill,
-work stoppage, computer failure or malfunction, or any and all other commercial
-damages or losses), even if such Contributor has been advised of the possibility
-of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work
-or Derivative Works thereof, You may choose to offer, and charge a fee for,
-acceptance of support, warranty, indemnity, or other liability obligations
-and/or rights consistent with this License. However, in accepting such obligations,
-You may act only on Your own behalf and on Your sole responsibility, not on
-behalf of any other Contributor, and only if You agree to indemnify, defend,
-and hold each Contributor harmless for any liability incurred by, or claims
-asserted against, such Contributor by reason of your accepting any such warranty
-or additional liability. END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
-To apply the Apache License to your work, attach the following boilerplate
-notice, with the fields enclosed by brackets "[]" replaced with your own identifying
-information. (Don't include the brackets!) The text should be enclosed in
-the appropriate comment syntax for the file format. We also recommend that
-a file or class name and description of purpose be included on the same "printed
-page" as the copyright notice for easier identification within third-party
-archives.
-
-Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-
-you may not use this file except in compliance with the License.
-
-You may obtain a copy of the License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-
-distributed under the License is distributed on an "AS IS" BASIS,
-
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-
-See the License for the specific language governing permissions and
-
-limitations under the License.
diff --git a/codegen/vulkan/LICENSES/CC-BY-4.0.txt b/codegen/vulkan/LICENSES/CC-BY-4.0.txt
deleted file mode 100644
index 3f92dfc..0000000
--- a/codegen/vulkan/LICENSES/CC-BY-4.0.txt
+++ /dev/null
@@ -1,324 +0,0 @@
-Creative Commons Attribution 4.0 International Creative Commons Corporation
-("Creative Commons") is not a law firm and does not provide legal services
-or legal advice. Distribution of Creative Commons public licenses does not
-create a lawyer-client or other relationship. Creative Commons makes its licenses
-and related information available on an "as-is" basis. Creative Commons gives
-no warranties regarding its licenses, any material licensed under their terms
-and conditions, or any related information. Creative Commons disclaims all
-liability for damages resulting from their use to the fullest extent possible.
-
-Using Creative Commons Public Licenses
-
-Creative Commons public licenses provide a standard set of terms and conditions
-that creators and other rights holders may use to share original works of
-authorship and other material subject to copyright and certain other rights
-specified in the public license below. The following considerations are for
-informational purposes only, are not exhaustive, and do not form part of our
-licenses.
-
-Considerations for licensors: Our public licenses are intended for use by
-those authorized to give the public permission to use material in ways otherwise
-restricted by copyright and certain other rights. Our licenses are irrevocable.
-Licensors should read and understand the terms and conditions of the license
-they choose before applying it. Licensors should also secure all rights necessary
-before applying our licenses so that the public can reuse the material as
-expected. Licensors should clearly mark any material not subject to the license.
-This includes other CC-licensed material, or material used under an exception
-or limitation to copyright. More considerations for licensors : wiki.creativecommons.org/Considerations_for_licensors
-
-Considerations for the public: By using one of our public licenses, a licensor
-grants the public permission to use the licensed material under specified
-terms and conditions. If the licensor's permission is not necessary for any
-reason–for example, because of any applicable exception or limitation to copyright–then
-that use is not regulated by the license. Our licenses grant only permissions
-under copyright and certain other rights that a licensor has authority to
-grant. Use of the licensed material may still be restricted for other reasons,
-including because others have copyright or other rights in the material. A
-licensor may make special requests, such as asking that all changes be marked
-or described. Although not required by our licenses, you are encouraged to
-respect those requests where reasonable. More considerations for the public
-: wiki.creativecommons.org/Considerations_for_licensees Creative Commons Attribution
-4.0 International Public License
-
-By exercising the Licensed Rights (defined below), You accept and agree to
-be bound by the terms and conditions of this Creative Commons Attribution
-4.0 International Public License ("Public License"). To the extent this Public
-License may be interpreted as a contract, You are granted the Licensed Rights
-in consideration of Your acceptance of these terms and conditions, and the
-Licensor grants You such rights in consideration of benefits the Licensor
-receives from making the Licensed Material available under these terms and
-conditions.
-
-Section 1 – Definitions.
-
-a. Adapted Material means material subject to Copyright and Similar Rights
-that is derived from or based upon the Licensed Material and in which the
-Licensed Material is translated, altered, arranged, transformed, or otherwise
-modified in a manner requiring permission under the Copyright and Similar
-Rights held by the Licensor. For purposes of this Public License, where the
-Licensed Material is a musical work, performance, or sound recording, Adapted
-Material is always produced where the Licensed Material is synched in timed
-relation with a moving image.
-
-b. Adapter's License means the license You apply to Your Copyright and Similar
-Rights in Your contributions to Adapted Material in accordance with the terms
-and conditions of this Public License.
-
-c. Copyright and Similar Rights means copyright and/or similar rights closely
-related to copyright including, without limitation, performance, broadcast,
-sound recording, and Sui Generis Database Rights, without regard to how the
-rights are labeled or categorized. For purposes of this Public License, the
-rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
-
-d. Effective Technological Measures means those measures that, in the absence
-of proper authority, may not be circumvented under laws fulfilling obligations
-under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996,
-and/or similar international agreements.
-
-e. Exceptions and Limitations means fair use, fair dealing, and/or any other
-exception or limitation to Copyright and Similar Rights that applies to Your
-use of the Licensed Material.
-
-f. Licensed Material means the artistic or literary work, database, or other
-material to which the Licensor applied this Public License.
-
-g. Licensed Rights means the rights granted to You subject to the terms and
-conditions of this Public License, which are limited to all Copyright and
-Similar Rights that apply to Your use of the Licensed Material and that the
-Licensor has authority to license.
-
-h. Licensor means the individual(s) or entity(ies) granting rights under this
-Public License.
-
-i. Share means to provide material to the public by any means or process that
-requires permission under the Licensed Rights, such as reproduction, public
-display, public performance, distribution, dissemination, communication, or
-importation, and to make material available to the public including in ways
-that members of the public may access the material from a place and at a time
-individually chosen by them.
-
-j. Sui Generis Database Rights means rights other than copyright resulting
-from Directive 96/9/EC of the European Parliament and of the Council of 11
-March 1996 on the legal protection of databases, as amended and/or succeeded,
-as well as other essentially equivalent rights anywhere in the world.
-
-k. You means the individual or entity exercising the Licensed Rights under
-this Public License. Your has a corresponding meaning.
-
-Section 2 – Scope.
-
-   a. License grant.
-
-1. Subject to the terms and conditions of this Public License, the Licensor
-hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive,
-irrevocable license to exercise the Licensed Rights in the Licensed Material
-to:
-
-         A. reproduce and Share the Licensed Material, in whole or in part; and
-
-         B. produce, reproduce, and Share Adapted Material.
-
-2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions
-and Limitations apply to Your use, this Public License does not apply, and
-You do not need to comply with its terms and conditions.
-
-      3. Term. The term of this Public License is specified in Section 6(a).
-
-4. Media and formats; technical modifications allowed. The Licensor authorizes
-You to exercise the Licensed Rights in all media and formats whether now known
-or hereafter created, and to make technical modifications necessary to do
-so. The Licensor waives and/or agrees not to assert any right or authority
-to forbid You from making technical modifications necessary to exercise the
-Licensed Rights, including technical modifications necessary to circumvent
-Effective Technological Measures. For purposes of this Public License, simply
-making modifications authorized by this Section 2(a)(4) never produces Adapted
-Material.
-
-      5. Downstream recipients.
-
-A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed
-Material automatically receives an offer from the Licensor to exercise the
-Licensed Rights under the terms and conditions of this Public License.
-
-B. No downstream restrictions. You may not offer or impose any additional
-or different terms or conditions on, or apply any Effective Technological
-Measures to, the Licensed Material if doing so restricts exercise of the Licensed
-Rights by any recipient of the Licensed Material.
-
-6. No endorsement. Nothing in this Public License constitutes or may be construed
-as permission to assert or imply that You are, or that Your use of the Licensed
-Material is, connected with, or sponsored, endorsed, or granted official status
-by, the Licensor or others designated to receive attribution as provided in
-Section 3(a)(1)(A)(i).
-
-   b. Other rights.
-
-1. Moral rights, such as the right of integrity, are not licensed under this
-Public License, nor are publicity, privacy, and/or other similar personality
-rights; however, to the extent possible, the Licensor waives and/or agrees
-not to assert any such rights held by the Licensor to the limited extent necessary
-to allow You to exercise the Licensed Rights, but not otherwise.
-
-2. Patent and trademark rights are not licensed under this Public License.
-
-3. To the extent possible, the Licensor waives any right to collect royalties
-from You for the exercise of the Licensed Rights, whether directly or through
-a collecting society under any voluntary or waivable statutory or compulsory
-licensing scheme. In all other cases the Licensor expressly reserves any right
-to collect such royalties.
-
-Section 3 – License Conditions.
-
-Your exercise of the Licensed Rights is expressly made subject to the following
-conditions.
-
-   a. Attribution.
-
-1. If You Share the Licensed Material (including in modified form), You must:
-
-A. retain the following if it is supplied by the Licensor with the Licensed
-Material:
-
-i. identification of the creator(s) of the Licensed Material and any others
-designated to receive attribution, in any reasonable manner requested by the
-Licensor (including by pseudonym if designated);
-
-            ii. a copyright notice;
-
-            iii. a notice that refers to this Public License;
-
-            iv. a notice that refers to the disclaimer of warranties;
-
-v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
-
-B. indicate if You modified the Licensed Material and retain an indication
-of any previous modifications; and
-
-C. indicate the Licensed Material is licensed under this Public License, and
-include the text of, or the URI or hyperlink to, this Public License.
-
-2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner
-based on the medium, means, and context in which You Share the Licensed Material.
-For example, it may be reasonable to satisfy the conditions by providing a
-URI or hyperlink to a resource that includes the required information.
-
-3. If requested by the Licensor, You must remove any of the information required
-by Section 3(a)(1)(A) to the extent reasonably practicable.
-
-4. If You Share Adapted Material You produce, the Adapter's License You apply
-must not prevent recipients of the Adapted Material from complying with this
-Public License.
-
-Section 4 – Sui Generis Database Rights.
-
-Where the Licensed Rights include Sui Generis Database Rights that apply to
-Your use of the Licensed Material:
-
-a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract,
-reuse, reproduce, and Share all or a substantial portion of the contents of
-the database;
-
-b. if You include all or a substantial portion of the database contents in
-a database in which You have Sui Generis Database Rights, then the database
-in which You have Sui Generis Database Rights (but not its individual contents)
-is Adapted Material; and
-
-c. You must comply with the conditions in Section 3(a) if You Share all or
-a substantial portion of the contents of the database.
-
-For the avoidance of doubt, this Section 4 supplements and does not replace
-Your obligations under this Public License where the Licensed Rights include
-other Copyright and Similar Rights.
-
-Section 5 – Disclaimer of Warranties and Limitation of Liability.
-
-a. Unless otherwise separately undertaken by the Licensor, to the extent possible,
-the Licensor offers the Licensed Material as-is and as-available, and makes
-no representations or warranties of any kind concerning the Licensed Material,
-whether express, implied, statutory, or other. This includes, without limitation,
-warranties of title, merchantability, fitness for a particular purpose, non-infringement,
-absence of latent or other defects, accuracy, or the presence or absence of
-errors, whether or not known or discoverable. Where disclaimers of warranties
-are not allowed in full or in part, this disclaimer may not apply to You.
-
-b. To the extent possible, in no event will the Licensor be liable to You
-on any legal theory (including, without limitation, negligence) or otherwise
-for any direct, special, indirect, incidental, consequential, punitive, exemplary,
-or other losses, costs, expenses, or damages arising out of this Public License
-or use of the Licensed Material, even if the Licensor has been advised of
-the possibility of such losses, costs, expenses, or damages. Where a limitation
-of liability is not allowed in full or in part, this limitation may not apply
-to You.
-
-c. The disclaimer of warranties and limitation of liability provided above
-shall be interpreted in a manner that, to the extent possible, most closely
-approximates an absolute disclaimer and waiver of all liability.
-
-Section 6 – Term and Termination.
-
-a. This Public License applies for the term of the Copyright and Similar Rights
-licensed here. However, if You fail to comply with this Public License, then
-Your rights under this Public License terminate automatically.
-
-b. Where Your right to use the Licensed Material has terminated under Section
-6(a), it reinstates:
-
-1. automatically as of the date the violation is cured, provided it is cured
-within 30 days of Your discovery of the violation; or
-
-      2. upon express reinstatement by the Licensor.
-
-c. For the avoidance of doubt, this Section 6(b) does not affect any right
-the Licensor may have to seek remedies for Your violations of this Public
-License.
-
-d. For the avoidance of doubt, the Licensor may also offer the Licensed Material
-under separate terms or conditions or stop distributing the Licensed Material
-at any time; however, doing so will not terminate this Public License.
-
-   e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
-
-Section 7 – Other Terms and Conditions.
-
-a. The Licensor shall not be bound by any additional or different terms or
-conditions communicated by You unless expressly agreed.
-
-b. Any arrangements, understandings, or agreements regarding the Licensed
-Material not stated herein are separate from and independent of the terms
-and conditions of this Public License.
-
-Section 8 – Interpretation.
-
-a. For the avoidance of doubt, this Public License does not, and shall not
-be interpreted to, reduce, limit, restrict, or impose conditions on any use
-of the Licensed Material that could lawfully be made without permission under
-this Public License.
-
-b. To the extent possible, if any provision of this Public License is deemed
-unenforceable, it shall be automatically reformed to the minimum extent necessary
-to make it enforceable. If the provision cannot be reformed, it shall be severed
-from this Public License without affecting the enforceability of the remaining
-terms and conditions.
-
-c. No term or condition of this Public License will be waived and no failure
-to comply consented to unless expressly agreed to by the Licensor.
-
-d. Nothing in this Public License constitutes or may be interpreted as a limitation
-upon, or waiver of, any privileges and immunities that apply to the Licensor
-or You, including from the legal processes of any jurisdiction or authority.
-
-Creative Commons is not a party to its public licenses. Notwithstanding, Creative
-Commons may elect to apply one of its public licenses to material it publishes
-and in those instances will be considered the "Licensor." The text of the
-Creative Commons public licenses is dedicated to the public domain under the
-CC0 Public Domain Dedication. Except for the limited purpose of indicating
-that material is shared under a Creative Commons public license or as otherwise
-permitted by the Creative Commons policies published at creativecommons.org/policies,
-Creative Commons does not authorize the use of the trademark "Creative Commons"
-or any other trademark or logo of Creative Commons without its prior written
-consent including, without limitation, in connection with any unauthorized
-modifications to any of its public licenses or any other arrangements, understandings,
-or agreements concerning use of licensed material. For the avoidance of doubt,
-this paragraph does not form part of the public licenses.
-
-Creative Commons may be contacted at creativecommons.org.
diff --git a/codegen/vulkan/LICENSES/LicenseRef-KhronosSpecCopyright.txt b/codegen/vulkan/LICENSES/LicenseRef-KhronosSpecCopyright.txt
deleted file mode 100644
index a39ec49..0000000
--- a/codegen/vulkan/LICENSES/LicenseRef-KhronosSpecCopyright.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-Copyright 2014-2021 The Khronos Group Inc.
-
-This Specification is protected by copyright laws and contains material
-proprietary to Khronos. Except as described by these terms, it or any
-components may not be reproduced, republished, distributed, transmitted,
-displayed, broadcast or otherwise exploited in any manner without the
-express prior written permission of Khronos.
-Khronos grants a conditional copyright license to use and reproduce the
-unmodified Specification for any purpose, without fee or royalty, EXCEPT no
-licenses to any patent, trademark or other intellectual property rights are
-granted under these terms.
-
-Khronos makes no, and expressly disclaims any, representations or
-warranties, express or implied, regarding this Specification, including,
-without limitation: merchantability, fitness for a particular purpose,
-non-infringement of any intellectual property, correctness, accuracy,
-completeness, timeliness, and reliability.
-Under no circumstances will Khronos, or any of its Promoters, Contributors
-or Members, or their respective partners, officers, directors, employees,
-agents or representatives be liable for any damages, whether direct,
-indirect, special or consequential damages for lost revenues, lost profits,
-or otherwise, arising from or in connection with these materials.
-
-This Specification has been created under the Khronos Intellectual Property
-Rights Policy, which is Attachment A of the Khronos Group Membership
-Agreement available at https://www.khronos.org/files/member_agreement.pdf, and which
-defines the terms 'Scope', 'Compliant Portion', and 'Necessary Patent Claims'.
-Parties desiring to implement the Specification and make use of Khronos trademarks
-in relation to that implementation, and receive reciprocal patent license protection
-under the Khronos Intellectual Property Rights Policy must become Adopters and
-confirm the implementation as conformant under the process defined by Khronos for
-this Specification; see https://www.khronos.org/adopters.
-
-This Specification contains substantially unmodified functionality from, and is a
-successor to, Khronos specifications including OpenGL, OpenGL ES and OpenCL.
-
-Some parts of this Specification are purely informative and so are EXCLUDED from
-the Scope of this Specification. The <<introduction-conventions>> section of the
-<<introduction>> defines how these parts of the Specification are identified.
-
-Where this Specification uses <<introduction-technical-terminology,technical
-terminology>>, defined in the <<glossary>> or otherwise, that refer to
-enabling technologies that are not expressly set forth in this
-Specification, those enabling technologies are EXCLUDED from the Scope of
-this Specification.
-For clarity, enabling technologies not disclosed with particularity in this
-Specification (e.g. semiconductor manufacturing technology, hardware
-architecture, processor architecture or microarchitecture, memory
-architecture, compiler technology, object oriented technology, basic
-operating system technology, compression technology, algorithms, and so on)
-are NOT to be considered expressly set forth; only those application program
-interfaces and data structures disclosed with particularity are included in
-the Scope of this Specification.
-
-For purposes of the Khronos Intellectual Property Rights Policy as it relates
-to the definition of Necessary Patent Claims, all recommended or optional
-features, behaviors and functionality set forth in this Specification, if
-implemented, are considered to be included as Compliant Portions.
-
-Where this Specification includes <<introduction-normative-references,
-normative references to external documents>>, only the specifically
-identified sections of those external documents are INCLUDED in the Scope of
-this Specification. If not created by Khronos, those external documents may
-contain contributions from non-members of Khronos not covered by the Khronos
-Intellectual Property Rights Policy.
-
-ifndef::ratified_core_spec[]
-This document contains extensions which are not ratified by Khronos, and as
-such is not a ratified Specification, though it contains text from (and is a
-superset of) the ratified Vulkan Specification. The ratified versions of the
-Vulkan Specification can be found at
-https://www.khronos.org/registry/vulkan/specs/1.2/html/vkspec.html (core
-only) and
-https://www.khronos.org/registry/vulkan/specs/1.2-khr-extensions/html/vkspec.html
-(core with KHR extensions).
-endif::ratified_core_spec[]
-
-Vulkan and Khronos are registered trademarks of The Khronos Group Inc.
-ASTC is a trademark of ARM Holdings PLC; OpenCL is a trademark of Apple
-Inc.; and OpenGL and OpenGL ES are registered trademarks of Hewlett Packard
-Enterprise, all used under license by Khronos. All other product names,
-trademarks, and/or company names are used solely for identification and
-belong to their respective owners.
diff --git a/codegen/vulkan/LICENSES/LicenseRef-MPLUS.txt b/codegen/vulkan/LICENSES/LicenseRef-MPLUS.txt
deleted file mode 100644
index 9db1dd8..0000000
--- a/codegen/vulkan/LICENSES/LicenseRef-MPLUS.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-M+ Fonts License
-
-December 16, 2019
-
-M+ FONTS are a font family under the Free license. You can use, copy, and
-distribute it, with or without modification, either commercially and
-noncommercially.
diff --git a/codegen/vulkan/LICENSES/MIT.txt b/codegen/vulkan/LICENSES/MIT.txt
deleted file mode 100644
index 204b93d..0000000
--- a/codegen/vulkan/LICENSES/MIT.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-MIT License Copyright (c) <year> <copyright holders>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is furnished
-to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice (including the next
-paragraph) shall be included in all copies or substantial portions of the
-Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
-OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
-OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/codegen/vulkan/Makefile b/codegen/vulkan/Makefile
deleted file mode 100644
index b6a5eaf..0000000
--- a/codegen/vulkan/Makefile
+++ /dev/null
@@ -1,614 +0,0 @@
-# Copyright 2014-2021 The Khronos Group Inc.
-#
-# SPDX-License-Identifier: Apache-2.0
-
-# Vulkan Specification makefile
-#
-# To build the spec with a specific version included, set the
-# $(VERSIONS) variable on the make command line to a space-separated
-# list of version names (e.g. VK_VERSION_1_2) *including all previous
-# versions of the API* (e.g. VK_VERSION_1_1 must also include
-# VK_VERSION_1_0). $(VERSIONS) is converted into asciidoc and generator
-# script arguments $(VERSIONATTRIBS) and $(VERSIONOPTIONS)
-#
-# To build the specification / reference pages (refpages) with optional
-# extensions included, set the $(EXTENSIONS) variable on the make
-# command line to a space-separated list of extension names.
-# $(EXTENSIONS) is converted into asciidoc and generator script
-# arguments $(EXTATTRIBS) and $(EXTOPTIONS).
-
-# If a recipe fails, delete its target file. Without this cleanup, the leftover
-# file from the failed recipe can falsely satisfy dependencies on subsequent
-# runs of `make`.
-.DELETE_ON_ERROR:
-
-VERSIONS := VK_VERSION_1_0 VK_VERSION_1_1 VK_VERSION_1_2
-VERSIONATTRIBS := $(foreach version,$(VERSIONS),-a $(version))
-VERSIONOPTIONS := $(foreach version,$(VERSIONS),-feature $(version))
-
-EXTS := $(sort $(EXTENSIONS) $(DIFFEXTENSIONS))
-EXTATTRIBS := $(foreach ext,$(EXTS),-a $(ext))
-EXTOPTIONS := $(foreach ext,$(EXTS),-extension $(ext))
-
-# APITITLE can be set to extra text to append to the document title,
-# normally used when building with extensions included.
-APITITLE =
-
-# IMAGEOPTS is normally set to generate inline SVG images, but can be
-# overridden to an empty string, since the inline option doesn't work
-# well with our HTML diffs.
-IMAGEOPTS = inline
-
-# The default 'all' target builds the following sub-targets:
-#  html - HTML single-page API specification
-#  pdf - PDF single-page API specification
-#  styleguide - HTML5 single-page "Documentation and Extensions" guide
-#  registry - HTML5 single-page XML Registry Schema documentation
-#  manhtml - HTML5 single-page reference guide - NOT SUPPORTED
-#  manpdf - PDF reference guide - NOT SUPPORTED
-#  manhtmlpages - HTML5 separate per-feature refpages
-#  allchecks - Python sanity checker for script markup and macro use
-
-all: alldocs allchecks
-
-alldocs: allspecs allman proposals
-
-allspecs: html pdf styleguide registry
-
-allman: manhtmlpages
-
-# check_spec_links.py looks for proper use of custom markup macros
-#   --ignore_count 0 can be incremented if there are unfixable errors
-# xml_consistency.py performs various XML consistency checks
-# check_undefined looks for untagged use of 'undefined' in spec sources
-# reflow.py looks for asciidoctor conditionals inside VU statements;
-#   and for duplicated VUID numbers, but only in spec sources.
-allchecks:
-	$(PYTHON) $(SCRIPTS)/check_spec_links.py -Werror --ignore_count 0
-	$(PYTHON) $(SCRIPTS)/xml_consistency.py
-	$(SCRIPTS)/ci/check_undefined
-	$(PYTHON) $(SCRIPTS)/reflow.py -nowrite -noflow -check FAIL -checkVUID FAIL $(SPECFILES)
-
-# Note that the := assignments below are immediate, not deferred, and
-# are therefore order-dependent in the Makefile
-
-QUIET	 ?= @
-VERYQUIET?= @
-PYTHON	 ?= python3
-ASCIIDOC ?= asciidoctor
-RUBY	 = ruby
-NODEJS	 = node
-PATCH	 = patch
-RM	 = rm -f
-RMRF	 = rm -rf
-MKDIR	 = mkdir -p
-CP	 = cp
-ECHO	 = echo
-GS_EXISTS := $(shell command -v gs 2> /dev/null)
-
-# Path to scripts used in generation
-SCRIPTS  = $(CURDIR)/scripts
-
-# Target directories for output files
-# HTMLDIR - 'html' target
-# PDFDIR - 'pdf' target
-# CHECKDIR - 'allchecks' target
-OUTDIR	  = $(GENERATED)/out
-HTMLDIR   = $(OUTDIR)/html
-VUDIR	  = $(OUTDIR)/validation
-PDFDIR	  = $(OUTDIR)/pdf
-CHECKDIR  = $(OUTDIR)/checks
-PROPOSALDIR = $(OUTDIR)/proposals
-
-# PDF Equations are written to SVGs, this dictates the location to store those files (temporary)
-PDFMATHDIR:=$(OUTDIR)/equations_temp
-
-# Set VERBOSE to -v to see what asciidoc is doing.
-VERBOSE =
-
-# asciidoc attributes to set (defaults are usually OK)
-# NOTEOPTS sets options controlling which NOTEs are generated
-# PATCHVERSION must equal VK_HEADER_VERSION from vk.xml
-# ATTRIBOPTS sets the API revision and enables KaTeX generation
-# VERSIONATTRIBS sets attributes for enabled API versions (set above
-#	     based on $(VERSIONS))
-# EXTATTRIBS sets attributes for enabled extensions (set above based on
-#	     $(EXTENSIONS))
-# EXTRAATTRIBS sets additional attributes, if passed to make
-# ADOCMISCOPTS miscellaneous options controlling error behavior, etc.
-# ADOCEXTS asciidoctor extensions to load
-# ADOCOPTS options for asciidoc->HTML5 output
-
-NOTEOPTS     = -a editing-notes -a implementation-guide
-PATCHVERSION = 198
-
-ifneq (,$(findstring VK_VERSION_1_2,$(VERSIONS)))
-SPECMINOR = 2
-else
-ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
-SPECMINOR = 1
-else
-SPECMINOR = 0
-endif
-endif
-
-SPECREVISION = 1.$(SPECMINOR).$(PATCHVERSION)
-
-# Spell out ISO 8601 format as not all date commands support --rfc-3339
-SPECDATE     = $(shell echo `date -u "+%Y-%m-%d %TZ"`)
-
-# Generate Asciidoc attributes for spec remark
-# Could use `git log -1 --format="%cd"` to get branch commit date
-# This used to be a dependency in the spec html/pdf targets,
-# but that's likely to lead to merge conflicts. Just regenerate
-# when pushing a new spec for review to the sandbox.
-# The dependency on HEAD is per the suggestion in
-# http://neugierig.org/software/blog/2014/11/binary-revisions.html
-SPECREMARK = from git branch: $(shell echo `git symbolic-ref --short HEAD 2> /dev/null || echo Git branch not available`) \
-	     commit: $(shell echo `git log -1 --format="%H" 2> /dev/null || echo Git commit not available`)
-
-# Base path to SPIR-V extensions on the web.
-SPIRVPATH = https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions
-
-# Some of the attributes used in building all spec documents:
-#   chapters - absolute path to chapter sources
-#   appendices - absolute path to appendix sources
-#   images - absolute path to images
-#   generated - absolute path to generated sources
-#   refprefix - controls which generated extension metafiles are
-#	included at build time. Must be empty for specification,
-#	'refprefix.' for refpages (see ADOCREFOPTS below).
-ATTRIBOPTS   = -a revnumber="$(SPECREVISION)" \
-	       -a revdate="$(SPECDATE)" \
-	       -a revremark="$(SPECREMARK)" \
-	       -a apititle="$(APITITLE)" \
-	       -a stem=latexmath \
-	       -a imageopts="$(IMAGEOPTS)" \
-	       -a config=$(CURDIR)/config \
-	       -a appendices=$(CURDIR)/appendices \
-	       -a chapters=$(CURDIR)/chapters \
-	       -a images=$(IMAGEPATH) \
-	       -a generated=$(GENERATED) \
-	       -a spirv="$(SPIRVPATH)" \
-	       -a refprefix \
-	       $(VERSIONATTRIBS) \
-	       $(EXTATTRIBS) \
-	       $(EXTRAATTRIBS)
-ADOCMISCOPTS = --failure-level ERROR
-# Non target-specific Asciidoctor extensions and options
-# Look in $(GENERATED) for explicitly required non-extension Ruby, such
-# as api.rb
-ADOCEXTS     = -I$(GENERATED) -r $(CURDIR)/config/spec-macros.rb -r $(CURDIR)/config/tilde_open_block.rb
-ADOCOPTS     = -d book $(ADOCMISCOPTS) $(ATTRIBOPTS) $(NOTEOPTS) $(VERBOSE) $(ADOCEXTS)
-
-# HTML target-specific Asciidoctor extensions and options
-ADOCHTMLEXTS = -r $(CURDIR)/config/katex_replace.rb \
-	       -r $(CURDIR)/config/loadable_html.rb \
-	       -r $(CURDIR)/config/vuid-expander.rb \
-	       -r $(CURDIR)/config/rouge-extend-css.rb
-
-# ADOCHTMLOPTS relies on the relative runtime path from the output HTML
-# file to the katex scripts being set with KATEXDIR. This is overridden
-# by some targets.
-# ADOCHTMLOPTS also relies on the absolute build-time path to the
-# 'stylesdir' containing our custom CSS.
-KATEXSRCDIR  = $(CURDIR)/katex
-KATEXDIR     = katex
-ADOCHTMLOPTS = $(ADOCHTMLEXTS) -a katexpath=$(KATEXDIR) \
-	       -a stylesheet=khronos.css \
-	       -a stylesdir=$(CURDIR)/config \
-	       -a sectanchors
-
-# PDF target-specific Asciidoctor extensions and options
-ADOCPDFEXTS  = -r asciidoctor-pdf \
-	       -r asciidoctor-mathematical \
-	       -r $(CURDIR)/config/asciidoctor-mathematical-ext.rb \
-	       -r $(CURDIR)/config/vuid-expander.rb
-ADOCPDFOPTS  = $(ADOCPDFEXTS) -a mathematical-format=svg \
-	       -a imagesoutdir=$(PDFMATHDIR) \
-	       -a pdf-fontsdir=config/fonts,GEM_FONTS_DIR \
-	       -a pdf-stylesdir=config/themes -a pdf-style=pdf
-
-# Valid usage-specific Asciidoctor extensions and options
-ADOCVUEXTS = -r $(CURDIR)/config/vu-to-json.rb
-ADOCVUOPTS = $(ADOCVUEXTS)
-
-.PHONY: directories
-
-# Images used by the spec. These are included in generated HTML now.
-IMAGEPATH = $(CURDIR)/images
-SVGFILES  = $(wildcard $(IMAGEPATH)/*.svg)
-
-# Top-level spec source file
-SPECSRC := vkspec.txt
-# Static files making up sections of the API spec.
-SPECFILES = $(wildcard chapters/[A-Za-z]*.txt chapters/*/[A-Za-z]*.txt appendices/[A-Za-z]*.txt)
-# Shorthand for where different types generated files go.
-# All can be relocated by overriding GENERATED in the make invocation.
-GENERATED      = $(CURDIR)/gen
-REFPATH        = $(GENERATED)/refpage
-APIPATH        = $(GENERATED)/api
-VALIDITYPATH   = $(GENERATED)/validity
-HOSTSYNCPATH   = $(GENERATED)/hostsynctable
-METAPATH       = $(GENERATED)/meta
-INTERFACEPATH  = $(GENERATED)/interfaces
-SPIRVCAPPATH   = $(GENERATED)/spirvcap
-PROPOSALPATH   = $(CURDIR)/proposals
-# timeMarker is a proxy target created when many generated files are
-# made at once
-APIDEPEND      = $(APIPATH)/timeMarker
-VALIDITYDEPEND = $(VALIDITYPATH)/timeMarker
-HOSTSYNCDEPEND = $(HOSTSYNCPATH)/timeMarker
-METADEPEND     = $(METAPATH)/timeMarker
-INTERFACEDEPEND = $(INTERFACEPATH)/timeMarker
-SPIRVCAPDEPEND = $(SPIRVCAPPATH)/timeMarker
-RUBYDEPEND     = $(GENERATED)/api.rb
-# All generated dependencies
-GENDEPENDS     = $(APIDEPEND) $(VALIDITYDEPEND) $(HOSTSYNCDEPEND) $(METADEPEND) $(INTERFACEDEPEND) $(SPIRVCAPDEPEND) $(RUBYDEPEND)
-# All non-format-specific dependencies
-COMMONDOCS     = $(SPECFILES) $(GENDEPENDS)
-
-# Script to add href to anchors
-GENANCHORLINKS = $(SCRIPTS)/genanchorlinks.py
-# Script to translate math on build time
-TRANSLATEMATH = $(NODEJS) $(SCRIPTS)/translate_math.js $(KATEXSRCDIR)/katex.min.js
-
-# Install katex in $(OUTDIR)/katex for reference by all HTML targets
-katexinst: KATEXDIR = katex
-katexinst: $(OUTDIR)/$(KATEXDIR)
-
-$(OUTDIR)/$(KATEXDIR): $(KATEXSRCDIR)
-	$(QUIET)$(MKDIR) $(OUTDIR)
-	$(QUIET)$(RMRF)  $(OUTDIR)/$(KATEXDIR)
-# We currently only need the css and fonts, but copy it whole anyway
-	$(QUIET)$(CP) -rf $(KATEXSRCDIR) $(OUTDIR)
-
-# Spec targets
-# There is some complexity to try and avoid short virtual targets like 'html'
-# causing specs to *always* be regenerated.
-
-CHUNKER = $(CURDIR)/scripts/asciidoctor-chunker/asciidoctor-chunker.js
-CHUNKINDEX = $(CURDIR)/config/chunkindex
-# Only the $(CHUNKER) step is required unless the search index is to be
-# generated and incorporated into the chunked spec.
-#
-# Dropped $(QUIET) for now
-# Should set NODE_PATH=/usr/local/lib/node_modules or wherever, outside Makefile
-# Copying chunked.js into target avoids a warning from the chunker
-chunked: $(HTMLDIR)/vkspec.html $(SPECSRC) $(COMMONDOCS)
-	$(QUIET)$(CHUNKINDEX)/addscripts.sh $(HTMLDIR)/vkspec.html $(HTMLDIR)/prechunked.html
-	$(QUIET)$(CP) $(CHUNKINDEX)/chunked.css $(CHUNKINDEX)/chunked.js \
-	    $(CHUNKINDEX)/lunr.js $(HTMLDIR)
-	$(QUIET)$(NODEJS) $(CHUNKER) $(HTMLDIR)/prechunked.html -o $(HTMLDIR)
-	$(QUIET)$(RM) $(HTMLDIR)/prechunked.html
-	$(QUIET)$(RUBY) $(CHUNKINDEX)/generate-index.rb $(HTMLDIR)/chap*html | \
-	    $(NODEJS) $(CHUNKINDEX)/build-index.js > $(HTMLDIR)/search.index.js
-
-# This is a temporary target while the new chunker is pre-release.
-# Eventually we will either pull the chunker into CI, or permanently
-# store a copy of the short JavaScript chunker in this repository.
-CHUNKERVERSION = asciidoctor-chunker_v1.0.0
-CHUNKURL = https://github.com/wshito/asciidoctor-chunker/releases/download/v1.0.0/$(CHUNKERVERSION).zip
-getchunker:
-	wget $(CHUNKURL) -O $(CHUNKERVERSION).zip
-	unzip $(CHUNKERVERSION).zip
-	mv $(CHUNKERVERSION)/* scripts/asciidoctor-chunker/
-	rm -rf $(CHUNKERVERSION).zip $(CHUNKERVERSION)
-
-html: $(HTMLDIR)/vkspec.html $(SPECSRC) $(COMMONDOCS)
-
-$(HTMLDIR)/vkspec.html: KATEXDIR = ../katex
-$(HTMLDIR)/vkspec.html: $(SPECSRC) $(COMMONDOCS) katexinst
-	$(QUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ $(SPECSRC)
-	$(QUIET)$(PYTHON) $(GENANCHORLINKS) $@ $@
-	$(QUIET)$(TRANSLATEMATH) $@
-
-diff_html: $(HTMLDIR)/diff.html $(SPECSRC) $(COMMONDOCS)
-
-$(HTMLDIR)/diff.html: KATEXDIR = ../katex
-$(HTMLDIR)/diff.html: $(SPECSRC) $(COMMONDOCS) katexinst
-	$(QUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) \
-	    -a diff_extensions="$(DIFFEXTENSIONS)" \
-	    -r $(CURDIR)/config/extension-highlighter.rb --trace \
-	    -o $@ $(SPECSRC)
-	$(QUIET)$(TRANSLATEMATH) $@
-
-# PDF optimizer - usage $(OPTIMIZEPDF) in.pdf out.pdf
-# OPTIMIZEPDFOPTS=--compress-pages is slightly better, but much slower
-OPTIMIZEPDF = hexapdf optimize $(OPTIMIZEPDFOPTS)
-
-pdf: $(PDFDIR)/vkspec.pdf $(SPECSRC) $(COMMONDOCS)
-
-$(PDFDIR)/vkspec.pdf: $(SPECSRC) $(COMMONDOCS)
-	$(QUIET)$(MKDIR) $(PDFDIR)
-	$(QUIET)$(MKDIR) $(PDFMATHDIR)
-	$(QUIET)$(ASCIIDOC) -b pdf $(ADOCOPTS) $(ADOCPDFOPTS) -o $@ $(SPECSRC)
-	$(QUIET)$(OPTIMIZEPDF) $@ $@.out.pdf && mv $@.out.pdf $@
-	$(QUIET)rm -rf $(PDFMATHDIR)
-
-validusage: $(VUDIR)/validusage.json $(SPECSRC) $(COMMONDOCS)
-
-$(VUDIR)/validusage.json: $(SPECSRC) $(COMMONDOCS)
-	$(QUIET)$(MKDIR) $(VUDIR)
-	$(QUIET)$(ASCIIDOC) $(ADOCOPTS) $(ADOCVUOPTS) --trace \
-	    -a json_output=$@ -o $@ $(SPECSRC)
-
-# Vulkan Documentation and Extensions, a.k.a. "Style Guide" documentation
-
-STYLESRC = styleguide.txt
-STYLEFILES = $(wildcard style/[A-Za-z]*.txt)
-
-styleguide: $(OUTDIR)/styleguide.html
-
-$(OUTDIR)/styleguide.html: KATEXDIR = katex
-$(OUTDIR)/styleguide.html: $(STYLESRC) $(STYLEFILES) $(GENDEPENDS) katexinst
-	$(QUIET)$(MKDIR) $(OUTDIR)
-	$(QUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ $(STYLESRC)
-	$(QUIET)$(TRANSLATEMATH) $@
-
-
-# Vulkan API Registry (XML Schema) documentation
-# Currently does not use latexmath / KaTeX
-
-REGSRC = registry.txt
-
-registry: $(OUTDIR)/registry.html
-
-$(OUTDIR)/registry.html: $(REGSRC) $(GENDEPENDS)
-	$(QUIET)$(MKDIR) $(OUTDIR)
-	$(QUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ $(REGSRC)
-	$(QUIET)$(TRANSLATEMATH) $@
-
-# Build proposal documents
-PROPOSALSOURCES   = $(filter-out $(PROPOSALPATH)/template.asciidoc, $(wildcard $(PROPOSALPATH)/*.asciidoc))
-PROPOSALDOCS	  = $(PROPOSALSOURCES:$(PROPOSALPATH)/%.asciidoc=$(PROPOSALDIR)/%.html)
-proposals: $(PROPOSALDOCS) $(PROPOSALSOURCES)
-
-# Proposal documents are built outside of the main specification
-$(PROPOSALDIR)/%.html: $(PROPOSALPATH)/%.asciidoc
-	$(QUIET)$(ASCIIDOC) --failure-level ERROR -b html5 -o $@ $<
-	$(QUIET) if egrep -q '\\[([]' $@ ; then \
-	    $(TRANSLATEMATH) $@ ; \
-    fi
-
-# Reflow text in spec sources
-REFLOW = $(SCRIPTS)/reflow.py
-REFLOWOPTS = -overwrite
-
-reflow:
-	$(QUIET) echo "Warning: please verify the spec outputs build without changes!"
-	$(PYTHON) $(REFLOW) $(REFLOWOPTS) $(SPECSRC) $(SPECFILES) $(STYLESRC) $(STYLEFILES)
-
-# Clean generated and output files
-
-clean: clean_html clean_pdf clean_man clean_checks clean_generated clean_validusage
-
-clean_html:
-	$(QUIET)$(RMRF) $(HTMLDIR) $(OUTDIR)/katex
-	$(QUIET)$(RM) $(OUTDIR)/apispec.html $(OUTDIR)/styleguide.html \
-	    $(OUTDIR)/registry.html
-
-clean_pdf:
-	$(QUIET)$(RMRF) $(PDFDIR) $(OUTDIR)/apispec.pdf
-
-clean_man:
-	$(QUIET)$(RMRF) $(MANHTMLDIR)
-
-clean_checks:
-	$(QUIET)$(RMRF) $(CHECKDIR)
-
-# Generated directories and files to remove
-CLEAN_GEN_PATHS = \
-    $(APIPATH) \
-    $(HOSTSYNCPATH) \
-    $(VALIDITYPATH) \
-    $(METAPATH) \
-    $(INTERFACEPATH) \
-    $(SPIRVCAPPATH) \
-    $(REFPATH) \
-    $(GENERATED)/include \
-    $(GENERATED)/__pycache__ \
-    $(PDFMATHDIR) \
-    $(GENERATED)/api.py \
-    $(GENERATED)/api.rb \
-    $(GENERATED)/extDependency.*
-
-clean_generated:
-	$(QUIET)$(RMRF) $(CLEAN_GEN_PATHS)
-
-clean_validusage:
-	$(QUIET)$(RM) $(VUDIR)/validusage.json
-
-
-# Generated refpage sources. For now, always build all refpages.
-MANSOURCES   = $(filter-out $(REFPATH)/apispec.txt, $(wildcard $(REFPATH)/*.txt))
-
-# Generation of refpage asciidoctor sources by extraction from the
-# specification.
-#
-# Should have a proper dependency causing the man page sources to be
-# generated by running genRef (once), but adding $(MANSOURCES) to the
-# targets causes genRef to run once/target.
-#
-# Should pass in $(EXTOPTIONS) to determine which pages to generate.
-# For now, all core and extension refpages are extracted by genRef.py.
-GENREF = $(SCRIPTS)/genRef.py
-LOGFILE = $(REFPATH)/refpage.log
-refpages: $(REFPATH)/apispec.txt
-$(REFPATH)/apispec.txt: $(SPECFILES) $(GENREF) $(SCRIPTS)/reflib.py $(GENERATED)/api.py
-	$(QUIET)$(MKDIR) $(REFPATH)
-	$(PYTHON) $(GENREF) -genpath $(GENERATED) -basedir $(REFPATH) \
-	    -log $(LOGFILE) -extpath $(CURDIR)/appendices \
-	    $(EXTOPTIONS) $(SPECFILES)
-
-# These targets are HTML5 refpages
-#
-# The recursive $(MAKE) is an apparently unavoidable hack, since the
-# actual list of man page sources isn't known until after
-# $(REFPATH)/apispec.txt is generated. $(GENDEPENDS) is generated before
-# running the recursive make, so it doesn't trigger twice
-# $(SUBMAKEOPTIONS) suppresses the redundant "Entering / leaving"
-# messages make normally prints out, similarly to suppressing make
-# command output logging in the individual refpage actions below.
-SUBMAKEOPTIONS = --no-print-directory
-manhtmlpages: $(REFPATH)/apispec.txt $(GENDEPENDS)
-	$(QUIET) echo "manhtmlpages: building HTML refpages with these options:"
-	$(QUIET) echo $(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) \
-	    $(ADOCREFOPTS) -d manpage -o REFPAGE.html REFPAGE.txt
-	$(MAKE) $(SUBMAKEOPTIONS) -e buildmanpages
-
-# Build the individual refpages, then the symbolic links from aliases
-MANHTMLDIR  = $(OUTDIR)/man/html
-MANHTML     = $(MANSOURCES:$(REFPATH)/%.txt=$(MANHTMLDIR)/%.html)
-buildmanpages: $(MANHTML)
-	$(MAKE) $(SUBMAKEOPTIONS) -e manaliases
-
-# Asciidoctor options to build refpages
-#
-# ADOCREFOPTS *must* be placed after ADOCOPTS in the command line, so
-# that it can override spec attribute values.
-#
-# cross-file-links makes custom macros link to other refpages
-# refprefix includes the refpage (not spec) extension metadata.
-# isrefpage is for refpage-specific content
-# html_spec_relative is where to find the full specification
-ADOCREFOPTS = -a cross-file-links -a refprefix='refpage.' -a isrefpage \
-	      -a html_spec_relative='../../html/vkspec.html'
-
-# The refpage build process normally generates far too much output, so
-# use VERYQUIET instead of QUIET
-# Running translate_math.js on every refpage is slow and most of them
-# don't contain math, so do a quick search for latexmath delimiters.
-$(MANHTMLDIR)/%.html: KATEXDIR = ../../katex
-$(MANHTMLDIR)/%.html: $(REFPATH)/%.txt $(GENDEPENDS) katexinst
-	$(VERYQUIET)echo "Building $@ from $< using default options"
-	$(VERYQUIET)$(MKDIR) $(MANHTMLDIR)
-	$(VERYQUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) $(ADOCREFOPTS) \
-	    -d manpage -o $@ $<
-	$(VERYQUIET)if egrep -q '\\[([]' $@ ; then \
-	    $(TRANSLATEMATH) $@ ; \
-	fi
-
-# The 'manhtml' and 'manpdf' targets are NO LONGER SUPPORTED by Khronos.
-# They generate HTML5 and PDF single-file versions of the refpages.
-# The generated refpage sources are included by $(REFPATH)/apispec.txt,
-# and are always generated along with that file. Therefore there's no
-# need for a recursive $(MAKE) or a $(MANHTML) dependency, unlike the
-# manhtmlpages target.
-
-manpdf: $(OUTDIR)/apispec.pdf
-
-$(OUTDIR)/apispec.pdf: $(SPECVERSION) $(REFPATH)/apispec.txt $(SVGFILES) $(GENDEPENDS)
-	$(QUIET)$(MKDIR) $(OUTDIR)
-	$(QUIET)$(MKDIR) $(PDFMATHDIR)
-	$(QUIET)$(ASCIIDOC) -b pdf -a html_spec_relative='html/vkspec.html' \
-	    $(ADOCOPTS) $(ADOCPDFOPTS) -o $@ $(REFPATH)/apispec.txt
-	$(QUIET)$(OPTIMIZEPDF) $@ $@.out.pdf && mv $@.out.pdf $@
-
-manhtml: $(OUTDIR)/apispec.html
-
-$(OUTDIR)/apispec.html: KATEXDIR = katex
-$(OUTDIR)/apispec.html: ADOCMISCOPTS =
-$(OUTDIR)/apispec.html: $(SPECVERSION) $(REFPATH)/apispec.txt $(SVGFILES) $(GENDEPENDS) katexinst
-	$(QUIET)$(MKDIR) $(OUTDIR)
-	$(QUIET)$(ASCIIDOC) -b html5 -a html_spec_relative='html/vkspec.html' \
-	    $(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ $(REFPATH)/apispec.txt
-	$(QUIET)$(TRANSLATEMATH) $@
-
-# Create links for refpage aliases
-
-MAKEMANALIASES = $(SCRIPTS)/makemanaliases.py
-manaliases: $(GENERATED)/api.py
-	$(PYTHON) $(MAKEMANALIASES) -genpath $(GENERATED) -refdir $(MANHTMLDIR)
-
-# Targets generated from the XML and registry processing scripts
-#   $(GENERATED)/api.py - Python encoding of the registry
-# The $(...DEPEND) targets are files named 'timeMarker' in generated
-# target directories. They serve as proxies for the multiple generated
-# files written for each target:
-#   apiinc / proxy $(APIDEPEND) - API interface include files in $(APIPATH)
-#   hostsyncinc / proxy $(HOSTSYNCDEPEND) - host sync table include files in $(HOSTSYNCPATH)
-#   validinc / proxy $(VALIDITYDEPEND) - API validity include files in $(VALIDITYPATH)
-#   extinc / proxy $(METADEPEND) - extension appendix metadata include files in $(METAPATH)
-#
-# $(VERSIONOPTIONS) specifies the core API versions which are included
-# in these targets, and is set above based on $(VERSIONS)
-#
-# $(EXTOPTIONS) specifies the extensions which are included in these
-# targets, and is set above based on $(EXTENSIONS).
-#
-# $(GENVKEXTRA) are extra options that can be passed to genvk.py, e.g.
-# '-diag diag'
-
-REGISTRY   = xml
-VKXML	   = $(REGISTRY)/vk.xml
-GENVK	   = $(SCRIPTS)/genvk.py
-GENVKOPTS  = $(VERSIONOPTIONS) $(EXTOPTIONS) $(GENVKEXTRA) -registry $(VKXML)
-GENVKEXTRA =
-
-scriptapi: pyapi rubyapi
-
-pyapi $(GENERATED)/api.py: $(VKXML) $(GENVK)
-	$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(GENERATED) api.py
-
-rubyapi $(GENERATED)/api.rb: $(VKXML) $(GENVK)
-	$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(GENERATED) api.rb
-
-apiinc: $(APIDEPEND)
-
-$(APIDEPEND): $(VKXML) $(GENVK) $(GENERATED)/api.py
-	$(QUIET)$(MKDIR) $(APIPATH)
-	$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(APIPATH) -genpath $(GENERATED) apiinc
-
-hostsyncinc: $(HOSTSYNCDEPEND)
-
-$(HOSTSYNCDEPEND): $(VKXML) $(GENVK)
-	$(QUIET)$(MKDIR) $(HOSTSYNCPATH)
-	$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(HOSTSYNCPATH) hostsyncinc
-
-validinc: $(VALIDITYDEPEND)
-
-$(VALIDITYDEPEND): $(VKXML) $(GENVK)
-	$(QUIET)$(MKDIR) $(VALIDITYPATH)
-	$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(VALIDITYPATH) validinc
-
-extinc: $(METAPATH)/timeMarker
-
-$(METADEPEND): $(VKXML) $(GENVK)
-	$(QUIET)$(MKDIR) $(METAPATH)
-	$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(METAPATH) extinc
-
-interfaceinc: $(INTERFACEPATH)/timeMarker
-
-$(INTERFACEDEPEND): $(VKXML) $(GENVK)
-	$(QUIET)$(MKDIR) $(INTERFACEPATH)
-	$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(INTERFACEPATH) interfaceinc
-
-# This generates a single file, so SPIRVCAPDEPEND is the full path to
-# the file, rather than to a timeMarker in the same directory.
-spirvcapinc: $(SPIRVCAPDEPEND)
-
-$(SPIRVCAPDEPEND): $(VKXML) $(GENVK)
-	$(QUIET)$(MKDIR) $(SPIRVCAPPATH)
-	$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(SPIRVCAPPATH) spirvcapinc
-
-# Debugging aid - generate all files from registry XML
-# This leaves out $(GENERATED)/extDependency.sh intentionally as it only
-# needs to be updated when the extension dependencies in vk.xml change.
-
-generated: $(GENERATED)/api.py $(GENDEPENDS)
-
-# Extension dependencies derived from vk.xml
-# Both Bash and Python versions are generated
-
-extDependency: $(GENERATED)/extDependency.stamp
-$(GENERATED)/extDependency.sh: $(GENERATED)/extDependency.stamp
-$(GENERATED)/extDependency.py: $(GENERATED)/extDependency.stamp
-
-DEPSCRIPT = $(SCRIPTS)/make_ext_dependency.py
-$(GENERATED)/extDependency.stamp: $(VKXML) $(DEPSCRIPT)
-	$(QUIET)$(PYTHON) $(DEPSCRIPT) \
-	    -registry $(VKXML) \
-	    -outscript $(GENERATED)/extDependency.sh \
-	    -outpy $(GENERATED)/extDependency.py
-	$(QUIET)touch $@
diff --git a/codegen/vulkan/README.adoc b/codegen/vulkan/README.adoc
deleted file mode 100644
index 6826917..0000000
--- a/codegen/vulkan/README.adoc
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright 2017-2021 The Khronos Group Inc.
-// SPDX-License-Identifier: CC-BY-4.0
-
-ifdef::env-github[]
-:note-caption: :information_source:
-endif::[]
-
-= Vulkan^(R)^ API Documentation Project
-
-This repository contains sources for the formal documentation of the Vulkan
-API. This includes:
-
-[options="compact"]
- * The Vulkan API Specification
- * Specification of Vulkan extensions
- * API reference ("`man`") pages
- * The XML API Registry (also mirrored at
-   link:https://github.com/KhronosGroup/Vulkan-Headers[Vulkan-Headers])
- * Vulkan header files (also mirrored at
-   link:https://github.com/KhronosGroup/Vulkan-Headers[Vulkan-Headers])
- * Related tools and scripts.
-
-The authoritative public repository is located at
-link:https://github.com/KhronosGroup/Vulkan-Docs/[Vulkan-Docs].
-It hosts a public Issue tracker, and outside developers can file proposed
-changes (Pull Requests) against the Specification, subject to approval by
-Khronos.
-
-If in doubt where to submit your Issue, consult the
-link:https://github.com/KhronosGroup/Vulkan-Web-Registry/blob/main/Vulkan-Projects.adoc[Vulkan-Projects] list on the link:https://github.com/KhronosGroup/Vulkan-Web-Registry[Vulkan-Web-Registry] 
-repository.
-
-
-== External Contributions
-
-Khronos welcomes feedback in Github Issues, and proposed changes in Github
-Pull Requests (PRs), but will not necessarily accept all such changes.
-
-Please keep your issues and pull requests focused on solving a single
-problem. Broader feedback that tries to solve multiple problems, or touches
-many parts of the Specification at once, is difficult for the Vulkan Working
-Group to review in a timely fashion.
-
-
-== Branch Structure
-
-The current Specification is maintained in the default branch (currently
-`main`) of the repository.
-From this branch it is possible to generate Specifications for any published
-version of Vulkan (1.2, 1.1, and 1.0), and incorporating any desired set of
-extensions.
-Each published update is tagged in the form `1.2.*release*` where *release*
-is a constantly incrementing release number and `1.2` is the latest
-published version of the API.
-The last public spec update prior to Vulkan 1.2 is tagged `v1.1.130`.
-
-The last state of the default branch in Khronos' internal gitlab server,
-before 1.2 content was merged into it, is tagged `1.1-archive` (this tag is
-not in github).
-
-
-== Directory Structure
-
-The directory structure is as follows:
-
-```
-README.adoc           This file
-BUILD.adoc            Documents how to build the specifications and reference pages
-CONTRIBUTING.adoc     Requirements for external contributions to the repository
-COPYING.adoc          Copyright and licensing information
-CODE_OF_CONDUCT.adoc  Code of Conduct
-LICENSE.adoc          Summary of licenses used by files in the repository
-ChangeLog.txt         Change log summary for each public spec update
-Makefile, make*       Makefile and helper build scripts (see BUILD.adoc)
-appendices/           Specification appendices
-chapters/             Specification chapters
-proposals/            Design documents for extensions
-config/               Asciidoctor configuration, CSS, and index generator
-images/               Images (figures, diagrams, icons)
-gen/out/              Default directory for the generated documents
-scripts/              Helper scripts used in specification, header, and reference page generation
-style/                Sources for "styleguide" (Vulkan Documentation and Extensions: Procedures and Conventions)
-xml/                  XML API Registry (vk.xml)
-registry.txt          Sources for documentation of the vk.xml format
-```
-
-
-== Building the Specification and Reference Pages
-
-The document sources are marked up in Asciidoctor format, and we use
-`asciidoctor` and related toolchain components to generate output documents.
-See link:BUILD.adoc[BUILD.adoc] for more information on installing the
-toolchain and building the Specification.
-
-
-== Generating Headers and Related Files
-
-See link:xml/README.adoc[xml/README.adoc].
-
-The header files (`include/vulkan/vulkan*.h`) and many parts of the
-specification and reference page documents are generated from descriptions
-in the XML API Registry (link:xml/vk.xml[`xml/vk.xml`]).
-The generated files are not checked into the repository.
-If you change `vk.xml`, you can regenerate the headers by going into
-`xml/` and running:
-
-    $ make clean install
-
-The other generated files are built as required via dependencies in
-the top-level `Makefile`.
-
diff --git a/codegen/vulkan/copyright-spec.txt b/codegen/vulkan/copyright-spec.txt
deleted file mode 100644
index a39ec49..0000000
--- a/codegen/vulkan/copyright-spec.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-Copyright 2014-2021 The Khronos Group Inc.
-
-This Specification is protected by copyright laws and contains material
-proprietary to Khronos. Except as described by these terms, it or any
-components may not be reproduced, republished, distributed, transmitted,
-displayed, broadcast or otherwise exploited in any manner without the
-express prior written permission of Khronos.
-Khronos grants a conditional copyright license to use and reproduce the
-unmodified Specification for any purpose, without fee or royalty, EXCEPT no
-licenses to any patent, trademark or other intellectual property rights are
-granted under these terms.
-
-Khronos makes no, and expressly disclaims any, representations or
-warranties, express or implied, regarding this Specification, including,
-without limitation: merchantability, fitness for a particular purpose,
-non-infringement of any intellectual property, correctness, accuracy,
-completeness, timeliness, and reliability.
-Under no circumstances will Khronos, or any of its Promoters, Contributors
-or Members, or their respective partners, officers, directors, employees,
-agents or representatives be liable for any damages, whether direct,
-indirect, special or consequential damages for lost revenues, lost profits,
-or otherwise, arising from or in connection with these materials.
-
-This Specification has been created under the Khronos Intellectual Property
-Rights Policy, which is Attachment A of the Khronos Group Membership
-Agreement available at https://www.khronos.org/files/member_agreement.pdf, and which
-defines the terms 'Scope', 'Compliant Portion', and 'Necessary Patent Claims'.
-Parties desiring to implement the Specification and make use of Khronos trademarks
-in relation to that implementation, and receive reciprocal patent license protection
-under the Khronos Intellectual Property Rights Policy must become Adopters and
-confirm the implementation as conformant under the process defined by Khronos for
-this Specification; see https://www.khronos.org/adopters.
-
-This Specification contains substantially unmodified functionality from, and is a
-successor to, Khronos specifications including OpenGL, OpenGL ES and OpenCL.
-
-Some parts of this Specification are purely informative and so are EXCLUDED from
-the Scope of this Specification. The <<introduction-conventions>> section of the
-<<introduction>> defines how these parts of the Specification are identified.
-
-Where this Specification uses <<introduction-technical-terminology,technical
-terminology>>, defined in the <<glossary>> or otherwise, that refer to
-enabling technologies that are not expressly set forth in this
-Specification, those enabling technologies are EXCLUDED from the Scope of
-this Specification.
-For clarity, enabling technologies not disclosed with particularity in this
-Specification (e.g. semiconductor manufacturing technology, hardware
-architecture, processor architecture or microarchitecture, memory
-architecture, compiler technology, object oriented technology, basic
-operating system technology, compression technology, algorithms, and so on)
-are NOT to be considered expressly set forth; only those application program
-interfaces and data structures disclosed with particularity are included in
-the Scope of this Specification.
-
-For purposes of the Khronos Intellectual Property Rights Policy as it relates
-to the definition of Necessary Patent Claims, all recommended or optional
-features, behaviors and functionality set forth in this Specification, if
-implemented, are considered to be included as Compliant Portions.
-
-Where this Specification includes <<introduction-normative-references,
-normative references to external documents>>, only the specifically
-identified sections of those external documents are INCLUDED in the Scope of
-this Specification. If not created by Khronos, those external documents may
-contain contributions from non-members of Khronos not covered by the Khronos
-Intellectual Property Rights Policy.
-
-ifndef::ratified_core_spec[]
-This document contains extensions which are not ratified by Khronos, and as
-such is not a ratified Specification, though it contains text from (and is a
-superset of) the ratified Vulkan Specification. The ratified versions of the
-Vulkan Specification can be found at
-https://www.khronos.org/registry/vulkan/specs/1.2/html/vkspec.html (core
-only) and
-https://www.khronos.org/registry/vulkan/specs/1.2-khr-extensions/html/vkspec.html
-(core with KHR extensions).
-endif::ratified_core_spec[]
-
-Vulkan and Khronos are registered trademarks of The Khronos Group Inc.
-ASTC is a trademark of ARM Holdings PLC; OpenCL is a trademark of Apple
-Inc.; and OpenGL and OpenGL ES are registered trademarks of Hewlett Packard
-Enterprise, all used under license by Khronos. All other product names,
-trademarks, and/or company names are used solely for identification and
-belong to their respective owners.
diff --git a/codegen/vulkan/include/vk_video/vulkan_video_codec_h264std.h b/codegen/vulkan/include/vk_video/vulkan_video_codec_h264std.h
deleted file mode 100644
index 3338fe1..0000000
--- a/codegen/vulkan/include/vk_video/vulkan_video_codec_h264std.h
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
-** Copyright (c) 2019-2021 The Khronos Group Inc.
-**
-** SPDX-License-Identifier: Apache-2.0
-*/
-
-#ifndef VULKAN_VIDEO_CODEC_H264STD_H_
-#define VULKAN_VIDEO_CODEC_H264STD_H_ 1
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "vk_video/vulkan_video_codecs_common.h"
-
-// Vulkan 0.9 provisional Vulkan video H.264 encode and decode std specification version number
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_API_VERSION_0_9_5 VK_MAKE_VIDEO_STD_VERSION(0, 9, 5) // Patch version should always be set to 0
-
-// Format must be in the form XX.XX where the first two digits are the major and the second two, the minor.
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_SPEC_VERSION   VK_STD_VULKAN_VIDEO_CODEC_H264_API_VERSION_0_9_5
-#define VK_STD_VULKAN_VIDEO_CODEC_H264_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264"
-
-// *************************************************
-// Video H.264 common definitions:
-// *************************************************
-
-#define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32
-#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6
-#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16
-#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 2
-#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
-
-typedef enum StdVideoH264ChromaFormatIdc {
-    STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME  = 0,
-    STD_VIDEO_H264_CHROMA_FORMAT_IDC_420         = 1,
-    STD_VIDEO_H264_CHROMA_FORMAT_IDC_422         = 2,
-    STD_VIDEO_H264_CHROMA_FORMAT_IDC_444         = 3,
-    STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID     = 0x7FFFFFFF
-} StdVideoH264ChromaFormatIdc;
-
-typedef enum StdVideoH264ProfileIdc {
-    STD_VIDEO_H264_PROFILE_IDC_BASELINE             = 66, /* Only constrained baseline is supported */
-    STD_VIDEO_H264_PROFILE_IDC_MAIN                 = 77,
-    STD_VIDEO_H264_PROFILE_IDC_HIGH                 = 100,
-    STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE  = 244,
-    STD_VIDEO_H264_PROFILE_IDC_INVALID              = 0x7FFFFFFF
-} StdVideoH264ProfileIdc;
-
-typedef enum StdVideoH264Level {
-    STD_VIDEO_H264_LEVEL_1_0 = 0,
-    STD_VIDEO_H264_LEVEL_1_1 = 1,
-    STD_VIDEO_H264_LEVEL_1_2 = 2,
-    STD_VIDEO_H264_LEVEL_1_3 = 3,
-    STD_VIDEO_H264_LEVEL_2_0 = 4,
-    STD_VIDEO_H264_LEVEL_2_1 = 5,
-    STD_VIDEO_H264_LEVEL_2_2 = 6,
-    STD_VIDEO_H264_LEVEL_3_0 = 7,
-    STD_VIDEO_H264_LEVEL_3_1 = 8,
-    STD_VIDEO_H264_LEVEL_3_2 = 9,
-    STD_VIDEO_H264_LEVEL_4_0 = 10,
-    STD_VIDEO_H264_LEVEL_4_1 = 11,
-    STD_VIDEO_H264_LEVEL_4_2 = 12,
-    STD_VIDEO_H264_LEVEL_5_0 = 13,
-    STD_VIDEO_H264_LEVEL_5_1 = 14,
-    STD_VIDEO_H264_LEVEL_5_2 = 15,
-    STD_VIDEO_H264_LEVEL_6_0 = 16,
-    STD_VIDEO_H264_LEVEL_6_1 = 17,
-    STD_VIDEO_H264_LEVEL_6_2 = 18,
-    STD_VIDEO_H264_LEVEL_INVALID = 0x7FFFFFFF
-} StdVideoH264Level;
-