mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
aco: move insert_delay_alu to after insert_NOPs
s_delay_alu doesn't affect any hazards, but hazard workarounds don't update s_delay_alu and so can make the s_delay_alu affect the wrong instructions. fossil-db (navi31): Totals from 55777 (70.25% of 79395) affected shaders: Instrs: 40740011 -> 40765017 (+0.06%) CodeSize: 213768484 -> 213870856 (+0.05%); split: -0.00%, +0.05% Latency: 283713083 -> 283714959 (+0.00%); split: -0.00%, +0.00% InvThroughput: 46551791 -> 46551835 (+0.00%); split: -0.00%, +0.00% Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Acked-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23337>
This commit is contained in:
parent
807651561e
commit
30396ba604
1 changed files with 9 additions and 8 deletions
|
|
@ -185,15 +185,16 @@ aco_postprocess_shader(const struct aco_compiler_options* options,
|
|||
schedule_ilp(program.get());
|
||||
|
||||
insert_waitcnt(program.get());
|
||||
if (program->gfx_level >= GFX11) {
|
||||
insert_delay_alu(program.get());
|
||||
combine_delay_alu(program.get());
|
||||
}
|
||||
insert_NOPs(program.get());
|
||||
if (program->gfx_level >= GFX11)
|
||||
insert_delay_alu(program.get());
|
||||
|
||||
if (program->gfx_level >= GFX10)
|
||||
form_hard_clauses(program.get());
|
||||
|
||||
if (program->gfx_level >= GFX11)
|
||||
combine_delay_alu(program.get());
|
||||
|
||||
if (program->collect_statistics || (debug_flags & DEBUG_PERF_INFO))
|
||||
collect_preasm_stats(program.get());
|
||||
|
||||
|
|
@ -319,13 +320,13 @@ aco_compile_rt_prolog(const struct aco_compiler_options* options,
|
|||
select_rt_prolog(program.get(), &config, options, info, in_args, out_args);
|
||||
validate(program.get());
|
||||
insert_waitcnt(program.get());
|
||||
if (program->gfx_level >= GFX11) {
|
||||
insert_delay_alu(program.get());
|
||||
combine_delay_alu(program.get());
|
||||
}
|
||||
insert_NOPs(program.get());
|
||||
if (program->gfx_level >= GFX11)
|
||||
insert_delay_alu(program.get());
|
||||
if (program->gfx_level >= GFX10)
|
||||
form_hard_clauses(program.get());
|
||||
if (program->gfx_level >= GFX11)
|
||||
combine_delay_alu(program.get());
|
||||
|
||||
if (options->dump_shader)
|
||||
aco_print_program(program.get(), stderr);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue