Todo
For this tutorial, Sascha Willems didn’t use https://github.com/KhronosGroup/Vulkan-Hpp. Sooner, we can take a look at Vulkan-Hpp/RAII_Samples to understand how to use RAII C++ header.
一份笔记:
- dynamic rendering 怎么替代 render pass
- descriptor indexing 是什么
- VMA 怎么集成
- pipeline 怎么创建
- resource barrier 怎么写
- shader 编译流程怎么组织
思考问题:
1. 和之前的 Vulkan Tutorial 相比,改变了什么
2. 它是如何组织一个最小的渲染程序的
3. 那些东西应该迁移到我的 Vulkan Backend / RHI (我当时只有一个 main.cpp)
Notes
Modern Vulkan Features
- Dynamic rendering - Greatly simplifies render pass setup, one of the most criticized Vulkan areas
- Buffer device address - Lets us access buffers via pointers instead of going through descriptors
- Descriptor indexing - Simplifies descriptor management, often referred to as "bindless"
- Synchronization2 - Improves synchronization handling, one of the hardest areas of Vulkan
Initialization Workflow
Basic
Libraries
- SDL - Windowing and input (and other features not used in this tutorial). Without a library like this we would have to write a lot of platform-specific code. Alternatives are GLFW and SFML. SDL has the broadest platform support of these