SlideShare a Scribd company logo
1 of 17
Qt5 on TI processors
Qt5 differences with Qt4
• With the platform plugin approach - the HW "platform" is expected
  to provide OpenGL ES2, and any other additional HW acceleration
  on top of that as part of the platform. In essence - with GLES2 -
  every screen update in Qt5 happens via an OpenGL ES texturing
  operation, rather than any other means. In addition to this
  fundamental change, Qt5 brings in another major programming
  model update - that of QML, Qt3D etc.
• A key thing specific to our (SGX based) platforms - With the
  elimination of the display plugin, Qt5 no longer uses or supports
  blits via pvr2d or wsegl, and instead directly uses the egl (or
  window) capabilities exposed by the GL driver. This eliminates
  immediately a large portion of pvr2d/wsegl version related issues
  that cropped up in earlier Qt versions.
  (ex patch for Qt4 in below link is not needed anymore)
  https://github.com/prabindh/qt-
  configs/blob/master/qt4.8/001_wsegl2.patch
Qt5 platform plugins
• The below platform plugins are available in
  the Qt5 Alpha package. Only "eglfs" and
  "minimal" are built by default in qtbase.
  – cocoa eglfs linuxfb minimal openvglite pro qvfb
    windows directfb kms openkode openwfd qnx xcb
Pre-requisites for Qt5 build
• - Qt5 alpha source package
  http://releases.qt-project.org/qt5.0/alpha/
• - TI Graphics SDK (4.05 or later)
  http://software-
  dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/g
  fxsd...
  http://processors.wiki.ti.com/index.php/AM35x-
  OMAP35x_Graphics_SDK_Getti...
  - Recent filesystem (GCC 4.5 or later)
  - ARM cross Toolchain (GCC 4.5 or later), example from
  below:
  http://people.linaro.org/~michaelh/incoming/binaries/
Configuring Qt5 - eglfs
•   - a linaro toolchain (linux-arm-gnueabi-)
    - sgxconfiguro is used (package config for TI Graphics SDK - egl and x11)
    https://github.com/prabindh/sgxconfiguro
    - force-pkg-config is used
•   If this does not seem clear, the older tried-and-tested-method of specifying all
    possible (and needed) paths in the qmake.conf as below will also work :
•   https://github.com/prabindh/qt-configs/tree/master/qt5.0_mar2012
•   The below method adopts the first approach and uses the standard Qt5 supplied
    linux-arm-gnueabi-g++ mkspec without change
•   $cd qtbase
    $export PATH=/opt/linaro/gcc-linaro-arm-linux-gnueabi-2012.03-
    20120326_linux/bin:/home/prabindh/work1/arm-qt5-tar/qt-everywhere-
    opensource-src-5.0.0/qtbase/bin:
    $export PKG_CONFIG=./x86-cross-ubuntu-pkg-config
    $./configure -prefix /home1/prabu/qt5_install -release -make libs -xplatform linux-
    arm-gnueabi-g++ -opengl es2 -confirm-license -opensource -no-xcb -no-wayland -
    force-pkg-config -make examples -make demos -verbose
Sample config log
•   Debug .................. no
    QtDBus module .......... no
    QtConcurrent code ...... yes
    QtGui module ........... yes
    QtWidgets module ....... yes
    JavaScriptCore JIT ..... To be decided by JavaScriptCore
    Declarative debugging ...yes
    STL support ............ yes
    PCH support ............ yes
    iWMMXt support ......... no
    NEON support ........... yes
    IPv6 ifname support .... yes
    getaddrinfo support .... yes
    getifaddrs support ..... yes
    Accessibility .......... yes
    NIS support ............ yes
    CUPS support ........... no
    Iconv support .......... yes
    Glib support ........... yes
    GStreamer support ...... no
    PulseAudio support ..... no
    Large File support ..... yes
    GIF support ............ plugin
    JPEG support ........... plugin (qt)
    PNG support ............ yes (qt)
    zlib support ........... yes
    Session management ..... auto
    libudev support ........ no
    OpenGL support ......... yes (OpenGL ES 2.x)
    OpenVG support ......... no
    XShape support ......... auto
    XVideo support ......... auto
    XSync support .......... auto
    Xinerama support ....... runtime
    Xcursor support ........ runtime
    Xfixes support ......... runtime
    Xrandr support ......... runtime
    Xi support ............. runtime
    MIT-SHM support ........ auto
    FontConfig support ..... auto
    XKB Support ............ auto
    immodule support ....... yes
    GTK theme support ...... auto
    SQLite support ......... plugin (qt)
    OpenSSL support ........ no
    Alsa support ........... no
    libICU support ......... no
    PCRE support ........... qt
    Xcb support ............ no
    Xrender support ........ no
    EGLFS support .......... yes
