mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 13:50:09 +01:00
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:
parent
edcde0679c
commit
801523f03d
2 changed files with 31 additions and 12 deletions
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue