mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 11:28:05 +02:00
nvk: Add a bo size to nvk_descriptor_set
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
parent
3568027b9d
commit
7d629d7aec
2 changed files with 9 additions and 6 deletions
|
|
@ -24,10 +24,10 @@ desc_ubo_data(struct nvk_descriptor_set *set, uint32_t binding,
|
|||
&set->layout->binding[binding];
|
||||
|
||||
uint32_t offset = binding_layout->offset + elem * binding_layout->stride;
|
||||
assert(offset < set->layout->descriptor_buffer_size);
|
||||
assert(offset < set->bo_size);
|
||||
|
||||
if (size_out != NULL)
|
||||
*size_out = set->layout->descriptor_buffer_size - offset;
|
||||
*size_out = set->bo_size - offset;
|
||||
|
||||
return (char *)set->mapped_ptr + offset;
|
||||
}
|
||||
|
|
@ -263,6 +263,7 @@ nvk_push_descriptor_set_update(struct nvk_push_descriptor_set *push_set,
|
|||
assert(layout->descriptor_buffer_size < sizeof(push_set->data));
|
||||
struct nvk_descriptor_set set = {
|
||||
.layout = layout,
|
||||
.bo_size = sizeof(push_set->data),
|
||||
.mapped_ptr = push_set->data,
|
||||
};
|
||||
|
||||
|
|
@ -449,8 +450,9 @@ nvk_descriptor_set_create(struct nvk_device *device,
|
|||
if (pool->entry_count == pool->max_entry_count)
|
||||
return VK_ERROR_OUT_OF_POOL_MEMORY;
|
||||
|
||||
set->bo_size = layout->descriptor_buffer_size;
|
||||
if (layout->descriptor_buffer_size > 0) {
|
||||
if (pool->current_offset + layout->descriptor_buffer_size > pool->size)
|
||||
if (pool->current_offset + set->bo_size > pool->size)
|
||||
return VK_ERROR_OUT_OF_POOL_MEMORY;
|
||||
|
||||
set->bo = pool->bo;
|
||||
|
|
@ -459,10 +461,9 @@ nvk_descriptor_set_create(struct nvk_device *device,
|
|||
}
|
||||
|
||||
pool->entries[pool->entry_count].offset = set->bo_offset;
|
||||
pool->entries[pool->entry_count].size = layout->descriptor_buffer_size;
|
||||
pool->entries[pool->entry_count].size = set->bo_size;
|
||||
pool->entries[pool->entry_count].set = set;
|
||||
pool->current_offset += ALIGN(layout->descriptor_buffer_size,
|
||||
NVK_MIN_UBO_ALIGNMENT);
|
||||
pool->current_offset += ALIGN(set->bo_size, NVK_MIN_UBO_ALIGNMENT);
|
||||
pool->entry_count++;
|
||||
|
||||
vk_descriptor_set_layout_ref(&layout->vk);
|
||||
|
|
@ -666,6 +667,7 @@ nvk_push_descriptor_set_update_template(
|
|||
{
|
||||
struct nvk_descriptor_set tmp_set = {
|
||||
.layout = layout,
|
||||
.bo_size = sizeof(push_set->data),
|
||||
.mapped_ptr = push_set->data,
|
||||
};
|
||||
nvk_descriptor_set_write_template(&tmp_set, template, data);
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ struct nvk_descriptor_set {
|
|||
struct vk_object_base base;
|
||||
struct nvk_descriptor_set_layout *layout;
|
||||
uint32_t bo_offset;
|
||||
uint32_t bo_size;
|
||||
struct nouveau_ws_bo *bo;
|
||||
void *mapped_ptr;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue