anv: Split out End/Destroy/Reset cmd buffer code into helper

Since we are going to have companion RCS command buffer, we need to
end/destroy/reset companion RCS command buffer similar to main (CCS/BCS)
command buffer.

It's better to split out common code into helper function so that we can
use it later in this series.

Signed-off-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23661>
This commit is contained in:
Sagar Ghuge 2023-05-18 23:15:38 -07:00 committed by Marge Bot
parent edcde0679c
commit 801523f03d
2 changed files with 31 additions and 12 deletions

View file

@ -198,11 +198,8 @@ anv_create_cmd_buffer(struct vk_command_pool *pool,
}
static void
anv_cmd_buffer_destroy(struct vk_command_buffer *vk_cmd_buffer)
destroy_cmd_buffer(struct anv_cmd_buffer *cmd_buffer)
{
struct anv_cmd_buffer *cmd_buffer =
container_of(vk_cmd_buffer, struct anv_cmd_buffer, vk);
u_trace_fini(&cmd_buffer->trace);
anv_measure_destroy(cmd_buffer);
@ -228,13 +225,19 @@ anv_cmd_buffer_destroy(struct vk_command_buffer *vk_cmd_buffer)
vk_free(&cmd_buffer->vk.pool->alloc, cmd_buffer);
}
void
anv_cmd_buffer_reset(struct vk_command_buffer *vk_cmd_buffer,
UNUSED VkCommandBufferResetFlags flags)
static void
anv_cmd_buffer_destroy(struct vk_command_buffer *vk_cmd_buffer)
{
struct anv_cmd_buffer *cmd_buffer =
container_of(vk_cmd_buffer, struct anv_cmd_buffer, vk);
destroy_cmd_buffer(cmd_buffer);
}
static void
reset_cmd_buffer(struct anv_cmd_buffer *cmd_buffer,
UNUSED VkCommandBufferResetFlags flags)
{
vk_command_buffer_reset(&cmd_buffer->vk);
cmd_buffer->usage_flags = 0;
@ -276,6 +279,16 @@ anv_cmd_buffer_reset(struct vk_command_buffer *vk_cmd_buffer,
u_trace_init(&cmd_buffer->trace, &cmd_buffer->device->ds.trace_context);
}
void
anv_cmd_buffer_reset(struct vk_command_buffer *vk_cmd_buffer,
UNUSED VkCommandBufferResetFlags flags)
{
struct anv_cmd_buffer *cmd_buffer =
container_of(vk_cmd_buffer, struct anv_cmd_buffer, vk);
reset_cmd_buffer(cmd_buffer, flags);
}
const struct vk_command_buffer_ops anv_cmd_buffer_ops = {
.create = anv_create_cmd_buffer,
.reset = anv_cmd_buffer_reset,

View file

@ -3509,12 +3509,9 @@ emit_isp_disable(struct anv_cmd_buffer *cmd_buffer)
}
}
VkResult
genX(EndCommandBuffer)(
VkCommandBuffer commandBuffer)
static VkResult
end_command_buffer(struct anv_cmd_buffer *cmd_buffer)
{
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
if (anv_batch_has_error(&cmd_buffer->batch))
return cmd_buffer->batch.status;
@ -3565,6 +3562,15 @@ genX(EndCommandBuffer)(
return VK_SUCCESS;
}
VkResult
genX(EndCommandBuffer)(
VkCommandBuffer commandBuffer)
{
ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer);
return end_command_buffer(cmd_buffer);
}
static void
cmd_buffer_emit_copy_ts_buffer(struct u_trace_context *utctx,
void *cmdstream,