Showing posts with label qt. Show all posts
Showing posts with label qt. Show all posts

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, 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

Wednesday, February 29, 2012

8% CPU - Ultrasound viewer with v3dfx-base

This post shows the benefit of using v3dfx-base in a complex end-user application - An Ultrasound Image Viewer.

This Qt application loads a real Ultrasound file consisting of 128 layers of captured images, renders using v3dfx-base in a QGraphicsView using V3dfxGLScene, blends all 128 layers of them to recreate the final image. With a regular glTexImage2D approach, this needs 100% CPU loading. With the v3dfx-base, this needs < 8% CPU loading on SGX530@200MHz (Beaglebone/3730 class). This show-cases the powerful capabilities of the SGX with image/video streaming use-cases in both ARGB and YUV modes.


Screenshot:

https://github.com/prabindh/v3dfx-base/blob/master/test/platforms/qt_ultrasound/Photo0039.jpg

README, and complete code:

https://github.com/prabindh/v3dfx-base/tree/master/test/platforms/qt_ultrasound

Please see earlier blog post for introduction to v3dfx-base.

Thursday, December 15, 2011

Threaded openGL in Qt 4.8 ?

There is a lot of buzz around news on multi-threaded support for OpenGL in Qt4.8. What it really means - is that the Qt classes have been made thread-safe, rather than the openGL functions themselves. It appears that lot of the work has been done on X11/Wayland, so need to be tested on the Qt/E QPA, to ensure it works on the native framebuffer as well.

More information on this below,

http://labs.qt.nokia.com/2011/06/03/threaded-opengl-in-4-8/

Information on building Qt on TI platforms is below,

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

Thursday, July 7, 2011

Running Qt+GLES on OMAP4

Certain versions of OMAP4 kernel may not enable Alpha channel by default. You can check this out by running fbset on the target:

root@omap4430-panda:/opt/targetfs# fbset

mode "1280x720-60"
# D: 74.250 MHz, H: 45.000 kHz, V: 60.000 Hz
geometry 1280 720 1280 720 32
timings 13468 110 220 5 20 40 5
accel false
rgba 8/16,8/8,8/0,0/0
endmode


This causes an initialization failure in Qt's PowerVR graphics driver plugin with an error:
/dev/fb0: could not find a suitable PVR2D pixel format

The current plugin code supports only RGB565, ARGB4444 and ARGB32 formats. The fix is to set the Frame Buffer format to ARGB32

root@omap4430-panda:~#./fbset -rgba 8/16,8/8,8/0,8/24
root@omap4430-panda:~# ./fbset

mode "1280x720-60"
# D: 74.250 MHz, H: 45.000 kHz, V: 60.000 Hz
geometry 1280 720 1280 720 32
timings 13468 110 220 5 20 40 5
accel false
rgba 8/16,8/8,8/0,8/24
endmode

If the default fbset command doesn't have any effect (i.e. Alpha is still not enabled), download fbset v2.1, cross compile and run on target

Sunday, March 6, 2011

Building Qt with non-codesourcery toolchain, and Qt commercial

Chanuei has written a good article on Building Qt for a different toolchain (not code sourcery), and a commercial version of Qt.

http://blog.csdn.net/chanuei/archive/2011/03/05/6225689.aspx

A minor point to note is, though he has referred to all libraries generated and supplied by the default TI build system as part of the SDK (that have the postfix "E" to the name, ex libQtGuiE.so) as "Evaluation", actually it stands for "Embedded". This follows the standard Angstrom/OE naming convention. Also, customers are free to use the application binaries generated out of the TI build in their proprietary applications.

Good work there,

Wednesday, December 29, 2010

Drawing Gradients in 12 different ways on TI Graphics SDKs !

Gradients are very critical for enabling rich user interfaces to provide a pseudo 3D effect. This short update provides an overview of all the Graphics methods supported on various TI Graphics offerings, including HTML5, Qt, AS3, WinCE and Android.

Sl No

Drawing API and Web Link

Rendering Model

TI Implementation

1

Usage in Webkit (CSS3 based)




http://webkit.org/blog/175/introducing-css-gradients/

Immediate

Available in Qt, and Angstrom/OE





2

Usage in Mozilla (CSS3 based)


Available in Qt, and Angstrom/OE


https://developer.mozilla.org/en/Using_gradients

Immediate






3

Qt Gradients in 4.7 with QML


Available in Qt, and Angstrom/OE


