aco: enable VOPD scheduler

fossil-db (navi31, wave32):
Totals from 75237 (94.95% of 79242) affected shaders:
Instrs: 40383337 -> 36522907 (-9.56%); split: -9.56%, +0.00%
CodeSize: 209282312 -> 209883000 (+0.29%); split: -0.18%, +0.46%
Latency: 256898944 -> 257834204 (+0.36%); split: -0.23%, +0.60%
InvThroughput: 59105835 -> 52725948 (-10.79%); split: -10.90%, +0.11%
VClause: 759487 -> 758151 (-0.18%); split: -0.18%, +0.01%
SClause: 1264895 -> 1263230 (-0.13%); split: -0.14%, +0.01%
VALU: 22886416 -> 18837085 (-17.69%)
VOPD: 0 -> 4049331 (+inf%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23367>
This commit is contained in:
Rhys Perry
2024-01-18 11:54:53 +00:00
committed by Marge Bot
parent 75a76ec3fd
commit 48461c0d9e
3 changed files with 6 additions and 1 deletions

View File

@@ -200,6 +200,9 @@ aco_postprocess_shader(const struct aco_compiler_options* options,
aco::lower_to_hw_instr(program.get());
validate(program.get());
if (!options->optimisations_disabled && !(aco::debug_flags & aco::DEBUG_NO_SCHED_VOPD))
aco::schedule_vopd(program.get());
/* Schedule hardware instructions for ILP */
if (!options->optimisations_disabled && !(aco::debug_flags & aco::DEBUG_NO_SCHED_ILP))
aco::schedule_ilp(program.get());

View File

@@ -45,8 +45,9 @@ static const struct debug_control aco_debug_options[] = {
{"force-waitdeps", DEBUG_FORCE_WAITDEPS},
{"novn", DEBUG_NO_VN},
{"noopt", DEBUG_NO_OPT},
{"nosched", DEBUG_NO_SCHED | DEBUG_NO_SCHED_ILP},
{"nosched", DEBUG_NO_SCHED | DEBUG_NO_SCHED_ILP | DEBUG_NO_SCHED_VOPD},
{"nosched-ilp", DEBUG_NO_SCHED_ILP},
{"nosched-vopd", DEBUG_NO_SCHED_VOPD},
{"perfinfo", DEBUG_PERF_INFO},
{"liveinfo", DEBUG_LIVE_INFO},
{NULL, 0}};

View File

@@ -58,6 +58,7 @@ enum {
DEBUG_FORCE_WAITDEPS = 0x200,
DEBUG_NO_VALIDATE_IR = 0x400,
DEBUG_NO_SCHED_ILP = 0x800,
DEBUG_NO_SCHED_VOPD = 0x1000,
};
enum storage_class : uint8_t {