nvk: Handle zero-sized sparse buffers
authorFaith Ekstrand <faith.ekstrand@collabora.com>
Wed, 4 Oct 2023 20:02:20 +0000 (15:02 -0500)
committerFaith Ekstrand <faith.ekstrand@collabora.com>
Thu, 5 Oct 2023 01:15:54 +0000 (20:15 -0500)
In the zero case, we don't want to allocate any VMA.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25555>

src/nouveau/vulkan/nvk_buffer.c

index 32e7fcf..43dc60b 100644 (file)
@@ -46,8 +46,9 @@ nvk_CreateBuffer(VkDevice device,
    if (!buffer)
       return vk_error(dev, VK_ERROR_OUT_OF_HOST_MEMORY);
 
-   if (buffer->vk.create_flags & VK_BUFFER_CREATE_SPARSE_BINDING_BIT) {
-      const uint32_t alignment =
+   if (buffer->vk.size > 0 &&
+       (buffer->vk.create_flags & VK_BUFFER_CREATE_SPARSE_BINDING_BIT)) {
+      const uint64_t alignment =
          nvk_get_buffer_alignment(&nvk_device_physical(dev)->info,
                                   buffer->vk.usage,
                                   buffer->vk.create_flags);