Module: Mesa Branch: main Commit: af3e7ba1057e122c9ccd6d0f09b233ca8278af28 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=af3e7ba1057e122c9ccd6d0f09b233ca8278af28
Author: Faith Ekstrand <faith.ekstr...@collabora.com> Date: Sat Dec 9 00:07:44 2023 -0600 nvk: Stash descriptor set sizes To save space in the root descriptor table, we put these in the CPU-only descriptor structure instead. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26615> --- src/nouveau/vulkan/nvk_cmd_buffer.c | 2 ++ src/nouveau/vulkan/nvk_cmd_buffer.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/nouveau/vulkan/nvk_cmd_buffer.c b/src/nouveau/vulkan/nvk_cmd_buffer.c index 45e29886a50..a82aae63068 100644 --- a/src/nouveau/vulkan/nvk_cmd_buffer.c +++ b/src/nouveau/vulkan/nvk_cmd_buffer.c @@ -582,6 +582,7 @@ nvk_CmdBindDescriptorSets(VkCommandBuffer commandBuffer, if (desc->sets[set_idx] != set) { desc->root.sets[set_idx] = nvk_descriptor_set_addr(set); + desc->set_sizes[set_idx] = set->size; desc->sets[set_idx] = set; desc->sets_dirty |= BITFIELD_BIT(set_idx); @@ -703,6 +704,7 @@ nvk_cmd_buffer_flush_push_descriptors(struct nvk_cmd_buffer *cmd, } desc->root.sets[set_idx] = push_set_addr; + desc->set_sizes[set_idx] = sizeof(push_set->data); } } diff --git a/src/nouveau/vulkan/nvk_cmd_buffer.h b/src/nouveau/vulkan/nvk_cmd_buffer.h index bff156d6a9f..9a0727710b6 100644 --- a/src/nouveau/vulkan/nvk_cmd_buffer.h +++ b/src/nouveau/vulkan/nvk_cmd_buffer.h @@ -65,6 +65,7 @@ struct nvk_root_descriptor_table { struct nvk_descriptor_state { struct nvk_root_descriptor_table root; + uint32_t set_sizes[NVK_MAX_SETS]; struct nvk_descriptor_set *sets[NVK_MAX_SETS]; uint32_t sets_dirty;