Beyond qtbase
• After configure, make && make install are to be done.
  This is important, as qmake needs to be in the install
  path.
• Steps to build Qt3D :
• To build Qt3D, in addition to qtbase also need to build
  the below:
• qtjsbackend (has v8)
  qtdeclarative
  qt3d
• To build the above, enter the directory, then perform
  (assuming qmake is in the path as specified earlier)
  $ qmake && make && make install
Executing demos on target
• After installing the above build on to target, there are several
  changes from the point of view of Qt4 users, for getting the demos
  to work.
• 1) Configure resolution of the screen for Qt
• If screen resolution is 16 bpp (RGB565)
  export QT_QPA_EGLFS_DEPTH=16
• edit:
  If screen resolution is 24 bpp (RGB888)
  export QT_QPA_EGLFS_DEPTH=24
• If this step is not performed, any application running on eglfs
  platform will abort, with a message as below:
• "Initialized display 1 4
  Cant find EGLConfig, returning null config
  Could not create the egl surface: error = 0x3005"
  Abort
Running the Demos with eglfs
• 2) Ensure SGX drivers are installed, and standard GLES2 3D demos are
  functional without Qt
• 3) There is no need anymore to set /etc/powervr.ini to QWS library (no
  such library exists in Qt5) making it simpler to run. Qt5 works with both
  FRONT and FLIP modes (as of Qt5 Alpha) with "eglfs".
• 4) Running QML demos:
• QMLScene can be used to run QML demos, with a command similar to
  below:
  /bin/qmlscene
  examples/qtdeclarative/qtquick/animation/pathanimation/pathanimation
  .qml -platform eglfs
• 5) Running standalone demos:
• Standalone qt5 demos (including qt3d demos, as well as classic qtbase
  demos like animatedtiles) can be invoked as below for eglfs platform
  plugin
• <demo> -platform eglfs
Qt5 with Xcb
• What is Xcb ?
• From xcb.freedesktop.org
  – The X protocol C-language Binding (XCB) is a
    replacement for Xlib featuring a small footprint,
    latency hiding, direct access to the protocol,
    improved threading support, and extensibility.
Configuring with Xcb
• $cd qtbase
  $export PATH=/opt/linaro/gcc-linaro-arm-linux-
  gnueabi-2012.03-
  20120326_linux/bin:/home/prabindh/work1/arm-qt5-
  tar/qt-everywhere-opensource-src-5.0.0/qtbase/bin:
  $export PKG_CONFIG=./x86-cross-ubuntu-pkg-config
  $./configure -prefix /home1/prabu/qt5_xcb_install -
  release -make libs -xplatform linux-TIarmv7-sgx-g++ -
  opengl es2 -confirm-license -opensource -xcb -no-
  wayland -force-pkg-config -make examples -make
  demos -verbose
Configure logs with Xcb
•   Build .................. libs examples demos
    Configuration .......... cross_compile release shared dll qpa largefile stl precompile_header neon pcre minimal-config small-config medium-config large-config full-config fontconfig libudev
    evdev xlib xrender xcb-xlib accessibility egl eglfs opengl opengles2 qpa reduce_exports reduce_relocations clock-gettime clock-monotonic mremap getaddrinfo ipv6ifname getifaddrs
    inotify png system-freetype system-zlib nis iconv glib xcb alsa icu concurrent audio-backend v8 v8snapshot release
    Debug .................. no
    QtDBus module .......... no
    QtConcurrent code ...... yes
    QtGui module ........... yes
    QtWidgets module ....... yes
    JavaScriptCore JIT ..... To be decided by JavaScriptCore
    Declarative debugging ...yes
    STL support ............ yes
    PCH support ............ yes
    iWMMXt support ......... no
    NEON support ........... yes
    IPv6 ifname support .... yes
    getaddrinfo support .... yes
    getifaddrs support ..... yes
    Accessibility .......... yes
    NIS support ............ yes
    CUPS support ........... no
    Iconv support .......... yes
    Glib support ........... yes
    GStreamer support ...... no
    PulseAudio support ..... no
    Large File support ..... yes
    GIF support ............ plugin
    JPEG support ........... plugin (qt)
    PNG support ............ yes (qt)
    zlib support ........... system
    Session management ..... auto
    libudev support ........ yes
    OpenGL support ......... yes (OpenGL ES 2.x)
    OpenVG support ......... no
    XShape support ......... auto
    XVideo support ......... auto
    XSync support .......... auto
    Xinerama support ....... runtime
    Xcursor support ........ runtime
    Xfixes support ......... runtime
    Xrandr support ......... runtime
    Xi support ............. runtime
    MIT-SHM support ........ auto
    FontConfig support ..... auto
    XKB Support ............ auto
    immodule support ....... yes
    GTK theme support ...... auto
    SQLite support ......... plugin (qt)
    OpenSSL support ........ no
    Alsa support ........... yes
    libICU support ......... yes
    PCRE support ........... qt
    Xcb support ............ limited (old version)
