This repo documents my process going through the Vulkan Tutorial website.
I plan to use this to reach a point in:
- understanding Vulkan and how to use it
- additional comments and details
- additional experiments and features I want to try out in Vulkan
I am working on games/game rendering tech, and I want to have a solid understanding of Vulkan before I try to abstract it's features.
Process:
- setup
- instance
- validation and debugging
- physical devices and queues
- logical devices and queues
- window surface and present queue
- swapchain
- image views
- shaders
- fixed functions
- render passes
- finished graphics pipeline
- framebuffers
- command buffers
- rendering and presentation
At this point, we've got a rendered triangle on the screen:
- swapchain recreation
- vertex input
- vertex buffers
- staging buffers
- index buffers
- descriptor data
- descriptor management
- images
- image view & samplers
- combined image samplers
- depth buffering
- models
- mipmaps
- multisampling
Now we have mip-maps, meshes, and multisampling support:
Future Topics:
- push constants
- instanced rendering
- dynamic uniforms
- pipeline cache
- allocator
- multi-resource (texture, mesh, etc.)
- multi-threaded
- multiple subpasses
- compute shaders
- utils library (aggregate vkObjects into classes)
- renderer (abstract vulkan from renderer interface)