freedreno: Add debug flag for forcing linear layouts

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2848>
This commit is contained in:
Kristian H. Kristensen
2019-11-25 21:14:31 -08:00
parent d908a2ab18
commit a2f6c44a1c
3 changed files with 33 additions and 25 deletions

View File

@@ -963,6 +963,9 @@ fd_resource_create_with_modifiers(struct pipe_screen *pscreen,
if (tmpl->bind & LINEAR) if (tmpl->bind & LINEAR)
linear = true; linear = true;
if (fd_mesa_debug & FD_DBG_NOTILE)
linear = true;
/* Normally, for non-shared buffers, allow buffer compression if /* Normally, for non-shared buffers, allow buffer compression if
* not shared, otherwise only allow if QCOM_COMPRESSED modifier * not shared, otherwise only allow if QCOM_COMPRESSED modifier
* is requested: * is requested:

View File

@@ -90,6 +90,7 @@ static const struct debug_named_value debug_options[] = {
{"perfcntrs", FD_DBG_PERFC, "Expose performance counters"}, {"perfcntrs", FD_DBG_PERFC, "Expose performance counters"},
{"noubwc", FD_DBG_NOUBWC, "Disable UBWC for all internal buffers"}, {"noubwc", FD_DBG_NOUBWC, "Disable UBWC for all internal buffers"},
{"nolrz", FD_DBG_NOLRZ, "Disable LRZ (a6xx)"}, {"nolrz", FD_DBG_NOLRZ, "Disable LRZ (a6xx)"},
{"notile", FD_DBG_NOTILE, "Disable tiling for all internal buffers"},
DEBUG_NAMED_VALUE_END DEBUG_NAMED_VALUE_END
}; };

View File

@@ -61,31 +61,35 @@ enum adreno_stencil_op fd_stencil_op(unsigned op);
#define MAX_RENDER_TARGETS A6XX_MAX_RENDER_TARGETS #define MAX_RENDER_TARGETS A6XX_MAX_RENDER_TARGETS
#define FD_DBG_MSGS 0x0001 enum fd_debug_flag {
#define FD_DBG_DISASM 0x0002 FD_DBG_MSGS = BITFIELD_BIT(0),
#define FD_DBG_DCLEAR 0x0004 FD_DBG_DISASM = BITFIELD_BIT(1),
#define FD_DBG_DDRAW 0x0008 FD_DBG_DCLEAR = BITFIELD_BIT(2),
#define FD_DBG_NOSCIS 0x0010 FD_DBG_DDRAW = BITFIELD_BIT(3),
#define FD_DBG_DIRECT 0x0020 FD_DBG_NOSCIS = BITFIELD_BIT(4),
#define FD_DBG_NOBYPASS 0x0040 FD_DBG_DIRECT = BITFIELD_BIT(5),
#define FD_DBG_FRAGHALF 0x0080 FD_DBG_NOBYPASS = BITFIELD_BIT(6),
#define FD_DBG_NOBIN 0x0100 FD_DBG_FRAGHALF = BITFIELD_BIT(7),
#define FD_DBG_NOGMEM 0x0200 FD_DBG_NOBIN = BITFIELD_BIT(8),
#define FD_DBG_GLSL120 0x0400 FD_DBG_NOGMEM = BITFIELD_BIT(9),
#define FD_DBG_SHADERDB 0x0800 FD_DBG_GLSL120 = BITFIELD_BIT(10),
#define FD_DBG_FLUSH 0x1000 FD_DBG_SHADERDB = BITFIELD_BIT(11),
#define FD_DBG_DEQP 0x2000 FD_DBG_FLUSH = BITFIELD_BIT(12),
#define FD_DBG_INORDER 0x4000 FD_DBG_DEQP = BITFIELD_BIT(13),
#define FD_DBG_BSTAT 0x8000 FD_DBG_INORDER = BITFIELD_BIT(14),
#define FD_DBG_NOGROW 0x10000 FD_DBG_BSTAT = BITFIELD_BIT(15),
#define FD_DBG_LRZ 0x20000 FD_DBG_NOGROW = BITFIELD_BIT(16),
#define FD_DBG_NOINDR 0x40000 FD_DBG_LRZ = BITFIELD_BIT(17),
#define FD_DBG_NOBLIT 0x80000 FD_DBG_NOINDR = BITFIELD_BIT(18),
#define FD_DBG_HIPRIO 0x100000 FD_DBG_NOBLIT = BITFIELD_BIT(19),
#define FD_DBG_TTILE 0x200000 FD_DBG_HIPRIO = BITFIELD_BIT(20),
#define FD_DBG_PERFC 0x400000 FD_DBG_TTILE = BITFIELD_BIT(21),
#define FD_DBG_NOUBWC 0x800000 FD_DBG_PERFC = BITFIELD_BIT(22),
#define FD_DBG_NOLRZ 0x1000000 FD_DBG_NOUBWC = BITFIELD_BIT(23),
FD_DBG_NOLRZ = BITFIELD_BIT(24),
FD_DBG_NOTILE = BITFIELD_BIT(25),
};
extern int fd_mesa_debug; extern int fd_mesa_debug;
extern bool fd_binning_enabled; extern bool fd_binning_enabled;