gallium: add pipe cap for scissored clears and pass scissor state to clear() hook
[mesa.git] / src / gallium / drivers / r600 / r600_asm.c
index 6affa3d3a79d78020b771893f01b8e99ea891a3e..a604e74bb7e573644c4ec3e54a64f26ac538e0e9 100644 (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;
                        }