This guide does not cover everything you could need, so this is a compilation of high quality vulkan related materials and resources.
Other Tutorials
- Vulkan-Tutorial. The most popular vulkan tutorial on the internet. Goes a lot more into detail on vulkan initialization, also talks about things we don’t do here.
- LearnOpenGL. OpenGL tutorial. While we use vulkan, this tutorial talks a lot more about graphics programming basics such as graphics pipeline, transformation math, and lighting techniques. Recommended you try to go through its chapters but using vulkan instead.
- Filament Engine PBR Documentation. Best in class documentation about high performance PBR lighting shaders.
- Writing an efficient vulkan renderer. High level overview of good design choices and practices on a Vulkan game engine.
Talks/Slides
- Destiny’s Multithreaded Rendering Architecture. Advanced. Talks about the design and general architecture of the game engine for the game Destiny.
- The Devil is in the details Talk about the Doom 2016 render engine. Goes alongside its graphics study
- Rendering the Hellscape of Doom Eternal. Advanced. Doom Eternal engine architecture, bleeding edge Vulkan usage. Goes with the graphics study where the exact details are shown.
- Vulkan Fast Paths, AMD. Intermediate. How vulkan structures map to the AMD GPUs, and whats the fastest approach to use.
- GPU Driven Rendering, NVidia How to use vulkan to do very high object counts for CAD. Also talks about how NVidia gpus execute vulkan.
- Vulkan and DX12, lessons learned. Best practises when using vulkan and directx12 for high performance games.
- Most common mistakes. Slides by AMD talking about common errors by vulkan implementations and how to do them right.
Code
- Sascha Willems Vulkan samples. Great set of vulkan samples, with a lot of features implemented on them.
- Official Vulkan samples. Newer samples, has tutorials about specific ways of implementing things well.
- V-EZ. Abandoned. Minimal simplification layer on top of vulkan. Very useful to see how can one abstract vulkan.
- Filament Engine. Mobile first rendering engine by google. Great vulkan backend for mobile.
- Niagara Engine. Small vulkan-first rendering engine built on stream. Uses very advanced draw indirect and mesh shader techniques to render huge object counts.
- Quake 1 Vulkan port. Port of quake 1 engine to vulkan.
- Doom 3 vulkan port. Port of doom 3 engine to vulkan. More advanced and modern than the quake 1 port.
Debuggers/tools
- Renderdoc. Vendor agnostic graphics debugger.
- Nsight Nvidia profiler and debugger.
- Radeon tools. Profilers and debuggers from AMD.
- Intel GPA Profiler and debugger from Intel.
- Tracy. Great profiler library for Cpp programs. It can also profile GPU executions.
Blogs/websites
- Vulkan Spec Highly necessary resource for information about the API.
- Vulkan GPU Info Database of specifications for the different GPU vulkan implementations.
- GPU Open AMD graphics resources and blogposts.
- Nvidia gameworks Nvidia graphics resources and blogposts/tutorials.
- TheMaister blog Low level graphics programming blog. Lots of vulkan posts.
- Bitsquid engine blog Blog of game engine development by the developers of Bitsquid/Stingray game engine. Can be a bit old.
- OurMachinery engine blog. From the same devs as bitsquid/stingray, their next development blog. A lot of vulkan related articles.