Henri Verbeet pushed to branch master at wine / vkd3d
Commits: 6415c6b0 by Giovanni Mascellani at 2025-02-19T17:57:15+01:00 vkd3d: Rename push_descriptor_set to root_descriptor_set.
Soon it won't be used necessarily for push descriptors anymore, but it will still contain root descriptors.
- - - - - 07b7975d by Giovanni Mascellani at 2025-02-19T17:58:23+01:00 vkd3d: Put all root descriptors in a single Vulkan descriptor set when using Vulkan heaps.
Since 4a94bfc2f6c1ebfe4cac6c26ccf567339c71078f we segregate different D3D12 descriptor types in different Vulkan descriptor sets. This change was introduced to reduce descriptor wasting when allocating a new descriptor pool; that can be very useful when using virtual heaps, which have to often cycle through many descriptors, but it is expected to have limited impact for Vulkan heaps, given that in that case most descriptors are allocated through the descriptor heap rather than through the command allocator.
Instead, it has a rather detrimental effect with Vulkan heaps, because it tends to use many more Vulkan descriptor sets than necessary, often with just a handful of descriptors each. This causes a regression on some Vulkan implementations that support too few descriptor sets.
With this change we revert to a situation similar to before, stuffing all the descriptors that do not live in a root descriptor table in as few descriptor sets as possible (at most one or two, depending on whether push descriptors are used).
- - - - -
2 changed files:
- libs/vkd3d/command.c - libs/vkd3d/state.c
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/67d8cf744cd17d21009f08dc6503b...