Update/move some Vulkan protocol files
Change-Id: I4e78243b89a3aa52aa179524f19e238accebe53c
diff --git a/protocols/emugen b/protocols/emugen
deleted file mode 120000
index cdab8b6..0000000
--- a/protocols/emugen
+++ /dev/null
@@ -1 +0,0 @@
-../../../../external/qemu/android/android-emugl/host/tools/emugen
\ No newline at end of file
diff --git a/protocols/gles1 b/protocols/gles1
deleted file mode 120000
index 8cd2a00..0000000
--- a/protocols/gles1
+++ /dev/null
@@ -1 +0,0 @@
-../../../../external/qemu/android/android-emugl/host/libs/GLESv1_dec
\ No newline at end of file
diff --git a/protocols/gles2 b/protocols/gles2
deleted file mode 120000
index c43d24d..0000000
--- a/protocols/gles2
+++ /dev/null
@@ -1 +0,0 @@
-../../../../external/qemu/android/android-emugl/host/libs/GLESv2_dec
\ No newline at end of file
diff --git a/protocols/renderControl b/protocols/renderControl
deleted file mode 120000
index d113b7b..0000000
--- a/protocols/renderControl
+++ /dev/null
@@ -1 +0,0 @@
-../../../../external/qemu/android/android-emugl/host/libs/renderControl_dec
\ No newline at end of file
diff --git a/protocols/vulkan/BUILD.adoc b/protocols/vulkan/BUILD.adoc
new file mode 100644
index 0000000..54a0b69
--- /dev/null
+++ b/protocols/vulkan/BUILD.adoc
@@ -0,0 +1,874 @@
+= Vulkan^(R)^ Specification Build Instructions and Notes
+:toc2:
+:toclevels: 2
+
+
+[[intro]]
+== Introduction
+
+This README describes important stuff for getting the Vulkan API
+specification and reference pages building properly.
+
+
+[[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).
+
+Finally, go to the root directory of your local repository clone, and
+
+ $ make html
+
+builds an HTML5 specification output.
+
+ $ make all
+
+builds the spec targets `html`, `pdf`, `styleguide`, `manhtml`, `manpdf`,
+`manhtmlpages`, `checkinc`, and `checklinks`.
+
+[NOTE]
+.Notes
+====
+ * `make all` takes a long time to run, and generates outputs that are
+ irrelevant for most users.
+ Usually `make html` is used to update the HTML target, which is all
+ that's needed for quick verification and viewing of changes.
+ * The default `make` options build a Vulkan 1.1 specification with no
+ optional extensions.
+ * The `validusage` target is not built as part of `make all`, due to it
+ needing to be built with all extensions enabled. Building this 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:
+
+ * API spec:
+ ** `html` - HTML5 in `$(OUTDIR)/html/vkspec.html`
+ ** `pdf` - PDF in `$(OUTDIR)/pdf/vkspec.pdf`
+ * "`Vulkan Documentation and Extensions`" guide:
+ ** `styleguide` - Single-file HTML5 in `$(OUTDIR)/styleguide.html`
+ * Diff spec:
+ ** `diff_html` - Single-file HTML5 in `$(OUTDIR)/html/diff.html`
+ * Reference pages:
+ ** `manhtml` - Single-file HTML in `$(OUTDIR)/apispec.html`
+ ** `manpdf` - Single-file PDF in `$(OUTDIR)/apispec.html`
+ ** `manhtmlpages` - File-per-entry-point HTML in `$(OUTDIR)/man/html/*`
+ * Validator output:
+ ** `checkinc` - List of commands, structs, etc.
+ missing from the API spec in `$(OUTDIR)/checks/notInSpec.txt`
+ ** `checklinks` - Validator script output for API spec in
+ `$(OUTDIR)/checks/specErrs.txt` and for reference pages in
+ `$(OUTDIR)/checks/manErrs.txt`
+ * 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
+to make, such as
+
+----
+make -j 8
+----
+
+may significantly speed up the reference page builds.
+
+
+[[build-bugs]]
+=== Asciidoctor Build Errors
+
+If you see an error like this from the `pdf` target:
+
+ /home/jon/.rbenv/versions/2.3.3/lib/ruby/gems/2.3.0/gems/ruby-enum-0.7.1/lib/ruby-enum/enum.rb:34:in `const_set': asciidoctor: FAILED: /home/tree/git/vulkan/vkspec.txt: Failed to load AsciiDoc document - wrong constant name default (NameError)
+
+then try <<ruby-enum-downgrade,downgrading ruby-enum>>
+as described below
+
+
+[[building-versions]]
+=== Building Specifications For Different API Versions
+
+The `Makefile` defaults to building a Vulkan 1.1 specification.
+This is controlled by asciidoc attributes passed in the Makefile variable
+`$(VERSIONS)`
+To instead build a Vulkan 1.0 specification, pass
+
+----
+VERSIONS="VK_VERSION_1_0"
+----
+
+on the `make` 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.
+Asciidoctor http://asciidoctor.org/docs/user-manual/#attributes[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)`, normally 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)`.
+There are several helper scripts which clean these files and then build one
+or more specified targets for specified extensions:
+
+ * `makeExt` - generate outputs with one or more extensions enabled.
+ Usage is `makeExt extension-names target(s)`, where `extension-names` is
+ a space-separated list of extension names, such as
+ `VK_EXT_debug_report`.
+ If more than one extension is specified, `extension-names` must be
+ quoted on the command line.
+ * `makeKHR` - generate outputs with all Khronos (`VK_KHR_*`) extensions
+ enabled.
+ Usage is `makeKHR target(s)`.
+
+The `target(s)` passed to these scripts are arbitrary `make` options, and
+can be used to set Makefile variables and options, as well as specify actual
+build targets.
+
+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 `makeExt` and `makeKHR` scripts already do this.
+
+
+[[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 `make*` scripts 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".
+
+
+[[building-test]]
+=== Alternate and Test Builds
+
+If you are just testing asciidoc 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 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
+
+[NOTE]
+.Note
+====
+The validation scripts have not been kept up to date, and probably don't
+work properly at present due to numerous changes in the macro and
+conditional markup used in the specification sources.
+====
+
+There are a several Makefile targets which look for inconsistencies and
+missing material between the specification and ref pages, and the canonical
+description of the API in `vk.xml` :
+
+ * `checkinc`
+ * `checklinks`
+ * `allchecks` - both `checkinc` and `checklinks`
+
+They are necessarily heuristic since they're dealing with lots of
+hand-written material.
+To use them you'll also need to install:
+
+ * `python3`
+
+The `checkinc` target uses Unix filters to determine which autogenerated API
+include files are used (and not used) in the spec.
+It generates several output files, but the only one you're likely to care
+about is `actual.only`.
+This is a list of the include files which are *not* referenced anywhere in
+the spec, and probably correspond to undocumented material in the spec.
+
+The `checklinks` target validates the various internal tagged links in the
+man pages and spec (e.g. the `fname:vkFuncBlah`, `sname:VkStructBlah`, etc.)
+against the canonical description of the API in `vk.xml`.
+It generates two output files, `manErrs.txt` and `specErrs.txt`, which
+report problematic tags and the filenames/lines on which those tags were
+found.
+
+
+[[macros]]
+== Our Asciidoc Macros
+
+We use a bunch of custom macros in the reference pages and API spec asciidoc
+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/vulkan-macros/extension.rb`
+asciidoctor extension script.
+
+The tags used are described in the style guide (`styleguide.txt`).
+
+We (may) eventually tool up the spec and ref 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 and be taken 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 ref page.
+Pages without corresponding content in the API spec are generated
+automatically, when possible (e.g. for `Vk*FlagBits` pages).
+
+If for some reason you want to regenerate the ref pages from scratch
+yourself, you can do so by
+
+----
+rm man/apispec.txt
+make apispec.txt
+----
+
+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 `man/*.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 ref pages are generated for
+them, and build properly.
+
+
+[[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].
+
+
+=== Marking Normative Language
+
+Normative language is marked as *bold*, and also with the [purple]#purple#
+role for HTML output.
+It can be used to mark entire paragraphs or spans of words.
+In addition, the normative terminology macros, such as must: and may: and
+cannot:, always use this role.
+
+The formatting of normative language depends on the stylesheet.
+Currently it just comes out in purple.
+We may add a way to disable this formatting at build time.
+
+
+[[equations]]
+== Imbedding Equations
+
+Where possible, equations should be written using straight asciidoc markup
+with the _eq_ role.
+This covers many common equations and is faster than the alternatives.
+A variety of mathematical symbols are defined using attributes in the
+included `config/attribs.txt`.
+These symbols are defined using attribute names the same as the comparable
+LaTeX macro names, where possible.
+
+For more complex equations, such as multi-case statements, matrices, and
+complex fractions, equations should be written using the latexmath: inline
+and block macros.
+The contents of the latexmath: blocks should be LaTeX math notation.
+LaTeX math markup delimiters are now inserted by the asciidoctor toolchain.
+
+LaTeX math is passed through unmodified to all HTML output forms, which is
+subsequently rendered with the KaTeX engine when the HTML is loaded.
+A local copy of the KaTeX release is kept in `katex/` and
+copied to the HTML output directory during spec generation.
+Math is processed into SVGs via asciidoctor-mathematical for PDF output.
+
+The following caveats apply:
+
+ * The special characters `<` , `>` , and `&` can currently be used only in
+ +++[latexmath]+++ block macros, not in +++latexmath:[]+++ inline macros.
+ Instead use `\lt`, `\leq`, `\gt`, and `\geq` for `<`, `<=`, `>`, and
+ `>=` respectively.
+ `&` is an alignment construct for multiline equations, and should only
+ appear in block macros anyway.
+ * AMSmath environments (e.g. pass:[\begin{equation*}], pass:[{align*}],
+ etc.) cannot be used in KaTeX at present, and have been replaced with
+ constructs supported by KaTeX such as pass:[{aligned}].
+ * Arbitrary LaTeX constructs cannot be used.
+ KaTeX and asciidoctor-mathematical are only equation renderers, not full
+ LaTeX engines.
+ Imbedding LaTeX like \Large or pass:[\hbox{\tt\small VK\_FOO}] may not
+ work in any of the backends, and should be avoided.
+
+See the "`Vulkan Documentation and Extensions`" document for more details of
+supported LaTeX math constructs.
+
+
+[[anchors]]
+== Asciidoc Anchors And Xrefs
+
+In the API spec, sections can have anchors (labels) applied with the
+following syntax.
+In general the anchor should immediately precede the chapter or section
+title and should use the form '+++[[chapter-section-label]]+++'.
+For example,
+
+For example, in chapter `synchronization.txt`:
+
+----
+[[synchronization-primitives]]
+Synchronization Primitives
+----
+
+Cross-references to those anchors can then be generated with, for example,
+
+----
+See the <<synchronization-primitives>> section for discussion of fences,
+semaphores, and events.
+----
+
+You can also add anchors on arbitrary paragraphs, using a similar naming
+scheme.
+
+Anything whose definition comes from one of the autogenerated API include
+files (`.txt` files in the directories `basetypes`, `enums`, `flags`,
+`funcpointers`, `handles`, `protos`, and `structs`) has a corresponding
+anchor whose name is the name of the function, struct, etc.
+being defined.
+Therefore you can say something like:
+
+----
+Fences are used with the +++<<vkQueueSubmit>>+++ command...
+----
+
+
+[[depends]]
+== Software Dependencies
+
+This section describes the software components used by the Vulkan spec
+toolchain.
+
+Before building the Vulkan spec, you must install the following tools.
+Minimum versions known to be working are shown. Later versions will probably
+work at least as well.
+
+ * GNU make (make version: 4.0.8-1; older versions probably OK)
+ * Python 3 (python, version: 3.4.2)
+ * Ruby (ruby, version: 2.3.3)
+ ** The Ruby development package (ruby-dev) may also be required in some
+ environments.
+ * Git command-line client (git, version: 2.1.4).
+ The build can progress without a git client, but branch/commit
+ information will be omitted from the build.
+ Any version supporting the following operations should work:
+ ** `git symbolic-ref --short HEAD`
+ ** `git log -1 --format="%H"`
+ * Ghostscript (ghostscript, version: 9.10).
+ This is for the PDF build, and it can still progress without it.
+ Ghostscript is used to optimize the size of the PDF, so will be a lot
+ smaller if it is included.
+
+The following Ruby Gems and platform package dependencies must also be
+installed.
+This process is described in more detail for individual platforms and
+environment managers below.
+Please read the remainder of this document (other than platform-specific
+parts you don't use) completely before trying to install.
+
+ * Asciidoctor (asciidoctor, version: 1.5.6.1)
+ * Coderay (coderay, version 1.1.2)
+ * JSON Schema (json-schema, version 2.8.0)
+ * Asciidoctor PDF (asciidoctor-pdf, version: 1.5.0.alpha16)
+ * Asciidoctor Mathematical (asciidoctor-mathematical, version 0.2.2)
+ * https://github.com/asciidoctor/asciidoctor-mathematical#dependencies[Dependencies
+ for asciidoctor-mathematical] (There are a lot of these!)
+ * KaTeX distribution (version 0.7.0 from https://github.com/Khan/KaTeX .
+ This is cached under `katex/`, and need not be
+ installed from github.
+
+.Note
+[NOTE]
+====
+Older versions of these packages may work, but are not recommended.
+In particular, the latest versions of asciidoctor-pdf and
+asciidoctor-mathematical contain important patches working around issues
+we've discovered, and those patches may not be present in earlier versions.
+====
+
+Only the `asciidoctor` and `coderay` gems are needed if you don't intend to
+build PDF versions of the spec and supporting documents.
+
+`json-schema` is only required in order to validate the output of the valid
+usage extraction scripts to a JSON file.
+If not installed, validation will be skipped when the JSON is built.
+
+[NOTE]
+.Note
+====
+While it's easier to install just the toolchain components for HTML builds,
+people submitting MRs with substantial changes to the Specification are
+responsible for verifying that their branches build *both* `html` and `pdf`
+targets.
+====
+
+Platform-specific toolchain instructions follow:
+
+ * Microsoft Windows
+ ** <<depends-ubuntu, Ubuntu / Windows 10>>
+ ** <<depends-mingw,MinGW>> (PDF builds not tested)
+ ** <<depends-cygwin, Cygwin>>
+ * <<depends-osx,Mac OS X>>
+ * <<depends-linux,Linux (Debian, Ubuntu, etc.)>>
+
+
+[[depends-windows]]
+=== Windows (General)
+
+Most of the dependencies on Linux packages are light enough that it's
+possible to build the spec natively in Windows, but it means bypassing the
+makefile and calling functions directly.
+This might be solved in future.
+For now, there are three options for Windows users: Ubuntu / Windows 10,
+MinGW, or Cygwin.
+
+
+[[depends-ubuntu]]
+==== Ubuntu / Windows 10
+
+When using the "`Ubuntu Subsystem`" for Windows 10, most dependencies can be
+installed via apt-get:
+
+----
+sudo apt-get -qq -y install build-essential python3 git cmake bison flex \
+ libffi-dev libxml2-dev libgdk-pixbuf2.0-dev libcairo2-dev \
+ libpango1.0-dev ttf-lyx gtk-doc-tools ghostscript
+----
+
+The default ruby packages on Ubuntu are fairly out of date.
+Ubuntu only provides `ruby` and `ruby2.0` - the latter is multiple revisions
+behind the current stable branch, and would require wrangling to get the
+makefile working with it.
+
+Luckily, there are better options; either https://rvm.io[rvm] or
+https://github.com/rbenv/rbenv[rbenv] is recommended to install a more
+recent version.
+
+[NOTE]
+.Note
+====
+
+ * If you are new to Ruby, you should *completely remove* (through the
+ package manager, e.g. `sudo apt-get remove *packagename*`) all existing
+ Ruby and asciidoctor infrastructure on your machine before trying to use
+ rvm or rbenv for the first time.
+ `dpkg -l | egrep 'asciidoctor|ruby|rbenv|rvm'` will give you a list of
+ candidate package names to remove.
+ ** If you already have a favorite Ruby package manager, ignore this
+ advice, and just install the required OS packages and gems.
+ * In addition, `rvm` and `rbenv` are *mutually incompatible*.
+ They both rely on inserting shims and `$PATH` modifications in your bash
+ shell.
+ If you already have one of these installed and are familiar with it,
+ it's probably best to stay with that one.
+ One of the editors, who is new to Ruby, found `rbenv` far more
+ comprehensible than `rvm`.
+ The other editor likes `rvm` better.
+ ** Neither `rvm` nor `rbenv` work, out of the box, when invoked from
+ non-Bash shells like tcsh.
+ This can be hacked up by setting the right environment variables and
+ PATH additions based on a bash environment.
+ * Most of the tools on Bash for Windows are quite happy with Windows line
+ endings (CR LF), but bash scripts expect Unix line endings (LF).
+ The file `.gitattributes` at the top of the vulkan tree in the 1.0
+ branch forces such scripts to be checked out with the proper line
+ endings on non-Linux platforms.
+ If you add new scripts whose names don't end in `.sh`, they should be
+ included in .gitattributes as well.
+====
+
+
+[[depends-ubuntu-rbenv]]
+===== Ubuntu/Windows 10 Using Rbenv
+
+Rbenv is a lighter-weight Ruby environment manager with less functionality
+than rvm.
+Its primary task is to manage different Ruby versions, while rvm has
+additional functionality such as managing "`gemsets`" that is irrelevant to
+our needs.
+
+A complete installation script for the toolchain on Ubuntu for Windows,
+developed on an essentially out-of-the-box environment, follows.
+If you try this, don't try to execute the entire thing at once.
+Do each step separately in case of errors we didn't encounter.
+
+----
+# Install packages needed by `ruby_build` and by toolchain components.
+# See https://github.com/rbenv/ruby-build/wiki and
+# https://github.com/asciidoctor/asciidoctor-mathematical#dependencies
+
+sudo apt-get install autoconf bison build-essential libssl-dev \
+ libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev \
+ libffi-dev libgdbm3 libgdbm-dev cmake libxml2 \
+ libxml2-dev flex pkg-config libglib2.0-dev \
+ libcairo-dev libpango1.0-dev libgdk-pixbuf2.0-dev \
+ libpangocairo-1.0
+
+# Install rbenv from https://github.com/rbenv/rbenv
+git clone https://github.com/rbenv/rbenv.git ~/.rbenv
+
+# Set path to shim layers in .bashrc
+echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> .bashrc
+
+~/.rbenv/bin/rbenv init
+
+# Set .rbenv environment variables in .bashrc
+echo 'eval "$(rbenv init -)"' >> .bashrc
+
+# Restart your shell (e.g. open a new terminal window). Note that
+# you do not need to use the `-l` option, since the modifications
+# were made to .bashrc rather than .bash_profile. If successful,
+# `type rbenv` should print 'rbenv is a function' followed by code.
+
+# Install `ruby_build` plugin from https://github.com/rbenv/ruby-build
+
+git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
+
+# Install Ruby 2.3.3
+# This takes in excess of 20 min. to build!
+# https://github.com/rbenv/ruby-build/issues/1054#issuecomment-276934761
+# suggests:
+# "You can speed up Ruby installs by avoiding generating ri/RDoc
+# documentation for them:
+# RUBY_CONFIGURE_OPTS=--disable-install-doc rbenv install 2.3.3
+# We have not tried this.
+
+rbenv install 2.3.3
+
+# Configure rbenv globally to always use Ruby 2.3.3.
+echo "2.3.3" > ~/.rbenv/version
+
+# Finally, install toolchain components.
+# asciidoctor-mathematical also takes in excess of 20 min. to build!
+# The same RUBY_CONFIGURE_OPTS advice above may apply here as well.
+
+gem install asciidoctor coderay json-schema
+gem install --pre asciidoctor-pdf
+MATHEMATICAL_SKIP_STRDUP=1 gem install asciidoctor-mathematical
+----
+
+
+[[depends-ubuntu-rvm]]
+===== Ubuntu/Windows 10 Using RVM
+
+Here are (sparser) instructions for using rvm to setup version 2.3.x:
+
+----
+gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
+\curl -sSL https://get.rvm.io | bash -s stable --ruby
+source ~/.rvm/scripts/rvm
+rvm install ruby-2.3
+rvm use ruby-2.3
+----
+
+NOTE: Windows 10 Bash will need to be launched with the "-l" option
+appended, so that it runs a login shell; otherwise RVM won't function
+correctly on future launches.
+
+
+[[depends-ubuntu-sys]]
+===== Ubuntu 16.04 using system Ruby
+
+The Ubuntu 16.04.1 default Ruby install (version 2.3.1) seems to be
+up-to-date enough to run all the required gems, but also needs the
+`ruby-dev` package installed through the package manager.
+
+In addition, the library
+`/var/lib/gems/2.3.0/gems/mathematical-1.6.7/ext/mathematical/lib/liblasem.so`
+has to be copied or linked into a directory where the loader can find it.
+This requirement appears to be due to a problem with the
+asciidoctor-mathematical build process.
+
+
+[[depends-mingw]]
+==== MinGW
+
+MinGW can be obtained here: http://www.mingw.org/
+
+Once the installer has run its initial setup, following the
+http://www.mingw.org/wiki/Getting_Started[instructions on the website], you
+should install the `mingw-developer-tools`, `mingw-base` and `msys-base`
+packages.
+The `msys-base` package allows you to use a bash terminal from windows with
+whatever is normally in your path on Windows, as well as the unix tools
+installed by MinGW.
+
+In the native Windows environment, you should also install the following
+native packages:
+
+ * Python 3.x (https://www.python.org/downloads/)
+ * Ruby 2.x (https://rubyinstaller.org/)
+ * Git command-line client (https://git-scm.com/download)
+
+Once this is setup, and the necessary <<depends-gems,Ruby Gems>> are
+installed, launch the `msys` bash shell, and navigate to the spec Makefile.
+From there, you'll need to set `PYTHON=` to the location of your python
+executable for version 3.x before your make command - but otherwise
+everything other than pdf builds should just work.
+
+NOTE: Building the PDF spec via this path has not yet been tested but *may*
+be possible - liblasem is the main issue and it looks like there is now a
+mingw32 build of it available.
+
+
+[[depends-cygwin]]
+==== Cygwin
+
+When installing Cygwin, you should install the following packages via
+`setup`:
+
+----
+// "curl" is only used to download fonts, can be done in another way
+autoconf
+bison
+cmake
+curl
+flex
+gcc-core
+gcc-g++
+ghostscript
+git
+libbz2-devel
+libcairo-devel
+libcairo2
+libffi-devel
+libgdk_pixbuf2.0-devel
+libiconv
+libiconv-devel
+liblasem0.4-devel
+libpango1.0-devel
+libpango1.0_0
+libxml2
+libxml2-devel
+make
+python3
+ruby
+ruby-devel
+----
+
+NOTE: Native versions of some of these packages are usable, but care should
+be taken for incompatibilities with various parts of cygwin - e.g. paths.
+Ruby in particular is unable to resolve Windows paths correctly via the
+native version.
+Python and Git for Windows can be used, though for Python you'll need to set
+the path to it via the PYTHON environment variable, before calling make.
+
+When it comes to installing the mathematical ruby gem, there are two things
+that will require tweaking to get it working.
+Firstly, instead of:
+
+----
+MATHEMATICAL_SKIP_STRDUP=1 gem install asciidoctor-mathematical
+----
+
+You should use
+
+----
+MATHEMATICAL_USE_SYSTEM_LASEM=1 gem install asciidoctor-mathematical
+----
+
+The latter causes it to use the lasem package already installed, rather than
+trying to build a fresh one.
+
+Recent versions of some gems break the installation process and/or pdf build
+on some systems. If the above doesn't work, try:
+
+----
+MATHEMATICAL_USE_SYSTEM_LASEM=1 gem install mathematical -v 1.6.7
+gem install ruby-enum -v 0.7.0
+gem install asciidoctor-mathematical
+----
+
+The mathematical gem also looks for "liblasem" rather than "liblasem0.4" as
+installed by the lasem0.4-devel package, so it is necessary to add a symlink
+to your /lib directory using:
+
+----
+ln -s /lib/liblasem-0.4.dll.a /lib/liblasem.dll.a
+----
+
+<<Ruby Gems>> are not installed to a location that is in your path normally.
+Gems are installed to `~/bin/` - you should add this to your path before
+calling make:
+
+ export PATH=~/bin:$PATH
+
+Finally, you'll need to manually install fonts for lasem via the following
+commands:
+
+----
+mkdir /usr/share/fonts/truetype cd /usr/share/fonts/truetype
+curl -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmex10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmmi10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmr10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmsy10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/esint10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/eufm10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/msam10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/msbm10.ttf
+----
+
+
+[[depends-osx]]
+=== Mac OS X
+
+Mac OS X should work in the same way as for ubuntu by using the Homebrew
+package manager, with the exception that you can simply install the ruby
+package via `brew` rather than using a ruby-specific version manager.
+
+You'll likely also need to install additional fonts for the PDF build via
+mathematical, which you can do with:
+
+----
+cd ~/Library/Fonts
+curl -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmex10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmmi10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmr10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/cmsy10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/esint10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/eufm10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/msam10.ttf \
+ -LO http://mirrors.ctan.org/fonts/cm/ps-type1/bakoma/ttf/msbm10.ttf
+----
+
+Then install the required <<depends-gems,Ruby Gems>>.
+
+
+[[depends-linux]]
+=== Linux (Debian, Ubuntu, etc.)
+
+The instructions for the <<depends-ubuntu,Ubuntu / Windows 10>> installation
+are generally applicable to native Linux environments using Debian packages,
+such as Debian and Ubuntu, although the exact list of packages to install
+may differ.
+Other distributions using different package managers, such as RPM (Fedora)
+and Yum (SuSE) will have different requirements.
+
+Using `rbenv` or `rvm` is neccessary, since the system Ruby packages are
+often well out of date.
+
+Once the environment manager, Ruby, and `ruby_build` have been installed,
+install the required <<depends-gems,Ruby Gems>>.
+
+
+[[depends-gems]]
+=== Ruby Gems
+
+The following ruby gems can be installed directly via the `gem install`
+command, once the platform is set up:
+
+----
+gem install rake asciidoctor coderay json-schema
+
+# Required only for pdf builds
+MATHEMATICAL_SKIP_STRDUP=1 gem install asciidoctor-mathematical
+gem install --pre asciidoctor-pdf
+----
+
+[[ruby-enum-downgrade]]
+==== Ruby Gem Versioning Errors
+
+*ruby-enum*
+
+Make sure you are using ruby-enum 0.7.1 or later, and mathematical 1.6.8 or
+later. If you are forced to use earlier versions, see
+https://github.com/gjtorikian/mathematical/issues/69 for a report of a
+related versioning problem.
+
+
+*prawn*
+
+Make sure you are using prawn 2.2.1 or later, and prawn-templates 0.0.5 or
+later. Incompatibilities between asciidoctor-pdf and earlier versions of
+these gems affects the PDF build. See
+https://github.com/KhronosGroup/Vulkan-Docs/issues/476
+
+
+[[history]]
+== Revision History
+
+ * 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/protocols/vulkan/COPYING.md b/protocols/vulkan/COPYING.md
new file mode 100644
index 0000000..23c84f2
--- /dev/null
+++ b/protocols/vulkan/COPYING.md
@@ -0,0 +1,39 @@
+The files in, and generated output documents from this Vulkan-Docs
+project are under a mix of copyright and license statements. Refer to
+the individual files for specific information. As a general
+guideline:
+
+* The Vulkan Specification asciidoc sources, as well as other documentation
+ which we expect people may wish to regenerate and distributed in other
+ formats - such as the reference pages generated from the Specification
+ source - are under a Creative Commons Attribution 4.0 license.
+** The specification sources have only recently (as of June 2017) been
+ placed under this license. We will now be able to accept pull requests on
+ Github, but there is a related Contribution License Agreement which
+ people proposing PRs to the Vulkan-Docs repository must execute as part
+ of opening the PR.
+* Generated output documents, including the official Vulkan Specification
+ PDF and HTML documents, are under a proprietary Khronos license. See
+ https://www.khronos.org/registry/speccopyright.html . Only Specification
+ documents posted in the Vulkan Registry are official.
+* The Vulkan headers, spec build tools, and spec and registry configuration
+ files are, for the most part, under the Apache 2 license. Some older files
+ are under BSD-like licenses which may eventually be updated to Apache 2 as
+ we have time.
+* There may be some configuration files customized from material shipped
+ with the asciidoc and dblatex distributions. Such files continue under
+ their original copyrights.
+* 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.
+* If something is missing a copyright statement and that poses an
+ *actual problem* for whatever you're doing, file an issue on GitHub
+ and we'll eventually correct it in some fashion.
+
+Working with the different Khronos member company IP lawyers to make
+license changes is a very slow process constrained by the Khronos Member
+Agreement and IP Policy as well as by individual company concerns about
+their IP. Do not expect rapid changes in anything having to to with
+copyrights and licensing.
diff --git a/protocols/vulkan/ChangeLog.txt b/protocols/vulkan/ChangeLog.txt
new file mode 100644
index 0000000..acbb060
--- /dev/null
+++ b/protocols/vulkan/ChangeLog.txt
@@ -0,0 +1,4152 @@
+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 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
+ <<features-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 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 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 whitelist 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>>, <<primrast-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(R) 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 accomodate 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/protocols/vulkan/Makefile b/protocols/vulkan/Makefile
new file mode 100644
index 0000000..3ca3c91
--- /dev/null
+++ b/protocols/vulkan/Makefile
@@ -0,0 +1,474 @@
+# Copyright (c) 2014-2018 The Khronos Group Inc.
+#
+# 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.
+
+# 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_1) *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 and reference pages with optional
+# extensions included, set the $(EXTENSIONS) variable on the make
+# command line to a space-separated list of extension names. The
+# VK_KHR_sampler_mirror_clamp_to_edge extension which is a required part
+# of Vulkan 1.0, is always included. $(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
+VERSIONATTRIBS := $(foreach version,$(VERSIONS),-a $(version))
+VERSIONOPTIONS := $(foreach version,$(VERSIONS),-feature $(version))
+
+EXTS := $(sort VK_KHR_sampler_mirror_clamp_to_edge $(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 =
+
+# 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
+# manpdf - PDF reference guide
+# manhtmlpages - HTML5 separate per-feature reference pages
+# checkinc - validator script for asciidoc include files
+# checklinks - validator script for asciidoc xrefs
+
+all: alldocs allchecks
+
+alldocs: allspecs allman
+
+allspecs: html pdf styleguide registry
+
+allman: manhtml manpdf manhtmlpages
+
+allchecks: checkinc checklinks
+
+# Note that the := assignments below are immediate, not deferred, and
+# are therefore order-dependent in the Makefile
+
+QUIET ?= @
+PYTHON ?= python3
+ASCIIDOC ?= asciidoctor
+RM = rm -f
+RMRF = rm -rf
+MKDIR = mkdir -p
+CP = cp
+ECHO = echo
+GS_EXISTS := $(shell command -v gs 2> /dev/null)
+
+# Target directories for output files
+# HTMLDIR - 'html' target
+# PDFDIR - 'pdf' target
+# CHECKDIR - 'allchecks' target
+OUTDIR := $(CURDIR)/out
+HTMLDIR := $(OUTDIR)/html
+VUDIR := $(OUTDIR)/validation
+PDFDIR := $(OUTDIR)/pdf
+CHECKDIR := $(OUTDIR)/checks
+
+# 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.
+# PATCHVERSION must == VK_HEADER_VERSION from vk.xml / vulkan_core.h
+# NOTEOPTS sets options controlling which NOTEs are generated
+# ATTRIBOPTS sets the api revision and enables MathJax 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
+# ADOCOPTS options for asciidoc->HTML5 output
+NOTEOPTS = -a editing-notes -a implementation-guide
+PATCHVERSION = 83
+ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
+SPECREVISION = 1.1.$(PATCHVERSION)
+else
+SPECREVISION = 1.0.$(PATCHVERSION)
+endif
+
+# 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 information not available`) \
+ commit: $(shell echo `git log -1 --format="%H"`)
+
+ATTRIBOPTS = -a revnumber="$(SPECREVISION)" \
+ -a revdate="$(SPECDATE)" \
+ -a revremark="$(SPECREMARK)" \
+ -a apititle="$(APITITLE)" \
+ -a stem=latexmath \
+ $(VERSIONATTRIBS) \
+ $(EXTATTRIBS) \
+ $(EXTRAATTRIBS)
+
+ADOCEXTS = -r $(CURDIR)/config/vulkan-macros.rb -r $(CURDIR)/config/tilde_open_block.rb
+ADOCOPTS = -d book $(ATTRIBOPTS) $(NOTEOPTS) $(VERBOSE) $(ADOCEXTS)
+
+ADOCHTMLEXTS = -r $(CURDIR)/config/katex_replace.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.
+KATEXDIR = katex
+ADOCHTMLOPTS = $(ADOCHTMLEXTS) -a katexpath=$(KATEXDIR) \
+ -a stylesheet=khronos.css -a stylesdir=$(CURDIR)/config
+
+ADOCPDFEXTS = -r asciidoctor-pdf -r asciidoctor-mathematical -r $(CURDIR)/config/asciidoctor-mathematical-ext.rb
+ADOCPDFOPTS = $(ADOCPDFEXTS) -a mathematical-format=svg \
+ -a imagesoutdir=$(PDFMATHDIR) \
+ -a pdf-stylesdir=config/themes -a pdf-style=pdf
+
+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 :=images
+SVGFILES := $(wildcard $(IMAGEPATH)/*.svg)
+
+# Top-level spec source file
+SPECSRC := vkspec.txt
+# Files making up sections of the API spec. The wildcard expression
+# should work in extension branches to pull in those files as well.
+SPECFILES = $(wildcard chapters/[A-Za-z]*.txt appendices/[A-Za-z]*.txt chapters/*/[A-Za-z]*.txt appendices/*/[A-Za-z]*.txt)
+GENINCLUDE = $(wildcard api/*/[A-Za-z]*.txt validity/*/[A-Za-z]*.txt hostsynctable/*.txt)
+# Shorthand for where the extension appendix generated files go
+METADIR = appendices/meta
+# Generated dependencies of the spec
+GENDEPENDS = api/timeMarker validity/timeMarker hostsynctable/timeMarker $(METADIR)/timeMarker
+# All non-format-specific dependencies
+COMMONDOCS = $(SPECFILES) $(GENINCLUDE) $(GENDEPENDS)
+
+# Install katex in $(OUTDIR)/katex for reference by all HTML targets
+# README.md is a proxy for all the katex files that need to be installed
+katexinst: KATEXDIR = katex
+katexinst: $(OUTDIR)/$(KATEXDIR)/README.md
+
+$(OUTDIR)/$(KATEXDIR)/README.md: katex/README.md
+ $(QUIET)$(MKDIR) $(OUTDIR)
+ $(QUIET)$(RMRF) $(OUTDIR)/$(KATEXDIR)
+ $(QUIET)$(CP) -rf katex $(OUTDIR)
+
+# Spec targets
+# There is some complexity to try and avoid short virtual targets like 'html'
+# causing specs to *always* be regenerated.
+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)
+
+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)
+
+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)
+ifndef GS_EXISTS
+ $(QUIET) echo "Warning: Ghostscript not installed, skipping pdf optimization"
+else
+ $(QUIET)$(CURDIR)/config/optimize-pdf $@
+ $(QUIET)rm $@
+ $(QUIET)mv $(PDFDIR)/vkspec-optimized.pdf $@
+endif
+ $(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) $(GENINCLUDE) $(GENDEPENDS) katexinst
+ $(QUIET)$(MKDIR) $(OUTDIR)
+ $(QUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ $(STYLESRC)
+
+
+# Vulkan API Registry (XML Schema) documentation
+# Currently does not use latexmath / KaTeX
+
+REGSRC = registry.txt
+
+registry: $(OUTDIR)/registry.html
+
+$(OUTDIR)/registry.html: $(REGSRC)
+ $(QUIET)$(MKDIR) $(OUTDIR)
+ $(QUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ $(REGSRC)
+
+
+# Reflow text in spec sources
+REFLOW = 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)$(RM) $(PDFDIR)/vkspec.pdf $(OUTDIR)/apispec.pdf
+
+clean_man:
+ $(QUIET)$(RMRF) $(MANHTMLDIR)
+
+clean_checks:
+ $(QUIET)$(RMRF) $(CHECKDIR)
+
+clean_generated:
+ $(QUIET)$(RMRF) api/* hostsynctable/* validity/* $(METADIR)/* vkapi.py
+ $(QUIET)$(RM) config/extDependency.stamp config/extDependency.pyc config/extDependency.sh config/extDependency.py
+ $(QUIET)$(RM) man/apispec.txt $(LOGFILE) man/[Vv][Kk]*.txt man/PFN*.txt
+ $(QUIET)$(RMRF) $(PDFMATHDIR)
+
+clean_validusage:
+ $(QUIET)$(RM) $(VUDIR)/validusage.json
+
+
+# Ref page targets for individual pages
+MANDIR := man
+MANSECTION := 3
+
+# These lists should be autogenerated
+
+# Ref page sources, split up by core API (CORE), KHR extensions (KHR), and
+# other extensions (VEN). This is a hacky approach to ref page generation
+# now that the single-branch model is in place, and there are outstanding
+# issues to resolve it. For the moment, we always just build the core
+# ref pages.
+
+KHRSOURCES = $(wildcard $(MANDIR)/*KHR.txt)
+MACROSOURCES = $(wildcard $(MANDIR)/VK_*[A-Z][A-Z].txt)
+VENSOURCES = $(filter-out $(KHRSOURCES) $(MACROSOURCES),$(wildcard $(MANDIR)/*[A-Z][A-Z].txt))
+CORESOURCES = $(filter-out $(KHRSOURCES) $(VENSOURCES),$(wildcard $(MANDIR)/[Vv][Kk]*.txt $(MANDIR)/PFN*.txt))
+MANSOURCES = $(CORESOURCES)
+MANCOPYRIGHT = $(MANDIR)/copyright-ccby.txt $(MANDIR)/footer.txt
+
+# Automatic generation of ref pages. Needs to 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.
+#
+# @@ Needs to pass in $(EXTOPTIONS) and use that to determine which
+# pages to generate. As it stands, all the extension ref pages are
+# also generated, though they are not usable at present.
+
+LOGFILE = man/logfile
+man/apispec.txt: $(SPECFILES) genRef.py reflib.py vkapi.py
+ $(PYTHON) genRef.py -log $(LOGFILE) $(SPECFILES)
+
+# These dependencies don't take into account include directives
+
+# These targets are HTML5 ref pages
+
+# The recursive $(MAKE) is an apparently unavoidable hack, since the
+# actual list of man page sources isn't known until after
+# man/apispec.txt is generated.
+manhtmlpages: man/apispec.txt
+ $(MAKE) buildmanpages
+
+# buildmanpages: $(MANSOURCES:$(MANDIR)/%.txt=$(MANHTMLDIR)/%.html)
+
+MANHTMLDIR = $(OUTDIR)/man/html
+MANHTML = $(MANSOURCES:$(MANDIR)/%.txt=$(MANHTMLDIR)/%.html)
+buildmanpages: $(MANHTML)
+
+$(MANHTMLDIR)/%.html: KATEXDIR = ../../katex
+$(MANHTMLDIR)/%.html: $(MANDIR)/%.txt $(MANCOPYRIGHT) $(GENINCLUDE) $(GENDEPENDS) katexinst
+ $(QUIET)$(MKDIR) $(MANHTMLDIR)
+ $(QUIET)$(ASCIIDOC) -b html5 -a cross-file-links -a html_spec_relative='../../html/vkspec.html' $(ADOCOPTS) $(ADOCHTMLOPTS) -d manpage -o $@ $<
+
+# These targets are HTML5 and PDF single-file versions of the ref pages
+# The generated ref page sources are included by man/apispec.txt, and
+# are always generated along with man/apispec.txt. 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) man/apispec.txt $(MANCOPYRIGHT) $(SVGFILES) $(GENINCLUDE) $(GENDEPENDS)
+ $(QUIET)$(MKDIR) $(OUTDIR)
+ $(QUIET)$(MKDIR) $(PDFMATHDIR)
+ $(QUIET)$(ASCIIDOC) -b pdf -a html_spec_relative='html/vkspec.html' $(ADOCOPTS) $(ADOCPDFOPTS) -o $@ man/apispec.txt
+ifndef GS_EXISTS
+ $(QUIET) echo "Warning: Ghostscript not installed, skipping pdf optimization"
+else
+ $(QUIET)$(CURDIR)/config/optimize-pdf $@
+ $(QUIET)rm $@
+ $(QUIET)mv $(OUTDIR)/apispec-optimized.pdf $@
+endif
+
+manhtml: $(OUTDIR)/apispec.html
+
+$(OUTDIR)/apispec.html: KATEXDIR = katex
+$(OUTDIR)/apispec.html: $(SPECVERSION) man/apispec.txt $(MANCOPYRIGHT) $(SVGFILES) $(GENINCLUDE) $(GENDEPENDS) katexinst
+ $(QUIET)$(MKDIR) $(OUTDIR)
+ $(QUIET)$(ASCIIDOC) -b html5 -a html_spec_relative='html/vkspec.html' $(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ man/apispec.txt
+
+# Automated (though heuristic) checks of consistency in the spec and
+# ref page sources.
+# These are way out of date WRT current spec markup, and probably won't
+# work properly.
+
+# Validate includes in spec source vs. includes actually in the tree
+# Generates file in $(CHECKDIR)
+# $(NOTINSPEC) notInSpec.txt - include files only found in XML, not in spec
+# Intermediate files removed after the run
+# $(ACTUAL) - include files generated from vk.xml
+# $(INSPEC) - include files referenced from the spec (not ref page) source
+# Other files which could be generated but are basically useless
+# include files only found in the spec source - comm -13 $(ACTUAL) $(INSPEC)
+# include files both existing and referenced by the spec - comm -12 $(ACTUAL) $(INSPEC)
+INCFILES = $(CHECKDIR)/incfiles
+ACTUAL = $(CHECKDIR)/actual
+INSPEC = $(CHECKDIR)/inspec
+NOTINSPEC = $(CHECKDIR)/notInSpec.txt
+checkinc:
+ $(QUIET)if test ! -d $(CHECKDIR) ; then $(MKDIR) $(CHECKDIR) ; fi
+ $(QUIET)ls $(GENINCLUDE) | sort > $(ACTUAL)
+ $(QUIET)cat $(SPECFILES) | \
+ egrep '^include::\.\./' | tr -d '[]' | \
+ sed -e 's#^include::\.\./##g' | sort > $(INCFILES)
+ $(QUIET)echo "List of API include files repeatedly included in the API specification" > $(NOTINSPEC)
+ $(QUIET)echo "----------------------------------------------------------------------" >> $(NOTINSPEC)
+ $(QUIET)uniq -d $(INCFILES) >> $(NOTINSPEC)
+ $(QUIET)(echo ; echo "List of API include files not referenced in the API specification") >> $(NOTINSPEC)
+ $(QUIET)echo "-----------------------------------------------------------------" >> $(NOTINSPEC)
+ $(QUIET)comm -23 $(ACTUAL) $(INCFILES) >> $(NOTINSPEC)
+ $(QUIET)echo "Include files not found in the spec source are in $(CHECKDIR)/notInSpec.txt"
+ $(QUIET)$(RM) $(INCFILES) $(ACTUAL) $(INSPEC)
+
+# Validate link tags in spec and ref page sources against vk.xml
+# (represented in vkapi.py, which is autogenerated along with the
+# headers and ref page includes).
+# Generates files in $(CHECKDIR):
+# specErrs.txt - errors & warnings in API spec
+# manErrs.txt - errors & warnings in man pages
+checklinks: vkapi.py
+ $(QUIET)if test ! -d $(CHECKDIR) ; then $(MKDIR) $(CHECKDIR) ; fi
+ $(QUIET)echo "Generating link checks for spec (specErrs.txt) and man pages (manErrs.txt)"
+ $(QUIET)$(PYTHON) checkLinks.py -follow man/[Vv][Kk]*.txt > $(CHECKDIR)/manErrs.txt
+ $(QUIET)$(PYTHON) checkLinks.py -follow $(SPECFILES) > $(CHECKDIR)/specErrs.txt
+
+# Targets generated from the XML and registry processing scripts
+# vkapi.py - Python encoding of the registry
+# api/timeMarker - proxy for 'apiincludes' - API include files under api/*/*.txt
+# hostsynctable/timeMarker - proxy for host sync table include files under hostsynctable/*.txt
+# validity/timeMarker - proxy for API validity include files under validity/*/*.txt
+# appendices/meta/timeMarker - proxy for extension appendix metadata include files under appendices/*.txt
+#
+# $(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).
+
+REGISTRY = xml
+VKXML = $(REGISTRY)/vk.xml
+GENVK = $(REGISTRY)/genvk.py
+GENVKOPTS= $(VERSIONOPTIONS) $(EXTOPTIONS) -registry $(VKXML)
+
+vkapi.py: $(VKXML) $(GENVK)
+ $(PYTHON) $(GENVK) $(GENVKOPTS) -o . vkapi.py
+
+apiinc: api/timeMarker
+
+api/timeMarker: $(VKXML) $(GENVK)
+ $(QUIET)$(MKDIR) api
+ $(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o api apiinc
+
+hostsyncinc: hostsynctable/timeMarker
+
+hostsynctable/timeMarker: $(VKXML) $(GENVK)
+ $(QUIET)$(MKDIR) hostsynctable
+ $(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o hostsynctable hostsyncinc
+
+validinc: validity/timeMarker
+
+validity/timeMarker: $(VKXML) $(GENVK)
+ $(QUIET)$(MKDIR) validity
+ $(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o validity validinc
+
+extinc: $(METADIR)/timeMarker
+
+$(METADIR)/timeMarker: $(VKXML) $(GENVK)
+ $(QUIET)$(MKDIR) $(METADIR)
+ $(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(METADIR) extinc
+
+# Debugging aid - generate all files from registry XML
+# This leaves out config/extDependency.sh intentionally as it only
+# needs to be updated when the extension dependencies in vk.xml change.
+
+generated: vkapi.py api/timeMarker hostsynctable/timeMarker validity/timeMarker $(METADIR)/timeMarker
+
+# Extension dependencies derived from vk.xml
+# Both Bash and Python versions are generated
+
+config/extDependency.sh: config/extDependency.stamp
+config/extDependency.py: config/extDependency.stamp
+
+DEPSCRIPT = $(REGISTRY)/extDependency.py
+config/extDependency.stamp: $(VKXML) $(DEPSCRIPT)
+ $(QUIET)$(PYTHON) $(DEPSCRIPT) -registry $(VKXML) \
+ -outscript config/extDependency.sh \
+ -outpy config/extDependency.py
+ $(QUIET)touch $@
diff --git a/protocols/vulkan/README.adoc b/protocols/vulkan/README.adoc
new file mode 100644
index 0000000..2282e3f
--- /dev/null
+++ b/protocols/vulkan/README.adoc
@@ -0,0 +1,71 @@
+= Vulkan^(R)^ API Documentation Project
+
+This repository contains formal documentation of the Vulkan API. This
+includes the Specification of the Vulkan API, including extensions; the
+reference ("`man`") pages; the XML API Registry; header files; and related
+tools and scripts.
+
+The authoritative public repository is located at
+https://github.com/KhronosGroup/Vulkan-Docs/ . Issues, proposed fixes for
+issues, and other suggested changes should be created using Github.
+
+
+== Branch Structure
+
+With the release of Vulkan 1.1, the current Specification is now maintained
+in the `master` branch of the repository. It is possible to generate both
+Vulkan 1.1 and Vulkan 1.0 Specifications from this branch.
+
+
+=== `1.0` Branch Is Obsolete
+
+The `1.0` branch in which the 1.0 Specification was previously maintained is
+now obsolete. The `1.0` branch will not be updated going forward, and all
+outstanding pull requests or merge requests against the `1.0` branch must be
+rebased on, and retargeted to `master`.
+
+
+== Directory Structure
+
+The directory structure was changed following the 1.1.70 spec update to move
+the specification directory to the root of the repository, and move other
+content relative to that. There may be additional cleanup and simplification
+in the future.
+
+
+```
+README.adoc This file
+BUILD.adoc Build targets and methods for the specification
+ChangeLog.txt Change log summary for each public spec update
+appendices/ Specification appendices
+chapters/ Specification chapters
+config/ asciidoc configuration
+images/ Images (figures, diagrams, icons)
+include/vulkan/ Vulkan headers, generated from the Registry
+man/ Reference (manual) pages for API, mostly extracted from the spec source
+xml/ XML API Registry (vk.xml) and related scripts
+src/ext_loader/ Extension loader library
+```
+
+
+== 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 `BUILD.adoc` for more information on installing the toolchain and
+building the Specification.
+
+
+== Generating Headers and Related Files
+
+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 (`xml/vk.xml`). The generated files, with the
+exception of header files, are not checked into the repository. If you
+change `vk.xml`, you can regenerate the header by going to `xml/` and
+running:
+
+ $ make clean install
+
+The other generated files are built as required via dependencies in
+the top-level `Makefile`.
diff --git a/protocols/vulkan/api/basetypes/VkBool32.txt b/protocols/vulkan/api/basetypes/VkBool32.txt
new file mode 100644
index 0000000..53db014
--- /dev/null
+++ b/protocols/vulkan/api/basetypes/VkBool32.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkBool32,VkBool32]]
+[source,c++]
+----
+typedef uint32_t VkBool32;
+
+----
diff --git a/protocols/vulkan/api/basetypes/VkDeviceSize.txt b/protocols/vulkan/api/basetypes/VkDeviceSize.txt
new file mode 100644
index 0000000..996d953
--- /dev/null
+++ b/protocols/vulkan/api/basetypes/VkDeviceSize.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDeviceSize,VkDeviceSize]]
+[source,c++]
+----
+typedef uint64_t VkDeviceSize;
+
+----
diff --git a/protocols/vulkan/api/basetypes/VkFlags.txt b/protocols/vulkan/api/basetypes/VkFlags.txt
new file mode 100644
index 0000000..e01f104
--- /dev/null
+++ b/protocols/vulkan/api/basetypes/VkFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFlags,VkFlags]]
+[source,c++]
+----
+typedef uint32_t VkFlags;
+
+----
diff --git a/protocols/vulkan/api/basetypes/VkSampleMask.txt b/protocols/vulkan/api/basetypes/VkSampleMask.txt
new file mode 100644
index 0000000..1020581
--- /dev/null
+++ b/protocols/vulkan/api/basetypes/VkSampleMask.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSampleMask,VkSampleMask]]
+[source,c++]
+----
+typedef uint32_t VkSampleMask;
+
+----
diff --git a/protocols/vulkan/api/defines/VK_API_VERSION.txt b/protocols/vulkan/api/defines/VK_API_VERSION.txt
new file mode 100644
index 0000000..59f4f9e
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_API_VERSION.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_API_VERSION,VK_API_VERSION]]
+[source,c++]
+----
+// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
+//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
+
+----
diff --git a/protocols/vulkan/api/defines/VK_API_VERSION_1_0.txt b/protocols/vulkan/api/defines/VK_API_VERSION_1_0.txt
new file mode 100644
index 0000000..1d9312a
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_API_VERSION_1_0.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_API_VERSION_1_0,VK_API_VERSION_1_0]]
+[source,c++]
+----
+// Vulkan 1.0 version number
+#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
+
+----
diff --git a/protocols/vulkan/api/defines/VK_API_VERSION_1_1.txt b/protocols/vulkan/api/defines/VK_API_VERSION_1_1.txt
new file mode 100644
index 0000000..edd6062
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_API_VERSION_1_1.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_API_VERSION_1_1,VK_API_VERSION_1_1]]
+[source,c++]
+----
+// Vulkan 1.1 version number
+#define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0
+
+----
diff --git a/protocols/vulkan/api/defines/VK_DEFINE_HANDLE.txt b/protocols/vulkan/api/defines/VK_DEFINE_HANDLE.txt
new file mode 100644
index 0000000..24fa1d4
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_DEFINE_HANDLE.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_DEFINE_HANDLE,VK_DEFINE_HANDLE]]
+[source,c++]
+----
+
+#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
+
+----
diff --git a/protocols/vulkan/api/defines/VK_DEFINE_NON_DISPATCHABLE_HANDLE.txt b/protocols/vulkan/api/defines/VK_DEFINE_NON_DISPATCHABLE_HANDLE.txt
new file mode 100644
index 0000000..a57bb61
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_DEFINE_NON_DISPATCHABLE_HANDLE.txt
@@ -0,0 +1,15 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_DEFINE_NON_DISPATCHABLE_HANDLE,VK_DEFINE_NON_DISPATCHABLE_HANDLE]]
+[source,c++]
+----
+
+#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
+#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
+ #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
+#else
+ #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
+#endif
+#endif
+
+
+----
diff --git a/protocols/vulkan/api/defines/VK_HEADER_VERSION.txt b/protocols/vulkan/api/defines/VK_HEADER_VERSION.txt
new file mode 100644
index 0000000..589b696
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_HEADER_VERSION.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_HEADER_VERSION,VK_HEADER_VERSION]]
+[source,c++]
+----
+// Version of this file
+#define VK_HEADER_VERSION 83
+
+----
diff --git a/protocols/vulkan/api/defines/VK_MAKE_VERSION.txt b/protocols/vulkan/api/defines/VK_MAKE_VERSION.txt
new file mode 100644
index 0000000..dda6850
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_MAKE_VERSION.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_MAKE_VERSION,VK_MAKE_VERSION]]
+[source,c++]
+----
+#define VK_MAKE_VERSION(major, minor, patch) \
+ (((major) << 22) | ((minor) << 12) | (patch))
+
+----
diff --git a/protocols/vulkan/api/defines/VK_NULL_HANDLE.txt b/protocols/vulkan/api/defines/VK_NULL_HANDLE.txt
new file mode 100644
index 0000000..932b5f3
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_NULL_HANDLE.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_NULL_HANDLE,VK_NULL_HANDLE]]
+[source,c++]
+----
+
+#define VK_NULL_HANDLE 0
+
+
+----
diff --git a/protocols/vulkan/api/defines/VK_VERSION_MAJOR.txt b/protocols/vulkan/api/defines/VK_VERSION_MAJOR.txt
new file mode 100644
index 0000000..a094216
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_VERSION_MAJOR.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_VERSION_MAJOR,VK_VERSION_MAJOR]]
+[source,c++]
+----
+#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
+
+----
diff --git a/protocols/vulkan/api/defines/VK_VERSION_MINOR.txt b/protocols/vulkan/api/defines/VK_VERSION_MINOR.txt
new file mode 100644
index 0000000..3331b45
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_VERSION_MINOR.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_VERSION_MINOR,VK_VERSION_MINOR]]
+[source,c++]
+----
+#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
+
+----
diff --git a/protocols/vulkan/api/defines/VK_VERSION_PATCH.txt b/protocols/vulkan/api/defines/VK_VERSION_PATCH.txt
new file mode 100644
index 0000000..608f2c8
--- /dev/null
+++ b/protocols/vulkan/api/defines/VK_VERSION_PATCH.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VK_VERSION_PATCH,VK_VERSION_PATCH]]
+[source,c++]
+----
+#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
+
+----
diff --git a/protocols/vulkan/api/enums/VkAccessFlagBits.txt b/protocols/vulkan/api/enums/VkAccessFlagBits.txt
new file mode 100644
index 0000000..c671698
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkAccessFlagBits.txt
@@ -0,0 +1,24 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkAccessFlagBits,VkAccessFlagBits]]
+[source,c++]
+----
+typedef enum VkAccessFlagBits {
+ VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
+ VK_ACCESS_INDEX_READ_BIT = 0x00000002,
+ VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
+ VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
+ VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
+ VK_ACCESS_SHADER_READ_BIT = 0x00000020,
+ VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
+ VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
+ VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
+ VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
+ VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
+ VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
+ VK_ACCESS_HOST_READ_BIT = 0x00002000,
+ VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
+ VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
+ VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
+} VkAccessFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkAttachmentDescriptionFlagBits.txt b/protocols/vulkan/api/enums/VkAttachmentDescriptionFlagBits.txt
new file mode 100644
index 0000000..7193842
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkAttachmentDescriptionFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkAttachmentDescriptionFlagBits,VkAttachmentDescriptionFlagBits]]
+[source,c++]
+----
+typedef enum VkAttachmentDescriptionFlagBits {
+ VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
+} VkAttachmentDescriptionFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkAttachmentLoadOp.txt b/protocols/vulkan/api/enums/VkAttachmentLoadOp.txt
new file mode 100644
index 0000000..7ce0c90
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkAttachmentLoadOp.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkAttachmentLoadOp,VkAttachmentLoadOp]]
+[source,c++]
+----
+typedef enum VkAttachmentLoadOp {
+ VK_ATTACHMENT_LOAD_OP_LOAD = 0,
+ VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
+ VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
+} VkAttachmentLoadOp;
+----
diff --git a/protocols/vulkan/api/enums/VkAttachmentStoreOp.txt b/protocols/vulkan/api/enums/VkAttachmentStoreOp.txt
new file mode 100644
index 0000000..74edb7d
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkAttachmentStoreOp.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkAttachmentStoreOp,VkAttachmentStoreOp]]
+[source,c++]
+----
+typedef enum VkAttachmentStoreOp {
+ VK_ATTACHMENT_STORE_OP_STORE = 0,
+ VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
+} VkAttachmentStoreOp;
+----
diff --git a/protocols/vulkan/api/enums/VkBlendFactor.txt b/protocols/vulkan/api/enums/VkBlendFactor.txt
new file mode 100644
index 0000000..ec6acb6
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkBlendFactor.txt
@@ -0,0 +1,26 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkBlendFactor,VkBlendFactor]]
+[source,c++]
+----
+typedef enum VkBlendFactor {
+ VK_BLEND_FACTOR_ZERO = 0,
+ VK_BLEND_FACTOR_ONE = 1,
+ VK_BLEND_FACTOR_SRC_COLOR = 2,
+ VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
+ VK_BLEND_FACTOR_DST_COLOR = 4,
+ VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
+ VK_BLEND_FACTOR_SRC_ALPHA = 6,
+ VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
+ VK_BLEND_FACTOR_DST_ALPHA = 8,
+ VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
+ VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
+ VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
+ VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
+ VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
+ VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
+ VK_BLEND_FACTOR_SRC1_COLOR = 15,
+ VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
+ VK_BLEND_FACTOR_SRC1_ALPHA = 17,
+ VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
+} VkBlendFactor;
+----
diff --git a/protocols/vulkan/api/enums/VkBlendOp.txt b/protocols/vulkan/api/enums/VkBlendOp.txt
new file mode 100644
index 0000000..92e1de1
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkBlendOp.txt
@@ -0,0 +1,12 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkBlendOp,VkBlendOp]]
+[source,c++]
+----
+typedef enum VkBlendOp {
+ VK_BLEND_OP_ADD = 0,
+ VK_BLEND_OP_SUBTRACT = 1,
+ VK_BLEND_OP_REVERSE_SUBTRACT = 2,
+ VK_BLEND_OP_MIN = 3,
+ VK_BLEND_OP_MAX = 4,
+} VkBlendOp;
+----
diff --git a/protocols/vulkan/api/enums/VkBorderColor.txt b/protocols/vulkan/api/enums/VkBorderColor.txt
new file mode 100644
index 0000000..2376f5f
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkBorderColor.txt
@@ -0,0 +1,13 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkBorderColor,VkBorderColor]]
+[source,c++]
+----
+typedef enum VkBorderColor {
+ VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
+ VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
+ VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
+ VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
+ VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
+ VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
+} VkBorderColor;
+----
diff --git a/protocols/vulkan/api/enums/VkBufferCreateFlagBits.txt b/protocols/vulkan/api/enums/VkBufferCreateFlagBits.txt
new file mode 100644
index 0000000..33c9f1b
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkBufferCreateFlagBits.txt
@@ -0,0 +1,11 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkBufferCreateFlagBits,VkBufferCreateFlagBits]]
+[source,c++]
+----
+typedef enum VkBufferCreateFlagBits {
+ VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
+ VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
+ VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
+ VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
+} VkBufferCreateFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkBufferUsageFlagBits.txt b/protocols/vulkan/api/enums/VkBufferUsageFlagBits.txt
new file mode 100644
index 0000000..52ef38c
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkBufferUsageFlagBits.txt
@@ -0,0 +1,16 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkBufferUsageFlagBits,VkBufferUsageFlagBits]]
+[source,c++]
+----
+typedef enum VkBufferUsageFlagBits {
+ VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
+ VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
+ VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
+ VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
+ VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
+ VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
+ VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
+ VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
+ VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
+} VkBufferUsageFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkChromaLocation.txt b/protocols/vulkan/api/enums/VkChromaLocation.txt
new file mode 100644
index 0000000..8a8bf38
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkChromaLocation.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkChromaLocation,VkChromaLocation]]
+[source,c++]
+----
+typedef enum VkChromaLocation {
+ VK_CHROMA_LOCATION_COSITED_EVEN = 0,
+ VK_CHROMA_LOCATION_MIDPOINT = 1,
+} VkChromaLocation;
+----
diff --git a/protocols/vulkan/api/enums/VkColorComponentFlagBits.txt b/protocols/vulkan/api/enums/VkColorComponentFlagBits.txt
new file mode 100644
index 0000000..ee589d8
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkColorComponentFlagBits.txt
@@ -0,0 +1,11 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkColorComponentFlagBits,VkColorComponentFlagBits]]
+[source,c++]
+----
+typedef enum VkColorComponentFlagBits {
+ VK_COLOR_COMPONENT_R_BIT = 0x00000001,
+ VK_COLOR_COMPONENT_G_BIT = 0x00000002,
+ VK_COLOR_COMPONENT_B_BIT = 0x00000004,
+ VK_COLOR_COMPONENT_A_BIT = 0x00000008,
+} VkColorComponentFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkCommandBufferLevel.txt b/protocols/vulkan/api/enums/VkCommandBufferLevel.txt
new file mode 100644
index 0000000..3679b4c
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkCommandBufferLevel.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCommandBufferLevel,VkCommandBufferLevel]]
+[source,c++]
+----
+typedef enum VkCommandBufferLevel {
+ VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
+ VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
+} VkCommandBufferLevel;
+----
diff --git a/protocols/vulkan/api/enums/VkCommandBufferResetFlagBits.txt b/protocols/vulkan/api/enums/VkCommandBufferResetFlagBits.txt
new file mode 100644
index 0000000..093dd57
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkCommandBufferResetFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCommandBufferResetFlagBits,VkCommandBufferResetFlagBits]]
+[source,c++]
+----
+typedef enum VkCommandBufferResetFlagBits {
+ VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
+} VkCommandBufferResetFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkCommandBufferUsageFlagBits.txt b/protocols/vulkan/api/enums/VkCommandBufferUsageFlagBits.txt
new file mode 100644
index 0000000..2eff7e5
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkCommandBufferUsageFlagBits.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCommandBufferUsageFlagBits,VkCommandBufferUsageFlagBits]]
+[source,c++]
+----
+typedef enum VkCommandBufferUsageFlagBits {
+ VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
+ VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
+ VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
+} VkCommandBufferUsageFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkCommandPoolCreateFlagBits.txt b/protocols/vulkan/api/enums/VkCommandPoolCreateFlagBits.txt
new file mode 100644
index 0000000..4313a13
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkCommandPoolCreateFlagBits.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCommandPoolCreateFlagBits,VkCommandPoolCreateFlagBits]]
+[source,c++]
+----
+typedef enum VkCommandPoolCreateFlagBits {
+ VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
+ VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
+ VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
+} VkCommandPoolCreateFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkCommandPoolResetFlagBits.txt b/protocols/vulkan/api/enums/VkCommandPoolResetFlagBits.txt
new file mode 100644
index 0000000..0c743e7
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkCommandPoolResetFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCommandPoolResetFlagBits,VkCommandPoolResetFlagBits]]
+[source,c++]
+----
+typedef enum VkCommandPoolResetFlagBits {
+ VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
+} VkCommandPoolResetFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkCompareOp.txt b/protocols/vulkan/api/enums/VkCompareOp.txt
new file mode 100644
index 0000000..9289d03
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkCompareOp.txt
@@ -0,0 +1,15 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCompareOp,VkCompareOp]]
+[source,c++]
+----
+typedef enum VkCompareOp {
+ VK_COMPARE_OP_NEVER = 0,
+ VK_COMPARE_OP_LESS = 1,
+ VK_COMPARE_OP_EQUAL = 2,
+ VK_COMPARE_OP_LESS_OR_EQUAL = 3,
+ VK_COMPARE_OP_GREATER = 4,
+ VK_COMPARE_OP_NOT_EQUAL = 5,
+ VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
+ VK_COMPARE_OP_ALWAYS = 7,
+} VkCompareOp;
+----
diff --git a/protocols/vulkan/api/enums/VkComponentSwizzle.txt b/protocols/vulkan/api/enums/VkComponentSwizzle.txt
new file mode 100644
index 0000000..1cbb19b
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkComponentSwizzle.txt
@@ -0,0 +1,14 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkComponentSwizzle,VkComponentSwizzle]]
+[source,c++]
+----
+typedef enum VkComponentSwizzle {
+ VK_COMPONENT_SWIZZLE_IDENTITY = 0,
+ VK_COMPONENT_SWIZZLE_ZERO = 1,
+ VK_COMPONENT_SWIZZLE_ONE = 2,
+ VK_COMPONENT_SWIZZLE_R = 3,
+ VK_COMPONENT_SWIZZLE_G = 4,
+ VK_COMPONENT_SWIZZLE_B = 5,
+ VK_COMPONENT_SWIZZLE_A = 6,
+} VkComponentSwizzle;
+----
diff --git a/protocols/vulkan/api/enums/VkCullModeFlagBits.txt b/protocols/vulkan/api/enums/VkCullModeFlagBits.txt
new file mode 100644
index 0000000..88d83f3
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkCullModeFlagBits.txt
@@ -0,0 +1,11 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCullModeFlagBits,VkCullModeFlagBits]]
+[source,c++]
+----
+typedef enum VkCullModeFlagBits {
+ VK_CULL_MODE_NONE = 0,
+ VK_CULL_MODE_FRONT_BIT = 0x00000001,
+ VK_CULL_MODE_BACK_BIT = 0x00000002,
+ VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
+} VkCullModeFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkDependencyFlagBits.txt b/protocols/vulkan/api/enums/VkDependencyFlagBits.txt
new file mode 100644
index 0000000..a0df6e8
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkDependencyFlagBits.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDependencyFlagBits,VkDependencyFlagBits]]
+[source,c++]
+----
+typedef enum VkDependencyFlagBits {
+ VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
+ VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
+ VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
+} VkDependencyFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkDescriptorPoolCreateFlagBits.txt b/protocols/vulkan/api/enums/VkDescriptorPoolCreateFlagBits.txt
new file mode 100644
index 0000000..1667775
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkDescriptorPoolCreateFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDescriptorPoolCreateFlagBits,VkDescriptorPoolCreateFlagBits]]
+[source,c++]
+----
+typedef enum VkDescriptorPoolCreateFlagBits {
+ VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
+} VkDescriptorPoolCreateFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkDescriptorSetLayoutCreateFlagBits.txt b/protocols/vulkan/api/enums/VkDescriptorSetLayoutCreateFlagBits.txt
new file mode 100644
index 0000000..900a646
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkDescriptorSetLayoutCreateFlagBits.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDescriptorSetLayoutCreateFlagBits,VkDescriptorSetLayoutCreateFlagBits]]
+[source,c++]
+----
+typedef enum VkDescriptorSetLayoutCreateFlagBits {
+} VkDescriptorSetLayoutCreateFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkDescriptorType.txt b/protocols/vulkan/api/enums/VkDescriptorType.txt
new file mode 100644
index 0000000..d3551f8
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkDescriptorType.txt
@@ -0,0 +1,18 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDescriptorType,VkDescriptorType]]
+[source,c++]
+----
+typedef enum VkDescriptorType {
+ VK_DESCRIPTOR_TYPE_SAMPLER = 0,
+ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
+ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
+ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
+ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
+ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
+ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
+ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
+ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
+ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
+ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
+} VkDescriptorType;
+----
diff --git a/protocols/vulkan/api/enums/VkDescriptorUpdateTemplateType.txt b/protocols/vulkan/api/enums/VkDescriptorUpdateTemplateType.txt
new file mode 100644
index 0000000..abb6efc
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkDescriptorUpdateTemplateType.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDescriptorUpdateTemplateType,VkDescriptorUpdateTemplateType]]
+[source,c++]
+----
+typedef enum VkDescriptorUpdateTemplateType {
+ VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
+} VkDescriptorUpdateTemplateType;
+----
diff --git a/protocols/vulkan/api/enums/VkDeviceQueueCreateFlagBits.txt b/protocols/vulkan/api/enums/VkDeviceQueueCreateFlagBits.txt
new file mode 100644
index 0000000..8627687
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkDeviceQueueCreateFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDeviceQueueCreateFlagBits,VkDeviceQueueCreateFlagBits]]
+[source,c++]
+----
+typedef enum VkDeviceQueueCreateFlagBits {
+ VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
+} VkDeviceQueueCreateFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkDynamicState.txt b/protocols/vulkan/api/enums/VkDynamicState.txt
new file mode 100644
index 0000000..2648867
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkDynamicState.txt
@@ -0,0 +1,16 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDynamicState,VkDynamicState]]
+[source,c++]
+----
+typedef enum VkDynamicState {
+ VK_DYNAMIC_STATE_VIEWPORT = 0,
+ VK_DYNAMIC_STATE_SCISSOR = 1,
+ VK_DYNAMIC_STATE_LINE_WIDTH = 2,
+ VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
+ VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
+ VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
+ VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
+ VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
+ VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
+} VkDynamicState;
+----
diff --git a/protocols/vulkan/api/enums/VkExternalFenceFeatureFlagBits.txt b/protocols/vulkan/api/enums/VkExternalFenceFeatureFlagBits.txt
new file mode 100644
index 0000000..629a724
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkExternalFenceFeatureFlagBits.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalFenceFeatureFlagBits,VkExternalFenceFeatureFlagBits]]
+[source,c++]
+----
+typedef enum VkExternalFenceFeatureFlagBits {
+ VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
+ VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
+} VkExternalFenceFeatureFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkExternalFenceHandleTypeFlagBits.txt b/protocols/vulkan/api/enums/VkExternalFenceHandleTypeFlagBits.txt
new file mode 100644
index 0000000..9bb0a83
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkExternalFenceHandleTypeFlagBits.txt
@@ -0,0 +1,11 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalFenceHandleTypeFlagBits,VkExternalFenceHandleTypeFlagBits]]
+[source,c++]
+----
+typedef enum VkExternalFenceHandleTypeFlagBits {
+ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
+ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
+ VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
+ VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
+} VkExternalFenceHandleTypeFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkExternalMemoryFeatureFlagBits.txt b/protocols/vulkan/api/enums/VkExternalMemoryFeatureFlagBits.txt
new file mode 100644
index 0000000..f53a1c0
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkExternalMemoryFeatureFlagBits.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalMemoryFeatureFlagBits,VkExternalMemoryFeatureFlagBits]]
+[source,c++]
+----
+typedef enum VkExternalMemoryFeatureFlagBits {
+ VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
+ VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
+ VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
+} VkExternalMemoryFeatureFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkExternalMemoryHandleTypeFlagBits.txt b/protocols/vulkan/api/enums/VkExternalMemoryHandleTypeFlagBits.txt
new file mode 100644
index 0000000..a211bd9
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkExternalMemoryHandleTypeFlagBits.txt
@@ -0,0 +1,14 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalMemoryHandleTypeFlagBits,VkExternalMemoryHandleTypeFlagBits]]
+[source,c++]
+----
+typedef enum VkExternalMemoryHandleTypeFlagBits {
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
+ VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
+} VkExternalMemoryHandleTypeFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkExternalSemaphoreFeatureFlagBits.txt b/protocols/vulkan/api/enums/VkExternalSemaphoreFeatureFlagBits.txt
new file mode 100644
index 0000000..cefdae7
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkExternalSemaphoreFeatureFlagBits.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalSemaphoreFeatureFlagBits,VkExternalSemaphoreFeatureFlagBits]]
+[source,c++]
+----
+typedef enum VkExternalSemaphoreFeatureFlagBits {
+ VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
+ VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
+} VkExternalSemaphoreFeatureFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkExternalSemaphoreHandleTypeFlagBits.txt b/protocols/vulkan/api/enums/VkExternalSemaphoreHandleTypeFlagBits.txt
new file mode 100644
index 0000000..1be0f82
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkExternalSemaphoreHandleTypeFlagBits.txt
@@ -0,0 +1,12 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalSemaphoreHandleTypeFlagBits,VkExternalSemaphoreHandleTypeFlagBits]]
+[source,c++]
+----
+typedef enum VkExternalSemaphoreHandleTypeFlagBits {
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
+ VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
+} VkExternalSemaphoreHandleTypeFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkFenceCreateFlagBits.txt b/protocols/vulkan/api/enums/VkFenceCreateFlagBits.txt
new file mode 100644
index 0000000..d405abf
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkFenceCreateFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFenceCreateFlagBits,VkFenceCreateFlagBits]]
+[source,c++]
+----
+typedef enum VkFenceCreateFlagBits {
+ VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
+} VkFenceCreateFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkFenceImportFlagBits.txt b/protocols/vulkan/api/enums/VkFenceImportFlagBits.txt
new file mode 100644
index 0000000..75a8e4f
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkFenceImportFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFenceImportFlagBits,VkFenceImportFlagBits]]
+[source,c++]
+----
+typedef enum VkFenceImportFlagBits {
+ VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
+} VkFenceImportFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkFilter.txt b/protocols/vulkan/api/enums/VkFilter.txt
new file mode 100644
index 0000000..7a02dd5
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkFilter.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFilter,VkFilter]]
+[source,c++]
+----
+typedef enum VkFilter {
+ VK_FILTER_NEAREST = 0,
+ VK_FILTER_LINEAR = 1,
+} VkFilter;
+----
diff --git a/protocols/vulkan/api/enums/VkFormat.txt b/protocols/vulkan/api/enums/VkFormat.txt
new file mode 100644
index 0000000..89ee496
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkFormat.txt
@@ -0,0 +1,226 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFormat,VkFormat]]
+[source,c++]
+----
+typedef enum VkFormat {
+ VK_FORMAT_UNDEFINED = 0,
+ VK_FORMAT_R4G4_UNORM_PACK8 = 1,
+ VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
+ VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
+ VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
+ VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
+ VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
+ VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
+ VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
+ VK_FORMAT_R8_UNORM = 9,
+ VK_FORMAT_R8_SNORM = 10,
+ VK_FORMAT_R8_USCALED = 11,
+ VK_FORMAT_R8_SSCALED = 12,
+ VK_FORMAT_R8_UINT = 13,
+ VK_FORMAT_R8_SINT = 14,
+ VK_FORMAT_R8_SRGB = 15,
+ VK_FORMAT_R8G8_UNORM = 16,
+ VK_FORMAT_R8G8_SNORM = 17,
+ VK_FORMAT_R8G8_USCALED = 18,
+ VK_FORMAT_R8G8_SSCALED = 19,
+ VK_FORMAT_R8G8_UINT = 20,
+ VK_FORMAT_R8G8_SINT = 21,
+ VK_FORMAT_R8G8_SRGB = 22,
+ VK_FORMAT_R8G8B8_UNORM = 23,
+ VK_FORMAT_R8G8B8_SNORM = 24,
+ VK_FORMAT_R8G8B8_USCALED = 25,
+ VK_FORMAT_R8G8B8_SSCALED = 26,
+ VK_FORMAT_R8G8B8_UINT = 27,
+ VK_FORMAT_R8G8B8_SINT = 28,
+ VK_FORMAT_R8G8B8_SRGB = 29,
+ VK_FORMAT_B8G8R8_UNORM = 30,
+ VK_FORMAT_B8G8R8_SNORM = 31,
+ VK_FORMAT_B8G8R8_USCALED = 32,
+ VK_FORMAT_B8G8R8_SSCALED = 33,
+ VK_FORMAT_B8G8R8_UINT = 34,
+ VK_FORMAT_B8G8R8_SINT = 35,
+ VK_FORMAT_B8G8R8_SRGB = 36,
+ VK_FORMAT_R8G8B8A8_UNORM = 37,
+ VK_FORMAT_R8G8B8A8_SNORM = 38,
+ VK_FORMAT_R8G8B8A8_USCALED = 39,
+ VK_FORMAT_R8G8B8A8_SSCALED = 40,
+ VK_FORMAT_R8G8B8A8_UINT = 41,
+ VK_FORMAT_R8G8B8A8_SINT = 42,
+ VK_FORMAT_R8G8B8A8_SRGB = 43,
+ VK_FORMAT_B8G8R8A8_UNORM = 44,
+ VK_FORMAT_B8G8R8A8_SNORM = 45,
+ VK_FORMAT_B8G8R8A8_USCALED = 46,
+ VK_FORMAT_B8G8R8A8_SSCALED = 47,
+ VK_FORMAT_B8G8R8A8_UINT = 48,
+ VK_FORMAT_B8G8R8A8_SINT = 49,
+ VK_FORMAT_B8G8R8A8_SRGB = 50,
+ VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
+ VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
+ VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
+ VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
+ VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
+ VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
+ VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
+ VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
+ VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
+ VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
+ VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
+ VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
+ VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
+ VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
+ VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
+ VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
+ VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
+ VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
+ VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
+ VK_FORMAT_R16_UNORM = 70,
+ VK_FORMAT_R16_SNORM = 71,
+ VK_FORMAT_R16_USCALED = 72,
+ VK_FORMAT_R16_SSCALED = 73,
+ VK_FORMAT_R16_UINT = 74,
+ VK_FORMAT_R16_SINT = 75,
+ VK_FORMAT_R16_SFLOAT = 76,
+ VK_FORMAT_R16G16_UNORM = 77,
+ VK_FORMAT_R16G16_SNORM = 78,
+ VK_FORMAT_R16G16_USCALED = 79,
+ VK_FORMAT_R16G16_SSCALED = 80,
+ VK_FORMAT_R16G16_UINT = 81,
+ VK_FORMAT_R16G16_SINT = 82,
+ VK_FORMAT_R16G16_SFLOAT = 83,
+ VK_FORMAT_R16G16B16_UNORM = 84,
+ VK_FORMAT_R16G16B16_SNORM = 85,
+ VK_FORMAT_R16G16B16_USCALED = 86,
+ VK_FORMAT_R16G16B16_SSCALED = 87,
+ VK_FORMAT_R16G16B16_UINT = 88,
+ VK_FORMAT_R16G16B16_SINT = 89,
+ VK_FORMAT_R16G16B16_SFLOAT = 90,
+ VK_FORMAT_R16G16B16A16_UNORM = 91,
+ VK_FORMAT_R16G16B16A16_SNORM = 92,
+ VK_FORMAT_R16G16B16A16_USCALED = 93,
+ VK_FORMAT_R16G16B16A16_SSCALED = 94,
+ VK_FORMAT_R16G16B16A16_UINT = 95,
+ VK_FORMAT_R16G16B16A16_SINT = 96,
+ VK_FORMAT_R16G16B16A16_SFLOAT = 97,
+ VK_FORMAT_R32_UINT = 98,
+ VK_FORMAT_R32_SINT = 99,
+ VK_FORMAT_R32_SFLOAT = 100,
+ VK_FORMAT_R32G32_UINT = 101,
+ VK_FORMAT_R32G32_SINT = 102,
+ VK_FORMAT_R32G32_SFLOAT = 103,
+ VK_FORMAT_R32G32B32_UINT = 104,
+ VK_FORMAT_R32G32B32_SINT = 105,
+ VK_FORMAT_R32G32B32_SFLOAT = 106,
+ VK_FORMAT_R32G32B32A32_UINT = 107,
+ VK_FORMAT_R32G32B32A32_SINT = 108,
+ VK_FORMAT_R32G32B32A32_SFLOAT = 109,
+ VK_FORMAT_R64_UINT = 110,
+ VK_FORMAT_R64_SINT = 111,
+ VK_FORMAT_R64_SFLOAT = 112,
+ VK_FORMAT_R64G64_UINT = 113,
+ VK_FORMAT_R64G64_SINT = 114,
+ VK_FORMAT_R64G64_SFLOAT = 115,
+ VK_FORMAT_R64G64B64_UINT = 116,
+ VK_FORMAT_R64G64B64_SINT = 117,
+ VK_FORMAT_R64G64B64_SFLOAT = 118,
+ VK_FORMAT_R64G64B64A64_UINT = 119,
+ VK_FORMAT_R64G64B64A64_SINT = 120,
+ VK_FORMAT_R64G64B64A64_SFLOAT = 121,
+ VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
+ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
+ VK_FORMAT_D16_UNORM = 124,
+ VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
+ VK_FORMAT_D32_SFLOAT = 126,
+ VK_FORMAT_S8_UINT = 127,
+ VK_FORMAT_D16_UNORM_S8_UINT = 128,
+ VK_FORMAT_D24_UNORM_S8_UINT = 129,
+ VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
+ VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
+ VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
+ VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
+ VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
+ VK_FORMAT_BC2_UNORM_BLOCK = 135,
+ VK_FORMAT_BC2_SRGB_BLOCK = 136,
+ VK_FORMAT_BC3_UNORM_BLOCK = 137,
+ VK_FORMAT_BC3_SRGB_BLOCK = 138,
+ VK_FORMAT_BC4_UNORM_BLOCK = 139,
+ VK_FORMAT_BC4_SNORM_BLOCK = 140,
+ VK_FORMAT_BC5_UNORM_BLOCK = 141,
+ VK_FORMAT_BC5_SNORM_BLOCK = 142,
+ VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
+ VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
+ VK_FORMAT_BC7_UNORM_BLOCK = 145,
+ VK_FORMAT_BC7_SRGB_BLOCK = 146,
+ VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
+ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
+ VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
+ VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
+ VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
+ VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
+ VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
+ VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
+ VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
+ VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
+ VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
+ VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
+ VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
+ VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
+ VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
+ VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
+ VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
+ VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
+ VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
+ VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
+ VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
+ VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
+ VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
+ VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
+ VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
+ VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
+ VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
+ VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
+ VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
+ VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
+ VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
+ VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
+ VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
+ VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
+ VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
+ VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
+ VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
+ VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
+ VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
+ VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
+ VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
+ VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
+ VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
+ VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
+ VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
+ VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
+ VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
+ VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
+ VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
+ VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
+ VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
+ VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
+ VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
+ VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
+ VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
+ VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
+ VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
+ VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
+ VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
+ VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
+ VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
+ VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
+ VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
+ VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
+ VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
+ VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
+} VkFormat;
+----
diff --git a/protocols/vulkan/api/enums/VkFormatFeatureFlagBits.txt b/protocols/vulkan/api/enums/VkFormatFeatureFlagBits.txt
new file mode 100644
index 0000000..d8c76aa
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkFormatFeatureFlagBits.txt
@@ -0,0 +1,29 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFormatFeatureFlagBits,VkFormatFeatureFlagBits]]
+[source,c++]
+----
+typedef enum VkFormatFeatureFlagBits {
+ VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
+ VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
+ VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
+ VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
+ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
+ VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
+ VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
+ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
+ VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
+ VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
+ VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
+ VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
+ VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
+ VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
+ VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
+ VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
+ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
+ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
+ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
+ VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
+ VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
+ VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
+} VkFormatFeatureFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkFrontFace.txt b/protocols/vulkan/api/enums/VkFrontFace.txt
new file mode 100644
index 0000000..ae1423b
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkFrontFace.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFrontFace,VkFrontFace]]
+[source,c++]
+----
+typedef enum VkFrontFace {
+ VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
+ VK_FRONT_FACE_CLOCKWISE = 1,
+} VkFrontFace;
+----
diff --git a/protocols/vulkan/api/enums/VkImageAspectFlagBits.txt b/protocols/vulkan/api/enums/VkImageAspectFlagBits.txt
new file mode 100644
index 0000000..52771b8
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkImageAspectFlagBits.txt
@@ -0,0 +1,14 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageAspectFlagBits,VkImageAspectFlagBits]]
+[source,c++]
+----
+typedef enum VkImageAspectFlagBits {
+ VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
+ VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
+ VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
+ VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
+ VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
+ VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
+ VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
+} VkImageAspectFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkImageCreateFlagBits.txt b/protocols/vulkan/api/enums/VkImageCreateFlagBits.txt
new file mode 100644
index 0000000..93c5c56
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkImageCreateFlagBits.txt
@@ -0,0 +1,19 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageCreateFlagBits,VkImageCreateFlagBits]]
+[source,c++]
+----
+typedef enum VkImageCreateFlagBits {
+ VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
+ VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
+ VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
+ VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
+ VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
+ VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
+ VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
+ VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
+ VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
+ VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
+ VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
+ VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
+} VkImageCreateFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkImageLayout.txt b/protocols/vulkan/api/enums/VkImageLayout.txt
new file mode 100644
index 0000000..b9a6aff
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkImageLayout.txt
@@ -0,0 +1,18 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageLayout,VkImageLayout]]
+[source,c++]
+----
+typedef enum VkImageLayout {
+ VK_IMAGE_LAYOUT_UNDEFINED = 0,
+ VK_IMAGE_LAYOUT_GENERAL = 1,
+ VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
+ VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
+ VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
+ VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
+ VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
+ VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
+ VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
+ VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
+ VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
+} VkImageLayout;
+----
diff --git a/protocols/vulkan/api/enums/VkImageTiling.txt b/protocols/vulkan/api/enums/VkImageTiling.txt
new file mode 100644
index 0000000..8bade70
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkImageTiling.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageTiling,VkImageTiling]]
+[source,c++]
+----
+typedef enum VkImageTiling {
+ VK_IMAGE_TILING_OPTIMAL = 0,
+ VK_IMAGE_TILING_LINEAR = 1,
+} VkImageTiling;
+----
diff --git a/protocols/vulkan/api/enums/VkImageType.txt b/protocols/vulkan/api/enums/VkImageType.txt
new file mode 100644
index 0000000..0323ce3
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkImageType.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageType,VkImageType]]
+[source,c++]
+----
+typedef enum VkImageType {
+ VK_IMAGE_TYPE_1D = 0,
+ VK_IMAGE_TYPE_2D = 1,
+ VK_IMAGE_TYPE_3D = 2,
+} VkImageType;
+----
diff --git a/protocols/vulkan/api/enums/VkImageUsageFlagBits.txt b/protocols/vulkan/api/enums/VkImageUsageFlagBits.txt
new file mode 100644
index 0000000..d972df5
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkImageUsageFlagBits.txt
@@ -0,0 +1,15 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageUsageFlagBits,VkImageUsageFlagBits]]
+[source,c++]
+----
+typedef enum VkImageUsageFlagBits {
+ VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
+ VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
+ VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
+ VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
+ VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
+ VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
+ VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
+ VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
+} VkImageUsageFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkImageViewType.txt b/protocols/vulkan/api/enums/VkImageViewType.txt
new file mode 100644
index 0000000..9f580dc
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkImageViewType.txt
@@ -0,0 +1,14 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageViewType,VkImageViewType]]
+[source,c++]
+----
+typedef enum VkImageViewType {
+ VK_IMAGE_VIEW_TYPE_1D = 0,
+ VK_IMAGE_VIEW_TYPE_2D = 1,
+ VK_IMAGE_VIEW_TYPE_3D = 2,
+ VK_IMAGE_VIEW_TYPE_CUBE = 3,
+ VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
+ VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
+ VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
+} VkImageViewType;
+----
diff --git a/protocols/vulkan/api/enums/VkIndexType.txt b/protocols/vulkan/api/enums/VkIndexType.txt
new file mode 100644
index 0000000..fe02c6e
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkIndexType.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkIndexType,VkIndexType]]
+[source,c++]
+----
+typedef enum VkIndexType {
+ VK_INDEX_TYPE_UINT16 = 0,
+ VK_INDEX_TYPE_UINT32 = 1,
+} VkIndexType;
+----
diff --git a/protocols/vulkan/api/enums/VkInternalAllocationType.txt b/protocols/vulkan/api/enums/VkInternalAllocationType.txt
new file mode 100644
index 0000000..ac9a0f1
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkInternalAllocationType.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkInternalAllocationType,VkInternalAllocationType]]
+[source,c++]
+----
+typedef enum VkInternalAllocationType {
+ VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
+} VkInternalAllocationType;
+----
diff --git a/protocols/vulkan/api/enums/VkLogicOp.txt b/protocols/vulkan/api/enums/VkLogicOp.txt
new file mode 100644
index 0000000..664c729
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkLogicOp.txt
@@ -0,0 +1,23 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkLogicOp,VkLogicOp]]
+[source,c++]
+----
+typedef enum VkLogicOp {
+ VK_LOGIC_OP_CLEAR = 0,
+ VK_LOGIC_OP_AND = 1,
+ VK_LOGIC_OP_AND_REVERSE = 2,
+ VK_LOGIC_OP_COPY = 3,
+ VK_LOGIC_OP_AND_INVERTED = 4,
+ VK_LOGIC_OP_NO_OP = 5,
+ VK_LOGIC_OP_XOR = 6,
+ VK_LOGIC_OP_OR = 7,
+ VK_LOGIC_OP_NOR = 8,
+ VK_LOGIC_OP_EQUIVALENT = 9,
+ VK_LOGIC_OP_INVERT = 10,
+ VK_LOGIC_OP_OR_REVERSE = 11,
+ VK_LOGIC_OP_COPY_INVERTED = 12,
+ VK_LOGIC_OP_OR_INVERTED = 13,
+ VK_LOGIC_OP_NAND = 14,
+ VK_LOGIC_OP_SET = 15,
+} VkLogicOp;
+----
diff --git a/protocols/vulkan/api/enums/VkMemoryAllocateFlagBits.txt b/protocols/vulkan/api/enums/VkMemoryAllocateFlagBits.txt
new file mode 100644
index 0000000..f5d1eb5
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkMemoryAllocateFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkMemoryAllocateFlagBits,VkMemoryAllocateFlagBits]]
+[source,c++]
+----
+typedef enum VkMemoryAllocateFlagBits {
+ VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
+} VkMemoryAllocateFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkMemoryHeapFlagBits.txt b/protocols/vulkan/api/enums/VkMemoryHeapFlagBits.txt
new file mode 100644
index 0000000..36f7f51
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkMemoryHeapFlagBits.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkMemoryHeapFlagBits,VkMemoryHeapFlagBits]]
+[source,c++]
+----
+typedef enum VkMemoryHeapFlagBits {
+ VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
+ VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
+} VkMemoryHeapFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkMemoryPropertyFlagBits.txt b/protocols/vulkan/api/enums/VkMemoryPropertyFlagBits.txt
new file mode 100644
index 0000000..1ff5640
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkMemoryPropertyFlagBits.txt
@@ -0,0 +1,13 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkMemoryPropertyFlagBits,VkMemoryPropertyFlagBits]]
+[source,c++]
+----
+typedef enum VkMemoryPropertyFlagBits {
+ VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
+ VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
+ VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
+ VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
+ VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
+ VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
+} VkMemoryPropertyFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkObjectType.txt b/protocols/vulkan/api/enums/VkObjectType.txt
new file mode 100644
index 0000000..01c7a5e
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkObjectType.txt
@@ -0,0 +1,35 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkObjectType,VkObjectType]]
+[source,c++]
+----
+typedef enum VkObjectType {
+ VK_OBJECT_TYPE_UNKNOWN = 0,
+ VK_OBJECT_TYPE_INSTANCE = 1,
+ VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
+ VK_OBJECT_TYPE_DEVICE = 3,
+ VK_OBJECT_TYPE_QUEUE = 4,
+ VK_OBJECT_TYPE_SEMAPHORE = 5,
+ VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
+ VK_OBJECT_TYPE_FENCE = 7,
+ VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
+ VK_OBJECT_TYPE_BUFFER = 9,
+ VK_OBJECT_TYPE_IMAGE = 10,
+ VK_OBJECT_TYPE_EVENT = 11,
+ VK_OBJECT_TYPE_QUERY_POOL = 12,
+ VK_OBJECT_TYPE_BUFFER_VIEW = 13,
+ VK_OBJECT_TYPE_IMAGE_VIEW = 14,
+ VK_OBJECT_TYPE_SHADER_MODULE = 15,
+ VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
+ VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
+ VK_OBJECT_TYPE_RENDER_PASS = 18,
+ VK_OBJECT_TYPE_PIPELINE = 19,
+ VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
+ VK_OBJECT_TYPE_SAMPLER = 21,
+ VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
+ VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
+ VK_OBJECT_TYPE_FRAMEBUFFER = 24,
+ VK_OBJECT_TYPE_COMMAND_POOL = 25,
+ VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
+ VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
+} VkObjectType;
+----
diff --git a/protocols/vulkan/api/enums/VkPeerMemoryFeatureFlagBits.txt b/protocols/vulkan/api/enums/VkPeerMemoryFeatureFlagBits.txt
new file mode 100644
index 0000000..ebed5f9
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkPeerMemoryFeatureFlagBits.txt
@@ -0,0 +1,11 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPeerMemoryFeatureFlagBits,VkPeerMemoryFeatureFlagBits]]
+[source,c++]
+----
+typedef enum VkPeerMemoryFeatureFlagBits {
+ VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
+ VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
+ VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
+ VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
+} VkPeerMemoryFeatureFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkPhysicalDeviceType.txt b/protocols/vulkan/api/enums/VkPhysicalDeviceType.txt
new file mode 100644
index 0000000..3b2b81a
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkPhysicalDeviceType.txt
@@ -0,0 +1,12 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPhysicalDeviceType,VkPhysicalDeviceType]]
+[source,c++]
+----
+typedef enum VkPhysicalDeviceType {
+ VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
+ VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
+ VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
+ VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
+ VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
+} VkPhysicalDeviceType;
+----
diff --git a/protocols/vulkan/api/enums/VkPipelineBindPoint.txt b/protocols/vulkan/api/enums/VkPipelineBindPoint.txt
new file mode 100644
index 0000000..397a12d
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkPipelineBindPoint.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineBindPoint,VkPipelineBindPoint]]
+[source,c++]
+----
+typedef enum VkPipelineBindPoint {
+ VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
+ VK_PIPELINE_BIND_POINT_COMPUTE = 1,
+} VkPipelineBindPoint;
+----
diff --git a/protocols/vulkan/api/enums/VkPipelineCacheHeaderVersion.txt b/protocols/vulkan/api/enums/VkPipelineCacheHeaderVersion.txt
new file mode 100644
index 0000000..88ad18b
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkPipelineCacheHeaderVersion.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineCacheHeaderVersion,VkPipelineCacheHeaderVersion]]
+[source,c++]
+----
+typedef enum VkPipelineCacheHeaderVersion {
+ VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
+} VkPipelineCacheHeaderVersion;
+----
diff --git a/protocols/vulkan/api/enums/VkPipelineCreateFlagBits.txt b/protocols/vulkan/api/enums/VkPipelineCreateFlagBits.txt
new file mode 100644
index 0000000..4aaca65
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkPipelineCreateFlagBits.txt
@@ -0,0 +1,12 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineCreateFlagBits,VkPipelineCreateFlagBits]]
+[source,c++]
+----
+typedef enum VkPipelineCreateFlagBits {
+ VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
+ VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
+ VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
+ VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
+ VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
+} VkPipelineCreateFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkPipelineStageFlagBits.txt b/protocols/vulkan/api/enums/VkPipelineStageFlagBits.txt
new file mode 100644
index 0000000..9f497e8
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkPipelineStageFlagBits.txt
@@ -0,0 +1,24 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineStageFlagBits,VkPipelineStageFlagBits]]
+[source,c++]
+----
+typedef enum VkPipelineStageFlagBits {
+ VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
+ VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
+ VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
+ VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
+ VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
+ VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
+ VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
+ VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
+ VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
+ VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
+ VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
+ VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
+ VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
+ VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
+ VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
+ VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
+ VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
+} VkPipelineStageFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkPointClippingBehavior.txt b/protocols/vulkan/api/enums/VkPointClippingBehavior.txt
new file mode 100644
index 0000000..1627102
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkPointClippingBehavior.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPointClippingBehavior,VkPointClippingBehavior]]
+[source,c++]
+----
+typedef enum VkPointClippingBehavior {
+ VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
+ VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
+} VkPointClippingBehavior;
+----
diff --git a/protocols/vulkan/api/enums/VkPolygonMode.txt b/protocols/vulkan/api/enums/VkPolygonMode.txt
new file mode 100644
index 0000000..da0c66f
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkPolygonMode.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPolygonMode,VkPolygonMode]]
+[source,c++]
+----
+typedef enum VkPolygonMode {
+ VK_POLYGON_MODE_FILL = 0,
+ VK_POLYGON_MODE_LINE = 1,
+ VK_POLYGON_MODE_POINT = 2,
+} VkPolygonMode;
+----
diff --git a/protocols/vulkan/api/enums/VkPrimitiveTopology.txt b/protocols/vulkan/api/enums/VkPrimitiveTopology.txt
new file mode 100644
index 0000000..c877149
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkPrimitiveTopology.txt
@@ -0,0 +1,18 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPrimitiveTopology,VkPrimitiveTopology]]
+[source,c++]
+----
+typedef enum VkPrimitiveTopology {
+ VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
+ VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
+ VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
+ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
+ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
+ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
+ VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
+ VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
+ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
+ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
+ VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
+} VkPrimitiveTopology;
+----
diff --git a/protocols/vulkan/api/enums/VkQueryControlFlagBits.txt b/protocols/vulkan/api/enums/VkQueryControlFlagBits.txt
new file mode 100644
index 0000000..4c04ddc
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkQueryControlFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkQueryControlFlagBits,VkQueryControlFlagBits]]
+[source,c++]
+----
+typedef enum VkQueryControlFlagBits {
+ VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
+} VkQueryControlFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkQueryPipelineStatisticFlagBits.txt b/protocols/vulkan/api/enums/VkQueryPipelineStatisticFlagBits.txt
new file mode 100644
index 0000000..d41c7e1
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkQueryPipelineStatisticFlagBits.txt
@@ -0,0 +1,18 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkQueryPipelineStatisticFlagBits,VkQueryPipelineStatisticFlagBits]]
+[source,c++]
+----
+typedef enum VkQueryPipelineStatisticFlagBits {
+ VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
+ VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
+ VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
+ VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
+ VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
+ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
+ VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
+ VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
+ VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
+ VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
+ VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
+} VkQueryPipelineStatisticFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkQueryResultFlagBits.txt b/protocols/vulkan/api/enums/VkQueryResultFlagBits.txt
new file mode 100644
index 0000000..b972349
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkQueryResultFlagBits.txt
@@ -0,0 +1,11 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkQueryResultFlagBits,VkQueryResultFlagBits]]
+[source,c++]
+----
+typedef enum VkQueryResultFlagBits {
+ VK_QUERY_RESULT_64_BIT = 0x00000001,
+ VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
+ VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
+ VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
+} VkQueryResultFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkQueryType.txt b/protocols/vulkan/api/enums/VkQueryType.txt
new file mode 100644
index 0000000..768d353
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkQueryType.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkQueryType,VkQueryType]]
+[source,c++]
+----
+typedef enum VkQueryType {
+ VK_QUERY_TYPE_OCCLUSION = 0,
+ VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
+ VK_QUERY_TYPE_TIMESTAMP = 2,
+} VkQueryType;
+----
diff --git a/protocols/vulkan/api/enums/VkQueueFlagBits.txt b/protocols/vulkan/api/enums/VkQueueFlagBits.txt
new file mode 100644
index 0000000..cc7666f
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkQueueFlagBits.txt
@@ -0,0 +1,12 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkQueueFlagBits,VkQueueFlagBits]]
+[source,c++]
+----
+typedef enum VkQueueFlagBits {
+ VK_QUEUE_GRAPHICS_BIT = 0x00000001,
+ VK_QUEUE_COMPUTE_BIT = 0x00000002,
+ VK_QUEUE_TRANSFER_BIT = 0x00000004,
+ VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
+ VK_QUEUE_PROTECTED_BIT = 0x00000010,
+} VkQueueFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkResult.txt b/protocols/vulkan/api/enums/VkResult.txt
new file mode 100644
index 0000000..9e1610b
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkResult.txt
@@ -0,0 +1,27 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkResult,VkResult]]
+[source,c++]
+----
+typedef enum VkResult {
+ VK_SUCCESS = 0,
+ VK_NOT_READY = 1,
+ VK_TIMEOUT = 2,
+ VK_EVENT_SET = 3,
+ VK_EVENT_RESET = 4,
+ VK_INCOMPLETE = 5,
+ VK_ERROR_OUT_OF_HOST_MEMORY = -1,
+ VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
+ VK_ERROR_INITIALIZATION_FAILED = -3,
+ VK_ERROR_DEVICE_LOST = -4,
+ VK_ERROR_MEMORY_MAP_FAILED = -5,
+ VK_ERROR_LAYER_NOT_PRESENT = -6,
+ VK_ERROR_EXTENSION_NOT_PRESENT = -7,
+ VK_ERROR_FEATURE_NOT_PRESENT = -8,
+ VK_ERROR_INCOMPATIBLE_DRIVER = -9,
+ VK_ERROR_TOO_MANY_OBJECTS = -10,
+ VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
+ VK_ERROR_FRAGMENTED_POOL = -12,
+ VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
+ VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
+} VkResult;
+----
diff --git a/protocols/vulkan/api/enums/VkSampleCountFlagBits.txt b/protocols/vulkan/api/enums/VkSampleCountFlagBits.txt
new file mode 100644
index 0000000..f4eb0f3
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSampleCountFlagBits.txt
@@ -0,0 +1,14 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSampleCountFlagBits,VkSampleCountFlagBits]]
+[source,c++]
+----
+typedef enum VkSampleCountFlagBits {
+ VK_SAMPLE_COUNT_1_BIT = 0x00000001,
+ VK_SAMPLE_COUNT_2_BIT = 0x00000002,
+ VK_SAMPLE_COUNT_4_BIT = 0x00000004,
+ VK_SAMPLE_COUNT_8_BIT = 0x00000008,
+ VK_SAMPLE_COUNT_16_BIT = 0x00000010,
+ VK_SAMPLE_COUNT_32_BIT = 0x00000020,
+ VK_SAMPLE_COUNT_64_BIT = 0x00000040,
+} VkSampleCountFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkSamplerAddressMode.txt b/protocols/vulkan/api/enums/VkSamplerAddressMode.txt
new file mode 100644
index 0000000..0c80a7e
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSamplerAddressMode.txt
@@ -0,0 +1,12 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSamplerAddressMode,VkSamplerAddressMode]]
+[source,c++]
+----
+typedef enum VkSamplerAddressMode {
+ VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
+ VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
+ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
+ VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
+ VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
+} VkSamplerAddressMode;
+----
diff --git a/protocols/vulkan/api/enums/VkSamplerMipmapMode.txt b/protocols/vulkan/api/enums/VkSamplerMipmapMode.txt
new file mode 100644
index 0000000..b5fc0d3
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSamplerMipmapMode.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSamplerMipmapMode,VkSamplerMipmapMode]]
+[source,c++]
+----
+typedef enum VkSamplerMipmapMode {
+ VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
+ VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
+} VkSamplerMipmapMode;
+----
diff --git a/protocols/vulkan/api/enums/VkSamplerYcbcrModelConversion.txt b/protocols/vulkan/api/enums/VkSamplerYcbcrModelConversion.txt
new file mode 100644
index 0000000..0cfb10c
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSamplerYcbcrModelConversion.txt
@@ -0,0 +1,12 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSamplerYcbcrModelConversion,VkSamplerYcbcrModelConversion]]
+[source,c++]
+----
+typedef enum VkSamplerYcbcrModelConversion {
+ VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
+ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
+ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
+ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
+ VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
+} VkSamplerYcbcrModelConversion;
+----
diff --git a/protocols/vulkan/api/enums/VkSamplerYcbcrRange.txt b/protocols/vulkan/api/enums/VkSamplerYcbcrRange.txt
new file mode 100644
index 0000000..45c978e
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSamplerYcbcrRange.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSamplerYcbcrRange,VkSamplerYcbcrRange]]
+[source,c++]
+----
+typedef enum VkSamplerYcbcrRange {
+ VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
+ VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
+} VkSamplerYcbcrRange;
+----
diff --git a/protocols/vulkan/api/enums/VkSemaphoreImportFlagBits.txt b/protocols/vulkan/api/enums/VkSemaphoreImportFlagBits.txt
new file mode 100644
index 0000000..81d264f
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSemaphoreImportFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSemaphoreImportFlagBits,VkSemaphoreImportFlagBits]]
+[source,c++]
+----
+typedef enum VkSemaphoreImportFlagBits {
+ VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
+} VkSemaphoreImportFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkShaderStageFlagBits.txt b/protocols/vulkan/api/enums/VkShaderStageFlagBits.txt
new file mode 100644
index 0000000..3ea73c2
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkShaderStageFlagBits.txt
@@ -0,0 +1,15 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkShaderStageFlagBits,VkShaderStageFlagBits]]
+[source,c++]
+----
+typedef enum VkShaderStageFlagBits {
+ VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
+ VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
+ VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
+ VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
+ VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
+ VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
+ VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
+ VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
+} VkShaderStageFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkSharingMode.txt b/protocols/vulkan/api/enums/VkSharingMode.txt
new file mode 100644
index 0000000..13ae454
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSharingMode.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSharingMode,VkSharingMode]]
+[source,c++]
+----
+typedef enum VkSharingMode {
+ VK_SHARING_MODE_EXCLUSIVE = 0,
+ VK_SHARING_MODE_CONCURRENT = 1,
+} VkSharingMode;
+----
diff --git a/protocols/vulkan/api/enums/VkSparseImageFormatFlagBits.txt b/protocols/vulkan/api/enums/VkSparseImageFormatFlagBits.txt
new file mode 100644
index 0000000..2f23806
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSparseImageFormatFlagBits.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSparseImageFormatFlagBits,VkSparseImageFormatFlagBits]]
+[source,c++]
+----
+typedef enum VkSparseImageFormatFlagBits {
+ VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
+ VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
+ VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
+} VkSparseImageFormatFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkSparseMemoryBindFlagBits.txt b/protocols/vulkan/api/enums/VkSparseMemoryBindFlagBits.txt
new file mode 100644
index 0000000..e170e6f
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSparseMemoryBindFlagBits.txt
@@ -0,0 +1,8 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSparseMemoryBindFlagBits,VkSparseMemoryBindFlagBits]]
+[source,c++]
+----
+typedef enum VkSparseMemoryBindFlagBits {
+ VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
+} VkSparseMemoryBindFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkStencilFaceFlagBits.txt b/protocols/vulkan/api/enums/VkStencilFaceFlagBits.txt
new file mode 100644
index 0000000..951e58f
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkStencilFaceFlagBits.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkStencilFaceFlagBits,VkStencilFaceFlagBits]]
+[source,c++]
+----
+typedef enum VkStencilFaceFlagBits {
+ VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
+ VK_STENCIL_FACE_BACK_BIT = 0x00000002,
+ VK_STENCIL_FRONT_AND_BACK = 0x00000003,
+} VkStencilFaceFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkStencilOp.txt b/protocols/vulkan/api/enums/VkStencilOp.txt
new file mode 100644
index 0000000..9a9d331
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkStencilOp.txt
@@ -0,0 +1,15 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkStencilOp,VkStencilOp]]
+[source,c++]
+----
+typedef enum VkStencilOp {
+ VK_STENCIL_OP_KEEP = 0,
+ VK_STENCIL_OP_ZERO = 1,
+ VK_STENCIL_OP_REPLACE = 2,
+ VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
+ VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
+ VK_STENCIL_OP_INVERT = 5,
+ VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
+ VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
+} VkStencilOp;
+----
diff --git a/protocols/vulkan/api/enums/VkStructureType.txt b/protocols/vulkan/api/enums/VkStructureType.txt
new file mode 100644
index 0000000..c1c2d97
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkStructureType.txt
@@ -0,0 +1,121 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkStructureType,VkStructureType]]
+[source,c++]
+----
+typedef enum VkStructureType {
+ VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
+ VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
+ VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
+ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
+ VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
+ VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
+ VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
+ VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
+ VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
+ VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
+ VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
+ VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
+ VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
+ VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
+ VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
+ VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
+ VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
+ VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
+ VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
+ VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
+ VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
+ VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
+ VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
+ VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
+ VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
+ VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
+ VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
+ VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
+ VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
+ VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
+ VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
+ VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
+ VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
+ VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
+ VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
+ VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
+ VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
+ VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
+ VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
+ VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
+ VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
+ VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
+ VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
+ VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
+ VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
+ VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
+ VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
+ VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
+ VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
+ VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
+ VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
+ VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
+ VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
+ VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
+ VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
+ VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
+ VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
+ VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
+ VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
+ VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
+ VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
+ VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
+ VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
+ VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
+ VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
+ VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
+ VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
+ VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
+ VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
+ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
+ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
+ VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
+ VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
+ VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
+ VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
+ VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
+ VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
+ VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
+ VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
+ VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
+ VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
+ VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
+ VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
+ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
+ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
+} VkStructureType;
+----
diff --git a/protocols/vulkan/api/enums/VkSubgroupFeatureFlagBits.txt b/protocols/vulkan/api/enums/VkSubgroupFeatureFlagBits.txt
new file mode 100644
index 0000000..2cf4183
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSubgroupFeatureFlagBits.txt
@@ -0,0 +1,15 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSubgroupFeatureFlagBits,VkSubgroupFeatureFlagBits]]
+[source,c++]
+----
+typedef enum VkSubgroupFeatureFlagBits {
+ VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
+ VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
+ VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
+ VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
+ VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
+ VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
+ VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
+ VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
+} VkSubgroupFeatureFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkSubpassContents.txt b/protocols/vulkan/api/enums/VkSubpassContents.txt
new file mode 100644
index 0000000..b68c96b
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSubpassContents.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSubpassContents,VkSubpassContents]]
+[source,c++]
+----
+typedef enum VkSubpassContents {
+ VK_SUBPASS_CONTENTS_INLINE = 0,
+ VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
+} VkSubpassContents;
+----
diff --git a/protocols/vulkan/api/enums/VkSubpassDescriptionFlagBits.txt b/protocols/vulkan/api/enums/VkSubpassDescriptionFlagBits.txt
new file mode 100644
index 0000000..45d28a8
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSubpassDescriptionFlagBits.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSubpassDescriptionFlagBits,VkSubpassDescriptionFlagBits]]
+[source,c++]
+----
+typedef enum VkSubpassDescriptionFlagBits {
+} VkSubpassDescriptionFlagBits;
+----
diff --git a/protocols/vulkan/api/enums/VkSystemAllocationScope.txt b/protocols/vulkan/api/enums/VkSystemAllocationScope.txt
new file mode 100644
index 0000000..9316d8b
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkSystemAllocationScope.txt
@@ -0,0 +1,12 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSystemAllocationScope,VkSystemAllocationScope]]
+[source,c++]
+----
+typedef enum VkSystemAllocationScope {
+ VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
+ VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
+ VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
+ VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
+ VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
+} VkSystemAllocationScope;
+----
diff --git a/protocols/vulkan/api/enums/VkTessellationDomainOrigin.txt b/protocols/vulkan/api/enums/VkTessellationDomainOrigin.txt
new file mode 100644
index 0000000..55639d7
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkTessellationDomainOrigin.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkTessellationDomainOrigin,VkTessellationDomainOrigin]]
+[source,c++]
+----
+typedef enum VkTessellationDomainOrigin {
+ VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
+ VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
+} VkTessellationDomainOrigin;
+----
diff --git a/protocols/vulkan/api/enums/VkVendorId.txt b/protocols/vulkan/api/enums/VkVendorId.txt
new file mode 100644
index 0000000..dc70de2
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkVendorId.txt
@@ -0,0 +1,10 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkVendorId,VkVendorId]]
+[source,c++]
+----
+typedef enum VkVendorId {
+ VK_VENDOR_ID_VIV = 0x10001,
+ VK_VENDOR_ID_VSI = 0x10002,
+ VK_VENDOR_ID_KAZAN = 0x10003,
+} VkVendorId;
+----
diff --git a/protocols/vulkan/api/enums/VkVertexInputRate.txt b/protocols/vulkan/api/enums/VkVertexInputRate.txt
new file mode 100644
index 0000000..0483902
--- /dev/null
+++ b/protocols/vulkan/api/enums/VkVertexInputRate.txt
@@ -0,0 +1,9 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkVertexInputRate,VkVertexInputRate]]
+[source,c++]
+----
+typedef enum VkVertexInputRate {
+ VK_VERTEX_INPUT_RATE_VERTEX = 0,
+ VK_VERTEX_INPUT_RATE_INSTANCE = 1,
+} VkVertexInputRate;
+----
diff --git a/protocols/vulkan/api/flags/VkAccessFlags.txt b/protocols/vulkan/api/flags/VkAccessFlags.txt
new file mode 100644
index 0000000..872482f
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkAccessFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkAccessFlags,VkAccessFlags]]
+[source,c++]
+----
+typedef VkFlags VkAccessFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkAttachmentDescriptionFlags.txt b/protocols/vulkan/api/flags/VkAttachmentDescriptionFlags.txt
new file mode 100644
index 0000000..082dd0a
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkAttachmentDescriptionFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkAttachmentDescriptionFlags,VkAttachmentDescriptionFlags]]
+[source,c++]
+----
+typedef VkFlags VkAttachmentDescriptionFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkBufferCreateFlags.txt b/protocols/vulkan/api/flags/VkBufferCreateFlags.txt
new file mode 100644
index 0000000..6e6a11e
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkBufferCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkBufferCreateFlags,VkBufferCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkBufferCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkBufferUsageFlags.txt b/protocols/vulkan/api/flags/VkBufferUsageFlags.txt
new file mode 100644
index 0000000..91e7a63
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkBufferUsageFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkBufferUsageFlags,VkBufferUsageFlags]]
+[source,c++]
+----
+typedef VkFlags VkBufferUsageFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkBufferViewCreateFlags.txt b/protocols/vulkan/api/flags/VkBufferViewCreateFlags.txt
new file mode 100644
index 0000000..8b7bd4d
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkBufferViewCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkBufferViewCreateFlags,VkBufferViewCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkBufferViewCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkColorComponentFlags.txt b/protocols/vulkan/api/flags/VkColorComponentFlags.txt
new file mode 100644
index 0000000..2b1ba70
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkColorComponentFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkColorComponentFlags,VkColorComponentFlags]]
+[source,c++]
+----
+typedef VkFlags VkColorComponentFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkCommandBufferResetFlags.txt b/protocols/vulkan/api/flags/VkCommandBufferResetFlags.txt
new file mode 100644
index 0000000..3b274cd
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkCommandBufferResetFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCommandBufferResetFlags,VkCommandBufferResetFlags]]
+[source,c++]
+----
+typedef VkFlags VkCommandBufferResetFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkCommandBufferUsageFlags.txt b/protocols/vulkan/api/flags/VkCommandBufferUsageFlags.txt
new file mode 100644
index 0000000..bc63b89
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkCommandBufferUsageFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCommandBufferUsageFlags,VkCommandBufferUsageFlags]]
+[source,c++]
+----
+typedef VkFlags VkCommandBufferUsageFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkCommandPoolCreateFlags.txt b/protocols/vulkan/api/flags/VkCommandPoolCreateFlags.txt
new file mode 100644
index 0000000..4f5af57
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkCommandPoolCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCommandPoolCreateFlags,VkCommandPoolCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkCommandPoolCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkCommandPoolResetFlags.txt b/protocols/vulkan/api/flags/VkCommandPoolResetFlags.txt
new file mode 100644
index 0000000..fb8662e
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkCommandPoolResetFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCommandPoolResetFlags,VkCommandPoolResetFlags]]
+[source,c++]
+----
+typedef VkFlags VkCommandPoolResetFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkCommandPoolTrimFlags.txt b/protocols/vulkan/api/flags/VkCommandPoolTrimFlags.txt
new file mode 100644
index 0000000..1ca736d
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkCommandPoolTrimFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCommandPoolTrimFlags,VkCommandPoolTrimFlags]]
+[source,c++]
+----
+typedef VkFlags VkCommandPoolTrimFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkCullModeFlags.txt b/protocols/vulkan/api/flags/VkCullModeFlags.txt
new file mode 100644
index 0000000..6fd9b3f
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkCullModeFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkCullModeFlags,VkCullModeFlags]]
+[source,c++]
+----
+typedef VkFlags VkCullModeFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkDependencyFlags.txt b/protocols/vulkan/api/flags/VkDependencyFlags.txt
new file mode 100644
index 0000000..aba537d
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkDependencyFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDependencyFlags,VkDependencyFlags]]
+[source,c++]
+----
+typedef VkFlags VkDependencyFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkDescriptorPoolCreateFlags.txt b/protocols/vulkan/api/flags/VkDescriptorPoolCreateFlags.txt
new file mode 100644
index 0000000..9e652a8
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkDescriptorPoolCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDescriptorPoolCreateFlags,VkDescriptorPoolCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkDescriptorPoolCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkDescriptorPoolResetFlags.txt b/protocols/vulkan/api/flags/VkDescriptorPoolResetFlags.txt
new file mode 100644
index 0000000..da9f61c
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkDescriptorPoolResetFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDescriptorPoolResetFlags,VkDescriptorPoolResetFlags]]
+[source,c++]
+----
+typedef VkFlags VkDescriptorPoolResetFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkDescriptorSetLayoutCreateFlags.txt b/protocols/vulkan/api/flags/VkDescriptorSetLayoutCreateFlags.txt
new file mode 100644
index 0000000..8eb85fe
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkDescriptorSetLayoutCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDescriptorSetLayoutCreateFlags,VkDescriptorSetLayoutCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkDescriptorSetLayoutCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkDescriptorUpdateTemplateCreateFlags.txt b/protocols/vulkan/api/flags/VkDescriptorUpdateTemplateCreateFlags.txt
new file mode 100644
index 0000000..2d45a00
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkDescriptorUpdateTemplateCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDescriptorUpdateTemplateCreateFlags,VkDescriptorUpdateTemplateCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkDeviceCreateFlags.txt b/protocols/vulkan/api/flags/VkDeviceCreateFlags.txt
new file mode 100644
index 0000000..b543a95
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkDeviceCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDeviceCreateFlags,VkDeviceCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkDeviceCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkDeviceQueueCreateFlags.txt b/protocols/vulkan/api/flags/VkDeviceQueueCreateFlags.txt
new file mode 100644
index 0000000..c0d2287
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkDeviceQueueCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkDeviceQueueCreateFlags,VkDeviceQueueCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkDeviceQueueCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkEventCreateFlags.txt b/protocols/vulkan/api/flags/VkEventCreateFlags.txt
new file mode 100644
index 0000000..37eca7c
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkEventCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkEventCreateFlags,VkEventCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkEventCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkExternalFenceFeatureFlags.txt b/protocols/vulkan/api/flags/VkExternalFenceFeatureFlags.txt
new file mode 100644
index 0000000..b968089
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkExternalFenceFeatureFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalFenceFeatureFlags,VkExternalFenceFeatureFlags]]
+[source,c++]
+----
+typedef VkFlags VkExternalFenceFeatureFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkExternalFenceHandleTypeFlags.txt b/protocols/vulkan/api/flags/VkExternalFenceHandleTypeFlags.txt
new file mode 100644
index 0000000..1ac66f2
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkExternalFenceHandleTypeFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalFenceHandleTypeFlags,VkExternalFenceHandleTypeFlags]]
+[source,c++]
+----
+typedef VkFlags VkExternalFenceHandleTypeFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkExternalMemoryFeatureFlags.txt b/protocols/vulkan/api/flags/VkExternalMemoryFeatureFlags.txt
new file mode 100644
index 0000000..60af20a
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkExternalMemoryFeatureFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalMemoryFeatureFlags,VkExternalMemoryFeatureFlags]]
+[source,c++]
+----
+typedef VkFlags VkExternalMemoryFeatureFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkExternalMemoryHandleTypeFlags.txt b/protocols/vulkan/api/flags/VkExternalMemoryHandleTypeFlags.txt
new file mode 100644
index 0000000..dd0f11f
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkExternalMemoryHandleTypeFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalMemoryHandleTypeFlags,VkExternalMemoryHandleTypeFlags]]
+[source,c++]
+----
+typedef VkFlags VkExternalMemoryHandleTypeFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkExternalSemaphoreFeatureFlags.txt b/protocols/vulkan/api/flags/VkExternalSemaphoreFeatureFlags.txt
new file mode 100644
index 0000000..ea3ae40
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkExternalSemaphoreFeatureFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalSemaphoreFeatureFlags,VkExternalSemaphoreFeatureFlags]]
+[source,c++]
+----
+typedef VkFlags VkExternalSemaphoreFeatureFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkExternalSemaphoreHandleTypeFlags.txt b/protocols/vulkan/api/flags/VkExternalSemaphoreHandleTypeFlags.txt
new file mode 100644
index 0000000..1be21ee
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkExternalSemaphoreHandleTypeFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkExternalSemaphoreHandleTypeFlags,VkExternalSemaphoreHandleTypeFlags]]
+[source,c++]
+----
+typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkFenceCreateFlags.txt b/protocols/vulkan/api/flags/VkFenceCreateFlags.txt
new file mode 100644
index 0000000..e818e66
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkFenceCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFenceCreateFlags,VkFenceCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkFenceCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkFenceImportFlags.txt b/protocols/vulkan/api/flags/VkFenceImportFlags.txt
new file mode 100644
index 0000000..4e674fb
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkFenceImportFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFenceImportFlags,VkFenceImportFlags]]
+[source,c++]
+----
+typedef VkFlags VkFenceImportFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkFormatFeatureFlags.txt b/protocols/vulkan/api/flags/VkFormatFeatureFlags.txt
new file mode 100644
index 0000000..34df36a
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkFormatFeatureFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFormatFeatureFlags,VkFormatFeatureFlags]]
+[source,c++]
+----
+typedef VkFlags VkFormatFeatureFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkFramebufferCreateFlags.txt b/protocols/vulkan/api/flags/VkFramebufferCreateFlags.txt
new file mode 100644
index 0000000..3ea4f27
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkFramebufferCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkFramebufferCreateFlags,VkFramebufferCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkFramebufferCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkImageAspectFlags.txt b/protocols/vulkan/api/flags/VkImageAspectFlags.txt
new file mode 100644
index 0000000..eb2fefd
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkImageAspectFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageAspectFlags,VkImageAspectFlags]]
+[source,c++]
+----
+typedef VkFlags VkImageAspectFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkImageCreateFlags.txt b/protocols/vulkan/api/flags/VkImageCreateFlags.txt
new file mode 100644
index 0000000..9ca5cc6
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkImageCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageCreateFlags,VkImageCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkImageCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkImageUsageFlags.txt b/protocols/vulkan/api/flags/VkImageUsageFlags.txt
new file mode 100644
index 0000000..b4f5b2e
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkImageUsageFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageUsageFlags,VkImageUsageFlags]]
+[source,c++]
+----
+typedef VkFlags VkImageUsageFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkImageViewCreateFlags.txt b/protocols/vulkan/api/flags/VkImageViewCreateFlags.txt
new file mode 100644
index 0000000..8e88358
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkImageViewCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkImageViewCreateFlags,VkImageViewCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkImageViewCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkInstanceCreateFlags.txt b/protocols/vulkan/api/flags/VkInstanceCreateFlags.txt
new file mode 100644
index 0000000..fcc3c6e
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkInstanceCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkInstanceCreateFlags,VkInstanceCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkInstanceCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkMemoryAllocateFlags.txt b/protocols/vulkan/api/flags/VkMemoryAllocateFlags.txt
new file mode 100644
index 0000000..e5cb2d8
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkMemoryAllocateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkMemoryAllocateFlags,VkMemoryAllocateFlags]]
+[source,c++]
+----
+typedef VkFlags VkMemoryAllocateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkMemoryHeapFlags.txt b/protocols/vulkan/api/flags/VkMemoryHeapFlags.txt
new file mode 100644
index 0000000..a053c19
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkMemoryHeapFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkMemoryHeapFlags,VkMemoryHeapFlags]]
+[source,c++]
+----
+typedef VkFlags VkMemoryHeapFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkMemoryMapFlags.txt b/protocols/vulkan/api/flags/VkMemoryMapFlags.txt
new file mode 100644
index 0000000..5eaa72b
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkMemoryMapFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkMemoryMapFlags,VkMemoryMapFlags]]
+[source,c++]
+----
+typedef VkFlags VkMemoryMapFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkMemoryPropertyFlags.txt b/protocols/vulkan/api/flags/VkMemoryPropertyFlags.txt
new file mode 100644
index 0000000..0321bfc
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkMemoryPropertyFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkMemoryPropertyFlags,VkMemoryPropertyFlags]]
+[source,c++]
+----
+typedef VkFlags VkMemoryPropertyFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPeerMemoryFeatureFlags.txt b/protocols/vulkan/api/flags/VkPeerMemoryFeatureFlags.txt
new file mode 100644
index 0000000..6d026dd
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPeerMemoryFeatureFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPeerMemoryFeatureFlags,VkPeerMemoryFeatureFlags]]
+[source,c++]
+----
+typedef VkFlags VkPeerMemoryFeatureFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineCacheCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineCacheCreateFlags.txt
new file mode 100644
index 0000000..b1157c0
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineCacheCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineCacheCreateFlags,VkPipelineCacheCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineCacheCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineColorBlendStateCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineColorBlendStateCreateFlags.txt
new file mode 100644
index 0000000..16f9b7a
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineColorBlendStateCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineColorBlendStateCreateFlags,VkPipelineColorBlendStateCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineColorBlendStateCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineCreateFlags.txt
new file mode 100644
index 0000000..a3f8b0e
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineCreateFlags,VkPipelineCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineDepthStencilStateCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineDepthStencilStateCreateFlags.txt
new file mode 100644
index 0000000..4d82ea6
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineDepthStencilStateCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineDepthStencilStateCreateFlags,VkPipelineDepthStencilStateCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineDynamicStateCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineDynamicStateCreateFlags.txt
new file mode 100644
index 0000000..afd60d5
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineDynamicStateCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineDynamicStateCreateFlags,VkPipelineDynamicStateCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineDynamicStateCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineInputAssemblyStateCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineInputAssemblyStateCreateFlags.txt
new file mode 100644
index 0000000..cca7f17
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineInputAssemblyStateCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineInputAssemblyStateCreateFlags,VkPipelineInputAssemblyStateCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineLayoutCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineLayoutCreateFlags.txt
new file mode 100644
index 0000000..49351be
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineLayoutCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineLayoutCreateFlags,VkPipelineLayoutCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineLayoutCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineMultisampleStateCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineMultisampleStateCreateFlags.txt
new file mode 100644
index 0000000..a40b6e5
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineMultisampleStateCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineMultisampleStateCreateFlags,VkPipelineMultisampleStateCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineMultisampleStateCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineRasterizationStateCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineRasterizationStateCreateFlags.txt
new file mode 100644
index 0000000..773d811
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineRasterizationStateCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineRasterizationStateCreateFlags,VkPipelineRasterizationStateCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineRasterizationStateCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineShaderStageCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineShaderStageCreateFlags.txt
new file mode 100644
index 0000000..c387290
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineShaderStageCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineShaderStageCreateFlags,VkPipelineShaderStageCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineShaderStageCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineStageFlags.txt b/protocols/vulkan/api/flags/VkPipelineStageFlags.txt
new file mode 100644
index 0000000..acbfee8
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineStageFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineStageFlags,VkPipelineStageFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineStageFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineTessellationStateCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineTessellationStateCreateFlags.txt
new file mode 100644
index 0000000..4a461ce
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineTessellationStateCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineTessellationStateCreateFlags,VkPipelineTessellationStateCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineTessellationStateCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineVertexInputStateCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineVertexInputStateCreateFlags.txt
new file mode 100644
index 0000000..09ca0c2
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineVertexInputStateCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineVertexInputStateCreateFlags,VkPipelineVertexInputStateCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineVertexInputStateCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkPipelineViewportStateCreateFlags.txt b/protocols/vulkan/api/flags/VkPipelineViewportStateCreateFlags.txt
new file mode 100644
index 0000000..5996716
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkPipelineViewportStateCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkPipelineViewportStateCreateFlags,VkPipelineViewportStateCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkPipelineViewportStateCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkQueryControlFlags.txt b/protocols/vulkan/api/flags/VkQueryControlFlags.txt
new file mode 100644
index 0000000..84e6091
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkQueryControlFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkQueryControlFlags,VkQueryControlFlags]]
+[source,c++]
+----
+typedef VkFlags VkQueryControlFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkQueryPipelineStatisticFlags.txt b/protocols/vulkan/api/flags/VkQueryPipelineStatisticFlags.txt
new file mode 100644
index 0000000..30e0bdb
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkQueryPipelineStatisticFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkQueryPipelineStatisticFlags,VkQueryPipelineStatisticFlags]]
+[source,c++]
+----
+typedef VkFlags VkQueryPipelineStatisticFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkQueryPoolCreateFlags.txt b/protocols/vulkan/api/flags/VkQueryPoolCreateFlags.txt
new file mode 100644
index 0000000..72f039b
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkQueryPoolCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkQueryPoolCreateFlags,VkQueryPoolCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkQueryPoolCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkQueryResultFlags.txt b/protocols/vulkan/api/flags/VkQueryResultFlags.txt
new file mode 100644
index 0000000..8aca275
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkQueryResultFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkQueryResultFlags,VkQueryResultFlags]]
+[source,c++]
+----
+typedef VkFlags VkQueryResultFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkQueueFlags.txt b/protocols/vulkan/api/flags/VkQueueFlags.txt
new file mode 100644
index 0000000..bc95339
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkQueueFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkQueueFlags,VkQueueFlags]]
+[source,c++]
+----
+typedef VkFlags VkQueueFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkRenderPassCreateFlags.txt b/protocols/vulkan/api/flags/VkRenderPassCreateFlags.txt
new file mode 100644
index 0000000..c5ab6d1
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkRenderPassCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkRenderPassCreateFlags,VkRenderPassCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkRenderPassCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkSampleCountFlags.txt b/protocols/vulkan/api/flags/VkSampleCountFlags.txt
new file mode 100644
index 0000000..cd58707
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkSampleCountFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSampleCountFlags,VkSampleCountFlags]]
+[source,c++]
+----
+typedef VkFlags VkSampleCountFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkSamplerCreateFlags.txt b/protocols/vulkan/api/flags/VkSamplerCreateFlags.txt
new file mode 100644
index 0000000..0a3114d
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkSamplerCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSamplerCreateFlags,VkSamplerCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkSamplerCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkSemaphoreCreateFlags.txt b/protocols/vulkan/api/flags/VkSemaphoreCreateFlags.txt
new file mode 100644
index 0000000..75c3c4f
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkSemaphoreCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSemaphoreCreateFlags,VkSemaphoreCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkSemaphoreCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkSemaphoreImportFlags.txt b/protocols/vulkan/api/flags/VkSemaphoreImportFlags.txt
new file mode 100644
index 0000000..fdac9c5
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkSemaphoreImportFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSemaphoreImportFlags,VkSemaphoreImportFlags]]
+[source,c++]
+----
+typedef VkFlags VkSemaphoreImportFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkShaderModuleCreateFlags.txt b/protocols/vulkan/api/flags/VkShaderModuleCreateFlags.txt
new file mode 100644
index 0000000..7c77525
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkShaderModuleCreateFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkShaderModuleCreateFlags,VkShaderModuleCreateFlags]]
+[source,c++]
+----
+typedef VkFlags VkShaderModuleCreateFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkShaderStageFlags.txt b/protocols/vulkan/api/flags/VkShaderStageFlags.txt
new file mode 100644
index 0000000..a057bb0
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkShaderStageFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkShaderStageFlags,VkShaderStageFlags]]
+[source,c++]
+----
+typedef VkFlags VkShaderStageFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkSparseImageFormatFlags.txt b/protocols/vulkan/api/flags/VkSparseImageFormatFlags.txt
new file mode 100644
index 0000000..a47b74a
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkSparseImageFormatFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSparseImageFormatFlags,VkSparseImageFormatFlags]]
+[source,c++]
+----
+typedef VkFlags VkSparseImageFormatFlags;
+
+----
diff --git a/protocols/vulkan/api/flags/VkSparseMemoryBindFlags.txt b/protocols/vulkan/api/flags/VkSparseMemoryBindFlags.txt
new file mode 100644
index 0000000..487dd1a
--- /dev/null
+++ b/protocols/vulkan/api/flags/VkSparseMemoryBindFlags.txt
@@ -0,0 +1,7 @@
+// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry
+[[VkSparseMemoryBindFlags,VkSparseMemoryBindFlags]]
+[source,c++]
+----
+typedef VkFlags VkSparseMemoryBindFlags;
+
+----