Vulkan Documentation
About
Welcome to the official Documentation site for the cross-platform Vulkan graphics and compute API. This is your starting point for all things related to Vulkan. This site gathers together several key Vulkan documents into a convenient single site.This allows searching and cross-linking across documents, to help navigate quickly to the information you need for developing Vulkan-based applications.
This build of the site includes the Vulkan 1.4.317 API specification (with all registered extensions), generated on 2025-06-06 19:49:55Z from git branch: main commit: 28261d476b791d4c5f1daeb158d9989650b87192.
How to Navigate This Site
The site is organized into “components”. The left navigation sidebar links to pages in the current component. The bottom-left button switches between components.
The top navigation also has links to all components and related external documentation. It also allows for searching within this site. If the “In this component” box is checked, search will be restricted to the current component. Otherwise, all components of the site are searched.
On pages with multiple sections, a right navigation sidebar links to sections in the current page.
What’s Included
Vulkan Specification
The Vulkan specification describes the Vulkan Application Programming Interface (API). Vulkan is a C99 API designed for explicit control of low-level graphics and compute functionality.
The specification is aimed at implementors of Vulkan and at developers that already know the basics of Vulkan and want to read up on more advanced topics.
Vulkan Feature Descriptions
The Vulkan feature descriptions include extension documents that are written outlining the proposed API for new extensions. They are the base for the final extension specification and contain supplementary documentation.
It is closely related to the Vulkan specification and can help to understand why an extension or a feature has been implemented in a given way.
Vulkan Guide
The Vulkan Guide is designed to help developers get up and going with the world of Vulkan. It is aimed to be a light read that leads to many other useful links depending on what a developer is looking for. All information is intended to help better fill the gaps about the many nuances of the Vulkan ecosystem including peripheral topics like shading languages.
The Guide is a good starting point for first time Vulkan developers.
Vulkan Samples
The Vulkan Samples are a collection of resources to help you develop optimized Vulkan applications. These C++ samples demonstrate a wide range of Vulkan’s functionality. From writing a first "Hello triangle" sample to rendering complex scenes, doing GPU based work and using hardware accelerated ray tracing, these samples are trying to help developers learn how to use Vulkan.
Vulkan Tutorial
The Vulkan tutorial will teach you the basics of using Vulkan. It’ll help you get started with the API and teaches you how to get your first graphics and compute programs up and running using the C++ programming language.
The Tutorial is aimed at people starting with Vulkan. If you are new to Vulkan, this should be your starting point.
GLSL Specification
Although Vulkan consumes shaders in SPIR-V, one of the most widely used shading languages is GLSL. This part of the documentation site contains the GLSL shading language specification with Vulkan specific extensions.
How to get Started With Vulkan
Requirements
Vulkan is a available on a wide range of platforms. To develop with it, you first need an implementation that supports Vulkan. Most systems nowadays support Vulkan out of the box, as support ships via graphics cards drivers.
For actually writing code that uses Vulkan, you need bindings for your programming language like the C bindings (that also work with C++) or the C++ bindings that offers a C++ based interface to the API.
Vulkan SDK
While not a requirement for developing Vulkan application, the LunarG Vulkan SDK is a convenient package of components and tools to help with developing Vulkan applications. Using the SDK is recommended.
First Vulkan Program
The Vulkan SDK contains C and C++ project templates for Microsoft Visual Studio that can be used as a starting point for writing Vulkan programs.
Another option is to follow the development environment chapter of the The Vulkan tutorial which has instructions for different platforms.
As a third option, the The Vulkan Samples come with build system that supports different platforms and C++ based development environments.
Getting Help
The Vulkan communities are there to help with all questions regarding the Vulkan ecosystem. Official channels include Discord, Reddit and a Vulkan forum.
Feedback
If you need to report a problem or want to build the site yourself, start with the Vulkan-Site repository on GitHub.
This site is generated using the Antora static site generator.