ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: DirectFB  (Прочитано 5426 раз)

0 Пользователей и 1 Гость просматривают эту тему.

KDM

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 46
DirectFB
« : 19 Февраля, 2013, 12:27:36 »

Пробую собирать DirectFB с помощью Buildroot для Тион270.

Выставлены ключи (взял основные из .config):
BR2_PACKAGE_DIRECTFB=y
BR2_PACKAGE_QT_GFX_DIRECT_FB=y


В собранной КФС файлы относящиеся к DirectFB (явно лишние строки убраны):
# find / -name "*irect*"
/usr/share/directfb-1.4.1
/usr/lib/libdirectfb-1.4.so.0
/usr/lib/libdirectfb.so
/usr/lib/libdirectfb-1.4.so.0.1.0
/usr/lib/libdirect-1.4.so.0.1.0
/usr/lib/libdirect.so
/usr/lib/directfb-1.4-0
/usr/lib/directfb-1.4-0/interfaces/IDirectFBImageProvider
/usr/lib/directfb-1.4-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so
/usr/lib/directfb-1.4-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.o
/usr/lib/directfb-1.4-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so
/usr/lib/directfb-1.4-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.o
/usr/lib/directfb-1.4-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.o
/usr/lib/directfb-1.4-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so
/usr/lib/directfb-1.4-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.o
/usr/lib/directfb-1.4-0/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so
/usr/lib/directfb-1.4-0/interfaces/IDirectFBFont
/usr/lib/directfb-1.4-0/interfaces/IDirectFBFont/libidirectfbfont_dgiff.o
/usr/lib/directfb-1.4-0/interfaces/IDirectFBFont/libidirectfbfont_ft2.so
/usr/lib/directfb-1.4-0/interfaces/IDirectFBFont/libidirectfbfont_ft2.o
/usr/lib/directfb-1.4-0/interfaces/IDirectFBFont/libidirectfbfont_default.o
/usr/lib/directfb-1.4-0/interfaces/IDirectFBFont/libidirectfbfont_dgiff.so
/usr/lib/directfb-1.4-0/interfaces/IDirectFBFont/libidirectfbfont_default.so
/usr/lib/directfb-1.4-0/interfaces/IDirectFBVideoProvider
/usr/lib/directfb-1.4-0/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.o
/usr/lib/directfb-1.4-0/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so
/usr/lib/directfb-1.4-0/systems/libdirectfb_devmem.so
/usr/lib/directfb-1.4-0/systems/libdirectfb_fbdev.o
/usr/lib/directfb-1.4-0/systems/libdirectfb_devmem.o
/usr/lib/directfb-1.4-0/systems/libdirectfb_fbdev.so
/usr/lib/directfb-1.4-0/wm/libdirectfbwm_default.o
/usr/lib/directfb-1.4-0/wm/libdirectfbwm_default.so
/usr/lib/directfb-1.4-0/inputdrivers/libdirectfb_serialmouse.o
/usr/lib/directfb-1.4-0/inputdrivers/libdirectfb_keyboard.o
/usr/lib/directfb-1.4-0/inputdrivers/libdirectfb_serialmouse.so
/usr/lib/directfb-1.4-0/inputdrivers/libdirectfb_keyboard.so
/usr/lib/directfb-1.4-0/inputdrivers/libdirectfb_tslib.so
/usr/lib/directfb-1.4-0/inputdrivers/libdirectfb_linux_input.o
/usr/lib/directfb-1.4-0/inputdrivers/libdirectfb_linux_input.so
/usr/lib/directfb-1.4-0/inputdrivers/libdirectfb_tslib.o
/usr/lib/libdirect-1.4.so.0
/usr/bin/arm-linux-directfb-csource
/usr/bin/arm-linux-directfb-config
#

Запускаю программу:
# /usr/Test1 -qws -display directfb
directfb: driver not found
Aborted
#


Нужно ли ставить какие-либо специфические ключи при компиляции программы Test1 ?
Нужно ли перекомпилировать тулчайн (используется старый, когда флаги для DirectFB не выставлялись) для поддержки DirectFB ?
Как заставить работать DirectFB для Qt ?

