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>
This commit is contained in:
Gert Wollny
2019-11-25 19:30:00 +01:00
committed by Marge Bot
parent 144561dc5e
commit 4422ce1b04

View File

@@ -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;
}