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

Commit e7812aa7 authored by Jason Sams's avatar Jason Sams Committed by Android Git Automerger
Browse files

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

* commit '82c8cdab':
  Add run all button to image processing test.
parents 4645a871 82c8cdab
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;