As for #1, yes, the new backend is 5.6 only. It is different from eglfs_kms. 
The latter uses GBM for buffer management while the new one relies on 
EGLDevice, EGLOutput and EGLStream. (if interested in the details, check this 
presentation: http://www.x.org/wiki/Events/XDC2014/XDC2014RitgerEGLNonMesa ) 
That said, it most likely won’t help you since I doubt this is functional in 
the Linux for Tegra images for the TK1.

Best regards,
Laszlo

From: Denis Shienkov [mailto:[email protected]]
Sent: 4. november 2015 19:08
To: [email protected]
Cc: Agocs Laszlo <[email protected]>; Thiago Macieira 
<[email protected]>; Lopes Yoann <[email protected]>
Subject: Re: [Interest] Qt 5.5.x & NVIDIA Tegra Jetson TK1 video performance 
issue

Laszlo, thanks for your answer.

So, I have another questions:

1. What is "eglfs_kms_egldevice" ? Is it introduced in Qt 5.6 only? What for 
this option? Is is equal to "eglfs_kms" option?

2. Is it possible to change the Gstreamer's sinks from Qt application? Is it 
make sense?
Because according to NVIDIA Tegra's documentation [1], I can (?) run the 
'gst-launch' utility using different sinks,
like 'xvimagesink', 'nv_omx_hdmi_videosink', 'nveglglessink' and so on to test 
performance with the native stuff..

BR,
Denis

-----
[1] 
http://developer.download.nvidia.com/embedded/L4T/r21_Release_v3.0/L4T_Jetson_TK1_Multimedia_User_Guide_V2.1.pdf

04.11.2015 12:26, Agocs Laszlo пишет:
* do you have any trics and recommendations how to properly compile Qt on Tegra 
Jetson TK1 (maybe requires another flags and so on)?

What you have should be good enough. Qt 5.6 comes with Jetson Pro support and 
it looks more or less the same when it comes to the compiler flags: 
http://code.qt.io/cgit/qt/qtbase.git/tree/mkspecs/devices/linux-jetson-tk1-pro-g++/qmake.conf

* how to run the GUI application properly with KMS and so on?

You can’t. AFAIK the public TK1 is pretty much X11 only with NVIDIA’s binary 
drivers. (the Jetson Pro is a different story, though) You could try an 
open-source stack with Nouveau for KMS, Wayland, etc. but no idea how stable 
that is nowadays.

Video with Qt Multimedia did not really work out of the box the last time I 
tried it. It has not been investigated much since. Anyway, the slow speeds are 
likely related to the camera/GStreamer/QtMultimedia, not Qt in general as Qt 
apps are known to run pretty well on the TK1.

Best regards,
Laszlo


From: Interest [mailto:[email protected]] On Behalf Of Jason H
Sent: 3. november 2015 21:59
To: Denis Shienkov <[email protected]><mailto:[email protected]>
Cc: Thiago Macieira 
<[email protected]><mailto:[email protected]>; 
[email protected]<mailto:[email protected]>
Subject: Re: [Interest] Qt 5.5.x & NVIDIA Tegra Jetson TK1 video performance 
issue

I didn't use that confguration, but I have compiled Qt on an Atom with a Tegra 
chipset. I vaguely remember optimizing the video stack. By default it was using 
a CPU renderer, but I beulve the trick was re-compiling GStreamer to use the 
proper hardware acceleration. There may have been an environment variable 
involved in getting GStreamer to select the proper back-end -- that is to say 
GStreamer had it own envionment variable , not a QT_ one -- IIRC.

I am sorry I can't be more specific, but maybe that can get you in the right 
direction.

Also, I remember using the 'top' command and I think it being rather obvious 
who who the culprit was who was not using hardware rendering. Once I got it all 
set, even on that old Atom, it was doing 30fps with less than 10% CPU.

That said, in my experience linuxFB is extremely slow, never use it for video.

If you can't find the DRM device, then you are missing the Direct Render Mode 
drivers for it. That said, I've never used DRM without X.


Sent: Tuesday, November 03, 2015 at 12:20 PM
From: "Denis Shienkov" 
<[email protected]<mailto:[email protected]>>
To: [email protected]<mailto:[email protected]>
Cc: "Thiago Macieira" 
<[email protected]<mailto:[email protected]>>
Subject: [Interest] Qt 5.5.x & NVIDIA Tegra Jetson TK1 video performance issue
Hi Qt developers.

I have veeery slow video performance with Qt 5.5.1 and the video camera (frame 
rate about ~1-3 fps) on Tegra Jetson TK1 device, where the video stream writes 
via HDMI interface to the monitor.

My stuff is:

* Qt 5.5.1, cross-compiled himself.
* Tegra Jetson TK1 board [1]
* Logitech c920 USB camera (supports 1920x1080 @ 30 Hz) [2]

I compiled Qt with this C++ flags:

{quote}
DISTRO_OPTS += hard-float

QMAKE_INCDIR += /usr/arm-linux-gnueabihf/include \
                /usr/arm-linux-gnueabihf/include/c++/4.8.2 \
                /usr/arm-linux-gnueabihf/include/c++/4.8.2/arm-linux-gnueabihf

TEGRA_TK1_CFLAGS        = -mcpu=cortex-a15 -mfpu=neon-vfpv4 -marm
QMAKE_CFLAGS           += $$TEGRA_TK1_CFLAGS
QMAKE_CXXFLAGS         += $$TEGRA_TK1_CFLAGS
{quote}

with the GStreamer v1.0 , the GL and the EGL (2.0, 3.0) support:

{quote}
/home/builder/Projects/qt5/./configure \
-v \
-release \
-opensource \
-confirm-license \
-make libs \
-prefix /opt/qt-5.5 \
-device tegra-tk1 \
-device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- \
-sysroot /home/builder/Projects/tegra/rootfs \
-optimized-qmake \
-alsa \
-gstreamer 1.0 \
-nomake examples \
-nomake tests \
-no-compile-examples \
-no-gtkstyle \
-no-qml-debug \
-no-nis \
-no-mtdev \
-no-evdev \
-no-tslib \
-no-harfbuzz \
-no-openssl \
-no-libproxy \
-no-pulseaudio \
-no-cups \
-no-icu \
-no-fontconfig \
-no-sql-db2 \
-no-sql-mysql \
-no-sql-oci \
-no-sql-odbc \
-no-sql-psql \
-no-sql-sqlite \
-no-sql-sqlite2 \
-no-sql-ibase \
-no-sql-tds \
-no-directfb \
-no-xcb \
-no-xcb-xlib \
-no-glib \
-system-zlib \
-qt-libjpeg \
-qt-libpng \
-qt-freetype \
-opengl es2 \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdoc \
-skip qtdocgallery \
-skip qtenginio \
-skip qtfeedback \
-skip qtimageformats \
-skip qtlocation \
-skip qtmacextras \
-skip qtpim \
-skip qtqa \
-skip qtquick1 \
-skip qtquickcontrols \
-skip qtrepotools \
-skip qtsensors \
-skip qtserialport \
-skip qtsystems \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebchannel \
-skip qtwebengine \
-skip qtwebkit \
-skip qtwebkit-examples \
-skip qtwebsockets \
-skip qtwinextras \
 {quote}

Resulting configuration are following:

{quote}
Support enabled for:
  Accessibility .......... yes
  ALSA ................... yes
  CUPS ................... no
  Evdev .................. no
  FontConfig ............. no
  FreeType ............... qt
  Glib ................... no
  GStreamer .............. yes (1.0)
  GTK theme .............. no
  HarfBuzz ............... no
  Iconv .................. yes
  ICU .................... no
  Image formats:
    GIF .................. yes (plugin, using bundled copy)
    JPEG ................. yes (plugin, using bundled copy)
    PNG .................. yes (in QtGui, using bundled copy)
  journald ............... no
  libinput................ no
  mtdev .................. no
  Networking:
    getaddrinfo .......... yes
    getifaddrs ........... yes
    IPv6 ifname .......... yes
    libproxy.............. no
    OpenSSL .............. no
  NIS .................... no
  OpenGL / OpenVG:
    EGL .................. yes
    OpenGL ............... yes (OpenGL ES 2.0+)
    OpenVG ............... no
  PCRE ................... yes (bundled copy)
  pkg-config ............. yes
  PulseAudio ............. no
  QPA backends:
    DirectFB ............. no
    EGLFS ................ yes
      EGLFS i.MX6....... . no
      EGLFS KMS .......... yes
      EGLFS Mali ......... no
      EGLFS Raspberry Pi . no
      EGLFS X11 .......... yes
    LinuxFB .............. yes
    XCB .................. no
  Session management ..... yes
  SQL drivers:
    DB2 .................. no
    InterBase ............ no
    MySQL ................ no
    OCI .................. no
    ODBC ................. no
    PostgreSQL ........... no
    SQLite 2 ............. no
    SQLite ............... no
    TDS .................. no
  tslib .................. no
  udev ................... yes
  xkbcommon-x11........... no
  xkbcommon-evdev......... no
  zlib ................... yes (system library)
{quote}

I tried to launch the QtMultimedia's Camera example (which does not use QML) 
via SSH connection
to the Tegra's device, like:

= using LinuxFB =

{quote}
$ ./camera -platform linuxfb:fb=/dev/fb1
{quote}

= using EGLFS via X =
{quote}
$ export DISPLAY=:0
$ export QT_QPA_EGLFS_INTEGRATION=eglfs_x11
$ startx &
$ ./camera -platform eglfs
{quote}

= using EGLFS via KMS =

{quote}
$ export DISPLAY=
$ export QT_QPA_EGLFS_INTEGRATION=eglfs_kms
$ ./camera -platform eglfs
{quote}

Use of LinuxFB and EGLFS via X gives very slow video performance (~3 fps as I 
spoke before).

Use of EGLFS via KMS gives folloving error:

{quote}
Could not find DRM device
Aborted
{quote}

I found out in the google yours blog [3] from Laszlo Agocs in which Tegra 
Jetson is mentioned,
but there are no details about building, running and so on.

So, my question is:

* do you have any trics and recommendations how to properly compile Qt on Tegra 
Jetson TK1 (maybe requires another flags and so on)?
* how to run the GUI application properly with KMS and so on?
* how to check that are used the HW rendering instead of SW rendering of video?


BR,
Denis

===========
[1] http://elinux.org/Jetson_TK1
[2] http://support.logitech.com/product/hd-pro-webcam-c920
[3] 
https://blog.qt.io/blog/2015/03/03/qt-weekly-28-qt-and-cuda-on-the-jetson-tk1/

_______________________________________________ Interest mailing list 
[email protected]<mailto:[email protected]> 
http://lists.qt-project.org/mailman/listinfo/interest

_______________________________________________
Interest mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to