Draft: vkd3d: Update Vulkan descriptors only when submitted to a command queue.
Unpolished. Raises framerate by around 15% in SotTR because vk_sets_mutex is locked only once for each descriptor heap. It's possible to collate multiple writes for a single vkUpdateDescriptorSets() call as was done in the optimised copying path, but it may not be worth it.
A possible complication with this: if it becomes possible to remove the descriptor mutexes after the remaining problems with queue sequencing are fixed, we theoretically may still need them for this. Descriptors should not be updated while binding, but there's no reason more can't be written in another thread while a command list is submitted to a queue.