Henri Verbeet pushed to branch master at wine / vkd3d
Commits: 8d030718 by Giovanni Mascellani at 2024-10-23T16:07:36+02:00 vkd3d: Introduce an enumerant for the mutable descriptor set.
So we avoid hardcoding that it is number zero. There are two goals here: first making the code easier to understand and second allow reshuffling the descriptor set allocation in a later commit.
- - - - - 96b324c1 by Giovanni Mascellani at 2024-10-23T16:07:54+02:00 vkd3d: Move descriptor sets backing the SRV-UAV-CBV heap at the end.
So that when mutable descriptors are in use we can avoid putting the other descriptor sets backing the SRV-UAV-CBV descriptor heap in the pipeline layout altogether.
- - - - - bc2b137d by Giovanni Mascellani at 2024-10-23T16:12:06+02:00 vkd3d: Only put the mutable descriptor set once in the pipeline layout.
Currently the mutable descriptor set is repeated many times in the pipeline layout in order to cover the indices for all the descriptor types that would be present if mutable descriptors were not used. This is useless and wasteful, but was necessary before the descriptor sets backing the SRV-UAV-CBV heap were moved at the end of the allocation table because descriptor set indices are currently a compile-time constant in many places.
Now this is not needed any more and we can just avoid putting many copies of the mutable descriptor set in the pipeline layout, making it easier to meet Vulkan implementation limits.
- - - - - a1f712d1 by Giovanni Mascellani at 2024-10-23T16:12:50+02:00 vkd3d: Incorporate mutable descriptors in the push descriptor disabling logic.
The computation is also written in the code now instead of in the comments.
- - - - -
4 changed files:
- libs/vkd3d/device.c - libs/vkd3d/resource.c - libs/vkd3d/state.c - libs/vkd3d/vkd3d_private.h
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/compare/32e6a1bb4d0f5f06c5b7ce99dabb6...