From 5762586c6db50f9b38266c9e89387e1b4cf2bccf Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Tue, 18 Feb 2025 16:58:59 -0600 Subject: [PATCH] nvk: Align UBO/SSBO addresses down rather than up This should never happen as the client should always give us aligned addresses. However, in the off chance that it does, aligning down is probably safer than aligning up as it won't cause the top end of the range increase and potentially fault. Cc: mesa-stable Part-of: --- src/nouveau/vulkan/nvk_descriptor_set.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nouveau/vulkan/nvk_descriptor_set.c b/src/nouveau/vulkan/nvk_descriptor_set.c index 28fb8a3386e..b1de3697d0d 100644 --- a/src/nouveau/vulkan/nvk_descriptor_set.c +++ b/src/nouveau/vulkan/nvk_descriptor_set.c @@ -175,7 +175,7 @@ ubo_desc(struct nvk_physical_device *pdev, assert(addr_range.addr % min_cbuf_alignment == 0); assert(addr_range.range <= NVK_MAX_CBUF_SIZE); - addr_range.addr = align64(addr_range.addr, min_cbuf_alignment); + addr_range.addr = ROUND_DOWN_TO(addr_range.addr, min_cbuf_alignment); addr_range.range = align(addr_range.range, min_cbuf_alignment); if (nvk_use_bindless_cbuf(&pdev->info)) { @@ -227,7 +227,7 @@ ssbo_desc(struct nvk_addr_range addr_range) assert(addr_range.addr % NVK_MIN_SSBO_ALIGNMENT == 0); assert(addr_range.range <= UINT32_MAX); - addr_range.addr = align64(addr_range.addr, NVK_MIN_SSBO_ALIGNMENT); + addr_range.addr = ROUND_DOWN_TO(addr_range.addr, NVK_MIN_SSBO_ALIGNMENT); addr_range.range = align(addr_range.range, NVK_SSBO_BOUNDS_CHECK_ALIGNMENT); return (union nvk_buffer_descriptor) { .addr = {