radeonsi/vcn: Fix HEVC encode transform_skip with old FW

Cc: mesa-stable
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36845>
(cherry picked from commit e1fcc403d4)
This commit is contained in:
David Rosca 2025-08-19 15:21:48 +02:00 committed by Eric Engestrom
parent 3879bffcad
commit 19764c137d
2 changed files with 14 additions and 2 deletions

View file

@ -1344,7 +1344,7 @@
"description": "radeonsi/vcn: Fix HEVC encode transform_skip with old FW",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -644,6 +644,18 @@ static bool cu_qp_delta_supported(struct si_screen *sscreen)
return false;
}
static bool transform_skip_supported(struct si_screen *sscreen)
{
if (sscreen->info.vcn_ip_version >= VCN_5_0_0)
return true;
else if (sscreen->info.vcn_ip_version >= VCN_4_0_0)
return sscreen->info.vcn_enc_minor_version >= 2;
else if (sscreen->info.vcn_ip_version >= VCN_3_0_0)
return sscreen->info.vcn_enc_minor_version >= 23;
else
return false;
}
static void radeon_vcn_enc_hevc_get_spec_misc_param(struct radeon_encoder *enc,
struct pipe_h265_enc_picture_desc *pic)
{
@ -662,7 +674,7 @@ static void radeon_vcn_enc_hevc_get_spec_misc_param(struct radeon_encoder *enc,
enc->enc_pic.hevc_spec_misc.half_pel_enabled = 1;
enc->enc_pic.hevc_spec_misc.quarter_pel_enabled = 1;
enc->enc_pic.hevc_spec_misc.transform_skip_disabled =
sscreen->info.vcn_ip_version < VCN_3_0_0 ||
!transform_skip_supported(sscreen) ||
!pic->pic.transform_skip_enabled_flag;
enc->enc_pic.hevc_spec_misc.cu_qp_delta_enabled_flag =
(cu_qp_delta_supported(sscreen) && pic->pic.cu_qp_delta_enabled_flag) ||