Skip to content

Commit b2ae7a1

Browse files
author
Jason Sams
committed
Update compatibility library tests
bug 7327728 Change-Id: If3f85fb8944d7217a4d5c035f522d1ecc7af3a07
1 parent fa5bc08 commit b2ae7a1

35 files changed

+1391
-293
lines changed

CleanSpec.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framew
135135
$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/media/video/Disco*)
136136
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
137137
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/ImageProcessing_intermediates)
138+
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/ImageProcessing2_intermediates)
138139
# ************************************************
139140
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
140141
# ************************************************
1.01 MB
Loading
1.15 MB
Loading

tests/RenderScriptTests/ImageProcessing2/res/layout/main.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@
5454
android:id="@+id/filterselection"
5555
android:layout_width="fill_parent"
5656
android:layout_height="wrap_content"/>
57+
<Spinner
58+
android:id="@+id/spinner1"
59+
android:layout_width="fill_parent"
60+
android:layout_height="wrap_content"/>
5761
<TextView
5862
android:id="@+id/slider1Text"
5963
android:layout_width="match_parent"
@@ -124,6 +128,11 @@
124128
android:layout_marginRight="10sp"
125129
android:layout_width="match_parent"
126130
android:layout_height="wrap_content"/>
131+
<Button
132+
android:layout_width="wrap_content"
133+
android:layout_height="wrap_content"
134+
android:text="@string/benchmark_all"
135+
android:onClick="benchmark_all"/>
127136
</LinearLayout>
128137
</ScrollView>
129138
</LinearLayout>

tests/RenderScriptTests/ImageProcessing2/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,6 @@
2929
<string name="gamma">Gamma</string>
3030
<string name="saturation">Saturation</string>
3131
<string name="benchmark">Benchmark</string>
32+
<string name="benchmark_all">Benchmark All</string>
3233

