[Interest] Performance of platform wayland vs. eglfs
Martin Ertl
qsmokeonthewater at gmail.com
Fri Jun 13 17:23:37 CEST 2014
Hello,
I compiled an application (see end of this mail) once with Qt 5.0.2 using
wayland
plugin and once with Qt 5.3.0 using eglfs plugin.
Both applications were executed on the same hardware (IMX6).
The old Qt with wayland results in ~60fps while the new Qt using
eglfs just reaches 40-45 fps (measured by counting
QQuickWindow::frameSwapped signals
in both cases).
I'd like to understand the difference. I expected it the other way around.
This is what I assumed:
When using wayland a surface for a window has to be created and Qt renders
to that window. Once an image is complete the wayland surface is copied
to the framebuffer:
|------| |------|
App -draw-> | win | -copy-> | fb | -copy-> Display
|------| |------|
I expected the eglfs to draw directly to the framebuffer without the need
for an additional copy from a window. So I expected better performance...
But my results show that this is not the case. Is the eglfs plugin
introducing
some extra overhead?
Btw.: I had to set 'QT_EGLFS_IMX6_NO_FB_MULTI_BUFFER' to '1'. Otherwise
there's a segmentation fault.
gdb prints something about 'libGAL' and 'gcoOS_SynchronousFlip' which seems
to be something from
the graphics driver. Could this be a reason for lower eglfs performance?
Thank you and best regards,
Martin
main.cpp: from "hello world" example, but setting "Qt::FramelessWindowHint"
to viewer.
============================start MyCompo.qml:============================
import QtQuick 2.0
Rectangle
{
id: root
property color c0
property color c1
anchors.fill: parent
color: "yellow"
SequentialAnimation on color
{
running: true
loops: Animation.Infinite
ColorAnimation {to: root.c0; duration: 1000}
ColorAnimation {to: root.c1; duration: 1000}
}
}
============================end MyCompo.qml:============================
============================start main.qml:============================
import QtQuick 2.0
import Ces.Generic 1.0
Item
{
width: 640
height: 640
Text
{
x: 10
y: 10
font.pixelSize: 20
color: "white"
text: fps.fps2
z: 1
CGFPSCounter
{
id: fps
}
}
MyCompo
{
c0: "red"
c1: "green"
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
MyCompo
{
c0: "red"
c1: "blue"
opacity: 0.5
}
}
============================end main.qml:============================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20140613/18f96969/attachment.html>
More information about the Interest
mailing list