18553b50f9
So far we were saving all the descriptor info on the host memory. With this commit we do the equivalent that other mesa vulkan drivers (Anvil and Turnip) and create a bo on the descriptor pool that would be suballocated for each descriptor. This would allow to clean up individual bos from some vulkan objects, reducing device memory fragmentation, and allowing to avoid to alloc bos for that info. After all, pre-allocating needed memory is one of the purposes of the descriptor pool. This commit introduces all the infrastructure, but doesn't use it for any descriptor yet, as if no descriptor needed data uploaded to a bo. The idea to decide which info goes to the descriptor pool bo is info that we would need to upload to a bo in any case, as it is referenced as an address by any packet. We could be more aggressive with that general rule, but that would be enough for now. If in the future we support VK_EXT_descriptor_indexing, we probably would need to store more info, as under that extension, descriptors can be updated after being bound. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>