Descriptor sets usage

Until now I have been using a single descriptor set, but now I need to use multiple descriptor sets in a render, in order to draw different materials.

So before I had this:

Bind descriptor set
Record draw object 1
Record draw object 2
Record draw object 3

And now I am implementing this:

Bind descriptor set 1
Record draw object 1
Bind descriptor set 2
Record draw object 2
Bind descriptor set 3
Record draw object 3

Is my understanding of how these work correct, or does calling vkCmdBindDescriptorSets() invalidate previously bound descriptor sets?

Before draw you typically have to have all the descriptors bound.

By your usage I assume you probably want to be using dynamic uniforms instead. You don’t want to have 4000 descriptors in a pipeline if you have 4000 objects.