Beyond qtbase with Xcb
• Refer earlier steps with eglfs, for building the
  rest of the modules
Executing demos on target with Xcb
• Compared to eglfs approach, since the rendering is
  handled by Xserver, there is no need to set QPA basics
  (for ex. resolution).
• 1) Ensure SGX drivers are installed, and standard GLES2
  3D demos are functional without Qt (refer to below
  link for more details on Xorg build)
• http://processors.wiki.ti.com/index.php/Graphics_SDK
  _Quick_installation_...
• 2) With the Graphics SDK correctly installed, the
  /etc/powervr.ini file will have the correct
  WindowSystem already set.
  WindowSystem=libpvrPVR2D_DRIWSEGL.so
Running further Xcb demos
•   3) Running QML demos:
•   QMLScene can be used to run QML demos, with a command similar to below:
    /bin/qmlscene
    examples/qtdeclarative/qtquick/animation/pathanimation/pathanimation.qml
•   Note that if the SGX accelerated Xserver is not running on the system, the below
    message will be printed, and the demo will not run
•   No platform plugin argument was specified, defaulting to "xcb".
    QXcbConnection: Could not connect to display
    Aborted
•   4) Running standalone demos:
•   Standalone qt5 demos (including qt3d demos, as well as classic qtbase demos like
    animatedtiles) can be invoked as below for Xcb platform (default), after entering
    into the demo folder
•   ./
•   ex, ./collidingmice
•   No arguments are necessary as Xcb platform is the default.
Demo videos/ Binary Qt5 builds for
               ARM
• Available at

• http://gpupowered.org/node/10
• http://gpupowered.org/node/8

• Note – demo videos are captured running on
  DM3730+SGX GPU platform
References/ Follow ups
• http://gpupowered.org/node/10
• http://gpupowered.org/node/8

• http://tigraphics.blogspot.com
• http://twitter.com/tigraphics_twit

More Related Content

What's hot

Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Linaro
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Seung-Hoon Baek
 
Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Linaro
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
Effective service and resource management with systemd
Effective service and resource management with systemdEffective service and resource management with systemd
Effective service and resource management with systemdDavid Timothy Strauss
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VRISC-V International
 
Run Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using YoctoRun Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using YoctoMarco Cavallini
 
Something About Dynamic Linking
Something About Dynamic LinkingSomething About Dynamic Linking
Something About Dynamic LinkingWang Hsiangkai
 
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)Zain Asgar
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
DPDK layer for porting IPS-IDS
DPDK layer for porting IPS-IDSDPDK layer for porting IPS-IDS
DPDK layer for porting IPS-IDSVipin Varghese
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machineAlexei Starovoitov
 
SFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverSFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverLinaro
 
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1Linaro
 
IBM Health Center Details
IBM Health Center DetailsIBM Health Center Details
IBM Health Center DetailsRohit Kelapure
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecturehugo lu
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewLinaro
 
VLANs in the Linux Kernel
VLANs in the Linux KernelVLANs in the Linux Kernel
VLANs in the Linux KernelKernel TLV
 

What's hot (20)

Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
Effective service and resource management with systemd
Effective service and resource management with systemdEffective service and resource management with systemd
Effective service and resource management with systemd
 
Static partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-VStatic partitioning virtualization on RISC-V
Static partitioning virtualization on RISC-V
 
Run Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using YoctoRun Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using Yocto
 
Something About Dynamic Linking
Something About Dynamic LinkingSomething About Dynamic Linking
Something About Dynamic Linking
 
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
No instrumentation Golang Logging with eBPF (GoSF talk 11/11/20)
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
DPDK layer for porting IPS-IDS
DPDK layer for porting IPS-IDSDPDK layer for porting IPS-IDS
DPDK layer for porting IPS-IDS
 
LLVM
LLVMLLVM
LLVM
 
BPF - in-kernel virtual machine
BPF - in-kernel virtual machineBPF - in-kernel virtual machine
BPF - in-kernel virtual machine
 
SFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverSFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driver
 
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
 
IBM Health Center Details
IBM Health Center DetailsIBM Health Center Details
IBM Health Center Details
 
The linux networking architecture
The linux networking architectureThe linux networking architecture
The linux networking architecture
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting Review
 
VLANs in the Linux Kernel
VLANs in the Linux KernelVLANs in the Linux Kernel
VLANs in the Linux Kernel
 

Viewers also liked

