From fe94eb5bead866829c68efcd4e6080d14889c66a Mon Sep 17 00:00:00 2001 From: David Rosca Date: Wed, 30 Jul 2025 12:20:40 +0200 Subject: [PATCH] radeonsi: Add debug option to disable tiling for video Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- docs/envvars.rst | 2 ++ src/gallium/drivers/radeonsi/si_pipe.c | 1 + src/gallium/drivers/radeonsi/si_pipe.h | 1 + src/gallium/drivers/radeonsi/si_uvd.c | 9 +++++++-- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/envvars.rst b/docs/envvars.rst index 5100ce879a9..258a9d46d51 100644 --- a/docs/envvars.rst +++ b/docs/envvars.rst @@ -1753,6 +1753,8 @@ RadeonSI driver environment variables Enable CP register shadowing in kernel queue. ``userqnoshadowregs`` Disable register shadowing in userqueue. This will also disable userqueue mcbp. + ``novideotiling`` + Disable tiling for video. r600 driver environment variables --------------------------------- diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c index 4e221af5c85..1c368cf6f38 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.c +++ b/src/gallium/drivers/radeonsi/si_pipe.c @@ -128,6 +128,7 @@ static const struct debug_named_value radeonsi_multimedia_debug_options[] = { /* Multimedia 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."}, DEBUG_NAMED_VALUE_END /* must be last */ }; diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index f14f1591c30..4923f6ec869 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -256,6 +256,7 @@ enum { DBG_NO_EFC, DBG_LOW_LATENCY_ENCODE, + DBG_NO_VIDEO_TILING, }; enum diff --git a/src/gallium/drivers/radeonsi/si_uvd.c b/src/gallium/drivers/radeonsi/si_uvd.c index ef4a0d06285..2211c5379f5 100644 --- a/src/gallium/drivers/radeonsi/si_uvd.c +++ b/src/gallium/drivers/radeonsi/si_uvd.c @@ -40,8 +40,13 @@ struct pipe_video_buffer *si_video_buffer_create_with_modifiers(struct pipe_cont if (!ac_modifier_supports_video(&sscreen->info, mod)) continue; - if (mod != DRM_FORMAT_MOD_LINEAR && !sscreen->info.has_image_opcodes) - continue; + if (mod != DRM_FORMAT_MOD_LINEAR) { + if (sscreen->multimedia_debug_flags & DBG(NO_VIDEO_TILING)) + continue; + + if (!sscreen->info.has_image_opcodes) + continue; + } allowed_modifiers[allowed_modifiers_count++] = mod; }