keywords: Vulkan Documents & Tutorials Collection

Tutorials & Learning Resource

Khronos Official

Khronos Samples
https://github.com/KhronosGroup/Vulkan-Samples

Khronos Vulkan Forum
https://community.khronos.org/c/vulkan

Khronos webinars and video recordings on YouTube
https://www.youtube.com/user/khronosgroup

Khronos Vulkan Guide. One stop shop for getting started with the Vulkan API
https://github.com/KhronosGroup/Vulkan-Guide

Khronos Vulkan Website
https://vulkan.org/

Khronos Vulkan Slack Channel
https://khronosDevs.slack.com

Vulkan Discord
https://discord.com/channels/427551838099996672/427833316536746005

Non-Khronos

Vulkan.tutorial.com
https://vulkan-tutorial.com

Sascha Willems examples
https://github.com/SaschaWillems/Vulkan

NVIDIA developer website
https://developer.nvidia.com/

AMD GPUOpen Vulkan resources
https://gpuopen.com/vulkan/

Intel Game Developer site
https://www.intel.com/content/www/us/en/developer/topic-technology/gamedev/overview.html

Source code examples for “API without Secrets: Introduction to Vulkan” tutorial
https://github.com/GameTechDev/IntroductionToVulkan

Reddit Vulkan posts
https://www.reddit.com/r/vulkan/

VulkanGuide (Recommended)
https://vkguide.dev

API Without Secrets
https://software.intel.com/en-us/articles/api-without-secrets-introduction-to-vulkan-preface

Stack Overflow Vulkan posts
https://stackoverflow.com/search?q=vulkan

Vulkan in 30 minutes
https://renderdoc.org/vulkan-in-30-minutes.html

Vulkan API Tutorials from ARM
https://developer.arm.com/graphics/vulkan/vulkan-tutorials

Vulkan tutorials from Qualcomm
https://developer.qualcomm.com/software/adreno-gpu-sdk/tutorial-videos

2D/3D graphics engine written in C++ language. It currently supports the following graphics APIs: OpenGL 3.3+, Vulkan 1.2, DirectX 11. Its current purpose is to experiment with various CG concepts and techniques.
https://github.com/dtrajko/MoravaEngine

Diagrams showing relationships between Vulkan objects and how they’re used. (Performance Increased)
https://github.com/David-DiGioia/vulkan-diagrams

Vulkan Cookbook
https://github.com/PacktPublishing/Vulkan-Cookbook

API without Secrets: Introduction to Vulkan
https://github.com/GameTechDev/IntroductionToVulkan

Vulkan Best Practice for Mobile Developers (Recommended)
https://github.com/ARM-software/vulkan_best_practice_for_mobile_developers

Vulkan Tutorial
https://vulkan-tutorial.com/
Tutorial for the Vulkan graphics and compute API
https://github.com/Overv/VulkanTutorial

基于 Vulkan 实现的 GPUImage
https://github.com/glumes/Vulkan-GPUImage

Niko Kauppi
https://www.youtube.com/channel/UCyC03VCsMBFm9ZTsXL__FQg/videos

Vulkan Renderpasses
https://gpuopen.com/learn/vulkan-renderpasses/

Code repo for video tutorial series teaching Vulkan and computer graphics
https://github.com/blurrypiano/littleVulkanEngine
https://www.youtube.com/watch?v=Y9U9IE0gVHA&list=PL8327DO66nu9qYVKLDmdLW_84-yE4auCR

Learning Vulkan from code samples - Tutorial series (Recommended)
https://github.com/PAMinerva/LearnVulkan

YouTube Videos

Vulkan Game Engine Tutorial
https://www.youtube.com/watch?v=Y9U9IE0gVHA&list=PL8327DO66nu9qYVKLDmdLW_84-yE4auCR

Vulkan Lecture Series at TU Wien
https://www.youtube.com/watch?v=tLwbj9qys18&list=PLmIqTlJ6KsE1Jx5HV4sd2jOe3V1KMHHgn

Vulkan in C++
https://www.youtube.com/watch?v=mzVFHEmnRLg&list=PL58qjcU5nk8uH9mmlASm4SFy1yuPzDAH0

Book List

3D Graphics Rendering Cookbook: A comprehensive guide to exploring rendering algorithms in modern OpenGL and Vulkan (August, 2021)
https://www.amazon.com/Graphics-Rendering-Cookbook-comprehensive-algorithms/dp/1838986197

Mastering Graphics Programming with Vulkan: Develop a modern rendering engine from first principles to state-of-the-art techniques (February, 2023)
https://www.amazon.com/Mastering-Graphics-Programming-Vulkan-state/dp/1803244798
https://github.com/PacktPublishing/Mastering-Graphics-Programming-with-Vulkan

Tools & Libraries

Comprehensive

vuk - A rendergraph-based abstraction for Vulkan
https://github.com/martty/vuk

A rendergraph-based graphical framework for Vulkan
https://github.com/Raikiri/LegitEngine

Granite is my personal Vulkan renderer project. The most interesting part of this project compared to the other open-source Vulkan renderers so far is probably the render graph implementation.(Performance Increased)
https://github.com/Themaister/Granite

A set of utilities for taking the pain out of Vulkan in header only modern C++(Performance Increased)
https://github.com/andy-thomason/Vookoo

Low-level convenience and productivity layer atop Vulkan-Hpp
https://github.com/cg-tuwien/Auto-Vk

Hardware Rendering

The Vienna Vulkan Engine (VVE). A Vulkan based render engine.
https://github.com/hlavacs/ViennaVulkanEngine

The VulkanSceneGraph project is comprised of the main VulkanSceneGraph library (provided by this repo) and a collection of optional libraries.
https://github.com/vsg-dev/VulkanSceneGraph

