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 ?



  • The source code for qtbase/examples/opengl/contextinfo are very similar in 5.3.2 and 5.9.4. The latter has some command line arguments, and minor fixes.

    Can the issue be related to existence of /usr/include/drm directory during compilation?
    I am asking, because I have seen that, while packaging ArchLinux linux-api-headers , /usr/include/drm is removed:

    # use headers from libdrm
    rm -r "$pkgdir/usr/include/drm"
    

    During the compilation of contextinfo example, 5.9.4 has an extra /usr/include/libdrm include path, while 5.3.2 does not.

    0_1519228748222_2495b3aa-f2a9-4148-b31e-47645878b7a9-image.png

    Here is the sorted output of ldd contextinfo for 5.9.4 on the left and 5.3.2 on the right (both link libdrm):

    0_1519227115753_a224721b-6f28-4c6b-b43f-02742b03bf42-image.png


  • Lifetime Qt Champion

    Do you mean that the cross-compiling environment changed between your 5.3 and 5.9 builds ?



  • yes. well, 5.3.2 package is taken off the official site, so, it is most likely not cross-compiled. 5.9.4 is cross-built by me.


  • Moderators

    Official 5.3.2 are in Qt archive: https://download.qt.io/archive/qt/5.3/5.3.2/



  • sorry. i meant Qt 5.3.2 package comes from Arch Linux official site, so, it is built and prepared by someone else using respective tools on a i686 development system or chroot environment.

    I downloaded Qt 5.9.4 from download.qt.io, and cross-compiled it myself.




  • Lifetime Qt Champion

    The first one is not implemented and the second is fixed for 5.9.5. You can already test that by building from git.



  • Update on this issue:

    • Qt 5.3.2 built on the 32-bit system : opengl examples run successfully.
    • Qt 5.9.3 built on the 32-bit system : legacy opengl examples run successfully. cube/hellogl2/texture crashes.
    • Qt 5.9.4 cross-compiled for the 32-bit system : legacy opengl examples run successfully. cube/hellogl2/texture crashes.
    • Qt 5.10.1 cross-compiled for the 32-bit system : legacy opengl examples run successfully. cube/hellogl2/texture crashes.

    I haven't managed to cross-compile 5.3.2 yet, to confirm that cross-compilation works properly.
    Here is the stack trace from the crashed cube example application for Qt 5.9.4:

    (gdb) run
    Starting program: /home/root/opengl/cube/cube 
    warning: Could not load shared library symbols for linux-gate.so.1.
    Do you need "set solib-search-path" or "set sysroot"?
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/usr/lib/libthread_db.so.1".
    [New Thread 0xb46bab40 (LWP 585)]
    pci id for fd 6: 8086:8108, driver (null)
    
    Program received signal SIGSEGV, Segmentation fault.
    0xb38ce7df in ?? () from /lib/libEMGDOGL.so
    (gdb) thread apply all backtrace
    
    Thread 2 (Thread 0xb46bab40 (LWP 585)):
    #0  0xb7ffd428 in __kernel_vsyscall ()
    #1  0xb6a963fb in poll () from /usr/lib/libc.so.6
    #2  0xb4df8f1d in ?? () from /usr/lib/libxcb.so.1
    #3  0xb4dfaf6b in xcb_wait_for_event () from /usr/lib/libxcb.so.1
    #4  0xb4993703 in ?? () from /usr/lib/libQt5XcbQpa.so.5
    #5  0xb6ddcfb1 in ?? () from /usr/lib/libQt5Core.so.5
    #6  0xb6cd61a6 in start_thread () from /usr/lib/libpthread.so.0
    #7  0xb6aa0e9e in clone () from /usr/lib/libc.so.6
    
    Thread 1 (Thread 0xb4c4c740 (LWP 581)):
    #0  0xb38ce7df in ?? () from /lib/libEMGDOGL.so
    #1  0xb38cee9f in ?? () from /lib/libEMGDOGL.so
    #2  0xb38cdbf1 in ?? () from /lib/libEMGDOGL.so
    #3  0xb38cf44b in ?? () from /lib/libEMGDOGL.so
    #4  0xb38cf9d8 in ?? () from /lib/libEMGDOGL.so
    #5  0xb38d04e8 in ?? () from /lib/libEMGDOGL.so
    #6  0xb385cc81 in ?? () from /lib/libEMGDOGL.so
    #7  0xb38e7b76 in pvroglDrawArrays () from /lib/libEMGDOGL.so
    #8  0xb76ad8b7 in ?? () from /usr/lib/libQt5Gui.so.5
    #9  0xb764d379 in ?? () from /usr/lib/libQt5Gui.so.5
    #10 0xb764dadc in QPlatformBackingStore::composeAndFlush(QWindow*, QRegion const&, QPoint const&, QPlatformTextureList*, QOpenGLContext*, bool) () from /usr/lib/libQt5Gui.so.5
    #11 0xb49b0686 in ?? () from /usr/lib/libQt5XcbQpa.so.5
    #12 0xb79ae3c7 in ?? () from /usr/lib/libQt5Widgets.so.5
    #13 0xb79afa09 in ?? () from /usr/lib/libQt5Widgets.so.5
    #14 0xb79b104d in ?? () from /usr/lib/libQt5Widgets.so.5
    #15 0xb79b17f2 in ?? () from /usr/lib/libQt5Widgets.so.5
    #16 0xb79cbd37 in QWidgetPrivate::syncBackingStore(QRegion const&) () from /usr/lib/libQt5Widgets.so.5
    #17 0xb7a012ea in ?? () from /usr/lib/libQt5Widgets.so.5
    #18 0xb7a01e1a in ?? () from /usr/lib/libQt5Widgets.so.5
    #19 0xb79a0f4a in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
    #20 0xb79a8d2c in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
    #21 0xb6fa396c in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
    #22 0xb73690e2 in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) () from /usr/lib/libQt5Gui.so.5
    #23 0xb7369df9 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5
    #24 0xb7343cec in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
    #25 0xb4a0298e in ?? () from /usr/lib/libQt5XcbQpa.so.5
    #26 0xb5019ba4 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
    #27 0xb5019ec9 in ?? () from /usr/lib/libglib-2.0.so.0
    #28 0xb5019f96 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
    #29 0xb6ff64b4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
    #30 0xb4a02b61 in ?? () from /usr/lib/libQt5XcbQpa.so.5
    #31 0xb6fa13a6 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
    #32 0xb6fa17fa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
    #33 0xb6faa796 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
    #34 0xb735f1f1 in QGuiApplication::exec() () from /usr/lib/libQt5Gui.so.5
    #35 0xb79a0ea4 in QApplication::exec() () from /usr/lib/libQt5Widgets.so.5
    #36 0x0804ad69 in main ()
    (gdb) continue
    Continuing.
    [Thread 0xb46bab40 (LWP 585) exited]
    
    Program terminated with signal SIGSEGV, Segmentation fault.
    The program no longer exists.
    (gdb)
    

  • Lifetime Qt Champion

    Do you also have that with 5.9.5/5.11 Beta ?



  • I haven't tested with 5.9.5 and 5.11, checked only the official releases under https://download.qt.io.


  • Lifetime Qt Champion

    My bad, I'm a bit early for the 5.9.5 release which should happen during March.

    The beta can be downloaded from the development_releases subfolder.



  • I tried building 5.11.0-beta1, but it fails (I guess, since I have an older mesa-libgl):

    qeglfskmsgbmwindow.cpp: In member function ‘virtual void QEglFSKmsGbmWindow::resetSurface()’:
    qeglfskmsgbmwindow.cpp:58:5: error: ‘PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC’ was not declared in this scope
         PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC createPlatformWindowSurface = nullptr;
         ^
    qeglfskmsgbmwindow.cpp:61:9: error: ‘createPlatformWindowSurface’ was not declared in this scope
             createPlatformWindowSurface = reinterpret_cast<PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC>(
             ^
    qeglfskmsgbmwindow.cpp:61:56: error: ‘PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC’ does not name a type
             createPlatformWindowSurface = reinterpret_cast<PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC>(
                                                            ^
    qeglfskmsgbmwindow.cpp:65:9: error: ‘createPlatformWindowSurface’ was not declared in this scope
         if (createPlatformWindowSurface) {
             ^
    Makefile:2994: recipe for target '.obj/qeglfskmsgbmwindow.o' failed
    make[2]: *** [.obj/qeglfskmsgbmwindow.o] Error 1
    


  • well, it looks like this is an EMGD<=>mesa<=>Qt issue.

    • EMGD + mesa 10.1.0 + Qt 5.3.2: OK
    • EMGD + mesa 10.1.0 + Qt 5.9.4: openGL examples cube/hellogl2/textures crash
    • EMGD + mesa 10.3.0 + Qt 5.9.4: openGL examples cube/hellogl2/textures run, but EMGD hardware acceleration fails:
    libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/emgd_dri.so
    libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/emgd_dri.so
    libGL: dlopen /usr/lib/xorg/modules/dri/emgd_dri.so failed (/usr/lib/xorg/modules/dri/emgd_dri.so: undefined symbol: _glapi_Dispatch)
    libGL error: unable to load driver: emgd_dri.so
    libGL error: driver pointer missing
    libGL error: failed to load driver: emgd
    libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/tls/swrast_dri.so
    libGL: OpenDriver: trying /usr/lib/xorg/modules/dri/swrast_dri.so
    libGL: Can't open configuration file /root/.drirc: No such file or directory.
    libGL: Can't open configuration file /root/.drirc: No such file or directory.
    

    Any idea on how to get EMGD working with mesa 10.3.0?

    # ldd -r /usr/lib/xorg/modules/dri/emgd_dri.so 
    ldd: warning: you do not have execution permission for `/usr/lib/xorg/modules/dri/emgd_dri.so'
    	linux-gate.so.1 (0xb775f000)
    	libm.so.6 => /lib/libm.so.6 (0xb74d1000)
    	libpthread.so.0 => /lib/libpthread.so.0 (0xb74b5000)
    	libexpat.so.1 => /lib/libexpat.so.1 (0xb748c000)
    	libdl.so.2 => /lib/libdl.so.2 (0xb7487000)
    	libdrm.so.2 => /lib/libdrm.so.2 (0xb7478000)
    	libEMGDOGL.so => /lib/libEMGDOGL.so (0xb71c7000)
    	libEMGD2d.so => /lib/libEMGD2d.so (0xb71bf000)
    	libstdc++.so.6 => /lib/libstdc++.so.6 (0xb70c9000)
    	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb70ac000)
    	libc.so.6 => /lib/libc.so.6 (0xb6ef4000)
    	/usr/lib/ld-linux.so.2 (0xb7760000)
    	libemgdsrv_um.so => /lib/libemgdsrv_um.so (0xb6ed1000)
    undefined symbol: _glapi_Dispatch	(/usr/lib/xorg/modules/dri/emgd_dri.so)
    undefined symbol: _glapi_Context	(/usr/lib/xorg/modules/dri/emgd_dri.so)
    undefined symbol: _glapi_get_dispatch_table_size	(/usr/lib/xorg/modules/dri/emgd_dri.so)
    undefined symbol: _glapi_get_dispatch	(/usr/lib/xorg/modules/dri/emgd_dri.so)
    undefined symbol: _glapi_get_context	(/usr/lib/xorg/modules/dri/emgd_dri.so)
    undefined symbol: _glapi_add_dispatch	(/usr/lib/xorg/modules/dri/emgd_dri.so)
    undefined symbol: _glapi_set_context	(/usr/lib/xorg/modules/dri/emgd_dri.so)
    undefined symbol: _glapi_set_dispatch	(/usr/lib/xorg/modules/dri/emgd_dri.so)
    
    # strings -a /usr/lib/libglapi.so | grep _glapi_Dispatch
    _glapi_Dispatch
    


  • so, any suggestions on how to make EMGD + mesa 10.1.0 + Qt 5.9.4 work?
    Qt 5.3.2 works with the same combination.
    When Qt 5.3.2 qtbase/examples/opengl is built against Qt 5.9.4, they work as well, except 'stereo buffers' in contextinfo example.
    When Qt 5.9.4 qtbase/examples/opengl is built against Qt 5.9.4, examples such as cube, textures crash, and 'stereo buffers' in contextinfo fails as well.


Log in to reply
 

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