[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