Дополнительно вопрос о производительности связки Qt+DirectFB по сравнению с Qt+LinuxFB в Тион270.
На форуме нашел ответы:
http://www.zao-zeo.ru/forum/index.php?topic=249.msg1332#msg1332
http://www.zao-zeo.ru/forum/index.php?topic=123.msg1760#msg1760
http://www.zao-zeo.ru/forum/index.php?topic=236.msg1270#msg1270
Но итог не ясен.
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: DirectFB
« Ответ #1 : 19 Февраля, 2013, 13:23:26 »

> Нужно ли перекомпилировать тулчайн (используется старый, когда флаги для DirectFB не выставлялись) для поддержки DirectFB ?

Скорее всего -- да, должен собраться plugin-gfx-directfb.
Записан

KDM

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 46
Re: DirectFB
« Ответ #2 : 19 Февраля, 2013, 16:19:02 »

Toolchain компилировался вместе с КФС (в разделе Toolchain Buildroot отдельного флага/подменю для directfb не нашел, но, возможно, этот пакет включается в тулчайн по зависимостям из КФС). Сам тулчайн вроде бы действительно обновился (на второй машине стал работать ключик -lqwt, хотя ранее приходилось явно прописывать путь к библиотеке).

Попробовал скомпилировать тестовую программу новым тулчайном. Добавил в программу ключики (в .pro дописал LIBS = -lqwt -ldirectfb -direct).

Результат тот же.
# /usr/Test1 -qws -display directfb
directfb: driver not found
Aborted
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: DirectFB
« Ответ #3 : 19 Февраля, 2013, 16:51:28 »

Посмотрите есть ли файл плугина gfx-directfb и находиться ли он (strace <prog-and-flags> 2>&1 |grep open)
Записан

KDM

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 46
Re: DirectFB
« Ответ #4 : 19 Февраля, 2013, 17:10:32 »

Именно gfx-directfb нет. Присутствует libdirectfb-1.4.so.0 , libdirect-1.4.so.0

