From 801523f03d71d261a1a118c21aaa9690c478235f Mon Sep 17 00:00:00 2001 From: Sagar Ghuge Date: Thu, 18 May 2023 23:15:38 -0700 Subject: [PATCH] anv: Split out End/Destroy/Reset cmd buffer code into helper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Lionel Landwerlin Reviewed-by: José Roberto de Souza Part-of: --- src/intel/vulkan/anv_cmd_buffer.c | 27 ++++++++++++++++++++------- src/intel/vulkan/genX_cmd_buffer.c | 16 +++++++++++----- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/src/intel/vulkan/anv_cmd_buffer.c b/src/intel/vulkan/anv_cmd_buffer.c index 6c7d150264b..2c07ebe4e92 100644 --- a/src/intel/vulkan/anv_cmd_buffer.c +++ b/src/intel/vulkan/anv_cmd_buffer.c @@ -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, diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 8392e066363..017b36f663f 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -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,