Henri Verbeet pushed to branch master at wine / vkd3d
Commits: 239c88e8 by Giovanni Mascellani at 2024-12-05T21:00:03+01:00 vkd3d: Do not use more than a few million descriptors in Vulkan heap set layouts.
Currently, when using Vulkan heaps, we create descriptor set layouts with as many descriptors as allowed by the Vulkan implementation limits. For some implementations this can mean hundreds of millions of descriptors or more, which is wasteful, given that even on the best resource binding tier Direct3D 12 applications should not expect to have more than a million usable descriptors.
Recently this began being a problem, because since Mesa 24.2.7 the Intel driver advertises more than 200 million descriptors, but pipeline compilation takes linear RAM in the number of descriptors declared in the pipeline layout. This means that compiling even a simple shader requires 10-20 GB of RAM.
In order to avoid using too much memory, with this commit we clamp the number of descriptors declared in the set layouts to how many we actually need to guarantee tier 3 resource binding support.
- - - - -
2 changed files:
- libs/vkd3d/device.c - libs/vkd3d/vkd3d_private.h
View it on GitLab: https://gitlab.winehq.org/wine/vkd3d/-/commit/239c88e8d3ccdf28845505d614b947...