The Khronos Vulkan® Tutorial is based on the "Vulkan Tutorial" by Alexander Overvoorde licensed under CC BY-SA 4.0.
This repository hosts the contents of the Khronos Vulkan Tutorial. The tutorial is part of the Vulkan Documentation Project.
Compared to the original tutorial, this version of the tutorial is teaching up-to-date concepts:
-
Vulkan 1.4 as a baseline
-
Dynamic rendering instead of render passes
-
Timeline semaphores
-
Slang as the primary shading language
-
Modern C++ (20) with modules
-
Vulkan-Hpp with RAII
It also contains Vulkan usage clarifications, improved synchronization and new content.
The repository is organized into several important directories:
-
en/
- Contains the tutorial content in English, organized by chapters -
attachments/
- Contains code examples, shader files, and resources used in the tutorial -
images/
- Contains illustrations, diagrams, and screenshots used in the tutorial -
scripts/
- Contains utility scripts, including dependency installation scripts -
antora/
- Contains configuration files for the Antora documentation system
The project provides scripts to help you install the necessary dependencies:
Run the following command to install dependencies on Linux:
./scripts/install_dependencies_linux.sh
This script detects your package manager (apt, dnf, pacman) and installs the required dependencies, including: * Build essentials (gcc, cmake, ninja-build) * GLFW, GLM, tinyobjloader, stb * X Window System dependencies
It also provides instructions for installing the Vulkan SDK.
Run the following command to install dependencies on Windows:
scripts\install_dependencies_windows.bat
This script uses vcpkg to install the required dependencies, including: * GLFW, GLM, tinyobjloader, stb
You will also need to install the Vulkan SDK separately from https://vulkan.lunarg.com/.
The contents of this repository are licensed as CC BY-SA 4.0, unless stated otherwise. By contributing to this repository, you agree to license your contributions to the public under that same license.
The code listings in the attachments
directory are licensed as
CC0 1.0 Universal.
By contributing to that directory, you agree to license your contributions to the public under that same public domain-like license.
Contributions are welcome, details on how to contribute and the technical requirements that have to be met can be found in this document.