xf86-video-intel: 2 commits - src/sna/brw src/sna/gen4_render.c src/sna/gen5_render.c

Chris Wilson ickle at kemper.freedesktop.org
Tue Nov 13 04:51:08 PST 2012


 src/sna/brw/brw_wm.c  |    4 ++--
 src/sna/gen4_render.c |   20 +++++++++++---------
 src/sna/gen5_render.c |    9 +++------
 3 files changed, 16 insertions(+), 17 deletions(-)

New commits:
commit d2897cb0136ffec83365c7530ed544b562cac478
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Nov 13 12:43:44 2012 +0000

    sna/gen4,5: Fix the opacity shader to use the right vertex attribute
    
    Reported-by: Edward Sheldrake <ejsheldrake at gmail.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57054
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/brw/brw_wm.c b/src/sna/brw/brw_wm.c
index f54e55e..af047a2 100644
--- a/src/sna/brw/brw_wm.c
+++ b/src/sna/brw/brw_wm.c
@@ -653,7 +653,7 @@ brw_wm_kernel__affine_opacity(struct brw_compile *p, int dispatch)
 
 	if (p->gen < 60) {
 		brw_wm_xy(p, dispatch);
-		mask = 4;
+		mask = 5;
 	} else
 		mask = dispatch == 16 ? 8 : 6;
 
@@ -670,7 +670,7 @@ brw_wm_kernel__projective_opacity(struct brw_compile *p, int dispatch)
 
 	if (p->gen < 60) {
 		brw_wm_xy(p, dispatch);
-		mask = 4;
+		mask = 5;
 	} else
 		mask = dispatch == 16 ? 8 : 6;
 
commit 440eaa049756e5266f3bd80e2751f1fd0d5f9890
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Nov 13 12:42:58 2012 +0000

    sna/gen4: Tidy emission of opacity vertex attribute
    
    Just make it more consistent between the various emitters
    
    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 3aa33db..387dd85 100644
--- a/src/sna/gen4_render.c
+++ b/src/sna/gen4_render.c
@@ -2534,20 +2534,17 @@ gen4_emit_composite_spans_affine(struct sna *sna,
 	OUT_VERTEX(box->x2, box->y2);
 	gen4_emit_composite_texcoord_affine(sna, &op->base.src,
 					    box->x2, box->y2);
-	OUT_VERTEX_F(opacity);
-	OUT_VERTEX_F(1);
+	OUT_VERTEX_F(opacity); OUT_VERTEX_F(1);
 
 	OUT_VERTEX(box->x1, box->y2);
 	gen4_emit_composite_texcoord_affine(sna, &op->base.src,
 					    box->x1, box->y2);
-	OUT_VERTEX_F(opacity);
-	OUT_VERTEX_F(1);
+	OUT_VERTEX_F(opacity); OUT_VERTEX_F(1);
 
 	OUT_VERTEX(box->x1, box->y1);
 	gen4_emit_composite_texcoord_affine(sna, &op->base.src,
 					    box->x1, box->y1);
-	OUT_VERTEX_F(opacity);
-	OUT_VERTEX_F(0);
+	OUT_VERTEX_F(opacity); OUT_VERTEX_F(0);
 }
 
 fastcall static void
@@ -2697,11 +2694,16 @@ gen4_render_composite_spans(struct sna *sna,
 	tmp->base.has_component_alpha = false;
 	tmp->base.need_magic_ca_pass = false;
 
-	tmp->prim_emit = gen4_emit_composite_spans_primitive;
-	if (tmp->base.src.is_solid)
+	if (tmp->base.src.is_solid) {
+		DBG(("%s: using solid fast emitter\n", __FUNCTION__));
 		tmp->prim_emit = gen4_emit_composite_spans_solid;
-	else if (tmp->base.is_affine)
+	} else if (tmp->base.is_affine) {
+		DBG(("%s: using affine fast emitter\n", __FUNCTION__));
 		tmp->prim_emit = gen4_emit_composite_spans_affine;
+	} else {
+		DBG(("%s: using general emitter\n", __FUNCTION__));
+		tmp->prim_emit = gen4_emit_composite_spans_primitive;
+	}
 	tmp->base.floats_per_vertex = 5 + 2*!tmp->base.is_affine;
 	tmp->base.floats_per_rect = 3 * tmp->base.floats_per_vertex;
 
diff --git a/src/sna/gen5_render.c b/src/sna/gen5_render.c
index 95ff30f..54d7c86 100644
--- a/src/sna/gen5_render.c
+++ b/src/sna/gen5_render.c
@@ -2545,20 +2545,17 @@ gen5_emit_composite_spans_affine(struct sna *sna,
 	OUT_VERTEX(box->x2, box->y2);
 	gen5_emit_composite_texcoord_affine(sna, &op->base.src,
 					    box->x2, box->y2);
-	OUT_VERTEX_F(opacity);
-	OUT_VERTEX_F(1);
+	OUT_VERTEX_F(opacity); OUT_VERTEX_F(1);
 
 	OUT_VERTEX(box->x1, box->y2);
 	gen5_emit_composite_texcoord_affine(sna, &op->base.src,
 					    box->x1, box->y2);
-	OUT_VERTEX_F(opacity);
-	OUT_VERTEX_F(1);
+	OUT_VERTEX_F(opacity); OUT_VERTEX_F(1);
 
 	OUT_VERTEX(box->x1, box->y1);
 	gen5_emit_composite_texcoord_affine(sna, &op->base.src,
 					    box->x1, box->y1);
-	OUT_VERTEX_F(opacity);
-	OUT_VERTEX_F(0);
+	OUT_VERTEX_F(opacity); OUT_VERTEX_F(0);
 }
 
 fastcall static void


More information about the xorg-commit mailing list