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.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/71