aco: add ACO_DEBUG=novn,noopt,nosched for debugging purposes

To disable value numbering, optimizations and scheduling.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6470>
This commit is contained in:
Samuel Pitoiset 2020-08-26 14:24:45 +02:00 committed by Marge Bot
parent 4d40a719b0
commit 502b9daa7a
4 changed files with 18 additions and 3 deletions

View File

@ -614,6 +614,12 @@ RADV driver environment variables
abort on some suboptimal code generation
``force-waitcnt``
force emitting waitcnt states if there is something to wait for
``novn``
disable value numbering
``noopt``
disable various optimizations
``noscheduling``
disable instructions scheduling
radeonsi driver environment variables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -89,8 +89,10 @@ void aco_compile_shader(unsigned shader_count,
validate(program.get());
/* Optimization */
aco::value_numbering(program.get());
aco::optimize(program.get());
if (!(aco::debug_flags & aco::DEBUG_NO_VN))
aco::value_numbering(program.get());
if (!(aco::debug_flags & aco::DEBUG_NO_OPT))
aco::optimize(program.get());
/* cleanup and exec mask handling */
aco::setup_reduce_temp(program.get());
@ -121,7 +123,8 @@ void aco_compile_shader(unsigned shader_count,
aco::collect_presched_stats(program.get());
if (!args->is_trap_handler_shader) {
aco::schedule_program(program.get(), live_vars);
if (!(aco::debug_flags & aco::DEBUG_NO_SCHED))
aco::schedule_program(program.get(), live_vars);
validate(program.get());
/* Register Allocation */

View File

@ -35,6 +35,9 @@ static const struct debug_control aco_debug_options[] = {
{"validatera", DEBUG_VALIDATE_RA},
{"perfwarn", DEBUG_PERFWARN},
{"force-waitcnt", DEBUG_FORCE_WAITCNT},
{"novn", DEBUG_NO_VN},
{"noopt", DEBUG_NO_OPT},
{"nosched", DEBUG_NO_SCHED},
{NULL, 0}
};

View File

@ -52,6 +52,9 @@ enum {
DEBUG_VALIDATE_RA = 0x2,
DEBUG_PERFWARN = 0x4,
DEBUG_FORCE_WAITCNT = 0x8,
DEBUG_NO_VN = 0x10,
DEBUG_NO_OPT = 0x20,
DEBUG_NO_SCHED = 0x40,
};
/**