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;