[Vulkan]Documents & Tutorials & Libraries Collection
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
Render graph management library. This library owes to be used to handle Vulkan render passes and image transitions smoothly.
https://github.com/DragonJoker/RenderGraph
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
3D Renderer Engine builds with Vulkan and C++ 20
https://github.com/JeanPhilippeKernel/RendererEngine
A 3D rendering engine built from scratch using Vulkan API and C++. PBR, IBL, Clustered Forward Shading, Path Tracing, Shadow Mapping, and more! (Recommended)
https://github.com/azer89/HelloVulkan
AnKi 3D Engine - Vulkan backend, modern renderer, scripting, physics and more
https://github.com/godlikepanos/anki-3d-engine
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
Vulkan Layer for Live Introspection & Debugging. Allows to view all vulkan state live inside your application.
https://github.com/nyorain/vil
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