nvk: Use the new buffer device address infrastructure

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33897>
This commit is contained in:
Faith Ekstrand
2025-03-05 09:41:31 -06:00
committed by Marge Bot
parent 73da18b956
commit 7900ff5c56
3 changed files with 7 additions and 15 deletions
+3 -11
View File
@@ -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)
+2 -3
View File
@@ -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),
};
}
+2 -1
View File
@@ -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;
}