Hardware Rendering with GUI (Editor)

Advanced Vulkan rendering engine prototype (Recommended)
https://github.com/milkru/vulkanizer

Low Latency GUI on top of Vulkan
https://github.com/ttauri-project/ttauri

Walnut is a simple application framework for Vulkan and Dear ImGui apps
https://github.com/TheCherno/Walnut

Software Rendering

SwiftShader is a high-performance CPU-based implementation of the Vulkan graphics API. Its goal is to provide hardware independence for advanced 3D graphics.
https://github.com/google/swiftshader

Game Engine

3D game engine using C++20 and Vulkan (WIP)
https://github.com/karnkaul/LittleEngineVk

A new 3D game engine for Linux and Windows using C++20 and Vulkan API
https://github.com/inexorgame/vulkan-renderer

A Vulkan game engine with a focus on data oriented design
https://github.com/flingengine/FlingEngine

The AMD Render Pipeline Shaders (RPS) SDK is a comprehensive and extensible Render Graph framework. (Recommended)
https://github.com/GPUOpen-LibrariesAndSDKs/RenderPipelineShaders

Doom 3 BFG Edition source port with updated DX12 / Vulkan renderer and modern game engine features
https://github.com/RobertBeckebans/RBDOOM-3-BFG

Oxylus Engine. This is my hobby project that I work on in my spare time to learn more about graphics programming and engine architectures.
https://github.com/Hatrickek/OxylusEngine

Ray Tracing

Ray tracing glTF scene with Vulkan
https://github.com/nvpro-samples/vk_raytrace

A minimal implementation of Vulkan ray tracing.
https://github.com/WilliamLewww/vulkan_ray_tracing_minimal_abstraction

A Vulkan Raytracing framework for various bidirectional path tracing techniques
https://github.com/yuphin/Lumen

Implementation of Peter Shirley’s Ray Tracing In One Weekend book using Vulkan and NVIDIA’s RTX extension.
https://github.com/GPSnoopy/RayTracingInVulkan

a Vulkan real-time rendering engine focused on PBR and Ray Tracing (Windows and Linux).
https://github.com/hadryansalles/Luz

Tracing & Insight & Profiling

Tools to aid in Vulkan development including useful layers, trace and replay, and tests
https://github.com/LunarG/VulkanTools

Graphics API Capture and Replay Tools for Reconstructing Graphics Application Behavior
https://github.com/LunarG/gfxreconstruct

Vulkan Profiles Tools (Beta and still under development)
https://github.com/KhronosGroup/Vulkan-Profiles

Vulkan hardware capability viewer
https://github.com/SaschaWillems/VulkanCapsViewer

Fossilize is a library and Vulkan layer for serializing various persistent Vulkan objects which typically end up in hashmaps. CreateInfo structs for these Vulkan objects can be recorded and replayed.
https://github.com/ValveSoftware/Fossilize

API Wrapping (Translation Layer)

Fork of VKD3D. Development branches for Proton’s Direct3D 12 implementation.
https://github.com/HansKristian-Work/vkd3d-proton

Experimental implementation of OpenCL on Vulkan
https://github.com/kpet/clvk

Daxa is my opinionated gpu api library.
https://github.com/Ipotrick/Daxa

Abstraction layer over Khronos Vulkan API
https://github.com/vcoda/magma

Compiling

HCC is a C compiler that allows you to compile your C codebase (with limitations) to SPIR-V for the Vulkan graphics API. This means you can share struct’s, enum’s and functions between your CPU & GPU code.
https://github.com/heroseh/hcc

Memory

Easy to integrate Vulkan memory allocation library
https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/

Denoising

Denoising a Vulkan ray traced image using OptiX denoiser
https://github.com/nvpro-samples/vk_denoise

Meta loader

Meta loader for Vulkan API (Performance Increased)
https://github.com/zeux/volk

SVO (Sparse Voxel Octree)

A GPU SVO Builder using rasterization pipeline, a efficient SVO ray marcher and a simple SVO path tracer.
https://github.com/AdamYuan/SparseVoxelOctree

Windows System

A Vulkan window system integration layer for Linux
https://gitlab.freedesktop.org/mesa/vulkan-wsi-layer

Apple Metal (ios)

MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple’s Metal graphics framework, enabling Vulkan applications to run on iOS and macOS.
https://github.com/KhronosGroup/MoltenVK

2D

Vulkan 2D graphics library
https://github.com/jpbruyere/vkvg

Misc

Vulkan bootstraping library
https://github.com/charles-lunarg/vk-bootstrap

Examples

Collection

Collection of Vulkan samples
https://github.com/nvpro-samples/vk_mini_samples

Grass Rendering

In this project, you will use Vulkan to implement a grass simulator and renderer.
https://github.com/CIS565-Fall-2017/Project6-Vulkan-Grass-Rendering

Documents

Fragments

Vulkan gamma correction
https://stackoverflow.com/a/66401423/1645289

Descriptors
https://nanokatze.gitlab.io/vulkan/descriptors/

Breaking Down Barriers - An Introduction To GPU Synchronization
https://github.com/TheRealMJP/GDC2019_Public

GPU Infomations

This is the launchpad for Sascha Willems GPU hardware databases targeting the open graphics API of Khronos.
https://gpuinfo.org/

Optimization

Reducing Draw Time Hitching with VK_EXT_graphics_pipeline_library (PSO, Pipeline State Object)
https://www.khronos.org/blog/reducing-draw-time-hitching-with-vk-ext-graphics-pipeline-library

Shader Object Extension

You Can Use Vulkan Without Pipelines Today
https://www.khronos.org/blog/you-can-use-vulkan-without-pipelines-today


“The most terrifying thing is to accept oneself completely.” ― C.G. Jung