Use threaded renderer even without BufferQueueingOpenGL.
authorSamuel Rødal <samuel.rodal@digia.com>
Wed, 7 Nov 2012 16:10:42 +0000 (17:10 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 16 Nov 2012 11:49:21 +0000 (12:49 +0100)
Without threaded rendering QML 2 often ends up running at half the
screen refresh rate on X11. Not having BufferQueuingOpenGL shouldn't
prevent us from using threaded rendering, since the issue of four
animating windows running at 1/4th of the screen refresh rate will
happen regardless of whether rendering happens on the main thread or in
a separate rendering thread.

Change-Id: I0edc818e6d762fa1faf13e7f2f47dfda132b6fdf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
src/quick/items/qquickwindowmanager.cpp

index 50887e8..5da904a 100644 (file)
@@ -131,8 +131,11 @@ QQuickWindowManager *QQuickWindowManager::instance()
         s_instance = QSGContext::createWindowManager();
 
         bool bufferQueuing = QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::BufferQueueingOpenGL);
-        bool fancy = bufferQueuing
-            && QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::ThreadedOpenGL);
+#ifdef Q_OS_WIN
+        bool fancy = false; // QTBUG-28037
+#else
+        bool fancy = QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::ThreadedOpenGL);
+#endif
         if (qmlNoThreadedRenderer())
             fancy = false;
         else if (qmlForceThreadedRenderer())