Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Frame per seconds using QML on Embedded Linux



  • Hi,

    my application is running on a iMx6Q CPU with Qt5.9.1
    I am using the fps counter from delamor to count frame per seconds.

    If i run my application on LVDS output with 1280x800 pixel i get 18fps. When using the same application but on HDMI output with 1920x1080 i get 8fps only and i have VSYNC issues.(The framebuffer is not ready and gets synchronized, looks like diagonal pixels on frame change)

    Is there a way to increase the fps or is this the maximum at this resolution?

    Here is my output from QSG_INFO

    qt.scenegraph.general: threaded render loop
    qt.scenegraph.general: Using sg animation driver
    qt.scenegraph.general: Animation Driver: using vsync: 16.95 ms
    qt.scenegraph.general: Using sg animation driver
    qt.scenegraph.general: Animation Driver: using vsync: 16.95 ms
    qt.scenegraph.general: texture atlas dimensions: 2048x1024
    qt.scenegraph.general: R/G/B/A Buffers: 4 4 4 0
    qt.scenegraph.general: Depth Buffer: 24
    qt.scenegraph.general: Stencil Buffer: 8
    qt.scenegraph.general: Samples: 4
    qt.scenegraph.general: GL_VENDOR: Vivante Corporation
    qt.scenegraph.general: GL_RENDERER: Vivante GC2000
    qt.scenegraph.general: GL_VERSION: OpenGL ES 3.0 V5.0.11.p8.41671


  • Moderators

    Does it also happen for a simple "hello world" application? If no, then you need to optimize your application. If yes, then try optimizing your graphics stack, updating drivers etc.

    Normally QML clocks in at 60 fps.



  • @sierdzio My QML Application uses OpenGL 2.0 and as far as i understood, the GPU vivante draws the content to framebuffer right? But is the vivante too slow or OpenGL?



  • I found the issue! I have now 44 fps on 1920x1080.
    I comment this code out of my main:

    QSurfaceFormat format = view.format();
    format.setDepthBufferSize(24);
    format.setStencilBufferSize(8);
    format.setSamples(4);
    view.setFormat(format);
    

    Somehow it was using a lot of GPU.


  • Moderators

    Great news, thanks for sharing the solution :-)


Log in to reply