// button hook
public void benchmark(View v) {
- long t = getBenchmark();
+ float t = getBenchmark();
//long javaTime = javaFilter();
//mBenchmarkResult.setText("RS: " + t + " ms Java: " + javaTime + " ms");
mBenchmarkResult.setText("Result: " + t + " ms");
}
// For benchmark test
- public long getBenchmark() {
+ public float getBenchmark() {
mDoingBenchmark = true;
mTest.setupBenchmark();
Log.v(TAG, "Benchmarking");
t = java.lang.System.currentTimeMillis();
- mTest.runTest();
+ for (int i=0; i<10; i++) {
+ mTest.runTest();
+ }
mTest.finish();
t = java.lang.System.currentTimeMillis() - t;
+ float ft = (float)t;
+ ft /= 10;
- Log.v(TAG, "getBenchmark: Renderscript frame time core ms " + t);
+ Log.v(TAG, "getBenchmark: Renderscript frame time core ms " + ft);
mTest.exitBenchmark();
mDoingBenchmark = false;
- return t;
+ return ft;
}
}
BufferedWriter rsWriter = new BufferedWriter(new FileWriter(resultFile));
Log.v(TAG, "Saved results in: " + resultFile.getAbsolutePath());
for (int i = 0; i < ITERATION; i++ ) {
- t = mAct.getBenchmark();
+ t = (long)mAct.getBenchmark();
sum += t;
rsWriter.write("Renderscript frame time core: " + t + " ms\n");
Log.v(TAG, "RenderScript framew time core: " + t + " ms");
float gCoeffs[9];
void root(uchar4 *out, uint32_t x, uint32_t y) {
- uint32_t x1 = min((int32_t)x+1, gWidth);
+ uint32_t x1 = min((int32_t)x+1, gWidth-1);
uint32_t x2 = max((int32_t)x-1, 0);
- uint32_t y1 = min((int32_t)y+1, gHeight);
+ uint32_t y1 = min((int32_t)y+1, gHeight-1);
uint32_t y2 = max((int32_t)y-1, 0);
float4 p00 = convert_float4(((uchar4 *)rsGetElementAt(gIn, x1, y1))[0]);