[Development] X11/XCB QPA: QPlatformIntegration::ThreadedOpenGL returning false
Robin Burchell
robin+qt at viroteck.net
Mon Aug 12 11:36:54 CEST 2013
Hi,
On Mon, Aug 12, 2013 at 11:29 AM, James Turner <james.turner at kdab.com> wrote:
> bool supportsThreadedRendering() const { return m_reader->isRunning(); }
>
> I need someone to explain the rational for this test, since I'm no X11 or XCB expert, and hopefully this will illuminate why it's failing on the particular target. (Which as far as I know has a standard X11 build on it)
The reader will be running or not, set here in QXcbConnection::QXcbConnection:
m_reader = new QXcbEventReader(this);
connect(m_reader, SIGNAL(eventPending()), this,
SLOT(processXcbEvents()), Qt::QueuedConnection);
connect(m_reader, SIGNAL(finished()), this, SLOT(processXcbEvents()));
if (!m_reader->startThread()) {
...
And startThread checks for the existence of
m_xcb_poll_for_queued_event, which is searched for in
QXcbEventReader::QXcbEventReader:
#ifdef RTLD_DEFAULT
m_xcb_poll_for_queued_event =
(XcbPollForQueuedEventFunctionPointer)dlsym(RTLD_DEFAULT,
"xcb_poll_for_queued_event");
#endif
So I'd guess either you have RTLD_DEFAULT not defined (probably not
the case, if this is a fairly stock linux system) or your xcb install
is out of date, as AFAIK this was only released fairly recently.
BR,
Robin
More information about the Development
mailing list