mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 02:58:05 +02:00
radv: Delete radv_video_session_params
It was just a dummy wrapper around the runtime struct. We do, however, have to keep at least the Create/Update entrypoints because RADV has to do some patching for video encode. Since we're keeping Create, we keep Destroy as well. Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: David Rosca <david.rosca@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36646>
This commit is contained in:
parent
e0b25e78ff
commit
22a1f34728
4 changed files with 51 additions and 58 deletions
|
|
@ -656,7 +656,7 @@ struct radv_cmd_buffer {
|
|||
|
||||
struct {
|
||||
struct radv_video_session *vid;
|
||||
struct radv_video_session_params *params;
|
||||
struct vk_video_session_parameters *params;
|
||||
struct rvcn_sq_var sq;
|
||||
struct rvcn_decode_buffer_s *decode_buffer;
|
||||
struct radv_enc_state enc;
|
||||
|
|
|
|||
|
|
@ -646,14 +646,14 @@ radv_CreateVideoSessionParametersKHR(VkDevice _device, const VkVideoSessionParam
|
|||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
const struct radv_instance *instance = radv_physical_device_instance(pdev);
|
||||
|
||||
struct radv_video_session_params *params =
|
||||
struct vk_video_session_parameters *params =
|
||||
vk_video_session_parameters_create(&device->vk, pCreateInfo, pAllocator, sizeof(*params));
|
||||
if (!params)
|
||||
return vk_error(instance, VK_ERROR_OUT_OF_HOST_MEMORY);
|
||||
|
||||
radv_video_patch_session_parameters(device, ¶ms->vk);
|
||||
radv_video_patch_session_parameters(device, params);
|
||||
|
||||
*pVideoSessionParameters = radv_video_session_params_to_handle(params);
|
||||
*pVideoSessionParameters = vk_video_session_parameters_to_handle(params);
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
@ -662,9 +662,9 @@ radv_DestroyVideoSessionParametersKHR(VkDevice _device, VkVideoSessionParameters
|
|||
const VkAllocationCallbacks *pAllocator)
|
||||
{
|
||||
VK_FROM_HANDLE(radv_device, device, _device);
|
||||
VK_FROM_HANDLE(radv_video_session_params, params, _params);
|
||||
VK_FROM_HANDLE(vk_video_session_parameters, params, _params);
|
||||
|
||||
vk_video_session_parameters_destroy(&device->vk, pAllocator, ¶ms->vk);
|
||||
vk_video_session_parameters_destroy(&device->vk, pAllocator, params);
|
||||
}
|
||||
|
||||
static VkResult
|
||||
|
|
@ -1336,12 +1336,12 @@ radv_UpdateVideoSessionParametersKHR(VkDevice _device, VkVideoSessionParametersK
|
|||
const VkVideoSessionParametersUpdateInfoKHR *pUpdateInfo)
|
||||
{
|
||||
VK_FROM_HANDLE(radv_device, device, _device);
|
||||
VK_FROM_HANDLE(radv_video_session_params, params, videoSessionParameters);
|
||||
VK_FROM_HANDLE(vk_video_session_parameters, params, videoSessionParameters);
|
||||
|
||||
VkResult result = vk_video_session_parameters_update(¶ms->vk, pUpdateInfo);
|
||||
VkResult result = vk_video_session_parameters_update(params, pUpdateInfo);
|
||||
if (result != VK_SUCCESS)
|
||||
return result;
|
||||
radv_video_patch_session_parameters(device, ¶ms->vk);
|
||||
radv_video_patch_session_parameters(device, params);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -1516,7 +1516,7 @@ update_h264_scaling(unsigned char scaling_list_4x4[6][16], unsigned char scaling
|
|||
}
|
||||
|
||||
static rvcn_dec_message_avc_t
|
||||
get_h264_msg(struct radv_video_session *vid, struct radv_video_session_params *params,
|
||||
get_h264_msg(struct radv_video_session *vid, struct vk_video_session_parameters *params,
|
||||
const struct VkVideoDecodeInfoKHR *frame_info, uint32_t *slice_offset, uint32_t *width_in_samples,
|
||||
uint32_t *height_in_samples, void *it_ptr)
|
||||
{
|
||||
|
|
@ -1527,7 +1527,7 @@ get_h264_msg(struct radv_video_session *vid, struct radv_video_session_params *p
|
|||
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);
|
||||
|
||||
*slice_offset = h264_pic_info->pSliceOffsets[0];
|
||||
|
||||
|
|
@ -1645,7 +1645,7 @@ get_h264_msg(struct radv_video_session *vid, struct radv_video_session_params *p
|
|||
}
|
||||
|
||||
static rvcn_dec_message_hevc_t
|
||||
get_h265_msg(struct radv_device *device, struct radv_video_session *vid, struct radv_video_session_params *params,
|
||||
get_h265_msg(struct radv_device *device, struct radv_video_session *vid, struct vk_video_session_parameters *params,
|
||||
const struct VkVideoDecodeInfoKHR *frame_info, uint32_t *width_in_samples, uint32_t *height_in_samples,
|
||||
void *it_ptr)
|
||||
{
|
||||
|
|
@ -1658,7 +1658,7 @@ get_h265_msg(struct radv_device *device, struct radv_video_session *vid, struct
|
|||
const StdVideoH265SequenceParameterSet *sps = NULL;
|
||||
const StdVideoH265PictureParameterSet *pps = NULL;
|
||||
|
||||
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);
|
||||
|
||||
result.sps_info_flags = 0;
|
||||
result.sps_info_flags |= sps->flags.scaling_list_enabled_flag << 0;
|
||||
|
|
@ -1790,7 +1790,7 @@ get_h265_msg(struct radv_device *device, struct radv_video_session *vid, struct
|
|||
}
|
||||
|
||||
static rvcn_dec_message_vp9_t
|
||||
get_vp9_msg(struct radv_device *device, struct radv_video_session *vid, struct radv_video_session_params *params,
|
||||
get_vp9_msg(struct radv_device *device, struct radv_video_session *vid, struct vk_video_session_parameters *params,
|
||||
const struct VkVideoDecodeInfoKHR *frame_info, void *probs_ptr, int *update_reference_slot)
|
||||
{
|
||||
rvcn_dec_message_vp9_t result;
|
||||
|
|
@ -1961,7 +1961,7 @@ get_vp9_msg(struct radv_device *device, struct radv_video_session *vid, struct r
|
|||
#define AV1_SUPERRES_DENOM_MIN 9
|
||||
|
||||
static rvcn_dec_message_av1_t
|
||||
get_av1_msg(struct radv_device *device, struct radv_video_session *vid, struct radv_video_session_params *params,
|
||||
get_av1_msg(struct radv_device *device, struct radv_video_session *vid, struct vk_video_session_parameters *params,
|
||||
const struct VkVideoDecodeInfoKHR *frame_info, void *probs_ptr, int *update_reference_slot)
|
||||
{
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
|
|
@ -1973,7 +1973,7 @@ get_av1_msg(struct radv_device *device, struct radv_video_session *vid, struct r
|
|||
|
||||
const StdVideoAV1SequenceHeader *seq_hdr = NULL;
|
||||
|
||||
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);
|
||||
|
||||
memset(&result, 0, sizeof(result));
|
||||
|
||||
|
|
@ -2361,7 +2361,7 @@ fill_ref_buffer(rvcn_dec_ref_buffer_t *ref, struct radv_image *img, uint32_t sli
|
|||
|
||||
static bool
|
||||
rvcn_dec_message_decode(struct radv_cmd_buffer *cmd_buffer, struct radv_video_session *vid,
|
||||
struct radv_video_session_params *params, void *ptr, void *it_probs_ptr, uint32_t *slice_offset,
|
||||
struct vk_video_session_parameters *params, void *ptr, void *it_probs_ptr, uint32_t *slice_offset,
|
||||
const struct VkVideoDecodeInfoKHR *frame_info)
|
||||
{
|
||||
struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
|
|
@ -2688,7 +2688,7 @@ rvcn_dec_message_decode(struct radv_cmd_buffer *cmd_buffer, struct radv_video_se
|
|||
}
|
||||
|
||||
static struct ruvd_h264
|
||||
get_uvd_h264_msg(struct radv_video_session *vid, struct radv_video_session_params *params,
|
||||
get_uvd_h264_msg(struct radv_video_session *vid, struct vk_video_session_parameters *params,
|
||||
const struct VkVideoDecodeInfoKHR *frame_info, uint32_t *slice_offset, uint32_t *width_in_samples,
|
||||
uint32_t *height_in_samples, void *it_ptr)
|
||||
{
|
||||
|
|
@ -2699,7 +2699,7 @@ get_uvd_h264_msg(struct radv_video_session *vid, struct radv_video_session_param
|
|||
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);
|
||||
|
||||
*slice_offset = h264_pic_info->pSliceOffsets[0];
|
||||
|
||||
|
|
@ -2802,7 +2802,7 @@ get_uvd_h264_msg(struct radv_video_session *vid, struct radv_video_session_param
|
|||
}
|
||||
|
||||
static struct ruvd_h265
|
||||
get_uvd_h265_msg(struct radv_device *device, struct radv_video_session *vid, struct radv_video_session_params *params,
|
||||
get_uvd_h265_msg(struct radv_device *device, struct radv_video_session *vid, struct vk_video_session_parameters *params,
|
||||
const struct VkVideoDecodeInfoKHR *frame_info, uint32_t *width_in_samples, uint32_t *height_in_samples,
|
||||
void *it_ptr)
|
||||
{
|
||||
|
|
@ -2817,7 +2817,7 @@ get_uvd_h265_msg(struct radv_device *device, struct radv_video_session *vid, str
|
|||
const StdVideoH265SequenceParameterSet *sps = NULL;
|
||||
const StdVideoH265PictureParameterSet *pps = NULL;
|
||||
|
||||
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);
|
||||
|
||||
result.sps_info_flags = 0;
|
||||
result.sps_info_flags |= sps->flags.scaling_list_enabled_flag << 0;
|
||||
|
|
@ -2954,7 +2954,7 @@ texture_offset_legacy(struct radeon_surf *surface, unsigned layer)
|
|||
|
||||
static bool
|
||||
ruvd_dec_message_decode(struct radv_device *device, struct radv_video_session *vid,
|
||||
struct radv_video_session_params *params, void *ptr, void *it_ptr, uint32_t *slice_offset,
|
||||
struct vk_video_session_parameters *params, void *ptr, void *it_ptr, uint32_t *slice_offset,
|
||||
const struct VkVideoDecodeInfoKHR *frame_info)
|
||||
{
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
|
|
@ -3087,7 +3087,7 @@ radv_CmdBeginVideoCodingKHR(VkCommandBuffer commandBuffer, const VkVideoBeginCod
|
|||
{
|
||||
VK_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
|
||||
VK_FROM_HANDLE(radv_video_session, vid, pBeginInfo->videoSession);
|
||||
VK_FROM_HANDLE(radv_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;
|
||||
|
|
@ -3198,7 +3198,7 @@ radv_uvd_decode_video(struct radv_cmd_buffer *cmd_buffer, const VkVideoDecodeInf
|
|||
struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
struct radv_video_session *vid = cmd_buffer->video.vid;
|
||||
struct radv_video_session_params *params = cmd_buffer->video.params;
|
||||
struct vk_video_session_parameters *params = cmd_buffer->video.params;
|
||||
unsigned size = sizeof(struct ruvd_msg);
|
||||
void *ptr, *fb_ptr, *it_probs_ptr = NULL;
|
||||
uint32_t out_offset, fb_offset, it_probs_offset = 0;
|
||||
|
|
@ -3257,7 +3257,7 @@ radv_vcn_decode_video(struct radv_cmd_buffer *cmd_buffer, const VkVideoDecodeInf
|
|||
struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
struct radv_video_session *vid = cmd_buffer->video.vid;
|
||||
struct radv_video_session_params *params = cmd_buffer->video.params;
|
||||
struct vk_video_session_parameters *params = cmd_buffer->video.params;
|
||||
unsigned size = 0;
|
||||
void *ptr, *fb_ptr, *it_probs_ptr = NULL;
|
||||
uint32_t out_offset, fb_offset, it_probs_offset = 0;
|
||||
|
|
|
|||
|
|
@ -71,13 +71,6 @@ struct radv_video_session {
|
|||
|
||||
VK_DEFINE_NONDISP_HANDLE_CASTS(radv_video_session, vk.base, VkVideoSessionKHR, VK_OBJECT_TYPE_VIDEO_SESSION_KHR)
|
||||
|
||||
struct radv_video_session_params {
|
||||
struct vk_video_session_parameters vk;
|
||||
};
|
||||
|
||||
VK_DEFINE_NONDISP_HANDLE_CASTS(radv_video_session_params, vk.base, VkVideoSessionParametersKHR,
|
||||
VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR)
|
||||
|
||||
void radv_init_physical_device_decoder(struct radv_physical_device *pdev);
|
||||
|
||||
void radv_video_get_profile_alignments(struct radv_physical_device *pdev, const VkVideoProfileListInfoKHR *profile_list,
|
||||
|
|
|
|||
|
|
@ -565,9 +565,9 @@ radv_enc_spec_misc_h264(struct radv_cmd_buffer *cmd_buffer, const struct VkVideo
|
|||
vk_find_struct_const(enc_info->pNext, VIDEO_ENCODE_H264_PICTURE_INFO_KHR);
|
||||
const StdVideoEncodeH264PictureInfo *pic = h264_picture_info->pStdPictureInfo;
|
||||
const StdVideoH264SequenceParameterSet *sps =
|
||||
vk_video_find_h264_enc_std_sps(&cmd_buffer->video.params->vk, pic->seq_parameter_set_id);
|
||||
vk_video_find_h264_enc_std_sps(cmd_buffer->video.params, pic->seq_parameter_set_id);
|
||||
const StdVideoH264PictureParameterSet *pps =
|
||||
vk_video_find_h264_enc_std_pps(&cmd_buffer->video.params->vk, pic->pic_parameter_set_id);
|
||||
vk_video_find_h264_enc_std_pps(cmd_buffer->video.params, pic->pic_parameter_set_id);
|
||||
const VkVideoEncodeH264NaluSliceInfoKHR *slice_info = &h264_picture_info->pNaluSliceEntries[0];
|
||||
|
||||
RADEON_ENC_BEGIN(pdev->vcn_enc_cmds.spec_misc_h264);
|
||||
|
|
@ -600,9 +600,9 @@ radv_enc_spec_misc_hevc(struct radv_cmd_buffer *cmd_buffer, const struct VkVideo
|
|||
const VkVideoEncodeH265NaluSliceSegmentInfoKHR *h265_slice = &h265_picture_info->pNaluSliceSegmentEntries[0];
|
||||
const StdVideoEncodeH265SliceSegmentHeader *slice = h265_slice->pStdSliceSegmentHeader;
|
||||
const StdVideoH265SequenceParameterSet *sps =
|
||||
vk_video_find_h265_enc_std_sps(&cmd_buffer->video.params->vk, pic->pps_seq_parameter_set_id);
|
||||
vk_video_find_h265_enc_std_sps(cmd_buffer->video.params, pic->pps_seq_parameter_set_id);
|
||||
const StdVideoH265PictureParameterSet *pps =
|
||||
vk_video_find_h265_enc_std_pps(&cmd_buffer->video.params->vk, pic->pps_pic_parameter_set_id);
|
||||
vk_video_find_h265_enc_std_pps(cmd_buffer->video.params, pic->pps_pic_parameter_set_id);
|
||||
|
||||
RADEON_ENC_BEGIN(pdev->vcn_enc_cmds.spec_misc_hevc);
|
||||
RADEON_ENC_CS(sps->log2_min_luma_coding_block_size_minus3);
|
||||
|
|
@ -712,11 +712,11 @@ radv_enc_spec_misc_av1(struct radv_cmd_buffer *cmd_buffer, const struct VkVideoE
|
|||
struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
struct radv_video_session *vid = cmd_buffer->video.vid;
|
||||
struct radv_video_session_params *params = cmd_buffer->video.params;
|
||||
struct vk_video_session_parameters *params = cmd_buffer->video.params;
|
||||
const struct VkVideoEncodeAV1PictureInfoKHR *av1_picture_info =
|
||||
vk_find_struct_const(enc_info->pNext, VIDEO_ENCODE_AV1_PICTURE_INFO_KHR);
|
||||
const StdVideoEncodeAV1PictureInfo *pic = av1_picture_info->pStdPictureInfo;
|
||||
const StdVideoAV1SequenceHeader *seq = ¶ms->vk.av1_enc.seq_hdr.base;
|
||||
const StdVideoAV1SequenceHeader *seq = ¶ms->av1_enc.seq_hdr.base;
|
||||
|
||||
uint32_t precision = 0;
|
||||
|
||||
|
|
@ -829,7 +829,7 @@ radv_enc_deblocking_filter_h264(struct radv_cmd_buffer *cmd_buffer, const VkVide
|
|||
const StdVideoEncodeH264SliceHeader *slice = h264_slice->pStdSliceHeader;
|
||||
const StdVideoEncodeH264PictureInfo *pic = h264_picture_info->pStdPictureInfo;
|
||||
const StdVideoH264PictureParameterSet *pps =
|
||||
vk_video_find_h264_enc_std_pps(&cmd_buffer->video.params->vk, pic->pic_parameter_set_id);
|
||||
vk_video_find_h264_enc_std_pps(cmd_buffer->video.params, pic->pic_parameter_set_id);
|
||||
|
||||
RADEON_ENC_BEGIN(pdev->vcn_enc_cmds.deblocking_filter_h264);
|
||||
RADEON_ENC_CS(slice->disable_deblocking_filter_idc);
|
||||
|
|
@ -851,7 +851,7 @@ radv_enc_deblocking_filter_hevc(struct radv_cmd_buffer *cmd_buffer, const VkVide
|
|||
const VkVideoEncodeH265NaluSliceSegmentInfoKHR *h265_slice = &h265_picture_info->pNaluSliceSegmentEntries[0];
|
||||
const StdVideoEncodeH265SliceSegmentHeader *slice = h265_slice->pStdSliceSegmentHeader;
|
||||
const StdVideoH265SequenceParameterSet *sps =
|
||||
vk_video_find_h265_enc_std_sps(&cmd_buffer->video.params->vk, pic->pps_seq_parameter_set_id);
|
||||
vk_video_find_h265_enc_std_sps(cmd_buffer->video.params, pic->pps_seq_parameter_set_id);
|
||||
|
||||
RADEON_ENC_BEGIN(pdev->vcn_enc_cmds.deblocking_filter_hevc);
|
||||
RADEON_ENC_CS(slice->flags.slice_loop_filter_across_slices_enabled_flag);
|
||||
|
|
@ -905,9 +905,9 @@ radv_enc_slice_header(struct radv_cmd_buffer *cmd_buffer, const VkVideoEncodeInf
|
|||
int slice_count = h264_picture_info->naluSliceEntryCount;
|
||||
const StdVideoEncodeH264PictureInfo *pic = h264_picture_info->pStdPictureInfo;
|
||||
const StdVideoH264SequenceParameterSet *sps =
|
||||
vk_video_find_h264_enc_std_sps(&cmd_buffer->video.params->vk, pic->seq_parameter_set_id);
|
||||
vk_video_find_h264_enc_std_sps(cmd_buffer->video.params, pic->seq_parameter_set_id);
|
||||
const StdVideoH264PictureParameterSet *pps =
|
||||
vk_video_find_h264_enc_std_pps(&cmd_buffer->video.params->vk, pic->pic_parameter_set_id);
|
||||
vk_video_find_h264_enc_std_pps(cmd_buffer->video.params, pic->pic_parameter_set_id);
|
||||
const VkVideoEncodeH264NaluSliceInfoKHR *slice_info = &h264_picture_info->pNaluSliceEntries[0];
|
||||
|
||||
unsigned int inst_index = 0;
|
||||
|
|
@ -1148,9 +1148,9 @@ radv_enc_slice_header_hevc(struct radv_cmd_buffer *cmd_buffer, const VkVideoEnco
|
|||
const VkVideoEncodeH265NaluSliceSegmentInfoKHR *h265_slice = &h265_picture_info->pNaluSliceSegmentEntries[0];
|
||||
const StdVideoEncodeH265SliceSegmentHeader *slice = h265_slice->pStdSliceSegmentHeader;
|
||||
const StdVideoH265SequenceParameterSet *sps =
|
||||
vk_video_find_h265_enc_std_sps(&cmd_buffer->video.params->vk, pic->pps_seq_parameter_set_id);
|
||||
vk_video_find_h265_enc_std_sps(cmd_buffer->video.params, pic->pps_seq_parameter_set_id);
|
||||
const StdVideoH265PictureParameterSet *pps =
|
||||
vk_video_find_h265_enc_std_pps(&cmd_buffer->video.params->vk, pic->pps_pic_parameter_set_id);
|
||||
vk_video_find_h265_enc_std_pps(cmd_buffer->video.params, pic->pps_pic_parameter_set_id);
|
||||
unsigned int inst_index = 0;
|
||||
unsigned int cdw_start = 0;
|
||||
unsigned int cdw_filled = 0;
|
||||
|
|
@ -1990,7 +1990,7 @@ radv_enc_op_preset(struct radv_cmd_buffer *cmd_buffer, const VkVideoEncodeInfoKH
|
|||
vk_find_struct_const(enc_info->pNext, VIDEO_ENCODE_H265_PICTURE_INFO_KHR);
|
||||
const StdVideoEncodeH265PictureInfo *pic = h265_picture_info->pStdPictureInfo;
|
||||
const StdVideoH265SequenceParameterSet *sps =
|
||||
vk_video_find_h265_enc_std_sps(&cmd_buffer->video.params->vk, pic->pps_seq_parameter_set_id);
|
||||
vk_video_find_h265_enc_std_sps(cmd_buffer->video.params, pic->pps_seq_parameter_set_id);
|
||||
if (sps->flags.sample_adaptive_offset_enabled_flag && vid->enc_preset_mode == RENCODE_PRESET_MODE_SPEED)
|
||||
preset_mode = RENCODE_IB_OP_SET_BALANCE_ENCODING_MODE;
|
||||
break;
|
||||
|
|
@ -2056,7 +2056,7 @@ radv_enc_output_format(struct radv_cmd_buffer *cmd_buffer)
|
|||
color_bit_depth = RENCODE_COLOR_BIT_DEPTH_8_BIT;
|
||||
break;
|
||||
case VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR:
|
||||
if (cmd_buffer->video.params->vk.av1_enc.seq_hdr.color_config.BitDepth == 10)
|
||||
if (cmd_buffer->video.params->av1_enc.seq_hdr.color_config.BitDepth == 10)
|
||||
color_bit_depth = RENCODE_COLOR_BIT_DEPTH_10_BIT;
|
||||
else
|
||||
color_bit_depth = RENCODE_COLOR_BIT_DEPTH_8_BIT;
|
||||
|
|
@ -2312,11 +2312,11 @@ radv_enc_av1_obu_instruction(struct radv_cmd_buffer *cmd_buffer, const VkVideoEn
|
|||
struct radv_device *device = radv_cmd_buffer_device(cmd_buffer);
|
||||
const struct radv_physical_device *pdev = radv_device_physical(device);
|
||||
struct radv_video_session *vid = cmd_buffer->video.vid;
|
||||
struct radv_video_session_params *params = cmd_buffer->video.params;
|
||||
struct vk_video_session_parameters *params = cmd_buffer->video.params;
|
||||
const struct VkVideoEncodeAV1PictureInfoKHR *av1_picture_info =
|
||||
vk_find_struct_const(enc_info->pNext, VIDEO_ENCODE_AV1_PICTURE_INFO_KHR);
|
||||
const StdVideoEncodeAV1PictureInfo *av1_pic = av1_picture_info->pStdPictureInfo;
|
||||
const StdVideoAV1SequenceHeader *seq = ¶ms->vk.av1_enc.seq_hdr.base;
|
||||
const StdVideoAV1SequenceHeader *seq = ¶ms->av1_enc.seq_hdr.base;
|
||||
const StdVideoEncodeAV1ExtensionHeader *ext_header =
|
||||
av1_picture_info->generateObuExtensionHeader ? av1_pic->pExtensionHeader : NULL;
|
||||
bool frame_is_intra =
|
||||
|
|
@ -3104,30 +3104,30 @@ radv_GetEncodedVideoSessionParametersKHR(VkDevice device,
|
|||
VkVideoEncodeSessionParametersFeedbackInfoKHR *pFeedbackInfo,
|
||||
size_t *pDataSize, void *pData)
|
||||
{
|
||||
VK_FROM_HANDLE(radv_video_session_params, templ, pVideoSessionParametersInfo->videoSessionParameters);
|
||||
VK_FROM_HANDLE(vk_video_session_parameters, templ, pVideoSessionParametersInfo->videoSessionParameters);
|
||||
size_t total_size = 0;
|
||||
size_t size_limit = 0;
|
||||
|
||||
if (pData)
|
||||
size_limit = *pDataSize;
|
||||
|
||||
switch (templ->vk.op) {
|
||||
switch (templ->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) {
|
||||
const StdVideoH264SequenceParameterSet *sps =
|
||||
vk_video_find_h264_enc_std_sps(&templ->vk, h264_get_info->stdSPSId);
|
||||
vk_video_find_h264_enc_std_sps(templ, h264_get_info->stdSPSId);
|
||||
assert(sps);
|
||||
vk_video_encode_h264_sps(sps, size_limit, &sps_size, pData);
|
||||
}
|
||||
if (h264_get_info->writeStdPPS) {
|
||||
const StdVideoH264PictureParameterSet *pps =
|
||||
vk_video_find_h264_enc_std_pps(&templ->vk, h264_get_info->stdPPSId);
|
||||
vk_video_find_h264_enc_std_pps(templ, h264_get_info->stdPPSId);
|
||||
assert(pps);
|
||||
char *data_ptr = pData ? (char *)pData + sps_size : NULL;
|
||||
vk_video_encode_h264_pps(pps, templ->vk.h264_enc.profile_idc == STD_VIDEO_H264_PROFILE_IDC_HIGH, size_limit,
|
||||
vk_video_encode_h264_pps(pps, templ->h264_enc.profile_idc == STD_VIDEO_H264_PROFILE_IDC_HIGH, size_limit,
|
||||
&pps_size, data_ptr);
|
||||
if (pFeedbackInfo) {
|
||||
struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR *h264_feedback_info =
|
||||
|
|
@ -3145,20 +3145,20 @@ radv_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) {
|
||||
const StdVideoH265VideoParameterSet *vps = vk_video_find_h265_enc_std_vps(&templ->vk, h265_get_info->stdVPSId);
|
||||
const StdVideoH265VideoParameterSet *vps = vk_video_find_h265_enc_std_vps(templ, h265_get_info->stdVPSId);
|
||||
assert(vps);
|
||||
vk_video_encode_h265_vps(vps, size_limit, &vps_size, pData);
|
||||
}
|
||||
if (h265_get_info->writeStdSPS) {
|
||||
const StdVideoH265SequenceParameterSet *sps =
|
||||
vk_video_find_h265_enc_std_sps(&templ->vk, h265_get_info->stdSPSId);
|
||||
vk_video_find_h265_enc_std_sps(templ, h265_get_info->stdSPSId);
|
||||
assert(sps);
|
||||
char *data_ptr = pData ? (char *)pData + vps_size : NULL;
|
||||
vk_video_encode_h265_sps(sps, size_limit, &sps_size, data_ptr);
|
||||
}
|
||||
if (h265_get_info->writeStdPPS) {
|
||||
const StdVideoH265PictureParameterSet *pps =
|
||||
vk_video_find_h265_enc_std_pps(&templ->vk, h265_get_info->stdPPSId);
|
||||
vk_video_find_h265_enc_std_pps(templ, h265_get_info->stdPPSId);
|
||||
assert(pps);
|
||||
char *data_ptr = pData ? (char *)pData + vps_size + sps_size : NULL;
|
||||
vk_video_encode_h265_pps(pps, size_limit, &pps_size, data_ptr);
|
||||
|
|
@ -3175,10 +3175,10 @@ radv_GetEncodedVideoSessionParametersKHR(VkDevice device,
|
|||
break;
|
||||
}
|
||||
case VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR: {
|
||||
struct vk_video_av1_seq_hdr *seq_hdr = &templ->vk.av1_enc.seq_hdr;
|
||||
struct vk_video_av1_seq_hdr *seq_hdr = &templ->av1_enc.seq_hdr;
|
||||
if (!seq_hdr)
|
||||
return VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR;
|
||||
vk_video_encode_av1_seq_hdr(&templ->vk, size_limit, &total_size, pData);
|
||||
vk_video_encode_av1_seq_hdr(templ, size_limit, &total_size, pData);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue