From c73e2f984ce683334adf7fdd8227d1233d4b771e Mon Sep 17 00:00:00 2001 From: Boris Brezillon Date: Mon, 18 Dec 2023 12:08:32 +0100 Subject: [PATCH] panvk: Fix allocation scope of command buffer sub-objects SCOPE_COMMAND means the allocation last only for the vkXxx call. Both batches and clear values live longer than that. Signed-off-by: Boris Brezillon Reviewed-by: Erik Faye-Lund Part-of: --- src/panfrost/vulkan/panvk_cmd_buffer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/panfrost/vulkan/panvk_cmd_buffer.c b/src/panfrost/vulkan/panvk_cmd_buffer.c index 28ea81ae68c..c162714c6dd 100644 --- a/src/panfrost/vulkan/panvk_cmd_buffer.c +++ b/src/panfrost/vulkan/panvk_cmd_buffer.c @@ -507,14 +507,14 @@ panvk_CmdBeginRenderPass2(VkCommandBuffer commandBuffer, cmdbuf->state.render_area = pRenderPassBegin->renderArea; cmdbuf->state.batch = vk_zalloc(&cmdbuf->vk.pool->alloc, sizeof(*cmdbuf->state.batch), 8, - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND); + VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); util_dynarray_init(&cmdbuf->state.batch->jobs, NULL); util_dynarray_init(&cmdbuf->state.batch->event_ops, NULL); assert(pRenderPassBegin->clearValueCount <= pass->attachment_count); cmdbuf->state.clear = vk_zalloc(&cmdbuf->vk.pool->alloc, sizeof(*cmdbuf->state.clear) * pass->attachment_count, 8, - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND); + VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); panvk_cmd_prepare_clear_values(cmdbuf, pRenderPassBegin->pClearValues); panvk_cmd_fb_info_init(cmdbuf); panvk_cmd_fb_info_set_subpass(cmdbuf); @@ -550,7 +550,7 @@ panvk_cmd_open_batch(struct panvk_cmd_buffer *cmdbuf) assert(!cmdbuf->state.batch); cmdbuf->state.batch = vk_zalloc(&cmdbuf->vk.pool->alloc, sizeof(*cmdbuf->state.batch), 8, - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND); + VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); assert(cmdbuf->state.batch); return cmdbuf->state.batch; }