From 08e5a211dcc9d4e6b33fb57e8afbb16254077d81 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:12:04 -0600 Subject: [PATCH] nvk: Add an nvk_buffer_addr_range helper Part-of: --- src/nouveau/vulkan/nvk_buffer.h | 13 +++++++++++++ src/nouveau/vulkan/nvk_cmd_buffer.h | 5 ----- src/nouveau/vulkan/nvk_cmd_draw.c | 7 ++----- src/nouveau/vulkan/nvk_private.h | 5 +++++ 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/nouveau/vulkan/nvk_buffer.h b/src/nouveau/vulkan/nvk_buffer.h index 9d32fe9dbb4..312e50c6117 100644 --- a/src/nouveau/vulkan/nvk_buffer.h +++ b/src/nouveau/vulkan/nvk_buffer.h @@ -23,4 +23,17 @@ nvk_buffer_address(const struct nvk_buffer *buffer, uint64_t offset) return buffer->addr + offset; } +static inline struct nvk_addr_range +nvk_buffer_addr_range(const struct nvk_buffer *buffer, + uint64_t offset, uint64_t range) +{ + if (buffer == NULL) + return (struct nvk_addr_range) { .range = 0 }; + + return (struct nvk_addr_range) { + .addr = nvk_buffer_address(buffer, offset), + .range = vk_buffer_range(&buffer->vk, offset, range), + }; +} + #endif diff --git a/src/nouveau/vulkan/nvk_cmd_buffer.h b/src/nouveau/vulkan/nvk_cmd_buffer.h index dda3d2f438c..34ce7ab367d 100644 --- a/src/nouveau/vulkan/nvk_cmd_buffer.h +++ b/src/nouveau/vulkan/nvk_cmd_buffer.h @@ -81,11 +81,6 @@ struct nvk_rendering_state { struct nvk_attachment stencil_att; }; -struct nvk_addr_range { - uint64_t addr; - uint64_t range; -}; - struct nvk_graphics_state { struct nvk_rendering_state render; struct nvk_graphics_pipeline *pipeline; diff --git a/src/nouveau/vulkan/nvk_cmd_draw.c b/src/nouveau/vulkan/nvk_cmd_draw.c index 6c966cf6356..6f13f140a6a 100644 --- a/src/nouveau/vulkan/nvk_cmd_draw.c +++ b/src/nouveau/vulkan/nvk_cmd_draw.c @@ -1453,11 +1453,8 @@ nvk_CmdBindVertexBuffers2(VkCommandBuffer commandBuffer, uint32_t idx = firstBinding + i; uint64_t size = pSizes ? pSizes[i] : VK_WHOLE_SIZE; - struct nvk_addr_range addr_range = { }; - if (buffer) { - addr_range.addr = nvk_buffer_address(buffer, pOffsets[i]); - addr_range.range = vk_buffer_range(&buffer->vk, pOffsets[i], size); - } + const struct nvk_addr_range addr_range = + nvk_buffer_addr_range(buffer, pOffsets[i], size); /* Used for meta save/restore */ if (idx == 0) diff --git a/src/nouveau/vulkan/nvk_private.h b/src/nouveau/vulkan/nvk_private.h index b1c0f0452a4..5443f75c987 100644 --- a/src/nouveau/vulkan/nvk_private.h +++ b/src/nouveau/vulkan/nvk_private.h @@ -26,6 +26,11 @@ #define NVK_MAX_DESCRIPTOR_SIZE 16 #define NVK_MAX_PUSH_DESCRIPTORS 32 +struct nvk_addr_range { + uint64_t addr; + uint64_t range; +}; + /** * Warn on ignored extension structs. *