diff options
-rw-r--r-- | src/gallium/drivers/radeon/radeon_vcn_dec.c | 12 | ||||
-rw-r--r-- | src/gallium/frontends/omx/bellagio/vid_dec_h265.c | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeon/radeon_vcn_dec.c b/src/gallium/drivers/radeon/radeon_vcn_dec.c index f80758bc756..a119eef9628 100644 --- a/src/gallium/drivers/radeon/radeon_vcn_dec.c +++ b/src/gallium/drivers/radeon/radeon_vcn_dec.c @@ -460,6 +460,14 @@ static rvcn_dec_message_hevc_t get_h265_msg(struct radeon_decoder *dec, } } + if (dec->dpb_type == DPB_DYNAMIC_TIER_2) { + dec->ref_codec.bts = (pic->base.profile == PIPE_VIDEO_PROFILE_HEVC_MAIN_10) ? + CODEC_10_BITS : CODEC_8_BITS; + dec->ref_codec.index = result.curr_idx; + dec->ref_codec.ref_size = 15; + memset(dec->ref_codec.ref_list, 0x7f, sizeof(dec->ref_codec.ref_list)); + memcpy(dec->ref_codec.ref_list, result.ref_pic_list, sizeof(result.ref_pic_list)); + } return result; } @@ -2563,7 +2571,9 @@ struct pipe_video_codec *radeon_create_decoder(struct pipe_context *context, } if (sctx->family >= CHIP_SIENNA_CICHLID && - (stream_type == RDECODE_CODEC_VP9 || stream_type == RDECODE_CODEC_AV1 || + (stream_type == RDECODE_CODEC_VP9 || + stream_type == RDECODE_CODEC_AV1 || + ((stream_type == RDECODE_CODEC_H265) && templ->expect_chunked_decode) || ((stream_type == RDECODE_CODEC_H264_PERF) && templ->expect_chunked_decode))) dec->dpb_type = DPB_DYNAMIC_TIER_2; else if (sctx->family <= CHIP_NAVI14 && stream_type == RDECODE_CODEC_VP9) diff --git a/src/gallium/frontends/omx/bellagio/vid_dec_h265.c b/src/gallium/frontends/omx/bellagio/vid_dec_h265.c index 12bb97d3d90..4b6117cc2f1 100644 --- a/src/gallium/frontends/omx/bellagio/vid_dec_h265.c +++ b/src/gallium/frontends/omx/bellagio/vid_dec_h265.c @@ -623,7 +623,7 @@ static void vid_dec_h265_BeginFrame(vid_dec_PrivateType *priv) templat.profile = priv->profile; templat.entrypoint = PIPE_VIDEO_ENTRYPOINT_BITSTREAM; templat.chroma_format = PIPE_VIDEO_CHROMA_FORMAT_420; - templat.expect_chunked_decode = true; + templat.expect_chunked_decode = false; templat.width = priv->codec_data.h265.pic_width_in_luma_samples; templat.height = priv->codec_data.h265.pic_height_in_luma_samples; templat.level = priv->codec_data.h265.level_idc; |