[cairo] [RFC] Remove client-side workarounds

Thomas Jaeger thjaeger at gmail.com
Fri May 15 13:41:40 PDT 2009


These are various performance fixes for cairo moving operations
(composite, gradients) from the client to the server, which avoid an
expensive transfer of a pixmap over the wire.  For handing off gradient
creation to Render, I've adapted an old patch of David Reveman:

http://cgit.freedesktop.org/~anholt/cairo/log/?h=server-gradients

Especially the first patch is important, since currently it is
prohibitively expensive for example for firefox to use linear
interpolation for image upscaling due to the client-side fallback.

On my system, this causes only one additional test (extend-pad-border)
to fail in the cairo test suite.  The expected and actual output look
identical, so this could be a subpixel offset in the intel driver.
Certainly not something we need to worry about very much considering how
many of the tests fail on current master.

An important question is when to use Render for Pad/Reflect (see the
commit message of the first patch), as we can't detect whether the X
server is using a broken driver and/or pixman version.  I haven't
implemented any checks for now, mainly because I'm unsure about which X
server version would be reasonably safe.

Thanks,
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-xlib-xcb-Hand-off-EXTEND_PAD-EXTEND_REFLECT-to-Rende.patch
Type: text/x-patch
Size: 0 bytes
Desc: not available
Url : http://lists.cairographics.org/archives/cairo/attachments/20090515/8e909c55/attachment-0005.bin 


More information about the cairo mailing list