vulkano-rs/vulkano

Allow updating descriptor sets after creation

Rua opened this issue · 0 comments

Rua commented

This is a long-standing missing feature. Currently, descriptor sets can only be assigned contents when they are created. Updating them after creation is not possible. Adding this ability would allow better reuse of descriptor sets, especially if the user knows they only need to update a few things instead of everything.

Some things will be needed to make this possible:

  • Descriptor sets will need state tracking and locking, similar to what buffers and images currently have. Only host writes and device reads need to be tracked.
  • Recording a descriptor set into a command buffer may count as a read, depending on the UPDATE_AFTER_BIND and UPDATE_UNUSED_WHILE_PENDING flags.
  • This state tracking will need to be granular on the individual descriptor level for UPDATE_AFTER_BIND and UPDATE_UNUSED_WHILE_PENDING, on the level of the whole descriptor set otherwise.