aco/optimizer_postRA: don't combine DPP across exec on GFX8/9
GFX8/9 seem to use FI=0 behaviour. fossil-db (vega10): Totals from 1 (0.00% of 63053) affected shaders: Instrs: 542 -> 570 (+5.17%) CodeSize: 2928 -> 3040 (+3.83%) Latency: 2087 -> 2118 (+1.49%) InvThroughput: 1103 -> 1143 (+3.63%) Affected shader is from Cyberpunk 2077 fossil. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Cc: 23.2 <mesa-stable> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9784 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25471>
This commit is contained in:
@@ -507,6 +507,11 @@ try_combine_dpp(pr_opt_ctx& ctx, aco_ptr<Instruction>& instr)
|
||||
if (is_overwritten_since(ctx, mov->operands[0], op_instr_idx))
|
||||
continue;
|
||||
|
||||
/* GFX8/9 don't have fetch-inactive. */
|
||||
if (ctx.program->gfx_level < GFX10 &&
|
||||
is_overwritten_since(ctx, Operand(exec, ctx.program->lane_mask), op_instr_idx))
|
||||
continue;
|
||||
|
||||
/* We won't eliminate the DPP mov if the operand is used twice */
|
||||
bool op_used_twice = false;
|
||||
for (unsigned j = 0; j < instr->operands.size(); j++)
|
||||
|
||||
Reference in New Issue
Block a user