Vulkan
There where no volcanic eruptions at long peaks in 2008
Vulkan is a low level API like DirectX12 and Metal. It is made by Khronos that also handle OpenGL.
The Basic Stuff
Vulkan is a C API and it use the prefix vk on it's functions. Constants begin with VK_ and use all capital letters. Vulkan objects are created with vkCreate* and take a Vk*CreateInfo structure with the parameters to create the object. The objects are destroyed with a vkDestroy* command. The create commands also takes a pAllocator structure that can be set to non-NULL if the application wish to handle host side memory allocation for objects.
Guide
Startup - How to startup vulkan and create all the basic objects needed.
Layers - What layers exist and can be helpful in development.
Extensions - What extensions exist.
Memory - How to get memory on the device.
Assets - All the type of things you need to create to put textures and meshes in.
Binding - Select what buffers or textures to use.
Command - How to create and use the command buffers.
Drawing - Use draw command in the command buffer.
Synchronize - Synchronize things.
Compute - Computer buffers and commands.
SPIR-V -
Tutorials
How to Learn Vulkan - 2018
API without Secrets: The Practical Approach to Vulkan* Preface - Part 1, Part 2, Part 3, Part4, Part5, Part6 and Part7.
Vulkan Tutorial - 2017
I Am Graphics And So Can You - 2017
Minimal Example of Using Vulkan for Compute Operations - 2017
Beginners Guide to Vulkan - 2017
Links
Vulkan API Reference Pages - 2016
Vulkan API Quick Reference - 2016
Vulkan Resources - 2016
Vulkan overview - 2015
Vulkan Tutorial - 2015
Vulkan ecosystem - 2017
IHV Blogs
AMD
Imagination
Nvidia Blog
Samsung
Larger Code Examples
Games/Engines
Porting your engine to Vulkan or DX12 - 2018 : Video
Efficient use of Vulkan on UE4 Mobile - 2018
Vulkanised! Vulkanising Mad Max (notes) - 2017
Bringing Galaxy on Fire 3 to Vulkan - 2017 Part1, Part2, Part3, Part4 and Part5.
Halcyon + Vulkan - 2018
Videos
GDC 2018 - Getting explicit: How Hard is Vulkan really? - 2018
GDC 2018 - What's New in Vulkan - 2018
2018 Vulkanised - 2018
Vulkan 2017 GDC - 2017
2017 Vancouver DevU Vulkan - 2017
Reference
vk_mini_path_tracer - 2021
Writing Shader Code in Universal RP (v2) - 2021
Vulkan Memory Types on PC and How to Use Them - 2021
Understanding Vulkan Synchronization - 2021
An Introduction to Vulkan Video - 2021
Using Debug Printf - 2021
SPIR-V Guide - 2021
How to use debugPrintf in Vulkan - 2021
What is Vulkan Compute? - 2021
Vulkan Hardware Database updates - 2021
GPU architecture types explained - 2021
Vulkanised 2021 - Fall - 2021
ALL IT TAKES... A Vulkan Story - 2021
Streamlining Render Passes - 2021
VK_KHR_dynamic_rendering - 2021
Vulkan Pills 1: Bindless Textures - 2021
Ray Tracing In Vulkan - 2020
NVIDIA Vulkan Ray Tracing Tutorials - 2020
Bringing HLSL Ray Tracing to Vulkan - 2020
Vulkan NV Ray Tracing with HLSL
SPIR-V Guide - 2020
Virtual machine for executing SPIR-V - 2020
Guide to Vulkan Synchronization Validation - 2020
Resource uniformity & bindless access in Vulkan - 2020
Fundamentals of the Vulkan Graphics API: Why Rendering a Triangle is Complicated - 2020
Introduction to the Vulkan Computer Graphics API - 2020
Rendering Roblox: Vulkan Optimisations on Imagination PowerVR GPUs - 2020
Optimizing Roblox: Vulkan Best Practices for Mobile Developers - 2020
Vulkan synchronisation and graphics-compute-graphics hazards: Part I - 2020
Jet Set Vulkan : Reflecting on the move to Vulkan - 2020
Fighting Fragmentation: Vulkan Portability Extension Released and Implementations Shipping - 2020
SuperRT - 2020
Radeon Memory Visualizer - 2020
OpenGL to Vulkan - 2020
Constant data in Vulkan - 2020
Vulkan Mobile Best Practices: Frequently Asked Questions - Part 1 - 2020
Vulkan-Guide - 2020
ARM-software /vulkan_best_practice_for_mobile_developers - 2020
Writing an efficient Vulkan renderer - 2020
Vulkan Mobile Best Practices - Descriptor and Buffer Management - 2020
[Video] Optimizing Roblox: Vulkan Best Practices for Mobile Developers - 2020
Prefix sum on Vulkan - 2020
Vulkan Mobile Best Practices - Management of Command Buffers and Multi-Threaded Recording - 2020
New: Vulkan Device Generated Commands - 2020
Vulkan Best Practices: Frequently Asked Questions - Part 2 - 2020
Tips and Tricks: Vulkan Dos and Don’ts - 2020
optimising a aaa vulkan title on desktop - 2020
Vulkan Textures Unbound - 2020
Vulkan: Bad Practices - 2020
Writing an efficient Vulkan renderer - 2020
Handling Device Orientation Efficiently in Vulkan With Pre-Rotation - 2020
Guide to Vulkan SynchronizationValidation - 2020
Constant data in Vulkan - 2020
Introduction to the Vulkan Computer Graphics API - 2020
Intro to gfx-hal - 2020 • Drawing a triangle, Push constants, Vertex buffers
LunarG releases GFXReconstruct, a new Vulkan Capture/Replay Tool, with SDK 1.2.141 - 2020
Vulkan synchronisation and graphics-compute-graphics hazards: Part I & Part 2 - 2020
Fundamentals of the Vulkan Graphics API: Why Rendering a Triangle is Complicated - 2020
How Magnum does GFX API enum mapping - 2019
Differences in memory management between Direct3D 12 and Vulkan - 2019
Robust pipeline cache serialization - 2019
Vulkan: Long way to access data - 2019
Flax Facts #25 – Vulkan - 2019
Vulkan Releases Unified Samples Repository - 2019
How to design API of a library for Vulkan? - 2019
Flipping the Vulkan viewport - 2019
A tour of Granite’s Vulkan backend – Part 1, part 2, part 3, part 4 and part 5. Part 6 - 2019
optimising a aaa vulkan title on desktop - 2019
Thoughts on graphics APIs and libraries - 2019
Turn your Frame Rate up to 60 with Vulkan on the Nintendo Switch: – Reboot Develop Blue 2019
Vulkan: Long way to access data - 2019
Shader games with Vulkan - 2019
World War Z – Using Vulkan® to Tame the Zombie Swarm - 2019
Arm Releases Vulkan Best Practices for Mobile Developers - 2019
Debugging VK_ERROR_DEVICE_LOST with Nvidia Device Diagnostics - 2019
Tips and Tricks: Vulkan Dos and Don’ts - 2019
Pipeline Management - 2019
GPU-Assisted Validation - 2019
Optimising a AAA Vulkan Title on Desktop - 2019
How to Learn Vulkan - 2018
Vulkan Synchronization Primer - 2018 - Part I & Part II
Vulkan sparse binding - a quick overview - 2018
There is a way to query GPU memory usage in Vulkan - use DXGI - 2018
Multi-GPU Rendering with Vulkan API - 2018
niagara - A Vulkan renderer written from scratch on stream - 2018
V-EZ - 2018
Introduction to the Vulkan Graphics API - 2018
Understanding Vulkan objects - 2017
A Tour of sokol_gfx.h - 2017
I Am Graphics And So Can You - 2017
vkFX: Effect’ive Approach for Vulkan API – nvidia - 2017
Improving Vulkan Breakout - Comparing Uniform Data Transfer Methods In Vulkan - 2017
Migrating from OpenGL to Vulkan - 2016
Vulkan Graphics - 2016
Vulkan in 30 minutes - 2016
Vulkan at FOSDEM - 2016
Vulkan Webinars
1: Scaling to multiple threads - Youtube / Blog - 2015
2: High efficiency on mobile - Youtube / Blog - 2015
3: Scaling to multiple threads - Youtube / Blog - 2015
VK_KHR_dynamic_rendering tutorial
Vulkan: Why some GPUs expose a dozen of identical memory types?
Vulkan Pills 1: Bindless Textures
Modern (Bindless) Sprite Batch for Vulkan (and more!)
Streamlining Render Passes
https://www.khronos.org/blog/streamlining-render-passes
Announcing Vulkan Memory Allocator 3.0.0 and Direct3D 12 Memory Allocator 2.0.0
Vulkan SC: Overview - and how it is different from the Vulkan you already know
Exploring the Vulkan 1.3 Software Development Kit
1.3 Vulkan Loader Improvements