Merge "adding benchmark single test"
This commit is contained in:
committed by
Android (Google) Code Review
commit
94b064e112
@@ -18,8 +18,11 @@
|
||||
-->
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:id="@+id/benchmark_mode"
|
||||
android:title="@string/benchmark_mode" />
|
||||
<item android:id="@+id/benchmark_all"
|
||||
android:title="@string/benchmark_all" />
|
||||
<item android:id="@+id/benchmark_one"
|
||||
android:title="@string/benchmark_one" />
|
||||
<item android:id="@+id/debug_mode"
|
||||
android:title="@string/debug_mode" />
|
||||
</menu>
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<skip />
|
||||
<string name="benchmark_mode">Benchmark Mode</string>
|
||||
<string name="benchmark_all">Benchmark All</string>
|
||||
<string name="benchmark_one">Benchmark One</string>
|
||||
<string name="debug_mode">Debug Mode</string>
|
||||
</resources>
|
||||
|
||||
|
||||
@@ -93,14 +93,28 @@ public class RsBench extends Activity {
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle item selection
|
||||
switch (item.getItemId()) {
|
||||
case R.id.benchmark_mode:
|
||||
mView.setBenchmarkMode();
|
||||
case R.id.benchmark_all:
|
||||
mView.setBenchmarkMode(-1);
|
||||
return true;
|
||||
case R.id.debug_mode:
|
||||
case R.id.benchmark_one:
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
builder.setTitle("Pick a Test");
|
||||
builder.setItems(mView.getTestNames(),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int item) {
|
||||
Toast.makeText(getApplicationContext(),
|
||||
"Starting to benchmark: " + mView.getTestNames()[item],
|
||||
Toast.LENGTH_SHORT).show();
|
||||
mView.setBenchmarkMode(item);
|
||||
}
|
||||
});
|
||||
builder.show();
|
||||
return true;
|
||||
case R.id.debug_mode:
|
||||
AlertDialog.Builder debugBuilder = new AlertDialog.Builder(this);
|
||||
debugBuilder.setTitle("Pick a Test");
|
||||
debugBuilder.setItems(mView.getTestNames(),
|
||||
new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int item) {
|
||||
Toast.makeText(getApplicationContext(),
|
||||
"Switching to: " + mView.getTestNames()[item],
|
||||
@@ -108,7 +122,7 @@ public class RsBench extends Activity {
|
||||
mView.setDebugMode(item);
|
||||
}
|
||||
});
|
||||
builder.show();
|
||||
debugBuilder.show();
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
||||
@@ -248,8 +248,8 @@ public class RsBenchRS {
|
||||
mScript.invoke_setDebugMode(num);
|
||||
}
|
||||
|
||||
public void setBenchmarkMode() {
|
||||
mScript.invoke_setBenchmarkMode();
|
||||
public void setBenchmarkMode(int benchNum) {
|
||||
mScript.invoke_setBenchmarkMode(benchNum);
|
||||
}
|
||||
|
||||
private void initRS() {
|
||||
|
||||
@@ -88,8 +88,8 @@ public class RsBenchView extends RSSurfaceView {
|
||||
return mRender.testIsFinished();
|
||||
}
|
||||
|
||||
void setBenchmarkMode() {
|
||||
mRender.setBenchmarkMode();
|
||||
void setBenchmarkMode(int benchNum) {
|
||||
mRender.setBenchmarkMode(benchNum);
|
||||
}
|
||||
|
||||
void setDebugMode(int num) {
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.android.perftest;
|
||||
import android.os.Environment;
|
||||
import android.content.res.Resources;
|
||||
import android.renderscript.*;
|
||||
import android.util.DisplayMetrics;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
@@ -78,8 +79,12 @@ public class TextTest implements RsBenchBaseTest{
|
||||
}
|
||||
|
||||
void initTextScript() {
|
||||
DisplayMetrics metrics = mRes.getDisplayMetrics();
|
||||
|
||||
mTextScript = new ScriptC_text_test(mRS, mRes, R.raw.text_test);
|
||||
mTextScript.set_gFontSans(Font.create(mRS, mRes, "sans-serif", Font.Style.NORMAL, 8));
|
||||
mTextScript.set_gFontSerif(Font.create(mRS, mRes, "serif", Font.Style.NORMAL, 8));
|
||||
mTextScript.set_gFontSans(Font.create(mRS, mRes, "sans-serif",
|
||||
Font.Style.NORMAL, 8.0f / metrics.density));
|
||||
mTextScript.set_gFontSerif(Font.create(mRS, mRes, "serif",
|
||||
Font.Style.NORMAL, 8.0f / metrics.density));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,6 +122,7 @@ static bool checkInit() {
|
||||
}
|
||||
|
||||
static int benchMode = 0;
|
||||
static bool benchmarkSingleTest = false;
|
||||
static int benchSubMode = 0;
|
||||
static int runningLoops = 0;
|
||||
static bool sendMsgFlag = false;
|
||||
@@ -133,9 +134,16 @@ void setDebugMode(int testNumber) {
|
||||
rsgClearAllRenderTargets();
|
||||
}
|
||||
|
||||
void setBenchmarkMode() {
|
||||
void setBenchmarkMode(int testNumber) {
|
||||
gIsDebugMode = false;
|
||||
benchMode = 0;
|
||||
if (testNumber == -1) {
|
||||
benchmarkSingleTest = false;
|
||||
benchMode = 0;
|
||||
} else {
|
||||
benchmarkSingleTest = true;
|
||||
benchMode = testNumber;
|
||||
}
|
||||
|
||||
runningLoops = 0;
|
||||
}
|
||||
|
||||
@@ -190,9 +198,13 @@ static void benchmark() {
|
||||
rsDebug("Finishes test ", fps);
|
||||
|
||||
gResultBuffer[benchMode] = fps;
|
||||
drawOffscreenResult(0, 0,
|
||||
gRenderSurfaceW / 2,
|
||||
gRenderSurfaceH / 2);
|
||||
int bufferW = rsAllocationGetDimX(gRenderBufferColor);
|
||||
int bufferH = rsAllocationGetDimY(gRenderBufferColor);
|
||||
|
||||
int quadW = gRenderSurfaceW / 2;
|
||||
int quadH = (quadW * bufferH) / bufferW;
|
||||
drawOffscreenResult(0, 0, quadW, quadH);
|
||||
|
||||
int left = 0, right = 0, top = 0, bottom = 0;
|
||||
uint width = rsgGetWidth();
|
||||
uint height = rsgGetHeight();
|
||||
@@ -202,6 +214,10 @@ static void benchmark() {
|
||||
rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
rsgDrawText(gTestScripts[benchMode].testName, 2 -left, height - 2 + bottom);
|
||||
|
||||
if (benchmarkSingleTest) {
|
||||
return;
|
||||
}
|
||||
|
||||
benchMode ++;
|
||||
int testCount = rsAllocationGetDimX(rsGetAllocation(gTestScripts));
|
||||
if (benchMode == testCount) {
|
||||
|
||||
Reference in New Issue
Block a user