Monday, July 21, 2014

Qt for small systems

Qt has gain a lot of features, but most of them are targeted for cpu/gpu's that are very powerful. I have been working on a small windowing system with Qt on linux framebuffer. I hope it will provide a way to fully us widgets again. The problem with the linuxfb plugin is that it doesn't work with popup windows etc. With a windowing system you can use it just like you could with the old QWS system. The plan is to do something with a very low footprint, making it useful on ~200Mhz systems with limited amount of ram. EDIT.. It seems like you can run Wayland on pure framebuffer , I have completely missed that progress. I will try it out , and if it works well with QtWayland , I will go with that. But the thing that I am writing is fun so I will continue it anyway ! :)

Monday, February 17, 2014

My thoughts about Qt on the i.MX series

I have been tinkering with Qt on the i.MX6/53/51 platforms for some time now. It has been quite an adventure. I started up with a plain QWS on
the i.MX51. I felt that the drawing was much faster than on X11 and I found a old application , Xqt. Xqt is a Xwindows server for running on Qt.
It was designed for Qtopia running on Zaurus and friends. It was written for Qt2 so it needed some porting efforts to be able to run on Qt4.
Xqt was for me a big win. Xwindows actually rendered faster on top on Qt.


On the photo above you can see Gnome running in QWS on a i.MX51 based computer made by Genesi (http://www.genesi-usa.com)
The next step for me was to get GLES working on Qt, My first effort was to create a QWS plugin that rendered all its graphics with
GLES. It also provided a QGlscreen , so the hello_es example worked. The problem with QWS and GLES is that you only can use
GLES in fullscreen mode ,which means that there is no way to add widgets in a normal way. I did not like that fact .
So I did a "hack" to be able to show "hello_es" as it should be displayed:



Some of you participated in a beta test of this. Unfortunately It had some problems and after some testing I decided not to release it.

So all work done that far was on MX51/53. What about MX6?

When I got my hand on a i.MX6 board , Qt4 was on its way out and Qt5 was stepping in. Qt5 comes with EGLFS QPA backend
which makes it easy to display GL content on the framebuffer. The biggest issue I have with Qt5 is the lack of support for widgets
on a embedded display. The only way I could control GL content on a framebuffer display was with QtQuick /Quick3d.

So what's next?

My current plan is to focus on getting widget/c++ back to framebuffer displays. If you have tried to use the LINUXFB backend
in Qt5 you know what I mean. A alternative is to use the DirectFB backend , but it behaves almost as bad. I have customers
using Qt on systems that don't use EGL and for the moment I can't recommend them to use Qt5 , which is very sad.