xf86-video-intel: 6 commits - src/intel_module.c src/sna/gen2_render.c src/sna/gen3_render.c

Chris Wilson ickle at kemper.freedesktop.org
Mon Jun 6 00:54:28 PDT 2011


 src/intel_module.c    |    7 +++++++
 src/sna/gen2_render.c |   20 +++++++++++++++-----
 src/sna/gen3_render.c |    8 ++++----
 3 files changed, 26 insertions(+), 9 deletions(-)

New commits:
commit c8a2fa3a2e3f22e12f363e8ea060c70585156190
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jun 6 08:43:34 2011 +0100

    sna/gen2: Correct command length for CA LOAD_IMMEDIATE_STATE_1
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index a436c04..3b3a472 100644
--- a/src/sna/gen2_render.c
+++ b/src/sna/gen2_render.c
@@ -790,7 +790,7 @@ static void gen2_magic_ca_pass(struct sna *sna,
 	if (!op->need_magic_ca_pass)
 		return;
 
-	OUT_BATCH(_3DSTATE_LOAD_STATE_IMMEDIATE_1 | I1_LOAD_S(8) | 2);
+	OUT_BATCH(_3DSTATE_LOAD_STATE_IMMEDIATE_1 | I1_LOAD_S(8) | 0);
 	OUT_BATCH(S8_ENABLE_COLOR_BLEND | S8_BLENDFUNC_ADD |
 		  gen2_get_blend_cntl(PictOpAdd,
 				      op->has_component_alpha,
commit a89fc7181b6ccec8ccca2cd4ccab4f180f663656
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jun 6 08:39:17 2011 +0100

    sna/gen2: Only emit the mask texcoord if there is a mask
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index c1fea0c..a436c04 100644
--- a/src/sna/gen2_render.c
+++ b/src/sna/gen2_render.c
@@ -753,7 +753,8 @@ gen2_emit_composite_vertex(struct sna *sna,
 {
 	gen2_emit_composite_dstcoord(sna, dstX, dstY);
 	gen2_emit_composite_texcoord(sna, &op->src, srcX, srcY);
-	gen2_emit_composite_texcoord(sna, &op->mask, mskX, mskY);
+	if (op->mask.bo)
+		gen2_emit_composite_texcoord(sna, &op->mask, mskX, mskY);
 }
 
 static void
commit 4fb7784e1e1b2b999c0c2420583e9c48eb1127ac
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jun 6 08:27:17 2011 +0100

    sna/gen3: Non-affine texcoords require space for 4 floats not 3.
    
    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 131c2e5..5d7f894 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -2321,17 +2321,17 @@ gen3_render_composite(struct sna *sna,
 	tmp->floats_per_vertex = 2;
 	if (tmp->src.gen3.type != SHADER_CONSTANT &&
 	    tmp->src.gen3.type != SHADER_ZERO)
-		tmp->floats_per_vertex += tmp->src.is_affine ? 2 : 3;
+		tmp->floats_per_vertex += tmp->src.is_affine ? 2 : 4;
 	if (tmp->mask.gen3.type != SHADER_NONE &&
 	    tmp->mask.gen3.type != SHADER_CONSTANT)
-		tmp->floats_per_vertex += tmp->mask.is_affine ? 2 : 3;
+		tmp->floats_per_vertex += tmp->mask.is_affine ? 2 : 4;
 	DBG(("%s: floats_per_vertex = 2 + %d + %d = %d\n", __FUNCTION__,
 	     (tmp->src.gen3.type != SHADER_CONSTANT &&
 	      tmp->src.gen3.type != SHADER_ZERO) ?
-	     tmp->src.is_affine ? 2 : 3 : 0,
+	     tmp->src.is_affine ? 2 : 4 : 0,
 	     (tmp->mask.gen3.type != SHADER_NONE &&
 	      tmp->mask.gen3.type != SHADER_CONSTANT) ?
-	     tmp->mask.is_affine ? 2 : 3 : 0,
+	     tmp->mask.is_affine ? 2 : 4 : 0,
 	     tmp->floats_per_vertex));
 
 	tmp->blt   = gen3_render_composite_blt;
commit d9344ab8d04fe4795a3a532c5c0e85dc11ecf968
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jun 6 08:25:53 2011 +0100

    sna/gen2: Set op->floats_per_vertex
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index 1ee681a..c1fea0c 100644
--- a/src/sna/gen2_render.c
+++ b/src/sna/gen2_render.c
@@ -1165,6 +1165,12 @@ gen2_render_composite(struct sna *sna,
 		}
 	}
 
+	tmp->floats_per_vertex = 2;
+	if (tmp->src.bo)
+		tmp->floats_per_vertex += tmp->src.is_affine ? 2 : 3;
+	if (tmp->mask.bo)
+		tmp->floats_per_vertex += tmp->mask.is_affine ? 2 : 3;
+
 	tmp->blt   = gen2_render_composite_blt;
 	tmp->boxes = gen2_render_composite_boxes;
 	tmp->done  = gen2_render_composite_done;
commit 741c1101f17bfa379a15178e4760211737fa18cf
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jun 6 08:22:45 2011 +0100

    sna/gen2: Enable selection of gen2 only
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/intel_module.c b/src/intel_module.c
index 3b8ab5e..12097df 100644
--- a/src/intel_module.c
+++ b/src/intel_module.c
@@ -336,6 +336,13 @@ static Bool intel_pci_probe(DriverPtr		driver,
 
 #if SNA
 		case 0:
+#if SNA_GEN2
+		case PCI_CHIP_I830_M:
+		case PCI_CHIP_845_G:
+		case PCI_CHIP_I854:
+		case PCI_CHIP_I855_GM:
+		case PCI_CHIP_I865_G:
+#endif
 #if SNA_GEN3
 		case PCI_CHIP_PINEVIEW_M:
 		case PCI_CHIP_PINEVIEW_G:
commit c76ec69660bf40de052159f60c16de8fd87341a8
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Jun 6 08:02:09 2011 +0100

    sna/gen2: The inline primitive takes a length, not a vertex count
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen2_render.c b/src/sna/gen2_render.c
index 896f730..1ee681a 100644
--- a/src/sna/gen2_render.c
+++ b/src/sna/gen2_render.c
@@ -804,8 +804,8 @@ static void gen2_magic_ca_pass(struct sna *sna,
 
 	memcpy(sna->kgem.batch + sna->kgem.nbatch,
 	       sna->kgem.batch + sna->render_state.gen2.vertex_offset,
-	       (1 + 3*sna->render.vertex_index)*sizeof(uint32_t));
-	sna->kgem.nbatch += 1 + 3*sna->render.vertex_index;
+	       (1 + sna->render.vertex_index)*sizeof(uint32_t));
+	sna->kgem.nbatch += 1 + sna->render.vertex_index;
 }
 
 static void gen2_vertex_flush(struct sna *sna)
@@ -830,6 +830,8 @@ inline static int gen2_get_rectangles(struct sna *sna,
 	struct gen2_render_state *state = &sna->render_state.gen2;
 	int rem = batch_space(sna), size, need;
 
+	assert(op->floats_per_vertex);
+
 	need = 0;
 	size = 3*op->floats_per_vertex;
 	if (op->need_magic_ca_pass)
@@ -851,7 +853,8 @@ inline static int gen2_get_rectangles(struct sna *sna,
 	if (want * size > rem)
 		want = rem / size;
 
-	sna->render.vertex_index += 3*want;
+	assert(want);
+	sna->render.vertex_index += 3*want*op->floats_per_vertex;
 	return want;
 }
 


More information about the xorg-commit mailing list