Привожу лог:
strace /usr/Test1 -qws -dislpay directfb 2>&1 |grep open
open("/lib/libqwt.so.5", O_RDONLY)      = -1 ENOENT (No such file or directory)
open("/lib/libqwt.so.5", O_RDONLY)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libqwt.so.5", O_RDONLY)  = 3
open("/lib/libdirectfb-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libdirectfb-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libdirectfb-1.4.so.0", O_RDONLY) = 3
open("/lib/libdirect-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libdirect-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libdirect-1.4.so.0", O_RDONLY) = 3
open("/lib/libfusion-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libfusion-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libfusion-1.4.so.0", O_RDONLY) = 3
open("/lib/libQtGui.so.4", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/lib/libQtGui.so.4", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/usr/lib/libQtGui.so.4", O_RDONLY) = 3
open("/lib/libts-0.0.so.0", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libts-0.0.so.0", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libts-0.0.so.0", O_RDONLY) = 3
open("/lib/libpng12.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/lib/libpng12.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/usr/lib/libpng12.so.0", O_RDONLY) = 3
open("/lib/libQtNetwork.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libQtNetwork.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libQtNetwork.so.4", O_RDONLY) = 3
open("/lib/libQtCore.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libQtCore.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libQtCore.so.4", O_RDONLY) = 3
open("/lib/librt.so.0", O_RDONLY)       = 3
open("/lib/libdl.so.0", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libstdc++.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libstdc++.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libstdc++.so.6", O_RDONLY) = 3
open("/lib/libm.so.0", O_RDONLY)        = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libQtGui.so.4", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/lib/libQtGui.so.4", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/usr/lib/libQtGui.so.4", O_RDONLY) = 3
open("/lib/libts-0.0.so.0", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libts-0.0.so.0", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libts-0.0.so.0", O_RDONLY) = 3
open("/lib/libpng12.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/lib/libpng12.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/usr/lib/libpng12.so.0", O_RDONLY) = 3
open("/lib/libQtNetwork.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libQtNetwork.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libQtNetwork.so.4", O_RDONLY) = 3
open("/lib/libQtCore.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libQtCore.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libQtCore.so.4", O_RDONLY) = 3
open("/lib/librt.so.0", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libdl.so.0", O_RDONLY)       = 3
open("/lib/libstdc++.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libstdc++.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libstdc++.so.6", O_RDONLY) = 3
open("/lib/libm.so.0", O_RDONLY)        = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libz.so.1", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/lib/libz.so.1", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/usr/lib/libz.so.1", O_RDONLY)    = 3
open("/lib/libdirect-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libdirect-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libdirect-1.4.so.0", O_RDONLY) = 3
open("/lib/libfusion-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libfusion-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libfusion-1.4.so.0", O_RDONLY) = 3
open("/lib/libdl.so.0", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libz.so.1", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/lib/libz.so.1", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/usr/lib/libz.so.1", O_RDONLY)    = 3
open("/lib/libdl.so.0", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libz.so.1", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/lib/libz.so.1", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/usr/lib/libz.so.1", O_RDONLY)    = 3
open("/lib/libdirect-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libdirect-1.4.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libdirect-1.4.so.0", O_RDONLY) = 3
open("/lib/libdl.so.0", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libts-0.0.so.0", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libts-0.0.so.0", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libts-0.0.so.0", O_RDONLY) = 3
open("/lib/libpng12.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/lib/libpng12.so.0", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/usr/lib/libpng12.so.0", O_RDONLY) = 3
open("/lib/libQtNetwork.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libQtNetwork.so.4", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libQtNetwork.so.4", O_RDONLY) = 3
open("/lib/libQtCore.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libQtCore.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libQtCore.so.4", O_RDONLY) = 3
open("/lib/librt.so.0", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libdl.so.0", O_RDONLY)       = 3
open("/lib/libstdc++.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libstdc++.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libstdc++.so.6", O_RDONLY) = 3
open("/lib/libm.so.0", O_RDONLY)        = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libdl.so.0", O_RDONLY)       = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libz.so.1", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/lib/libz.so.1", O_RDONLY)        = -1 ENOENT (No such file or directory)
open("/usr/lib/libz.so.1", O_RDONLY)    = 3
open("/lib/libm.so.0", O_RDONLY)        = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libQtCore.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libQtCore.so.4", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libQtCore.so.4", O_RDONLY) = 3
open("/lib/librt.so.0", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libdl.so.0", O_RDONLY)       = 3
open("/lib/libstdc++.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libstdc++.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libstdc++.so.6", O_RDONLY) = 3
open("/lib/libm.so.0", O_RDONLY)        = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/librt.so.0", O_RDONLY)       = 3
open("/lib/libpthread.so.0", O_RDONLY)  = 3
open("/lib/libdl.so.0", O_RDONLY)       = 3
open("/lib/libstdc++.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/lib/libstdc++.so.6", O_RDONLY)   = -1 ENOENT (No such file or directory)
open("/usr/lib/libstdc++.so.6", O_RDONLY) = 3
open("/lib/libm.so.0", O_RDONLY)        = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libm.so.0", O_RDONLY)        = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
open("/lib/libc.so.0", O_RDONLY)        = 3
open("/root/Settings/Trolltech.conf", O_RDONLY|O_LARGEFILE) = 5
open("/root/Settings/Trolltech.conf", O_RDONLY|O_LARGEFILE) = 5
open("/etc/TZ", O_RDONLY)               = 6
open("/etc/TZ", O_RDONLY)               = 6
open("/tmp/qtembedded-0//fonts", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 8
open("/etc/TZ", O_RDONLY)               = 8
open("/etc/TZ", O_RDONLY)               = 8
open("/etc/TZ", O_RDONLY)               = 8
open("/etc/TZ", O_RDONLY)               = 8
open("/tmp/qtembedded-0//fonts//fontdb.tmp", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 8
open("/usr/lib/fonts/fontdir", O_RDONLY|O_LARGEFILE) = 9
open("/usr/lib/fonts", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 9
open("/usr/lib/fonts", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 9
open("/usr/lib/fonts", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 9
open("/root/Settings/Trolltech.conf", O_RDONLY|O_LARGEFILE) = 9
open("/etc/TZ", O_RDONLY)               = 9
open("/etc/TZ", O_RDONLY)               = 9
open("/root/Settings/Trolltech.conf", O_RDONLY|O_LARGEFILE) = 8
open("/etc/TZ", O_RDONLY)               = 8
open("/etc/TZ", O_RDONLY)               = 8
open("/dev/fb0", O_RDWR|O_LARGEFILE)    = 8
open("/dev/tty0", O_RDWR|O_LARGEFILE)   = 9
open("/root/Settings/Trolltech.conf", O_RDONLY|O_LARGEFILE) = 10
open("/etc/TZ", O_RDONLY)               = 10
open("/etc/TZ", O_RDONLY)               = 10
open("/etc/TZ", O_RDONLY)               = 10
open("/etc/TZ", O_RDONLY)               = 10
open("/dev/psaux", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 10
open("/dev/input/mice", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 11
open("/dev/tty0", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 12
open("/root/Settings/Trolltech.conf", O_RDONLY|O_LARGEFILE) = 14
open("/etc/TZ", O_RDONLY)               = 14
open("/etc/TZ", O_RDONLY)               = 14
open("/usr/lib/fonts/helvetica_120_50.qpf", O_RDONLY|O_LARGEFILE) = 14
open("/usr/lib/fonts/helvetica_100_50.qpf", O_RDONLY|O_LARGEFILE) = 14
open("/usr/lib/fonts/helvetica_120_75.qpf", O_RDONLY|O_LARGEFILE) = 14
open("/etc/TZ", O_RDONLY)               = 14
Записан

asv

  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1405
Re: DirectFB
« Ответ #5 : 19 Февраля, 2013, 21:43:03 »

stat64("/usr/plugins/gfxdrivers/.", 0xbe8555e8) = -1 ENOENT (No such file or directory)
lstat64("/usr/plugins/gfxdrivers/.", 0xbe855580) = -1 ENOENT (No such file or directory)

Запускается, если:

1. Если скопировать файл
<buildroot>/build_arm/staging_dir/usr/plugins/gfxdrivers/libqdirectfbscreen.so
в /usr/plugins/gfxdrivers/

2. Включить 16bpp  www.zao-zeo.ru/dokuwiki/doku.php/linux#дисплей
   (!) DirectFB/FBDev: No supported modes found in /etc/fb.modes and current mode not supported!
   (!) DirectFB/FBDev: Current mode's pixelformat: rgba 6/12, 6/6, 6/0, 0/0 (18bit)

3. Перед запуском export TSLIB_TSDEVICE=
   can't resolve symbol 'tslib_parse_vars'
Записан

KDM

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 46
Re: DirectFB
« Ответ #6 : 20 Февраля, 2013, 12:03:56 »

Спасибо, помогло копирование
<buildroot>/build_arm/staging_dir/usr/plugins/gfxdrivers/libqdirectfbscreen.so
в /usr/plugins/gfxdrivers/

К сожалению, результаты ожиданий не оправдали :(

Тестировалось (отрисовка в методе QMainWindow::paintEvent() ):
-cтатический вывод большого кол-ва линий;
-динамический вывод линий (добавление новых, удаление старых);
-динамический вывод .jpeg с перемещением или вращением;
-статический вывод большого количества .jpeg;
-динамический вывод эллипсов с их перемещением и остаточными следами перемещения;
-статический вывод большого количества эллипсов;
-динамический вывод текстовых элементов (20 QLabel - изчезновение старых, добавление новых);
-статический вывод большого количества текстовых полей;
-динамический вывод градиентной заливки;
-динамический вывод графика qwt.
Везде увеличение времени вывода на 5-10%. Загрузка ЦП при этом сохраняется на уровне 100%.

При этом если запуск без -display directfb создает 3 потока, то при использовании ключа -display directfb создается 12 потоков.
Что еще хуже - программа работает нестабильно, периодически не запускается (вместо экрана с программой или хотя бы с консолью возникает черный экран; после его возникновения можно использовать отладочную консоль на RS232, при запуске программы оттуда программа появляется), иногда вылетает с Segmentation Fault.

Вот уж не знаю, насколько все правильно работает, но при таких результатах копать дальше в направлении DirectFB особого желания не возникает.
Записан