From 9bf4804d3dd95f03e594efff6c3289f9d1f8842f Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Thu, 5 Jan 2017 11:04:50 -0800 Subject: [PATCH] Use a higher thread priority for Oculus present --- .../display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp | 1 + .../display-plugins/src/display-plugins/OpenGLDisplayPlugin.h | 2 ++ plugins/oculus/src/OculusDisplayPlugin.h | 2 ++ 3 files changed, 5 insertions(+) diff --git a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp index c4846f6af8..a6f7d3caf4 100644 --- a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp +++ b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.cpp @@ -165,6 +165,7 @@ public: if (newPlugin) { bool hasVsync = true; + QThread::setPriority(newPlugin->getPresentPriority()); bool wantVsync = newPlugin->wantVsync(); _context->makeCurrent(); #if defined(Q_OS_WIN) diff --git a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h index a6de3f7baa..ee0bcf91a9 100644 --- a/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h +++ b/libraries/display-plugins/src/display-plugins/OpenGLDisplayPlugin.h @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -80,6 +81,7 @@ protected: void updateCompositeFramebuffer(); + virtual QThread::Priority getPresentPriority() { return QThread::HighPriority; } virtual void compositeLayers(); virtual void compositeScene(); virtual void compositeOverlay(); diff --git a/plugins/oculus/src/OculusDisplayPlugin.h b/plugins/oculus/src/OculusDisplayPlugin.h index e44596d6e9..ccab31785b 100644 --- a/plugins/oculus/src/OculusDisplayPlugin.h +++ b/plugins/oculus/src/OculusDisplayPlugin.h @@ -24,6 +24,8 @@ public: virtual QJsonObject getHardwareStats() const; protected: + QThread::Priority getPresentPriority() override { return QThread::TimeCriticalPriority; } + bool internalActivate() override; void hmdPresent() override; bool isHmdMounted() const override;