From 0e0a393a4a07f9eff086faf9a916b769d1d2ff57 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Mon, 24 Mar 2025 10:08:27 +0100 Subject: [PATCH] radv/video: use a pointer to write the total task size Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_cmd_buffer.h | 2 +- src/amd/vulkan/radv_video_enc.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.h b/src/amd/vulkan/radv_cmd_buffer.h index d1ee71068fb..760e5b91778 100644 --- a/src/amd/vulkan/radv_cmd_buffer.h +++ b/src/amd/vulkan/radv_cmd_buffer.h @@ -492,7 +492,7 @@ struct radv_cmd_state { }; struct radv_enc_state { - uint32_t task_size_offset; + uint32_t *p_task_size; uint32_t total_task_size; unsigned shifter; unsigned bits_in_shifter; diff --git a/src/amd/vulkan/radv_video_enc.c b/src/amd/vulkan/radv_video_enc.c index bf4de807e4a..d2bdeed0947 100644 --- a/src/amd/vulkan/radv_video_enc.c +++ b/src/amd/vulkan/radv_video_enc.c @@ -468,7 +468,7 @@ radv_enc_task_info(struct radv_cmd_buffer *cmd_buffer, bool feedback) enc->task_id++; ENC_BEGIN; radeon_emit(cs, pdev->vcn_enc_cmds.task_info); - enc->task_size_offset = cs->cdw++; + enc->p_task_size = &cs->buf[cs->cdw++]; radeon_emit(cs, enc->task_id); radeon_emit(cs, feedback ? 1 : 0); ENC_END; @@ -1842,7 +1842,7 @@ radv_vcn_encode_video(struct radv_cmd_buffer *cmd_buffer, const VkVideoEncodeInf // op_enc radv_enc_op_enc(cmd_buffer); - radeon_emit_direct(cmd_buffer->cs, enc->task_size_offset, enc->total_task_size); + *enc->p_task_size = enc->total_task_size; if (pdev->enc_hw_ver >= RADV_VIDEO_ENC_HW_4) radv_vcn_sq_tail(cmd_buffer->cs, &cmd_buffer->video.sq);