[Interest] QML and OpenGL conflicts

Koehne Kai Kai.Koehne at theqtcompany.com
Thu Jun 4 13:41:22 CEST 2015


> -----Original Message-----
> From: interest-bounces+kai.koehne=theqtcompany.com at qt-project.org
> [....]
> We investigated the problem and found that both renderings were
> happening in the same thread, and Qt was stealing the OpenGL context we
> setup in our application (with a makeCurrent() I guess), creating random
> conflicts.
> 
> At first I thought that having a threaded Qt rendering could easily solve the
> problem.
> I saw that QtQuickWidget's rendering wasn't threaded, so I tried to use a
> QtQuickView instead... with no luck.
> 
> This is a blocking problem for our project, and I would like to know if there is
> a way to enable threaded rendering in QML, to prevent such conflict?

The default QML render loop on Windows runs in the GUI thread. You can try and force a threaded renderer loop e.g. by setting the environment variable QSG_RENDER_LOOP=threaded . Not sure how save & portable this is though ...

The canonical way to integrate Qt Quick and custom OpenGL is through a QQUickFrameBufferObject. See e.g. http://blog.qt.io/blog/2015/05/11/integrating-custom-opengl-rendering-with-qt-quick-via-qquickframebufferobject/ .

Regards

Kai

> Platform: Windows
> 
> PS: I first started a thread here https://forum.qt.io/topic/54880/qml-and-
> opengl-conflicts



More information about the Interest mailing list