Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82c8cdab authored by Jason Sams's avatar Jason Sams Committed by Android (Google) Code Review
Browse files

Merge "Add run all button to image processing test." into jb-mr1-dev

parents 7546b5ff b94d69a2
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -124,6 +124,11 @@
                android:layout_marginRight="10sp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"/>
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/benchmark_all"
                    android:onClick="benchmark_all"/>
            </LinearLayout>
    </ScrollView>
</LinearLayout>
+1 −0
Original line number Diff line number Diff line
@@ -29,5 +29,6 @@
    <string name="gamma">Gamma</string>
    <string name="saturation">Saturation</string>
    <string name="benchmark">Benchmark</string>
    <string name="benchmark_all">Benchmark All</string>

</resources>
+47 −7
Original line number Diff line number Diff line
@@ -39,9 +39,21 @@ import android.view.View;
import android.util.Log;
import java.lang.Math;

import android.os.Environment;
import android.app.Instrumentation;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class ImageProcessingActivity extends Activity
                                       implements SeekBar.OnSeekBarChangeListener {
    private final String TAG = "Img";
    private final String RESULT_FILE = "image_processing_result.csv";

    Bitmap mBitmapIn;
    Bitmap mBitmapOut;
    String mTestNames[];
@@ -325,6 +337,33 @@ public class ImageProcessingActivity extends Activity
        //long javaTime = javaFilter();
        //mBenchmarkResult.setText("RS: " + t + " ms  Java: " + javaTime + " ms");
        mBenchmarkResult.setText("Result: " + t + " ms");
        Log.v(TAG, "getBenchmark: Renderscript frame time core ms " + t);
    }

    public void benchmark_all(View v) {
        // write result into a file
        File externalStorage = Environment.getExternalStorageDirectory();
        if (!externalStorage.canWrite()) {
            Log.v(TAG, "sdcard is not writable");
            return;
        }
        File resultFile = new File(externalStorage, RESULT_FILE);
        resultFile.setWritable(true, false);
        try {
            BufferedWriter rsWriter = new BufferedWriter(new FileWriter(resultFile));
            Log.v(TAG, "Saved results in: " + resultFile.getAbsolutePath());
            for (int i = 0; i < mTestNames.length; i++ ) {
                changeTest(i);
                float t = getBenchmark();
                String s = new String("" + mTestNames[i] + ", " + t);
                rsWriter.write(s + "\n");
                Log.v(TAG, "Test " + s + "ms\n");
            }
            rsWriter.close();
        } catch (IOException e) {
            Log.v(TAG, "Unable to write result file " + e.getMessage());
        }
        changeTest(0);
    }

    // For benchmark test
@@ -334,7 +373,7 @@ public class ImageProcessingActivity extends Activity
        mTest.setupBenchmark();
        long result = 0;

        Log.v(TAG, "Warming");
        //Log.v(TAG, "Warming");
        long t = java.lang.System.currentTimeMillis() + 2000;
        do {
            mTest.runTest();
@@ -342,17 +381,18 @@ public class ImageProcessingActivity extends Activity
        } while (t > java.lang.System.currentTimeMillis());


        Log.v(TAG, "Benchmarking");
        //Log.v(TAG, "Benchmarking");
        int ct = 0;
        t = java.lang.System.currentTimeMillis();
        for (int i=0; i<10; i++) {
        do {
            mTest.runTest();
        }
            mTest.finish();
            ct++;
        } while ((t+5000) > java.lang.System.currentTimeMillis());
        t = java.lang.System.currentTimeMillis() - t;
        float ft = (float)t;
        ft /= 10;
        ft /= ct;

        Log.v(TAG, "getBenchmark: Renderscript frame time core ms " + ft);
        mTest.exitBenchmark();
        mDoingBenchmark = false;