xf86-video-intel: 2 commits - src/sna/gen3_render.c src/sna/sna_display.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Nov 4 18:03:35 PDT 2011


 src/sna/gen3_render.c |   36 +++++++++++++-----------------------
 src/sna/sna_display.c |    4 ++--
 2 files changed, 15 insertions(+), 25 deletions(-)

New commits:
commit c25cf434d81ac1b4da29c9c75ca1d7c28be71d04
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sat Nov 5 01:04:54 2011 +0000

    sna/gen3: Initiailse the op for fill_boxes()
    
    After removing the memset(0), a couple of fields where left
    uninitialised, causing potential rendering glitches.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen3_render.c b/src/sna/gen3_render.c
index c326364..01007e9 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -870,7 +870,10 @@ gen3_composite_emit_shader(struct sna *sna,
 			gen3_fs_mov(FS_OC, gen3_fs_operand_zero());
 			goto done;
 		case SHADER_BLACK:
-			gen3_fs_mov(FS_OC, gen3_fs_operand(FS_R0, ZERO, ZERO, ZERO, ONE));
+			if (dst_is_alpha)
+				gen3_fs_mov(FS_OC, gen3_fs_operand_one());
+			else
+				gen3_fs_mov(FS_OC, gen3_fs_operand(FS_R0, ZERO, ZERO, ZERO, ONE));
 			goto done;
 		case SHADER_WHITE:
 			gen3_fs_mov(FS_OC, gen3_fs_operand_one());
@@ -1844,8 +1847,11 @@ gen3_init_solid(struct sna_composite_channel *channel, uint32_t color)
 		channel->u.gen3.type = SHADER_BLACK;
 	else if (color == 0xffffffff)
 		channel->u.gen3.type = SHADER_WHITE;
-	if ((color & 0xff000000) == 0xff000000)
-		channel->is_opaque = true;
+
+	channel->is_opaque = (color & 0xff000000) == 0xff000000;
+	channel->is_affine = 1;
+	channel->alpha_fixup = 0;
+	channel->rb_reversed = 0;
 
 	/* for consistency */
 	channel->repeat = RepeatNormal;
@@ -3673,23 +3679,6 @@ static inline Bool prefer_fill_blt(struct sna *sna)
 #endif
 }
 
-static inline void set_fill_shader(struct sna_composite_channel *c,
-				   uint32_t pixel)
-{
-	if (pixel == 0)
-		c->u.gen3.type = SHADER_ZERO;
-	else if (pixel == 0xff000000)
-		c->u.gen3.type = SHADER_BLACK;
-	else if (pixel == 0xffffffff)
-		c->u.gen3.type = SHADER_WHITE;
-	else
-		c->u.gen3.type = SHADER_CONSTANT;
-	c->u.gen3.mode = pixel;
-	c->is_affine = 1;
-	c->alpha_fixup = 0;
-	c->rb_reversed = 0;
-}
-
 static Bool
 gen3_render_fill_boxes(struct sna *sna,
 		       CARD8 op,
@@ -3754,8 +3743,9 @@ gen3_render_fill_boxes(struct sna *sna,
 	tmp.floats_per_vertex = 2;
 	tmp.floats_per_rect = 6;
 	tmp.rb_reversed = 0;
+	tmp.has_component_alpha = 0;
 
-	set_fill_shader(&tmp.src, pixel);
+	gen3_init_solid(&tmp.src, pixel);
 	tmp.mask.u.gen3.type = SHADER_NONE;
 	tmp.u.gen3.num_constants = 0;
 
@@ -3908,7 +3898,7 @@ gen3_render_fill(struct sna *sna, uint8_t alu,
 	tmp->base.has_component_alpha = 0;
 	tmp->base.rb_reversed = 0;
 
-	set_fill_shader(&tmp->base.src,
+	gen3_init_solid(&tmp->base.src,
 			sna_rgba_for_color(color, dst->drawable.depth));
 	tmp->base.mask.u.gen3.type = SHADER_NONE;
 	tmp->base.u.gen3.num_constants = 0;
@@ -3986,7 +3976,7 @@ gen3_render_fill_one(struct sna *sna, PixmapPtr dst, struct kgem_bo *bo,
 	tmp.has_component_alpha = 0;
 	tmp.rb_reversed = 0;
 
-	set_fill_shader(&tmp.src,
+	gen3_init_solid(&tmp.src,
 			sna_rgba_for_color(color, dst->drawable.depth));
 	tmp.mask.u.gen3.type = SHADER_NONE;
 	tmp.u.gen3.num_constants = 0;
commit 96e760ea7589cbe953bd0a6f2f41980a7f1c4795
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sat Nov 5 01:04:24 2011 +0000

    sna: s/flush/vblank/ fixes for DBG()
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 66f9667..d44d6f8 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -602,8 +602,8 @@ static void update_flush_interval(struct sna *sna)
 		max_vrefresh = 40;
 
 	sna->vblank_interval = 1000 * 1000 * 1000 / max_vrefresh; /* Hz -> ns */
-	DBG(("max_vrefresh=%d, flush_interval=%d ns\n",
-	       max_vrefresh, sna->flush_interval));
+	DBG(("max_vrefresh=%d, vblank_interval=%d ns\n",
+	       max_vrefresh, sna->vblank_interval));
 }
 
 static Bool


More information about the xorg-commit mailing list