exaCopyNtoN calls driver Prepare/Done Copy with no Copy in between
Michel Dänzer
michel at tungstengraphics.com
Mon Nov 17 00:46:01 PST 2008
On Mon, 2008-11-17 at 11:21 +1000, Dave Airlie wrote:
> >>>
> >>> I also see some from exaFillRegionTiled
> >>
> >> Sounds like maybe exaCopyNtoN and exaFillRegionTiled should bail early
> >> if nbox == 0. Or maybe that should really be done higher up, e.g. the
> >> damage layer could not call down unless really necessary.
> >
> > Okay one of them was from CopyNtoN getting nbox == 0, so I just made
> > it bail, simple patch so I checked it in.
> >
> > The other is from the tiled code doing the second pass for leftover areas.
> >
> > Initial patch is attached it just prechecks if the copies will be
> > needed and avoids them if they aren't, this one I thought
> > might need some review.
> >
>
> Obligatory logic error.
>
> Updated patch.
[...]
> + if ((dstX < pBox[i].x2) || (dstY < pBox[i].y2))
> + more_copy = TRUE;
> + }
You could add a break statement here, or maybe do these checks during
the initial copy loop.
Looks good to me otherwise.
--
Earthling Michel Dänzer | http://tungstengraphics.com
Libre software enthusiast | Debian, X and DRI developer
More information about the xorg
mailing list