radv,aco: disable opts if VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT

Sounds useful to determine if ACO breaks a specific pipeline
because of various optimizations.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6487>
This commit is contained in:
Samuel Pitoiset
2020-08-28 08:41:20 +02:00
committed by Marge Bot
parent bb80ed8873
commit ebf2576862
4 changed files with 30 additions and 12 deletions

View File

@@ -89,10 +89,12 @@ void aco_compile_shader(unsigned shader_count,
validate(program.get());
/* Optimization */
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());
if (!args->options->disable_optimizations) {
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());
@@ -123,7 +125,8 @@ void aco_compile_shader(unsigned shader_count,
aco::collect_presched_stats(program.get());
if (!args->is_trap_handler_shader) {
if (!(aco::debug_flags & aco::DEBUG_NO_SCHED))
if (!args->options->disable_optimizations &&
!(aco::debug_flags & aco::DEBUG_NO_SCHED))
aco::schedule_program(program.get(), live_vars);
validate(program.get());