Let the first frame come in before measuring refresh rate time.
This fixes potential flakiness in VrDisplayTest#testRefreshRateIsAtLeast60Hz.
Bug: 33812074
Change-Id: Ideea1b0932764cebbf7235839af0f53c7c52a771
diff --git a/tests/vr/src/android/vr/cts/VrDisplayTest.java b/tests/vr/src/android/vr/cts/VrDisplayTest.java
index 9dfdf96..b26f4ed 100644
--- a/tests/vr/src/android/vr/cts/VrDisplayTest.java
+++ b/tests/vr/src/android/vr/cts/VrDisplayTest.java
@@ -52,18 +52,20 @@
*/
public void testRefreshRateIsAtLeast60Hz() throws Throwable {
final int NUM_FRAMES = 200;
- mActivity = getGlEsActivity(NUM_FRAMES, 3);
+ // Add an extra frame to allow the activity to start up.
+ mActivity = getGlEsActivity(NUM_FRAMES + 1, 3);
if (!mActivity.supportsVrHighPerformance())
return;
- long startNanos = System.nanoTime();
+ // Skip the first frame to allow for startup time.
+ mActivity.waitForFrameDrawn();
// Render a few hundred frames.
- int error;
+ long startNanos = System.nanoTime();
while (!mActivity.waitForFrameDrawn());
- error = mActivity.glGetError();
- assertEquals(GLES32.GL_NO_ERROR, error);
long endNanos = System.nanoTime();
+ int error = mActivity.glGetError();
+ assertEquals(GLES32.GL_NO_ERROR, error);
double fps = NUM_FRAMES / (double)(endNanos - startNanos) * 1e9;
assertTrue(fps >= 59.);