vulkan-guide
vulkan-guide copied to clipboard
Why did you drop the reflection based descriptor builder ?
Hi, First, i want to thank you for this great guide, it helps me lot. I am currently trying to implement the missing bits in my engine to get to the GPU driven rendering part, mostly shader and material abstraction. I wanted to ask why you went from the reflection based descriptor builder to the one described in the extra chapter. I thought the reflection based one would be easier to work with but I don't have the full picture about that.
They are at different abstraction levels. The descriptor builder described in the Extra chapter is a basic building block. its only really a basic abstraction over normal descriptor sets that handles allocation. Its barely a couple lines to implement, so its a good fit for tutorial code. The reflection needs you to implement the structures for it and store them somewhere, so it ends up as quite a lot of extra code and complexity. At an engine level its not that much extra code, but its enough to be annoying to add into a tutorial. While using reflection is useful, you still have the issue of reflection not having the full data (for example, you cant define dynamic uniform buffer vs normal uniform buffer). While its useful to add the reflection on top of the descriptor builder abstraction, its not something that helps much in the context of a small engine like the tutorial one.