The Vulkan API Specification and related tools
Go to file
Jon Leech 5300d9f05e 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`".

New Extensions:
2018-04-15 03:32:07 -07:00
appendices Change log for April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -07:00
chapters Change log for April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -07:00
config Change log for April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -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 April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -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 Fix Makefile PATCHVERSION to 72, and finish cleaning up after the 2018-04-05 05:07:37 -07:00
xml Change log for April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -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 April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -07:00
Makefile Change log for April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -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 Change log for April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -07:00
genRelease Change log for April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -07:00
genspec.py Fix Makefile PATCHVERSION to 72, and finish cleaning up after the 2018-04-05 05:07:37 -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 Fix Makefile PATCHVERSION to 72, and finish cleaning up after the 2018-04-05 05:07:37 -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 Change log for April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -07:00
reflow.py Fix Makefile PATCHVERSION to 72, and finish cleaning up after the 2018-04-05 05:07:37 -07:00
reflow_count.py Change log for April 15, 2018 Vulkan 1.1.73 spec update: 2018-04-15 03:32:07 -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 Fix Makefile PATCHVERSION to 72, and finish cleaning up after the 2018-04-05 05:07:37 -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`.