From: Jian Li Date: Mon, 9 Dec 2019 05:24:05 +0000 (+0800) Subject: Fix some bugs for EGL cases X-Git-Tag: upstream/1.3.5~1094^2^2~16 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a743bf4b639a25ab5a27b89dea1037be0872f129;p=platform%2Fupstream%2FVK-GL-CTS.git Fix some bugs for EGL cases eglTerminate() wasn't called in proper sequence. Resource wasn't released properly for not supported cases. Affects: dEQP-EGL.functional.image.* dEQP-EGL.functional.resize.* dEQP-EGL.functional.buffer_age.* dEQP-EGL.functional.partial_update.* Components: AOSP VK-GL-CTS issue: 2153 Change-Id: Ic0a82aa176b9a8344f757916d61ea8f64c58eca5 (cherry picked from commit 53bfacd3d71753cda3448735e56ad249848c2460) --- diff --git a/modules/egl/teglBufferAgeTests.cpp b/modules/egl/teglBufferAgeTests.cpp index e1a3dc2..7a9f80c 100644 --- a/modules/egl/teglBufferAgeTests.cpp +++ b/modules/egl/teglBufferAgeTests.cpp @@ -390,6 +390,14 @@ void BufferAgeTest::init (void) const Library& egl = m_eglTestCtx.getLibrary(); m_eglDisplay = eglu::getAndInitDisplay(m_eglTestCtx.getNativeDisplay()); + + if (eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_buffer_age") == false) + { + egl.terminate(m_eglDisplay); + m_eglDisplay = EGL_NO_DISPLAY; + TCU_THROW(NotSupportedError, "EGL_EXT_buffer_age is not supported"); + } + m_eglConfig = getEGLConfig(m_eglTestCtx.getLibrary(), m_eglDisplay, m_preserveColorBuffer); if (m_eglConfig == DE_NULL) @@ -401,9 +409,6 @@ void BufferAgeTest::init (void) m_eglTestCtx.initGLFunctions(&m_gl, glu::ApiType::es(2,0)); - if (eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_buffer_age") == false) - TCU_THROW(NotSupportedError, "EGL_EXT_buffer_age is not supported"); - m_gles2Renderer = new GLES2Renderer(m_gl); m_refRenderer = new ReferenceRenderer(); } diff --git a/modules/egl/teglImageFormatTests.cpp b/modules/egl/teglImageFormatTests.cpp index 3e3c333..1dee13c 100644 --- a/modules/egl/teglImageFormatTests.cpp +++ b/modules/egl/teglImageFormatTests.cpp @@ -1007,6 +1007,8 @@ void ImageFormatCase::deinit (void) { const Library& egl = m_eglTestCtx.getLibrary(); + m_img.clear(); + for (int contexNdx = 0 ; contexNdx < (int)m_apiContexts.size(); contexNdx++) delete m_apiContexts[contexNdx]; diff --git a/modules/egl/teglPartialUpdateTests.cpp b/modules/egl/teglPartialUpdateTests.cpp index a70374a..f496533 100644 --- a/modules/egl/teglPartialUpdateTests.cpp +++ b/modules/egl/teglPartialUpdateTests.cpp @@ -375,6 +375,14 @@ void PartialUpdateTest::init (void) const Library& egl = m_eglTestCtx.getLibrary(); m_eglDisplay = eglu::getAndInitDisplay(m_eglTestCtx.getNativeDisplay()); + + if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_KHR_partial_update")) + { + egl.terminate(m_eglDisplay); + m_eglDisplay = EGL_NO_DISPLAY; + TCU_THROW(NotSupportedError, "EGL_KHR_partial_update is not supported"); + } + m_eglConfig = getEGLConfig(m_eglTestCtx.getLibrary(), m_eglDisplay); //create surface and context and make them current @@ -385,9 +393,6 @@ void PartialUpdateTest::init (void) m_supportBufferAge = eglu::hasExtension(egl, m_eglDisplay, "EGL_EXT_buffer_age"); - if (!eglu::hasExtension(egl, m_eglDisplay, "EGL_KHR_partial_update")) - TCU_THROW(NotSupportedError, "EGL_KHR_partial_update is not supported"); - m_gles2Renderer = new GLES2Renderer(m_gl); m_refRenderer = new ReferenceRenderer(); } diff --git a/modules/egl/teglResizeTests.cpp b/modules/egl/teglResizeTests.cpp index 4686d11..30b5f5b 100644 --- a/modules/egl/teglResizeTests.cpp +++ b/modules/egl/teglResizeTests.cpp @@ -195,14 +195,16 @@ void ResizeTest::init (void) void ResizeTest::deinit (void) { - if (m_display != EGL_NO_DISPLAY) - m_eglTestCtx.getLibrary().terminate(m_display); - m_config = DE_NULL; - m_display = EGL_NO_DISPLAY; m_context.clear(); m_surface.clear(); m_nativeWindow.clear(); + + if (m_display != EGL_NO_DISPLAY) + { + m_eglTestCtx.getLibrary().terminate(m_display); + m_display = EGL_NO_DISPLAY; + } } void ResizeTest::resize (IVec2 size)