The Vulkan API Specification and related tools
Go to file
Jon Leech 26f0bdbf1e Change log for March 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`
2018-04-05 04:24:56 -07:00
appendices Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
chapters Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
config Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
images Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
include/vulkan Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
katex Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
man Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
out Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
scripts Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
src/ext_loader Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
style Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
xml Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
.gitattributes Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
.gitignore Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
BUILD.adoc Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
COPYING.md Change log for June 24, 2017 Vulkan 1.0.53 spec update: 2017-06-26 19:32:10 -07:00
ChangeLog.txt Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
Makefile Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
README.adoc Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
checkLinks.py Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
copyright-ccby.txt Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
copyright-spec.txt Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
fixupRef.py Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
genRef.py Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
genRelease Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
genspec.py Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
installRelease Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
makeAllExts Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
makeExt Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
makeKHR Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
promote.py Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
refDesc.py Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
refPageNotes.md Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
reflib.py Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00
reflow.py Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
reflow_count.py Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
registry.txt Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
sandboxCopy Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
styleguide.txt Change log for March 5, 2018 Vulkan 1.1.72 spec update: 2018-04-05 04:24:56 -07:00
update_valid_usage_ids.sh Change log for October 6, 2017 Vulkan 1.0.62 spec update: 2017-10-06 21:51:59 -07:00
vkspec.txt Restructure the repository to put the specification Makefile and 2018-04-04 23:08:43 -07:00

README.adoc

= 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`.