Jon Leech 7b81afeb9f Change log for July 20, 2019 Vulkan 1.1.116 spec update:
* Happy 50th Lunar Landing Day!
  * Update release number to 116.

Internal Issues:

  * Clarify that flink:vkCmdBeginQuery is the same as
    flink:vkCmdBeginQueryIndexEXT with index = 0, and that
    flink:vkCmdEndQuery is the same as flink:vkCmdEndQueryIndexEXT with
    index = 0 (internal issue 1735).
  * Clarify that when copying the depth aspect between buffers and images
    via slink:VkBufferImage Copy, the depth values in buffer memory must be
    in range if the `<<VK_EXT_depth_range_unrestricted>>` extension is not
    enabled (internal issue 1737).
  * Minor language tweaks in the <<spirvenv-module-validation, Validation
    Rules within a Module>> section (internal issue 1744).
  * Change the slink:VkPhysicalDeviceFloatControlsPropertiesKHR structure in
    the `<<VK_KHR_shader_controls>>` extension. This is a rare case of
    breaking the interface of an existing extension to acknowledge the
    reality of divergent vendor implementations that could not be described
    properly otherwise, and the breaking change is considered acceptable
    given the expected low use of the extension (internal issue 1734).
    Specific changes:
  ** Added the slink:VkShaderFloatControlsIndependenceKHR enumeration to
     describe the three possible behaviors.
  ** Renamed pname:separateDenormSettings to
     pname:denormBehaviorIndependence.
  ** Renamed pname:separateRoundingModeSettings to
     pname:roundingModeIndependence
  * Add a missing valid usage statement for
    slink:VkQueryPoolCreateInfo::pname:queryCount (internal issue 1742).
  * Update the `<<VK_NV_shading_rate_image>>` appendix to list all
    interfaces defined by the extension.
  * Add a valid usage statement to
    slink:VkWriteDescriptorSetAccelerationStructureNV to clarify that
    acceleration structure descriptors must be top level structures.

New Extensions:

  * `<<VK_EXT_subgroup_size_control>>`
2019-07-20 01:49:16 -07:00
2018-09-24 10:55:10 -04:00

ifdef::env-github[]
:note-caption: :information_source:
endif::[]

= Vulkan^(R)^ API Documentation Project

This repository contains sources for the formal documentation of the Vulkan
API. This includes:

[options="compact"]
 * The Vulkan API Specification
 * Specification of Vulkan extensions
 * API reference ("`man`") pages
 * The XML API Registry (also mirrored at
   https://github.com/KhronosGroup/Vulkan-Headers)
 * Vulkan header files (also mirrored at
   https://github.com/KhronosGroup/Vulkan-Headers)
 * Related tools and scripts.

The authoritative public repository is located at
https://github.com/KhronosGroup/Vulkan-Docs/.
It hosts a public Issue tracker, and outside developers can file proposed
patches (Pull Requests) against the Specification, subject to approval
by Khronos.

If in doubt where to submit your Issue, consult the
https://github.com/KhronosGroup/Vulkan-Ecosystem repo.


== Branch Structure

Everything is now maintained in the `master` branch of the repository.
From this branch it is possible to generate both Vulkan 1.1 and Vulkan 1.0
Specifications, as well as specifications for any set of Extensions.


== Directory Structure

The directory structure is as follows:

```
README.adoc           This file
BUILD.adoc            Documents how to build the specifications, and man pages
COPYING.md            Copyright and licensing information
CODE_OF_CONDUCT.md    Code of Conduct
ChangeLog.txt         Change log summary for each public spec update
Makefile, make*       Makefile and helper build scripts (see BUILD.adoc)
appendices/           Specification appendices
chapters/             Specification chapters
config/               Asciidoctor configuration, CSS, and index generator
images/               Images (figures, diagrams, icons)
man/                  Reference (man) pages for the API; mostly extracted from the spec source
out/                  Default directory for the generated documents
scripts/              Helper scripts used in specification, header, and reference page generation
style/                Sources for "styleguide" (Vulkan Documentation and Extensions: Procedures and Conventions)
xml/                  XML API Registry (vk.xml)
registry.txt          Sources for documentation of the vk.xml format
```


== Building the Specification and Reference Pages

The document sources are marked up in Asciidoctor format, and we use
`asciidoctor` and related toolchain components to generate output documents.
See link:BUILD.adoc[BUILD.adoc] for more information on installing the
toolchain and building the Specification.


== Generating Headers and Related Files

See link:xml/README.adoc[xml/README.adoc].

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

    $ make clean install

The other generated files are built as required via dependencies in
the top-level `Makefile`.
Description
The Vulkan API Specification and related tools
Readme
Languages
JavaScript 59.4%
Python 32.6%
CSS 3.1%
Ruby 2%
Makefile 1.1%
Other 1.7%