diff --git a/src/nouveau/vulkan/nvk_buffer.c b/src/nouveau/vulkan/nvk_buffer.c index 5554db88332..5eb8340af97 100644 --- a/src/nouveau/vulkan/nvk_buffer.c +++ b/src/nouveau/vulkan/nvk_buffer.c @@ -128,7 +128,7 @@ nvk_CreateBuffer(VkDevice device, return result; } - buffer->addr = buffer->va->addr; + buffer->vk.device_address = buffer->va->addr; } *pBuffer = nvk_buffer_to_handle(buffer); @@ -253,7 +253,8 @@ nvk_bind_buffer_memory(struct nvk_device *dev, mem->mem, info->memoryOffset, buffer->va->size_B); } else { - buffer->addr = mem->mem->va->addr + info->memoryOffset; + assert(buffer->vk.device_address == 0); + buffer->vk.device_address = mem->mem->va->addr + info->memoryOffset; } return result; @@ -282,15 +283,6 @@ nvk_BindBufferMemory2(VkDevice device, return first_error_or_success; } -VKAPI_ATTR VkDeviceAddress VKAPI_CALL -nvk_GetBufferDeviceAddress(UNUSED VkDevice device, - const VkBufferDeviceAddressInfo *pInfo) -{ - VK_FROM_HANDLE(nvk_buffer, buffer, pInfo->buffer); - - return nvk_buffer_address(buffer, 0); -} - VKAPI_ATTR uint64_t VKAPI_CALL nvk_GetBufferOpaqueCaptureAddress(UNUSED VkDevice device, const VkBufferDeviceAddressInfo *pInfo) diff --git a/src/nouveau/vulkan/nvk_buffer.h b/src/nouveau/vulkan/nvk_buffer.h index 62b26da14fe..0775cb94031 100644 --- a/src/nouveau/vulkan/nvk_buffer.h +++ b/src/nouveau/vulkan/nvk_buffer.h @@ -17,7 +17,6 @@ struct nvkmd_va; struct nvk_buffer { struct vk_buffer vk; - uint64_t addr; /** Reserved VA for sparse buffers, NULL otherwise. */ struct nvkmd_va *va; @@ -29,7 +28,7 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(nvk_buffer, vk.base, VkBuffer, static inline uint64_t nvk_buffer_address(const struct nvk_buffer *buffer, uint64_t offset) { - return buffer->addr + offset; + return vk_buffer_address(&buffer->vk, offset); } static inline struct nvk_addr_range @@ -40,7 +39,7 @@ nvk_buffer_addr_range(const struct nvk_buffer *buffer, return (struct nvk_addr_range) { .range = 0 }; return (struct nvk_addr_range) { - .addr = nvk_buffer_address(buffer, offset), + .addr = vk_buffer_address(&buffer->vk, offset), .range = vk_buffer_range(&buffer->vk, offset, range), }; } diff --git a/src/nouveau/vulkan/nvk_cmd_meta.c b/src/nouveau/vulkan/nvk_cmd_meta.c index 978e52b52df..707b1e0ed34 100644 --- a/src/nouveau/vulkan/nvk_cmd_meta.c +++ b/src/nouveau/vulkan/nvk_cmd_meta.c @@ -30,7 +30,8 @@ nvk_cmd_bind_map_buffer(struct vk_command_buffer *vk_cmd, if (unlikely(result != VK_SUCCESS)) return result; - buffer->addr = addr; + assert(buffer->vk.device_address == 0); + buffer->vk.device_address = addr; return VK_SUCCESS; }