xf86-video-intel: 3 commits - src/compat-api.h src/sna/gen3_render.c src/sna/gen4_render.c src/sna/gen5_render.c src/sna/gen6_render.c src/sna/gen7_render.c src/sna/gen8_render.c src/sna/sna_accel.c src/sna/sna_composite.c src/sna/sna_damage.c src/sna/sna_damage.h src/sna/sna_display.c src/sna/sna_dri2.c src/sna/sna_glyphs.c src/sna/sna_trapezoids_boxes.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Jun 20 12:07:40 PDT 2014


 src/compat-api.h               |    4 -
 src/sna/gen3_render.c          |    2 
 src/sna/gen4_render.c          |    2 
 src/sna/gen5_render.c          |    2 
 src/sna/gen6_render.c          |    2 
 src/sna/gen7_render.c          |    2 
 src/sna/gen8_render.c          |    2 
 src/sna/sna_accel.c            |  131 +++++++++++++++++++++++++----------------
 src/sna/sna_composite.c        |    4 -
 src/sna/sna_damage.c           |    6 -
 src/sna/sna_damage.h           |    4 -
 src/sna/sna_display.c          |    2 
 src/sna/sna_dri2.c             |    2 
 src/sna/sna_glyphs.c           |    6 -
 src/sna/sna_trapezoids_boxes.c |    8 +-
 15 files changed, 104 insertions(+), 75 deletions(-)

New commits:
commit b3d3c0e8e75a963262e4dc463fef60d7e9f1f01a
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 20 20:01:23 2014 +0100

    sna: Avoid blending with the render engine on snoopable bo
    
    This seems slightly weird, as there is nothing to indicate that this
    would generate incorrect results only for snoopable bo. But no many of
    flushes make my pnv box happy, so adjust the placement logic to move the
    blending operation away from the snoopable target. This is sensible for
    reasons of avoiding snoops from the render pipeline anyway.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80253
    Reported-and-tested-by: Matti Hämäläinen <ccr at tnsp.org>
    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 f3c42ce..27bbc06 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -3812,6 +3812,9 @@ cpu_fail:
 		if (priv->cpu_bo->pitch >= 4096)
 			goto move_to_gpu;
 
+		if ((flags & IGNORE_CPU) == 0 && priv->cpu_bo->snoop)
+			goto move_to_gpu;
+
 		if (!sna->kgem.can_blt_cpu)
 			goto move_to_gpu;
 	}