박진호 - 우분투 부팅 과정에 대한 이야기 (2012Y07M28D)
박진호 - 우분투 부팅 과정에 대한 이야기 (2012Y07M28D)박진호 - 우분투 부팅 과정에 대한 이야기 (2012Y07M28D)
박진호 - 우분투 부팅 과정에 대한 이야기 (2012Y07M28D)Ubuntu Korea Community
 
Qt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with YoctoQt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with YoctoPrabindh Sundareson
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device driversHoucheng Lin
 

Viewers also liked (6)

Qt5.0.0 eglfs abort issue
Qt5.0.0 eglfs abort issueQt5.0.0 eglfs abort issue
Qt5.0.0 eglfs abort issue
 
박진호 - 우분투 부팅 과정에 대한 이야기 (2012Y07M28D)
박진호 - 우분투 부팅 과정에 대한 이야기 (2012Y07M28D)박진호 - 우분투 부팅 과정에 대한 이야기 (2012Y07M28D)
박진호 - 우분투 부팅 과정에 대한 이야기 (2012Y07M28D)
 
Qt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with YoctoQt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with Yocto
 
全新的Qt5
全新的Qt5全新的Qt5
全新的Qt5
 
Introduction to Qt programming
Introduction to Qt programmingIntroduction to Qt programming
Introduction to Qt programming
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 

Similar to Qt5 on ti processors

Embedding Qt
Embedding QtEmbedding Qt
Embedding QtFSCONS
 
LCU14 209- LLVM Linux
LCU14 209- LLVM LinuxLCU14 209- LLVM Linux
LCU14 209- LLVM LinuxLinaro
 
LCA14: LCA14-412: GPGPU on ARM SoC session
LCA14: LCA14-412: GPGPU on ARM SoC sessionLCA14: LCA14-412: GPGPU on ARM SoC session
LCA14: LCA14-412: GPGPU on ARM SoC sessionLinaro
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205Linaro
 
Xgboost readthedocs-io-en-release 1.3.3
Xgboost readthedocs-io-en-release 1.3.3Xgboost readthedocs-io-en-release 1.3.3
Xgboost readthedocs-io-en-release 1.3.3Angie Ihirwe
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveAlison Chaiken
 
syzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzersyzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzerDmitry Vyukov
 
Containers with systemd-nspawn
Containers with systemd-nspawnContainers with systemd-nspawn
Containers with systemd-nspawnGábor Nyers
 
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo..."Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...Yandex
 
From printk to QEMU: Xen/Linux Kernel debugging
From printk to QEMU: Xen/Linux Kernel debuggingFrom printk to QEMU: Xen/Linux Kernel debugging
From printk to QEMU: Xen/Linux Kernel debuggingThe Linux Foundation
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded LinuxTushar B Kute
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013dotCloud
 
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Docker, Inc.
 
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...Akihiro Hayashi
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1Hajime Tazaki
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeOfer Rosenberg
 

Similar to Qt5 on ti processors (20)

Embedding Qt
Embedding QtEmbedding Qt
Embedding Qt
 
LCU14 209- LLVM Linux
LCU14 209- LLVM LinuxLCU14 209- LLVM Linux
LCU14 209- LLVM Linux
 
LCA14: LCA14-412: GPGPU on ARM SoC session
LCA14: LCA14-412: GPGPU on ARM SoC sessionLCA14: LCA14-412: GPGPU on ARM SoC session
LCA14: LCA14-412: GPGPU on ARM SoC session
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205
 
Xgboost readthedocs-io-en-release 1.3.3
Xgboost readthedocs-io-en-release 1.3.3Xgboost readthedocs-io-en-release 1.3.3
Xgboost readthedocs-io-en-release 1.3.3
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
 
syzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzersyzkaller: the next gen kernel fuzzer
syzkaller: the next gen kernel fuzzer
 
Containers with systemd-nspawn
Containers with systemd-nspawnContainers with systemd-nspawn
Containers with systemd-nspawn
 
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo..."Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...
 
From printk to QEMU: Xen/Linux Kernel debugging
From printk to QEMU: Xen/Linux Kernel debuggingFrom printk to QEMU: Xen/Linux Kernel debugging
From printk to QEMU: Xen/Linux Kernel debugging
 
Porting Android
Porting AndroidPorting Android
Porting Android
 
Onnc intro
Onnc introOnnc intro
Onnc intro
 
App container rkt
App container rktApp container rkt
App container rkt
 
Module 4 Embedded Linux
Module 4 Embedded LinuxModule 4 Embedded Linux
Module 4 Embedded Linux
 
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013Lightweight Virtualization with Linux Containers and Docker | YaC 2013
Lightweight Virtualization with Linux Containers and Docker | YaC 2013
 
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013Lightweight Virtualization with Linux Containers and Docker I YaC 2013
Lightweight Virtualization with Linux Containers and Docker I YaC 2013
 
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
Exploring Compiler Optimization Opportunities for the OpenMP 4.x Accelerator...
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1LibOS as a regression test framework for Linux networking #netdev1.1
LibOS as a regression test framework for Linux networking #netdev1.1
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universe
 

