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

Chris Wilson ickle at kemper.freedesktop.org
Sat Aug 4 10:06:34 PDT 2012


 src/sna/gen4_render.c |   16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

New commits:
commit d917a276bff4e933590e78404526b929b6b3b497
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sat Aug 4 18:05:03 2012 +0100

    sna/gen4: Restore the w/a flush for fill/copy as well
    
    So far, it looks like that the only one we can indeed drop is the
    composite with mask.
    
    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 d2dc366..7dab92b 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -60,13 +60,15 @@
 #define NO_VIDEO 0
 
 #if FLUSH_EVERY_VERTEX
+#define _FLUSH() do { \
+	gen4_vertex_flush(sna); \
+	OUT_BATCH(MI_FLUSH | MI_INHIBIT_RENDER_CACHE_FLUSH); \
+} while (0)
 #define FLUSH(OP) do { \
-	if ((OP)->mask.bo == NULL) { \
-		gen4_vertex_flush(sna); \
-		OUT_BATCH(MI_FLUSH | MI_INHIBIT_RENDER_CACHE_FLUSH); \
-	} \
+	if ((OP)->mask.bo == NULL) _FLUSH(); \
 } while (0)
 #else
+#define _FLUSH()
 #define FLUSH(OP)
 #endif
 
@@ -1682,7 +1684,7 @@ gen4_render_video(struct sna *sna,
 		OUT_VERTEX_F((box->x1 - dxo) * src_scale_x);
 		OUT_VERTEX_F((box->y1 - dyo) * src_scale_y);
 
-		FLUSH(&tmp);
+		_FLUSH();
 
 		if (!DAMAGE_IS_ALL(priv->gpu_damage)) {
 			sna_damage_add_box(&priv->gpu_damage, &r);
@@ -2750,6 +2752,8 @@ gen4_render_copy_one(struct sna *sna,
 	OUT_VERTEX(dx, dy);
 	OUT_VERTEX_F(sx*op->src.scale[0]);
 	OUT_VERTEX_F(sy*op->src.scale[1]);
+
+	_FLUSH();
 }
 
 static inline bool prefer_blt_copy(struct sna *sna, unsigned flags)
@@ -3075,6 +3079,8 @@ gen4_render_fill_rectangle(struct sna *sna,
 	OUT_VERTEX(x, y);
 	OUT_VERTEX_F(0);
 	OUT_VERTEX_F(0);
+
+	_FLUSH();
 }
 
 static bool


More information about the xorg-commit mailing list