From 58181b7bbcf915b3262e7707cb88aabb6d7fd673 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Sat, 6 Jul 2024 10:37:46 -0500 Subject: [PATCH] nvk: Bump the sparse alignment requirement on buffers to 64K Otherwise, if they live in VRAM, binding might fail. Fixes: 03f0f01904ce ("nvk: Add support for sparse buffers") Part-of: --- src/nouveau/vulkan/nvk_buffer.c | 2 +- src/nouveau/vulkan/nvk_private.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/nouveau/vulkan/nvk_buffer.c b/src/nouveau/vulkan/nvk_buffer.c index d03bb58e8ad..7cfd5f366e2 100644 --- a/src/nouveau/vulkan/nvk_buffer.c +++ b/src/nouveau/vulkan/nvk_buffer.c @@ -28,7 +28,7 @@ nvk_get_buffer_alignment(const struct nvk_physical_device *pdev, if (create_flags & (VK_BUFFER_CREATE_SPARSE_BINDING_BIT | VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT)) - alignment = MAX2(alignment, 4096); + alignment = MAX2(alignment, NVK_SPARSE_BIND_ALIGN_B); return alignment; } diff --git a/src/nouveau/vulkan/nvk_private.h b/src/nouveau/vulkan/nvk_private.h index a4ebece913f..5d1ad7d4832 100644 --- a/src/nouveau/vulkan/nvk_private.h +++ b/src/nouveau/vulkan/nvk_private.h @@ -35,6 +35,8 @@ /* Max size of a bound cbuf */ #define NVK_MAX_CBUF_SIZE (1u << 16) +#define NVK_SPARSE_BIND_ALIGN_B (1u << 16) + struct nvk_addr_range { uint64_t addr; uint64_t range;