http://doc.qt.nokia.com/4.7-snapshot/qml-gradient.html

Immediate






4

Qt Gradients with the Qt non-QML API


Available in Qt, and Angstrom/OE


http://processors.wiki.ti.com/index.php/XgxPerf_HMI#Article_2-_Using_Gradients_and_Masks_in_Qt_for_Industrial_HMI_development

Immediate






5

Gradients with ActionScript 3 in Flash10


http://focus.ti.com/docs/toolsw/folders/print/adobeflash-a8.html


http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7dd7.html

Deferred






6

Gradients with Cairo

Immediate

Available in Angstrom/OE


http://cairographics.org/documentation/cairomm/reference/classCairo_1_1Gradient.html







7

Gradient configuration for widgets in GTK

N.A

Available in Angstrom/OE


http://library.gnome.org/devel//gtk/2.91/GtkCssProvider.html







8

Gradients with Clutter (OpenGL/ES based. OpenGL/ES itself does not have direct Gradient support, so is a mixture of Vertex colours, Shaders, or Texture blending)

Deferred by nature of the OpenGL/ES engine implementation in TI SOCs

Available in Angstrom/OE


http://lists.o-hand.com/clutter/1787.html







9

Gradients with .NET (including the Compact Framework supported in WinCE)

Immediate (Deferred mode available for some)

http://focus.ti.com/docs/toolsw/folders/print/wincesdk-a8.html


http://msdn.microsoft.com/en-us/library/s6fxh562%28v=vs.71%29.aspx







10

Gradients with GDI

Immediate (Deferred mode available for some)

http://focus.ti.com/docs/toolsw/folders/print/wincesdk-a8.html


http://msdn.microsoft.com/en-us/library/cwka53ef.aspx







11

Gradients with Inkscape for SVG

N.A

http://inkscape.org/


http://wiki.inkscape.org/wiki/index.php/Advanced_Gradients







12

Gradients in Android Graphics

Immediate

http://code.google.com/p/rowboat/


http://developer.android.com/reference/android/graphics/LinearGradient.html




Tools and Benchmark examples with source code for CSS3, Flash and Qt

1. XgxPerf samples for Gradients and source code for complex examples with SVG Gradients

https://gforge.ti.com/gf/download/docmanfileversion/256/4266/xgxperf_svn78.tar.gz

2. GUIMark2 comparison of Flex and HTML5 performance

http://www.craftymind.com/guimark2/

3. Online CSS3 Gradient code generator

http://gradients.glrzad.com/

4. Online ActionScript3 based Gradient code generator

http://active.tutsplus.com/tutorials/actionscript/how-to-create-gradients-with-actionscript/

Monday, December 27, 2010

Developing Vector Graphics based HMIs with Qt/ Xgxperf on TI platforms

Vector based drawing (loosely called Vector Graphics) has been the foundation of high quality graphics rendering in many UI applications like Human Machine Interfaces in Industrial Automation. But, VG rendering especially animation is complex, and can take significant CPU resources. This new Wiki article describes how Qt can be extended to provide bitmap like flexibility for a fast UI experience, with the superior quality of rendering of VG images - to create a professional HMI appearance. Full source code and screenshots are provided.

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

A PDF version is also available at,

http://www.slideshare.net/prabindh/qt-vector

+ An update:
The last Flash10 update on TI platforms is available at,

http://www.slideshare.net/prabindh/flash10-on-ti-platforms-embedded-processing-tech-days

Sunday, August 8, 2010

Tuesday, May 25, 2010

Performance Profiling of GUIs on OMAP3

Na2dperf allows user to create and measure performance parameters of specific
end use-cases for Graphical UIs built on TI SOCs.

It also allows user to create dynamic libraries (that export the required interfaces) that can be dynamically loaded into the framework and performance to be measured without writing extra code.

The framework measures the below 3 key parameters for any UI developer:

- First screen show time
- Each screen update time
- Average CPU load during the run

The application allows the developer to pass in various configuration parameters of the UI - type and number of widgets and their detailed properties including alpha settings, frame rate control, and type of textures and backends to be used.

Validated with lighthouse/Qt 4.7.0 on OMAP3 Linux and Windows

Grab the code via SVN or Browse the code at,

https://gforge.ti.com/gf/project/gleslayer/scmsvn/?action=browse&path=%2Ftrunk%2FPackages%2FOMAP3_Graphics_SDK%2Fna2dperf%2F

Coming next, Android support...