diff --git a/src/nouveau/vulkan/nvk_descriptor_set.c b/src/nouveau/vulkan/nvk_descriptor_set.c index 957899e5663..90f016632b7 100644 --- a/src/nouveau/vulkan/nvk_descriptor_set.c +++ b/src/nouveau/vulkan/nvk_descriptor_set.c @@ -487,9 +487,14 @@ nvk_descriptor_pool_alloc(struct nvk_descriptor_pool *pool, uint64_t *addr_out, void **map_out) { assert(size > 0); + assert(size % alignment == 0); + + if (size > pool->heap.free_size) + return VK_ERROR_OUT_OF_POOL_MEMORY; + uint64_t addr = util_vma_heap_alloc(&pool->heap, size, alignment); if (addr == 0) - return VK_ERROR_OUT_OF_POOL_MEMORY; + return VK_ERROR_FRAGMENTED_POOL; assert(addr >= pool->bo->offset); assert(addr + size <= pool->bo->offset + pool->bo->size);