More from Prabindh Sundareson

Synthetic Data and Graphics Techniques in Robotics
Synthetic Data and Graphics Techniques in RoboticsSynthetic Data and Graphics Techniques in Robotics
Synthetic Data and Graphics Techniques in RoboticsPrabindh Sundareson
 
Machine learning in the Indian Context - IEEE talk at SRM Institute
Machine learning in the Indian Context - IEEE talk at SRM InstituteMachine learning in the Indian Context - IEEE talk at SRM Institute
Machine learning in the Indian Context - IEEE talk at SRM InstitutePrabindh Sundareson
 
ICCE Asia 2017 - Program Outline
ICCE Asia 2017 - Program OutlineICCE Asia 2017 - Program Outline
ICCE Asia 2017 - Program OutlinePrabindh Sundareson
 
Call for Papers - ICCE Asia 2017
Call for Papers - ICCE Asia 2017Call for Papers - ICCE Asia 2017
Call for Papers - ICCE Asia 2017Prabindh Sundareson
 
Technology, Innovation - A Perspective
Technology, Innovation - A PerspectiveTechnology, Innovation - A Perspective
Technology, Innovation - A PerspectivePrabindh Sundareson
 
IEEE - Consumer Electronics Trends Opportunities (2015)
IEEE - Consumer Electronics Trends Opportunities (2015)IEEE - Consumer Electronics Trends Opportunities (2015)
IEEE - Consumer Electronics Trends Opportunities (2015)Prabindh Sundareson
 
GFX part 8 - Three.js introduction and usage
GFX part 8 - Three.js introduction and usageGFX part 8 - Three.js introduction and usage
GFX part 8 - Three.js introduction and usagePrabindh Sundareson
 
GFX Part 7 - Introduction to Rendering Targets in OpenGL ES
GFX Part 7 - Introduction to Rendering Targets in OpenGL ESGFX Part 7 - Introduction to Rendering Targets in OpenGL ES
GFX Part 7 - Introduction to Rendering Targets in OpenGL ESPrabindh Sundareson
 
GFX Part 6 - Introduction to Vertex and Fragment Shaders in OpenGL ES
GFX Part 6 - Introduction to Vertex and Fragment Shaders in OpenGL ESGFX Part 6 - Introduction to Vertex and Fragment Shaders in OpenGL ES
GFX Part 6 - Introduction to Vertex and Fragment Shaders in OpenGL ESPrabindh Sundareson
 
GFX Part 5 - Introduction to Object Transformations in OpenGL ES
GFX Part 5 - Introduction to Object Transformations in OpenGL ESGFX Part 5 - Introduction to Object Transformations in OpenGL ES
GFX Part 5 - Introduction to Object Transformations in OpenGL ESPrabindh Sundareson
 
GFX Part 4 - Introduction to Texturing in OpenGL ES
GFX Part 4 - Introduction to Texturing in OpenGL ESGFX Part 4 - Introduction to Texturing in OpenGL ES
GFX Part 4 - Introduction to Texturing in OpenGL ESPrabindh Sundareson
 
GFX Part 3 - Vertices and interactions in OpenGL
GFX Part 3 - Vertices and interactions in OpenGLGFX Part 3 - Vertices and interactions in OpenGL
GFX Part 3 - Vertices and interactions in OpenGLPrabindh Sundareson
 
GFX Part 2 - Introduction to GPU Programming
GFX Part 2 - Introduction to GPU ProgrammingGFX Part 2 - Introduction to GPU Programming
GFX Part 2 - Introduction to GPU ProgrammingPrabindh Sundareson
 
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specificationsGFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specificationsPrabindh Sundareson
 
John Carmack talk at SMU, April 2014 - Virtual Reality
John Carmack talk at SMU, April 2014 - Virtual RealityJohn Carmack talk at SMU, April 2014 - Virtual Reality
John Carmack talk at SMU, April 2014 - Virtual RealityPrabindh Sundareson
 

More from Prabindh Sundareson (20)

Synthetic Data and Graphics Techniques in Robotics
Synthetic Data and Graphics Techniques in RoboticsSynthetic Data and Graphics Techniques in Robotics
Synthetic Data and Graphics Techniques in Robotics
 
Work and Life
Work and Life Work and Life
Work and Life
 
GPU Algorithms and trends 2018
GPU Algorithms and trends 2018GPU Algorithms and trends 2018
GPU Algorithms and trends 2018
 
Machine learning in the Indian Context - IEEE talk at SRM Institute
Machine learning in the Indian Context - IEEE talk at SRM InstituteMachine learning in the Indian Context - IEEE talk at SRM Institute
Machine learning in the Indian Context - IEEE talk at SRM Institute
 
