The Vulkan API Specification and related tools
Go to file
Jon Leech 0a1c49409f 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).

Other Issues:

New Extensions:
2017-10-28 02:15:09 -07:00
doc/specs Change log for October 27, 2017 Vulkan 1.0.65 spec update: 2017-10-28 02:15:09 -07:00
out Change log for February 27, 2017 Vulkan 1.0.42 spec update: 2017-02-26 22:54:26 -08:00
src Change log for October 27, 2017 Vulkan 1.0.65 spec update: 2017-10-28 02:15:09 -07: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 October 13, 2017 Vulkan 1.0.63 spec update: 2017-10-12 19:57:47 -07: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` .