The Vulkan API Specification and related tools
Go to file
Jon Leech 5769283448 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.
2018-01-15 05:29:25 -08:00
doc/specs Change log for January 15, 2018 Vulkan 1.0.68 spec update: 2018-01-15 05:29:25 -08:00
out Fix random grammar 2017-12-15 21:01:02 +01:00
src Change log for January 15, 2018 Vulkan 1.0.68 spec update: 2018-01-15 05:29:25 -08:00
.gitattributes Change log for March 17, 2017 Vulkan 1.0.44 spec update: 2017-03-17 22:53:58 -07:00
.gitignore Change log for October 6, 2017 Vulkan 1.0.62 spec update: 2017-10-06 21:51:59 -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 January 15, 2018 Vulkan 1.0.68 spec update: 2018-01-15 05:29:25 -08:00
README.adoc Change log for February 17, 2017 Vulkan 1.0.41 spec update: 2017-02-17 03:57:46 -08: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

README.adoc

Vulkan^(R)^ API Documentation Project
=====================================

This repository contains formal documentation of the Vulkan API. This
includes the main API Specification, the reference (man) pages, the XML API
Registry, and related tools and scripts.

Single-Branch Model
-------------------

As of the 1.0.25 release, we have switched to a new "`single-branch`" model
in which all extensions are included in the source of the 1.0 branch of the
Specification, and can be configured in or out of the build using Makefile
options.

Repository Structure
--------------------

```
README.adoc             This file
ChangeLog.txt           Change log summary for each public spec update
doc/specs/              Main documentation tree
    vulkan/             Vulkan specification
        appendices/     Appendices - one file each
        chapters/       Chapters - one file each
        config/         asciidoc configuration
        images/         Images (figures, diagrams, icons)
        man/            Reference (manual) pages for API, mostly extracted from the spec source
    misc/               Related specifications (GL_KHR_vulkan_glsl)
src/spec/               XML API Registry (vk.xml) and related scripts
src/vulkan/             Vulkan headers, generated from the Registry
```

Building the Specification and Reference Pages
----------------------------------------------

As of the 1.0.40 release, we have moved from the old `asciidoc` toolchain to
a new one based on `asciidoctor`. See `doc/specs/vulkan/README.adoc` for
more information on installing the toolchain and building the Specification.

Generating Headers and Related Files
------------------------------------

The header file (`src/vulkan/vulkan.h`) and many parts of the specification
and reference page documents are generated from descriptions in the XML API
Registry (`src/spec/vk.xml`). The generated files, with the exception of
`vulkan.h`, are not checked into the repository. If you change `vk.xml`, you
can regenerate the header by going to `src/spec` and running:

    $ make clobber install

The other generated files are built as required via dependencies in
`doc/specs/vulkan/Makefile` .