[Xcb] xlib versus xcb performance in Qt Applications?

Rick Stockton rickstockton at reno-computerhelp.com
Sat Mar 31 01:36:27 PDT 2012


On 03/30/2012 07:39 PM, Jeremy Huddleston wrote:
>  On Mar 30, 2012, at 5:41 PM, Rick Stockton<rickstockton at reno-computerhelp.com>   wrote:
>
>>  And BTW, we've removed xlib support in Qt5, switching to xcb on X11 platforms. :)
>  Out of curiosity, do you have any performance metrics comparing Xlib to xcb in QT?  If not, was there a build of QT during development which enabled a choice between xcb and Xlib which could be used for such metrics?  Most comparisons I've seen have been with various small utility apps.  It would be nice to have some "real world" numbers to back up our claims to awesomeness.
Jeremy, I'd be delighted to execute a performance comparison, and write
a report of the results (with all programs used in testing included, and
licensed either BSD or GPL.)


With xlib removed (not even "left present but unsupported"), the
possibility for (ahem!) Apples-to-Apples comparison goes away very
shortly. But you asked just in the nick of time-- it still works
tonight, so I've saved away a nearly-alpha version of Qt5-Git with an
xlib Plugin which still compiles, links, and runs OK. My Build offers
exactly that choice as a program option for any program with a graphical
UI (option "-platform xxxxx"). I tested it, and I CAN run any Qt example
application on either of those plugin choices, using that option.

So- anything written compatibile with the Qt5 API is runnable: although
I'll be running a Qt4/xlib WM, the individual application windows will
be running under Qt5. (My WM is Kwin from KDE 4.8.1; No version of Kwin
is yet runnable with Qt5. We will try to do both xcb and Wayland, but
xcb has top priority with Kwin Devs.)
- - - -

So, what kinds of things would you like me to compare? I've got a
example Apps with flying things; one which plays a short movie; and
various other examples of "Painting Goodness". Can I assume that input
(keyboard, mouse) doesn't need testing, because input events from xcb
are 1:1 with events from Xlib? Or should I cover some input events too?

It would be my privilege. :)



More information about the Xcb mailing list