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:
committed by
Marge Bot
parent
8f03f9b443
commit
e0b25e78ff
@@ -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; \
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user