radeonsi: Add debug options to disable video decode/encode tiers
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36515>
This commit is contained in:
David Rosca 2025-07-30 13:34:59 +02:00 committed by Marge Bot
parent fe94eb5bea
commit 66fd4b24b6
5 changed files with 27 additions and 1 deletions

View file

@ -1755,6 +1755,14 @@ RadeonSI driver environment variables
Disable register shadowing in userqueue. This will also disable userqueue mcbp.
``novideotiling``
Disable tiling for video.
``nodectier1``
Disable tier1 for video decode.
``nodectier2``
Disable tier2 for video decode.
``nodectier3``
Disable tier3 for video decode.
``noenctier2``
Disable tier2 for video encode.
r600 driver environment variables
---------------------------------

View file

@ -2760,6 +2760,9 @@ static void radeon_dec_destroy_fence(struct pipe_video_codec *decoder,
static bool radeon_dec_enable_tier3(struct si_context *sctx, uint32_t codec)
{
if (sctx->screen->multimedia_debug_flags & DBG(NO_DECODE_TIER3))
return false;
if (sctx->vcn_ip_ver < VCN_5_0_0)
return false;
@ -2768,6 +2771,9 @@ static bool radeon_dec_enable_tier3(struct si_context *sctx, uint32_t codec)
static bool radeon_dec_enable_tier2(struct si_context *sctx, uint32_t codec)
{
if (sctx->screen->multimedia_debug_flags & DBG(NO_DECODE_TIER2))
return false;
if (sctx->vcn_ip_ver < VCN_3_0_0)
return false;
@ -2777,6 +2783,9 @@ static bool radeon_dec_enable_tier2(struct si_context *sctx, uint32_t codec)
static bool radeon_dec_enable_tier1(struct si_context *sctx, uint32_t codec)
{
if (sctx->screen->multimedia_debug_flags & DBG(NO_DECODE_TIER1))
return false;
if (sctx->vcn_ip_ver > VCN_2_6_0)
return false;

View file

@ -2019,7 +2019,8 @@ struct pipe_video_codec *radeon_create_encoder(struct pipe_context *context,
ac_vcn_enc_init_cmds(&enc->cmd, sscreen->info.vcn_ip_version);
if (sscreen->info.vcn_ip_version >= VCN_5_0_0)
if (sscreen->info.vcn_ip_version >= VCN_5_0_0 &&
!(sscreen->multimedia_debug_flags & DBG(NO_ENCODE_TIER2)))
enc->dpb_type = DPB_TIER_2;
if (enc->dpb_type == DPB_TIER_2)

View file

@ -129,6 +129,10 @@ static const struct debug_named_value radeonsi_multimedia_debug_options[] = {
{"noefc", DBG(NO_EFC), "Disable hardware based encoder colour format conversion."},
{"lowlatencyenc", DBG(LOW_LATENCY_ENCODE), "Enable low latency encoding."},
{"novideotiling", DBG(NO_VIDEO_TILING), "Disable tiling for video."},
{"nodectier1", DBG(NO_DECODE_TIER1), "Disable tier1 for video decode."},
{"nodectier2", DBG(NO_DECODE_TIER2), "Disable tier2 for video decode."},
{"nodectier3", DBG(NO_DECODE_TIER3), "Disable tier3 for video decode."},
{"noenctier2", DBG(NO_ENCODE_TIER2), "Disable tier2 for video encode."},
DEBUG_NAMED_VALUE_END /* must be last */
};

View file

@ -257,6 +257,10 @@ enum
DBG_NO_EFC,
DBG_LOW_LATENCY_ENCODE,
DBG_NO_VIDEO_TILING,
DBG_NO_DECODE_TIER1,
DBG_NO_DECODE_TIER2,
DBG_NO_DECODE_TIER3,
DBG_NO_ENCODE_TIER2,
};
enum