From 4422ce1b04c117f61394a6834cd7933f06ce4e1f Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Mon, 25 Nov 2019 19:30:00 +0100 Subject: [PATCH] r600: force new CF with TEX only if any texture value is written This works aound splitting the CF when the gradient is set. Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/r600_asm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c index 6affa3d..a604e74 100644 --- a/src/gallium/drivers/r600/r600_asm.c +++ b/src/gallium/drivers/r600/r600_asm.c @@ -1450,7 +1450,9 @@ int r600_bytecode_add_tex(struct r600_bytecode *bc, const struct r600_bytecode_t bc->cf_last->op == CF_OP_TEX) { struct r600_bytecode_tex *ttex; LIST_FOR_EACH_ENTRY(ttex, &bc->cf_last->tex, list) { - if (ttex->dst_gpr == ntex->src_gpr) { + if (ttex->dst_gpr == ntex->src_gpr && + (ttex->dst_sel_x < 4 || ttex->dst_sel_y < 4 || + ttex->dst_sel_z < 4 || ttex->dst_sel_z < 4)) { bc->force_add_cf = 1; break; } -- 2.7.4