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:
@@ -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());
|
||||
|
@@ -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}};
|
||||
|
@@ -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 {
|
||||
|
Reference in New Issue
Block a user