summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGert Wollny <gw.fossdev@gmail.com>2019-11-25 19:30:00 +0100
committerMarge Bot <eric+marge@anholt.net>2020-02-10 19:09:07 +0000
commit4422ce1b04c117f61394a6834cd7933f06ce4e1f (patch)
tree840c5d584b72a6c5441283c0c696791a3b056fac /src
parent144561dc5ec3dcbe63cb054f806247bc120b64e4 (diff)
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 <gw.fossdev@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/r600/r600_asm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index 6affa3d3a79..a604e74bb7e 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;
}