Hi,
I recently started reworking my RootSigature system, I basically want to declare a RootSignature in hlsl and then reuse it across all my shaders. Until this point, I've been generating a custom RS for each PSO (with the exact number of resources that PSO will use). This means that each RS is efficiently used but it also means that each time I draw or dispatch the RS will change.
This new system will use this RS:
#define GFXRS "RootFlags(ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT)," \
"DescriptorTable" \
"("\
"CBV(b0, numDescriptors = 16)," \
"SRV(t0, numDescriptors = 16)," \
"UAV(u0, numDescriptors = 16)" \
")," \
"DescriptorTable" \
"(" \
"Sampler(s0, numDescriptors = 16)" \
")" \
NOTE: I want to start with only one RS for everything and then maybe have one for gfx and other for compute.
However, I was wondering if there is any overhead of declaring the above RS and not using all the descriptors. As far as I can tell it shouldn't cause much trouble (I'm also aware that UnrealEngine uses something like this). I would love to hear the opinion of someone with more experience on this topic.
Thanks!
↧