From 73bbf08897545a97edd0e7e1d202ba317bc69968 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 9 Feb 2021 09:48:48 -0500 Subject: [PATCH] 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 Reviewed-by: Boris Brezillon Part-of: --- src/panfrost/midgard/midgard.h | 1 + src/panfrost/midgard/midgard_compile.c | 1 + src/panfrost/midgard/midgard_schedule.c | 6 ++++++ 3 files changed, 8 insertions(+) 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); }