From 045c1fff7d043cd71bf424529dfee37c34d9cea1 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 2 Dec 2025 09:00:29 +0100 Subject: [PATCH] vulkan: add helpers for device address range Signed-off-by: Samuel Pitoiset Part-of: --- src/vulkan/runtime/vk_buffer.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/vulkan/runtime/vk_buffer.h b/src/vulkan/runtime/vk_buffer.h index d9b7330da85..45093f97986 100644 --- a/src/vulkan/runtime/vk_buffer.h +++ b/src/vulkan/runtime/vk_buffer.h @@ -86,6 +86,38 @@ vk_buffer_range(const struct vk_buffer *buffer, } } +static inline VkDeviceAddressRangeKHR +vk_device_address_range(const struct vk_buffer *buffer, + VkDeviceSize offset, + VkDeviceSize range) +{ + VkDeviceAddressRangeKHR addr_range = { 0 }; + + if (buffer) { + addr_range.address = vk_buffer_address(buffer, offset); + addr_range.size = vk_buffer_range(buffer, offset, range); + } + + return addr_range; +} + +static inline VkStridedDeviceAddressRangeKHR +vk_strided_device_address_range(const struct vk_buffer *buffer, + VkDeviceSize offset, + VkDeviceSize range, + VkDeviceSize stride) +{ + VkStridedDeviceAddressRangeKHR addr_range = { 0 }; + + if (buffer) { + addr_range.address = vk_buffer_address(buffer, offset); + addr_range.size = vk_buffer_range(buffer, offset, range); + addr_range.stride = stride; + } + + return addr_range; +} + #ifdef __cplusplus } #endif