The source code for The Vulkan-Tools components is sponsored by Khronos and LunarG.
Repository Issue labels:
It is the maintainers goal for all issues to be assigned within one business day of their submission. If you choose to work on an issue that is assigned, simply coordinate with the current assignee.
Use the Google style guide for source code with the following exceptions:
Run clang-format on your changes to maintain consistent formatting
.clang-format
files present in the repository to define clang-format settings which are found and used automatically by clang-format.# Make changes to the source. $ git add -u . $ git clang-format --style=file # Check to see if clang-format made any changes and if they are OK. $ git add -u . $ git commit
Strive for commits that implement a single or related set of functionality, using as many commits as is necessary (more is better). That said, please ensure that the repository compiles and passes tests without error for each commit in your pull request. Note that to be accepted into the repository, the pull request must [pass all tests](#testing your changes) on all supported platforms
The icd/generated
and vulkaninfo/generated
directories contains source code that is created by several generator scripts in the scripts
directory. All changes to these scripts must be submitted with the corresponding generated output to keep the repository self-consistent. This requirement is enforced by CI. Regenerate source files after modifying any of the generator scripts and before building and testing your changes. More details can be found in BUILD.md.
Run the repository components with the Vulkan Validation Layers before and after each of your commits to check for any regressions.
(These instructions are for Linux)
In the cube
directory, run:
vkcube vkcube --validate
vulkaninfo
directory, run:vulkaninfo
You will be prompted with a one-time “click-through” CLA dialog as part of submitting your pull request or other contribution to GitHub.
All contributions made to the Vulkan-Tools repository are Khronos branded and as such, any new files need to have the Khronos license (Apache 2.0 style) and copyright included. Please see an existing file in this repository for an example.
All contributions made to the LunarG repositories are to be made under the Apache 2.0 license and any new files need to include this license and any applicable copyrights.
You can include your individual copyright after any existing copyrights.