On Mon, Mar 28, 2011 at 4:40 PM, Soeren Sandmann <[email protected]> wrote: > Michel Dänzer <[email protected]> writes: > >> On Mon, 2011-03-28 at 11:47 -0400, Søren Sandmann wrote: >>> From: Søren Sandmann Pedersen <[email protected]> >>> >>> These calls no longer go through the miComposite(), >> >> I can't seem to find any reference to miComposite() in the Git history. >> Do you mean miTriangles()? > > I meant CompositePicture() actually (which then calls > screen->Composite()). This is the only composite call that is wrapped by > damage. > >>> so damage was no longer generated for them. This patch simply damages >>> the entire destination clip region. >> >> [...] >> >>> @@ -117,6 +118,8 @@ fbShapes (CompositeShapesFunc composite, >>> { >>> pixman_format_code_t format; >>> >>> + DamageRegionAppend (pDst->pDrawable, pDst->pCompositeClip); >>> + >>> if (!maskFormat) >>> { >>> int i; >> >> Don't you also need to call DamageRegionProcessPending() after the >> operation? > > Yes, I think I do, thanks. New version below.
I think you should process pending after doing the rendering operation. > > Soren. > > > From cbffefdd08bac059f7d9b2ca102f31282aabc5fe 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. > > Signed-off-by: Søren Sandmann <[email protected]> > --- > fb/fbtrap.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/fb/fbtrap.c b/fb/fbtrap.c > index 2554fcc..1880a24 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,9 @@ fbShapes (CompositeShapesFunc composite, > { > pixman_format_code_t format; > > + DamageRegionAppend (pDst->pDrawable, pDst->pCompositeClip); > + DamageRegionProcessPending (pDst->pDrawable); > + > if (!maskFormat) > { > int i; > -- > 1.7.4 > > _______________________________________________ > [email protected]: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel -- Far away from the primal instinct, the song seems to fade away, the river get wider between your thoughts and the things we do and say. _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
