nvk: Add a stub implementation of VkBuffer
authorFaith Ekstrand <faith.ekstrand@collabora.com>
Tue, 31 Jan 2023 02:11:46 +0000 (20:11 -0600)
committerMarge Bot <emma+marge@anholt.net>
Fri, 4 Aug 2023 21:31:52 +0000 (21:31 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>

src/nouveau/vulkan/meson.build
src/nouveau/vulkan/nvk_buffer.c [new file with mode: 0644]
src/nouveau/vulkan/nvk_buffer.h [new file with mode: 0644]

index eda127a..8757f54 100644 (file)
@@ -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 (file)
index 0000000..ec15b96
--- /dev/null
@@ -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 (file)
index 0000000..bd20ecb
--- /dev/null
@@ -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