nvk: Use layout->vk.dynamic_descriptor_count

Reviewed-by: Aitor Camacho <aitor@lunarg.com>
Reviewed-by: Mary Guillemard <mary@mary.zone>
Tested-by: Mary Guillemard <mary@mary.zone>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39411>
This commit is contained in:
Mel Henning 2026-01-19 17:14:51 -05:00 committed by Marge Bot
parent cdbf7242f3
commit 25acd26a0f
5 changed files with 9 additions and 12 deletions

View file

@ -868,7 +868,7 @@ nvk_bind_descriptor_sets(struct nvk_cmd_buffer *cmd,
const struct nvk_descriptor_set_layout *set_layout =
vk_to_nvk_descriptor_set_layout(pipeline_layout->set_layouts[i]);
if (set_layout)
dyn_buffer_end += set_layout->dynamic_buffer_count;
dyn_buffer_end += set_layout->vk.dynamic_descriptor_count;
}
const uint8_t dyn_buffer_start = dyn_buffer_end;
@ -898,8 +898,8 @@ nvk_bind_descriptor_sets(struct nvk_cmd_buffer *cmd,
const struct nvk_descriptor_set_layout *set_layout =
vk_to_nvk_descriptor_set_layout(pipeline_layout->set_layouts[s]);
if (set != NULL && set_layout->dynamic_buffer_count > 0) {
for (uint32_t j = 0; j < set_layout->dynamic_buffer_count; j++) {
if (set != NULL && set_layout->vk.dynamic_descriptor_count > 0) {
for (uint32_t j = 0; j < set_layout->vk.dynamic_descriptor_count; j++) {
union nvk_buffer_descriptor db = set->dynamic_buffers[j];
uint32_t offset = info->pDynamicOffsets[next_dyn_offset + j];
if (BITSET_TEST(set_layout->dynamic_ubos, j) &&
@ -915,10 +915,10 @@ nvk_bind_descriptor_sets(struct nvk_cmd_buffer *cmd,
}
dynamic_buffers[dyn_buffer_end + j] = db;
}
next_dyn_offset += set->layout->dynamic_buffer_count;
next_dyn_offset += set->layout->vk.dynamic_descriptor_count;
}
dyn_buffer_end += set_layout->dynamic_buffer_count;
dyn_buffer_end += set_layout->vk.dynamic_descriptor_count;
} else {
assert(set == NULL);
}

View file

@ -807,7 +807,7 @@ nvk_descriptor_set_create(struct nvk_device *dev,
VkResult result;
uint32_t mem_size = sizeof(struct nvk_descriptor_set) +
layout->dynamic_buffer_count * sizeof(struct nvk_buffer_address);
layout->vk.dynamic_descriptor_count * sizeof(struct nvk_buffer_address);
set = vk_object_zalloc(&dev->vk, NULL, mem_size,
VK_OBJECT_TYPE_DESCRIPTOR_SET);

View file

@ -329,14 +329,14 @@ nvk_CreateDescriptorSetLayout(VkDevice device,
layout->non_variable_descriptor_buffer_size = buffer_size;
layout->max_buffer_size = buffer_size + max_variable_descriptor_size;
layout->dynamic_buffer_count = dynamic_buffer_count;
layout->vk.dynamic_descriptor_count = dynamic_buffer_count;
struct mesa_blake3 blake3_ctx;
_mesa_blake3_init(&blake3_ctx);
#define BLAKE3_UPDATE_VALUE(x) _mesa_blake3_update(&blake3_ctx, &(x), sizeof(x));
BLAKE3_UPDATE_VALUE(layout->non_variable_descriptor_buffer_size);
BLAKE3_UPDATE_VALUE(layout->dynamic_buffer_count);
BLAKE3_UPDATE_VALUE(layout->vk.dynamic_descriptor_count);
BLAKE3_UPDATE_VALUE(layout->binding_count);
for (uint32_t b = 0; b < num_bindings; b++) {

View file

@ -54,9 +54,6 @@ struct nvk_descriptor_set_layout {
/* Maximum possible buffer size for this descriptor set */
uint32_t max_buffer_size;
/* Number of dynamic UBO bindings in this set */
uint8_t dynamic_buffer_count;
/* Which dynamic buffers are UBOs */
BITSET_DECLARE(dynamic_ubos, NVK_MAX_DYNAMIC_BUFFERS);

View file

@ -587,7 +587,7 @@ load_dynamic_buffer_start(nir_builder *b, uint32_t set,
break;
}
dynamic_buffer_start_imm += ctx->set_layouts[s]->dynamic_buffer_count;
dynamic_buffer_start_imm += ctx->set_layouts[s]->vk.dynamic_descriptor_count;
}
if (dynamic_buffer_start_imm >= 0) {