mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-25 11:20:49 +02:00
ir3/a7xx: enable delayed src2 read for all cat3 instructions
cat3 instructions read their 3rd src later than their first two srcs. Pre-a7xx, this was only supported for mad(sh) but on a7xx, it works for all cat3 instructions. Signed-off-by: Job Noorman <jnoorman@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33183>
This commit is contained in:
parent
992a6cc050
commit
f577118fe1
1 changed files with 7 additions and 2 deletions
|
|
@ -37,8 +37,13 @@ ir3_src_read_delay(struct ir3_compiler *compiler, struct ir3_instruction *instr,
|
|||
return src_n;
|
||||
}
|
||||
|
||||
/* cat3 instructions consume their last source one or two cycles later. */
|
||||
if ((is_mad(instr->opc) || is_madsh(instr->opc)) && src_n == 2) {
|
||||
/* cat3 instructions consume their last source one or two cycles later. Note
|
||||
* that not all cat3 instructions seem to do this pre-a7xx.
|
||||
*/
|
||||
bool cat3_reads_later = compiler->gen >= 7
|
||||
? (opc_cat(instr->opc) == 3)
|
||||
: (is_mad(instr->opc) || is_madsh(instr->opc));
|
||||
if (cat3_reads_later && src_n == 2) {
|
||||
return compiler->delay_slots.cat3_src2_read;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue