d3d12: Plumb H264/HEVC temporal_id from pipe params

Reviewed-By: Pohsiang (John) Hsu <pohhsu@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31268>
This commit is contained in:
Sil Vilerino 2024-09-19 11:58:51 -04:00 committed by Marge Bot
parent 1b66866275
commit 83fdbf8772
4 changed files with 4 additions and 4 deletions

View file

@ -368,6 +368,7 @@ d3d12_video_encoder_update_current_frame_pic_params_info_h264(struct d3d12_video
//
// These need to be set here so they're available for SPS/PPS header building (reference manager updates after that, for slice header params)
//
picParams.pH264PicData->TemporalLayerIndex = h264Pic->pic_ctrl.temporal_id;
picParams.pH264PicData->pic_parameter_set_id = pH264BitstreamBuilder->get_active_pps().pic_parameter_set_id;
picParams.pH264PicData->List0ReferenceFramesCount = 0;
picParams.pH264PicData->List1ReferenceFramesCount = 0;

View file

@ -467,6 +467,7 @@ d3d12_video_encoder_update_current_frame_pic_params_info_hevc(struct d3d12_video
//
// These need to be set here so they're available for SPS/PPS header building (reference manager updates after that, for slice header params)
//
picParams.pHEVCPicData->TemporalLayerIndex = hevcPic->pic.temporal_id;
picParams.pHEVCPicData->List0ReferenceFramesCount = 0;
picParams.pHEVCPicData->List1ReferenceFramesCount = 0;
if ((hevcPic->picture_type == PIPE_H2645_ENC_PICTURE_TYPE_P) ||

View file

@ -306,7 +306,7 @@ d3d12_video_encoder_references_manager_h264::begin_frame(D3D12_VIDEO_ENCODER_PIC
// mirror indices between DPB entries and allocation arrays
m_CurrentFrameReferencesData.pReferenceFramesReconPictureDescriptors[i].ReconstructedPictureResourceIndex = i;
m_CurrentFrameReferencesData.pReferenceFramesReconPictureDescriptors[i].TemporalLayerIndex =
0u; // h264Pic->dpb[i].temporal_id;
h264Pic->dpb[i].temporal_id;
//
// Set texture allocations
@ -332,7 +332,6 @@ d3d12_video_encoder_references_manager_h264::begin_frame(D3D12_VIDEO_ENCODER_PIC
m_curFrameState.FrameType = d3d12_video_encoder_convert_frame_type_h264(h264Pic->picture_type);
m_curFrameState.PictureOrderCountNumber = h264Pic->pic_order_cnt;
m_curFrameState.FrameDecodingOrderNumber = h264Pic->slice.frame_num;
m_curFrameState.TemporalLayerIndex = 0u; // h264Pic->temporal_id;
///
/// Set MMCO info

View file

@ -282,7 +282,7 @@ d3d12_video_encoder_references_manager_hevc::begin_frame(D3D12_VIDEO_ENCODER_PIC
// mirror indices between DPB entries and allocation arrays
m_CurrentFrameReferencesData.pReferenceFramesReconPictureDescriptors[i].ReconstructedPictureResourceIndex = i;
m_CurrentFrameReferencesData.pReferenceFramesReconPictureDescriptors[i].TemporalLayerIndex =
0u; // hevcPic->dpb[i].temporal_id;
hevcPic->dpb[i].temporal_id;
// Check if this i-th dpb descriptor entry is referenced by any entry in L0 or L1 lists
// and set IsRefUsedByCurrentPic accordingly
@ -315,7 +315,6 @@ d3d12_video_encoder_references_manager_hevc::begin_frame(D3D12_VIDEO_ENCODER_PIC
m_curFrameState.FrameType = d3d12_video_encoder_convert_frame_type_hevc(hevcPic->picture_type);
m_curFrameState.PictureOrderCountNumber = hevcPic->pic_order_cnt;
m_curFrameState.TemporalLayerIndex = 0u; // hevcPic->temporal_id;
///
/// Set reference pics info