Hi Gunnar,

Thank you for the reply,

> Is the Native OSX application also rendering via a framebuffer?


As far as I understand there might in fact be a difference of one FBO between 
the Native OS X and the QtQuick version.
Though this may depend on the implementation of the NSOpenGLView:
 - if NSOpenGLView creates an FBO then no, there is no difference
 - if NSOpenGLView give me access directly to the window buffer, then yes 
QtQuick drawing may go through one FBO (QQuickFramebufferObject) more.

Regarding your second question

> Is the same symptom present when you render directly to the QQuickWindow 
> using for instance the beforeRendering() signal?

I’ll do some benchmark and answer you asap.

Best,
Bruno


> Il giorno 07/set/2015, alle ore 07:35, Gunnar Sletta <gun...@sletta.org> ha 
> scritto:
> 
> Hi Bruno,
> 
> Is the Native OSX application also rendering via a framebuffer? On an Intel 
> GPU rendering via an FBO will add considerable cost. Is the same symptom 
> present when you render directly to the QQuickWindow using for instance the 
> beforeRendering() signal? 
> (http://doc.qt.io/qt-5/qtquick-scenegraph-openglunderqml-example.html)
> 
> cheers,
> Gunnar
> 
>> On 04 Sep 2015, at 09:06, Bruno Di Giorgi <br...@brunodigiorgi.it> wrote:
>> 
>> 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 
>> 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
> 

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

Reply via email to