Maarten Maathuis <[email protected]> writes: >> Yes, I think I do, thanks. New version below. > > I think you should process pending after doing the rendering operation. >
Okay, that makes sense. Thanks, Soren From 4d4cbb145b1bd88da97941ba05f985829ec5a563 Mon Sep 17 00:00:00 2001 From: =?utf-8?q?S=C3=B8ren=20Sandmann=20Pedersen?= <[email protected]> Date: Mon, 28 Mar 2011 11:38:11 -0400 Subject: [PATCH] Track damage for fbTrapezoids() and fbTriangles(). MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit These calls no longer go through the CompositePicture() hook, so damage was no longer generated for them. This patch simply damages the entire destination clip region. It would be possible to generate tighter damage for certain operators such as Over and Add, where blank source pixels have no effect on the destination, but given that virtually all trapezoid rendering takes place on pixmaps, it's unlikely that anybody would actually benefit from this optimization, and the miTrapezoidBounds function did sometimes show up on profiles, probably because it does several divisions per trapezoid. V2: Call DamageRegionProcessPending() - pointed out by Michel Dänzer. V3: Call DamageRegionProcessPending() *after* rendering - pointed out by Maarten Maathuis Signed-off-by: Søren Sandmann <[email protected]> --- fb/fbtrap.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/fb/fbtrap.c b/fb/fbtrap.c index 2554fcc..612fae7 100644 --- a/fb/fbtrap.c +++ b/fb/fbtrap.c @@ -29,6 +29,7 @@ #include "picturestr.h" #include "mipict.h" #include "fbpict.h" +#include "damage.h" void fbAddTraps (PicturePtr pPicture, @@ -117,6 +118,8 @@ fbShapes (CompositeShapesFunc composite, { pixman_format_code_t format; + DamageRegionAppend (pDst->pDrawable, pDst->pCompositeClip); + if (!maskFormat) { int i; @@ -161,6 +164,8 @@ fbShapes (CompositeShapesFunc composite, yDst + dst_yoff, nshapes, shapes); } + + DamageRegionProcessPending (pDst->pDrawable); } free_pixman_pict (pSrc, src); -- 1.6.0.6 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
