Qt4 OpenGL ES2 examples segfault

Bug #1034178 reported by Marko Pellikka
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Linaro Ubuntu
Won't Fix
High
Ricardo Salveti
ubuntu-omap4-extras-graphics
Confirmed
Undecided
Unassigned

Bug Description

Image: linaro-precise-ubuntu-desktop-20120807-338
Hwpack: hwpack_linaro-lt-panda-x11-base_20120807-227_armhf_supported.tar.gz
Board: Pandaboard ES Rev B1

Steps:
$ sudo apt-get update
$ sudo apt-get install qt4-demos
$ /usr/lib/qt4/examples/opengl/hellogl_es2/hellogl_es2

Error:
PVR:(Warning): PVRSRVOpenDCDevice: Warning - 138 returned [95, /bridged_pvr_dc_glue.c]
Found SGX/MBX driver, enabling FullClearOnEveryFrame
Found v1.4 driver, enabling brokenTexSubImage
Found non-Nokia v1.4 driver, enabling brokenFBOReadBack
Segmentation fault (core dumped)

Revision history for this message
Marko Pellikka (eemapel) wrote :

I'm not sure if this is related, but is the fix from this bug already in?
https://bugs.launchpad.net/ubuntu-omap4-extras-graphics/+bug/1002868/

Revision history for this message
Ricardo Salveti (rsalveti) wrote :

I can confirm that once again Qt's es2 demo is broken with SGX =\

Investigating the trace...

Changed in linaro-ubuntu:
status: New → Confirmed
importance: Undecided → High
assignee: nobody → Ricardo Salveti (rsalveti)
Changed in ubuntu-omap4-extras-graphics:
status: New → Confirmed
Revision history for this message
Ricardo Salveti (rsalveti) wrote :
Download full text (11.1 KiB)

The stacktrace (nothing that useful, checking if the workarounds for SGX are interfering at the results):

(gdb) bt full
#0 0xb6373ab4 in XFilterEvent (ev=0xbefff37c, window=<optimized out>) at ../../src/FilterEv.c:91
        p = <optimized out>
        win = 0
        mask = 0
        ret = <optimized out>
#1 0xb6a2aed6 in QApplication::x11ProcessEvent (this=0xbefff5a8, event=0xbefff37c) at kernel/qapplication_x11.cpp:3440
        keywidget = <optimized out>
        grabbed = <optimized out>
        loopLevelCounter = {threadData = 0x1bb88}
        isXI2Event = false
        widget = 0x0
        d = 0x1ba88
        instance = {display = 0x370b8, cookie = 0xbefff37c}
