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