[Interest] Qt5.8 qt3d examples not working

Francis Herne mail at flherne.uk
Wed Feb 22 09:34:01 CET 2017


On Tue, 21 Feb 2017 10:41:04 +0100
"Lukáš Sedláček" <sedlacek.lks at gmail.com> wrote:

> Hello,
> 
> I have just got my Raspberry Pi3 (using raspbian lite without pixel - 
> only linuxfb/eglfs) and I am having problems to run Qt3d examples
> (which will be very useful to for me). I cross compiled Qt5.8 library 
> downloaded from download.qt.io using this tutorial 
> https://wiki.qt.io/RaspberryPi2EGLFS. Everything went just fine, I
> only used another configure options:
> 
> -opengl es2 -optimized-qmake -no-pch -make libs -make tools 
> -reduce-exports -sysroot /home/lukas/raspberry/sysroot -device 
> linux-rasp-pi2-g++ -device-option 
> CROSS_COMPILE=/home/lukas/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- 
> -prefix /usr/local/rasp  -opensource -nomake  examples -nomake tests 
> -confirm-license -skip qtmultimedia -skip qtcharts -skip qtsensors
> -skip qtgamepad -skip qtmacextras -skip qtandroidextras -skip
> qtwayland -prefix /usr/local/qt5pi -extprefix /home/lukas/raspi/qt5pi
> -hostprefix /home/lukas/raspi/qt5
> 
> Every qt3d example is compiled just fine, but when I run any of the 
> examples it is not working. Few examples look like everything working 
> just fine (I have also tried to enable logging by no error occurs)
> but nothing is rendered. Few other examples are crashing on fragment
> shader with error message:
> 
> Failed to link shader program: ERROR:OPTIMIZER-3 (fragment shader,
> line 41) Support for for loops is restricted : right side of
> condition expression must be constant
> Segmentation fault
> 
> My settings is:
> - Raspberry Pi 3 using raspbian lite without pixel
> - Host PC is Linux Mint 17.2 64bit
> - I want to use qt3d without X11 or Wayland if possible!
> 
> Output from "ldd simple-qml"
>      linux-vdso.so.1 (0x7eec6000)
>      /usr/lib/arm-linux-gnueabihf/libarmmem.so (0x76f29000)
>      libQt53DExtras.so.5 => /usr/local/qt5pi/lib/libQt53DExtras.so.5 
> (0x76ec8000)
>      libQt53DQuickExtras.so.5 => 
> /usr/local/qt5pi/lib/libQt53DQuickExtras.so.5 (0x76ec2000)
>      libQt5Concurrent.so.5
> => /usr/local/qt5pi/lib/libQt5Concurrent.so.5 (0x76ebd000)
>      libQt53DRender.so.5 => /usr/local/qt5pi/lib/libQt53DRender.so.5 
> (0x76d12000)
>      libQt53DInput.so.5 => /usr/local/qt5pi/lib/libQt53DInput.so.5 
> (0x76c9e000)
>      libQt53DLogic.so.5 => /usr/local/qt5pi/lib/libQt53DLogic.so.5 
> (0x76c92000)
>      libQt53DQuick.so.5 => /usr/local/qt5pi/lib/libQt53DQuick.so.5 
> (0x76c73000)
>      libQt53DCore.so.5 => /usr/local/qt5pi/lib/libQt53DCore.so.5 
> (0x76c2b000)
>      libQt5Quick.so.5 => /usr/local/qt5pi/lib/libQt5Quick.so.5
> (0x768d5000) libQt5Gui.so.5 => /usr/local/qt5pi/lib/libQt5Gui.so.5
> (0x76463000) libQt5Qml.so.5 => /usr/local/qt5pi/lib/libQt5Qml.so.5
> (0x760f6000) libQt5Network.so.5
> => /usr/local/qt5pi/lib/libQt5Network.so.5 (0x75f95000)
>      libQt5Core.so.5 => /usr/local/qt5pi/lib/libQt5Core.so.5
> (0x75af0000) libGLESv2.so => /opt/vc/lib/libGLESv2.so (0x75acb000)
>      libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 
> (0x75aa3000)
>      libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 
> (0x759c6000)
>      libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0x7594b000)
>      libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1
> (0x7591e000) libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6
> (0x757dd000) libpng12.so.0 => /lib/arm-linux-gnueabihf/libpng12.so.0
> (0x757ac000) libz.so.1 => /lib/arm-linux-gnueabihf/libz.so.1
> (0x75785000) librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1
> (0x7576e000) libicui18n.so.52
> => /usr/lib/arm-linux-gnueabihf/libicui18n.so.52 (0x755ae000)
>      libicuuc.so.52 => /usr/lib/arm-linux-gnueabihf/libicuuc.so.52 
> (0x75465000)
>      libicudata.so.52
> => /usr/lib/arm-linux-gnueabihf/libicudata.so.52 (0x73de7000)
>      libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0x73dd4000)
>      libgthread-2.0.so.0 => 
> /usr/lib/arm-linux-gnueabihf/libgthread-2.0.so.0 (0x73dc2000)
>      libglib-2.0.so.0 => /lib/arm-linux-gnueabihf/libglib-2.0.so.0 
> (0x73cbf000)
>      /lib/ld-linux-armhf.so.3 (0x54b6f000)
>      libEGL.so => /opt/vc/lib/libEGL.so (0x73c86000)
>      libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x73c5f000)
>      libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x73c49000)
>      libvcos.so => /opt/vc/lib/libvcos.so (0x73c2f000)
>      libpcre.so.3 => /lib/arm-linux-gnueabihf/libpcre.so.3
> (0x73bbc000)
> 
> Do I miss something? I have already tried same steps on Raspberry
> PiB+ but the result was just same.
> 
> Thanks for any answer.
> 

It's a fault/limitation in the Pi graphics driver - non-constant RHS in
a for-loop condition is valid GLSL, but the driver fails to support it
anyway.
Try using the open-source `vc4` driver (part of Mesa) instead of the
mostly-closed one that's currently standard; it has better GLSL support.

-Francis



More information about the Interest mailing list