From 933e6e4751806fbb66325dfcfd9c32ce5984e4eb Mon Sep 17 00:00:00 2001 From: Vitaliy Triang3l Kuzmin Date: Mon, 7 Aug 2023 22:41:46 +0300 Subject: [PATCH] r600/asm: Make sure MOVA and SET_CF_IDX are in the same clause Acked-by: Gert Wollny Signed-off-by: Vitaliy Triang3l Kuzmin Part-of: --- src/gallium/drivers/r600/eg_asm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gallium/drivers/r600/eg_asm.c b/src/gallium/drivers/r600/eg_asm.c index a0eb629..a55e74a 100644 --- a/src/gallium/drivers/r600/eg_asm.c +++ b/src/gallium/drivers/r600/eg_asm.c @@ -186,6 +186,11 @@ int egcm_load_index_reg(struct r600_bytecode *bc, unsigned id, bool inside_alu_c if (bc->index_loaded[id]) return 0; + /* Hack to put MOVA and SET_CF_IDX in the same clause as AR only persists for one clause */ + if (bc->gfx_level == EVERGREEN && (bc->cf_last == NULL || (bc->cf_last->ndw >> 1) >= 110)) { + bc->force_add_cf = 1; + } + memset(&alu, 0, sizeof(alu)); alu.op = ALU_OP1_MOVA_INT; alu.src[0].sel = bc->index_reg[id]; -- 2.7.4