anv: Delete anv_video_session_params

It's just a dummy wrapper around the common struct.

Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36646>
This commit is contained in:
Faith Ekstrand
2025-08-07 11:45:13 -04:00
committed by Marge Bot
parent 8f03f9b443
commit e0b25e78ff
4 changed files with 36 additions and 81 deletions
+1 -8
View File
@@ -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; \
+20 -59
View File
@@ -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, &params->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(&params->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(&params->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(&params->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(&params->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(&params->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(&params->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(&params->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(&params->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(&params->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(&params->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(&params->h265_enc.h265_pps[i].base, size_limit, &pps_size, data_ptr);
}
}
total_size = sps_size + pps_size + vps_size;
+8 -7
View File
@@ -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 ? &params->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 ? &params->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 ? &params->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);
+7 -7
View File
@@ -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(&params->vk, frame_info->pStdPictureInfo->seq_parameter_set_id);
const StdVideoH264PictureParameterSet *pps = vk_video_find_h264_enc_std_pps(&params->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(&params->vk, frame_info->pStdPictureInfo->sps_video_parameter_set_id);
const StdVideoH265SequenceParameterSet *sps = vk_video_find_h265_enc_std_sps(&params->vk, frame_info->pStdPictureInfo->pps_seq_parameter_set_id);
const StdVideoH265PictureParameterSet *pps = vk_video_find_h265_enc_std_pps(&params->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);