3334
</resources>
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
/*
2+
* Copyright (C) 2012 The Android Open Source Project
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.android.rs.image2;
18+
19+
import java.lang.Math;
20+
import java.lang.Short;
21+
22+
import android.support.v8.renderscript.*;
23+
import android.util.Log;
24+
import android.widget.SeekBar;
25+
import android.widget.TextView;
26+
import android.widget.AdapterView;
27+
import android.widget.ArrayAdapter;
28+
import android.view.View;
29+
import android.widget.Spinner;
30+
31+
public class Blend extends TestBase {
32+
private ScriptIntrinsicBlend mBlend;
33+
private ScriptC_blend mBlendHelper;
34+
private short image1Alpha = 128;
35+
private short image2Alpha = 128;
36+
37+
String mIntrinsicNames[];
38+
39+
private Allocation image1;
40+
private Allocation image2;
41+
private int currentIntrinsic = 0;
42+
43+
private AdapterView.OnItemSelectedListener mIntrinsicSpinnerListener =
44+
new AdapterView.OnItemSelectedListener() {
45+
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
46+
currentIntrinsic = pos;
47+
runTest();
48+
act.updateDisplay();
49+
}
50+
51+
public void onNothingSelected(AdapterView parent) {
52+
53+
}
54+
};
55+
56+
public void createTest(android.content.res.Resources res) {
57+
mBlend = ScriptIntrinsicBlend.create(mRS, Element.U8_4(mRS));
58+
mBlendHelper = new ScriptC_blend(mRS);
59+
mBlendHelper.set_alpha((short)128);
60+
61+
image1 = Allocation.createTyped(mRS, mInPixelsAllocation.getType());
62+
image2 = Allocation.createTyped(mRS, mInPixelsAllocation2.getType());
63+
64+
mIntrinsicNames = new String[14];
65+
mIntrinsicNames[0] = "Source";
66+
mIntrinsicNames[1] = "Destination";
67+
mIntrinsicNames[2] = "Source Over";
68+
mIntrinsicNames[3] = "Destination Over";
69+
mIntrinsicNames[4] = "Source In";
70+
mIntrinsicNames[5] = "Destination In";
71+
mIntrinsicNames[6] = "Source Out";
72+
mIntrinsicNames[7] = "Destination Out";
73+
mIntrinsicNames[8] = "Source Atop";
74+
mIntrinsicNames[9] = "Destination Atop";
75+
mIntrinsicNames[10] = "XOR";
76+
mIntrinsicNames[11] = "Add";
77+
mIntrinsicNames[12] = "Subtract";
78+
mIntrinsicNames[13] = "Multiply";
79+
}
80+
81+
public boolean onSpinner1Setup(Spinner s) {
82+
s.setAdapter(new ArrayAdapter<String>(
83+
act, R.layout.spinner_layout, mIntrinsicNames));
84+
s.setOnItemSelectedListener(mIntrinsicSpinnerListener);
85+
return true;
86+
}
87+
88+
public boolean onBar1Setup(SeekBar b, TextView t) {
89+
t.setText("Image 1 Alpha");
90+
b.setMax(255);
91+
b.setProgress(image1Alpha);
92+
return true;
93+
}
94+
95+
public void onBar1Changed(int progress) {
96+
image1Alpha = (short)progress;
97+
}
98+
99+
public boolean onBar2Setup(SeekBar b, TextView t) {
100+
t.setText("Image 2 Alpha");
101+
b.setMax(255);
102+
b.setProgress(image2Alpha);
103+
return true;
104+
}
105+
106+
public void onBar2Changed(int progress) {
107+
image2Alpha = (short)progress;
108+
}
109+
110+
public void runTest() {
111+
image1.copy2DRangeFrom(0, 0, mInPixelsAllocation.getType().getX(), mInPixelsAllocation.getType().getY(), mInPixelsAllocation, 0, 0);
112+
image2.copy2DRangeFrom(0, 0, mInPixelsAllocation2.getType().getX(), mInPixelsAllocation2.getType().getY(), mInPixelsAllocation2, 0, 0);
113+
114+
mBlendHelper.set_alpha(image1Alpha);
115+
mBlendHelper.forEach_setImageAlpha(image1);
116+
117+
mBlendHelper.set_alpha(image2Alpha);
118+
mBlendHelper.forEach_setImageAlpha(image2);
119+
120+
switch (currentIntrinsic) {
121+
case 0:
122+
mBlend.forEachSrc(image1, image2);
123+
break;
124+
case 1:
125+
mBlend.forEachDst(image1, image2);
126+
break;
127+
case 2:
128+
mBlend.forEachSrcOver(image1, image2);
129+
break;
130+
case 3:
131+
mBlend.forEachDstOver(image1, image2);
132+
break;
133+
case 4:
134+
mBlend.forEachSrcIn(image1, image2);
135+
break;
136+
case 5:
137+
mBlend.forEachDstIn(image1, image2);
138+
break;
139+
case 6:
140+
mBlend.forEachSrcOut(image1, image2);
141+
break;
142+
case 7:
143+
mBlend.forEachDstOut(image1, image2);
144+
break;
145+
case 8:
146+
mBlend.forEachSrcAtop(image1, image2);
147+
break;
148+
case 9:
149+
mBlend.forEachDstAtop(image1, image2);
150+
break;
151+
case 10:
152+
mBlend.forEachXor(image1, image2);
153+
break;
154+
case 11:
155+
mBlend.forEachAdd(image1, image2);
156+
break;
157+
case 12:
158+
mBlend.forEachSubtract(image1, image2);
159+
break;
160+
case 13:
161+
mBlend.forEachMultiply(image1, image2);
162+
break;
163+
}
164+
165+
mOutPixelsAllocation.copy2DRangeFrom(0, 0, image2.getType().getX(), image2.getType().getY(), image2, 0, 0);
166+
}
167+
168+
}

tests/RenderScriptTests/ImageProcessing2/src/com/android/rs/image/Blur25.java

Lines changed: 55 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -24,78 +24,91 @@
2424
import android.widget.TextView;
2525

2626
public class Blur25 extends TestBase {
27+
private boolean mUseIntrinsic = false;
28+
private ScriptIntrinsicBlur mIntrinsic;
29+
2730
private int MAX_RADIUS = 25;
2831
private ScriptC_threshold mScript;
29-
private ScriptC_vertical_blur mScriptVBlur;
30-
private ScriptC_horizontal_blur mScriptHBlur;
31-
private int mRadius = MAX_RADIUS;
32+
private float mRadius = MAX_RADIUS;
3233
private float mSaturation = 1.0f;
3334
private Allocation mScratchPixelsAllocation1;
3435
private Allocation mScratchPixelsAllocation2;
3536

3637

38+
public Blur25(boolean useIntrinsic) {
39+
mUseIntrinsic = useIntrinsic;
40+
}
41+
3742
public boolean onBar1Setup(SeekBar b, TextView t) {
3843
t.setText("Radius");
3944
b.setProgress(100);
4045
return true;
4146
}
42-
public boolean onBar2Setup(SeekBar b, TextView t) {
43-
b.setProgress(50);
44-
t.setText("Saturation");
45-
return true;
46-
}
4747

4848

4949
public void onBar1Changed(int progress) {
50-
float fRadius = progress / 100.0f;
51-
fRadius *= (float)(MAX_RADIUS);
52-
mRadius = (int)fRadius;
53-
mScript.set_radius(mRadius);
54-
}
55-
public void onBar2Changed(int progress) {
56-
mSaturation = (float)progress / 50.0f;
57-
mScriptVBlur.invoke_setSaturation(mSaturation);
50+
mRadius = ((float)progress) / 100.0f * MAX_RADIUS;
51+
if (mRadius <= 0.10f) {
52+
mRadius = 0.10f;
53+
}
54+
if (mUseIntrinsic) {
55+
mIntrinsic.setRadius(mRadius);
56+
} else {
57+
mScript.invoke_setRadius((int)mRadius);
58+
}
5859
}
5960

6061

6162
public void createTest(android.content.res.Resources res) {
6263
int width = mInPixelsAllocation.getType().getX();
6364
int height = mInPixelsAllocation.getType().getY();
6465

65-
Type.Builder tb = new Type.Builder(mRS, Element.F32_4(mRS));
66-
tb.setX(width);
67-
tb.setY(height);
68-
mScratchPixelsAllocation1 = Allocation.createTyped(mRS, tb.create());
69-
mScratchPixelsAllocation2 = Allocation.createTyped(mRS, tb.create());
70-
71-
mScriptVBlur = new ScriptC_vertical_blur(mRS, res, R.raw.vertical_blur);
72-
mScriptHBlur = new ScriptC_horizontal_blur(mRS, res, R.raw.horizontal_blur);
73-
74-
mScript = new ScriptC_threshold(mRS, res, R.raw.threshold);
75-
mScript.set_width(width);
76-
mScript.set_height(height);
77-
mScript.set_radius(mRadius);
78-
79-
mScriptVBlur.invoke_setSaturation(mSaturation);
80-
81-
mScript.bind_InPixel(mInPixelsAllocation);
82-
mScript.bind_OutPixel(mOutPixelsAllocation);
83-
mScript.bind_ScratchPixel1(mScratchPixelsAllocation1);
84-
mScript.bind_ScratchPixel2(mScratchPixelsAllocation2);
85-
86-
mScript.set_vBlurScript(mScriptVBlur);
87-
mScript.set_hBlurScript(mScriptHBlur);
66+
if (mUseIntrinsic) {
67+
mIntrinsic = ScriptIntrinsicBlur.create(mRS, Element.U8_4(mRS));
68+
mIntrinsic.setRadius(MAX_RADIUS);
69+
mIntrinsic.setInput(mInPixelsAllocation);
70+
} else {
71+
72+
Type.Builder tb = new Type.Builder(mRS, Element.F32_4(mRS));
73+
tb.setX(width);
74+
tb.setY(height);
75+
mScratchPixelsAllocation1 = Allocation.createTyped(mRS, tb.create());
76+
mScratchPixelsAllocation2 = Allocation.createTyped(mRS, tb.create());
77+
78+
mScript = new ScriptC_threshold(mRS, res, R.raw.threshold);
79+
mScript.set_width(width);
80+
mScript.set_height(height);
81+
mScript.invoke_setRadius(MAX_RADIUS);
82+
83+
mScript.set_InPixel(mInPixelsAllocation);
84+
mScript.set_ScratchPixel1(mScratchPixelsAllocation1);
85+
mScript.set_ScratchPixel2(mScratchPixelsAllocation2);
86+
}
8887
}
8988

9089
public void runTest() {
91-
mScript.invoke_filter();
90+
if (mUseIntrinsic) {
91+
mIntrinsic.forEach(mOutPixelsAllocation);
92+
} else {
93+
mScript.forEach_copyIn(mInPixelsAllocation, mScratchPixelsAllocation1);
94+
mScript.forEach_horz(mScratchPixelsAllocation2);
95+
mScript.forEach_vert(mOutPixelsAllocation);
96+
}
9297
}
9398

9499
public void setupBenchmark() {
95-
mScript.set_radius(MAX_RADIUS);
100+
if (mUseIntrinsic) {
101+
mIntrinsic.setRadius(MAX_RADIUS);
102+
} else {
103+
mScript.invoke_setRadius(MAX_RADIUS);
104+
}
96105
}
97106

98107
public void exitBenchmark() {
99-
mScript.set_radius(mRadius);
108+
if (mUseIntrinsic) {
109+
mIntrinsic.setRadius(mRadius);
110+
} else {
111+
mScript.invoke_setRadius((int)mRadius);
112+
}
100113
}
101114
}

0 commit comments

Comments
 (0)