commit 219f6bd9e863f9c89cc4168895f89741ce6dbcbb
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 20 17:06:55 2014 +0100

    sna: Be more flexible in converting random subsamples to 8x8 tiles
    
    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 e5986cc..f3c42ce 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -12330,8 +12330,8 @@ sna_poly_fill_rect_tiled_nxm_blt(DrawablePtr drawable,
 	int w, h, tx, ty, tw, th, bpp = tile->drawable.bitsPerPixel;
 	const DDXPointRec origin = gc->patOrg;
 	struct kgem_bo *upload;
-	uint8_t *src, *dst;
 	bool ret = false;
+	uint8_t *src;
 	void *ptr;
 
 	tx = 0, tw = tile->drawable.width;
@@ -12340,11 +12340,6 @@ sna_poly_fill_rect_tiled_nxm_blt(DrawablePtr drawable,
 		if (tx < 0)
 			tx += tw;
 		tw = next8(extents->x2 - extents->x1, tw);
-		if (tx + tw > tile->drawable.width) {
-			DBG(("%s: tx=%d + tw=%d > width=%d\n",
-			     __FUNCTION__, tx, tw, tile->drawable.width));
-			goto out_gc;
-		}
 		gc->patOrg.x = extents->x1 - drawable->x;
 	}
 
@@ -12354,16 +12349,13 @@ sna_poly_fill_rect_tiled_nxm_blt(DrawablePtr drawable,
 		if (ty < 0)
 			ty += th;
 		th = next8(extents->y2 - extents->y1, th);
-		if (ty + th > tile->drawable.height) {
-			DBG(("%s: ty=%d + th=%d > height=%d\n",
-			     __FUNCTION__, ty, th, tile->drawable.height));
-			goto out_gc;
-		}
 		gc->patOrg.y = extents->y1 - drawable->y;
 	}
 
 	DBG(("%s: %dx%d+%d+%d (full tile size %dx%d)\n", __FUNCTION__,
 	     tw, th, tx, ty, tile->drawable.width, tile->drawable.height));
+	assert(tx < tile->drawable.width && tx >= 0);
+	assert(ty < tile->drawable.height && ty >= 0);
 	assert(tw && tw <= 8 && tw <= tile->drawable.width);
 	assert(is_power_of_two(tw));
 	assert(th && th <= 8 && th <= tile->drawable.height);
@@ -12382,9 +12374,9 @@ sna_poly_fill_rect_tiled_nxm_blt(DrawablePtr drawable,
 	if ((tw | th) == 1) {
 		uint32_t pixel;
 		switch (bpp) {
-			case 32: pixel = *(uint32_t *)src;
-			case 16: pixel = *(uint16_t *)src;
-			default: pixel = *(uint8_t *)src;
+			case 32: pixel = *(uint32_t *)src; break;
+			case 16: pixel = *(uint16_t *)src; break;
+			default: pixel = *(uint8_t *)src; break;
 		}
 		return sna_poly_fill_rect_blt(drawable, bo, damage,
 					      gc, pixel, n, rect,
@@ -12398,25 +12390,52 @@ sna_poly_fill_rect_tiled_nxm_blt(DrawablePtr drawable,
 	upload->pitch = bpp; /* for sanity checks */
 
 	if (sigtrap_get() == 0) {
-		dst = ptr;
-		for (h = 0; h < th; h++) {
-			w = tw*bpp/8;
-			memcpy(dst, src, w);
-			while (w < bpp) {
-				memcpy(dst+w, dst, w);
-				w *= 2;
+		uint8_t *dst = ptr;
+		if (tx + tw > tile->drawable.width ||
+		    ty + th > tile->drawable.height) {
+			int sy = ty;
+			src = tile->devPrivate.ptr;
+			for (h = 0; h < th; h++) {
+				int sx = tx;
+				for (w = 0; w < tw; w++) {
+					memcpy(dst + w*bpp/8, src + sy * tile->devKind + sx*bpp/8, bpp/8);
+					if (++sx == tile->drawable.width)
+						sx = 0;
+				}
+				w *= bpp/8;
+				while (w < bpp) {
+					memcpy(dst+w, dst, w);
+					w *= 2;
+				}
+				if (++sy == tile->drawable.height)
+					sy = 0;
+				dst += bpp;
+			}
+			while (h < 8) {
+				memcpy(dst, ptr, bpp*h);
+				dst += bpp * h;
+				h *= 2;
 			}
-			assert(w == bpp);
+		} else {
+			for (h = 0; h < th; h++) {
+				w = tw*bpp/8;
+				memcpy(dst, src, w);
+				while (w < bpp) {
+					memcpy(dst+w, dst, w);
+					w *= 2;
+				}
+				assert(w == bpp);
 
-			src += tile->devKind;
-			dst += bpp;
-		}
-		while (h < 8) {
-			memcpy(dst, ptr, bpp*h);
-			dst += bpp * h;
-			h *= 2;
+				src += tile->devKind;
+				dst += bpp;
+			}
+			while (h < 8) {
+				memcpy(dst, ptr, bpp*h);
+				dst += bpp * h;
+				h *= 2;
+			}
+			assert(h == 8);
 		}
-		assert(h == 8);
 
 		ret = sna_poly_fill_rect_tiled_8x8_blt(drawable, bo, damage,
 						       upload, gc, n, rect,
commit 91bc9e42e434abd56ce2e4fc5e08d07376fe8bd3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 20 16:13:49 2014 +0100

    sna: Mark up const boxes to keep the compiler happy
    
    Pass around const to suppress a few compiler warnings.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/compat-api.h b/src/compat-api.h
index 286d42b..7e82b78 100644
--- a/src/compat-api.h
+++ b/src/compat-api.h
@@ -125,10 +125,10 @@ region_boxptr(const RegionRec *r)
 	return (BoxPtr)(r->data + 1);
 }
 
-static inline BoxPtr
+static inline const BoxRec *
 region_rects(const RegionRec *r)
 {
-	return r->data ? region_boxptr(r) :  (BoxPtr)&r->extents;
+	return r->data ? (const BoxRec *)(r->data + 1) :  &r->extents;
 }
 
 #ifndef INCLUDE_LEGACY_REGION_DEFINES
diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c
index c9e69c3..a1b37b6 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -5382,7 +5382,7 @@ gen3_render_video(struct sna *sna,
 		  PixmapPtr pixmap)
 {
 	struct sna_pixmap *priv = sna_pixmap(pixmap);
-	BoxPtr pbox = region_rects(dstRegion);
+	const BoxRec *pbox = region_rects(dstRegion);
 	int nbox = region_num_rects(dstRegion);
 	int dst_width = dstRegion->extents.x2 - dstRegion->extents.x1;
 	int dst_height = dstRegion->extents.y2 - dstRegion->extents.y1;
diff --git a/src/sna/gen4_render.c b/src/sna/gen4_render.c
index 435ede3..ef982ef 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -1406,7 +1406,7 @@ gen4_render_video(struct sna *sna,
 	float src_offset_x, src_offset_y;
 	float src_scale_x, src_scale_y;
 	int nbox, pix_xoff, pix_yoff;
-	BoxPtr box;
+	const BoxRec *box;
 
 	DBG(("%s: %dx%d -> %dx%d\n", __FUNCTION__,
 	     src_width, src_height, dst_width, dst_height));
diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index 4167f7b..449a394 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -1356,7 +1356,7 @@ gen5_render_video(struct sna *sna,
 	float src_offset_x, src_offset_y;
 	float src_scale_x, src_scale_y;
 	int nbox, pix_xoff, pix_yoff;
-	BoxPtr box;
+	const BoxRec *box;
 
 	DBG(("%s: %dx%d -> %dx%d\n", __FUNCTION__,
 	     src_width, src_height, dst_width, dst_height));
diff --git a/src/sna/gen6_render.c b/src/sna/gen6_render.c
index b141b2a..82bcbe0 100644
--- a/src/sna/gen6_render.c
+++ b/src/sna/gen6_render.c
@@ -1594,7 +1594,7 @@ gen6_render_video(struct sna *sna,
 	float src_scale_x, src_scale_y;
 	int nbox, pix_xoff, pix_yoff;
 	unsigned filter;
-	BoxPtr box;
+	const BoxRec *box;
 
 	DBG(("%s: src=(%d, %d), dst=(%d, %d), %dx[(%d, %d), (%d, %d)...]\n",
 	     __FUNCTION__,
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 80c785d..9aa0713 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -1836,7 +1836,7 @@ gen7_render_video(struct sna *sna,
 	float src_scale_x, src_scale_y;
 	int nbox, pix_xoff, pix_yoff;
 	unsigned filter;
-	BoxPtr box;
+	const BoxRec *box;
 
 	DBG(("%s: src=(%d, %d), dst=(%d, %d), %dx[(%d, %d), (%d, %d)...]\n",
 	     __FUNCTION__,
diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c
index 7fd37c1..e2a4bfc 100644
--- a/src/sna/gen8_render.c
+++ b/src/sna/gen8_render.c
@@ -3726,7 +3726,7 @@ gen8_render_video(struct sna *sna,
 	float src_scale_x, src_scale_y;
 	int nbox, pix_xoff, pix_yoff;
 	unsigned filter;
-	BoxPtr box;
+	const BoxRec *box;
 
 	DBG(("%s: src=(%d, %d), dst=(%d, %d), %dx[(%d, %d), (%d, %d)...]\n",
 	     __FUNCTION__,
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index d607926..e5986cc 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -2306,7 +2306,7 @@ skip_inplace_map:
 		}
 
 		if (priv->gpu_damage) {
-			BoxPtr box;
+			const BoxRec *box;
 			int n;
 
 			DBG(("%s: flushing GPU damage\n", __FUNCTION__));
@@ -2800,7 +2800,7 @@ move_to_cpu:
 
 	if (priv->clear) {
 		int n = region_num_rects(region);
-		BoxPtr box = region_rects(region);
+		const BoxRec *box = region_rects(region);
 
 		assert(DAMAGE_IS_ALL(priv->gpu_damage));
 		assert(priv->cpu_damage == NULL);
@@ -2889,7 +2889,7 @@ move_to_cpu:
 			 */
 			if (flags & MOVE_WRITE) {
 				int n = region_num_rects(region), i;
-				BoxPtr boxes = region_rects(region);
+				const BoxRec *boxes = region_rects(region);
 				BoxPtr blocks;
 
 				blocks = NULL;
@@ -2920,7 +2920,7 @@ move_to_cpu:
 			}
 
 			if (region_subsumes_damage(r, priv->gpu_damage)) {
-				BoxPtr box;
+				const BoxRec *box;
 				int n;
 
 				DBG(("%s: region wholly contains damage\n",
@@ -3287,7 +3287,7 @@ sna_pixmap_move_area_to_gpu(PixmapPtr pixmap, const BoxRec *box, unsigned int fl
 		bool ok = false;
 		int n;
 
-		n = sna_damage_get_boxes(priv->cpu_damage, (BoxPtr *)&box);
+		n = sna_damage_get_boxes(priv->cpu_damage, &box);
 		assert(n);
 		if (use_cpu_bo_for_upload(sna, priv, 0)) {
 			DBG(("%s: using CPU bo for upload to GPU\n", __FUNCTION__));
@@ -3928,7 +3928,7 @@ sna_pixmap_move_to_gpu(PixmapPtr pixmap, unsigned flags)
 {
 	struct sna *sna = to_sna_from_pixmap(pixmap);
 	struct sna_pixmap *priv;
-	BoxPtr box;
+	const BoxRec *box;
 	int n;
 
 	DBG(("%s(pixmap=%ld, usage=%d), flags=%x\n",
@@ -4447,7 +4447,7 @@ try_upload__tiled_x(PixmapPtr pixmap, RegionRec *region,
 {
 	struct sna *sna = to_sna_from_pixmap(pixmap);
 	struct sna_pixmap *priv = sna_pixmap(pixmap);
-	BoxRec *box;
+	const BoxRec *box;
 	uint8_t *dst;
 	int n;
 
@@ -4551,7 +4551,7 @@ try_upload__inplace(PixmapPtr pixmap, RegionRec *region,
 	struct sna_pixmap *priv = sna_pixmap(pixmap);
 	bool ignore_cpu = false;
 	bool replaces;
-	BoxRec *box;
+	const BoxRec *box;
 	uint8_t *dst;
 	int n;
 
@@ -4858,7 +4858,7 @@ sna_put_zpixmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region,
 {
 	PixmapPtr pixmap = get_drawable_pixmap(drawable);
 	unsigned int hint;
-	BoxRec *box;
+	const BoxRec *box;
 	int16_t dx, dy;
 	int n;
 
@@ -4954,7 +4954,7 @@ sna_put_xybitmap_blt(DrawablePtr drawable, GCPtr gc, RegionPtr region,
 	struct sna *sna = to_sna_from_pixmap(pixmap);
 	struct sna_damage **damage;
 	struct kgem_bo *bo;
-	BoxRec *box;
+	const BoxRec *box;
 	int16_t dx, dy;
 	int n;
 	uint8_t rop = copy_ROP[gc->alu];
@@ -5486,14 +5486,17 @@ move_to_gpu(PixmapPtr pixmap, struct sna_pixmap *priv,
 	}
 }
 
-static BoxPtr
-reorder_boxes(BoxPtr box, int n, int dx, int dy)
+static const BoxRec *
+reorder_boxes(const BoxRec *box, int n, int dx, int dy)
 {
-	BoxPtr new, base, next, tmp;
+	const BoxRec *next, *base;
+	BoxRec *new;
 
 	DBG(("%s x %d dx=%d, dy=%d\n", __FUNCTION__, n, dx, dy));
 
 	if (dy <= 0 && dx <= 0) {
+		BoxRec *tmp;
+
 		new = malloc(sizeof(BoxRec) * n);
 		if (new == NULL)
 			return NULL;
@@ -5510,6 +5513,8 @@ reorder_boxes(BoxPtr box, int n, int dx, int dy)
 
 		base = next = box + n - 1;
 		while (base >= box) {
+			const BoxRec *tmp;
+
 			while (next >= box && base->y1 == next->y1)
 				next--;
 			tmp = next + 1;
@@ -5525,6 +5530,8 @@ reorder_boxes(BoxPtr box, int n, int dx, int dy)
 
 		base = next = box;
 		while (base < box + n) {
+			const BoxRec *tmp;
+
 			while (next < box + n && next->y1 == base->y1)
 				next++;
 			tmp = next;
@@ -5546,7 +5553,7 @@ sna_self_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
 	PixmapPtr pixmap = get_drawable_pixmap(src);
 	struct sna *sna = to_sna_from_pixmap(pixmap);
 	struct sna_pixmap *priv = sna_pixmap(pixmap);
-	BoxPtr box = region_rects(region);
+	const BoxRec *box = region_rects(region);
 	int n = region_num_rects(region);
 	int alu = gc ? gc->alu : GXcopy;
 	int16_t tx, ty, sx, sy;
@@ -5659,7 +5666,7 @@ out:
 
 free_boxes:
 	if (box != region_rects(region))
-		free(box);
+		free((void *)box);
 }
 
 static inline bool
@@ -6060,7 +6067,7 @@ sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc,
 	struct kgem_bo *bo;
 	int16_t src_dx, src_dy;
 	int16_t dst_dx, dst_dy;
-	BoxPtr box = region_rects(region);
+	const BoxRec *box = region_rects(region);
 	int n = region_num_rects(region);
 	int alu = gc->alu;
 	int stride, bpp;
@@ -7924,7 +7931,7 @@ sna_copy_bitmap_blt(DrawablePtr _bitmap, DrawablePtr drawable, GCPtr gc,
 	PixmapPtr bitmap = (PixmapPtr)_bitmap;
 	uint32_t br00, br13;
 	int16_t dx, dy;
-	BoxPtr box;
+	const BoxRec *box;
 	int n;
 
 	DBG(("%s: plane=%x (%d,%d),(%d,%d)xld\n",
@@ -8147,7 +8154,7 @@ sna_copy_plane_blt(DrawablePtr source, DrawablePtr drawable, GCPtr gc,
 	int16_t dx, dy;
 	int bit = ffs(bitplane) - 1;
 	uint32_t br00, br13;
-	BoxPtr box = region_rects(region);
+	const BoxRec *box = region_rects(region);
 	int n = region_num_rects(region);
 
 	DBG(("%s: plane=%x [%d] x%d\n", __FUNCTION__,
@@ -12645,7 +12652,7 @@ sna_poly_fill_rect_tiled_blt(DrawablePtr drawable,
 		} else {
 			while (n--) {
 				RegionRec region;
-				BoxRec *box;
+				const BoxRec *box;
 				int nbox;
 
 				region.extents.x1 = rect->x + drawable->x;
@@ -16066,7 +16073,7 @@ sna_push_pixels_solid_blt(GCPtr gc,
 	struct sna *sna = to_sna_from_pixmap(pixmap);
 	struct sna_damage **damage;
 	struct kgem_bo *bo;
-	BoxRec *box;
+	const BoxRec *box;
 	int16_t dx, dy;
 	int n;
 	uint8_t rop = copy_ROP[gc->alu];
@@ -17021,7 +17028,7 @@ static void sna_accel_post_damage(struct sna *sna)
 	xorg_list_for_each_entry(dirty, &screen->pixmap_dirty_list, ent) {
 		RegionRec region, *damage;
 		PixmapPtr src, dst;
-		BoxPtr box;
+		const BoxRec *box;
 		int n;
 
 		assert(dirty->src == sna->front);
diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index c28cbb6..5ce6b2f 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
@@ -546,7 +546,7 @@ sna_composite_fb(CARD8 op,
 		    region->extents.x2 + sx <= src->pDrawable->width &&
 		    region->extents.y2 + sy <= src->pDrawable->height) {
 			if (sigtrap_get() == 0) {
-				BoxPtr box = region_rects(region);
+				const BoxRec *box = region_rects(region);
 				int nbox = region_num_rects(region);
 
 				sx += src->pDrawable->x;
@@ -1103,7 +1103,7 @@ fallback:
 	if (sigtrap_get() == 0) {
 		if (op <= PictOpSrc) {
 			int nbox = region_num_rects(&region);
-			BoxPtr box = region_rects(&region);
+			const BoxRec *box = region_rects(&region);
 			uint32_t pixel;
 
 			if (op == PictOpClear)
diff --git a/src/sna/sna_damage.c b/src/sna/sna_damage.c
index ec95fff..8824a10 100644
--- a/src/sna/sna_damage.c
+++ b/src/sna/sna_damage.c
@@ -1533,7 +1533,7 @@ bool _sna_damage_intersect(struct sna_damage *damage,
 }
 #endif
 
-static int __sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes)
+static int __sna_damage_get_boxes(struct sna_damage *damage, const BoxRec **boxes)
 {
 	assert(damage && damage->mode != DAMAGE_ALL);
 
@@ -1565,7 +1565,7 @@ struct sna_damage *_sna_damage_reduce(struct sna_damage *damage)
 }
 
 #if HAS_DEBUG_FULL
-int _sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes)
+int _sna_damage_get_boxes(struct sna_damage *damage, const BoxRec **boxes)
 {
 	char damage_buf[1000];
 	int count;
@@ -1579,7 +1579,7 @@ int _sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes)
 	return count;
 }
 #else
-int _sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes)
+int _sna_damage_get_boxes(struct sna_damage *damage, const BoxRec **boxes)
 {
 	return __sna_damage_get_boxes(damage, boxes);
 }
diff --git a/src/sna/sna_damage.h b/src/sna/sna_damage.h
index 4e4ef2b..28f7ee6 100644
--- a/src/sna/sna_damage.h
+++ b/src/sna/sna_damage.h
@@ -244,9 +244,9 @@ sna_damage_contains_box__no_reduce(const struct sna_damage *damage,
 	return _sna_damage_contains_box__no_reduce(damage, box);
 }
 
-int _sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes);
+int _sna_damage_get_boxes(struct sna_damage *damage, const BoxRec **boxes);
 static inline int
-sna_damage_get_boxes(struct sna_damage *damage, BoxPtr *boxes)
+sna_damage_get_boxes(struct sna_damage *damage, const BoxRec **boxes)
 {
 	assert(damage);
 
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index c540799..bc35a67 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -5914,7 +5914,7 @@ sna_crtc_redisplay__composite(xf86CrtcPtr crtc, RegionPtr region, struct kgem_bo
 	PictFormatPtr format;
 	PicturePtr src, dst;
 	PixmapPtr pixmap;
-	BoxPtr b;
+	const BoxRec *b;
 	int n, depth, error;
 
 	DBG(("%s: compositing transformed damage boxes\n", __FUNCTION__));
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c
index e9d06ae..2b8cd03 100644
--- a/src/sna/sna_dri2.c
+++ b/src/sna/sna_dri2.c
@@ -857,7 +857,7 @@ __sna_dri2_copy_region(struct sna *sna, DrawablePtr draw, RegionPtr region,
 	struct kgem_bo *bo = NULL;
 	struct kgem_bo *src_bo;
 	struct kgem_bo *dst_bo;
-	BoxRec *boxes;
+	const BoxRec *boxes;
 	int16_t dx, dy, sx, sy;
 	int w, h, n;
 
diff --git a/src/sna/sna_glyphs.c b/src/sna/sna_glyphs.c
index e3e865b..fb4d7f1 100644
--- a/src/sna/sna_glyphs.c
+++ b/src/sna/sna_glyphs.c
@@ -580,7 +580,7 @@ glyphs_to_dst(struct sna *sna,
 	struct sna_composite_op tmp;
 	ScreenPtr screen = dst->pDrawable->pScreen;
 	PicturePtr glyph_atlas;
-	BoxPtr rects;
+	const BoxRec *rects;
 	int nrect;
 	int16_t x, y;
 
@@ -737,7 +737,7 @@ glyphs0_to_dst(struct sna *sna,
 	struct sna_composite_op tmp;
 	ScreenPtr screen = dst->pDrawable->pScreen;
 	PicturePtr glyph_atlas = NO_ATLAS;
-	BoxPtr rects;
+	const BoxRec *rects;
 	int nrect;
 	int x, y;
 
@@ -944,7 +944,7 @@ glyphs_slow(struct sna *sna,
 		while (n--) {
 			GlyphPtr glyph = *glyphs++;
 			struct sna_glyph *p;
-			BoxPtr rects;
+			const BoxRec *rects;
 			BoxRec box;
 			int nrect;
 
diff --git a/src/sna/sna_trapezoids_boxes.c b/src/sna/sna_trapezoids_boxes.c
index e7d74f5..ba31803 100644
--- a/src/sna/sna_trapezoids_boxes.c
+++ b/src/sna/sna_trapezoids_boxes.c
@@ -202,7 +202,7 @@ composite_aligned_boxes(struct sna *sna,
 				   clip.extents.y2 - clip.extents.y1,
 				   COMPOSITE_PARTIAL, memset(&tmp, 0, sizeof(tmp)))) {
 		unsigned int flags;
-		pixman_box16_t *b;
+		const pixman_box16_t *b;
 		int i, count;
 
 		DBG(("%s: composite render op not supported\n",
@@ -771,7 +771,7 @@ composite_unaligned_boxes_inplace__solid(struct sna *sna,
 	     __FUNCTION__, n));
 	do {
 		RegionRec clip;
-		BoxPtr extents;
+		const BoxRec *extents;
 		int count;
 
 		clip.extents.x1 = pixman_fixed_to_int(t->left.p1.x);
@@ -855,7 +855,7 @@ pixman:
 	do {
 		struct pixman_inplace pi;
 		RegionRec clip;
-		BoxPtr extents;
+		const BoxRec *extents;
 		int count;
 
 		clip.extents.x1 = pixman_fixed_to_int(t->left.p1.x);
@@ -1071,7 +1071,7 @@ composite_unaligned_boxes_inplace(struct sna *sna,
 	src_y -= pixman_fixed_to_int(t[0].left.p1.y);
 	do {
 		RegionRec clip;
-		BoxPtr extents;
+		const BoxRec *extents;
 		int count;
 		int num_threads;
 


More information about the xorg-commit mailing list