From 37333001cb7801ab510ce0216183bf8df2e93b08 Mon Sep 17 00:00:00 2001 From: Alex Sakhartchouk Date: Thu, 17 Nov 2011 14:08:47 -0800 Subject: adding benchmark single test Change-Id: I902579085bfee2f0bdc0bf4f38442f2f1569bf71 --- .../PerfTest/res/menu/loader_menu.xml | 7 ++++-- .../PerfTest/res/values/strings.xml | 4 +++- .../PerfTest/src/com/android/perftest/RsBench.java | 22 ++++++++++++++---- .../src/com/android/perftest/RsBenchRS.java | 4 ++-- .../src/com/android/perftest/RsBenchView.java | 4 ++-- .../src/com/android/perftest/TextTest.java | 9 ++++++-- .../PerfTest/src/com/android/perftest/rsbench.rs | 26 +++++++++++++++++----- 7 files changed, 58 insertions(+), 18 deletions(-) (limited to 'tests/RenderScriptTests/PerfTest') diff --git a/tests/RenderScriptTests/PerfTest/res/menu/loader_menu.xml b/tests/RenderScriptTests/PerfTest/res/menu/loader_menu.xml index 823467758827..59a251dbf837 100644 --- a/tests/RenderScriptTests/PerfTest/res/menu/loader_menu.xml +++ b/tests/RenderScriptTests/PerfTest/res/menu/loader_menu.xml @@ -18,8 +18,11 @@ --> - + + + diff --git a/tests/RenderScriptTests/PerfTest/res/values/strings.xml b/tests/RenderScriptTests/PerfTest/res/values/strings.xml index 627ac212db8d..ce9819e8d815 100644 --- a/tests/RenderScriptTests/PerfTest/res/values/strings.xml +++ b/tests/RenderScriptTests/PerfTest/res/values/strings.xml @@ -19,6 +19,8 @@ - Benchmark Mode + Benchmark All + Benchmark One Debug Mode + diff --git a/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBench.java b/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBench.java index b336a4d03550..4ed42b423f31 100644 --- a/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBench.java +++ b/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBench.java @@ -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); diff --git a/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBenchRS.java b/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBenchRS.java index b8360d7480f4..c51bd8269d16 100644 --- a/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBenchRS.java +++ b/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBenchRS.java @@ -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() { diff --git a/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBenchView.java b/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBenchView.java index efcb46308972..004e6bf4131f 100644 --- a/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBenchView.java +++ b/tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBenchView.java @@ -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) { diff --git a/tests/RenderScriptTests/PerfTest/src/com/android/perftest/TextTest.java b/tests/RenderScriptTests/PerfTest/src/com/android/perftest/TextTest.java index 65290e7c657a..ca9e660c67d7 100644 --- a/tests/RenderScriptTests/PerfTest/src/com/android/perftest/TextTest.java +++ b/tests/RenderScriptTests/PerfTest/src/com/android/perftest/TextTest.java @@ -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)); } } diff --git a/tests/RenderScriptTests/PerfTest/src/com/android/perftest/rsbench.rs b/tests/RenderScriptTests/PerfTest/src/com/android/perftest/rsbench.rs index 68f281492aaf..2b849a280552 100644 --- a/tests/RenderScriptTests/PerfTest/src/com/android/perftest/rsbench.rs +++ b/tests/RenderScriptTests/PerfTest/src/com/android/perftest/rsbench.rs @@ -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) { -- cgit v1.2.3-59-g8ed1b