Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Don't call QGLContext::doneCurrent() in MythRenderOpenGL.

- it should be unnecessary given that makeCurrent always checks the
correct context is current to the current thread and following the
threading changes, all of our OpenGL usage should be in the same thread.
- it breaks playback on certain Windows builds.
- it has a sizeable performance impact on at least one system tested
(Intel GPU)

Based on a patch from Lawrence Rust.


git-svn-id: http://svn.mythtv.org/svn/trunk@27281 7dbf422c-18fa-0310-86e9-fd20926502f2
  • Loading branch information...
commit 262966d31be2d60fe0657d7d4bdb082a48d74f47 1 parent 0e26821
Mark Kendall authored
Showing with 4 additions and 2 deletions.
  1. +4 −2 mythtv/libs/libmythui/mythrender_opengl.cpp
View
6 mythtv/libs/libmythui/mythrender_opengl.cpp
@@ -179,9 +179,11 @@ void MythRenderOpenGL::makeCurrent()
void MythRenderOpenGL::doneCurrent()
{
+ // we don't explicitly call QGlContext::doneCurrent() as it should be
+ // unnecessary (makeCurrent() will switch contexts as necessary), it
+ // appears to cause performance issues and breaks rendering in certain
+ // situations
m_lock_level--;
- if (m_lock_level == 0)
- QGLContext::doneCurrent();
if (m_lock_level < 0)
VERBOSE(VB_IMPORTANT, LOC_ERR + "Mis-matched calls to makeCurrent()");
m_lock->unlock();
Please sign in to comment.
Something went wrong with that request. Please try again.