Exemplo n.º 1
0
  public void testRefreshRate() throws java.lang.InterruptedException {
    boolean fpsOk = false;
    GLSurfaceViewStubActivity activity = getActivity();

    WindowManager wm =
        (WindowManager) activity.getView().getContext().getSystemService(Context.WINDOW_SERVICE);
    Display dpy = wm.getDefaultDisplay();
    float claimedFps = dpy.getRefreshRate();

    for (int i = 0; i < 3; i++) {
      float achievedFps = mResult.waitResult();
      Log.d(TAG, "claimed " + claimedFps + " fps, " + "achieved " + achievedFps + " fps");
      fpsOk = Math.abs(claimedFps - achievedFps) <= FPS_TOLERANCE;
      if (fpsOk) {
        break;
      } else {
        // it could be other sctivity like bug report capturing for other failures
        // sleep for a while and re-try
        Thread.sleep(10000);
        mResult.restart();
      }
    }
    activity.finish();
    assertTrue(fpsOk);
  }
Exemplo n.º 2
0
    public void onDrawFrame(GL10 gl) {
      float t = (float) System.nanoTime() * 1.0e-9f;
      switch (mState) {
        case STATE_START:
          mStartTime = t;
          mState = STATE_WARMUP;
          break;

        case STATE_WARMUP:
          if ((t - mStartTime) >= WARMUP_SECONDS) {
            mStartTime = t;
            mNumFrames = 0;
            mState = STATE_TEST;
          }
          break;

        case STATE_TEST:
          mNumFrames++;
          float elapsed = t - mStartTime;
          if (elapsed >= TEST_SECONDS) {
            mResult.notifyResult((float) mNumFrames / elapsed);
            mState = STATE_DONE;
          }
          break;

        case STATE_DONE:
          if (mResult.restartNecessary()) {
            mResult.ackRestart();
            mState = STATE_START;
            Log.d(TAG, "restarting");
          }
          break;
      }

      // prevent unwanted optimizations or hidden costs (e.g. reading
      // previous frame on tilers).
      gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
      gl.glClear(gl.GL_COLOR_BUFFER_BIT);
    }