Dear mailing list,

First time I write here, I posted this yesterday on the QtQuick forum and a 
user recommended me to post on this mailing list.

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 
<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

Best,
Bruno Di Giorgi

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to