xf86-video-intel: 2 commits - src/sna/sna_accel.c src/sna/sna_glyphs.c

Chris Wilson ickle at kemper.freedesktop.org
Thu May 31 06:50:37 PDT 2012


 src/sna/sna_accel.c  |    4 ++--
 src/sna/sna_glyphs.c |    9 ++++++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

New commits:
commit 0347c8abec9740d706d87dd2f719ac68f3d1c32e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu May 31 13:50:31 2012 +0100

    sna/glyphs: Fix upconverting of glyphs via gpu
    
    When using the mask instead of the src for adding the glyphs we need to
    pass the glyph coordinates through the mask coordinates rather than the
    source.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_glyphs.c b/src/sna/sna_glyphs.c
index 81e833e..45c24d8 100644
--- a/src/sna/sna_glyphs.c
+++ b/src/sna/sna_glyphs.c
@@ -940,7 +940,11 @@ next_image:
 					if (glyph_atlas)
 						tmp.done(sna, &tmp);
 
-					if (this_atlas->format == format->format) {
+					DBG(("%s: atlas format=%08x, mask format=%08x\n",
+					     __FUNCTION__,
+					     (int)this_atlas->format,
+					     (int)(format->depth << 24 | format->format)));
+					if (this_atlas->format == (format->depth << 24 | format->format)) {
 						ok = sna->render.composite(sna, PictOpAdd,
 									   this_atlas, NULL, mask,
 									   0, 0, 0, 0, 0, 0,
@@ -954,6 +958,8 @@ next_image:
 									   &tmp);
 					}
 					if (!ok) {
+						DBG(("%s: fallback -- can not handle PictOpAdd of glyph onto mask!\n",
+						     __FUNCTION__));
 						FreePicture(mask, 0);
 						return FALSE;
 					}
@@ -968,6 +974,7 @@ next_image:
 				     r.src.x, r.src.y,
 				     glyph->info.width, glyph->info.height));
 
+				r.mask = r.src;
 				r.dst.x = x - glyph->info.x;
 				r.dst.y = y - glyph->info.y;
 				r.width  = glyph->info.width;
commit 90ae4f853222ee33206134f4efdc4accfb2f2c38
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu May 31 14:17:40 2012 +0100

    sna: Avoid mixing signed/unsigned int/int16 arithmetric
    
    Life becomes unpleasant with sign extension.
    
    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 cebfc7e..4511ec8 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -5881,7 +5881,7 @@ sna_poly_zero_line_blt(DrawablePtr drawable,
 
 		while (--n) {
 			int16_t sdx, sdy;
-			uint16_t adx, ady, length;
+			int adx, ady, length;
 			int e, e1, e2, e3;
 			int x1 = x2, x;
 			int y1 = y2, y;
@@ -7079,7 +7079,7 @@ sna_poly_zero_segment_blt(DrawablePtr drawable,
 		const xSegment *s = _s;
 		do {
 			int16_t sdx, sdy;
-			uint16_t adx, ady, length;
+			int adx, ady, length;
 			int e, e1, e2, e3;
 			int x1, x2;
 			int y1, y2;


More information about the xorg-commit mailing list