Students Hackathon - 2017
Students Hackathon - 2017Students Hackathon - 2017
Students Hackathon - 2017
 
ICCE Asia 2017 - Program Outline
ICCE Asia 2017 - Program OutlineICCE Asia 2017 - Program Outline
ICCE Asia 2017 - Program Outline
 
Call for Papers - ICCE Asia 2017
Call for Papers - ICCE Asia 2017Call for Papers - ICCE Asia 2017
Call for Papers - ICCE Asia 2017
 
Technology, Innovation - A Perspective
Technology, Innovation - A PerspectiveTechnology, Innovation - A Perspective
Technology, Innovation - A Perspective
 
Open Shading Language (OSL)
Open Shading Language (OSL)Open Shading Language (OSL)
Open Shading Language (OSL)
 
IEEE - Consumer Electronics Trends Opportunities (2015)
IEEE - Consumer Electronics Trends Opportunities (2015)IEEE - Consumer Electronics Trends Opportunities (2015)
IEEE - Consumer Electronics Trends Opportunities (2015)
 
GFX part 8 - Three.js introduction and usage
GFX part 8 - Three.js introduction and usageGFX part 8 - Three.js introduction and usage
GFX part 8 - Three.js introduction and usage
 
GFX Part 7 - Introduction to Rendering Targets in OpenGL ES
GFX Part 7 - Introduction to Rendering Targets in OpenGL ESGFX Part 7 - Introduction to Rendering Targets in OpenGL ES
GFX Part 7 - Introduction to Rendering Targets in OpenGL ES
 
GFX Part 6 - Introduction to Vertex and Fragment Shaders in OpenGL ES
GFX Part 6 - Introduction to Vertex and Fragment Shaders in OpenGL ESGFX Part 6 - Introduction to Vertex and Fragment Shaders in OpenGL ES
GFX Part 6 - Introduction to Vertex and Fragment Shaders in OpenGL ES
 
GFX Part 5 - Introduction to Object Transformations in OpenGL ES
GFX Part 5 - Introduction to Object Transformations in OpenGL ESGFX Part 5 - Introduction to Object Transformations in OpenGL ES
GFX Part 5 - Introduction to Object Transformations in OpenGL ES
 
GFX Part 4 - Introduction to Texturing in OpenGL ES
GFX Part 4 - Introduction to Texturing in OpenGL ESGFX Part 4 - Introduction to Texturing in OpenGL ES
GFX Part 4 - Introduction to Texturing in OpenGL ES
 
GFX Part 3 - Vertices and interactions in OpenGL
GFX Part 3 - Vertices and interactions in OpenGLGFX Part 3 - Vertices and interactions in OpenGL
GFX Part 3 - Vertices and interactions in OpenGL
 
GFX Part 2 - Introduction to GPU Programming
GFX Part 2 - Introduction to GPU ProgrammingGFX Part 2 - Introduction to GPU Programming
GFX Part 2 - Introduction to GPU Programming
 
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specificationsGFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
 
John Carmack talk at SMU, April 2014 - Virtual Reality
John Carmack talk at SMU, April 2014 - Virtual RealityJohn Carmack talk at SMU, April 2014 - Virtual Reality
John Carmack talk at SMU, April 2014 - Virtual Reality
 
GFX2014 OpenGL ES Quiz
GFX2014 OpenGL ES QuizGFX2014 OpenGL ES Quiz
GFX2014 OpenGL ES Quiz
 

Recently uploaded

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 

