xf86-video-intel: src/sna/sna_accel.c src/sna/sna_blt.c

Chris Wilson ickle at kemper.freedesktop.org
Mon Jun 10 13:36:53 PDT 2013


 src/sna/sna_accel.c |   14 +++++++++-----
 src/sna/sna_blt.c   |   12 ++++++++++++
 2 files changed, 21 insertions(+), 5 deletions(-)

New commits:
commit b44307753655fac985404c519a54ca65da323900
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jun 10 21:34:52 2013 +0100

    sna: Make sure all sna_write_boxes* flag the GTT is dirty
    
    Better would be to start passing in the sna_pixmap so that we can mark
    the GTT as dirty in a single location, and only if we do indeed then do
    a GTT update or pwrite.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index bf5832b..850463b 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -2889,6 +2889,7 @@ sna_pixmap_move_area_to_gpu(PixmapPtr pixmap, const BoxRec *box, unsigned int fl
 					     pixmap->devKind,
 					     0, 0,
 					     box, 1);
+			priv->gtt_dirty = true;
 		}
 		if (!ok)
 			return false;
@@ -2920,6 +2921,7 @@ sna_pixmap_move_area_to_gpu(PixmapPtr pixmap, const BoxRec *box, unsigned int fl
 					     pixmap->devKind,
 					     0, 0,
 					     box, n);
+			priv->gtt_dirty = true;
 		}
 		if (!ok)
 			return false;
@@ -3581,11 +3583,11 @@ sna_pixmap_move_to_gpu(PixmapPtr pixmap, unsigned flags)
 						 pixmap->devKind);
 			} else {
 				ok = sna_write_boxes(sna, pixmap,
-						priv->gpu_bo, 0, 0,
-						pixmap->devPrivate.ptr,
-						pixmap->devKind,
-						0, 0,
-						box, n);
+						     priv->gpu_bo, 0, 0,
+						     pixmap->devPrivate.ptr,
+						     pixmap->devKind,
+						     0, 0,
+						     box, n);
 			}
 			if (!ok)
 				return NULL;
@@ -4976,6 +4978,8 @@ sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
 						     src_dx, src_dy,
 						     box, n))
 					goto fallback;
+
+				dst_priv->gtt_dirty = true;
 			}
 
 			assert(dst_priv->clear == false);
diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c
index 7002638..2520af4 100644
--- a/src/sna/sna_blt.c
+++ b/src/sna/sna_blt.c
@@ -1719,6 +1719,8 @@ blt_put_composite(struct sna *sna,
 				     &box, 1);
 		assert(ok);
 	}
+
+	dst_priv->gtt_dirty = true;
 }
 
 fastcall static void blt_put_composite_box(struct sna *sna,
@@ -1755,6 +1757,8 @@ fastcall static void blt_put_composite_box(struct sna *sna,
 				     box, 1);
 		assert(ok);
 	}
+
+	dst_priv->gtt_dirty = true;
 }
 
 static void blt_put_composite_boxes(struct sna *sna,
@@ -1792,6 +1796,8 @@ static void blt_put_composite_boxes(struct sna *sna,
 				     box, n);
 		assert(ok);
 	}
+
+	dst_priv->gtt_dirty = true;
 }
 
 fastcall static void
@@ -1837,6 +1843,8 @@ blt_put_composite_with_alpha(struct sna *sna,
 				     &box, 1,
 				     0xffffffff, op->u.blt.pixel);
 	}
+
+	dst_priv->gtt_dirty = true;
 }
 
 fastcall static void
@@ -1874,6 +1882,8 @@ blt_put_composite_box_with_alpha(struct sna *sna,
 				     box, 1,
 				     0xffffffff, op->u.blt.pixel);
 	}
+
+	dst_priv->gtt_dirty = true;
 }
 
 static void
@@ -1912,6 +1922,8 @@ blt_put_composite_boxes_with_alpha(struct sna *sna,
 				     box, n,
 				     0xffffffff, op->u.blt.pixel);
 	}
+
+	dst_priv->gtt_dirty = true;
 }
 
 static bool


More information about the xorg-commit mailing list