Send status of Surface performance tests.
Following metrics are now available for TRANSLUCENT surfaces: surface-compoistion-peformance-sps surface-compoistion-bandwidth-gbps surface-allocation-performance-median-sps surface-allocation-performance-min-sps surface-allocation-performance-max-sps Bug: 24158847 Change-Id: I590fb6194983ce00bd5622b5a7596d05be60ebd4
This commit is contained in:
@@ -106,12 +106,12 @@ public class SurfaceCompositionMeasuringActivity extends Activity implements OnC
|
||||
|
||||
class CompositorScore {
|
||||
double mSurfaces;
|
||||
double mBitrate;
|
||||
double mBandwidth;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return DOUBLE_FORMAT.format(mSurfaces) + " surfaces. " +
|
||||
"Bitrate: " + getReadableMemory((long)mBitrate) + "/s";
|
||||
"Bandwidth: " + getReadableMemory((long)mBandwidth) + "/s";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ public class SurfaceCompositionMeasuringActivity extends Activity implements OnC
|
||||
score.mSurfaces = measureCompositionScore(new Measurement(0, 60.0),
|
||||
new Measurement(mViews.size() + 1, 0.0f), pixelFormat);
|
||||
// Assume 32 bits per pixel.
|
||||
score.mBitrate = score.mSurfaces * mTargetFPS * mWidth * mHeight * 4.0;
|
||||
score.mBandwidth = score.mSurfaces * mTargetFPS * mWidth * mHeight * 4.0;
|
||||
//memAccessTask.stop();
|
||||
return score;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
*/
|
||||
package android.surfacecomposition;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.PixelFormat;
|
||||
import android.os.Bundle;
|
||||
import android.surfacecomposition.SurfaceCompositionMeasuringActivity.AllocationScore;
|
||||
import android.surfacecomposition.SurfaceCompositionMeasuringActivity.CompositorScore;
|
||||
import android.test.ActivityInstrumentationTestCase2;
|
||||
@@ -25,6 +27,16 @@ import android.util.Log;
|
||||
public class SurfaceCompositionTest extends
|
||||
ActivityInstrumentationTestCase2<SurfaceCompositionMeasuringActivity> {
|
||||
private final static String TAG = "SurfaceCompositionTest";
|
||||
private final static String KEY_SURFACE_COMPOSITION_PERFORMANCE =
|
||||
"surface-compoistion-peformance-sps";
|
||||
private final static String KEY_SURFACE_COMPOSITION_BANDWITH =
|
||||
"surface-compoistion-bandwidth-gbps";
|
||||
private final static String KEY_SURFACE_ALLOCATION_PERFORMANCE_MEDIAN =
|
||||
"surface-allocation-performance-median-sps";
|
||||
private final static String KEY_SURFACE_ALLOCATION_PERFORMANCE_MIN =
|
||||
"surface-allocation-performance-min-sps";
|
||||
private final static String KEY_SURFACE_ALLOCATION_PERFORMANCE_MAX =
|
||||
"surface-allocation-performance-max-sps";
|
||||
|
||||
// Pass threshold for major pixel formats.
|
||||
private final static int[] TEST_PIXEL_FORMATS = new int[] {
|
||||
@@ -53,6 +65,7 @@ public class SurfaceCompositionTest extends
|
||||
|
||||
@SmallTest
|
||||
public void testSurfaceCompositionPerformance() {
|
||||
Bundle status = new Bundle();
|
||||
for (int i = 0; i < TEST_PIXEL_FORMATS.length; ++i) {
|
||||
int pixelFormat = TEST_PIXEL_FORMATS[i];
|
||||
String formatName = SurfaceCompositionMeasuringActivity.getPixelFormatInfo(pixelFormat);
|
||||
@@ -62,11 +75,20 @@ public class SurfaceCompositionTest extends
|
||||
"performance score. " + score.mSurfaces + " < " +
|
||||
MIN_ACCEPTED_COMPOSITION_SCORE[i] + ".",
|
||||
score.mSurfaces >= MIN_ACCEPTED_COMPOSITION_SCORE[i]);
|
||||
// Send status only for TRANSLUCENT format.
|
||||
if (pixelFormat == PixelFormat.TRANSLUCENT) {
|
||||
status.putDouble(KEY_SURFACE_COMPOSITION_PERFORMANCE, score.mSurfaces);
|
||||
// Put bandwidth in GBPS.
|
||||
status.putDouble(KEY_SURFACE_COMPOSITION_BANDWITH, score.mBandwidth /
|
||||
(1024.0 * 1024.0 * 1024.0));
|
||||
}
|
||||
}
|
||||
getInstrumentation().sendStatus(Activity.RESULT_OK, status);
|
||||
}
|
||||
|
||||
@SmallTest
|
||||
public void testSurfaceAllocationPerformance() {
|
||||
Bundle status = new Bundle();
|
||||
for (int i = 0; i < TEST_PIXEL_FORMATS.length; ++i) {
|
||||
int pixelFormat = TEST_PIXEL_FORMATS[i];
|
||||
String formatName = SurfaceCompositionMeasuringActivity.getPixelFormatInfo(pixelFormat);
|
||||
@@ -76,6 +98,13 @@ public class SurfaceCompositionTest extends
|
||||
"performance score. " + score.mMedian + " < " +
|
||||
MIN_ACCEPTED_ALLOCATION_SCORE[i] + ".",
|
||||
score.mMedian >= MIN_ACCEPTED_ALLOCATION_SCORE[i]);
|
||||
// Send status only for TRANSLUCENT format.
|
||||
if (pixelFormat == PixelFormat.TRANSLUCENT) {
|
||||
status.putDouble(KEY_SURFACE_ALLOCATION_PERFORMANCE_MEDIAN, score.mMedian);
|
||||
status.putDouble(KEY_SURFACE_ALLOCATION_PERFORMANCE_MIN, score.mMin);
|
||||
status.putDouble(KEY_SURFACE_ALLOCATION_PERFORMANCE_MAX, score.mMax);
|
||||
}
|
||||
}
|
||||
getInstrumentation().sendStatus(Activity.RESULT_OK, status);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user