From f50edbd696559dae25a0c8b75f2df2c873456495 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Wed, 29 Jan 2025 11:51:34 -0500 Subject: [PATCH] hk: fix buffer binding clamp sizes to avoid kernel complaints, and check the return. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/vulkan/hk_buffer.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/asahi/vulkan/hk_buffer.c b/src/asahi/vulkan/hk_buffer.c index 838a1da4ddb..8d422872b94 100644 --- a/src/asahi/vulkan/hk_buffer.c +++ b/src/asahi/vulkan/hk_buffer.c @@ -239,9 +239,13 @@ hk_BindBufferMemory2(VkDevice device, uint32_t bindInfoCount, if (buffer->va) { VK_FROM_HANDLE(hk_device, dev, device); - dev->dev.ops.bo_bind(&dev->dev, mem->bo, buffer->addr, - buffer->va->size_B, pBindInfos[i].memoryOffset, - ASAHI_BIND_READ | ASAHI_BIND_WRITE, false); + size_t size = MIN2(mem->bo->size, buffer->va->size_B); + int ret = dev->dev.ops.bo_bind( + &dev->dev, mem->bo, buffer->addr, size, pBindInfos[i].memoryOffset, + ASAHI_BIND_READ | ASAHI_BIND_WRITE, false); + + if (ret) + return VK_ERROR_UNKNOWN; } else { buffer->addr = mem->bo->va->addr + pBindInfos[i].memoryOffset; }