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


Attachment: 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

Reply via email to