if (ALWAYS_INVALIDATE)
need_invalidate = true;
- need_flush =
- sna->render_state.gen7.emit_flush &&
- wm_binding_table & GEN7_READS_DST(op->u.gen7.flags);
+ need_flush = wm_binding_table & 1 || sna->render_state.gen7.emit_flush;
if (ALWAYS_FLUSH)
need_flush = true;
offset = sna->render_state.gen7.surface_table;
}
+ if (sna->kgem.batch[sna->render_state.gen7.surface_table] == binding_table[0])
+ dirty = 0;
+
gen7_emit_state(sna, op, offset | dirty);
}
offset = sna->render_state.gen7.surface_table;
}
+ if (sna->kgem.batch[sna->render_state.gen7.surface_table] == binding_table[0])
+ dirty = 0;
+
assert(!GEN7_READS_DST(op->u.gen7.flags));
gen7_emit_state(sna, op, offset | dirty);
}
offset = sna->render_state.gen7.surface_table;
}
+ if (sna->kgem.batch[sna->render_state.gen7.surface_table] == binding_table[0])
+ dirty = 0;
+
gen7_emit_state(sna, op, offset | dirty);
}