On Mon, Apr 14, 2014 at 12:25 PM, Matt Broadstone <mbroa...@gmail.com>wrote:
> On Mon, Apr 14, 2014 at 7:07 AM, Rutledge Shawn > <shawn.rutle...@digia.com>wrote: > >> >> On 11 Apr 2014, at 10:15 PM, Matt Broadstone wrote: >> >> > Hi, >> > We're experiencing an odd crash while running our Qt Quick application >> in a VirtualBox session using eglfs on the framebuffer. The application >> works perfectly passing the '-platform eglfs' options, however, when we try >> to use a ComboBox we get a segfault/qFatal, with the resulting backtrace >> (only first twelve frames included for "brevity"): >> > >> > #0 0x00007eff7c041389 in raise () from /usr/lib/libc.so.6 >> > #1 0x00007eff7c042788 in abort () from /usr/lib/libc.so.6 >> > #2 0x00007eff7c956895 in qt_message_fatal (context=..., message=...) >> at global/qlogging.cpp:979 >> > #3 QMessageLogger::fatal (this=this@entry=0x7fff32b96030, >> msg=msg@entry=0x7eff7768e380 "EGLFS: OpenGL windows cannot be mixed with >> others.") at global/qlogging.cpp:384 >> > #4 0x00007eff7766cfb7 in QEglFSWindow::create (this=this@entry=0x1db8030) >> at qeglfswindow.cpp:115 >> > #5 0x00007eff7766b60e in QEglFSIntegration::createPlatformWindow >> (this=<optimized out>, window=0x1db66f0) at qeglfsintegration.cpp:122 >> > #6 0x00007eff7d03180b in QWindow::create (this=this@entry=0x1db66f0) >> at kernel/qwindow.cpp:480 >> > #7 0x00007eff7d032150 in QWindow::setVisible (this=0x1db66f0, >> visible=<optimized out>) at kernel/qwindow.cpp:426 >> > #8 0x00007eff6c888d6a in QQuickPopupWindow::show >> > (this=this@entry=0x1db66f0) >> at qquickpopupwindow.cpp:95 >> > #9 0x00007eff6c888579 in QQuickMenuPopupWindow::show (this=0x1db66f0) >> at qquickmenupopupwindow.cpp:57 >> > #10 0x00007eff6c884efb in QQuickMenu::__popup (this=0x1bff2e0, >> x=<optimized out>, y=<optimized out>, atItemIndex=0) at qquickmenu.cpp:403 >> > #11 0x00007eff6c897f53 in QQuickMenu::qt_static_metacall >> > (_o=_o@entry=0x1bff2e0, >> _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=22, >> _a=_a@entry=0x7fff32b96550) >> at .moc/moc_qquickmenu_p.cpp:227 >> > #12 0x00007eff6c898427 in QQuickMenu::qt_metacall (this=0x1bff2e0, >> _c=QMetaObject::InvokeMetaMethod, _id=22, _a=0x7fff32b96550) at >> .moc/moc_qquickmenu_p.cpp:330 >> > >> > There is some mention on the i.MX6 wiki page about multiple windows ( >> http://qt-project.org/wiki/i.MX-6), but that appears to be related to >> mixing Quick views and widgets, which we are not doing. There also seems to >> be an existing ComboBox bug ( >> https://bugreports.qt-project.org/browse/QTBUG-35989), but this looks >> like it's quite different. >> > >> > Any insight would be appreciated, I just wanted to do some further >> investigation here before creating the bug report. >> >> What version do you have? Looks like the combo box is trying to create >> another window for the dropdown list, and we're not allowed to have more >> than one window on eglfs. I don't think it should be doing that anymore on >> platforms where it's not supported. >> >> >> > Forgot to reply-all on that last one, apologies: > > Qt 5.2.1 (built from source off the git v5.2.1 tag), using this configure > line: > > ./configure -confirm-license -opensource -debug -system-sqlite > -openssl-linked \ > -nomake examples -nomake tests -plugin-sql-psql > -plugin-sql-sqlite \ > -eglfs -no-rpath -optimized-qmake -dbus-linked > -reduce-relocations \ > -opengl es2 -directfb > > > Running on Arch Linux version 2013.03.01 in VirtualBox 4.3.10 r93012, with > the form: > ./ourquickapp -platform eglfs > > (same thing happens with 5.3 built from source, but this failed related to > a different issue related to unaddressable byes for ioctl, and only works > when run in valgrind) > > Please let me know if there's any other information I can provide. > Matt > > Shawn, Can you tell me what I should be looking for to guarantee it's following the correct code path? The combobox is indeed trying to create a new window, as comboboxen are wont to do, and the crash is happening in this code block: qeglfswindow.cpp:80+ QEglFSScreen *screen = this->screen(); if (screen->primarySurface() != EGL_NO_SURFACE) { if (isRaster() && screen->compositingWindow()) return; #if !defined(Q_OS_ANDROID) || defined(Q_OS_ANDROID_NO_SDK) // We can have either a single OpenGL window or multiple raster windows. // Other combinations cannot work. qFatal("EGLFS: OpenGL windows cannot be mixed with others."); #endif return; } Based on your previous email you said: "I don't think it should be doing that anymore on platforms where it's not supported," does that mean we should be looking for a fix in the QML component code or the QPA code? Looking for some insight here so we can help expedite the bug fix, or just fix it ourselves. Thanks, Matt
_______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development