Relax get_frame_timestamps
authorBarry Ko <barry.ko@mediatek.com>
Wed, 27 Feb 2019 12:53:04 +0000 (20:53 +0800)
committerMatthew Netsch <quic_mnetsch@quicinc.com>
Fri, 22 Oct 2021 18:22:31 +0000 (18:22 +0000)
To prevent power side effect from legacy platform. We tend to relax the
deqp criteria from 3 vsyncs to 4 vsyncs. And verify timestamp 6 frames
ago.

Cherry pick from AOSP.

Original commit:
https://android.googlesource.com/platform/external/deqp/+/db1f80ba923b9e89177562203c21192f8e7340c3
https://android-review.googlesource.com/c/platform/external/deqp/+/918914
Submitted on behalf of a third-party: barry.ko@mediatek.com

Component: EGL

Affected tests:
dEQP-EGL.functional.get_frame_timestamps.*

BUG: 123203074
Change-Id: I214b410d2ab8f0d6d4b3f9d6752c1c1d756cc28f

modules/egl/teglGetFrameTimestampsTests.cpp

index da916c0..cf6f8bb 100644 (file)
@@ -633,7 +633,7 @@ void GetFrameTimestampTest::executeForConfig (EGLDisplay display, EGLConfig conf
                        check_lt<EGLnsecsANDROID>(m_result, 1000000, frame.compositeInterval, "Reported refresh rate greater than 1kHz.");
                        check_lt<EGLnsecsANDROID>(m_result, frame.compositeInterval, 1000000000, "Reported refresh rate less than 1Hz.");
                        check_lt<EGLnsecsANDROID>(m_result, 0, frame.compositeToPresentLatency, "Composite to present latency must be greater than 0.");
-                       check_lt(m_result, frame.compositeToPresentLatency, frame.compositeInterval * 3, "Composite to present latency is more than 3 vsyncs.");
+                       check_lt(m_result, frame.compositeToPresentLatency, frame.compositeInterval * 4, "Composite to present latency is more than 4 vsyncs.");
                        const EGLnsecsANDROID minDeadline = now;
                        check_lt(m_result, minDeadline, frame.compositeDeadline, "Next composite deadline is in the past.");
                        const EGLnsecsANDROID maxDeadline = now + frame.compositeInterval * 2;
@@ -652,25 +652,25 @@ void GetFrameTimestampTest::executeForConfig (EGLDisplay display, EGLConfig conf
                        frame.swapBufferBeginNs = getNanoseconds();
                        EGLU_CHECK_CALL(egl, swapBuffers(display, *surface));
 
-                       // All timestamps from 5 frames ago should definitely be available.
-                       const size_t frameDelay = 5;
+                       // All timestamps from 6 frames ago should definitely be available.
+                       const size_t frameDelay = 6;
                        if (i >= frameDelay)
                        {
                                // \todo [2017-01-25 brianderson] Remove this work around once reads done is fixed.
                                const bool verifyReadsDone      =       i > (frameDelay + 3);
-                               FrameTimes&             frame5ago       =       frameTimes[i-frameDelay];
+                               FrameTimes&             frame6ago       =       frameTimes[i-frameDelay];
                                std::vector<EGLnsecsANDROID> supportedValues(supportedNames.size(), 0);
 
                                CHECK_NAKED_EGL_CALL(egl, m_eglGetFrameTimestampsANDROID(
-                                       display, *surface, frame5ago.frameId, static_cast<eglw::EGLint>(supportedNames.size()),
+                                       display, *surface, frame6ago.frameId, static_cast<eglw::EGLint>(supportedNames.size()),
                                        &supportedNames[0], &supportedValues[0]));
-                               populateFrameTimes(&frame5ago, timestamps, supportedValues);
+                               populateFrameTimes(&frame6ago, timestamps, supportedValues);
 
-                               verifySingleFrame(frame5ago, m_result, verifyReadsDone);
+                               verifySingleFrame(frame6ago, m_result, verifyReadsDone);
                                if (i >= frameDelay + 1)
                                {
-                                       FrameTimes& frame6ago = frameTimes[i-frameDelay-1];
-                                       verifyNeighboringFrames(frame6ago, frame5ago, m_result);
+                                       FrameTimes& frame7ago = frameTimes[i-frameDelay-1];
+                                       verifyNeighboringFrames(frame7ago, frame6ago, m_result);
                                }
                        }
                }