xf86-video-intel: 2 commits - src/sna/gen3_render.c
Chris Wilson
ickle at kemper.freedesktop.org
Tue Mar 12 13:00:32 PDT 2013
src/sna/gen3_render.c | 72 +++++++++++++++++++++++---------------------------
1 file changed, 34 insertions(+), 38 deletions(-)
New commits:
commit b1952e79021759927361d284b157713a651a10b1
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Mar 12 19:58:28 2013 +0000
sna/gen3: Tweak code generation for gen3_emit_composite_primitive_constant__sse2
References: https://bugs.freedesktop.org/show_bug.cgi?id=62198
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 805e4c8..c549ebb 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -962,12 +962,17 @@ gen3_emit_composite_primitive_constant__sse2(struct sna *sna,
const struct sna_composite_op *op,
const struct sna_composite_rectangles *r)
{
- int16_t dst_x = r->dst.x + op->dst.x;
- int16_t dst_y = r->dst.y + op->dst.y;
+ float *v;
+
+ v = sna->render.vertices + sna->render.vertex_used;
+ sna->render.vertex_used += 6;
+
+ v[4] = v[2] = r->dst.x + op->dst.x;
+ v[5] = r->dst.y + op->dst.y;
+
+ v[0] = v[2] + r->width;
+ v[3] = v[1] = v[5] + r->height;
- gen3_emit_composite_dstcoord(sna, dst_x + r->width, dst_y + r->height);
- gen3_emit_composite_dstcoord(sna, dst_x, dst_y + r->height);
- gen3_emit_composite_dstcoord(sna, dst_x, dst_y);
}
sse2 fastcall static void
@@ -977,12 +982,8 @@ gen3_emit_composite_boxes_constant__sse2(const struct sna_composite_op *op,
{
do {
v[0] = box->x2;
- v[1] = box->y2;
-
- v[2] = box->x1;
- v[3] = box->y2;
-
- v[4] = box->x1;
+ v[3] = v[1] = box->y2;
+ v[4] = v[2] = box->x1;
v[5] = box->y1;
box++;
commit f320e6908f24ff356303c8905c78ac290e24c2e6
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Mar 12 19:53:20 2013 +0000
sna/gen3: Tweak code generation for gen3_emit_composite_primitive_identity_gradient__sse2
References: https://bugs.freedesktop.org/show_bug.cgi?id=62198
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 59d13db..805e4c8 100644
--- a/src/sna/gen3_render.c
+++ b/src/sna/gen3_render.c
@@ -995,25 +995,25 @@ gen3_emit_composite_primitive_identity_gradient__sse2(struct sna *sna,
const struct sna_composite_op *op,
const struct sna_composite_rectangles *r)
{
- int16_t dst_x, dst_y;
- int16_t src_x, src_y;
-
- dst_x = r->dst.x + op->dst.x;
- dst_y = r->dst.y + op->dst.y;
- src_x = r->src.x + op->src.offset[0];
- src_y = r->src.y + op->src.offset[1];
+ int16_t x, y;
+ float *v;
- gen3_emit_composite_dstcoord(sna, dst_x + r->width, dst_y + r->height);
- OUT_VERTEX(src_x + r->width);
- OUT_VERTEX(src_y + r->height);
+ v = sna->render.vertices + sna->render.vertex_used;
+ sna->render.vertex_used += 12;
- gen3_emit_composite_dstcoord(sna, dst_x, dst_y + r->height);
- OUT_VERTEX(src_x);
- OUT_VERTEX(src_y + r->height);
+ x = r->dst.x + op->dst.x;
+ y = r->dst.y + op->dst.y;
+ v[0] = x + r->width;
+ v[5] = v[1] = y + r->height;
+ v[8] = v[4] = x;
+ v[9] = y;
- gen3_emit_composite_dstcoord(sna, dst_x, dst_y);
- OUT_VERTEX(src_x);
- OUT_VERTEX(src_y);
+ x = r->src.x + op->src.offset[0];
+ y = r->src.y + op->src.offset[1];
+ v[2] = x + r->width;
+ v[7] = v[3] = y + r->height;
+ v[10] = v[6] = x;
+ v[11] = y;
}
sse2 fastcall static void
@@ -1023,18 +1023,13 @@ gen3_emit_composite_boxes_identity_gradient__sse2(const struct sna_composite_op
{
do {
v[0] = box->x2;
- v[1] = box->y2;
- v[2] = box->x2 + op->src.offset[0];
- v[3] = box->y2 + op->src.offset[1];
-
- v[4] = box->x1;
- v[5] = box->y2;
- v[6] = box->x1 + op->src.offset[0];
- v[7] = box->y2 + op->src.offset[1];
-
- v[8] = box->x1;
+ v[5] = v[1] = box->y2;
+ v[8] = v[4] = box->x1;
v[9] = box->y1;
- v[10] = box->x1 + op->src.offset[0];
+
+ v[2] = box->x2 + op->src.offset[0];
+ v[7] = v[3] = box->y2 + op->src.offset[1];
+ v[10] = v[6] = box->x1 + op->src.offset[0];
v[11] = box->y1 + op->src.offset[1];
v += 12;
More information about the xorg-commit
mailing list