#2 0xb6a451e6 in x11EventSourceDispatch (s=0x21150, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
        event = {type = 74, xany = {type = 74, serial = 0, send_event = 0, display = 0x0, window = 0}, xkey = {type = 74, serial = 0, send_event = 0, display = 0x0, window = 0, root = 0, subwindow = 0, time = 0, x = 0, y = 0,
            x_root = 0, y_root = 0, state = 0, keycode = 0, same_screen = 0}, xbutton = {type = 74, serial = 0, send_event = 0, display = 0x0, window = 0, root = 0, subwindow = 0, time = 0, x = 0, y = 0, x_root = 0, y_root = 0,
            state = 0, button = 0, same_screen = 0}, xmotion = {type = 74, serial = 0, send_event = 0, display = 0x0, window = 0, root = 0, subwindow = 0, time = 0, x = 0, y = 0, x_root = 0, y_root = 0, state = 0, is_hint = 0 '\000',
            same_screen = 0}, xcrossing = {type = 74, serial = 0, send_event = 0, display = 0x0, window = 0, root = 0, subwindow = 0, time = 0, x = 0, y = 0, x_root = 0, y_root = 0, mode = 0, detail = 0, same_screen = 0, focus = 0,
            state = 0}, xfocus = {type = 74, serial = 0, send_event = 0, display = 0x0, window = 0, mode = 0, detail = 0}, xexpose = {type = 74, serial = 0, send_event = 0, display = 0x0, window = 0, x = 0, y = 0, width = 0,
            height = 0, count = 0}, xgraphicsexpose = {type = 74, serial = 0, send_event = 0, display = 0x0, drawable = 0, x = 0, y = 0, width = 0, height = 0, count = 0, major_code = 0, minor_code = 0}, xnoexpose = {type = 74,
            serial = 0, send_event = 0, display = 0x0, drawable = 0, major_code = 0, minor_code = 0}, xvisibility = {type = 74, serial = 0, send_event = 0, display = 0x0, window = 0, state = 0}, xcreatewindow = {type = 74, serial = 0,
            send_event = 0, display = 0x0, parent = 0, window = 0, x = 0, y = 0, width = 0, height = 0, border_width = 0, override_redirect = 0}, xdestroywindow = {type = 74, serial = 0, send_event = 0, display = 0x0, event = 0,
            window = 0}, xunmap = {type = 74, serial = 0, send_event = 0, display = 0x0, event = 0, window = 0, from_configure = 0}, xmap = {type = 74, serial = 0, send_event = 0, display = 0x0, event = 0, window = 0,
            override_redirect = 0}, xmaprequest = {type = 74, serial = 0, send_event = 0, display = 0x0, parent = 0, window = 0}, xreparent = {type = 74, serial = 0, send_event = 0, display = 0x0, event = 0, window = 0, parent = 0,
            x = 0, y = 0, override_redirect = 0}, xconfigure = {type = 74, serial = 0, send_event = 0,...

Revision history for this message
Marko Pellikka (eemapel) wrote :
Revision history for this message
Marko Pellikka (eemapel) wrote :
Revision history for this message
Marko Pellikka (eemapel) wrote :

Now tested with following hwpack and rootfs:
http://snapshots.linaro.org/precise/hwpacks/lt-panda-x11-base/305/hwpack_linaro-lt-panda-x11-base_20120912-305_armhf_supported.tar.gz
http://snapshots.linaro.org/precise/images/ubuntu-desktop/412/linaro-precise-ubuntu-desktop-20120912-412.tar.gz

I tested textures demo and added one debugging log to http://pastebin.com/9VjcHzmt

I think this backtrace is the most relevant part of the log:
(gdb) bt
#0 0xb6df9b38 in QEglContext::chooseConfig(QEglProperties const&, QEgl::PixelFormatMatch) () from /usr/lib/arm-linux-gnueabihf/libQtGui.so.4
#1 0xb6fb3a1a in QGLContext::chooseContext(QGLContext const*) () from /usr/lib/arm-linux-gnueabihf/libQtOpenGL.so.4
#2 0xb6f8798e in QGLContext::create(QGLContext const*) () from /usr/lib/arm-linux-gnueabihf/libQtOpenGL.so.4
#3 0xb6fb3bf0 in QGLWidget::setContext(QGLContext*, QGLContext const*, bool) () from /usr/lib/arm-linux-gnueabihf/libQtOpenGL.so.4
#4 0xb6f87026 in ?? () from /usr/lib/arm-linux-gnueabihf/libQtOpenGL.so.4
#5 0xb6f87026 in ?? () from /usr/lib/arm-linux-gnueabihf/libQtOpenGL.so.4
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) s
Single stepping until exit from function _ZN11QEglContext12chooseConfigERK14QEglPropertiesN4QEgl16PixelFormatMatchE,
which has no line number information.
0xb6fb3a1a in QGLContext::chooseContext(QGLContext const*) () from /usr/lib/arm-linux-gnueabihf/libQtOpenGL.so.4
(gdb) s
Single stepping until exit from function _ZN10QGLContext13chooseContextEPKS_,
which has no line number information.
Warning:
Cannot insert breakpoint 0.
Error accessing memory address 0x0: Input/output error.

Revision history for this message
Marko Pellikka (eemapel) wrote :

Tried 12.09 release:
http://releases.linaro.org/12.09/ubuntu/leb-panda/lt-panda-x11-base-precise_ubuntu-desktop_20120924-329.img.gz
Board: Pandaboard (rev A4)

This problem is still there and seems to affect both OMAP4430 and OMAP4460 based Pandaboards.

I also noticed something like this during boot, not sure if relevant as glmark2-es2 works:
[ 30.170227] [ INFO: possible recursive locking detected ]
[ 30.175964] 3.4.0-2-linaro-lt-omap #2~ci+120922092236-Ubuntu Tainted: G C O
[ 30.184082] ---------------------------------------------
[ 30.189819] Xorg/2041 is trying to acquire lock:
[ 30.194702] (psPVRSRVMutex){+.+.+.}, at: [<bf9e33ff>] LinuxLockMutex+0xe/0x10 [omapdrm_pvr]
[ 30.203735]
[ 30.203735] but task is already holding lock:
[ 30.209899] (psPVRSRVMutex){+.+.+.}, at: [<bf9e33ff>] LinuxLockMutex+0xe/0x10 [omapdrm_pvr]

Full log at: http://pastebin.com/dgVNGANJ

Revision history for this message
Botao (botao-sun) wrote :

For project "linaro-ubuntu", Linaro has switched from GUI based ubuntu image to solid command line console, and this "Qt4 OpenGL ES2" test is no longer applicable.

Changed in linaro-ubuntu:
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.