panfrost: Add a debug flag to enforce WSI row pitch at import time

So far we assumed tile rows would be tightly packed, so changing the
behavior without introducing a new set of AFBC modifiers is likely
to break some cases where the exported got the stride wrong. That's
still something we would like to enforce in the long run, so let's
start by adding a "PAN_MESA_DEBUG=strict_afbc" flag to exercise the
code supposed to force this behavior.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Tested-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Eric R. Smith <eric.smith@collabora.com>
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35015>
This commit is contained in:
Boris Brezillon 2025-05-15 17:22:06 +02:00 committed by Marge Bot
parent 916f75a2a6
commit aceabab18f
3 changed files with 3 additions and 1 deletions

View file

@ -134,6 +134,7 @@ panfrost_resource_from_handle(struct pipe_screen *pscreen,
struct pan_image_wsi_layout explicit_layout = {
.offset_B = whandle->offset,
.row_pitch_B = whandle->stride,
.strict = dev->debug & PAN_DBG_STRICT_IMPORT,
};
rsc->modifier = mod;

View file

@ -72,6 +72,7 @@ static const struct debug_named_value panfrost_debug_options[] = {
{"nocrc", PAN_DBG_NO_CRC, "Disable transaction elimination"},
{"msaa16", PAN_DBG_MSAA16, "Enable MSAA 8x and 16x support"},
{"linear", PAN_DBG_LINEAR, "Force linear textures"},
{"strict_import", PAN_DBG_STRICT_IMPORT, "Use the explicit WSI stride and fail if it's not properly aligned"},
{"nocache", PAN_DBG_NO_CACHE, "Disable BO cache"},
{"dump", PAN_DBG_DUMP, "Dump all graphics memory"},
#ifdef PAN_DBG_OVERFLOW

View file

@ -43,7 +43,7 @@
#define PAN_DBG_GL3 0x0100
#define PAN_DBG_NO_AFBC 0x0200
#define PAN_DBG_MSAA16 0x0400
/* 0x800 unused */
#define PAN_DBG_STRICT_IMPORT 0x0800
#define PAN_DBG_LINEAR 0x1000
#define PAN_DBG_NO_CACHE 0x2000
#define PAN_DBG_DUMP 0x4000