[Bug 68410] [bisected ivb] Small black box corruption in firefox
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Mon Oct 7 22:28:50 CEST 2013
https://bugs.freedesktop.org/show_bug.cgi?id=68410
--- Comment #42 from Chris Wilson <chris at chris-wilson.co.uk> ---
If not CC, the other likey candidate is the change in surfaces, so maybe:
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 4b60f53..1adb9c2 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -1098,6 +1098,7 @@ gen7_emit_state(struct sna *sna,
uint16_t wm_binding_table)
{
bool need_stall;
+ bool need_flush;
assert(op->dst.bo->exec);
@@ -1107,8 +1108,12 @@ gen7_emit_state(struct sna *sna,
gen7_emit_wm(sna, GEN7_KERNEL(op->u.gen7.flags));
gen7_emit_vertex_elements(sna, op);
- need_stall = gen7_emit_binding_table(sna, wm_binding_table);
- need_stall &= gen7_emit_drawing_rectangle(sna, op);
+ need_flush = gen7_emit_binding_table(sna, wm_binding_table);
+ need_stall = gen7_emit_drawing_rectangle(sna, op) && need_flush;
+
+ need_flush |= sna->render_state.gen7.emit_flush;
+ if (ALWAYS_FLUSH)
+ need_flush = true;
if (ALWAYS_STALL)
need_stall = true;
@@ -1117,10 +1122,9 @@ gen7_emit_state(struct sna *sna,
kgem_clear_dirty(&sna->kgem);
assert(op->dst.bo->exec);
kgem_bo_mark_dirty(op->dst.bo);
- sna->render_state.gen7.emit_flush = false;
- need_stall = false;
+ need_flush = need_stall = false;
}
- if (ALWAYS_FLUSH || (sna->render_state.gen7.emit_flush &&
GEN7_READS_DST(op->u.gen7.flags))) {
+ if (need_flush) {
gen7_emit_pipe_flush(sna, need_stall);
need_stall = false;
}
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20131007/7b4dbcc5/attachment.html>
More information about the intel-gfx-bugs
mailing list