diff options
author | Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> | 2021-02-09 09:48:48 -0500 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2021-02-11 17:24:37 +0000 |
commit | 73bbf08897545a97edd0e7e1d202ba317bc69968 (patch) | |
tree | 4cd53f78f54ff57995b2af0eb494f68066e26abc | |
parent | c7bcc40ec1b0ed82183eccb9c47db4166c2f7af4 (diff) |
pan/mdg: Add MIDGARD_MESA_DEBUG=inorder option
Helpful to disable the scheduler when debugging, so the assembly can be
compared against the NIR directly when lost in a big dEQP test.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8973>
-rw-r--r-- | src/panfrost/midgard/midgard.h | 1 | ||||
-rw-r--r-- | src/panfrost/midgard/midgard_compile.c | 1 | ||||
-rw-r--r-- | src/panfrost/midgard/midgard_schedule.c | 6 |
3 files changed, 8 insertions, 0 deletions
diff --git a/src/panfrost/midgard/midgard.h b/src/panfrost/midgard/midgard.h index 955c172cbc9..36c36c5bfcf 100644 --- a/src/panfrost/midgard/midgard.h +++ b/src/panfrost/midgard/midgard.h @@ -34,6 +34,7 @@ #define MIDGARD_DBG_MSGS 0x0001 #define MIDGARD_DBG_SHADERS 0x0002 #define MIDGARD_DBG_SHADERDB 0x0004 +#define MIDGARD_DBG_INORDER 0x0008 extern int midgard_debug; diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c index 17709e8997e..c42b1b784f0 100644 --- a/src/panfrost/midgard/midgard_compile.c +++ b/src/panfrost/midgard/midgard_compile.c @@ -58,6 +58,7 @@ static const struct debug_named_value midgard_debug_options[] = { {"msgs", MIDGARD_DBG_MSGS, "Print debug messages"}, {"shaders", MIDGARD_DBG_SHADERS, "Dump shaders in NIR and MIR"}, {"shaderdb", MIDGARD_DBG_SHADERDB, "Prints shader-db statistics"}, + {"inorder", MIDGARD_DBG_INORDER, "Disables out-of-order scheduling"}, DEBUG_NAMED_VALUE_END }; diff --git a/src/panfrost/midgard/midgard_schedule.c b/src/panfrost/midgard/midgard_schedule.c index 7bd8229fe33..973af220c2e 100644 --- a/src/panfrost/midgard/midgard_schedule.c +++ b/src/panfrost/midgard/midgard_schedule.c @@ -674,6 +674,12 @@ mir_choose_instruction( unsigned max_active = 0; unsigned max_distance = 36; +#ifndef NDEBUG + /* Force in-order scheduling */ + if (midgard_debug & MIDGARD_DBG_INORDER) + max_distance = 1; +#endif + BITSET_FOREACH_SET(i, worklist, count) { max_active = MAX2(max_active, i); } |