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.10In 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