Recently uploaded (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 

Qt5 on ti processors

  • 1. Qt5 on TI processors
  • 2. Qt5 differences with Qt4 • With the platform plugin approach - the HW "platform" is expected to provide OpenGL ES2, and any other additional HW acceleration on top of that as part of the platform. In essence - with GLES2 - every screen update in Qt5 happens via an OpenGL ES texturing operation, rather than any other means. In addition to this fundamental change, Qt5 brings in another major programming model update - that of QML, Qt3D etc. • A key thing specific to our (SGX based) platforms - With the elimination of the display plugin, Qt5 no longer uses or supports blits via pvr2d or wsegl, and instead directly uses the egl (or window) capabilities exposed by the GL driver. This eliminates immediately a large portion of pvr2d/wsegl version related issues that cropped up in earlier Qt versions. (ex patch for Qt4 in below link is not needed anymore) https://github.com/prabindh/qt- configs/blob/master/qt4.8/001_wsegl2.patch
  • 3. Qt5 platform plugins • The below platform plugins are available in the Qt5 Alpha package. Only "eglfs" and "minimal" are built by default in qtbase. – cocoa eglfs linuxfb minimal openvglite pro qvfb windows directfb kms openkode openwfd qnx xcb
  • 4. Pre-requisites for Qt5 build • - Qt5 alpha source package http://releases.qt-project.org/qt5.0/alpha/ • - TI Graphics SDK (4.05 or later) http://software- dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/g fxsd... http://processors.wiki.ti.com/index.php/AM35x- OMAP35x_Graphics_SDK_Getti... - Recent filesystem (GCC 4.5 or later) - ARM cross Toolchain (GCC 4.5 or later), example from below: http://people.linaro.org/~michaelh/incoming/binaries/
  • 5. Configuring Qt5 - eglfs • - a linaro toolchain (linux-arm-gnueabi-) - sgxconfiguro is used (package config for TI Graphics SDK - egl and x11) https://github.com/prabindh/sgxconfiguro - force-pkg-config is used • If this does not seem clear, the older tried-and-tested-method of specifying all possible (and needed) paths in the qmake.conf as below will also work : • https://github.com/prabindh/qt-configs/tree/master/qt5.0_mar2012 • The below method adopts the first approach and uses the standard Qt5 supplied linux-arm-gnueabi-g++ mkspec without change • $cd qtbase $export PATH=/opt/linaro/gcc-linaro-arm-linux-gnueabi-2012.03- 20120326_linux/bin:/home/prabindh/work1/arm-qt5-tar/qt-everywhere- opensource-src-5.0.0/qtbase/bin: $export PKG_CONFIG=./x86-cross-ubuntu-pkg-config $./configure -prefix /home1/prabu/qt5_install -release -make libs -xplatform linux- arm-gnueabi-g++ -opengl es2 -confirm-license -opensource -no-xcb -no-wayland - force-pkg-config -make examples -make demos -verbose
  • 6. Sample config log • Debug .................. no QtDBus module .......... no QtConcurrent code ...... yes QtGui module ........... yes QtWidgets module ....... yes JavaScriptCore JIT ..... To be decided by JavaScriptCore Declarative debugging ...yes STL support ............ yes PCH support ............ yes iWMMXt support ......... no NEON support ........... yes IPv6 ifname support .... yes getaddrinfo support .... yes getifaddrs support ..... yes Accessibility .......... yes NIS support ............ yes CUPS support ........... no Iconv support .......... yes Glib support ........... yes GStreamer support ...... no PulseAudio support ..... no Large File support ..... yes GIF support ............ plugin JPEG support ........... plugin (qt) PNG support ............ yes (qt) zlib support ........... yes Session management ..... auto libudev support ........ no OpenGL support ......... yes (OpenGL ES 2.x) OpenVG support ......... no XShape support ......... auto XVideo support ......... auto XSync support .......... auto Xinerama support ....... runtime Xcursor support ........ runtime Xfixes support ......... runtime Xrandr support ......... runtime Xi support ............. runtime MIT-SHM support ........ auto FontConfig support ..... auto XKB Support ............ auto immodule support ....... yes GTK theme support ...... auto SQLite support ......... plugin (qt) OpenSSL support ........ no Alsa support ........... no libICU support ......... no PCRE support ........... qt Xcb support ............ no Xrender support ........ no EGLFS support .......... yes
  • 7. Beyond qtbase • After configure, make && make install are to be done. This is important, as qmake needs to be in the install path. • Steps to build Qt3D : • To build Qt3D, in addition to qtbase also need to build the below: • qtjsbackend (has v8) qtdeclarative qt3d • To build the above, enter the directory, then perform (assuming qmake is in the path as specified earlier) $ qmake && make && make install
  • 8. Executing demos on target • After installing the above build on to target, there are several changes from the point of view of Qt4 users, for getting the demos to work. • 1) Configure resolution of the screen for Qt • If screen resolution is 16 bpp (RGB565) export QT_QPA_EGLFS_DEPTH=16 • edit: If screen resolution is 24 bpp (RGB888) export QT_QPA_EGLFS_DEPTH=24 • If this step is not performed, any application running on eglfs platform will abort, with a message as below: • "Initialized display 1 4 Cant find EGLConfig, returning null config Could not create the egl surface: error = 0x3005" Abort
  • 9. Running the Demos with eglfs • 2) Ensure SGX drivers are installed, and standard GLES2 3D demos are functional without Qt • 3) There is no need anymore to set /etc/powervr.ini to QWS library (no such library exists in Qt5) making it simpler to run. Qt5 works with both FRONT and FLIP modes (as of Qt5 Alpha) with "eglfs". • 4) Running QML demos: • QMLScene can be used to run QML demos, with a command similar to below: /bin/qmlscene examples/qtdeclarative/qtquick/animation/pathanimation/pathanimation .qml -platform eglfs • 5) Running standalone demos: • Standalone qt5 demos (including qt3d demos, as well as classic qtbase demos like animatedtiles) can be invoked as below for eglfs platform plugin • <demo> -platform eglfs
  • 10. Qt5 with Xcb • What is Xcb ? • From xcb.freedesktop.org – The X protocol C-language Binding (XCB) is a replacement for Xlib featuring a small footprint, latency hiding, direct access to the protocol, improved threading support, and extensibility.
  • 11. Configuring with Xcb • $cd qtbase $export PATH=/opt/linaro/gcc-linaro-arm-linux- gnueabi-2012.03- 20120326_linux/bin:/home/prabindh/work1/arm-qt5- tar/qt-everywhere-opensource-src-5.0.0/qtbase/bin: $export PKG_CONFIG=./x86-cross-ubuntu-pkg-config $./configure -prefix /home1/prabu/qt5_xcb_install - release -make libs -xplatform linux-TIarmv7-sgx-g++ - opengl es2 -confirm-license -opensource -xcb -no- wayland -force-pkg-config -make examples -make demos -verbose
  • 12. Configure logs with Xcb • Build .................. libs examples demos Configuration .......... cross_compile release shared dll qpa largefile stl precompile_header neon pcre minimal-config small-config medium-config large-config full-config fontconfig libudev evdev xlib xrender xcb-xlib accessibility egl eglfs opengl opengles2 qpa reduce_exports reduce_relocations clock-gettime clock-monotonic mremap getaddrinfo ipv6ifname getifaddrs inotify png system-freetype system-zlib nis iconv glib xcb alsa icu concurrent audio-backend v8 v8snapshot release Debug .................. no QtDBus module .......... no QtConcurrent code ...... yes QtGui module ........... yes QtWidgets module ....... yes JavaScriptCore JIT ..... To be decided by JavaScriptCore Declarative debugging ...yes STL support ............ yes PCH support ............ yes iWMMXt support ......... no NEON support ........... yes IPv6 ifname support .... yes getaddrinfo support .... yes getifaddrs support ..... yes Accessibility .......... yes NIS support ............ yes CUPS support ........... no Iconv support .......... yes Glib support ........... yes GStreamer support ...... no PulseAudio support ..... no Large File support ..... yes GIF support ............ plugin JPEG support ........... plugin (qt) PNG support ............ yes (qt) zlib support ........... system Session management ..... auto libudev support ........ yes OpenGL support ......... yes (OpenGL ES 2.x) OpenVG support ......... no XShape support ......... auto XVideo support ......... auto XSync support .......... auto Xinerama support ....... runtime Xcursor support ........ runtime Xfixes support ......... runtime Xrandr support ......... runtime Xi support ............. runtime MIT-SHM support ........ auto FontConfig support ..... auto XKB Support ............ auto immodule support ....... yes GTK theme support ...... auto SQLite support ......... plugin (qt) OpenSSL support ........ no Alsa support ........... yes libICU support ......... yes PCRE support ........... qt Xcb support ............ limited (old version)
  • 13. Beyond qtbase with Xcb • Refer earlier steps with eglfs, for building the rest of the modules
  • 14. Executing demos on target with Xcb • Compared to eglfs approach, since the rendering is handled by Xserver, there is no need to set QPA basics (for ex. resolution). • 1) Ensure SGX drivers are installed, and standard GLES2 3D demos are functional without Qt (refer to below link for more details on Xorg build) • http://processors.wiki.ti.com/index.php/Graphics_SDK _Quick_installation_... • 2) With the Graphics SDK correctly installed, the /etc/powervr.ini file will have the correct WindowSystem already set. WindowSystem=libpvrPVR2D_DRIWSEGL.so
  • 15. Running further Xcb demos • 3) Running QML demos: • QMLScene can be used to run QML demos, with a command similar to below: /bin/qmlscene examples/qtdeclarative/qtquick/animation/pathanimation/pathanimation.qml • Note that if the SGX accelerated Xserver is not running on the system, the below message will be printed, and the demo will not run • No platform plugin argument was specified, defaulting to "xcb". QXcbConnection: Could not connect to display Aborted • 4) Running standalone demos: • Standalone qt5 demos (including qt3d demos, as well as classic qtbase demos like animatedtiles) can be invoked as below for Xcb platform (default), after entering into the demo folder • ./ • ex, ./collidingmice • No arguments are necessary as Xcb platform is the default.
  • 16. Demo videos/ Binary Qt5 builds for ARM • Available at • http://gpupowered.org/node/10 • http://gpupowered.org/node/8 • Note – demo videos are captured running on DM3730+SGX GPU platform
  • 17. References/ Follow ups • http://gpupowered.org/node/10 • http://gpupowered.org/node/8 • http://tigraphics.blogspot.com • http://twitter.com/tigraphics_twit