[cairo] [cairo-xlib] Cache standard xrender formats
Chris Wilson
chris at chris-wilson.co.uk
Wed Jul 16 01:44:24 PDT 2008
On Wed, 2008-07-16 at 17:33 +1200, Karl Tomlinson wrote:
> This change implemented caching of standard XRender formats:
>
> http://gitweb.freedesktop.org/?p=cairo;a=commitdiff;h=fda95868020effcbc56ff687a763af650a758ba2;hp=8457374c9cf350841a7c16f1ef1657aeb354e5c9
>
> The reason given was:
>
> XRender performs a round-trip in order to query the available formats on
> the xserver, before searching for a matching format. In order to save
> that round-trip and to avoid the short-lived allocation of the array of
> available formats, we cache the result on the display.
>
> AFAICT XRenderQueryFormats only performs that round trip once per process (in
> libXrender-0.9.2 at least), and caches the necessary information.
>
> http://gitweb.freedesktop.org/?p=xorg/lib/libXrender.git;a=blob;h=3a51663f8813a6c88386333f95d565cc277fbc40;hb=9779025f33c917b74349200e6018d0c94d6ff0ab;f=src/Xrender.c#l419
>
> That LockDisplay(dpy) is just for thread safety within the process,
> right (i.e no round trip)?
>
> Or am I missing a round trip somewhere else?
No. I wrote that patch some time ago to trim a few redundant calls from
an xtrace (and even the mallocs were apparent in the profiles). However,
it now appears to be entirely superfluous and can be dropped.
--
Chris Wilson
More information about the cairo
mailing list