On Tue, 2009-02-17 at 18:19 -0500, Thomas Jaeger wrote: > I'm trying to break the vicious cycle where cairo can't forward > composite operations with extend mode EXTEND_PAD to XRender because some > drivers don't implement it correctly and the drivers don't get fixed > because the bugs are not exposed by cairo. > > The (trivial) fixes consist of just announcing that the driver doesn't > support the affected repeat modes, so that the server's software > fallback will be used. This is good enough in practice and certainly > much better than the current client-side fallback that cairo is using: > If an application currently wants to upscale an image using a bilinear > filter this is what happens: It needs to enable EXTEND_PAD so that the > image borders are rendered correctly, so cairo will (1) fetch the > destination region from the server (nevermind that it's going to be > overwritten completely), (2) fetch the whole source image (even if only > a tiny part of it will be redrawn, as is the case when scrolling), (3) > scale the image in software and then (4) send it back to the server. > All of this will go over the wire, no shared memory is used. > It should come as no surprise that this is unacceptably slow, which for > example forces firefox to ditch bilinear filtering completely. > > The following three drivers are still affected (bug reports: [1,2,3]): > -radeonhd, -mga and -i128. Since -radeonhd shares most its exa code > with -ati, it can just use the same fix that is already in -ati [4], and > probably also take advantage of hardware acceleration that is present in > -ati now [5]. I'm attaching the patches for the other two drivers to > this email.
Pushed, with one small tweak for mga. Thanks! -- Eric Anholt e...@anholt.net eric.anh...@intel.com
signature.asc
Description: This is a digitally signed message part
_______________________________________________ xorg-devel mailing list xorg-devel@lists.x.org http://lists.x.org/mailman/listinfo/xorg-devel