// Copyright 2023-2026 The Khronos Group, Inc. // SPDX-License-Identifier: CC-BY-4.0
= Khronos Vulkan^®^ Tutorial
ifndef::site-gen-antora[] [NOTE]
The tutorial uses the Antora site generator, documentation links might not work when viewed through this git repository. Please use this link:https://docs.vulkan.org/tutorial/latest/00_Introduction.html[this link] to view the tutorial instead.
endif::[]
== Attribution
The Khronos Vulkan^®^ Tutorial is based on the "link:https://vulkan-tutorial.com/[Vulkan Tutorial]" by Alexander Overvoorde licensed under link:https://creativecommons.org/licenses/by-sa/4.0/[CC BY-SA 4.0].
The following tutorials were written by Holochip Corporation and released under the link:https://www.apache.org/licenses/LICENSE-2.0[Apache-2.0]:
- xref:ML_Inference/introduction.adoc[Machine learning inference]
- xref:OpenXR_Vulkan_Spatial_Computing/introduction.adoc[Vulkan for XR]
- xref:AI_Assisted_Vulkan/introduction.adoc[LLM-Assistant Vulkan Development]
- xref:Advanced_glTF/introduction.adoc[Advanced glTF]
- xref:Advanced_Vulkan_Compute/introduction.adoc[Advanced Vulkan Compute]
- xref:Building_a_Simple_Engine/introduction.adoc[Building a Simple Game Engine]
- xref:Synchronization/introduction.adoc[Synchronization]
- xref:Building_a_Simple_Engine/Courses/Opacity_Micromaps/00_introduction.adoc[Opacity Micromaps mini course]
The following courses were written by Arm Limited.
- xref:courses/18_Ray_tracing/00_Overview.adoc[SIGGRAPH 2025: Hands-on Vulkan Ray Tracing with Dynamic Rendering]
- xref:courses/siggraph2026_vk_tutorial/00_Overview.adoc[SIGGRAPH 2026: How to write a Vulkan application in 2026]
== About
This repository hosts the contents of the link:https://docs.vulkan.org/tutorial/latest[Khronos Vulkan Tutorial]. The tutorial is part of the link:https://github.com/KhronosGroup/Vulkan-Site[Vulkan Documentation Project].
== Differences
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
- link:https://shader-slang.org/[Slang] as the primary shading language
- Modern C++ (20)
- link:https://github.com/KhronosGroup/Vulkan-Hpp[Vulkan-Hpp] with link:https://en.wikipedia.org/wiki/Resource_acquisition_is_initialization[RAII]
It also contains Vulkan usage clarifications, improved synchronization and new content.
== Project Structure
The repository is organized into several important directories:
en/- Contains the tutorial content in English, organized by chapters ** The main tutorial covers fundamental Vulkan concepts (chapters 00-17) ** The "Building a Simple Engine" section builds upon these fundamentals to create a structured rendering engineattachments/- Contains code examples, shader files, and resources used in the tutorialimages/- Contains illustrations, diagrams, and screenshots used in the tutorialscripts/- Contains utility scripts, including dependency installation scriptsantora/- Contains configuration files for the Antora documentation system
== Installation Dependencies
The project provides scripts to help you install the necessary dependencies:
=== Linux Run the following command to install dependencies on Linux: [source,bash]
./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.
=== Windows Run the following command to install dependencies on Windows: [source,batch]
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/.
== License
The contents of this repository are licensed as https://creativecommons.org/licenses/by-sa/4.0/[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
https://creativecommons.org/publicdomain/zero/1.0/[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.
== Contributing
Contributions are welcome, details on how to contribute and the technical requirements that have to be met can be found in link:CONTRIBUTING.adoc[this document].
[NOTE]
LLMs like Claude, ChatGPT and Gemini along with local SLMs were used to assist in writing these tutorials.
AI was used for:
- Reviewing, with a particular focus on spelling and grammar.
- Assisting with small refactors
- Generating generic language between human created content.
Humans have reviewed all content of all tutorials and we welcome feedback.