Add missing eglMakeCurrent calls to release resources.
authorMika Isojärvi <misojarvi@google.com>
Fri, 20 Mar 2015 00:48:26 +0000 (17:48 -0700)
committerMika Isojärvi <misojarvi@google.com>
Fri, 20 Mar 2015 18:09:11 +0000 (11:09 -0700)
Add calls to eglMakeCurrent to release current context and surface after
test in test cases that didn't have one.

Bug: 19822403
Change-Id: I6ac5f404b2e408a8920937b901ee66e5beb8fee9

modules/egl/teglColorClearCase.cpp
modules/egl/teglCreateContextExtTests.cpp
modules/egl/teglMakeCurrentPerfTests.cpp
modules/egl/teglRenderTests.cpp

index 9f6bce1..6d6e73b 100644 (file)
@@ -220,6 +220,9 @@ void SingleThreadColorClearCase::executeForContexts (EGLDisplay display, EGLSurf
                readPixels(api, funcs, frame);
        }
 
+       egl.makeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+       EGLU_CHECK_MSG(egl, "eglMakeCurrent");
+
        // Render reference.
        renderReference(refFrame, clears, pixelFmt);
 
@@ -385,6 +388,9 @@ void MultiThreadColorClearCase::executeForContexts (EGLDisplay display, EGLSurfa
                readPixels(api, funcs, frame);
        }
 
+       egl.makeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+       EGLU_CHECK_MSG(egl, "eglMakeCurrent");
+
        // Join threads.
        for (int threadNdx = 0; threadNdx < numThreads; threadNdx++)
                threads[threadNdx]->join();
index 31cceaa..3eba619 100644 (file)
@@ -989,6 +989,8 @@ void CreateContextExtCase::executeForSurface (EGLConfig config, EGLSurface surfa
                        m_isOk = false;
                }
        }
+
+       EGLU_CHECK_CALL(egl, makeCurrent(m_display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT));
 }
 
 class CreateContextExtGroup : public TestCaseGroup
index dd822f3..8c796cd 100644 (file)
@@ -525,6 +525,7 @@ TestCase::IterateResult MakeCurrentPerfCase::iterate (void)
 
                m_samples.push_back(deGetMicroseconds() - beginTimeUs);
 
+               egl.makeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
                EGLU_CHECK_MSG(egl, "eglMakeCurrent()");
        }
 
index 1f3ff2c..f14ae60 100644 (file)
@@ -712,6 +712,8 @@ void SingleThreadRenderCase::executeForContexts (EGLDisplay display, EGLSurface
                readPixels(m_gl, api, frame);
        }
 
+       EGLU_CHECK_CALL(egl, makeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT));
+
        // Render reference.
        // \note Reference image is always generated using single-sampling.
        renderReference(refFrame.getAccess(), drawOps, pixelFmt, depthBits, stencilBits, 1);
@@ -925,6 +927,8 @@ void MultiThreadRenderCase::executeForContexts (EGLDisplay display, EGLSurface s
                readPixels(m_gl, api, frame);
        }
 
+       EGLU_CHECK_CALL(egl, makeCurrent(display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT));
+
        // Join threads.
        for (int threadNdx = 0; threadNdx < numThreads; threadNdx++)
                threads[threadNdx]->join();