Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why did you drop the reflection based descriptor builder ? #88

Open
louisforestier opened this issue Jun 22, 2023 · 1 comment
Open

Comments

@louisforestier
Copy link

louisforestier commented Jun 22, 2023

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.

@vblanco20-1
Copy link
Owner

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants