From 89d7ce0fda6fd2fa6cef1280f510926516de36dc Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:11:46 -0600 Subject: [PATCH] nvk: Add a stub implementation of VkBuffer Part-of: --- src/nouveau/vulkan/meson.build | 2 ++ src/nouveau/vulkan/nvk_buffer.c | 33 +++++++++++++++++++++++++++++++++ src/nouveau/vulkan/nvk_buffer.h | 14 ++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 src/nouveau/vulkan/nvk_buffer.c create mode 100644 src/nouveau/vulkan/nvk_buffer.h diff --git a/src/nouveau/vulkan/meson.build b/src/nouveau/vulkan/meson.build index eda127a..8757f54 100644 --- a/src/nouveau/vulkan/meson.build +++ b/src/nouveau/vulkan/meson.build @@ -1,4 +1,6 @@ nvk_files = files( + 'nvk_buffer.c', + 'nvk_buffer.h', 'nvk_device.c', 'nvk_device.h', 'nvk_image.c', diff --git a/src/nouveau/vulkan/nvk_buffer.c b/src/nouveau/vulkan/nvk_buffer.c new file mode 100644 index 0000000..ec15b96 --- /dev/null +++ b/src/nouveau/vulkan/nvk_buffer.c @@ -0,0 +1,33 @@ +#include "nvk_buffer.h" + +#include "nvk_device.h" + +VKAPI_ATTR VkResult VKAPI_CALL nvk_CreateBuffer(VkDevice _device, + const VkBufferCreateInfo *pCreateInfo, + const VkAllocationCallbacks *pAllocator, + VkBuffer *pBuffer) +{ + VK_FROM_HANDLE(nvk_device, device, _device); + struct nvk_buffer *buffer; + + buffer = vk_buffer_create(&device->vk, pCreateInfo, pAllocator, sizeof(*buffer)); + if (!buffer) + return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY); + + *pBuffer = nvk_buffer_to_handle(buffer); + + return VK_SUCCESS; +} + +VKAPI_ATTR void VKAPI_CALL nvk_DestroyBuffer(VkDevice _device, + VkBuffer _buffer, + const VkAllocationCallbacks *pAllocator) +{ + VK_FROM_HANDLE(nvk_device, device, _device); + VK_FROM_HANDLE(nvk_buffer, buffer, _buffer); + + if (!buffer) + return; + + vk_buffer_destroy(&device->vk, pAllocator, &buffer->vk); +} diff --git a/src/nouveau/vulkan/nvk_buffer.h b/src/nouveau/vulkan/nvk_buffer.h new file mode 100644 index 0000000..bd20ecb --- /dev/null +++ b/src/nouveau/vulkan/nvk_buffer.h @@ -0,0 +1,14 @@ +#ifndef NVK_IMAGE +#define NVK_IMAGE 1 + +#include "nvk_private.h" + +#include "vulkan/runtime/vk_buffer.h" + +struct nvk_buffer { + struct vk_buffer vk; +}; + +VK_DEFINE_HANDLE_CASTS(nvk_buffer, vk.base, VkBuffer, VK_OBJECT_TYPE_BUFFER) + +#endif -- 2.7.4