From e0b25e78ff3b5d606a731826a686bbfde8f16af0 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Thu, 7 Aug 2025 11:45:13 -0400 Subject: [PATCH] anv: Delete anv_video_session_params It's just a dummy wrapper around the common struct. Reviewed-by: Dave Airlie Reviewed-by: Hyunjun Ko Part-of: --- src/intel/vulkan/anv_private.h | 9 +-- src/intel/vulkan/anv_video.c | 79 +++++++-------------------- src/intel/vulkan/genX_cmd_video.c | 15 ++--- src/intel/vulkan/genX_cmd_video_enc.c | 14 ++--- 4 files changed, 36 insertions(+), 81 deletions(-) diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 029f293a3da..2774aa6f4f9 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -4633,7 +4633,7 @@ struct anv_cmd_buffer { struct { struct anv_video_session *vid; - struct anv_video_session_params *params; + struct vk_video_session_parameters *params; } video; /** @@ -6766,10 +6766,6 @@ struct anv_video_session { BITSET_DECLARE(copy_seg_probs, 4); }; -struct anv_video_session_params { - struct vk_video_session_parameters vk; -}; - void anv_init_av1_cdf_tables(struct anv_cmd_buffer *cmd, struct anv_video_session *vid); @@ -6949,9 +6945,6 @@ VK_DEFINE_NONDISP_HANDLE_CASTS(anv_performance_configuration_intel, base, VK_DEFINE_NONDISP_HANDLE_CASTS(anv_video_session, vk.base, VkVideoSessionKHR, VK_OBJECT_TYPE_VIDEO_SESSION_KHR) -VK_DEFINE_NONDISP_HANDLE_CASTS(anv_video_session_params, vk.base, - VkVideoSessionParametersKHR, - VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR) #define anv_genX(devinfo, thing) ({ \ __typeof(&gfx9_##thing) genX_thing; \ diff --git a/src/intel/vulkan/anv_video.c b/src/intel/vulkan/anv_video.c index 9cc411f540f..e0c8f3fdf8f 100644 --- a/src/intel/vulkan/anv_video.c +++ b/src/intel/vulkan/anv_video.c @@ -68,37 +68,6 @@ anv_DestroyVideoSessionKHR(VkDevice _device, vk_free2(&device->vk.alloc, pAllocator, vid); } -VkResult -anv_CreateVideoSessionParametersKHR(VkDevice _device, - const VkVideoSessionParametersCreateInfoKHR *pCreateInfo, - const VkAllocationCallbacks *pAllocator, - VkVideoSessionParametersKHR *pVideoSessionParameters) -{ - ANV_FROM_HANDLE(anv_device, device, _device); - - struct anv_video_session_params *params = - vk_video_session_parameters_create(&device->vk, - pCreateInfo, pAllocator, - sizeof(*params)); - if (!params) - return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY); - - *pVideoSessionParameters = anv_video_session_params_to_handle(params); - return VK_SUCCESS; -} - -void -anv_DestroyVideoSessionParametersKHR(VkDevice _device, - VkVideoSessionParametersKHR _params, - const VkAllocationCallbacks *pAllocator) -{ - ANV_FROM_HANDLE(anv_device, device, _device); - ANV_FROM_HANDLE(anv_video_session_params, params, _params); - if (!_params) - return; - vk_video_session_parameters_destroy(&device->vk, pAllocator, ¶ms->vk); -} - VkResult anv_GetPhysicalDeviceVideoCapabilitiesKHR(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR *pVideoProfile, @@ -889,15 +858,6 @@ anv_GetVideoSessionMemoryRequirementsKHR(VkDevice _device, return VK_SUCCESS; } -VkResult -anv_UpdateVideoSessionParametersKHR(VkDevice _device, - VkVideoSessionParametersKHR _params, - const VkVideoSessionParametersUpdateInfoKHR *pUpdateInfo) -{ - ANV_FROM_HANDLE(anv_video_session_params, params, _params); - return vk_video_session_parameters_update(¶ms->vk, pUpdateInfo); -} - static void copy_bind(struct anv_vid_mem *dst, const VkBindVideoSessionMemoryInfoKHR *src) @@ -943,29 +903,30 @@ anv_GetEncodedVideoSessionParametersKHR(VkDevice device, size_t *pDataSize, void *pData) { - ANV_FROM_HANDLE(anv_video_session_params, params, pVideoSessionParametersInfo->videoSessionParameters); + VK_FROM_HANDLE(vk_video_session_parameters, params, + pVideoSessionParametersInfo->videoSessionParameters); size_t total_size = 0; size_t size_limit = 0; if (pData) size_limit = *pDataSize; - switch (params->vk.op) { + switch (params->op) { case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR: { const struct VkVideoEncodeH264SessionParametersGetInfoKHR *h264_get_info = vk_find_struct_const(pVideoSessionParametersInfo->pNext, VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR); size_t sps_size = 0, pps_size = 0; if (h264_get_info->writeStdSPS) { - for (unsigned i = 0; i < params->vk.h264_enc.h264_sps_count; i++) - if (params->vk.h264_enc.h264_sps[i].base.seq_parameter_set_id == h264_get_info->stdSPSId) - vk_video_encode_h264_sps(¶ms->vk.h264_enc.h264_sps[i].base, size_limit, &sps_size, pData); + for (unsigned i = 0; i < params->h264_enc.h264_sps_count; i++) + if (params->h264_enc.h264_sps[i].base.seq_parameter_set_id == h264_get_info->stdSPSId) + vk_video_encode_h264_sps(¶ms->h264_enc.h264_sps[i].base, size_limit, &sps_size, pData); } if (h264_get_info->writeStdPPS) { char *data_ptr = pData ? (char *)pData + sps_size : NULL; - for (unsigned i = 0; i < params->vk.h264_enc.h264_pps_count; i++) - if (params->vk.h264_enc.h264_pps[i].base.pic_parameter_set_id == h264_get_info->stdPPSId) { - vk_video_encode_h264_pps(¶ms->vk.h264_enc.h264_pps[i].base, - params->vk.h264_enc.profile_idc == STD_VIDEO_H264_PROFILE_IDC_HIGH, + for (unsigned i = 0; i < params->h264_enc.h264_pps_count; i++) + if (params->h264_enc.h264_pps[i].base.pic_parameter_set_id == h264_get_info->stdPPSId) { + vk_video_encode_h264_pps(¶ms->h264_enc.h264_pps[i].base, + params->h264_enc.profile_idc == STD_VIDEO_H264_PROFILE_IDC_HIGH, size_limit, &pps_size, data_ptr); } } @@ -977,23 +938,23 @@ anv_GetEncodedVideoSessionParametersKHR(VkDevice device, vk_find_struct_const(pVideoSessionParametersInfo->pNext, VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR); size_t sps_size = 0, pps_size = 0, vps_size = 0; if (h265_get_info->writeStdVPS) { - for (unsigned i = 0; i < params->vk.h265_enc.h265_vps_count; i++) - if (params->vk.h265_enc.h265_vps[i].base.vps_video_parameter_set_id == h265_get_info->stdVPSId) - vk_video_encode_h265_vps(¶ms->vk.h265_enc.h265_vps[i].base, size_limit, &vps_size, pData); + for (unsigned i = 0; i < params->h265_enc.h265_vps_count; i++) + if (params->h265_enc.h265_vps[i].base.vps_video_parameter_set_id == h265_get_info->stdVPSId) + vk_video_encode_h265_vps(¶ms->h265_enc.h265_vps[i].base, size_limit, &vps_size, pData); } if (h265_get_info->writeStdSPS) { char *data_ptr = pData ? (char *)pData + vps_size : NULL; - for (unsigned i = 0; i < params->vk.h265_enc.h265_sps_count; i++) - if (params->vk.h265_enc.h265_sps[i].base.sps_seq_parameter_set_id == h265_get_info->stdSPSId) { - vk_video_encode_h265_sps(¶ms->vk.h265_enc.h265_sps[i].base, size_limit, &sps_size, data_ptr); + for (unsigned i = 0; i < params->h265_enc.h265_sps_count; i++) + if (params->h265_enc.h265_sps[i].base.sps_seq_parameter_set_id == h265_get_info->stdSPSId) { + vk_video_encode_h265_sps(¶ms->h265_enc.h265_sps[i].base, size_limit, &sps_size, data_ptr); } } if (h265_get_info->writeStdPPS) { char *data_ptr = pData ? (char *)pData + vps_size + sps_size : NULL; - for (unsigned i = 0; i < params->vk.h265_enc.h265_pps_count; i++) - if (params->vk.h265_enc.h265_pps[i].base.pps_seq_parameter_set_id == h265_get_info->stdPPSId) { - params->vk.h265_enc.h265_pps[i].base.flags.cu_qp_delta_enabled_flag = 0; - vk_video_encode_h265_pps(¶ms->vk.h265_enc.h265_pps[i].base, size_limit, &pps_size, data_ptr); + for (unsigned i = 0; i < params->h265_enc.h265_pps_count; i++) + if (params->h265_enc.h265_pps[i].base.pps_seq_parameter_set_id == h265_get_info->stdPPSId) { + params->h265_enc.h265_pps[i].base.flags.cu_qp_delta_enabled_flag = 0; + vk_video_encode_h265_pps(¶ms->h265_enc.h265_pps[i].base, size_limit, &pps_size, data_ptr); } } total_size = sps_size + pps_size + vps_size; diff --git a/src/intel/vulkan/genX_cmd_video.c b/src/intel/vulkan/genX_cmd_video.c index 3d08f6cdf49..b6f26a8e61e 100644 --- a/src/intel/vulkan/genX_cmd_video.c +++ b/src/intel/vulkan/genX_cmd_video.c @@ -34,7 +34,8 @@ genX(CmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, { ANV_FROM_HANDLE(anv_cmd_buffer, cmd_buffer, commandBuffer); ANV_FROM_HANDLE(anv_video_session, vid, pBeginInfo->videoSession); - ANV_FROM_HANDLE(anv_video_session_params, params, pBeginInfo->videoSessionParameters); + VK_FROM_HANDLE(vk_video_session_parameters, params, + pBeginInfo->videoSessionParameters); cmd_buffer->video.vid = vid; cmd_buffer->video.params = params; @@ -173,7 +174,7 @@ anv_h265_decode_video(struct anv_cmd_buffer *cmd_buffer, { ANV_FROM_HANDLE(anv_buffer, src_buffer, frame_info->srcBuffer); struct anv_video_session *vid = cmd_buffer->video.vid; - struct anv_video_session_params *params = cmd_buffer->video.params; + struct vk_video_session_parameters *params = cmd_buffer->video.params; const struct VkVideoDecodeH265PictureInfoKHR *h265_pic_info = vk_find_struct_const(frame_info->pNext, VIDEO_DECODE_H265_PICTURE_INFO_KHR); @@ -181,7 +182,7 @@ anv_h265_decode_video(struct anv_cmd_buffer *cmd_buffer, const StdVideoH265SequenceParameterSet *sps; const StdVideoH265PictureParameterSet *pps; - vk_video_get_h265_parameters(&vid->vk, params ? ¶ms->vk : NULL, frame_info, h265_pic_info, &sps, &pps); + vk_video_get_h265_parameters(&vid->vk, params, frame_info, h265_pic_info, &sps, &pps); struct vk_video_h265_reference ref_slots[2][8] = { 0 }; uint8_t dpb_idx[ANV_VIDEO_H265_MAX_NUM_REF_FRAME] = { 0,}; @@ -890,14 +891,14 @@ anv_h264_decode_video(struct anv_cmd_buffer *cmd_buffer, { ANV_FROM_HANDLE(anv_buffer, src_buffer, frame_info->srcBuffer); struct anv_video_session *vid = cmd_buffer->video.vid; - struct anv_video_session_params *params = cmd_buffer->video.params; + struct vk_video_session_parameters *params = cmd_buffer->video.params; const struct VkVideoDecodeH264PictureInfoKHR *h264_pic_info = vk_find_struct_const(frame_info->pNext, VIDEO_DECODE_H264_PICTURE_INFO_KHR); const StdVideoH264SequenceParameterSet *sps; const StdVideoH264PictureParameterSet *pps; - vk_video_get_h264_parameters(&vid->vk, params ? ¶ms->vk : NULL, frame_info, h264_pic_info, &sps, &pps); + vk_video_get_h264_parameters(&vid->vk, params, frame_info, h264_pic_info, &sps, &pps); uint8_t dpb_slots[ANV_VIDEO_H264_MAX_DPB_SLOTS] = { 0,}; @@ -2606,10 +2607,10 @@ anv_av1_decode_video(struct anv_cmd_buffer *cmd_buffer, const VkVideoDecodeAV1PictureInfoKHR *av1_pic_info = vk_find_struct_const(frame_info->pNext, VIDEO_DECODE_AV1_PICTURE_INFO_KHR); struct anv_video_session *vid = cmd_buffer->video.vid; - struct anv_video_session_params *params = cmd_buffer->video.params; + struct vk_video_session_parameters *params = cmd_buffer->video.params; const StdVideoAV1SequenceHeader *seq_hdr; - vk_video_get_av1_parameters(&vid->vk, params ? ¶ms->vk : NULL, frame_info, &seq_hdr); + vk_video_get_av1_parameters(&vid->vk, params, frame_info, &seq_hdr); anv_av1_calculate_xstep_qn(cmd_buffer, frame_info, seq_hdr); diff --git a/src/intel/vulkan/genX_cmd_video_enc.c b/src/intel/vulkan/genX_cmd_video_enc.c index 4260916bec2..e5f71d4041b 100644 --- a/src/intel/vulkan/genX_cmd_video_enc.c +++ b/src/intel/vulkan/genX_cmd_video_enc.c @@ -385,13 +385,13 @@ anv_h264_encode_video(struct anv_cmd_buffer *cmd, const VkVideoEncodeInfoKHR *en ANV_FROM_HANDLE(anv_buffer, dst_buffer, enc_info->dstBuffer); struct anv_video_session *vid = cmd->video.vid; - struct anv_video_session_params *params = cmd->video.params; + struct vk_video_session_parameters *params = cmd->video.params; const struct VkVideoEncodeH264PictureInfoKHR *frame_info = vk_find_struct_const(enc_info->pNext, VIDEO_ENCODE_H264_PICTURE_INFO_KHR); - const StdVideoH264SequenceParameterSet *sps = vk_video_find_h264_enc_std_sps(¶ms->vk, frame_info->pStdPictureInfo->seq_parameter_set_id); - const StdVideoH264PictureParameterSet *pps = vk_video_find_h264_enc_std_pps(¶ms->vk, frame_info->pStdPictureInfo->pic_parameter_set_id); + const StdVideoH264SequenceParameterSet *sps = vk_video_find_h264_enc_std_sps(params, frame_info->pStdPictureInfo->seq_parameter_set_id); + const StdVideoH264PictureParameterSet *pps = vk_video_find_h264_enc_std_pps(params, frame_info->pStdPictureInfo->pic_parameter_set_id); const StdVideoEncodeH264ReferenceListsInfo *ref_list_info = frame_info->pStdPictureInfo->pRefLists; const struct anv_image_view *iv = anv_image_view_from_handle(enc_info->srcPictureResource.imageViewBinding); @@ -1398,14 +1398,14 @@ anv_h265_encode_video(struct anv_cmd_buffer *cmd, const VkVideoEncodeInfoKHR *en #if GFX_VER >= 12 ANV_FROM_HANDLE(anv_buffer, dst_buffer, enc_info->dstBuffer); struct anv_video_session *vid = cmd->video.vid; - struct anv_video_session_params *params = cmd->video.params; + struct vk_video_session_parameters *params = cmd->video.params; const struct VkVideoEncodeH265PictureInfoKHR *frame_info = vk_find_struct_const(enc_info->pNext, VIDEO_ENCODE_H265_PICTURE_INFO_KHR); - const StdVideoH265VideoParameterSet *vps = vk_video_find_h265_enc_std_vps(¶ms->vk, frame_info->pStdPictureInfo->sps_video_parameter_set_id); - const StdVideoH265SequenceParameterSet *sps = vk_video_find_h265_enc_std_sps(¶ms->vk, frame_info->pStdPictureInfo->pps_seq_parameter_set_id); - const StdVideoH265PictureParameterSet *pps = vk_video_find_h265_enc_std_pps(¶ms->vk, frame_info->pStdPictureInfo->pps_pic_parameter_set_id); + const StdVideoH265VideoParameterSet *vps = vk_video_find_h265_enc_std_vps(params, frame_info->pStdPictureInfo->sps_video_parameter_set_id); + const StdVideoH265SequenceParameterSet *sps = vk_video_find_h265_enc_std_sps(params, frame_info->pStdPictureInfo->pps_seq_parameter_set_id); + const StdVideoH265PictureParameterSet *pps = vk_video_find_h265_enc_std_pps(params, frame_info->pStdPictureInfo->pps_pic_parameter_set_id); const StdVideoEncodeH265ReferenceListsInfo *ref_list_info = frame_info->pStdPictureInfo->pRefLists; const struct anv_image_view *iv = anv_image_view_from_handle(enc_info->srcPictureResource.imageViewBinding);