Qt 5.9.4 OpenGL examples crash



  • Hello.

    I have cross compiled qt 5.9.4 on my 64-bit Ubuntu 14.04 system for a 32-bit (Intel Atom Z520) ArchLinux based system with the following configuration:

    ./configure -opensource -confirm-license -debug \
        -reduce-relocations -no-rpath -nomake examples -optimized-qmake -no-use-gold-linker \
        -device linux-generic-g++ -device-option CROSS_COMPILE='/toolchain/bin/i686-pixy-linux-gnu-' -sysroot '/sysroot' \
        -prefix /usr -extprefix /sysroot/usr -hostprefix /toolchain \
        -bindir /usr/lib/qt/bin \
        -docdir /usr/share/doc/qt \
        -headerdir /usr/include/qt \
        -archdatadir /usr/lib/qt \
        -datadir /usr/share/qt \
        -sysconfdir /etc/xdg \
        -examplesdir /usr/share/doc/qt/examples \
        -journald -dbus-linked -openssl-linked -qpa xcb
    

    The target 32-bit system runs Xorg X server on Intel's EMGD driver. The system has mesa 10.1.0 OpenGL libraries.

    # glxinfo | grep OpenGL
    pci id for fd 4: 8086:8108, driver (null)
    OpenGL vendor string: Intel Corporation
    OpenGL renderer string: EMGD on PowerVR SGX535
    OpenGL version string: 2.1
    OpenGL shading language version string: 1.20
     # qtdiag-qt5
    pci id for fd 6: 8086:8108, driver (null)
    Qt 5.9.4 (i386-little_endian-ilp32 shared (dynamic) debug build; by GCC 4.9.1) on "xcb" 
    OS: Arch Linux [linux version 3.4.108-rt136_pixy]
    
    ...
    
    Screens: 1, High DPI scaling: inactive
    # 0 "default" Depth: 24 Primary: yes
      Manufacturer: 
      Model: 
      Serial number: 
      Geometry: 1024x768+0+0 Available: 1024x768+0+0
      Physical size: 271x203 mm  Refresh: 85 Hz Power state: 0
      Physical DPI: 95.9764,96.0946 Logical DPI: 95.9764,96.0946 Subpixel_None
      DevicePixelRatio: 1 Pixel density: 1
      Primary orientation: 2 Orientation: 2 Native orientation: 0 OrientationUpdateMask: 0
    
    LibGL Vendor: Intel Corporation
    Renderer: EMGD on PowerVR SGX535
    Version: 2.1
    Shading language: 1.20
    Format: Version: 2.1 Profile: 0 Swap behavior: 0 Buffer size (RGBA): 8,8,8,8
    
    

    The mesa OpenGL demo applications such as glxgears run on the system. However, the Qt OpenGL example applications, such as cube and hellogl2 crash with the following output. Could you advise on what the problem could be?

    # QT_QPA_PLATFORM=xcb LIBGL_DEBUG=verbose ./cube 
    pci id for fd 6: 8086:8108, driver (null)
    libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/emgd_dri.so
    libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/emgd_dri.so
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 7, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 7, (OK)
    drmOpenByBusid: drmOpenMinor returns 7
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 7, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 7, (OK)
    drmOpenByBusid: drmOpenMinor returns 7
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    libGL: driver does not expose __driDriverGetExtensions_emgd(): /usr/lib/xorg/modules/dri/emgd_dri.so: undefined symbol: __driDriverGetExtensions_emgd
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 7, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 7, (OK)
    drmOpenByBusid: drmOpenMinor returns 7
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 8, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 8, (OK)
    drmOpenByBusid: drmOpenMinor returns 8
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 8, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 8, (OK)
    drmOpenByBusid: drmOpenMinor returns 8
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 8, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 8, (OK)
    drmOpenByBusid: drmOpenMinor returns 8
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    libGL: Can't open configuration file /root/.drirc: No such file or directory.
    libGL: PVRDRIFlushBuffersGC: GLFlushBuffersGC failed (1)
    libGL: PVRDRIFlushBuffersGC: GLFlushBuffersGC failed (1)
    [/home/ferol/svn/PIXY-LINUX/trunk/3.3.0/sources/qt/5.9.4/sources/qtbase/src/gui/opengl/qopenglframebufferobject.cpp line 543] OpenGL Error: 1282
    ASSERT: "funcs.glIsRenderbuffer(depth_buffer)" in file /home/ferol/svn/PIXY-LINUX/trunk/3.3.0/sources/qt/5.9.4/sources/qtbase/src/gui/opengl/qopenglframebufferobject.cpp, line 649
    Aborted (core dumped)
    

    Note that, and older Qt 5.3.2 installation is able to run the OpenGL examples, with a very similar output except the last few lines before crash:

    # QT_QPA_PLATFORM=xcb LIBGL_DEBUG=verbose ./cube
    pci id for fd 8: 8086:8108, driver (null)
    libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/emgd_dri.so
    libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/emgd_dri.so
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 9, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 9, (OK)
    drmOpenByBusid: drmOpenMinor returns 9
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 9, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 9, (OK)
    drmOpenByBusid: drmOpenMinor returns 9
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    libGL: driver does not expose __driDriverGetExtensions_emgd(): /usr/lib/xorg/modules/dri/emgd_dri.so: undefined symbol: __driDriverGetExtensions_emgd
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 9, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 9, (OK)
    drmOpenByBusid: drmOpenMinor returns 9
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 10, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 10, (OK)
    drmOpenByBusid: drmOpenMinor returns 10
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 10, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 10, (OK)
    drmOpenByBusid: drmOpenMinor returns 10
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 10, (OK)
    drmOpenByBusid: Searching for BusID PCI:00:02:00
    drmOpenDevice: node name is /dev/dri/card0
    drmOpenDevice: open result is 10, (OK)
    drmOpenByBusid: drmOpenMinor returns 10
    drmOpenByBusid: Interface 1.4 failed, trying 1.1
    drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0
    libGL: Can't open configuration file /root/.drirc: No such file or directory.
    libGL: PVRDRIFlushBuffersGC: GLFlushBuffersGC failed (1)
    


  • Update on this issue: It looks like some OpenGL examples are running fine.

    When I run contextinfo with stereo buffers enabled, it works with Qt 5.3.2 but it does not work with Qt 5.9.4 and Depth buffer size is listed as 0 under Context information. Any idea what can cause this?

    # working 5.3.2:
    Depth buffer size: 24
    Stencil buffer size: 8
    
    # failing 5.9.4:
    Depth buffer size: 0
    Stencil buffer size: 0
    

    List of OpenGL examples status under 5.9.4:

    RUNNING:
    
    legacy/framebufferobject2
    legacy/grabber
    legacy/hellogl
    legacy/overpainting
    legacy/pbuffers
    legacy/samplebuffers
    hellowindow
    paintedwindow
    qopenglwindow: creates a window with black background and no decorations
    
    CRASHING:
    
    2dpainting
    cube
    hellogl2
    hellogles3
    qopenglwidget
    textures
    

    This is the output of computegles31:

    # computegles31 
    pci id for fd 6: 8086:8108, driver (null)
    Support for GL 2.0 noprof  yes
    Support for GL 2.0 core    no
    Support for GL 2.0 compat  no
    Support for GL 2.1 noprof  yes
    Support for GL 2.1 core    no
    Support for GL 2.1 compat  no
    Support for GL 3.0 noprof  no
    Support for GL 3.0 core    no
    Support for GL 3.0 compat  no
    Support for GL 3.1 noprof  no
    Support for GL 3.1 core    no
    Support for GL 3.1 compat  no
    Support for GL 3.2 core    no
    Support for GL 3.2 compat  no
    Support for GL 3.3 core    no
    Support for GL 3.3 compat  no
    Support for GL 4.0 core    no
    Support for GL 4.0 compat  no
    Support for GL 4.1 core    no
    Support for GL 4.1 compat  no
    Support for GL 4.2 core    no
    Support for GL 4.2 compat  no
    Support for GL 4.3 core    no
    Support for GL 4.3 compat  no
    Support for GL 4.4 core    no
    Support for GL 4.4 compat  no
    Support for GL 4.5 core    no
    Support for GL 4.5 compat  no
    Support for GLES 2.0  no
    Support for GLES 3.0  no
    Support for GLES 3.1  no
    Support for GLES 3.2  no
    Error: This system does not support OpenGL Compute Shaders! Exiting.
    

  • Lifetime Qt Champion

    Hi,

    Not a direct answer to your problem but you could try to run qtdiag (in the bin folder of your Qt version) to see if you can get some more information.



  • There is a partial output in the first message of the thread, copied below. I think there isn't something particularly problematic there.

    # qtdiag-qt5
    pci id for fd 6: 8086:8108, driver (null)
    Qt 5.9.4 (i386-little_endian-ilp32 shared (dynamic) debug build; by GCC 4.9.1) on "xcb" 
    OS: Arch Linux [linux version 3.4.108-rt136_pixy]
    
    ...
    
    Screens: 1, High DPI scaling: inactive
    # 0 "default" Depth: 24 Primary: yes
      Manufacturer: 
      Model: 
      Serial number: 
      Geometry: 1024x768+0+0 Available: 1024x768+0+0
      Physical size: 271x203 mm  Refresh: 85 Hz Power state: 0
      Physical DPI: 95.9764,96.0946 Logical DPI: 95.9764,96.0946 Subpixel_None
      DevicePixelRatio: 1 Pixel density: 1
      Primary orientation: 2 Orientation: 2 Native orientation: 0 OrientationUpdateMask: 0
    
    LibGL Vendor: Intel Corporation
    Renderer: EMGD on PowerVR SGX535
    Version: 2.1
    Shading language: 1.20
    Format: Version: 2.1 Profile: 0 Swap behavior: 0 Buffer size (RGBA):
    

  • Lifetime Qt Champion

    Did you compare the sources of this example in both versions of Qt ? Is it he same code ?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.