radeonsi/vcn: only use multi slices reflist when available

Some frontends interface doesn't provide ref pic lists for HEVC. Therefore
ONLY enabling multislices reflist for frontends that support direct ref pic
list by checking the flag.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10599
Cc: mesa-stable

Signed-off-by: Boyuan Zhang <boyuan.zhang@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27642>
(cherry picked from commit 0db2d13af1)
This commit is contained in:
Boyuan Zhang 2024-02-15 14:00:52 -05:00 committed by Eric Engestrom
parent a85301784d
commit 519c96f3c8
2 changed files with 4 additions and 4 deletions

View file

@ -3034,7 +3034,7 @@
"description": "radeonsi/vcn: only use multi slices reflist when available",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -307,15 +307,15 @@ static rvcn_dec_message_hevc_t get_h265_msg(struct radeon_decoder *dec,
result.sps_info_flags |= pic->pps->sps->separate_colour_plane_flag << 8;
if (((struct si_screen *)dec->screen)->info.family == CHIP_CARRIZO)
result.sps_info_flags |= 1 << 9;
if (pic->UseRefPicList == true)
if (pic->UseRefPicList == true) {
result.sps_info_flags |= 1 << 10;
result.sps_info_flags |= 1 << 12;
}
if (pic->UseStRpsBits == true && pic->pps->st_rps_bits != 0) {
result.sps_info_flags |= 1 << 11;
result.st_rps_bits = pic->pps->st_rps_bits;
}
result.sps_info_flags |= 1 << 12;
result.chroma_format = pic->pps->sps->chroma_format_idc;
result.bit_depth_luma_minus8 = pic->pps->sps->bit_depth_luma_minus8;
result.bit_depth_chroma_minus8 = pic->pps->sps->bit_depth_chroma_minus8;