[Xcb] libxcb/libX11 deadlocking and asserting in multi-threaded use

Nicholas Allen nick.allen at onlinehome.de
Sat Mar 20 04:28:02 PDT 2010


>> That's something I'd be willing to do. The thing is that we use cairo as
>> a graphics library
>>     
>
> That's great! Is this a Java2D implementation, or something more
> specialized?
>   
It's something more specialized: we're writing a cross platform
windowing system abstraction layer for our application instead of using
AWT/Swing. We need more control over the behavior of events than what
AWT provides. We are also considering to open source this abstraction
layer in the future when it is more complete.
>   
>> and I only found documentation for using cairo with xlib and not xcb
>> directly. Do you know if it's possible to use cairo with xcb?
>>     
>
> Yup! I wrote the original cairo virtualized backend patch because I
> wanted it to have an XCB backend, so that's one of the oldest backends
> cairo has.
>
> It still isn't officially supported, but Chris Wilson has been hard at
> work on that recently. The 1.9.6 snapshot appears to include a lot of
> his effort in this area. The most relevant commit message says:
>
>     Still an experimental backend, it's now a little too late to stabilise
>     for 1.10, but this should represent a major step forward in its feature
>     set and an attempt to catch up with all the bug fixes that have been
>     performed on xlib. Notably not tested yet (and expected to be broken)
>     are mixed-endian connections and low bitdepth servers (the dithering
>     support has not been copied over for instance). However, it seems robust
>     enough for daily use...
>     
>     Of particular note in this update is that the xcb surface is now capable
>     of subverting the xlib surface through the ./configure --enable-xlib-xcb
>     option. This replaces the xlib surface with a proxy that forwards all
>     operations to an equivalent xcb surface whilst preserving the cairo-xlib
>     API that is required for compatibility with the existing applications,
>     for instance GTK+ and Mozilla. Also you can experiment with enabling a
>     DRM bypass, though you need to be extremely foolhardy to do so.
>
> Meanwhile, of course, compiling Xlib with XCB support isn't supposed to
> break applications, so if we can track down the bug you're seeing,
> that'd be great. :-)
>   
Thanks for the info. That sounds really promising - I'll try and get
into the XCB api and port our windowing system over. In the meantime I'm
still struggling to find a way to easily reproduce the bug.

Cheers,

Nick


More information about the Xcb mailing list