xf86-video-intel: 2 commits - src/i830_render.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Sep 4 17:59:10 PDT 2009
src/i830_render.c | 23 +++++------------------
1 file changed, 5 insertions(+), 18 deletions(-)
New commits:
commit a9b12111f9787950ad6b8f295a70a872c5933c93
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sat Sep 5 00:57:39 2009 +0100
i830: remove padding NOOPs from composite
Bumps aa10text up from 249k to 260k!
These NOOPs have existed uncommented since
04d1584737fd0d14e99608a97281fd7b1549ae0e.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/i830_render.c b/src/i830_render.c
index 1419043..5046ad4 100644
--- a/src/i830_render.c
+++ b/src/i830_render.c
@@ -673,13 +673,7 @@ i830_emit_composite_primitive(PixmapPtr pDst, int srcX, int srcY,
num_floats = 3 * per_vertex;
- BEGIN_BATCH(6 + num_floats);
-
- OUT_BATCH(MI_NOOP);
- OUT_BATCH(MI_NOOP);
- OUT_BATCH(MI_NOOP);
- OUT_BATCH(MI_NOOP);
- OUT_BATCH(MI_NOOP);
+ BEGIN_BATCH(1 + num_floats);
OUT_BATCH(PRIM3D_INLINE | PRIM3D_RECTLIST | (num_floats-1));
OUT_BATCH_F(pI830->coord_adjust + dstX + w);
commit 9c1bf6d01ca307b7a9b91e181ad7f341862e5e1c
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Sep 4 23:31:44 2009 +0100
i830: do not use stale mask transform
Not only were incorrectly falling back if we had non-affine
transformations, but we made the decision based on a stale transformation
matrix.
Related bug 22877:
batch_start_atomic horribly breaks performance after a while
https://bugs.freedesktop.org/show_bug.cgi?id=22877
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Tested-by: Maximilian Grothusmann <maxi at own-hero.net>
diff --git a/src/i830_render.c b/src/i830_render.c
index e4c4623..1419043 100644
--- a/src/i830_render.c
+++ b/src/i830_render.c
@@ -395,7 +395,6 @@ i830_prepare_composite(int op, PicturePtr pSrcPicture,
{
ScrnInfoPtr pScrn = xf86Screens[pSrcPicture->pDrawable->pScreen->myNum];
I830Ptr pI830 = I830PTR(pScrn);
- Bool is_affine_src, is_affine_mask;
Bool is_nearest = FALSE;
pI830->render_src_picture = pSrcPicture;
@@ -424,17 +423,11 @@ i830_prepare_composite(int op, PicturePtr pSrcPicture,
pI830->scale_units[1][1] = -1;
}
- is_affine_src = i830_transform_is_affine (pI830->transform[0]);
- is_affine_mask = i830_transform_is_affine (pI830->transform[1]);
-
if (is_nearest)
pI830->coord_adjust = -0.125;
else
pI830->coord_adjust = 0;
- if (!is_affine_src || !is_affine_mask)
- I830FALLBACK("non-affine transform unsupported on 8xx hardware\n");
-
{
uint32_t cblend, ablend, blendctl;
@@ -602,14 +595,13 @@ i830_emit_composite_primitive(PixmapPtr pDst, int srcX, int srcY,
{
ScrnInfoPtr pScrn = xf86Screens[pDst->drawable.pScreen->myNum];
I830Ptr pI830 = I830PTR(pScrn);
- Bool is_affine_src, is_affine_mask;
+ Bool is_affine_src, is_affine_mask = TRUE;
int per_vertex, num_floats;
float src_x[3], src_y[3], src_w[3], mask_x[3], mask_y[3], mask_w[3];
- is_affine_src = i830_transform_is_affine (pI830->transform[0]);
- is_affine_mask = i830_transform_is_affine (pI830->transform[1]);
-
per_vertex = 2; /* dest x/y */
+
+ is_affine_src = i830_transform_is_affine (pI830->transform[0]);
if (is_affine_src)
{
if (!i830_get_transformed_coordinates(srcX, srcY,
@@ -644,6 +636,7 @@ i830_emit_composite_primitive(PixmapPtr pDst, int srcX, int srcY,
per_vertex += 4; /* src x/y/z/w */
}
if (pI830->render_mask) {
+ is_affine_mask = i830_transform_is_affine (pI830->transform[1]);
if (is_affine_mask) {
if (!i830_get_transformed_coordinates(maskX, maskY,
pI830->transform[1],
More information about the xorg-commit
mailing list