nvk: Use nvk_buffer_addr_range for buffer descriptors

Because the helper checks for buffer == NULL, this should prepare us for
VK_KHR_robustness2 where we need to handle null descriptors.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
Faith Ekstrand 2023-01-30 20:12:04 -06:00 committed by Marge Bot
parent 08e5a211dc
commit a08ad59ea6

View file

@ -96,9 +96,13 @@ write_buffer_desc(struct nvk_descriptor_set *set,
{
VK_FROM_HANDLE(nvk_buffer, buffer, info->buffer);
const struct nvk_addr_range addr_range =
nvk_buffer_addr_range(buffer, info->offset, info->range);
assert(addr_range.range <= UINT32_MAX);
const struct nvk_buffer_address desc = {
.base_addr = nvk_buffer_address(buffer, info->offset),
.size = vk_buffer_range(&buffer->vk, info->offset, info->range),
.base_addr = addr_range.addr,
.size = addr_range.range,
};
write_desc(set, binding, elem, &desc, sizeof(desc));
}
@ -112,11 +116,15 @@ write_dynamic_buffer_desc(struct nvk_descriptor_set *set,
const struct nvk_descriptor_set_binding_layout *binding_layout =
&set->layout->binding[binding];
const struct nvk_addr_range addr_range =
nvk_buffer_addr_range(buffer, info->offset, info->range);
assert(addr_range.range <= UINT32_MAX);
struct nvk_buffer_address *desc =
&set->dynamic_buffers[binding_layout->dynamic_buffer_index + elem];
*desc = (struct nvk_buffer_address){
.base_addr = nvk_buffer_address(buffer, info->offset),
.size = vk_buffer_range(&buffer->vk, info->offset, info->range),
.base_addr = addr_range.addr,
.size = addr_range.range,
};
}