diff --git a/src/nouveau/vulkan/nvk_buffer.c b/src/nouveau/vulkan/nvk_buffer.c index ccd53fdee17..8b534d6b249 100644 --- a/src/nouveau/vulkan/nvk_buffer.c +++ b/src/nouveau/vulkan/nvk_buffer.c @@ -1,6 +1,7 @@ #include "nvk_buffer.h" #include "nvk_device.h" +#include "nvk_device_memory.h" #include "nvk_physical_device.h" VKAPI_ATTR VkResult VKAPI_CALL nvk_CreateBuffer(VkDevice _device, @@ -55,3 +56,17 @@ VKAPI_ATTR void VKAPI_CALL nvk_GetBufferMemoryRequirements2( } } } + +VKAPI_ATTR VkResult VKAPI_CALL +nvk_BindBufferMemory2(VkDevice _device, uint32_t bindInfoCount, + const VkBindBufferMemoryInfo *pBindInfos) +{ + for (uint32_t i = 0; i < bindInfoCount; ++i) { + VK_FROM_HANDLE(nvk_device_memory, mem, pBindInfos[i].memory); + VK_FROM_HANDLE(nvk_buffer, buffer, pBindInfos[i].buffer); + + buffer->mem = mem; + buffer->offset = pBindInfos[i].memoryOffset; + } + return VK_SUCCESS; +} diff --git a/src/nouveau/vulkan/nvk_buffer.h b/src/nouveau/vulkan/nvk_buffer.h index 6914bd0e8d0..ba12e38036b 100644 --- a/src/nouveau/vulkan/nvk_buffer.h +++ b/src/nouveau/vulkan/nvk_buffer.h @@ -5,8 +5,12 @@ #include "vulkan/runtime/vk_buffer.h" +struct nvk_device_memory; + struct nvk_buffer { struct vk_buffer vk; + struct nvk_device_memory *mem; + VkDeviceSize offset; }; VK_DEFINE_HANDLE_CASTS(nvk_buffer, vk.base, VkBuffer, VK_OBJECT_TYPE_BUFFER)