From a08ad59ea68d9a0181e0194d455ff7a825b80503 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:12:04 -0600 Subject: [PATCH] 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: --- src/nouveau/vulkan/nvk_descriptor_set.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/nouveau/vulkan/nvk_descriptor_set.c b/src/nouveau/vulkan/nvk_descriptor_set.c index c6fc9b430ef..4dfb6e2a182 100644 --- a/src/nouveau/vulkan/nvk_descriptor_set.c +++ b/src/nouveau/vulkan/nvk_descriptor_set.c @@ -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, }; }