OpenGL cpu benchmark QtQuick vs OSX Native



  • Dear all,

    I noticed some heavy cpu usage in a QtQuick (using Qt5.5) osx app compared to an equivalent Native OSX app. Around 5% more cpu usage with a simple app, up to 15% more with more complex OpenGL tasks.

    Both are using Core profile
    Version: 4.1 INTEL-10.6.33
    GLSL: 4.10

    In QtQuick I do openGL inside a QQuickFramebufferObject as I've seen advised many times.
    In OSX I draw inside a subclass of NSOpenGLView.

    Here are the OpenGL Profiler statistics: http://pastebin.com/uWyy8RMk
    Where you can see that CGLFlushDrawable takes so much longer in QtQuick (avg 15418.39 microsec) than in Native OSX App (avg 1287.65 microsec).

    I know that what CGLFlushDrawable really does is to set the internal OpenGL state and then do the drawing, so I wonder if I am misusing QtQuick OpenGL somehow. Here is how I set up OpenGL in QtQuick app:

    QSurfaceFormat f;
    f.setVersion(4, 1);
    f.setProfile(QSurfaceFormat::CoreProfile);
    QSurfaceFormat::setDefaultFormat(f);
    

    Then, when setting the framebuffer (inside QQuickFramebufferObject::Renderer method createFramebufferObject):

    QOpenGLFramebufferObjectFormat format;
    format.setAttachment(QOpenGLFramebufferObject::Depth);
    format.setInternalTextureFormat(GL_RGB);
    format.setSamples(0);
    

    I really hope there is a solution that makes me achieve similar performance because I really enjoy QML and I'd like to continue using it.

    Hardware used:
    MacBookPro 13'' with retina screen,
    cpu: 3 GHz Intel Core i7
    gpu: Intel Iris 1536 MB


  • Lifetime Qt Champion

    Hi,

    I'd recommend bringing this to the interest mailing list. You'll find there Qt's developers/maintainers (This forum is more user oriented) Don't forget to subscribe first.



  • @SGaist
    Thank you for the reply, SGaist! I'll do it.



Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.