C.9. Documenting Extensions

Extensions are documented as modifications to the Vulkan specification. These modifications will be on Git branches that are named with the following syntax: <major.minor core spec version>-<extension_name>

For example, the VK_KHR_surface extension will be documented relative to version 1.0 of the Vulkan specification. As such, the branch name will be: 1.0-VK_KHR_surface

If the extension modifies an existing section of the Vulkan specification, those modifications are made in-place. Since the changes are on a branch, the core-only specification can be easily produced. A specification with an extension is created by merging in the extension’s branch contents.

Extensions should be merged according to their registered extension number. If two extensions both modify the same portion of the specification, the higher-numbered extension should take care to deal with any conflicts.

The WSI extensions were used to help pioneer what should be done for extensions. This includes the following: