r600/sfn: always use four slots for Cayman trans ops

This is a partial revert of
  ed6204eb0 (r600/sfn: only use 3 channels on Cayman for trans ops)

The scheduler and/or optimizer passes generate faulty code when
we use only three slots as decribed in the spec. So for now disable
this optimization.

Fixes: ed6204eb0 (r600/sfn: only use 3 channels on Cayman for trans ops)
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7774

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20034>
(cherry picked from commit 28c7684eb9)
This commit is contained in:
Gert Wollny 2022-11-28 11:43:16 +01:00 committed by Eric Engestrom
parent 3148738adf
commit 94b2aebf6f
2 changed files with 2 additions and 2 deletions

View file

@ -697,7 +697,7 @@
"description": "r600/sfn: always use four slots for Cayman trans ops",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "ed6204eb06cb559d9ed354aca00f1ddb0a6f68f7"
},

View file

@ -2818,7 +2818,7 @@ emit_alu_trans_op1_cayman(const nir_alu_instr& alu, EAluOp opcode, Shader& shade
auto pin = pin_for_components(alu);
unsigned ncomp = nir_dest_num_components(alu.dest.dest) == 4 ? 4 : 3;
unsigned ncomp = 4; //nir_dest_num_components(alu.dest.dest) == 4 ? 4 : 3;
/* todo: Actually we need only three channels, but then we have
* to make sure that we don't hava w dest */