[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