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 <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28104>
This commit is contained in:
Boris Brezillon
2023-12-18 12:08:32 +01:00
parent ff9c47f463
commit c73e2f984c
+3 -3
View File
@@ -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;
}