Hey guys i have a question if something is possible. I refer to this in the Vulkan Spec:
“Pipeline Layout Compatibility”
When binding a descriptor set to set number N, if the previously bound descriptor sets for sets zero through N-1 were all bound using compatible pipeline layouts, then performing this binding does not disturb any of the lower numbered sets. If, additionally, the previous bound descriptor set for set N was bound using a pipeline layout compatible for set N, then the bindings in sets numbered greater than N are also not disturbed.
Similarly, when binding a pipeline, the pipeline can correctly access any previously bound descriptor sets which were bound with compatible pipeline layouts, as long as all lower numbered sets were also bound with compatible layouts.
I am currently use several pipelines to apply lighting to my scene (kind of a “base pipeline” and several “blending pipelines” for point, spot-lights etc.). The thing is in my Shader-Class where i bind the appropriate descriptor sets, i have to use the exact same order and i dont want that. In my base-pipeline i bind the “Transform”-Set in Slot 0 and the “Material”-Set in Slot 1. If i do the reverse order in my Shader-Class i get the following validation warning:
PERFORMANCE WARNING: [DS] Code 0: DescriptorSetDS 0x… previously bound as set #1 was disturbed by newly bound pipeline layout.
My question is now if its possible to say: “Hey im binding this pipeline now and i want to invalidate all previous bound descriptor sets so i can start from new and bind all descriptors sets i need for this pipeline in the order I WANT”
Thanks in advance