Skip to content

Draft: vkd3d: Update Vulkan descriptors only when submitted to a command queue.

Conor McCarthy requested to merge cmccarthy/vkd3d:delay_vk_writes into master

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.

Merge request reports

Loading