Showing posts with label qt5. Show all posts
Showing posts with label qt5. Show all posts

Tuesday, August 6, 2013

Qt5 with KMS on Jacinto6 / OMAP5 with GLSDK 6.01.00.01

The latest release of Qt5 with KMS support is available on OMAP5 and Jacinto6 platforms. The main features validated are OpenGLES 2.0, Neon and KMS.

The example applications tested are :
  • opengl/hellowindow
  • opengl/paintedwindow
  • gui/analogclock
  • widgets/animation/moveblocks
  • effects/blurpicket
Pre-Requisites
  1. OMAP5 uEVM / Jacinto6 EVM
  2. Qt5.1.0 release
  3. Linaro GCC 4.7-2013.03 ARM Linux gnueabi hard float cross compiler toolchain
  4. Ensure that the board boots successfully and the terminal is visible on the display
  5. Ensure that kmscube application runs on the board
Run Qt5 example applications
    Target filesystem based on TI GLSDK 6.01.00.01 with prebuilt Qt5 binaries are available at:
    https://gforge.ti.com/gf/download/docmanfileversion/320/6656/ti-glsdk_omap5-uevm_6_01_00_01.tar.gz


    The Qt5 installation is at /usr/local/qt5.1 on this file system. The stock GLSDK 6.01.00.01 filesystem has missing dependencies for building and running Qt5. These libraries and header files have been added to the file system shared above.
    • Untar the filesystem to the second partition on your SD card. This will replace your current filesystem on the SD card. The same filesystem can be used for both OMAP5 and Jacinto6
    • Create a soft link to satisfy Qt5 build time configurations
    target # mkdir -p /home1/anand/targetnfs/ti-glsdk_omap5-uevm_6_01_00_01 
    target # cd /home1/anand/targetnfs/ti-glsdk_omap5-uevm_6_01_00_01 
    target # ln -s /usr usr
    • Initialize SGX as follows:
    target # pvrsrvinit
    • Set the loader library path
    target # export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/qt5.1/lib
    • Run the example Qt5 application using kms platform
    target # cd /usr/local/qt5.1/examples/opengl/hellowindow
    target # ./hellowindow -platform kms
    Note
    In step 1, if you want to retain your own filesystem, copy /usr/local/qt5.1 from the prebuilt filesystem to your filesystem on SD card. In addition, add the missing dependencies by checking the differences in /lib, /usr/lib and /usr/include between the prebuilt filesystem and your filesystem.

    Building Qt5


    The mkspecs that configure Qt for OMAP5/Jacinto6 are available at:
    https://gitorious.org/tigraphics/qtsupport

    • Untar Qt5.1.0 source
    • Add the Qt mkspecs directory linux-omap5-g++ into $QT/qtbase/mkspecs
    https://gitorious.org/tigraphics/qtsupport/trees/master/qt5-omap5-kms/linux-omap5-g++
    host $ cd $QTDIR/qtbase
    host $ patch -p1 < 0001-Remove-GBM_BO_FORMAT-and-use-GBM_FORMAT-directly.patch
    • Configure Qt
    host $ cd $QTDIR
    host $ ./configure -prefix /home1/anand/targetnfs/ti-glsdk_omap5-uevm_6_01_00_01/usr/local/qt5.1 -release -make libs -make examples -nomake tools -xplatform linux-omap5-g++ -opengl es2 -confirm-license -opensource -no-xcb -no-pch -verbose -kms -sysroot /home1/anand/targetnfs/ti-glsdk_omap5-uevm_6_01_00_01 -v -no-icu
    • This configures Qt for the following:
      • Release mode
      • Libraries and Examples are built, but tools are not built
      • Cross compiler platform is linux-omap5-g++
      • OpenGL ES2
      • XCB, PCH, ICU are disabled
      • KMS is enabled
      • Sysroot is set to /home1/anand/targetnfs/ti-glsdk_omap5-uevm_6_01_00_01. All libraries and header files are picked up relative to this path
      • Prefix is set to /home1/anand/targetnfs/ti-glsdk_omap5-uevm_6_01_00_01/usr/local/qt5.1. After building, Qt is installed to this path
      • Side effect of having the Qt prefix is that we need to create a symbolic link on the target filesystem that ensures that the prefix is valid even on the target
    • Build Qt by running "make" 
    • Install Qt by running "make install"
    TODO
    • Execution of certain applications give a PVR map error when run with KMS resulting in a blank screen
    • evdevmouse and evdevkeyboard plugins have some problems
    • Cursor support is not available
    • Webkit2 is not validated
    • Testing of features and example applications other than those listed at the top

    Friday, June 28, 2013

    Qt5 with BuildRoot on Beagle, with TI Graphics SDK

    The recent work with the Buildroot team has produced good results, with the Graphics SDK recipes, and Qt5 patches being used in Buildroot, and functional on Beagle.

    http://permalink.gmane.org/gmane.comp.lib.uclibc.buildroot/61974

    A video of the Qt5.0.2 based demos is shown by Thomas below:

    http://free-electrons.com/~thomas/pub/opengl-beagle.mp4

    Per Thomas, the RFC will soon be made a patch to be included into the official Buildroot tree.

    Thursday, May 23, 2013

    Qt5 with BuildRoot on AM processors, with 4.09.00.01 Graphics SDK

    Wojciech Sleńska reports Qt5 with eglfs, on AM processors, with TI Graphics SDK 4.09.00.01 package, with Buildroot. Toolchain is the default Arago toolchain.
     
    http://lists.busybox.net/pipermail/buildroot/2013-May/072593.html

    For other distributions like Arago,an earlier entry was made in http://gpupowered.org/node/22



    Friday, April 12, 2013

    Xgxperf on Qt5

    Xgxperf was created earlier on Qt4 as a C++ based performance benchmarking toolkit, in addition to providing HMI templates using Vector Graphics.


    Screenshot of the Industrial HMI screen is below (without animation):



    This has now been ported to Qt5, and is available at,

    https://github.com/prabindh/xgxperf

    More information on Xgxperf HMI toolkit is at,

    http://processors.wiki.ti.com/index.php/XgxPerf_HMI

    Monday, April 8, 2013

    Qt5 (minimal) on Beaglebone with Yocto

    While eglfs works for most Qt5 applications on AM33x EVM/ derived boards, Yocto integration has not been done so far. This post introduces changes to get Qt5 built for Beaglebone using Yocto. Performance is not yet tuned, and all platform plugins are not yet available, but this will help teams starting on Beaglebone and related boards with Yocto. The output is a core-image-minimal Yocto image, with Qt5 (qtbase) example and dependencies added to the image.

    Introduction:
    To build Qt5 for Beaglebone, the below repos are needed:
    poky
    meta-oe
    meta-ti
    meta-qt5

    Downloading the configuration files:
    git clone git://git.yoctoproject.org/poky
    cd poky
    git clone https://github.com/openembedded/meta-oe
    git clone git://git.yoctoproject.org/meta-ti
    git clone git@github.com:prabindh/meta-qt5.git

    Further information and next steps at,
    http://gpupowered.org/node/20

    TODO:
    - fonts are not installed to (image) target, so text is garbled
    - eglfs with virtual/gles2 configuration update

    - Qt 5.1 update
    - webkit update
    - Beaglebone itself runs only at 250 MHz (!) in the default Yocto core-image-minimal. To update with TI scripts for a better performance profile

    Tuesday, March 19, 2013

    Moksha - HTML5/CSS with Snowshoe/Qt5.0.1

    Qt5.0.1 was released recently, and Qt5.0.1, and its Webkit2 build are now available for testing on TI platforms. To show-case the capability of HTML5 based Data visualisation on TI platforms with Webkit2, a simple CSS layout has been created to be readily used for evaluation in compliant Browsers.

    Snowshoe, a Qt5 QML based browser has been used for this experiment. CSS, SVG, and Webkit specific optimisations are used. AM335x EVM was the HW platform used.

    Video snapshot of the HTML5 capabilities, using the Moksha layout is available at below link:

    http://www.youtube.com/watch?v=nztgCone4jI


    Detailed information on running the demo are available at,

    http://gpupowered.org/node/19

    Snowshoe Patches, and HTML/CSS layout files are available at,

    https://github.com/prabindh/moksha


    Sunday, February 17, 2013

    Qt5.0.0 eglfs "could not create the egl surface 0x3003" - Fix details

    With the final Qt5.0 release, customers using NULL window system for the SGX drivers have reported issues with Qt5.0.0 eglfs default plugin. This results in loss of critical functionality like performance, no input event support, no cursor support. This does not affect Xcb/Weston users. Details and fix information below.

    Symptom of the issue:

    Any Qt5 application started with "-platform eglfs" or QT_QPA_PLATFORM set to eglfs, will throw below error and exit.

    EGL Error : Could not create the egl surface: error = 0x3003                     Aborted

    Root-cause, and How to fix:

    Refer below for the QTBUG #id, and the patch itself that applies on Qt5 sources:

    https://github.com/prabindh/qt-configs/blob/master/qt5_1.0_Feb13/

    Result

    Customers should be able to use eglfs like in Qt5 Alpha, with cursor/touch/keyboard support, as described in below post:

    http://www.gpupowered.org/node/15



    Saturday, January 5, 2013

    Qt 5.0.0 Final (Dec 2012) - Available on TI Linux platforms with SGX

    Latest version of Qt5 is now available on TI platforms. Configuration of Qt5 can be done with the conf files available at the below tree.

    https://github.com/prabindh/qt-configs/tree/master/qt5_1.0_Dec12

    UPDATE FEB 2013: refer patch for eglfs at http://tigraphics.blogspot.in/2013/02/qt500-eglfs-could-not-create-egl.html

    Steps:

    - Download the latest Qt5 archive from

    http://releases.qt-project.org/qt5/5.0.0/single/qt-everywhere-opensource-src-5.0.0.tar.gz

    - Ensure a working root-filesystem, and a corresponding tool-chain is available for cross-compiling.  A sample (Ubuntu based) target root filesystem is provided at

    https://gforge.ti.com/gf/download/docmanfileversion/301/6353/Browser-21-Dec.tar.gz

    - Extract the Qt5  archive

    - Download the qt5 patches from the github tree into the qt5 source archive, make updates to match the target paths, and configure using the steps mentioned in the README at

    https://github.com/prabindh/qt-configs/blob/master/qt5_1.0_Dec12/README

    Result of a successful configure should enable  NEON, GLES2, ICU, linuxfb, eglfs. ICU is needed for Webkit to be built. Post-configure, a regular make can be done.

    After building qtbase, additional packages necessary for qt3d can be built - qtdeclarative, qtjsbackend.

    Note: Previous posts on Qt5 are below:

    Beta2 - http://tigraphics.blogspot.in/2012/11/qt5-beta2-on-ti-platforms-with-opengles2.html

    Beta1 - http://tigraphics.blogspot.in/2012/10/qt5-beta1-on-ti-platforms-with-opengles2.html

    Alpha - http://tigraphics.blogspot.in/2012/04/qt5-alpha-status-part-2-with-xcb.html

    Saturday, November 17, 2012

    Qt5 Beta2 on TI platforms with OpenGLES2

    Qt5 Beta2 release is now available and build tested with Graphics SDK. The package can be downloaded from,

    http://releases.qt-project.org/qt5.0/beta2/

    Build patches are available at below link (no change from Beta1),

    https://github.com/prabindh/qt-configs

    Qt5 Beta2 - configure and build steps at the below blog post.

    http://gpupowered.org/node/14

    Applicable Platforms - 3730, Beagleboard, BeagleXM, Beaglebone, and other SGX530 based devices.

    A good discussion of issues involved in v8 compilation using this approach is at,

    http://www.mail-archive.com/interest@qt-project.org/msg04497.html

    Sunday, October 7, 2012

    Qt5 Beta1 on TI platforms with OpenGLES2

    Qt5 Beta1 release is now available. The package can be downloaded from,

    http://releases.qt-project.org/qt5.0/beta1/

    Build patches are available at,

    https://github.com/prabindh/qt-configs

    Qt5 Beta1 - configure and build steps at the below blog post.

    http://gpupowered.org/node/14

    Applicable Platforms - 3730, Beagleboard, BeagleXM, Beaglebone, and other SGX530 based devices.

    Saturday, April 7, 2012

    Qt5 Alpha Status - Part 1 - with eglfs

    Qt5 - on TI platforms (part 1) is introduced. See architecture information, configure and build steps, sample screenshots and more at the below blog post.

    http://gpupowered.org/node/8

    Applicable Platforms - 3730, Beagleboard, BeagleXM, Beaglebone, and other SGX530 based devices

    Thursday, April 5, 2012

    Qt5 status

    Qt5 Alpha build released officially

    http://qt-project.org/wiki/Qt-5-Alpha

    Build instructions for TI processors at,

    https://github.com/prabindh/qt-configs

    While performance on regular Qt demos is not expected to improve much, there will be updates on QML based demos using SGX530 following this post.