Merge "Use empty region when buffer age is not supported"
authorKalle Raita <kraita@google.com>
Tue, 30 Aug 2016 20:09:31 +0000 (20:09 +0000)
committerGerrit Code Review <noreply-gerritcodereview@google.com>
Tue, 30 Aug 2016 20:09:32 +0000 (20:09 +0000)
modules/egl/teglPartialUpdateTests.cpp

index 30788ee..097701a 100644 (file)
@@ -504,7 +504,6 @@ TestCase::IterateResult PartialUpdateTest::iterate (void)
                tcu::Surface    refBuffer                (width, height);
                Frame                   newFrame                 (width, height);
                EGLint                  currentBufferAge = -1;
-               vector<EGLint>  damageRegion;
 
                if (frameNdx % 2 == 0)
                        generateRandomFrame(newFrame, m_evenFrameDrawType, rnd);
@@ -528,12 +527,22 @@ TestCase::IterateResult PartialUpdateTest::iterate (void)
 
                if (currentBufferAge > 0)
                {
+                       vector<EGLint>  damageRegion;
+
                        hasPositiveAge = true;
 
                        if (m_supportBufferAge)
+                       {
                                damageRegion = getDamageRegion(newFrame, 10, 10, 10, 10);
+                       }
                        else
+                       {
                                damageRegion = getDamageRegion(newFrame, 0, 0, 0, 0);
+                               // Set empty damage region to avoid invalidating the framebuffer. The damage area is invalidated
+                               // if the buffer age extension is not supported.
+                               if (damageRegion.size() == 0)
+                                       damageRegion = vector<EGLint>(4, 0);
+                       }
 
                        EGLU_CHECK_CALL(egl, setDamageRegionKHR(m_eglDisplay, m_eglSurface, &damageRegion[0], (EGLint)damageRegion.size()/4));
                }