diff --git a/src/amd/compiler/aco_interface.cpp b/src/amd/compiler/aco_interface.cpp index 9c428048046..f6bc400b444 100644 --- a/src/amd/compiler/aco_interface.cpp +++ b/src/amd/compiler/aco_interface.cpp @@ -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()); diff --git a/src/amd/compiler/aco_ir.cpp b/src/amd/compiler/aco_ir.cpp index ea49a10da5c..1a54f7de2e4 100644 --- a/src/amd/compiler/aco_ir.cpp +++ b/src/amd/compiler/aco_ir.cpp @@ -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}}; diff --git a/src/amd/compiler/aco_ir.h b/src/amd/compiler/aco_ir.h index 7c74d2fc73e..3863cf11b72 100644 --- a/src/amd/compiler/aco_ir.h +++ b/src/amd/compiler/aco_ir.h @@ -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 {