QT5 eglfs problem on embedded linux (TI am355x evm starter kit)

Hello everybody,
I’ve just cross-compiled QT 5.2.1 for ARM and I am using it on a TI AM335x EVM (Starter Kit) board.

I’de like to use the eglfs platform, but unluckily it shows some artifacts on the screen…

I just made a simple program for showing the problem and captured some photos of my screen. The program basically draws a set of vertical black and white lines (alternated).

If I run QT on platform linuxfb (that is I launch my program passing “-platform linuxfb” on command line) then the software works fine… Here is a photo of my screen:
http://it.tinypic.com/r/2lks9ag/8

If instead I run QT on platform eglfs (that is I launch my program passing “-platform eglfs” on command line) then I have some artifacts near the center of screen (it seems that some vertical lines are “missing” or “swapped”)… Here are two photos of my screen:
http://it.tinypic.com/r/2i6m4xc/8
http://it.tinypic.com/r/2qur9r8/8

Any idea about that?

Furthermor it seems that on the same board QT 5.2.1 is slower than QT 4.8.x (using QWS)… how is it possible? Is there some optimization that can be turned on while compiling QT 5.x?

Regards,
/Morix

Hello everybody,
I’ve just cross-compiled QT 5.2.1 for ARM and I am using it on a TI AM335x EVM (Starter Kit) board.

I’de like to use the eglfs platform, but unluckily it shows some artifacts on the screen…

I just made a simple program for showing the problem and captured some photos of my screen. The program basically draws a set of vertical black and white lines (alternated).

If I run QT on platform linuxfb (that is I launch my program passing “-platform linuxfb” on command line) then the software works fine… Here is a photo of my screen:
http://it.tinypic.com/r/2lks9ag/8

If instead I run QT on platform eglfs (that is I launch my program passing “-platform eglfs” on command line) then I have some artifacts near the center of screen (it seems that some vertical lines are “missing” or “swapped”)… Here are two photos of my screen:
http://it.tinypic.com/r/2i6m4xc/8
http://it.tinypic.com/r/2qur9r8/8

Any idea about that?

A few months ago, I managed to get QT5.1.1 running on Robert Nelson’s V3.12 kernel and it worked fine. I was able to run the 3D demo apps and the performance was very good (~30fps). I was using EGLFS platform

Regards,
John

Hi John,
thanks for your reply…

At the end I fixed the problem simply performing my painting from within a QGLWidget instead of a standard QWidget.

I don’t know what is the root cause of the problem… but probably there’s something wrong in QWidget when it works on EGLFS platform on AM335x video driver.

Regards,
/Morix

Hi,

Would you be able to describe in detail the process you used to build and run QT 5.2, and the SGX 3D graphics accelerator drivers? If not, could you point me to the instructions you used?

Thanks.
Dennis Cote

Hi Dennis,
basically I copied

mkspecs/linux-arm-gnueabi-g++

to

mkspecs/linux-arm-gnueabihf-g++

and then modified

`
mkspecs/linux-arm-gnueabihf-g++/qmake.conf

`

in order to point to my cross-compilation tool-chain (the one included in TI AM335x EVM SDK 6.00.00).

Then I made:

`
./configure -prefix /opt/qt5 -opensource -confirm-license -platform linux-g++ -no-icu -no-cups -no-nis -no-dbus -no-glib -no-pch -no-accessibility -no-gtkstyle -no-xcb -eglfs -no-directfb -xplatform linux-arm-gnueabihf-g++ -opengl es2 -nomake examples -nomake tests -v

`

Then:

make && make install

I haven’t do anything special about SGX drivers, using the stock one provided by TI pre-built images. Do you think that I should recompile somehow SGX drivers? Why?

Then I just setup QT Creator for using my just-built QT version with the toolchain coming from TI SDK. Then on the target board I launch the application simply exporting the following variables:

`
export LD_LIBRARY_PATH=/opt/qt5/lib
export QT_PLUGIN_PATH=/opt/qt5/lib/plugins

`

and then I launch my application (testapp) specifying the QPA backend to be used:

`
$ ./testapp -platform eglfs

`

That’s it! Do you need some other info?

Thanks for the info. I didn’t notice you were using the TI EVM and their 3.2 kernel. I though you were using the BBB with one of the newer 3.8 kernels. My understanding is that the SGX drivers don’t work with the current BBB kernels.

Dennis Cote

I haven’t do anything special about SGX drivers, using the stock one provided by TI pre-built images. Do you think that I should recompile somehow SGX drivers? Why?

Thanks for the info. I didn’t notice you were using the TI EVM and their 3.2 kernel. I though you were using the BBB with one of the newer 3.8 kernels. My understanding is that the SGX drivers don’t work with the current BBB kernels.

I have SGX working with Robert Nelson’s V3.12 kernel and I believe that SGX support was recently added to his V3.8 kernel.

Regards,
John