xf86-video-intel: 3 commits - src/sna/gen4_render.c

Chris Wilson ickle at kemper.freedesktop.org
Tue Nov 6 08:41:29 PST 2012


 src/sna/gen4_render.c |   12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

New commits:
commit b2245838c15b54d72557de8facb7cc15d59624ae
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Nov 6 16:32:32 2012 +0000

    sna/gen4: opacity spans requires the per-rectangle flush w/a
    
    Note that this is worsened, but not caused, by:
    
    commit e1a63de8991a6586b83c06bcb3369208871cf43d
    Author: Chris Wilson <chris at chris-wilson.co.uk>
    Date:   Fri Nov 2 09:10:32 2012 +0000
    
        sna/gen4+: Prefer GPU spans if the destination is active
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=55500
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 76d1cb1..6d44a4a 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -2564,6 +2564,8 @@ gen4_render_composite_spans_box(struct sna *sna,
 
 	gen4_get_rectangles(sna, &op->base, 1, gen4_bind_surfaces);
 	op->prim_emit(sna, op, box, opacity);
+
+	_FLUSH();
 }
 
 static void
commit a0540ebff083974688c863e08203e3d71a297340
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Nov 6 16:00:42 2012 +0000

    sna/gen4: Remove a couple of old, now redundant, w/a flushes
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index f095ea6..76d1cb1 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -237,9 +237,6 @@ static void gen4_magic_ca_pass(struct sna *sna,
 	assert(op->mask.bo != NULL);
 	assert(op->has_component_alpha);
 
-	if (FLUSH_EVERY_VERTEX)
-		OUT_BATCH(MI_FLUSH | MI_INHIBIT_RENDER_CACHE_FLUSH);
-
 	gen4_emit_pipelined_pointers(sna, op, PictOpAdd,
 				     gen4_choose_composite_kernel(PictOpAdd,
 								  true, true, op->is_affine));
@@ -1382,9 +1379,6 @@ gen4_emit_state(struct sna *sna,
 {
 	bool flush = false;
 
-	if (FLUSH_EVERY_VERTEX)
-		OUT_BATCH(MI_FLUSH | MI_INHIBIT_RENDER_CACHE_FLUSH);
-
 	gen4_emit_drawing_rectangle(sna, op);
 	flush |= gen4_emit_binding_table(sna, wm_binding_table);
 	flush |= gen4_emit_pipelined_pointers(sna, op, op->op, op->u.gen4.wm_kernel);
commit aaaa6c356456a4bab595c6e6485893c538064e37
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Nov 6 14:34:51 2012 +0000

    sna/gen4: Flush after pipelined pointer updates (inverted logic!)
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 9d95bae..f095ea6 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -1266,7 +1266,7 @@ gen4_emit_pipelined_pointers(struct sna *sna,
 
 	key = sp | bp << 16;
 	if (key == sna->render_state.gen4.last_pipelined_pointers)
-		return true;
+		return false;
 
 	OUT_BATCH(GEN4_3DSTATE_PIPELINED_POINTERS | 5);
 	OUT_BATCH(sna->render_state.gen4.vs);
@@ -1278,7 +1278,7 @@ gen4_emit_pipelined_pointers(struct sna *sna,
 
 	sna->render_state.gen4.last_pipelined_pointers = key;
 	gen4_emit_urb(sna);
-	return false;
+	return true;
 }
 
 static void


More information about the xorg-commit mailing list