/Vulkan-Docs

The Vulkan API Specification and related tools

Primary LanguageCOtherNOASSERTION

Vulkan® 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

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
src/spec/               XML API Registry (vk.xml) and related scripts
src/vulkan/             Vulkan headers, generated from the Registry
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 doc/specs/vulkan/README.adoc for more information on installing the toolchain and building the Specification.

The header files (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 header files, are not checked into the repository. If you change vk.xml, you can regenerate the header by going to src/spec and running:

$ make clean install

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