1000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma/*
2000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma * Copyright (C) 2012 The Android Open Source Project
3000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma *
4000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma * Licensed under the Apache License, Version 2.0 (the "License");
5000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma * you may not use this file except in compliance with the License.
6000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma * You may obtain a copy of the License at
7000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma *
8000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma *      http://www.apache.org/licenses/LICENSE-2.0
9000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma *
10000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma * Unless required by applicable law or agreed to in writing, software
11000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma * distributed under the License is distributed on an "AS IS" BASIS,
12000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma * See the License for the specific language governing permissions and
14000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma * limitations under the License.
15000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma */
16000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma
17000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharmapackage com.example.android.rs.computebench;
18000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharmaimport android.content.Context;
19000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharmaimport android.content.res.Resources;
20000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharmaimport android.renderscript.*;
21000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma
22000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharmapublic class Benchmark implements Runnable {
23000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma    private final RenderScript mRS;
24000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma    private ScriptC_compute_benchmark mScript;
25000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma
26000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma    public Benchmark(RenderScript rs, Resources res) {
27000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma        mRS = rs;
28000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma        mScript = new ScriptC_compute_benchmark(mRS, res, R.raw.compute_benchmark);
29000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma    }
30000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma
31000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma    public void run() {
32000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma        long t = java.lang.System.currentTimeMillis();
33000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma        mScript.invoke_bench();
34000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma        mRS.finish();
35000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma        t = java.lang.System.currentTimeMillis() - t;
36000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma        android.util.Log.v("ComputeBench", "Total benchmark took " + t + " ms");
37000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma    }
38000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma
39000dc53ca9dee764c8f39c17f8f36e5ecb7bf28aRajeev Sharma}
40