Merge "Runtime support for mapping kernels with multiple input allocations"
diff --git a/build_rs.py b/build_rs.py
index 830d4d6..8641fb6 100755
--- a/build_rs.py
+++ b/build_rs.py
@@ -118,6 +118,25 @@
install_clang_headers(build_dir, install_dir, host)
install_built_device_files(build_dir, install_dir, host)
install_license_files(install_dir)
+ # We need to package libwinpthread-1.dll for Windows. This is explicitly
+ # linked whenever pthreads is used, and the build system doesn't allow
+ # us to link just that library statically (ldflags are stripped out
+ # of ldlibs and vice-versa).
+ # Bug: http://b/34273721
+ if host.startswith('windows'):
+ install_winpthreads(install_dir)
+
+
+def install_winpthreads(install_dir):
+ """Installs the winpthreads runtime to the Windows bin directory."""
+ lib_name = 'libwinpthread-1.dll'
+ mingw_dir = android_path(
+ 'prebuilts/gcc/linux-x86/host/x86_64-w64-mingw32-4.8')
+ # RenderScript NDK toolchains for Windows only contains 32-bit binaries.
+ lib_path = os.path.join(mingw_dir, 'x86_64-w64-mingw32/lib32', lib_name)
+
+ lib_install = os.path.join(install_dir, 'bin', lib_name)
+ install_file(lib_path, lib_install)
def install_built_host_files(build_dir, install_dir, host):
@@ -155,6 +174,10 @@
for built_file in built_files:
dirname = os.path.dirname(built_file)
+ # Put dlls and exes into bin/ for windows.
+ # Bug: http://b/34273721
+ if is_windows:
+ dirname = 'bin'
install_path = os.path.join(install_dir, dirname)
if not os.path.exists(install_path):
os.makedirs(install_path)
diff --git a/java/tests/Android.mk b/java/tests/Android.mk
deleted file mode 100644
index 9b55c42..0000000
--- a/java/tests/Android.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-ifneq (true,$(TARGET_BUILD_PDK))
-include $(call all-subdir-makefiles)
-endif
diff --git a/java/tests/Refocus/res/layout/activity_main.xml b/java/tests/Refocus/res/layout/activity_main.xml
deleted file mode 100644
index b955264..0000000
--- a/java/tests/Refocus/res/layout/activity_main.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
- android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
- android:orientation="vertical">
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="0.4">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Pointer RenderScript"
- android:id="@+id/orignialImageLabel"
- android:layout_gravity="left"/>
- <ImageView
- android:id="@+id/image_view"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@id/orignialImageLabel"
- />
- </RelativeLayout>
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="0.4">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Global Allocation RenderScript"
- android:id="@+id/newImageLabel"
- android:layout_gravity="left"/>
- <ImageView
- android:id="@+id/image_view_new"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@id/newImageLabel"
- />
- </RelativeLayout>
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_weight="0.2">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Compare Result"
- android:id="@+id/compareTextView"
- android:layout_gravity="right"/>
- </RelativeLayout>
-
-</LinearLayout>
diff --git a/java/tests/Refocus/src/com/android/rs/test/DepthImage.java b/java/tests/Refocus/src/com/android/rs/test/DepthImage.java
deleted file mode 100644
index cc7c53a..0000000
--- a/java/tests/Refocus/src/com/android/rs/test/DepthImage.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package com.android.rs.refocus;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.net.Uri;
-
-
-import android.os.AsyncTask;
-import android.support.v8.renderscript.Allocation;
-import android.support.v8.renderscript.RenderScript;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * Created by hoford on 5/15/15.
- */
-public class DepthImage {
- private final String mFormat;
- private final double mFar;
- private final double mNear;
- private final Bitmap mDepthBitmap;
- private final double mBlurAtInfinity;
- private final double mFocalDistance;
- private final double mDepthOfFiled;
- private final double mFocalPointX;
- private final double mFocalPointY;
- private final DepthTransform mDepthTransform;
- public DepthImage(Context context, Uri data) throws IOException {
- InputStream input = context.getContentResolver().openInputStream(data);
- XmpDepthDecode decode = new XmpDepthDecode(input);
- mFormat = decode.getFormat();
- mFar = decode.getFar();
- mNear = decode.getNear();
- mDepthBitmap = decode.getDepthBitmap();
- mBlurAtInfinity = decode.getBlurAtInfinity();
- mFocalDistance = decode.getFocalDistance();
- mDepthOfFiled = decode.getDepthOfField();
- mFocalPointX = decode.getFocalPointX();
- mFocalPointY = decode.getFocalPointY();
- input = context.getContentResolver().openInputStream(data);
- mDepthTransform = decode.getDepthTransform();
- }
-
- public Bitmap getDepthBitmap() {
- return mDepthBitmap;
- }
-
- public DepthTransform getDepthTransform() { return mDepthTransform; }
-
- public String getFormat() {
- return mFormat;
- }
-
- public double getFar() {
- return mFar;
- }
-
- public double getNear() {
- return mNear;
- }
-
- public double getBlurAtInfinity() {
- return mBlurAtInfinity;
- }
-
- public double getFocalDistance() {
- return mFocalDistance;
- }
-
- public double getDepthOfField() {return mDepthOfFiled; }
-
- public double getFocalPointX() {
- return mFocalPointX;
- }
-
- public double getFocalPointY() {
- return mFocalPointY;
- }
-}
-
diff --git a/java/tests/Refocus/src/com/android/rs/test/ImageCompare.java b/java/tests/Refocus/src/com/android/rs/test/ImageCompare.java
deleted file mode 100644
index b390e35..0000000
--- a/java/tests/Refocus/src/com/android/rs/test/ImageCompare.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package com.android.rs.refocus;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.os.Environment;
-import android.util.Log;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.nio.ByteBuffer;
-
-/**
- * Created by xinyiwang on 6/30/15.
- */
-public class ImageCompare {
- private static byte[] loadImageByteArray(String file_path) {
- Bitmap bitmap = BitmapFactory.decodeFile(file_path);
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
- bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
- return stream.toByteArray();
- }
-
- public static boolean compareImage(String file1, String file2) {
- byte[] first = loadImageByteArray(file1);
- byte[] second = loadImageByteArray(file2);
-
- for (int i = 0; i < first.length; i++) {
- int v1 = 0xFF & first[i];
- int v2 = 0xFF & second[i];
- int error = Math.abs(v1 - v2);
- if (error > 2) {
- return false;
- }
- }
- return true;
- }
-
- private static byte[] loadBitmapByteArray(Bitmap bitmap) {
- int bytes = bitmap.getByteCount();
- ByteBuffer buffer = ByteBuffer.allocate(bytes);
- bitmap.copyPixelsToBuffer(buffer);
- byte[] array = buffer.array();
- return array;
- }
-
- public static class CompareValue {
- float aveDiff = 0;
- float diffPercent = 0f;
- }
-
- public static void compareBitmap(Bitmap bitmap1, Bitmap bitmap2, CompareValue result) {
- byte[] first = loadBitmapByteArray(bitmap1);
- byte[] second = loadBitmapByteArray(bitmap2);
-
- int loopCount = first.length > second.length ? second.length : first.length;
-
- int diffCount = 0;
- int diffSum = 0;
- for (int i = 0; i < loopCount; i++) {
- int v1 = 0xFF & first[i];
- int v2 = 0xFF & second[i];
- int error = Math.abs(v1 - v2);
- if (error > 0) {
- diffCount++;
- //if (error > result.maxDiff) {
- //result.maxDiff = error;
- //}
- diffSum += error;
- }
- }
- result.diffPercent = ((float)diffCount)/first.length;
- result.aveDiff = ((float)diffSum)/first.length;
- }
-
- public static void compareIntermediate(String folder1, String folder2) {
- File folder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
- String folder_path = folder.getAbsolutePath();
- //String folder_path = "/storage/self/primary/";
- String file_path_1_base = folder_path + "/" + folder1;
- String file_path_2_base = folder_path + "/" + folder2;
- File dir1 = new File(file_path_1_base);
-
- for ( File imgFile : dir1.listFiles()) {
- String file_path_2 = file_path_2_base + "/" + imgFile.getName();
- String file_path_1 = file_path_1_base + "/" + imgFile.getName();
- System.out.println(file_path_1);
- System.out.println(file_path_2);
- boolean same = compareImage(file_path_1, file_path_2);
- if (same) {
- Log.d("imageCompare:", imgFile.getName() + " is the same!");
- } else {
- Log.d("imageCompare:", imgFile.getName() + " is different!");
- }
- }
- }
-
- public static void printWrongIndex(String folder1, String folder2, String file, Context mContext) {
- File folder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
- String folder_path = folder.getAbsolutePath();
- //String folder_path = "/storage/self/primary/";
- String file_path_1 = folder_path + "/" + folder1 + "/" + file;
- String file_path_2 = folder_path + "/" + folder2 + "/" + file;
-
-
-
- Bitmap bitmap1 = BitmapFactory.decodeFile(file_path_1);
- ByteArrayOutputStream stream1 = new ByteArrayOutputStream();
- bitmap1.compress(Bitmap.CompressFormat.PNG, 100, stream1);
- byte[] first = stream1.toByteArray();
-
- Bitmap bitmap2 = BitmapFactory.decodeFile(file_path_1);
- ByteArrayOutputStream stream2 = new ByteArrayOutputStream();
- bitmap2.compress(Bitmap.CompressFormat.PNG, 100, stream2);
- byte[] second = stream2.toByteArray();
-
- int width = bitmap1.getWidth();
- int height = bitmap1.getHeight();
-
- byte[] difference = new byte[first.length];
- //System.out.println("Total pixel: " + width * height);
- //System.out.println("intdifference length: " + intdifference.length);
- //System.out.println("byte array length" + first.length);
-
- for (int i = 0; i < first.length; i++) {
- int v1 = 0xFF & first[i];
- int v2 = 0xFF & second[i];
- int error = Math.abs(v1 - v2);
- //if (error > 2 ) {
- // intdifference[i/4] = 0;
- //} else {
- // intdifference[i/4] = 255;
- //}
- difference[i] = (byte)(first[i] - second[i]);
- }
-
- //Bitmap differenceBitmap = Bitmap.createBitmap(difference, width, height, Bitmap.Config.ARGB_8888);
-
- Bitmap differenceBitmap = BitmapFactory.decodeByteArray(difference,0, difference.length);
- MediaStoreSaver.savePNG(differenceBitmap, "difference", "updateSharp1Difference.png", mContext);
- System.out.println("difference image saved!");
- }
-}
diff --git a/java/tests/Refocus/src/com/android/rs/test/MainActivity.java b/java/tests/Refocus/src/com/android/rs/test/MainActivity.java
deleted file mode 100644
index ebd1901..0000000
--- a/java/tests/Refocus/src/com/android/rs/test/MainActivity.java
+++ /dev/null
@@ -1,212 +0,0 @@
-package com.android.rs.refocus;
-
-import android.app.Activity;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Environment;
-import android.os.Bundle;
-import android.support.v8.renderscript.RenderScript;
-import android.util.Log;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import java.io.File;
-import java.io.IOException;
-
-public class MainActivity extends Activity {
- private static final int RS_API = 19;
- private static final String TAG = "MainActivity";
-
- ImageView mImgView;
-
- ImageView mNewImgView;
- TextView mCompareTextView;
- TextView mPointerLabelTextView;
- TextView mAllocLabelTextView;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mImgView = (ImageView) findViewById(R.id.image_view);
- mNewImgView = (ImageView) findViewById(R.id.image_view_new);
- mCompareTextView = (TextView) findViewById(R.id.compareTextView);
- mPointerLabelTextView = (TextView) findViewById(R.id.orignialImageLabel);
- mAllocLabelTextView = (TextView) findViewById(R.id.newImageLabel);
-
- Intent intent = getIntent();
- if (intent != null) {
-
- String s = intent.getType();
- if (s != null && s.indexOf("image/") != -1) {
- Uri data = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
- if (data != null) {
-
- try {
- RenderScript renderScript = RenderScript.create(getApplicationContext(), RS_API);
- renderScript.setPriority(RenderScript.Priority.NORMAL);
-
- // Get input uri to RGBZ
- RGBZ current_rgbz = new RGBZ(data, getContentResolver(), this);
- DepthOfFieldOptions current_depth_options = new DepthOfFieldOptions(current_rgbz);
-
- // Set image focus settings
- current_depth_options.setFocusPoint(0.7f, 0.5f);
- current_depth_options.setBokeh(2f);
-
- RsTaskParams rsTaskParam = new RsTaskParams(renderScript, current_depth_options);
- new RsAsyncTaskRunner().execute(rsTaskParam);
- return;
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
- }
- }
-
-
- try {
- //Uri data = getLocalRef();
- Uri data = getResourceRef();
- if (data == null) {
- return;
- }
-
- RenderScript renderScript = RenderScript.create(getApplicationContext(), RS_API);
- renderScript.setPriority(RenderScript.Priority.NORMAL);
-
- // Get input uri to RGBZ
- RGBZ current_rgbz = new RGBZ(data, getContentResolver(), this);
- DepthOfFieldOptions current_depth_options = new DepthOfFieldOptions(current_rgbz);
-
- // Set image focus settings
- current_depth_options.setFocusPoint(0.7f, 0.5f);
- current_depth_options.setBokeh(2f);
-
- RsTaskParams rsTaskParam = new RsTaskParams(renderScript, current_depth_options);
- new RsAsyncTaskRunner().execute(rsTaskParam);
- return;
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- private static class RsTaskParams {
- RenderScript mRenderScript;
- DepthOfFieldOptions mOptions;
-
- RsTaskParams(RenderScript renderScript,
- DepthOfFieldOptions options) {
- mRenderScript = renderScript;
- mOptions = options;
- }
- }
-
- private class RsAsyncTaskRunner extends AsyncTask<RsTaskParams, Integer, Bitmap> {
-
- Bitmap outputImage;
- Bitmap outputImageNew;
- ImageCompare.CompareValue result;
-
- @Override
- protected Bitmap doInBackground(RsTaskParams... params) {
-
- publishProgress(0);
-
- RenderScriptTask renderScriptTask = new RenderScriptTask(params[0].mRenderScript, RenderScriptTask.script.f32);
- outputImage = renderScriptTask.applyRefocusFilter(params[0].mOptions);
- publishProgress(1);
-
- RenderScriptTask renderScriptTaskNew = new RenderScriptTask(params[0].mRenderScript, RenderScriptTask.script.d1new);
- outputImageNew = renderScriptTaskNew.applyRefocusFilter(params[0].mOptions);
- publishProgress(2);
-
- result = new ImageCompare.CompareValue();
- ImageCompare.compareBitmap(outputImage, outputImageNew, result);
- publishProgress(3);
-
- return outputImage;
- }
-
- protected void onPostExecute(Bitmap result) {
-
- }
-
- protected void onProgressUpdate(Integer... progress) {
- switch (progress[0]){
- case 0:
- mAllocLabelTextView.setText("Global Allocation Version...");
- mPointerLabelTextView.setText("Processing...");
- mCompareTextView.setText("Image Difference");
- case 1:
- mImgView.setImageBitmap(outputImage);
- mImgView.invalidate();
- mPointerLabelTextView.setText("Pointer Result");
- mAllocLabelTextView.setText("Processing...");
- break;
- case 2:
- mNewImgView.setImageBitmap(outputImageNew);
- mNewImgView.invalidate();
- mAllocLabelTextView.setText("Global Allocation Version");
- mCompareTextView.setText("Calculating...");
- break;
- case 3:
- mCompareTextView.setText("Percentage Different: " + result.diffPercent + " Average Difference: " + result.aveDiff);
- break;
- }
- }
- }
-
- Uri getLocalRef() {
-
-
- File folder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
-
- Log.v(TAG, "DIRECTORY_DOCUMENTS = " + folder.getAbsolutePath());
- ;
- File f = findJpeg(folder);
- if (f != null) {
- Log.v(TAG, "File = " + f);
- return Uri.fromFile(f);
- }
- return null;
- }
-
- Uri getResourceRef() {
- Context context = getApplicationContext();
- int resID = R.drawable.refocusimage;
- Uri path = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
- context.getResources().getResourcePackageName(resID) + '/' +
- context.getResources().getResourceTypeName(resID) + '/' +
- context.getResources().getResourceEntryName(resID));
- return path;
- }
-
- private File findJpeg(File dir) {
-
- File[] files = dir.listFiles();
- if (files == null) return null;
- for (int i = 0; i < files.length; i++) {
- if (files[i].isDirectory() && !files[i].getName().startsWith(".")) {
- File ret = findJpeg(files[i]);
- if (ret != null) {
- Log.v(TAG, "returning " + ret.getAbsolutePath());
- return ret;
- }
- continue;
- }
- if (files[i].getName().toLowerCase().endsWith(".jpg")) {
- Log.v(TAG, "returning " + files[i].getAbsolutePath());
- return files[i];
-
- }
- }
- return null;
- }
-
-}
diff --git a/java/tests/Refocus/src/com/android/rs/test/RGBZ.java b/java/tests/Refocus/src/com/android/rs/test/RGBZ.java
deleted file mode 100644
index e26f7ef..0000000
--- a/java/tests/Refocus/src/com/android/rs/test/RGBZ.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package com.android.rs.refocus;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Color;
-import android.net.Uri;
-import android.util.Log;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-/**
- * An RGBZ image, where Z stands for depth, i.e. a color+depth image.
- * The RGBZ always has a preview image, which represents the latest rendering of the RGBZ.
- * The preview is encoded as the normal jpeg content for client compatibility,
- * while the color channel and depth channels are encoded as XMP data.
- * The class supports lazy initialization where the XMP meta data is loaded only when first
- * accessed.
- *
- * @author chernand@google.com (Carlos Hernandez)
- */
-public class RGBZ {
- public static final String TAG = "RGBZ";
-
- private Bitmap bitmap;
- private Bitmap preview;
- private Bitmap depthBitmap;
- private DepthTransform depthTransform;
- private DepthImage depthImage;
-
- /**
- * Creates an RGBZ from a content uri.
- *
- * @param uri The uri name of the RGBZ
- * @throws FileNotFoundException if the RGBZ could not be read
- */
- public RGBZ(Uri uri, ContentResolver contentResolver, Context context) throws IOException {
- preview = BitmapFactory.decodeStream(contentResolver.openInputStream(uri));
- if (preview == null) {
- throw new FileNotFoundException(uri.toString());
- }
- this.depthImage = new DepthImage(context, uri);
- this.depthBitmap = depthImage.getDepthBitmap();
- this.bitmap = setAlphaChannel(preview, this.depthBitmap);
- this.depthTransform = depthImage.getDepthTransform();
- }
-
- /**
- * @return Whether the RGBZ has a depth channel
- */
- public boolean hasDepthmap() {
- return depthTransform != null;
- }
-
- /**
- * @return The color+depth {@code Bitmap}
- */
- public Bitmap getBitmap() {
- return bitmap;
- }
-
- /**
- * @return The depthmap component of this RGBZ
- */
- public DepthTransform getDepthTransform() {
- return depthTransform;
- }
-
- public double getFocusDepth() {
- return this.depthImage.getFocalDistance();
- }
-
- public double getDepthOfField() {
- return this.depthImage.getDepthOfField();
- }
-
- public double getBlurInfinity() {
- return this.depthImage.getBlurAtInfinity();
- }
-
- /**
- * @return the width of this {@code RGBZ}
- */
- public int getWidth() {
- return bitmap.getWidth();
- }
-
- /**
- * @return the height of this {@code RGBZ}
- */
- public int getHeight() {
- return bitmap.getHeight();
- }
-
- /**
- * @return the depth value of the given pixel
- */
-
- public float getDepth(int x, int y) {
- if (!hasDepthmap()) {
- return 0.0f;
- }
- if (x < 0 || x > depthBitmap.getWidth() ||
- y < 0 || y > depthBitmap.getHeight()) {
- Log.e("RGBZ getDepth", "index out of bound");
- return 0;
- }
- return getDepthTransform().reconstruct(Color.blue(depthBitmap.getPixel(x, y)));
- }
-
- /**
- * Sets the depthmap as the alpha channel of the {@code Bitmap}.
- */
- public Bitmap setAlphaChannel(Bitmap bitmap, Bitmap depthBitmap) {
- if (bitmap == null) {
- return bitmap;
- }
- Bitmap result = bitmap.copy(Bitmap.Config.ARGB_8888, true);
- // set the alpha channel of depthBitmap to alpha of bitmap
- result = setAlphaChannelFromBitmap(depthBitmap, bitmap, result);
- return result;
- }
-
- private Bitmap setAlphaChannelFromBitmap(Bitmap depth, Bitmap orig, Bitmap dest) {
- int w = orig.getWidth();
- int h = orig.getHeight();
- int[] orig_data = new int[w*h];
- int[] depth_data = new int[w*h];
-
- orig.getPixels(orig_data, 0, w, 0, 0, w, h);
- depth.getPixels(depth_data, 0, w, 0, 0, w, h);
- for (int i = 0; i < orig_data.length; i++) {
- int v = orig_data[i] & 0x00FFFFFF;
- int temp = (depth_data[i] & 0x000000FF) << 24;
- v = v | temp;
- orig_data[i] = v;
- }
- dest.setPixels(orig_data, 0, w, 0, 0, w, h);
- return dest;
- }
-}
-
diff --git a/tests/cpp_api/Android.mk b/tests/cpp_api/Android.mk
new file mode 100644
index 0000000..95904a8
--- /dev/null
+++ b/tests/cpp_api/Android.mk
@@ -0,0 +1,4 @@
+LOCAL_PATH:=$(call my-dir)
+
+include $(call all-makefiles-under,$(LOCAL_PATH))
+
diff --git a/tests/cppallocation/Android.mk b/tests/cpp_api/cppallocation/Android.mk
similarity index 100%
rename from tests/cppallocation/Android.mk
rename to tests/cpp_api/cppallocation/Android.mk
diff --git a/tests/cppallocation/compute.cpp b/tests/cpp_api/cppallocation/compute.cpp
similarity index 100%
rename from tests/cppallocation/compute.cpp
rename to tests/cpp_api/cppallocation/compute.cpp
diff --git a/tests/cppallocation/multiply.rs b/tests/cpp_api/cppallocation/multiply.rs
similarity index 100%
rename from tests/cppallocation/multiply.rs
rename to tests/cpp_api/cppallocation/multiply.rs
diff --git a/tests/cppbasic-getpointer/Android.mk b/tests/cpp_api/cppbasic-getpointer/Android.mk
similarity index 100%
rename from tests/cppbasic-getpointer/Android.mk
rename to tests/cpp_api/cppbasic-getpointer/Android.mk
diff --git a/tests/cppbasic-getpointer/compute.cpp b/tests/cpp_api/cppbasic-getpointer/compute.cpp
similarity index 100%
rename from tests/cppbasic-getpointer/compute.cpp
rename to tests/cpp_api/cppbasic-getpointer/compute.cpp
diff --git a/tests/cppbasic-getpointer/mono.rs b/tests/cpp_api/cppbasic-getpointer/mono.rs
similarity index 100%
rename from tests/cppbasic-getpointer/mono.rs
rename to tests/cpp_api/cppbasic-getpointer/mono.rs
diff --git a/tests/cppbasic-shared/Android.mk b/tests/cpp_api/cppbasic-shared/Android.mk
similarity index 100%
rename from tests/cppbasic-shared/Android.mk
rename to tests/cpp_api/cppbasic-shared/Android.mk
diff --git a/tests/cppbasic-shared/compute.cpp b/tests/cpp_api/cppbasic-shared/compute.cpp
similarity index 100%
rename from tests/cppbasic-shared/compute.cpp
rename to tests/cpp_api/cppbasic-shared/compute.cpp
diff --git a/tests/cppbasic-shared/mono.rs b/tests/cpp_api/cppbasic-shared/mono.rs
similarity index 100%
rename from tests/cppbasic-shared/mono.rs
rename to tests/cpp_api/cppbasic-shared/mono.rs
diff --git a/tests/cppbasic/Android.mk b/tests/cpp_api/cppbasic/Android.mk
similarity index 100%
rename from tests/cppbasic/Android.mk
rename to tests/cpp_api/cppbasic/Android.mk
diff --git a/tests/cppbasic/compute.cpp b/tests/cpp_api/cppbasic/compute.cpp
similarity index 100%
rename from tests/cppbasic/compute.cpp
rename to tests/cpp_api/cppbasic/compute.cpp
diff --git a/tests/cppbasic/mono.rs b/tests/cpp_api/cppbasic/mono.rs
similarity index 100%
rename from tests/cppbasic/mono.rs
rename to tests/cpp_api/cppbasic/mono.rs
diff --git a/tests/cppf16/Android.mk b/tests/cpp_api/cppf16/Android.mk
similarity index 100%
rename from tests/cppf16/Android.mk
rename to tests/cpp_api/cppf16/Android.mk
diff --git a/tests/cppf16/compute.cpp b/tests/cpp_api/cppf16/compute.cpp
similarity index 100%
rename from tests/cppf16/compute.cpp
rename to tests/cpp_api/cppf16/compute.cpp
diff --git a/tests/cppstrided/Android.mk b/tests/cpp_api/cppstrided/Android.mk
similarity index 100%
rename from tests/cppstrided/Android.mk
rename to tests/cpp_api/cppstrided/Android.mk
diff --git a/tests/cppstrided/compute.cpp b/tests/cpp_api/cppstrided/compute.cpp
similarity index 100%
rename from tests/cppstrided/compute.cpp
rename to tests/cpp_api/cppstrided/compute.cpp
diff --git a/tests/cppstrided/multiply.rs b/tests/cpp_api/cppstrided/multiply.rs
similarity index 100%
rename from tests/cppstrided/multiply.rs
rename to tests/cpp_api/cppstrided/multiply.rs
diff --git a/tests/latency/Android.mk b/tests/cpp_api/latency/Android.mk
similarity index 100%
rename from tests/latency/Android.mk
rename to tests/cpp_api/latency/Android.mk
diff --git a/tests/latency/latency.cpp b/tests/cpp_api/latency/latency.cpp
similarity index 100%
rename from tests/latency/latency.cpp
rename to tests/cpp_api/latency/latency.cpp
diff --git a/tests/latency/latency.rs b/tests/cpp_api/latency/latency.rs
similarity index 100%
rename from tests/latency/latency.rs
rename to tests/cpp_api/latency/latency.rs
diff --git a/tests/typecheck/Android.mk b/tests/cpp_api/typecheck/Android.mk
similarity index 100%
rename from tests/typecheck/Android.mk
rename to tests/cpp_api/typecheck/Android.mk
diff --git a/tests/typecheck/kernels.rs b/tests/cpp_api/typecheck/kernels.rs
similarity index 100%
rename from tests/typecheck/kernels.rs
rename to tests/cpp_api/typecheck/kernels.rs
diff --git a/tests/typecheck/typecheck.cpp b/tests/cpp_api/typecheck/typecheck.cpp
similarity index 100%
rename from tests/typecheck/typecheck.cpp
rename to tests/cpp_api/typecheck/typecheck.cpp
diff --git a/java/Android.mk b/tests/java_api/Android.mk
similarity index 85%
rename from java/Android.mk
rename to tests/java_api/Android.mk
index c8f64ce..a040e34 100644
--- a/java/Android.mk
+++ b/tests/java_api/Android.mk
@@ -3,5 +3,9 @@
# Only build our tests if we doing a top-level build. Do not build the
# tests if we are just doing an mm or mmm in frameworks/rs.
ifeq (,$(ONE_SHOT_MAKEFILE))
+
+ifneq (true,$(TARGET_BUILD_PDK))
include $(call all-makefiles-under,$(LOCAL_PATH))
endif
+
+endif
diff --git a/java/tests/Balls/Android.mk b/tests/java_api/Balls/Android.mk
similarity index 100%
rename from java/tests/Balls/Android.mk
rename to tests/java_api/Balls/Android.mk
diff --git a/java/tests/Balls/AndroidManifest.xml b/tests/java_api/Balls/AndroidManifest.xml
similarity index 100%
rename from java/tests/Balls/AndroidManifest.xml
rename to tests/java_api/Balls/AndroidManifest.xml
diff --git a/java/tests/Balls/_index.html b/tests/java_api/Balls/_index.html
similarity index 100%
rename from java/tests/Balls/_index.html
rename to tests/java_api/Balls/_index.html
diff --git a/java/tests/Balls/res/drawable/flares.png b/tests/java_api/Balls/res/drawable/flares.png
similarity index 100%
rename from java/tests/Balls/res/drawable/flares.png
rename to tests/java_api/Balls/res/drawable/flares.png
Binary files differ
diff --git a/java/tests/Balls/res/drawable/test_pattern.png b/tests/java_api/Balls/res/drawable/test_pattern.png
similarity index 100%
rename from java/tests/Balls/res/drawable/test_pattern.png
rename to tests/java_api/Balls/res/drawable/test_pattern.png
Binary files differ
diff --git a/java/tests/Balls/src/com/example/android/rs/balls/Balls.java b/tests/java_api/Balls/src/com/example/android/rs/balls/Balls.java
similarity index 100%
rename from java/tests/Balls/src/com/example/android/rs/balls/Balls.java
rename to tests/java_api/Balls/src/com/example/android/rs/balls/Balls.java
diff --git a/java/tests/Balls/src/com/example/android/rs/balls/BallsRS.java b/tests/java_api/Balls/src/com/example/android/rs/balls/BallsRS.java
similarity index 100%
rename from java/tests/Balls/src/com/example/android/rs/balls/BallsRS.java
rename to tests/java_api/Balls/src/com/example/android/rs/balls/BallsRS.java
diff --git a/java/tests/Balls/src/com/example/android/rs/balls/BallsView.java b/tests/java_api/Balls/src/com/example/android/rs/balls/BallsView.java
similarity index 100%
rename from java/tests/Balls/src/com/example/android/rs/balls/BallsView.java
rename to tests/java_api/Balls/src/com/example/android/rs/balls/BallsView.java
diff --git a/java/tests/Balls/src/com/example/android/rs/balls/ball_physics.rs b/tests/java_api/Balls/src/com/example/android/rs/balls/ball_physics.rs
similarity index 100%
rename from java/tests/Balls/src/com/example/android/rs/balls/ball_physics.rs
rename to tests/java_api/Balls/src/com/example/android/rs/balls/ball_physics.rs
diff --git a/java/tests/Balls/src/com/example/android/rs/balls/balls.rs b/tests/java_api/Balls/src/com/example/android/rs/balls/balls.rs
similarity index 100%
rename from java/tests/Balls/src/com/example/android/rs/balls/balls.rs
rename to tests/java_api/Balls/src/com/example/android/rs/balls/balls.rs
diff --git a/java/tests/Balls/src/com/example/android/rs/balls/balls.rsh b/tests/java_api/Balls/src/com/example/android/rs/balls/balls.rsh
similarity index 100%
rename from java/tests/Balls/src/com/example/android/rs/balls/balls.rsh
rename to tests/java_api/Balls/src/com/example/android/rs/balls/balls.rsh
diff --git a/java/tests/CannyLive/Android.mk b/tests/java_api/CannyLive/Android.mk
similarity index 100%
rename from java/tests/CannyLive/Android.mk
rename to tests/java_api/CannyLive/Android.mk
diff --git a/java/tests/CannyLive/AndroidManifest.xml b/tests/java_api/CannyLive/AndroidManifest.xml
similarity index 100%
rename from java/tests/CannyLive/AndroidManifest.xml
rename to tests/java_api/CannyLive/AndroidManifest.xml
diff --git a/java/tests/CannyLive/_index.html b/tests/java_api/CannyLive/_index.html
similarity index 100%
rename from java/tests/CannyLive/_index.html
rename to tests/java_api/CannyLive/_index.html
diff --git a/java/tests/CannyLive/res/anim/slide_in_from_left.xml b/tests/java_api/CannyLive/res/anim/slide_in_from_left.xml
similarity index 100%
rename from java/tests/CannyLive/res/anim/slide_in_from_left.xml
rename to tests/java_api/CannyLive/res/anim/slide_in_from_left.xml
diff --git a/java/tests/CannyLive/res/anim/slide_out_to_right.xml b/tests/java_api/CannyLive/res/anim/slide_out_to_right.xml
similarity index 100%
rename from java/tests/CannyLive/res/anim/slide_out_to_right.xml
rename to tests/java_api/CannyLive/res/anim/slide_out_to_right.xml
diff --git a/java/tests/CannyLive/res/drawable-hdpi/camera.png b/tests/java_api/CannyLive/res/drawable-hdpi/camera.png
similarity index 100%
rename from java/tests/CannyLive/res/drawable-hdpi/camera.png
rename to tests/java_api/CannyLive/res/drawable-hdpi/camera.png
Binary files differ
diff --git a/java/tests/CannyLive/res/drawable-mdpi/camera.png b/tests/java_api/CannyLive/res/drawable-mdpi/camera.png
similarity index 100%
rename from java/tests/CannyLive/res/drawable-mdpi/camera.png
rename to tests/java_api/CannyLive/res/drawable-mdpi/camera.png
Binary files differ
diff --git a/java/tests/CannyLive/res/drawable-xhdpi/camera.png b/tests/java_api/CannyLive/res/drawable-xhdpi/camera.png
similarity index 100%
rename from java/tests/CannyLive/res/drawable-xhdpi/camera.png
rename to tests/java_api/CannyLive/res/drawable-xhdpi/camera.png
Binary files differ
diff --git a/java/tests/CannyLive/res/drawable-xxhdpi/camera.png b/tests/java_api/CannyLive/res/drawable-xxhdpi/camera.png
similarity index 100%
rename from java/tests/CannyLive/res/drawable-xxhdpi/camera.png
rename to tests/java_api/CannyLive/res/drawable-xxhdpi/camera.png
Binary files differ
diff --git a/java/tests/CannyLive/res/drawable/ic_back.xml b/tests/java_api/CannyLive/res/drawable/ic_back.xml
similarity index 100%
rename from java/tests/CannyLive/res/drawable/ic_back.xml
rename to tests/java_api/CannyLive/res/drawable/ic_back.xml
diff --git a/java/tests/CannyLive/res/drawable/ic_cam.xml b/tests/java_api/CannyLive/res/drawable/ic_cam.xml
similarity index 100%
rename from java/tests/CannyLive/res/drawable/ic_cam.xml
rename to tests/java_api/CannyLive/res/drawable/ic_cam.xml
diff --git a/java/tests/CannyLive/res/layout/activity_main.xml b/tests/java_api/CannyLive/res/layout/activity_main.xml
similarity index 100%
rename from java/tests/CannyLive/res/layout/activity_main.xml
rename to tests/java_api/CannyLive/res/layout/activity_main.xml
diff --git a/java/tests/CannyLive/res/layout/layout.xml b/tests/java_api/CannyLive/res/layout/layout.xml
similarity index 100%
rename from java/tests/CannyLive/res/layout/layout.xml
rename to tests/java_api/CannyLive/res/layout/layout.xml
diff --git a/java/tests/CannyLive/res/mipmap-hdpi/ic_launcher.png b/tests/java_api/CannyLive/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from java/tests/CannyLive/res/mipmap-hdpi/ic_launcher.png
rename to tests/java_api/CannyLive/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/CannyLive/res/mipmap-mdpi/ic_launcher.png b/tests/java_api/CannyLive/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from java/tests/CannyLive/res/mipmap-mdpi/ic_launcher.png
rename to tests/java_api/CannyLive/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/CannyLive/res/mipmap-xhdpi/ic_launcher.png b/tests/java_api/CannyLive/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from java/tests/CannyLive/res/mipmap-xhdpi/ic_launcher.png
rename to tests/java_api/CannyLive/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/CannyLive/res/mipmap-xxhdpi/ic_launcher.png b/tests/java_api/CannyLive/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from java/tests/CannyLive/res/mipmap-xxhdpi/ic_launcher.png
rename to tests/java_api/CannyLive/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/CannyLive/res/mipmap-xxxhdpi/ic_launcher.png b/tests/java_api/CannyLive/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from java/tests/CannyLive/res/mipmap-xxxhdpi/ic_launcher.png
rename to tests/java_api/CannyLive/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/CannyLive/res/values-v21/styles.xml b/tests/java_api/CannyLive/res/values-v21/styles.xml
similarity index 100%
rename from java/tests/CannyLive/res/values-v21/styles.xml
rename to tests/java_api/CannyLive/res/values-v21/styles.xml
diff --git a/java/tests/CannyLive/res/values-w820dp/dimens.xml b/tests/java_api/CannyLive/res/values-w820dp/dimens.xml
similarity index 100%
rename from java/tests/CannyLive/res/values-w820dp/dimens.xml
rename to tests/java_api/CannyLive/res/values-w820dp/dimens.xml
diff --git a/java/tests/CannyLive/res/values/attrs.xml b/tests/java_api/CannyLive/res/values/attrs.xml
similarity index 100%
rename from java/tests/CannyLive/res/values/attrs.xml
rename to tests/java_api/CannyLive/res/values/attrs.xml
diff --git a/java/tests/CannyLive/res/values/base-strings.xml b/tests/java_api/CannyLive/res/values/base-strings.xml
similarity index 100%
rename from java/tests/CannyLive/res/values/base-strings.xml
rename to tests/java_api/CannyLive/res/values/base-strings.xml
diff --git a/java/tests/CannyLive/res/values/colors.xml b/tests/java_api/CannyLive/res/values/colors.xml
similarity index 100%
rename from java/tests/CannyLive/res/values/colors.xml
rename to tests/java_api/CannyLive/res/values/colors.xml
diff --git a/java/tests/CannyLive/res/values/dimens.xml b/tests/java_api/CannyLive/res/values/dimens.xml
similarity index 100%
rename from java/tests/CannyLive/res/values/dimens.xml
rename to tests/java_api/CannyLive/res/values/dimens.xml
diff --git a/java/tests/CannyLive/res/values/strings.xml b/tests/java_api/CannyLive/res/values/strings.xml
similarity index 100%
rename from java/tests/CannyLive/res/values/strings.xml
rename to tests/java_api/CannyLive/res/values/strings.xml
diff --git a/java/tests/CannyLive/res/values/styles.xml b/tests/java_api/CannyLive/res/values/styles.xml
similarity index 100%
rename from java/tests/CannyLive/res/values/styles.xml
rename to tests/java_api/CannyLive/res/values/styles.xml
diff --git a/java/tests/CannyLive/res/values/template-dimens.xml b/tests/java_api/CannyLive/res/values/template-dimens.xml
similarity index 100%
rename from java/tests/CannyLive/res/values/template-dimens.xml
rename to tests/java_api/CannyLive/res/values/template-dimens.xml
diff --git a/java/tests/CannyLive/res/values/template-styles.xml b/tests/java_api/CannyLive/res/values/template-styles.xml
similarity index 100%
rename from java/tests/CannyLive/res/values/template-styles.xml
rename to tests/java_api/CannyLive/res/values/template-styles.xml
diff --git a/java/tests/CannyLive/src/com/android/example/cannylive/CameraOps.java b/tests/java_api/CannyLive/src/com/android/example/cannylive/CameraOps.java
similarity index 100%
rename from java/tests/CannyLive/src/com/android/example/cannylive/CameraOps.java
rename to tests/java_api/CannyLive/src/com/android/example/cannylive/CameraOps.java
diff --git a/java/tests/CannyLive/src/com/android/example/cannylive/CameraView.java b/tests/java_api/CannyLive/src/com/android/example/cannylive/CameraView.java
similarity index 100%
rename from java/tests/CannyLive/src/com/android/example/cannylive/CameraView.java
rename to tests/java_api/CannyLive/src/com/android/example/cannylive/CameraView.java
diff --git a/java/tests/CannyLive/src/com/android/example/cannylive/FixedAspectSurfaceView.java b/tests/java_api/CannyLive/src/com/android/example/cannylive/FixedAspectSurfaceView.java
similarity index 100%
rename from java/tests/CannyLive/src/com/android/example/cannylive/FixedAspectSurfaceView.java
rename to tests/java_api/CannyLive/src/com/android/example/cannylive/FixedAspectSurfaceView.java
diff --git a/java/tests/CannyLive/src/com/android/example/cannylive/MainActivity.java b/tests/java_api/CannyLive/src/com/android/example/cannylive/MainActivity.java
similarity index 100%
rename from java/tests/CannyLive/src/com/android/example/cannylive/MainActivity.java
rename to tests/java_api/CannyLive/src/com/android/example/cannylive/MainActivity.java
diff --git a/java/tests/CannyLive/src/com/android/example/cannylive/MediaStoreSaver.java b/tests/java_api/CannyLive/src/com/android/example/cannylive/MediaStoreSaver.java
similarity index 100%
rename from java/tests/CannyLive/src/com/android/example/cannylive/MediaStoreSaver.java
rename to tests/java_api/CannyLive/src/com/android/example/cannylive/MediaStoreSaver.java
diff --git a/java/tests/CannyLive/src/com/android/example/cannylive/VerticalSeekBar.java b/tests/java_api/CannyLive/src/com/android/example/cannylive/VerticalSeekBar.java
similarity index 100%
rename from java/tests/CannyLive/src/com/android/example/cannylive/VerticalSeekBar.java
rename to tests/java_api/CannyLive/src/com/android/example/cannylive/VerticalSeekBar.java
diff --git a/java/tests/CannyLive/src/com/android/example/cannylive/ViewfinderProcessor.java b/tests/java_api/CannyLive/src/com/android/example/cannylive/ViewfinderProcessor.java
similarity index 100%
rename from java/tests/CannyLive/src/com/android/example/cannylive/ViewfinderProcessor.java
rename to tests/java_api/CannyLive/src/com/android/example/cannylive/ViewfinderProcessor.java
diff --git a/java/tests/CannyLive/src/com/android/example/cannylive/canny.rs b/tests/java_api/CannyLive/src/com/android/example/cannylive/canny.rs
similarity index 100%
rename from java/tests/CannyLive/src/com/android/example/cannylive/canny.rs
rename to tests/java_api/CannyLive/src/com/android/example/cannylive/canny.rs
diff --git a/java/tests/ComputeBenchmark/Android.mk b/tests/java_api/ComputeBenchmark/Android.mk
similarity index 100%
rename from java/tests/ComputeBenchmark/Android.mk
rename to tests/java_api/ComputeBenchmark/Android.mk
diff --git a/java/tests/ComputeBenchmark/AndroidManifest.xml b/tests/java_api/ComputeBenchmark/AndroidManifest.xml
similarity index 100%
rename from java/tests/ComputeBenchmark/AndroidManifest.xml
rename to tests/java_api/ComputeBenchmark/AndroidManifest.xml
diff --git a/java/tests/ComputeBenchmark/res/layout/main.xml b/tests/java_api/ComputeBenchmark/res/layout/main.xml
similarity index 100%
rename from java/tests/ComputeBenchmark/res/layout/main.xml
rename to tests/java_api/ComputeBenchmark/res/layout/main.xml
diff --git a/java/tests/ComputeBenchmark/src/com/example/android/rs/computebench/Benchmark.java b/tests/java_api/ComputeBenchmark/src/com/example/android/rs/computebench/Benchmark.java
similarity index 100%
rename from java/tests/ComputeBenchmark/src/com/example/android/rs/computebench/Benchmark.java
rename to tests/java_api/ComputeBenchmark/src/com/example/android/rs/computebench/Benchmark.java
diff --git a/java/tests/ComputeBenchmark/src/com/example/android/rs/computebench/ComputeBench.java b/tests/java_api/ComputeBenchmark/src/com/example/android/rs/computebench/ComputeBench.java
similarity index 100%
rename from java/tests/ComputeBenchmark/src/com/example/android/rs/computebench/ComputeBench.java
rename to tests/java_api/ComputeBenchmark/src/com/example/android/rs/computebench/ComputeBench.java
diff --git a/java/tests/ComputeBenchmark/src/com/example/android/rs/computebench/compute_benchmark.rs b/tests/java_api/ComputeBenchmark/src/com/example/android/rs/computebench/compute_benchmark.rs
similarity index 100%
rename from java/tests/ComputeBenchmark/src/com/example/android/rs/computebench/compute_benchmark.rs
rename to tests/java_api/ComputeBenchmark/src/com/example/android/rs/computebench/compute_benchmark.rs
diff --git a/java/tests/ComputePerf/Android.mk b/tests/java_api/ComputePerf/Android.mk
similarity index 100%
rename from java/tests/ComputePerf/Android.mk
rename to tests/java_api/ComputePerf/Android.mk
diff --git a/java/tests/ComputePerf/AndroidManifest.xml b/tests/java_api/ComputePerf/AndroidManifest.xml
similarity index 100%
rename from java/tests/ComputePerf/AndroidManifest.xml
rename to tests/java_api/ComputePerf/AndroidManifest.xml
diff --git a/java/tests/ComputePerf/res/layout/main.xml b/tests/java_api/ComputePerf/res/layout/main.xml
similarity index 100%
rename from java/tests/ComputePerf/res/layout/main.xml
rename to tests/java_api/ComputePerf/res/layout/main.xml
diff --git a/java/tests/ComputePerf/src/com/example/android/rs/computeperf/ComputePerf.java b/tests/java_api/ComputePerf/src/com/example/android/rs/computeperf/ComputePerf.java
similarity index 100%
rename from java/tests/ComputePerf/src/com/example/android/rs/computeperf/ComputePerf.java
rename to tests/java_api/ComputePerf/src/com/example/android/rs/computeperf/ComputePerf.java
diff --git a/java/tests/ComputePerf/src/com/example/android/rs/computeperf/LaunchTest.java b/tests/java_api/ComputePerf/src/com/example/android/rs/computeperf/LaunchTest.java
similarity index 100%
rename from java/tests/ComputePerf/src/com/example/android/rs/computeperf/LaunchTest.java
rename to tests/java_api/ComputePerf/src/com/example/android/rs/computeperf/LaunchTest.java
diff --git a/java/tests/ComputePerf/src/com/example/android/rs/computeperf/Mandelbrot.java b/tests/java_api/ComputePerf/src/com/example/android/rs/computeperf/Mandelbrot.java
similarity index 100%
rename from java/tests/ComputePerf/src/com/example/android/rs/computeperf/Mandelbrot.java
rename to tests/java_api/ComputePerf/src/com/example/android/rs/computeperf/Mandelbrot.java
diff --git a/java/tests/ComputePerf/src/com/example/android/rs/computeperf/launchtest.rs b/tests/java_api/ComputePerf/src/com/example/android/rs/computeperf/launchtest.rs
similarity index 100%
rename from java/tests/ComputePerf/src/com/example/android/rs/computeperf/launchtest.rs
rename to tests/java_api/ComputePerf/src/com/example/android/rs/computeperf/launchtest.rs
diff --git a/java/tests/ComputePerf/src/com/example/android/rs/computeperf/mandelbrot.rs b/tests/java_api/ComputePerf/src/com/example/android/rs/computeperf/mandelbrot.rs
similarity index 100%
rename from java/tests/ComputePerf/src/com/example/android/rs/computeperf/mandelbrot.rs
rename to tests/java_api/ComputePerf/src/com/example/android/rs/computeperf/mandelbrot.rs
diff --git a/java/tests/GenImages/Android.mk b/tests/java_api/GenImages/Android.mk
similarity index 100%
rename from java/tests/GenImages/Android.mk
rename to tests/java_api/GenImages/Android.mk
diff --git a/java/tests/GenImages/AndroidManifest.xml b/tests/java_api/GenImages/AndroidManifest.xml
similarity index 100%
rename from java/tests/GenImages/AndroidManifest.xml
rename to tests/java_api/GenImages/AndroidManifest.xml
diff --git a/java/tests/GenImages/res/drawable-nodpi/test_pattern.png b/tests/java_api/GenImages/res/drawable-nodpi/test_pattern.png
similarity index 100%
rename from java/tests/GenImages/res/drawable-nodpi/test_pattern.png
rename to tests/java_api/GenImages/res/drawable-nodpi/test_pattern.png
Binary files differ
diff --git a/java/tests/GenImages/res/drawable/ic_launcher.png b/tests/java_api/GenImages/res/drawable/ic_launcher.png
similarity index 100%
rename from java/tests/GenImages/res/drawable/ic_launcher.png
rename to tests/java_api/GenImages/res/drawable/ic_launcher.png
Binary files differ
diff --git a/java/tests/GenImages/res/layout/main.xml b/tests/java_api/GenImages/res/layout/main.xml
similarity index 100%
rename from java/tests/GenImages/res/layout/main.xml
rename to tests/java_api/GenImages/res/layout/main.xml
diff --git a/java/tests/GenImages/res/values/strings.xml b/tests/java_api/GenImages/res/values/strings.xml
similarity index 100%
rename from java/tests/GenImages/res/values/strings.xml
rename to tests/java_api/GenImages/res/values/strings.xml
diff --git a/java/tests/GenImages/src/com/android/rs/genimage/GenImage.java b/tests/java_api/GenImages/src/com/android/rs/genimage/GenImage.java
similarity index 100%
rename from java/tests/GenImages/src/com/android/rs/genimage/GenImage.java
rename to tests/java_api/GenImages/src/com/android/rs/genimage/GenImage.java
diff --git a/java/tests/GenImages/src/com/android/rs/genimage/GenImageAct.java b/tests/java_api/GenImages/src/com/android/rs/genimage/GenImageAct.java
similarity index 100%
rename from java/tests/GenImages/src/com/android/rs/genimage/GenImageAct.java
rename to tests/java_api/GenImages/src/com/android/rs/genimage/GenImageAct.java
diff --git a/java/tests/HealingBrush/Android.mk b/tests/java_api/HealingBrush/Android.mk
similarity index 100%
rename from java/tests/HealingBrush/Android.mk
rename to tests/java_api/HealingBrush/Android.mk
diff --git a/java/tests/HealingBrush/AndroidManifest.xml b/tests/java_api/HealingBrush/AndroidManifest.xml
similarity index 100%
rename from java/tests/HealingBrush/AndroidManifest.xml
rename to tests/java_api/HealingBrush/AndroidManifest.xml
diff --git a/java/tests/HealingBrush/res/drawable-nodpi/bugs.jpg b/tests/java_api/HealingBrush/res/drawable-nodpi/bugs.jpg
similarity index 100%
rename from java/tests/HealingBrush/res/drawable-nodpi/bugs.jpg
rename to tests/java_api/HealingBrush/res/drawable-nodpi/bugs.jpg
Binary files differ
diff --git a/java/tests/HealingBrush/res/drawable/ic_launcher.png b/tests/java_api/HealingBrush/res/drawable/ic_launcher.png
similarity index 100%
rename from java/tests/HealingBrush/res/drawable/ic_launcher.png
rename to tests/java_api/HealingBrush/res/drawable/ic_launcher.png
Binary files differ
diff --git a/java/tests/HealingBrush/res/layout/activity_main.xml b/tests/java_api/HealingBrush/res/layout/activity_main.xml
similarity index 100%
rename from java/tests/HealingBrush/res/layout/activity_main.xml
rename to tests/java_api/HealingBrush/res/layout/activity_main.xml
diff --git a/java/tests/HealingBrush/res/values-w820dp/dimens.xml b/tests/java_api/HealingBrush/res/values-w820dp/dimens.xml
similarity index 100%
rename from java/tests/HealingBrush/res/values-w820dp/dimens.xml
rename to tests/java_api/HealingBrush/res/values-w820dp/dimens.xml
diff --git a/java/tests/HealingBrush/res/values/dimens.xml b/tests/java_api/HealingBrush/res/values/dimens.xml
similarity index 100%
rename from java/tests/HealingBrush/res/values/dimens.xml
rename to tests/java_api/HealingBrush/res/values/dimens.xml
diff --git a/java/tests/HealingBrush/res/values/strings.xml b/tests/java_api/HealingBrush/res/values/strings.xml
similarity index 100%
rename from java/tests/HealingBrush/res/values/strings.xml
rename to tests/java_api/HealingBrush/res/values/strings.xml
diff --git a/java/tests/HealingBrush/res/values/styles.xml b/tests/java_api/HealingBrush/res/values/styles.xml
similarity index 100%
rename from java/tests/HealingBrush/res/values/styles.xml
rename to tests/java_api/HealingBrush/res/values/styles.xml
diff --git a/java/tests/HealingBrush/src/rs/example/android/com/healingbrush/DrawView.java b/tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/DrawView.java
similarity index 100%
rename from java/tests/HealingBrush/src/rs/example/android/com/healingbrush/DrawView.java
rename to tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/DrawView.java
diff --git a/java/tests/HealingBrush/src/rs/example/android/com/healingbrush/FindRegion.java b/tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/FindRegion.java
similarity index 100%
rename from java/tests/HealingBrush/src/rs/example/android/com/healingbrush/FindRegion.java
rename to tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/FindRegion.java
diff --git a/java/tests/HealingBrush/src/rs/example/android/com/healingbrush/Healing.java b/tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/Healing.java
similarity index 100%
rename from java/tests/HealingBrush/src/rs/example/android/com/healingbrush/Healing.java
rename to tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/Healing.java
diff --git a/java/tests/HealingBrush/src/rs/example/android/com/healingbrush/MainActivity.java b/tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/MainActivity.java
similarity index 100%
rename from java/tests/HealingBrush/src/rs/example/android/com/healingbrush/MainActivity.java
rename to tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/MainActivity.java
diff --git a/java/tests/HealingBrush/src/rs/example/android/com/healingbrush/MediaStoreSaver.java b/tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/MediaStoreSaver.java
similarity index 100%
rename from java/tests/HealingBrush/src/rs/example/android/com/healingbrush/MediaStoreSaver.java
rename to tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/MediaStoreSaver.java
diff --git a/java/tests/HealingBrush/src/rs/example/android/com/healingbrush/Region.java b/tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/Region.java
similarity index 100%
rename from java/tests/HealingBrush/src/rs/example/android/com/healingbrush/Region.java
rename to tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/Region.java
diff --git a/java/tests/HealingBrush/src/rs/example/android/com/healingbrush/find_region.rs b/tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/find_region.rs
similarity index 100%
rename from java/tests/HealingBrush/src/rs/example/android/com/healingbrush/find_region.rs
rename to tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/find_region.rs
diff --git a/java/tests/HealingBrush/src/rs/example/android/com/healingbrush/healing.rs b/tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/healing.rs
similarity index 100%
rename from java/tests/HealingBrush/src/rs/example/android/com/healingbrush/healing.rs
rename to tests/java_api/HealingBrush/src/rs/example/android/com/healingbrush/healing.rs
diff --git a/java/tests/HelloComputeNDK/Android.mk b/tests/java_api/HelloComputeNDK/Android.mk
similarity index 100%
rename from java/tests/HelloComputeNDK/Android.mk
rename to tests/java_api/HelloComputeNDK/Android.mk
diff --git a/java/tests/HelloComputeNDK/AndroidManifest.xml b/tests/java_api/HelloComputeNDK/AndroidManifest.xml
similarity index 100%
rename from java/tests/HelloComputeNDK/AndroidManifest.xml
rename to tests/java_api/HelloComputeNDK/AndroidManifest.xml
diff --git a/java/tests/HelloComputeNDK/libhellocomputendk/Android.mk b/tests/java_api/HelloComputeNDK/libhellocomputendk/Android.mk
similarity index 100%
rename from java/tests/HelloComputeNDK/libhellocomputendk/Android.mk
rename to tests/java_api/HelloComputeNDK/libhellocomputendk/Android.mk
diff --git a/java/tests/HelloComputeNDK/libhellocomputendk/helloComputeNDK.cpp b/tests/java_api/HelloComputeNDK/libhellocomputendk/helloComputeNDK.cpp
similarity index 100%
rename from java/tests/HelloComputeNDK/libhellocomputendk/helloComputeNDK.cpp
rename to tests/java_api/HelloComputeNDK/libhellocomputendk/helloComputeNDK.cpp
diff --git a/java/tests/HelloComputeNDK/libhellocomputendk/mono.rs b/tests/java_api/HelloComputeNDK/libhellocomputendk/mono.rs
similarity index 100%
rename from java/tests/HelloComputeNDK/libhellocomputendk/mono.rs
rename to tests/java_api/HelloComputeNDK/libhellocomputendk/mono.rs
diff --git a/java/tests/HelloComputeNDK/res/drawable-nodpi/data.jpg b/tests/java_api/HelloComputeNDK/res/drawable-nodpi/data.jpg
similarity index 100%
rename from java/tests/HelloComputeNDK/res/drawable-nodpi/data.jpg
rename to tests/java_api/HelloComputeNDK/res/drawable-nodpi/data.jpg
Binary files differ
diff --git a/java/tests/HelloComputeNDK/res/layout/main.xml b/tests/java_api/HelloComputeNDK/res/layout/main.xml
similarity index 100%
rename from java/tests/HelloComputeNDK/res/layout/main.xml
rename to tests/java_api/HelloComputeNDK/res/layout/main.xml
diff --git a/java/tests/HelloComputeNDK/src/com/example/android/rs/hellocomputendk/HelloComputeNDK.java b/tests/java_api/HelloComputeNDK/src/com/example/android/rs/hellocomputendk/HelloComputeNDK.java
similarity index 100%
rename from java/tests/HelloComputeNDK/src/com/example/android/rs/hellocomputendk/HelloComputeNDK.java
rename to tests/java_api/HelloComputeNDK/src/com/example/android/rs/hellocomputendk/HelloComputeNDK.java
diff --git a/java/tests/ImageProcessing/Android.mk b/tests/java_api/ImageProcessing/Android.mk
similarity index 100%
rename from java/tests/ImageProcessing/Android.mk
rename to tests/java_api/ImageProcessing/Android.mk
diff --git a/java/tests/ImageProcessing/AndroidManifest.xml b/tests/java_api/ImageProcessing/AndroidManifest.xml
similarity index 100%
rename from java/tests/ImageProcessing/AndroidManifest.xml
rename to tests/java_api/ImageProcessing/AndroidManifest.xml
diff --git a/java/tests/ImageProcessing/res/drawable-nodpi/img1600x1067.jpg b/tests/java_api/ImageProcessing/res/drawable-nodpi/img1600x1067.jpg
similarity index 100%
rename from java/tests/ImageProcessing/res/drawable-nodpi/img1600x1067.jpg
rename to tests/java_api/ImageProcessing/res/drawable-nodpi/img1600x1067.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing/res/drawable-nodpi/img1600x1067b.jpg b/tests/java_api/ImageProcessing/res/drawable-nodpi/img1600x1067b.jpg
similarity index 100%
rename from java/tests/ImageProcessing/res/drawable-nodpi/img1600x1067b.jpg
rename to tests/java_api/ImageProcessing/res/drawable-nodpi/img1600x1067b.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing/res/layout/main.xml b/tests/java_api/ImageProcessing/res/layout/main.xml
similarity index 100%
rename from java/tests/ImageProcessing/res/layout/main.xml
rename to tests/java_api/ImageProcessing/res/layout/main.xml
diff --git a/java/tests/ImageProcessing/res/layout/spinner_layout.xml b/tests/java_api/ImageProcessing/res/layout/spinner_layout.xml
similarity index 100%
rename from java/tests/ImageProcessing/res/layout/spinner_layout.xml
rename to tests/java_api/ImageProcessing/res/layout/spinner_layout.xml
diff --git a/java/tests/ImageProcessing/res/values/strings.xml b/tests/java_api/ImageProcessing/res/values/strings.xml
similarity index 100%
rename from java/tests/ImageProcessing/res/values/strings.xml
rename to tests/java_api/ImageProcessing/res/values/strings.xml
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Artistic1.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Artistic1.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Artistic1.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Artistic1.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/BWFilter.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/BWFilter.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/BWFilter.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/BWFilter.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Blend.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Blend.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Blend.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Blend.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Blur25.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Blur25.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Blur25.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Blur25.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Blur25G.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Blur25G.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Blur25G.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Blur25G.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/ColorCube.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/ColorCube.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/ColorCube.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/ColorCube.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/ColorMatrix.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/ColorMatrix.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/ColorMatrix.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/ColorMatrix.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Contrast.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Contrast.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Contrast.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Contrast.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Convolve3x3.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Convolve3x3.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Convolve3x3.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Convolve3x3.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Convolve5x5.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Convolve5x5.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Convolve5x5.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Convolve5x5.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Copy.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Copy.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Copy.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Copy.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/CrossProcess.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/CrossProcess.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/CrossProcess.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/CrossProcess.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Exposure.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Exposure.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Exposure.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Exposure.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Fisheye.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Fisheye.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Fisheye.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Fisheye.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Grain.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Grain.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Grain.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Grain.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Greyscale.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Greyscale.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Greyscale.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Greyscale.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/GroupTest.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/GroupTest.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/GroupTest.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/GroupTest.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Histogram.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Histogram.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Histogram.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Histogram.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/ImageProcessingActivity.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/ImageProcessingTest.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/ImageProcessingTest.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/ImageProcessingTest.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/ImageProcessingTest.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/ImageProcessingTestRunner.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/ImageProcessingTestRunner.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/ImageProcessingTestRunner.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/ImageProcessingTestRunner.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/LevelsV4.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/LevelsV4.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/LevelsV4.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/LevelsV4.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Mandelbrot.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Mandelbrot.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Mandelbrot.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Mandelbrot.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Mirror.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Mirror.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Mirror.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Mirror.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Resize.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Resize.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Resize.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Resize.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Shadows.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Shadows.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Shadows.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Shadows.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/TestBase.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/TestBase.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/TestBase.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/TestBase.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/UsageIO.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/UsageIO.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/UsageIO.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/UsageIO.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Vibrance.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Vibrance.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Vibrance.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Vibrance.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/Vignette.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/Vignette.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/Vignette.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/Vignette.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/WhiteBalance.java b/tests/java_api/ImageProcessing/src/com/android/rs/image/WhiteBalance.java
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/WhiteBalance.java
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/WhiteBalance.java
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/artistic1.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/artistic1.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/artistic1.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/artistic1.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/blend.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/blend.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/blend.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/blend.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/bwfilter.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/bwfilter.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/bwfilter.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/bwfilter.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/colorcube.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/colorcube.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/colorcube.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/colorcube.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/colormatrix.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/colormatrix.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/colormatrix.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/colormatrix.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/contrast.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/contrast.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/contrast.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/contrast.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/convolve3x3.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/convolve3x3.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/convolve3x3.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/convolve3x3.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/convolve5x5.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/convolve5x5.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/convolve5x5.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/convolve5x5.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/copy.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/copy.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/copy.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/copy.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/exposure.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/exposure.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/exposure.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/exposure.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/fisheye.rsh b/tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye.rsh
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/fisheye.rsh
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye.rsh
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/fisheye_approx.rsh b/tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye_approx.rsh
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/fisheye_approx.rsh
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye_approx.rsh
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/fisheye_approx_full.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye_approx_full.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/fisheye_approx_full.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye_approx_full.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/fisheye_approx_relaxed.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye_approx_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/fisheye_approx_relaxed.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye_approx_relaxed.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/fisheye_full.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye_full.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/fisheye_full.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye_full.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/fisheye_relaxed.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/grain.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/grain.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/grain.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/grain.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/greyscale.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/greyscale.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/greyscale.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/greyscale.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/histogram.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/histogram.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/histogram.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/histogram.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/ip.rsh b/tests/java_api/ImageProcessing/src/com/android/rs/image/ip.rsh
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/ip.rsh
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/ip.rsh
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/levels.rsh b/tests/java_api/ImageProcessing/src/com/android/rs/image/levels.rsh
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/levels.rsh
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/levels.rsh
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/levels_full.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/levels_full.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/levels_full.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/levels_full.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/levels_relaxed.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/levels_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/levels_relaxed.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/levels_relaxed.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/mandelbrot.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/mandelbrot.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/mandelbrot.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/mandelbrot.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/mirror.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/mirror.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/mirror.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/mirror.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/resize.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/resize.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/resize.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/resize.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/shadows.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/shadows.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/shadows.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/shadows.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/threshold.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/threshold.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/threshold.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/threshold.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/vibrance.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/vibrance.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/vibrance.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/vibrance.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/vignette.rsh b/tests/java_api/ImageProcessing/src/com/android/rs/image/vignette.rsh
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/vignette.rsh
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/vignette.rsh
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/vignette_approx.rsh b/tests/java_api/ImageProcessing/src/com/android/rs/image/vignette_approx.rsh
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/vignette_approx.rsh
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/vignette_approx.rsh
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/vignette_approx_full.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/vignette_approx_full.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/vignette_approx_full.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/vignette_approx_full.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/vignette_approx_relaxed.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/vignette_approx_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/vignette_approx_relaxed.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/vignette_approx_relaxed.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/vignette_full.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/vignette_full.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/vignette_full.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/vignette_full.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/vignette_relaxed.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/vignette_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/vignette_relaxed.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/vignette_relaxed.rs
diff --git a/java/tests/ImageProcessing/src/com/android/rs/image/wbalance.rs b/tests/java_api/ImageProcessing/src/com/android/rs/image/wbalance.rs
similarity index 100%
rename from java/tests/ImageProcessing/src/com/android/rs/image/wbalance.rs
rename to tests/java_api/ImageProcessing/src/com/android/rs/image/wbalance.rs
diff --git a/java/tests/ImageProcessing2/Android.mk b/tests/java_api/ImageProcessing2/Android.mk
similarity index 100%
rename from java/tests/ImageProcessing2/Android.mk
rename to tests/java_api/ImageProcessing2/Android.mk
diff --git a/java/tests/ImageProcessing2/AndroidManifest.xml b/tests/java_api/ImageProcessing2/AndroidManifest.xml
similarity index 100%
rename from java/tests/ImageProcessing2/AndroidManifest.xml
rename to tests/java_api/ImageProcessing2/AndroidManifest.xml
diff --git a/java/tests/ImageProcessing2/res/drawable-hdpi/ic_action_settings.png b/tests/java_api/ImageProcessing2/res/drawable-hdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/ImageProcessing2/res/drawable-hdpi/ic_action_settings.png
rename to tests/java_api/ImageProcessing2/res/drawable-hdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/ImageProcessing2/res/drawable-mdpi/ic_action_settings.png b/tests/java_api/ImageProcessing2/res/drawable-mdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/ImageProcessing2/res/drawable-mdpi/ic_action_settings.png
rename to tests/java_api/ImageProcessing2/res/drawable-mdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/ImageProcessing2/res/drawable-nodpi/img1280x720a.jpg b/tests/java_api/ImageProcessing2/res/drawable-nodpi/img1280x720a.jpg
similarity index 100%
rename from java/tests/ImageProcessing2/res/drawable-nodpi/img1280x720a.jpg
rename to tests/java_api/ImageProcessing2/res/drawable-nodpi/img1280x720a.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing2/res/drawable-nodpi/img1280x720b.jpg b/tests/java_api/ImageProcessing2/res/drawable-nodpi/img1280x720b.jpg
similarity index 100%
rename from java/tests/ImageProcessing2/res/drawable-nodpi/img1280x720b.jpg
rename to tests/java_api/ImageProcessing2/res/drawable-nodpi/img1280x720b.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing2/res/drawable-nodpi/img1920x1080a.jpg b/tests/java_api/ImageProcessing2/res/drawable-nodpi/img1920x1080a.jpg
similarity index 100%
rename from java/tests/ImageProcessing2/res/drawable-nodpi/img1920x1080a.jpg
rename to tests/java_api/ImageProcessing2/res/drawable-nodpi/img1920x1080a.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing2/res/drawable-nodpi/img1920x1080b.jpg b/tests/java_api/ImageProcessing2/res/drawable-nodpi/img1920x1080b.jpg
similarity index 100%
rename from java/tests/ImageProcessing2/res/drawable-nodpi/img1920x1080b.jpg
rename to tests/java_api/ImageProcessing2/res/drawable-nodpi/img1920x1080b.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing2/res/drawable-nodpi/img800x450a.jpg b/tests/java_api/ImageProcessing2/res/drawable-nodpi/img800x450a.jpg
similarity index 100%
rename from java/tests/ImageProcessing2/res/drawable-nodpi/img800x450a.jpg
rename to tests/java_api/ImageProcessing2/res/drawable-nodpi/img800x450a.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing2/res/drawable-nodpi/img800x450b.jpg b/tests/java_api/ImageProcessing2/res/drawable-nodpi/img800x450b.jpg
similarity index 100%
rename from java/tests/ImageProcessing2/res/drawable-nodpi/img800x450b.jpg
rename to tests/java_api/ImageProcessing2/res/drawable-nodpi/img800x450b.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing2/res/drawable-xhdpi/ic_action_settings.png b/tests/java_api/ImageProcessing2/res/drawable-xhdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/ImageProcessing2/res/drawable-xhdpi/ic_action_settings.png
rename to tests/java_api/ImageProcessing2/res/drawable-xhdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/ImageProcessing2/res/drawable-xxhdpi/ic_action_settings.png b/tests/java_api/ImageProcessing2/res/drawable-xxhdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/ImageProcessing2/res/drawable-xxhdpi/ic_action_settings.png
rename to tests/java_api/ImageProcessing2/res/drawable-xxhdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/ImageProcessing2/res/layout/controls.xml b/tests/java_api/ImageProcessing2/res/layout/controls.xml
similarity index 100%
rename from java/tests/ImageProcessing2/res/layout/controls.xml
rename to tests/java_api/ImageProcessing2/res/layout/controls.xml
diff --git a/java/tests/ImageProcessing2/res/layout/main.xml b/tests/java_api/ImageProcessing2/res/layout/main.xml
similarity index 100%
rename from java/tests/ImageProcessing2/res/layout/main.xml
rename to tests/java_api/ImageProcessing2/res/layout/main.xml
diff --git a/java/tests/ImageProcessing2/res/layout/spinner_layout.xml b/tests/java_api/ImageProcessing2/res/layout/spinner_layout.xml
similarity index 100%
rename from java/tests/ImageProcessing2/res/layout/spinner_layout.xml
rename to tests/java_api/ImageProcessing2/res/layout/spinner_layout.xml
diff --git a/java/tests/ImageProcessing2/res/menu/main_activity_actions.xml b/tests/java_api/ImageProcessing2/res/menu/main_activity_actions.xml
similarity index 100%
rename from java/tests/ImageProcessing2/res/menu/main_activity_actions.xml
rename to tests/java_api/ImageProcessing2/res/menu/main_activity_actions.xml
diff --git a/java/tests/ImageProcessing2/res/values/strings.xml b/tests/java_api/ImageProcessing2/res/values/strings.xml
similarity index 100%
rename from java/tests/ImageProcessing2/res/values/strings.xml
rename to tests/java_api/ImageProcessing2/res/values/strings.xml
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Artistic1.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Artistic1.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Artistic1.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Artistic1.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/BWFilter.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/BWFilter.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/BWFilter.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/BWFilter.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Blend.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Blend.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Blend.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Blend.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Blur25.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Blur25.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Blur25.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Blur25.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Blur25G.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Blur25G.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Blur25G.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Blur25G.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/ColorCube.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/ColorCube.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/ColorCube.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/ColorCube.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/ColorMatrix.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/ColorMatrix.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/ColorMatrix.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/ColorMatrix.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Contrast.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Contrast.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Contrast.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Contrast.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Convolve3x3.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Convolve3x3.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Convolve3x3.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Convolve3x3.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Convolve5x5.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Convolve5x5.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Convolve5x5.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Convolve5x5.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Copy.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Copy.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Copy.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Copy.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/CrossProcess.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/CrossProcess.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/CrossProcess.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/CrossProcess.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Exposure.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Exposure.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Exposure.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Exposure.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Fisheye.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Fisheye.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Fisheye.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Fisheye.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Grain.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Grain.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Grain.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Grain.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Greyscale.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Greyscale.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Greyscale.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Greyscale.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/GroupTest.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/GroupTest.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/GroupTest.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/GroupTest.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/IPControls.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/IPControls.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/IPControls.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/IPControls.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/IPSettings.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/IPSettings.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/IPSettings.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/IPSettings.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/IPTestList.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/IPTestList.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/IPTestList.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/IPTestList.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/ImageProcessingActivity2.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/ImageProcessingActivity2.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/ImageProcessingActivity2.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/ImageProcessingActivity2.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/LevelsV4.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/LevelsV4.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/LevelsV4.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/LevelsV4.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Mandelbrot.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Mandelbrot.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Mandelbrot.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Mandelbrot.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Posterize.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Posterize.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Posterize.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Posterize.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Resize.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Resize.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Resize.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Resize.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Shadows.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Shadows.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Shadows.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Shadows.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/TestBase.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/TestBase.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/TestBase.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/TestBase.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Vibrance.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Vibrance.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Vibrance.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Vibrance.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/Vignette.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/Vignette.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/Vignette.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/Vignette.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/WhiteBalance.java b/tests/java_api/ImageProcessing2/src/com/android/rs/image/WhiteBalance.java
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/WhiteBalance.java
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/WhiteBalance.java
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/artistic1.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/artistic1.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/artistic1.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/artistic1.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/blend.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/blend.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/blend.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/blend.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/bwfilter.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/bwfilter.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/bwfilter.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/bwfilter.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/colorcube.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/colorcube.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/colorcube.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/colorcube.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/colormatrix.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/colormatrix.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/colormatrix.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/colormatrix.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/contrast.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/contrast.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/contrast.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/contrast.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/convolve3x3.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/convolve3x3.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/convolve3x3.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/convolve3x3.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/convolve5x5.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/convolve5x5.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/convolve5x5.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/convolve5x5.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/copy.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/copy.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/copy.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/copy.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/exposure.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/exposure.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/exposure.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/exposure.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/fisheye.rsh b/tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye.rsh
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/fisheye.rsh
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye.rsh
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/fisheye_approx.rsh b/tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye_approx.rsh
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/fisheye_approx.rsh
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye_approx.rsh
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/fisheye_approx_full.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye_approx_full.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/fisheye_approx_full.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye_approx_full.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/fisheye_approx_relaxed.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye_approx_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/fisheye_approx_relaxed.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye_approx_relaxed.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/fisheye_full.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye_full.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/fisheye_full.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye_full.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/fisheye_relaxed.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/fisheye_relaxed.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/fisheye_relaxed.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/grain.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/grain.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/grain.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/grain.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/greyscale.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/greyscale.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/greyscale.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/greyscale.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/ip.rsh b/tests/java_api/ImageProcessing2/src/com/android/rs/image/ip.rsh
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/ip.rsh
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/ip.rsh
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/levels.rsh b/tests/java_api/ImageProcessing2/src/com/android/rs/image/levels.rsh
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/levels.rsh
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/levels.rsh
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/levels_full.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/levels_full.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/levels_full.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/levels_full.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/levels_relaxed.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/levels_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/levels_relaxed.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/levels_relaxed.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/mandelbrot.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/mandelbrot.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/mandelbrot.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/mandelbrot.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/posterize.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/posterize.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/posterize.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/posterize.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/resize.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/resize.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/resize.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/resize.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/shadows.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/shadows.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/shadows.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/shadows.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/threshold.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/threshold.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/threshold.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/threshold.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/util.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/util.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/util.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/util.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/vibrance.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/vibrance.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/vibrance.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/vibrance.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/vignette.rsh b/tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette.rsh
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/vignette.rsh
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette.rsh
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/vignette_approx.rsh b/tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette_approx.rsh
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/vignette_approx.rsh
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette_approx.rsh
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/vignette_approx_full.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette_approx_full.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/vignette_approx_full.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette_approx_full.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/vignette_approx_relaxed.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette_approx_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/vignette_approx_relaxed.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette_approx_relaxed.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/vignette_full.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette_full.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/vignette_full.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette_full.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/vignette_relaxed.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/vignette_relaxed.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/vignette_relaxed.rs
diff --git a/java/tests/ImageProcessing2/src/com/android/rs/image/wbalance.rs b/tests/java_api/ImageProcessing2/src/com/android/rs/image/wbalance.rs
similarity index 100%
rename from java/tests/ImageProcessing2/src/com/android/rs/image/wbalance.rs
rename to tests/java_api/ImageProcessing2/src/com/android/rs/image/wbalance.rs
diff --git a/java/tests/ImageProcessing_jb/Android.mk b/tests/java_api/ImageProcessing_jb/Android.mk
similarity index 100%
rename from java/tests/ImageProcessing_jb/Android.mk
rename to tests/java_api/ImageProcessing_jb/Android.mk
diff --git a/java/tests/ImageProcessing_jb/AndroidManifest.xml b/tests/java_api/ImageProcessing_jb/AndroidManifest.xml
similarity index 100%
rename from java/tests/ImageProcessing_jb/AndroidManifest.xml
rename to tests/java_api/ImageProcessing_jb/AndroidManifest.xml
diff --git a/java/tests/ImageProcessing_jb/res/drawable-hdpi/ic_action_settings.png b/tests/java_api/ImageProcessing_jb/res/drawable-hdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-hdpi/ic_action_settings.png
rename to tests/java_api/ImageProcessing_jb/res/drawable-hdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-mdpi/ic_action_settings.png b/tests/java_api/ImageProcessing_jb/res/drawable-mdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-mdpi/ic_action_settings.png
rename to tests/java_api/ImageProcessing_jb/res/drawable-mdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-nodpi/img1280x720a.jpg b/tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img1280x720a.jpg
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-nodpi/img1280x720a.jpg
rename to tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img1280x720a.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-nodpi/img1280x720b.jpg b/tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img1280x720b.jpg
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-nodpi/img1280x720b.jpg
rename to tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img1280x720b.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-nodpi/img1920x1080a.jpg b/tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img1920x1080a.jpg
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-nodpi/img1920x1080a.jpg
rename to tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img1920x1080a.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-nodpi/img1920x1080b.jpg b/tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img1920x1080b.jpg
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-nodpi/img1920x1080b.jpg
rename to tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img1920x1080b.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-nodpi/img3840x2160a.jpg b/tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img3840x2160a.jpg
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-nodpi/img3840x2160a.jpg
rename to tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img3840x2160a.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-nodpi/img3840x2160b.jpg b/tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img3840x2160b.jpg
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-nodpi/img3840x2160b.jpg
rename to tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img3840x2160b.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-nodpi/img800x450a.jpg b/tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img800x450a.jpg
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-nodpi/img800x450a.jpg
rename to tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img800x450a.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-nodpi/img800x450b.jpg b/tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img800x450b.jpg
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-nodpi/img800x450b.jpg
rename to tests/java_api/ImageProcessing_jb/res/drawable-nodpi/img800x450b.jpg
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-xhdpi/ic_action_settings.png b/tests/java_api/ImageProcessing_jb/res/drawable-xhdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-xhdpi/ic_action_settings.png
rename to tests/java_api/ImageProcessing_jb/res/drawable-xhdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/drawable-xxhdpi/ic_action_settings.png b/tests/java_api/ImageProcessing_jb/res/drawable-xxhdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/drawable-xxhdpi/ic_action_settings.png
rename to tests/java_api/ImageProcessing_jb/res/drawable-xxhdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/ImageProcessing_jb/res/layout/controls.xml b/tests/java_api/ImageProcessing_jb/res/layout/controls.xml
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/layout/controls.xml
rename to tests/java_api/ImageProcessing_jb/res/layout/controls.xml
diff --git a/java/tests/ImageProcessing_jb/res/layout/main.xml b/tests/java_api/ImageProcessing_jb/res/layout/main.xml
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/layout/main.xml
rename to tests/java_api/ImageProcessing_jb/res/layout/main.xml
diff --git a/java/tests/ImageProcessing_jb/res/layout/spinner_layout.xml b/tests/java_api/ImageProcessing_jb/res/layout/spinner_layout.xml
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/layout/spinner_layout.xml
rename to tests/java_api/ImageProcessing_jb/res/layout/spinner_layout.xml
diff --git a/java/tests/ImageProcessing_jb/res/menu/main_activity_actions.xml b/tests/java_api/ImageProcessing_jb/res/menu/main_activity_actions.xml
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/menu/main_activity_actions.xml
rename to tests/java_api/ImageProcessing_jb/res/menu/main_activity_actions.xml
diff --git a/java/tests/ImageProcessing_jb/res/values/strings.xml b/tests/java_api/ImageProcessing_jb/res/values/strings.xml
similarity index 100%
rename from java/tests/ImageProcessing_jb/res/values/strings.xml
rename to tests/java_api/ImageProcessing_jb/res/values/strings.xml
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Artistic1.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Artistic1.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Artistic1.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Artistic1.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/BWFilter.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/BWFilter.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/BWFilter.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/BWFilter.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Blend.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Blend.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Blend.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Blend.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Blur25.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Blur25.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Blur25.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Blur25.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Blur25G.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Blur25G.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Blur25G.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Blur25G.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/ColorCube.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ColorCube.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/ColorCube.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ColorCube.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/ColorMatrix.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ColorMatrix.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/ColorMatrix.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ColorMatrix.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Contrast.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Contrast.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Contrast.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Contrast.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Convolve3x3.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Convolve3x3.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Convolve3x3.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Convolve3x3.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Convolve5x5.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Convolve5x5.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Convolve5x5.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Convolve5x5.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Copy.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Copy.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Copy.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Copy.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/CrossProcess.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/CrossProcess.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/CrossProcess.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/CrossProcess.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Exposure.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Exposure.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Exposure.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Exposure.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Fisheye.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Fisheye.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Fisheye.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Fisheye.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Grain.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Grain.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Grain.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Grain.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Greyscale.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Greyscale.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Greyscale.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Greyscale.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/GroupTest.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/GroupTest.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/GroupTest.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/GroupTest.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Histogram.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Histogram.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Histogram.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Histogram.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/IPControlsJB.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/IPControlsJB.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/IPControlsJB.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/IPControlsJB.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/IPSettings.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/IPSettings.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/IPSettings.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/IPSettings.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/IPTestListJB.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/IPTestListJB.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/IPTestListJB.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/IPTestListJB.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingActivityJB.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingActivityJB.java
similarity index 91%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingActivityJB.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingActivityJB.java
index 7705317..4425fe7 100644
--- a/java/tests/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingActivityJB.java
+++ b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingActivityJB.java
@@ -33,6 +33,7 @@
import android.util.Log;
import android.renderscript.Allocation;
import android.renderscript.RenderScript;
+import android.support.test.InstrumentationRegistry;
public class ImageProcessingActivityJB extends Activity
implements SeekBar.OnSeekBarChangeListener,
@@ -68,6 +69,8 @@
private int mBitmapWidth;
private int mBitmapHeight;
private boolean mDemoMode;
+ private float mMinTestRuntime;
+ private int mMinTestIterations;
// Updates pending is a counter of how many kernels have been
// sent to RS for processing
@@ -240,18 +243,13 @@
start();
}
- class Result {
- float totalTime;
- int itterations;
- }
-
// Run one loop of kernels for at least the specified minimum time.
// The function returns the average time in ms for the test run
- private Result runBenchmarkLoop(float minTime) {
+ private Result runBenchmarkLoop(float minTime, int minIter) {
mUpdatesPending = 0;
Result r = new Result();
- long t = java.lang.System.currentTimeMillis();
+ long t = java.lang.System.nanoTime();
do {
synchronized(this) {
// Shows pending is used to track the number of kernels in the RS pipeline
@@ -269,12 +267,11 @@
// If animations are enabled update the test state.
if (mToggleAnimate) {
- mTest.animateBars(r.totalTime);
+ mTest.animateBars(r.getTotalTime());
}
// Run the kernel
mTest.runTest();
- r.itterations ++;
if (mToggleDisplay) {
// If we are not outputting directly to the TextureView we need to copy from
@@ -290,52 +287,47 @@
// Send our RS message handler a message so we know when this work has completed
mRS.sendMessage(0, null);
- long t2 = java.lang.System.currentTimeMillis();
- r.totalTime += (t2 - t) / 1000.f;
+ // Finish previous iteration before recording the time. Without this, the first
+ // few iterations finish very quickly and the later iterations take much longer
+ mRS.finish();
+
+ long t2 = java.lang.System.nanoTime();
+ r.add((t2 - t) / 1000000000.f);
t = t2;
- } while (r.totalTime < minTime);
+ } while (r.getTotalTime() < minTime || r.getIterations() < minIter);
// Wait for any stray operations to complete and update the final time
mRS.finish();
- long t2 = java.lang.System.currentTimeMillis();
- r.totalTime += (t2 - t) / 1000.f;
- t = t2;
return r;
}
// Method to retreive benchmark results for instrumentation tests.
- float getInstrumentationResult(IPTestListJB.TestName t) {
+ Result getInstrumentationResult(IPTestListJB.TestName t) {
mTest = changeTest(t, false);
return getBenchmark();
}
// Get a benchmark result for a specific test
- private float getBenchmark() {
+ private Result getBenchmark() {
mDoingBenchmark = true;
mUpdatesPending = 0;
- long result = 0;
- float runtime = 1.f;
- if (mToggleLong) {
- runtime = 10.f;
- }
-
if (mToggleDVFS) {
mDvfsWar.go();
}
// We run a short bit of work before starting the actual test
// this is to let any power management do its job and respond
- runBenchmarkLoop(0.3f);
+ runBenchmarkLoop(0.3f, 0);
// Run the actual benchmark
- Result r = runBenchmarkLoop(runtime);
+ Result r = runBenchmarkLoop(mMinTestRuntime, mMinTestIterations);
- Log.v("rs", "Test: time=" + r.totalTime +"s, frames=" + r.itterations +
- ", avg=" + r.totalTime / r.itterations * 1000.f);
+ Log.v("rs", "Test: time=" + r.getTotalTime() + "s, frames=" + r.getIterations() +
+ ", avg=" + r.getAvg() * 1000.f + ", stdcoef=" + r.getStdCoef() * 100.0f + "%");
mDoingBenchmark = false;
- return r.totalTime / r.itterations * 1000.f;
+ return r;
}
public void run() {
@@ -399,7 +391,7 @@
}
// Run the test
- mTestResults[ct] = getBenchmark();
+ mTestResults[ct] = getBenchmark().getAvg() * 1000.0f;
}
onBenchmarkFinish(mRun);
} else {
@@ -660,6 +652,7 @@
super.onPause();
if (mProcessor != null) {
mProcessor.exit();
+ mProcessor = null;
}
}
@@ -729,6 +722,33 @@
mBitmapHeight = i.getIntExtra("resolution Y", 0);
mDemoMode = i.getBooleanExtra("demo", false);
+ // Default values
+ mMinTestRuntime = 1.0f;
+ mMinTestIterations = 2;
+
+ // Pass in arguments from "am instrumentation ..." if present
+ // This is wrapped in a try..catch because there was an exception thrown whenever
+ // instrumentation was not used (ie. when the graphical interface was used)
+ try {
+ Bundle extras = InstrumentationRegistry.getArguments();
+ String passedInString = null;
+ if ( extras != null ) {
+ if ( extras.containsKey ("minimum_test_runtime") ) {
+ mMinTestRuntime = Float.parseFloat(extras.getString("minimum_test_runtime"));
+ }
+ if ( extras.containsKey ("minimum_test_iterations") ) {
+ mMinTestIterations = Integer.parseInt(
+ extras.getString("minimum_test_iterations"));
+ }
+ }
+ } catch(Exception e) {
+ }
+
+ // User chose the longer pre-set runtime
+ if (mToggleLong) {
+ mMinTestRuntime = 10.f;
+ }
+
// Hide the bars in demo mode.
// Calling from onResume() to make sure the operation is on the UI thread.
if (!mDemoMode) {
@@ -758,7 +778,9 @@
@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
- mProcessor.setSurface(null);
+ if (mProcessor != null) {
+ mProcessor.setSurface(null);
+ }
return true;
}
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingTest.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingTest.java
similarity index 87%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingTest.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingTest.java
index df4854d..c720b7a 100644
--- a/java/tests/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingTest.java
+++ b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ImageProcessingTest.java
@@ -26,6 +26,12 @@
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.MediumTest;
+import android.os.Environment;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+
/**
* ImageProcessing benchmark test.
* To run the test, please use command
@@ -37,7 +43,6 @@
private final String TAG = "ImageProcessingTest";
// Only run 1 iteration now to fit the MediumTest time requirement.
// One iteration means running the tests continuous for 1s.
- private int mIteration = 1;
private ImageProcessingActivityJB mActivity;
public ImageProcessingTest() {
@@ -60,23 +65,28 @@
@Override
public void tearDown() throws Exception {
+ if (mActivity.mProcessor != null) {
+ mActivity.mProcessor.exit();
+ mActivity.mProcessor = null;
+ }
super.tearDown();
}
class TestAction implements Runnable {
- TestName mTestName;
- float mResult;
+ private TestName mTestName;
+ private Result mResult;
public TestAction(TestName testName) {
mTestName = testName;
}
public void run() {
mResult = mActivity.mProcessor.getInstrumentationResult(mTestName);
- Log.v(TAG, "Benchmark for test \"" + mTestName.toString() + "\" is: " + mResult);
+ Log.v(TAG, "Benchmark for test \"" + mTestName.toString() + "\" is: " +
+ mResult.getAvg() * 1000.f);
synchronized(this) {
this.notify();
}
}
- public float getBenchmark() {
+ public Result getBenchmark() {
return mResult;
}
}
@@ -97,19 +107,43 @@
// TODO: Report more info: mean, median, std, etc.
public void runTest(TestAction ta, String testName) {
- float sum = 0;
- for (int i = 0; i < mIteration; i++) {
- runOnUiThread(ta);
- float bmValue = ta.getBenchmark();
- Log.v(TAG, "results for iteration " + i + " is " + bmValue);
- sum += bmValue;
- }
- float avgResult = sum/mIteration;
+ runOnUiThread(ta);
+ Result times = ta.getBenchmark();
// post result to INSTRUMENTATION_STATUS
Bundle results = new Bundle();
- results.putFloat(testName + "_avg", avgResult);
+ results.putFloat(testName + "_avg", times.getAvg() * 1000.0f); // ms
+ results.putFloat(testName + "_stdevp", times.getStdevp() * 1000.0f); // ms
+ results.putFloat(testName + "_stdcoef", times.getStdCoef() * 100.0f); // %
getInstrumentation().sendStatus(Activity.RESULT_OK, results);
+
+ // save the runtime distribution to a file on the sdcard so a script can plot it
+ writeResults("rsTimes/", testName + "_DATA.txt", times);
+ }
+
+ private void writeResults(String directory, String filename, Result times) {
+ // write result into a file
+ File externalStorage = Environment.getExternalStorageDirectory();
+ if (!externalStorage.canWrite()) {
+ Log.v(TAG, "sdcard is not writable");
+ return;
+ }
+ File resultDirectory = new File(externalStorage, directory);
+ resultDirectory.mkdirs();
+ File resultFile = new File(externalStorage, directory + filename);
+ resultFile.setWritable(true, false);
+ try {
+ BufferedWriter rsWriter = new BufferedWriter(new FileWriter(resultFile));
+ Log.v(TAG, "Saved results in: " + resultFile.getAbsolutePath());
+
+ float[] datapoints = times.getTimes();
+ for (int i = 0; i < times.getIterations(); i++) {
+ rsWriter.write(String.format("%d %f\n", i, datapoints[i] * 1000.0));
+ }
+ rsWriter.close();
+ } catch (IOException e) {
+ Log.v(TAG, "Unable to write result file " + e.getMessage());
+ }
}
// Test case 0: Levels Vec3 Relaxed
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/LevelsV4.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/LevelsV4.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/LevelsV4.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/LevelsV4.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Mandelbrot.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Mandelbrot.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Mandelbrot.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Mandelbrot.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Posterize.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Posterize.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Posterize.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Posterize.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Resize.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Resize.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Resize.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Resize.java
diff --git a/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Result.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Result.java
new file mode 100644
index 0000000..b979e71
--- /dev/null
+++ b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Result.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.rs.imagejb;
+
+import java.util.ArrayList;
+
+class Result {
+
+ private ArrayList<Float> timeList;
+
+ Result() {
+ timeList = new ArrayList<Float>();
+ }
+
+ // Add time
+ public void add(float time) {
+ timeList.add(time);
+ }
+
+ // Get total execution time
+ public float getTotalTime() {
+ float total = 0.0f;
+ for (float time : timeList) {
+ total += time;
+ }
+ return total;
+ }
+
+ // Get number of iterations
+ public int getIterations() {
+ return timeList.size();
+ }
+
+ // Get the average of an array list
+ public float getAvg() {
+ return getTotalTime() / getIterations();
+ }
+
+ // Get the biased ("full population") standard deviation
+ public float getStdevp() {
+ float sumSqDiff = 0;
+ float avg = getAvg();
+ for (float time : timeList) {
+ float diff = time - avg;
+ sumSqDiff += diff * diff;
+ }
+ return (float) Math.sqrt(sumSqDiff / getIterations());
+ }
+
+ // Get the normalized standard deviation ("standard deviation coefficient")
+ public float getStdCoef() {
+ return getStdevp() / getAvg();
+ }
+
+ // Get all times as float[]
+ public float[] getTimes() {
+ float[] array = new float[getIterations()];
+ for (int i = 0; i < getIterations(); i++) {
+ array[i] = timeList.get(i);
+ }
+ return array;
+ }
+}
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Shadows.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Shadows.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Shadows.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Shadows.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/TestBase.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/TestBase.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/TestBase.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/TestBase.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Vibrance.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Vibrance.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Vibrance.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Vibrance.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/Vignette.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Vignette.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/Vignette.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/Vignette.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/WhiteBalance.java b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/WhiteBalance.java
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/WhiteBalance.java
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/WhiteBalance.java
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/artistic1.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/artistic1.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/artistic1.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/artistic1.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/blend.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/blend.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/blend.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/blend.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/bwfilter.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/bwfilter.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/bwfilter.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/bwfilter.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/colorcube.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/colorcube.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/colorcube.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/colorcube.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/colormatrix.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/colormatrix.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/colormatrix.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/colormatrix.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/contrast.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/contrast.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/contrast.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/contrast.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/convolve3x3.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/convolve3x3.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/convolve3x3.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/convolve3x3.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/convolve5x5.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/convolve5x5.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/convolve5x5.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/convolve5x5.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/copy.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/copy.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/copy.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/copy.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/exposure.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/exposure.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/exposure.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/exposure.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye.rsh b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye.rsh
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye.rsh
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye.rsh
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx.rsh b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx.rsh
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx.rsh
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx.rsh
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx_full.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx_full.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx_full.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx_full.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx_relaxed.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx_relaxed.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye_approx_relaxed.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye_full.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye_full.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye_full.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye_full.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye_relaxed.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/fisheye_relaxed.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/fisheye_relaxed.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/grain.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/grain.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/grain.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/grain.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/greyscale.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/greyscale.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/greyscale.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/greyscale.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/histogram.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/histogram.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/histogram.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/histogram.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/ip.rsh b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ip.rsh
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/ip.rsh
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/ip.rsh
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/levels.rsh b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/levels.rsh
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/levels.rsh
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/levels.rsh
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/levels_full.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/levels_full.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/levels_full.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/levels_full.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/levels_relaxed.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/levels_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/levels_relaxed.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/levels_relaxed.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/mandelbrot.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/mandelbrot.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/mandelbrot.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/mandelbrot.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/posterize.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/posterize.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/posterize.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/posterize.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/resize.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/resize.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/resize.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/resize.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/shadows.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/shadows.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/shadows.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/shadows.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/threshold.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/threshold.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/threshold.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/threshold.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/threshold_half.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/threshold_half.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/threshold_half.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/threshold_half.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/vibrance.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vibrance.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/vibrance.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vibrance.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette.rsh b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette.rsh
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette.rsh
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette.rsh
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette_approx.rsh b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette_approx.rsh
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette_approx.rsh
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette_approx.rsh
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette_approx_full.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette_approx_full.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette_approx_full.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette_approx_full.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette_approx_relaxed.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette_approx_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette_approx_relaxed.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette_approx_relaxed.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette_full.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette_full.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette_full.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette_full.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette_relaxed.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette_relaxed.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/vignette_relaxed.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/vignette_relaxed.rs
diff --git a/java/tests/ImageProcessing_jb/src/com/android/rs/image/wbalance.rs b/tests/java_api/ImageProcessing_jb/src/com/android/rs/image/wbalance.rs
similarity index 100%
rename from java/tests/ImageProcessing_jb/src/com/android/rs/image/wbalance.rs
rename to tests/java_api/ImageProcessing_jb/src/com/android/rs/image/wbalance.rs
diff --git a/java/tests/LatencyBenchmark/Android.mk b/tests/java_api/LatencyBenchmark/Android.mk
similarity index 100%
rename from java/tests/LatencyBenchmark/Android.mk
rename to tests/java_api/LatencyBenchmark/Android.mk
diff --git a/java/tests/LatencyBenchmark/AndroidManifest.xml b/tests/java_api/LatencyBenchmark/AndroidManifest.xml
similarity index 100%
rename from java/tests/LatencyBenchmark/AndroidManifest.xml
rename to tests/java_api/LatencyBenchmark/AndroidManifest.xml
diff --git a/java/tests/LatencyBenchmark/res/layout/main.xml b/tests/java_api/LatencyBenchmark/res/layout/main.xml
similarity index 100%
rename from java/tests/LatencyBenchmark/res/layout/main.xml
rename to tests/java_api/LatencyBenchmark/res/layout/main.xml
diff --git a/java/tests/LatencyBenchmark/src/com/example/android/rs/computebench/Benchmark.java b/tests/java_api/LatencyBenchmark/src/com/example/android/rs/computebench/Benchmark.java
similarity index 100%
rename from java/tests/LatencyBenchmark/src/com/example/android/rs/computebench/Benchmark.java
rename to tests/java_api/LatencyBenchmark/src/com/example/android/rs/computebench/Benchmark.java
diff --git a/java/tests/LatencyBenchmark/src/com/example/android/rs/computebench/LatencyBench.java b/tests/java_api/LatencyBenchmark/src/com/example/android/rs/computebench/LatencyBench.java
similarity index 100%
rename from java/tests/LatencyBenchmark/src/com/example/android/rs/computebench/LatencyBench.java
rename to tests/java_api/LatencyBenchmark/src/com/example/android/rs/computebench/LatencyBench.java
diff --git a/java/tests/LatencyBenchmark/src/com/example/android/rs/computebench/compute_benchmark.rs b/tests/java_api/LatencyBenchmark/src/com/example/android/rs/computebench/compute_benchmark.rs
similarity index 100%
rename from java/tests/LatencyBenchmark/src/com/example/android/rs/computebench/compute_benchmark.rs
rename to tests/java_api/LatencyBenchmark/src/com/example/android/rs/computebench/compute_benchmark.rs
diff --git a/java/tests/LivePreview/Android.mk b/tests/java_api/LivePreview/Android.mk
similarity index 100%
rename from java/tests/LivePreview/Android.mk
rename to tests/java_api/LivePreview/Android.mk
diff --git a/java/tests/LivePreview/AndroidManifest.xml b/tests/java_api/LivePreview/AndroidManifest.xml
similarity index 100%
rename from java/tests/LivePreview/AndroidManifest.xml
rename to tests/java_api/LivePreview/AndroidManifest.xml
diff --git a/java/tests/LivePreview/res/drawable-nodpi/city.png b/tests/java_api/LivePreview/res/drawable-nodpi/city.png
similarity index 100%
rename from java/tests/LivePreview/res/drawable-nodpi/city.png
rename to tests/java_api/LivePreview/res/drawable-nodpi/city.png
Binary files differ
diff --git a/java/tests/LivePreview/res/layout/cf_format_list_item.xml b/tests/java_api/LivePreview/res/layout/cf_format_list_item.xml
similarity index 100%
rename from java/tests/LivePreview/res/layout/cf_format_list_item.xml
rename to tests/java_api/LivePreview/res/layout/cf_format_list_item.xml
diff --git a/java/tests/LivePreview/res/layout/cf_main.xml b/tests/java_api/LivePreview/res/layout/cf_main.xml
similarity index 100%
rename from java/tests/LivePreview/res/layout/cf_main.xml
rename to tests/java_api/LivePreview/res/layout/cf_main.xml
diff --git a/java/tests/LivePreview/res/layout/main.xml b/tests/java_api/LivePreview/res/layout/main.xml
similarity index 100%
rename from java/tests/LivePreview/res/layout/main.xml
rename to tests/java_api/LivePreview/res/layout/main.xml
diff --git a/java/tests/LivePreview/res/layout/rs.xml b/tests/java_api/LivePreview/res/layout/rs.xml
similarity index 100%
rename from java/tests/LivePreview/res/layout/rs.xml
rename to tests/java_api/LivePreview/res/layout/rs.xml
diff --git a/java/tests/LivePreview/res/values/strings.xml b/tests/java_api/LivePreview/res/values/strings.xml
similarity index 100%
rename from java/tests/LivePreview/res/values/strings.xml
rename to tests/java_api/LivePreview/res/values/strings.xml
diff --git a/java/tests/LivePreview/src/com/android/rs/livepreview/CameraPreviewActivity.java b/tests/java_api/LivePreview/src/com/android/rs/livepreview/CameraPreviewActivity.java
similarity index 100%
rename from java/tests/LivePreview/src/com/android/rs/livepreview/CameraPreviewActivity.java
rename to tests/java_api/LivePreview/src/com/android/rs/livepreview/CameraPreviewActivity.java
diff --git a/java/tests/LivePreview/src/com/android/rs/livepreview/RsYuv.java b/tests/java_api/LivePreview/src/com/android/rs/livepreview/RsYuv.java
similarity index 100%
rename from java/tests/LivePreview/src/com/android/rs/livepreview/RsYuv.java
rename to tests/java_api/LivePreview/src/com/android/rs/livepreview/RsYuv.java
diff --git a/java/tests/LivePreview/src/com/android/rs/livepreview/yuv.rs b/tests/java_api/LivePreview/src/com/android/rs/livepreview/yuv.rs
similarity index 100%
rename from java/tests/LivePreview/src/com/android/rs/livepreview/yuv.rs
rename to tests/java_api/LivePreview/src/com/android/rs/livepreview/yuv.rs
diff --git a/java/tests/MathErr/Android.mk b/tests/java_api/MathErr/Android.mk
similarity index 100%
rename from java/tests/MathErr/Android.mk
rename to tests/java_api/MathErr/Android.mk
diff --git a/java/tests/MathErr/AndroidManifest.xml b/tests/java_api/MathErr/AndroidManifest.xml
similarity index 100%
rename from java/tests/MathErr/AndroidManifest.xml
rename to tests/java_api/MathErr/AndroidManifest.xml
diff --git a/java/tests/MathErr/res/layout/main.xml b/tests/java_api/MathErr/res/layout/main.xml
similarity index 100%
rename from java/tests/MathErr/res/layout/main.xml
rename to tests/java_api/MathErr/res/layout/main.xml
diff --git a/java/tests/MathErr/src/com/example/android/rs/matherr/MathErr.java b/tests/java_api/MathErr/src/com/example/android/rs/matherr/MathErr.java
similarity index 100%
rename from java/tests/MathErr/src/com/example/android/rs/matherr/MathErr.java
rename to tests/java_api/MathErr/src/com/example/android/rs/matherr/MathErr.java
diff --git a/java/tests/MathErr/src/com/example/android/rs/matherr/MathErrActivity.java b/tests/java_api/MathErr/src/com/example/android/rs/matherr/MathErrActivity.java
similarity index 100%
rename from java/tests/MathErr/src/com/example/android/rs/matherr/MathErrActivity.java
rename to tests/java_api/MathErr/src/com/example/android/rs/matherr/MathErrActivity.java
diff --git a/java/tests/MathErr/src/com/example/android/rs/matherr/math_err.rs b/tests/java_api/MathErr/src/com/example/android/rs/matherr/math_err.rs
similarity index 100%
rename from java/tests/MathErr/src/com/example/android/rs/matherr/math_err.rs
rename to tests/java_api/MathErr/src/com/example/android/rs/matherr/math_err.rs
diff --git a/java/tests/RSTest_CompatLib/Android.mk b/tests/java_api/RSTest_CompatLib/Android.mk
similarity index 100%
rename from java/tests/RSTest_CompatLib/Android.mk
rename to tests/java_api/RSTest_CompatLib/Android.mk
diff --git a/java/tests/RSTest_CompatLib/AndroidManifest.xml b/tests/java_api/RSTest_CompatLib/AndroidManifest.xml
similarity index 100%
rename from java/tests/RSTest_CompatLib/AndroidManifest.xml
rename to tests/java_api/RSTest_CompatLib/AndroidManifest.xml
diff --git a/java/tests/RSTest_CompatLib/res/drawable-nodpi/test_pattern.png b/tests/java_api/RSTest_CompatLib/res/drawable-nodpi/test_pattern.png
similarity index 100%
rename from java/tests/RSTest_CompatLib/res/drawable-nodpi/test_pattern.png
rename to tests/java_api/RSTest_CompatLib/res/drawable-nodpi/test_pattern.png
Binary files differ
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/RSTest.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/RSTest.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/RSTest.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/RSTest.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/RSTestCore.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/RSTestCore.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/RSTestCore.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/RSTestCore.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_alloc.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_alloc.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_alloc.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_alloc.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_alloc_copy.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_alloc_copy.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_alloc_copy.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_alloc_copy.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_alloc_copyPadded.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_alloc_copyPadded.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_alloc_copyPadded.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_alloc_copyPadded.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_apitest.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_apitest.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_apitest.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_apitest.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_array_alloc.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_array_alloc.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_array_alloc.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_array_alloc.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_array_init.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_array_init.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_array_init.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_array_init.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_atomic.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_atomic.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_atomic.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_atomic.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_bug_char.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_bug_char.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_bug_char.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_bug_char.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_clamp.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_clamp.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_clamp.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_clamp.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_clamp_relaxed.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_clamp_relaxed.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_clamp_relaxed.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_clamp_relaxed.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_constant.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_constant.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_constant.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_constant.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_convert.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_convert.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_convert.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_convert.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_convert_relaxed.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_convert_relaxed.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_convert_relaxed.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_convert_relaxed.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_copy_test.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_copy_test.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_copy_test.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_copy_test.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_element.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_element.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_element.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_element.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_foreach.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_foreach.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_foreach.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_foreach.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_foreach_bounds.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_foreach_bounds.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_foreach_bounds.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_foreach_bounds.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_fp_mad.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_fp_mad.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_fp_mad.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_fp_mad.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_instance.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_instance.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_instance.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_instance.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_int4.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_int4.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_int4.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_int4.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_kernel.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_kernel.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_kernel.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_kernel.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_kernel_struct.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_kernel_struct.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_kernel_struct.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_kernel_struct.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_math.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_math.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_math.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_math.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_math_agree.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_math_agree.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_math_agree.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_math_agree.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_math_conformance.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_math_conformance.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_math_conformance.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_math_conformance.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_min.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_min.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_min.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_min.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_noroot.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_noroot.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_noroot.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_noroot.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_primitives.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_primitives.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_primitives.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_primitives.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_reduce.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_reduce.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_reduce.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_reduce.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_reduce_backward.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_reduce_backward.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_reduce_backward.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_reduce_backward.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_refcount.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_refcount.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_refcount.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_refcount.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_rsdebug.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_rsdebug.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_rsdebug.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_rsdebug.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_rstime.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_rstime.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_rstime.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_rstime.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_rstypes.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_rstypes.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_rstypes.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_rstypes.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_sampler.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_sampler.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_sampler.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_sampler.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_float.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_float.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_float.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_float.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_gatherscatter.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_gatherscatter.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_gatherscatter.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_gatherscatter.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_nochain.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_nochain.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_nochain.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_nochain.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_pointwise.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_pointwise.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_pointwise.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_script_group2_pointwise.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_alloc.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_alloc.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_alloc.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_alloc.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_ref_count.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_ref_count.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_ref_count.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_ref_count.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_script.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_script.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_script.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_single_source_script.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_struct.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_struct.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_struct.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_struct.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_unsigned.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_unsigned.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_unsigned.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_unsigned.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_vector.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_vector.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UT_vector.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UT_vector.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/UnitTest.java b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UnitTest.java
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/UnitTest.java
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/UnitTest.java
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/addup.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/addup.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/addup.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/addup.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/alloc.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/alloc.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/alloc.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/alloc.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/apitest.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/apitest.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/apitest.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/apitest.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/array_alloc.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/array_alloc.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/array_alloc.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/array_alloc.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/array_init.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/array_init.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/array_init.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/array_init.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/atomic.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/atomic.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/atomic.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/atomic.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/bug_char.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/bug_char.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/bug_char.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/bug_char.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/clamp.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/clamp.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/clamp.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/clamp.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/clamp_relaxed.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/clamp_relaxed.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/clamp_relaxed.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/clamp_relaxed.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/constant.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/constant.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/constant.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/constant.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/convert.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/convert.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/convert.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/convert.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/convert_relaxed.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/convert_relaxed.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/convert_relaxed.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/convert_relaxed.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/copy_test.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/copy_test.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/copy_test.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/copy_test.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/double.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/double.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/double.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/double.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/element.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/element.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/element.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/element.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/float_test.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/float_test.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/float_test.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/float_test.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/foreach.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/foreach.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/foreach.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/foreach.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/foreach_bounds.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/foreach_bounds.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/foreach_bounds.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/foreach_bounds.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/fp_mad.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/fp_mad.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/fp_mad.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/fp_mad.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/increment.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/increment.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/increment.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/increment.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/increment2.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/increment2.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/increment2.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/increment2.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/instance.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/instance.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/instance.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/instance.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/int4.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/int4.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/int4.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/int4.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/kernel.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/kernel.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/kernel.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/kernel.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/kernel_struct.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/kernel_struct.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/kernel_struct.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/kernel_struct.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/math.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/math.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/math.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/math.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/math_agree.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/math_agree.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/math_agree.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/math_agree.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/math_conformance.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/math_conformance.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/math_conformance.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/math_conformance.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/min.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/min.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/min.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/min.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/noroot.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/noroot.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/noroot.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/noroot.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/primitives.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/primitives.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/primitives.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/primitives.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/reduce.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/reduce.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/reduce.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/reduce.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/reduce_backward.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/reduce_backward.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/reduce_backward.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/reduce_backward.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/refcount.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/refcount.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/refcount.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/refcount.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/rsdebug.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/rsdebug.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/rsdebug.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/rsdebug.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/rslist.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/rslist.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/rslist.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/rslist.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/rstime.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/rstime.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/rstime.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/rstime.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/rstypes.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/rstypes.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/rstypes.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/rstypes.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/sampler.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/sampler.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/sampler.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/sampler.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/shared.rsh b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/shared.rsh
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/shared.rsh
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/shared.rsh
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/single_source_alloc.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/single_source_alloc.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/single_source_alloc.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/single_source_alloc.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/single_source_ref_count.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/single_source_ref_count.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/single_source_ref_count.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/single_source_ref_count.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/single_source_script.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/single_source_script.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/single_source_script.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/single_source_script.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/struct.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/struct.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/struct.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/struct.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/unsigned.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/unsigned.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/unsigned.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/unsigned.rs
diff --git a/java/tests/RSTest_CompatLib/src/com/android/rs/test/vector.rs b/tests/java_api/RSTest_CompatLib/src/com/android/rs/test/vector.rs
similarity index 100%
rename from java/tests/RSTest_CompatLib/src/com/android/rs/test/vector.rs
rename to tests/java_api/RSTest_CompatLib/src/com/android/rs/test/vector.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/Android.mk b/tests/java_api/RSTest_CompatLibLegacy/Android.mk
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/Android.mk
rename to tests/java_api/RSTest_CompatLibLegacy/Android.mk
diff --git a/java/tests/RSTest_CompatLibLegacy/AndroidManifest.xml b/tests/java_api/RSTest_CompatLibLegacy/AndroidManifest.xml
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/AndroidManifest.xml
rename to tests/java_api/RSTest_CompatLibLegacy/AndroidManifest.xml
diff --git a/java/tests/RSTest_CompatLibLegacy/res/drawable-nodpi/test_pattern.png b/tests/java_api/RSTest_CompatLibLegacy/res/drawable-nodpi/test_pattern.png
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/res/drawable-nodpi/test_pattern.png
rename to tests/java_api/RSTest_CompatLibLegacy/res/drawable-nodpi/test_pattern.png
Binary files differ
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/RSTest.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/RSTest.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/RSTest.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/RSTest.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/RSTestCore.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/RSTestCore.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/RSTestCore.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/RSTestCore.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc_copy.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc_copy.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc_copy.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc_copy.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc_copyPadded.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc_copyPadded.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc_copyPadded.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_alloc_copyPadded.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_apitest.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_apitest.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_apitest.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_apitest.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_array_alloc.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_array_alloc.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_array_alloc.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_array_alloc.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_array_init.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_array_init.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_array_init.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_array_init.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_atomic.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_atomic.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_atomic.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_atomic.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_bug_char.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_bug_char.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_bug_char.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_bug_char.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_clamp.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_clamp.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_clamp.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_clamp.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_clamp_relaxed.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_clamp_relaxed.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_clamp_relaxed.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_clamp_relaxed.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_constant.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_constant.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_constant.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_constant.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_convert.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_convert.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_convert.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_convert.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_convert_relaxed.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_convert_relaxed.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_convert_relaxed.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_convert_relaxed.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_copy_test.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_copy_test.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_copy_test.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_copy_test.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_element.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_element.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_element.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_element.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_foreach.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_foreach.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_foreach.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_foreach.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_foreach_bounds.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_foreach_bounds.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_foreach_bounds.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_foreach_bounds.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_fp_mad.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_fp_mad.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_fp_mad.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_fp_mad.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_instance.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_instance.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_instance.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_instance.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_int4.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_int4.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_int4.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_int4.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_kernel.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_kernel.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_kernel.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_kernel.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_kernel_struct.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_kernel_struct.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_kernel_struct.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_kernel_struct.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math_agree.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math_agree.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math_agree.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math_agree.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math_conformance.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math_conformance.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math_conformance.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_math_conformance.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_min.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_min.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_min.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_min.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_noroot.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_noroot.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_noroot.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_noroot.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_primitives.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_primitives.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_primitives.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_primitives.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_refcount.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_refcount.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_refcount.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_refcount.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rsdebug.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rsdebug.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rsdebug.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rsdebug.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rstime.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rstime.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rstime.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rstime.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rstypes.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rstypes.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rstypes.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_rstypes.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_sampler.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_sampler.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_sampler.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_sampler.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_struct.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_struct.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_struct.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_struct.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_unsigned.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_unsigned.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_unsigned.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_unsigned.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_vector.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_vector.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_vector.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UT_vector.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UnitTest.java b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UnitTest.java
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/UnitTest.java
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/UnitTest.java
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/alloc.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/alloc.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/alloc.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/alloc.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/apitest.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/apitest.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/apitest.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/apitest.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/array_alloc.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/array_alloc.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/array_alloc.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/array_alloc.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/array_init.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/array_init.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/array_init.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/array_init.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/atomic.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/atomic.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/atomic.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/atomic.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/bug_char.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/bug_char.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/bug_char.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/bug_char.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/clamp.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/clamp.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/clamp.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/clamp.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/clamp_relaxed.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/clamp_relaxed.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/clamp_relaxed.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/clamp_relaxed.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/constant.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/constant.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/constant.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/constant.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/convert.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/convert.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/convert.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/convert.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/convert_relaxed.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/convert_relaxed.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/convert_relaxed.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/convert_relaxed.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/copy_test.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/copy_test.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/copy_test.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/copy_test.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/element.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/element.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/element.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/element.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/foreach.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/foreach.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/foreach.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/foreach.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/foreach_bounds.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/foreach_bounds.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/foreach_bounds.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/foreach_bounds.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/fp_mad.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/fp_mad.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/fp_mad.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/fp_mad.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/instance.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/instance.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/instance.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/instance.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/int4.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/int4.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/int4.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/int4.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/kernel.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/kernel.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/kernel.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/kernel.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/kernel_struct.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/kernel_struct.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/kernel_struct.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/kernel_struct.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/math.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/math.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/math.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/math.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/math_agree.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/math_agree.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/math_agree.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/math_agree.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/math_conformance.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/math_conformance.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/math_conformance.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/math_conformance.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/min.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/min.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/min.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/min.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/noroot.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/noroot.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/noroot.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/noroot.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/primitives.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/primitives.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/primitives.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/primitives.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/refcount.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/refcount.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/refcount.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/refcount.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/rsdebug.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/rsdebug.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/rsdebug.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/rsdebug.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/rslist.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/rslist.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/rslist.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/rslist.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/rstime.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/rstime.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/rstime.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/rstime.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/rstypes.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/rstypes.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/rstypes.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/rstypes.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/sampler.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/sampler.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/sampler.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/sampler.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/shared.rsh b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/shared.rsh
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/shared.rsh
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/shared.rsh
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/struct.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/struct.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/struct.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/struct.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/unsigned.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/unsigned.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/unsigned.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/unsigned.rs
diff --git a/java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/vector.rs b/tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/vector.rs
similarity index 100%
rename from java/tests/RSTest_CompatLibLegacy/src/com/android/rs/test/vector.rs
rename to tests/java_api/RSTest_CompatLibLegacy/src/com/android/rs/test/vector.rs
diff --git a/java/tests/Refocus/Android.mk b/tests/java_api/Refocus/Android.mk
similarity index 100%
rename from java/tests/Refocus/Android.mk
rename to tests/java_api/Refocus/Android.mk
diff --git a/java/tests/Refocus/AndroidManifest.xml b/tests/java_api/Refocus/AndroidManifest.xml
similarity index 100%
rename from java/tests/Refocus/AndroidManifest.xml
rename to tests/java_api/Refocus/AndroidManifest.xml
diff --git a/java/tests/Refocus/dataExtraction/N5.txt b/tests/java_api/Refocus/dataExtraction/N5.txt
similarity index 100%
rename from java/tests/Refocus/dataExtraction/N5.txt
rename to tests/java_api/Refocus/dataExtraction/N5.txt
diff --git a/java/tests/Refocus/dataExtraction/N5ave.txt b/tests/java_api/Refocus/dataExtraction/N5ave.txt
similarity index 100%
rename from java/tests/Refocus/dataExtraction/N5ave.txt
rename to tests/java_api/Refocus/dataExtraction/N5ave.txt
diff --git a/java/tests/Refocus/dataExtraction/N5clean.txt b/tests/java_api/Refocus/dataExtraction/N5clean.txt
similarity index 100%
rename from java/tests/Refocus/dataExtraction/N5clean.txt
rename to tests/java_api/Refocus/dataExtraction/N5clean.txt
diff --git a/java/tests/Refocus/dataExtraction/RefocusTestTimingProcess.txt b/tests/java_api/Refocus/dataExtraction/RefocusTestTimingProcess.txt
similarity index 100%
rename from java/tests/Refocus/dataExtraction/RefocusTestTimingProcess.txt
rename to tests/java_api/Refocus/dataExtraction/RefocusTestTimingProcess.txt
diff --git a/java/tests/Refocus/dataExtraction/extract_ave.sh b/tests/java_api/Refocus/dataExtraction/extract_ave.sh
similarity index 100%
rename from java/tests/Refocus/dataExtraction/extract_ave.sh
rename to tests/java_api/Refocus/dataExtraction/extract_ave.sh
diff --git a/java/tests/Refocus/dataExtraction/extract_data.sh b/tests/java_api/Refocus/dataExtraction/extract_data.sh
similarity index 100%
rename from java/tests/Refocus/dataExtraction/extract_data.sh
rename to tests/java_api/Refocus/dataExtraction/extract_data.sh
diff --git a/tests/java_api/Refocus/res/drawable-nodpi/apple.jpg b/tests/java_api/Refocus/res/drawable-nodpi/apple.jpg
new file mode 100644
index 0000000..d12f6c5
--- /dev/null
+++ b/tests/java_api/Refocus/res/drawable-nodpi/apple.jpg
Binary files differ
diff --git a/tests/java_api/Refocus/res/drawable-nodpi/balls.png b/tests/java_api/Refocus/res/drawable-nodpi/balls.png
new file mode 100644
index 0000000..83da288
--- /dev/null
+++ b/tests/java_api/Refocus/res/drawable-nodpi/balls.png
Binary files differ
diff --git a/tests/java_api/Refocus/res/drawable-nodpi/balls_depthmap.pfm b/tests/java_api/Refocus/res/drawable-nodpi/balls_depthmap.pfm
new file mode 100644
index 0000000..b762cfd
--- /dev/null
+++ b/tests/java_api/Refocus/res/drawable-nodpi/balls_depthmap.pfm
Binary files differ
diff --git a/tests/java_api/Refocus/res/drawable-nodpi/cup.jpg b/tests/java_api/Refocus/res/drawable-nodpi/cup.jpg
new file mode 100644
index 0000000..098ee18
--- /dev/null
+++ b/tests/java_api/Refocus/res/drawable-nodpi/cup.jpg
Binary files differ
diff --git a/tests/java_api/Refocus/res/drawable-nodpi/flower.png b/tests/java_api/Refocus/res/drawable-nodpi/flower.png
new file mode 100644
index 0000000..0107b38
--- /dev/null
+++ b/tests/java_api/Refocus/res/drawable-nodpi/flower.png
Binary files differ
diff --git a/tests/java_api/Refocus/res/drawable-nodpi/flower_depthmap.png b/tests/java_api/Refocus/res/drawable-nodpi/flower_depthmap.png
new file mode 100644
index 0000000..d5e8c25
--- /dev/null
+++ b/tests/java_api/Refocus/res/drawable-nodpi/flower_depthmap.png
Binary files differ
diff --git a/java/tests/Refocus/res/drawable-nodpi/refocusimage.jpg b/tests/java_api/Refocus/res/drawable-nodpi/refocusimage.jpg
similarity index 100%
rename from java/tests/Refocus/res/drawable-nodpi/refocusimage.jpg
rename to tests/java_api/Refocus/res/drawable-nodpi/refocusimage.jpg
Binary files differ
diff --git a/tests/java_api/Refocus/res/drawable-nodpi/sculpture.png b/tests/java_api/Refocus/res/drawable-nodpi/sculpture.png
new file mode 100644
index 0000000..112f310
--- /dev/null
+++ b/tests/java_api/Refocus/res/drawable-nodpi/sculpture.png
Binary files differ
diff --git a/tests/java_api/Refocus/res/drawable-nodpi/sculpture_depthmap.pfm b/tests/java_api/Refocus/res/drawable-nodpi/sculpture_depthmap.pfm
new file mode 100644
index 0000000..25ff119
--- /dev/null
+++ b/tests/java_api/Refocus/res/drawable-nodpi/sculpture_depthmap.pfm
Binary files differ
diff --git a/tests/java_api/Refocus/res/layout/activity_main.xml b/tests/java_api/Refocus/res/layout/activity_main.xml
new file mode 100644
index 0000000..019065b
--- /dev/null
+++ b/tests/java_api/Refocus/res/layout/activity_main.xml
@@ -0,0 +1,16 @@
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ <LinearLayout android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:id="@+id/layoutTopMost"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
+ android:orientation="vertical">
+
+ </LinearLayout>
+</ScrollView>
diff --git a/java/tests/Refocus/res/mipmap-hdpi/ic_launcher.png b/tests/java_api/Refocus/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from java/tests/Refocus/res/mipmap-hdpi/ic_launcher.png
rename to tests/java_api/Refocus/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/Refocus/res/mipmap-mdpi/ic_launcher.png b/tests/java_api/Refocus/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from java/tests/Refocus/res/mipmap-mdpi/ic_launcher.png
rename to tests/java_api/Refocus/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/Refocus/res/mipmap-xhdpi/ic_launcher.png b/tests/java_api/Refocus/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from java/tests/Refocus/res/mipmap-xhdpi/ic_launcher.png
rename to tests/java_api/Refocus/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/Refocus/res/mipmap-xxhdpi/ic_launcher.png b/tests/java_api/Refocus/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from java/tests/Refocus/res/mipmap-xxhdpi/ic_launcher.png
rename to tests/java_api/Refocus/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/Refocus/res/values-w820dp/dimens.xml b/tests/java_api/Refocus/res/values-w820dp/dimens.xml
similarity index 100%
rename from java/tests/Refocus/res/values-w820dp/dimens.xml
rename to tests/java_api/Refocus/res/values-w820dp/dimens.xml
diff --git a/java/tests/Refocus/res/values/dimens.xml b/tests/java_api/Refocus/res/values/dimens.xml
similarity index 100%
rename from java/tests/Refocus/res/values/dimens.xml
rename to tests/java_api/Refocus/res/values/dimens.xml
diff --git a/java/tests/Refocus/res/values/strings.xml b/tests/java_api/Refocus/res/values/strings.xml
similarity index 100%
rename from java/tests/Refocus/res/values/strings.xml
rename to tests/java_api/Refocus/res/values/strings.xml
diff --git a/java/tests/Refocus/src/com/android/rs/test/BlurStack.java b/tests/java_api/Refocus/src/com/android/rs/test/BlurStack.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/BlurStack.java
rename to tests/java_api/Refocus/src/com/android/rs/test/BlurStack.java
diff --git a/tests/java_api/Refocus/src/com/android/rs/test/DepthImage.java b/tests/java_api/Refocus/src/com/android/rs/test/DepthImage.java
new file mode 100644
index 0000000..63e6dcd
--- /dev/null
+++ b/tests/java_api/Refocus/src/com/android/rs/test/DepthImage.java
@@ -0,0 +1,206 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.rs.refocus;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.net.Uri;
+import com.android.rs.refocus.image.RangeInverseDepthTransform;
+import com.android.rs.refocus.image.RangeLinearDepthTransform;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+
+public class DepthImage {
+ private final String mFormat;
+ private final double mFar;
+ private final double mNear;
+ private final Bitmap mDepthBitmap;
+ private final double mBlurAtInfinity;
+ private final double mFocalDistance;
+ private final double mDepthOfField;
+ private final double mFocalPointX;
+ private final double mFocalPointY;
+ private final DepthTransform mDepthTransform;
+
+ public DepthImage(String format, double far, double near,
+ Bitmap depthBitmap, double blurAtInfinity,
+ double focalDistance, double depthOfField,
+ double focalPointX, double focalPointY,
+ DepthTransform depthTransform) {
+ mFormat = format;
+ mFar = far;
+ mNear = near;
+ mDepthBitmap = depthBitmap;
+ mBlurAtInfinity = blurAtInfinity;
+ mFocalDistance = focalDistance;
+ mDepthOfField = depthOfField;
+ mFocalPointX = focalPointX;
+ mFocalPointY = focalPointY;
+ mDepthTransform = depthTransform;
+ }
+
+ public static DepthImage createFromXMPMetadata(Context context, Uri image)
+ throws IOException {
+ InputStream input = context.getContentResolver().openInputStream(image);
+ XmpDepthDecode decode = new XmpDepthDecode(input);
+ return new DepthImage(decode.getFormat(), decode.getFar(),
+ decode.getNear(), decode.getDepthBitmap(),
+ decode.getBlurAtInfinity(),
+ decode.getFocalDistance(),
+ decode.getDepthOfField(),
+ decode.getFocalPointX(),
+ decode.getFocalPointY(),
+ decode.getDepthTransform());
+ }
+
+ public static DepthImage createFromDepthmap(Context context, Uri uriDepthmap)
+ throws IOException {
+ Bitmap bitmap = BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uriDepthmap));
+ if (bitmap == null) {
+ throw new FileNotFoundException(uriDepthmap.toString());
+ }
+
+ double near = 12.0;
+ double far = 120.0;
+ DepthTransform transform = new RangeInverseDepthTransform((float)near, (float)far);
+ return new DepthImage(RangeInverseDepthTransform.FORMAT,
+ far,
+ near,
+ bitmap, // depthmap
+ 5.0, // blur at ininity
+ 15.0, // focal distance
+ 0.1, // depth of field
+ 0.5, // x of focal point
+ 0.5, // y of focla point
+ transform);
+ }
+
+ private static class MinMax {
+ public float min;
+ public float max;
+
+ public MinMax(float min, float max) {
+ this.min = min;
+ this.max = max;
+ }
+
+ public static MinMax create(float min, float max) {
+ return new MinMax(min, max);
+ }
+ }
+
+ private static MinMax findMinAndMax(final float[] array) {
+ float min = array[0];
+ float max = min;
+ for (int i = 1; i < array.length; i++) {
+ final float x = array[i];
+ if (x < min) {
+ min = x;
+ } else if (x > max) {
+ max = x;
+ }
+ }
+ return MinMax.create(min, max);
+ }
+
+ public static DepthImage createFromPFM(Context context, Uri uriPFM)
+ throws IOException {
+ PortableFloatMap pfm = new PortableFloatMap(context.getContentResolver().openInputStream(uriPFM));
+
+ final float[] floatPixels = pfm.getPixelArray();
+ int[] intPixels = new int[floatPixels.length];
+ final MinMax minMax = findMinAndMax(floatPixels);
+ final float near = minMax.min;
+ final float far = minMax.max;
+ DepthTransform transform = new RangeInverseDepthTransform(near, far);
+
+/*
+ android.util.Log.v("DepthImage", "near = " + String.format("%g", near));
+ android.util.Log.v("DepthImage", "far = " + String.format("%g", far));
+*/
+ int width = pfm.getWidth();
+ int height = pfm.getHeight();
+
+ for (int i = 0; i < intPixels.length; i++) {
+ int value = transform.quantize(floatPixels[i]) & 0xFF;
+ intPixels[i] = value | (value << 8) | (value << 16) | (0xFF << 24);
+/*
+ if (i >= intPixels.length - width) {
+ android.util.Log.v("DepthImage", "float pixel " + i + ":" + String.format("%g", floatPixels[i]));
+ android.util.Log.v("DepthImage", "int pixel " + i + ":" + String.format("0x%02X", intPixels[i]));
+ }
+*/
+ }
+
+ Bitmap bitmap = Bitmap.createBitmap(intPixels, width, height, Bitmap.Config.ARGB_8888);
+
+ // MediaStoreSaver.savePNG(bitmap, "depthmap", "balls", context);
+
+ return new DepthImage(RangeInverseDepthTransform.FORMAT,
+ far,
+ near,
+ bitmap, // depthmap
+ 400.0, // blur at ininity
+ //15.0, // blur at ininity
+ 19.6, // focal distance
+ //near+(far-near)*0.2, // focal distance
+ //5.0, // flocal distance
+ 0.005, // depth of field
+ 0.4, // x of focal point
+ 0.4, // y of focal point
+ transform);
+ }
+
+ public Bitmap getDepthBitmap() {
+ return mDepthBitmap;
+ }
+
+ public DepthTransform getDepthTransform() { return mDepthTransform; }
+
+ public String getFormat() {
+ return mFormat;
+ }
+
+ public double getFar() {
+ return mFar;
+ }
+
+ public double getNear() {
+ return mNear;
+ }
+
+ public double getBlurAtInfinity() {
+ return mBlurAtInfinity;
+ }
+
+ public double getFocalDistance() {
+ return mFocalDistance;
+ }
+
+ public double getDepthOfField() {return mDepthOfField; }
+
+ public double getFocalPointX() {
+ return mFocalPointX;
+ }
+
+ public double getFocalPointY() {
+ return mFocalPointY;
+ }
+}
+
diff --git a/java/tests/Refocus/src/com/android/rs/test/DepthOfFieldOptions.java b/tests/java_api/Refocus/src/com/android/rs/test/DepthOfFieldOptions.java
similarity index 89%
rename from java/tests/Refocus/src/com/android/rs/test/DepthOfFieldOptions.java
rename to tests/java_api/Refocus/src/com/android/rs/test/DepthOfFieldOptions.java
index 0a907d5..4004dbb 100644
--- a/java/tests/Refocus/src/com/android/rs/test/DepthOfFieldOptions.java
+++ b/tests/java_api/Refocus/src/com/android/rs/test/DepthOfFieldOptions.java
@@ -23,7 +23,7 @@
public DepthOfFieldOptions(RGBZ rgbz) {
this.focalDepth = (float)rgbz.getFocusDepth();
this.depthOfField = (float)rgbz.getDepthOfField();
- this.blurInfinity = (float)rgbz.getBlurInfinity() * Math.max(rgbz.getHeight(), rgbz.getWidth());
+ this.blurInfinity = (float)rgbz.getBlurInfinity();
this.rgbz = rgbz;
}
@@ -36,4 +36,8 @@
public void setBokeh(float bokeh) {
this.blurInfinity = bokeh * 200;
}
+
+ public void setDepthOfField(float depthOfField) {
+ this.depthOfField = depthOfField;
+ }
}
diff --git a/java/tests/Refocus/src/com/android/rs/test/DepthTransform.java b/tests/java_api/Refocus/src/com/android/rs/test/DepthTransform.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/DepthTransform.java
rename to tests/java_api/Refocus/src/com/android/rs/test/DepthTransform.java
diff --git a/java/tests/Refocus/src/com/android/rs/test/ImageBuffersForRenderScript.java b/tests/java_api/Refocus/src/com/android/rs/test/ImageBuffersForRenderScript.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/ImageBuffersForRenderScript.java
rename to tests/java_api/Refocus/src/com/android/rs/test/ImageBuffersForRenderScript.java
diff --git a/tests/java_api/Refocus/src/com/android/rs/test/ImageCompare.java b/tests/java_api/Refocus/src/com/android/rs/test/ImageCompare.java
new file mode 100644
index 0000000..3bd91a7
--- /dev/null
+++ b/tests/java_api/Refocus/src/com/android/rs/test/ImageCompare.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.rs.refocus;
+
+import android.graphics.Bitmap;
+import android.graphics.Color;
+import java.lang.Math;
+
+public class ImageCompare {
+
+ /**
+ * Compute the luma channel of an RGB image, i.e., the Y channel of the
+ * equivalent YCbCr image.
+ * https://en.wikipedia.org/wiki/YCbCr
+ */
+ private static double luma(int pixel) {
+ final int R = Color.red(pixel);
+ final int G = Color.green(pixel);
+ final int B = Color.blue(pixel);
+ return 0.299 * R + 0.587 * G + 0.114 * B;
+ }
+
+ /**
+ * Compute peak signal-to-noise ration (PSNR) between two images
+ * The greater the value of psnr, the closer the two images are to each
+ * other. For identical images, psnr = +infinity.
+ * For 8-bit images, a psnr above 50 is commonly acceptable for a lossy
+ * conversion.
+ *
+ * References:
+ * http://www.mathworks.com/help/vision/ref/psnr.html
+ * https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio
+ */
+ public static double psnr(Bitmap bitmap1, Bitmap bitmap2) {
+ if (bitmap1.getWidth() != bitmap2.getWidth() ||
+ bitmap1.getHeight() != bitmap2.getHeight()) {
+ throw new RuntimeException("images were of diffrent size");
+ }
+
+ if (bitmap1.sameAs(bitmap2)) {
+ android.util.Log.i("RefocusTest",
+ "bitmaps verified to be identical in fast path.");
+ return Double.POSITIVE_INFINITY;
+ }
+
+ final int width = bitmap1.getWidth();
+ final int height = bitmap1.getHeight();
+ final int numPixels = width * height;
+
+ double noise = 0;
+ for (int y = 0; y < height; y++) {
+ for (int x = 0; x < width; x++) {
+ int pixel1 = bitmap1.getPixel(x, y);
+ int pixel2 = bitmap2.getPixel(x, y);
+ if (pixel1 != pixel2) {
+ final double Y1 = luma(pixel1);
+ final double Y2 = luma(pixel2);
+ noise += (Y1 - Y2) * (Y1 - Y2);
+ }
+ }
+ }
+
+ final double mse = noise / numPixels;
+ final double psnr = 20 * Math.log10(255) - 10 * Math.log10(mse);
+ return psnr;
+ }
+}
diff --git a/java/tests/Refocus/src/com/android/rs/test/KernelDataForRenderScript.java b/tests/java_api/Refocus/src/com/android/rs/test/KernelDataForRenderScript.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/KernelDataForRenderScript.java
rename to tests/java_api/Refocus/src/com/android/rs/test/KernelDataForRenderScript.java
diff --git a/java/tests/Refocus/src/com/android/rs/test/LayerInfo.java b/tests/java_api/Refocus/src/com/android/rs/test/LayerInfo.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/LayerInfo.java
rename to tests/java_api/Refocus/src/com/android/rs/test/LayerInfo.java
diff --git a/tests/java_api/Refocus/src/com/android/rs/test/MainActivity.java b/tests/java_api/Refocus/src/com/android/rs/test/MainActivity.java
new file mode 100644
index 0000000..22b56ed
--- /dev/null
+++ b/tests/java_api/Refocus/src/com/android/rs/test/MainActivity.java
@@ -0,0 +1,296 @@
+package com.android.rs.refocus;
+
+import android.app.Activity;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Environment;
+import android.os.Bundle;
+import android.support.v8.renderscript.RenderScript;
+import android.util.Log;
+import android.util.Pair;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.LinearLayout.LayoutParams;
+import android.widget.TextView;
+
+import java.io.File;
+import java.io.IOException;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+
+public class MainActivity extends Activity {
+ private static final int RS_API = 19;
+ private static final String TAG = "MainActivity";
+
+ private LinearLayout mLayout;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ mLayout = (LinearLayout) findViewById(R.id.layoutTopMost);
+
+ Intent intent = getIntent();
+ if (intent != null) {
+
+ String s = intent.getType();
+ if (s != null && s.indexOf("image/") != -1) {
+ Uri data = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
+ if (data != null) {
+
+ try {
+ RenderScript renderScript = RenderScript.create(getApplicationContext(), RS_API);
+ renderScript.setPriority(RenderScript.Priority.NORMAL);
+
+ // Get input uri to RGBZ
+ RGBZ current_rgbz = new RGBZ(data, getContentResolver(), this);
+ DepthOfFieldOptions current_depth_options = new DepthOfFieldOptions(current_rgbz);
+
+ // Set image focus settings
+ current_depth_options.setFocusPoint(0.7f, 0.5f);
+ current_depth_options.setBokeh(2f);
+
+ RsTaskParams rsTaskParam = new RsTaskParams(this, renderScript, current_depth_options);
+ new RsAsyncTaskRunner().execute(rsTaskParam);
+ return;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }
+ }
+ }
+
+
+ try {
+ RenderScript renderScript = RenderScript.create(getApplicationContext(), RS_API);
+ renderScript.setPriority(RenderScript.Priority.NORMAL);
+
+ RGBZ rgbz;
+ DepthOfFieldOptions options;
+ RsTaskParams task;
+/*
+ rgbz = new RGBZ(getResourceRef(R.drawable.flower2), getContentResolver(), this);
+ options = new DepthOfFieldOptions(rgbz);
+ options.setFocusPoint(0.5f, 0.5f);
+ options.setBokeh(0.25f);
+
+ task = new RsTaskParams(this, renderScript, options);
+ new RsAsyncTaskRunner().execute(task);
+
+ rgbz = new RGBZ(getResourceRef(R.drawable.cup), getContentResolver(), this);
+ options = new DepthOfFieldOptions(rgbz);
+ options.setFocusPoint(0.5f, 0.5f);
+ options.setBokeh(0.25f);
+
+ task = new RsTaskParams(this, renderScript, options);
+ new RsAsyncTaskRunner().execute(task);
+
+ rgbz = new RGBZ(getResourceRef(R.drawable.apple), getContentResolver(), this);
+ options = new DepthOfFieldOptions(rgbz);
+ options.setFocusPoint(0.5f, 0.5f);
+ options.setBokeh(0.25f);
+
+ task = new RsTaskParams(this, renderScript, options);
+ new RsAsyncTaskRunner().execute(task);
+*/
+/*
+ RGBZ current_rgbz = new RGBZ(getResourceRef(R.drawable.refocusimage),
+ getContentResolver(), this);
+*/
+ rgbz = new RGBZ(getResourceRef(R.drawable.flower),
+ getResourceRef(R.drawable.flower_depthmap),
+ getContentResolver(), this);
+ options = new DepthOfFieldOptions(rgbz);
+ options.setFocusPoint(0.5f, 0.5f);
+ options.setBokeh(0.025f);
+
+ task = new RsTaskParams(this, renderScript, options);
+ new RsAsyncTaskRunner().execute(task);
+
+/*
+ RGBZ current_rgbz =
+ RGBZ.createFromBitmapDepthmap(getResourceRef(R.drawable.balls),
+ getResourceRef(R.drawable.balls_depthmap1),
+ getContentResolver(), this);
+*/
+ rgbz = RGBZ.createFromPFMDepthmap(getResourceRef(R.drawable.balls),
+ getResourceRef(R.drawable.balls_depthmap),
+ getContentResolver(), this);
+ options = new DepthOfFieldOptions(rgbz);
+ options.setFocusPoint(0.2f, 0.167f);
+ options.setBokeh(2.0f);
+ options.setDepthOfField(0.005f);
+
+ task = new RsTaskParams(this, renderScript, options);
+ new RsAsyncTaskRunner().execute(task);
+
+ rgbz = RGBZ.createFromPFMDepthmap(getResourceRef(R.drawable.sculpture),
+ getResourceRef(R.drawable.sculpture_depthmap),
+ getContentResolver(), this);
+ options = new DepthOfFieldOptions(rgbz);
+ // Set image focus settings
+ options.setFocusPoint(0.33f, 0.66f);
+ options.setBokeh(0.1f);
+ options.setDepthOfField(0.2f);
+
+ task = new RsTaskParams(this, renderScript, options);
+ new RsAsyncTaskRunner().execute(task);
+
+ return;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private static class RsTaskParams {
+ MainActivity mContext;
+ RenderScript mRenderScript;
+ DepthOfFieldOptions mOptions;
+
+ public ImageView mImageView1;
+ public ImageView mImageView2;
+ public TextView mTextView;
+
+ RsTaskParams(MainActivity context,
+ RenderScript renderScript,
+ DepthOfFieldOptions options) {
+ mContext = context;
+ mRenderScript = renderScript;
+ mOptions = options;
+
+ LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT,
+ LayoutParams.WRAP_CONTENT);
+ mImageView1 = new ImageView(context);
+ mImageView1.setLayoutParams(lparams);
+ context.mLayout.addView(mImageView1);
+
+ mImageView2 = new ImageView(context);
+ mImageView2.setLayoutParams(lparams);
+ context.mLayout.addView(mImageView2);
+
+ mTextView = new TextView(context);
+ mTextView.setLayoutParams(lparams);
+ context.mLayout.addView(mTextView);
+ }
+
+ }
+
+ private class Result {
+ public ArrayList<Pair<String,Long>> timingsOld;
+ public ArrayList<Pair<String,Long>> timingsNew;
+ public double psnr;
+
+ public Result(ArrayList<Pair<String,Long>> timingsOld,
+ ArrayList<Pair<String,Long>> timingsNew,
+ double psnr) {
+ this.timingsOld = timingsOld;
+ this.timingsNew = timingsNew;
+ this.psnr = psnr;
+ }
+ }
+
+ private class RsAsyncTaskRunner extends AsyncTask<RsTaskParams, ImageView, Result> {
+ Bitmap outputImageOld;
+ Bitmap outputImage;
+ Bitmap outputImageNew;
+ TextView textView;
+
+ @Override
+ protected Result doInBackground(RsTaskParams... params) {
+
+ RenderScriptTask renderScriptTask = new RenderScriptTask(params[0].mRenderScript, RenderScriptTask.script.f32);
+ outputImageOld = outputImage = renderScriptTask.applyRefocusFilter(params[0].mOptions);
+ final ImageView v = params[0].mImageView1;
+ publishProgress(v);
+
+ RenderScriptTask renderScriptTaskNew = new RenderScriptTask(params[0].mRenderScript, RenderScriptTask.script.d1new);
+ outputImageNew = outputImage = renderScriptTaskNew.applyRefocusFilter(params[0].mOptions);
+ final ImageView v2 = params[0].mImageView2;
+ publishProgress(v2);
+
+ double psnr = ImageCompare.psnr(outputImageOld, outputImage);
+ textView = params[0].mTextView;
+
+ return new Result(renderScriptTask.timings, renderScriptTaskNew.timings, psnr);
+ }
+
+ protected void onPostExecute(Result result) {
+ StringBuffer buffer = new StringBuffer();
+ DecimalFormat formatter = new DecimalFormat("#,###");
+
+ buffer.append("PSNR: " + String.format("%.02f", result.psnr) + "\n");
+ long sum1 = 0, sum2 = 0;
+ for (int i = 0; i < result.timingsOld.size(); i++) {
+ String tag = result.timingsOld.get(i).first;
+ long t1 = result.timingsOld.get(i).second.longValue();
+ long t2 = result.timingsNew.get(i).second.longValue();
+ buffer.append(tag + ":" + formatter.format(t1) + ":" +
+ formatter.format(t2) + ":" +
+ String.format("%.02f", (double) t1 / t2) + "\n");
+ sum1 += t1;
+ sum2 += t2;
+ }
+ buffer.append("Sum (ms):" +
+ String.format("%.02f", (double)sum1 / 1000000) + ":" +
+ String.format("%.02f", (double)sum2 / 1000000) + ":" +
+ String.format("%.02f", (double) sum1 / sum2) + "\n");
+ textView.setText(buffer.toString());
+ }
+
+ protected void onProgressUpdate(ImageView... progress) {
+ progress[0].setImageBitmap(outputImage);
+ }
+ }
+
+ Uri getLocalRef() {
+
+
+ File folder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
+
+ Log.v(TAG, "DIRECTORY_DOCUMENTS = " + folder.getAbsolutePath());
+ ;
+ File f = findJpeg(folder);
+ if (f != null) {
+ Log.v(TAG, "File = " + f);
+ return Uri.fromFile(f);
+ }
+ return null;
+ }
+
+ Uri getResourceRef(int resID) {
+ Context context = getApplicationContext();
+ Uri path = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
+ context.getResources().getResourcePackageName(resID) + '/' +
+ context.getResources().getResourceTypeName(resID) + '/' +
+ context.getResources().getResourceEntryName(resID));
+ return path;
+ }
+
+ private File findJpeg(File dir) {
+
+ File[] files = dir.listFiles();
+ if (files == null) return null;
+ for (int i = 0; i < files.length; i++) {
+ if (files[i].isDirectory() && !files[i].getName().startsWith(".")) {
+ File ret = findJpeg(files[i]);
+ if (ret != null) {
+ Log.v(TAG, "returning " + ret.getAbsolutePath());
+ return ret;
+ }
+ continue;
+ }
+ if (files[i].getName().toLowerCase().endsWith(".jpg")) {
+ Log.v(TAG, "returning " + files[i].getAbsolutePath());
+ return files[i];
+
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/java/tests/Refocus/src/com/android/rs/test/MediaStoreSaver.java b/tests/java_api/Refocus/src/com/android/rs/test/MediaStoreSaver.java
similarity index 93%
rename from java/tests/Refocus/src/com/android/rs/test/MediaStoreSaver.java
rename to tests/java_api/Refocus/src/com/android/rs/test/MediaStoreSaver.java
index 005643f..9ec942f 100644
--- a/java/tests/Refocus/src/com/android/rs/test/MediaStoreSaver.java
+++ b/tests/java_api/Refocus/src/com/android/rs/test/MediaStoreSaver.java
@@ -45,8 +45,9 @@
System.out.println("make directory: " + dir.getAbsolutePath());
dir.mkdirs();
}
- int n = dir.listFiles().length;
- File file = new File(dir, imageName + n + ".png");
+ //int n = dir.listFiles().length;
+ //File file = new File(dir, imageName + n + ".png");
+ File file = new File(dir, imageName + ".png");
try {
FileOutputStream fOut = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.PNG, 0, fOut);
@@ -59,7 +60,7 @@
e.printStackTrace();
}
- MediaStorageScan(mContext, file);
+ // MediaStorageScan(mContext, file);
return file.getAbsolutePath();
}
/*
diff --git a/tests/java_api/Refocus/src/com/android/rs/test/PortableFloatMap.java b/tests/java_api/Refocus/src/com/android/rs/test/PortableFloatMap.java
new file mode 100644
index 0000000..0d5fd1f
--- /dev/null
+++ b/tests/java_api/Refocus/src/com/android/rs/test/PortableFloatMap.java
@@ -0,0 +1,97 @@
+package com.android.rs.refocus;
+
+import android.graphics.Bitmap;
+import com.android.rs.refocus.DepthTransform;
+import com.android.rs.refocus.image.RangeLinearDepthTransform;
+import java.io.InputStream;
+import java.io.IOException;
+import java.lang.RuntimeException;
+import java.lang.StringBuffer;
+import java.nio.ByteBuffer;
+import java.nio.FloatBuffer;
+import java.nio.ByteOrder;
+
+public class PortableFloatMap {
+
+ private int mWidth;
+ private int mHeight;
+ private float mScale;
+ private boolean mLittleEndian;
+ private ByteOrder mByteOrder;
+
+ private int mBytesPerPixel;
+ private ByteBuffer mData;
+
+ private static String readString(InputStream in)
+ throws IOException {
+ StringBuffer buffer = new StringBuffer();
+ int c;
+ while ((c = in.read()) != -1 && c != 0xa && c != 0x20) {
+ buffer.append((char)c);
+ }
+ return buffer.toString();
+ }
+
+ public PortableFloatMap(InputStream in)
+ throws IOException {
+ String formatLine = readString(in);
+
+ if (formatLine.compareTo("Pf") != 0) {
+ // Currently "PF" (RGB32F) is not supported.
+ // Only "Pf" (Greyscale32F) is supported.
+ throw new RuntimeException("Unexpected format line: " + formatLine);
+ }
+
+ mBytesPerPixel = 4;
+
+ String widthLine = readString(in);
+
+ mWidth = Integer.parseInt(widthLine);
+
+ String heightLine = readString(in);
+
+ mHeight = Integer.parseInt(heightLine);
+
+ final int bytesPerRow = mBytesPerPixel * mWidth;
+
+ mData = ByteBuffer.allocate(bytesPerRow * mHeight);
+
+ String scaleLine = readString(in);
+
+ mScale = Float.parseFloat(scaleLine);
+
+ mData.order(mScale < 0 ? ByteOrder.LITTLE_ENDIAN : ByteOrder.BIG_ENDIAN);
+
+ byte[] row = new byte[mBytesPerPixel * mWidth];
+
+ for (int y = 0; y < mHeight; y++) {
+ int nRead = 0;
+ int offset = 0;
+ while (offset < bytesPerRow) {
+ nRead = in.read(row, offset, bytesPerRow - offset);
+ if (nRead < 0) {
+ throw new RuntimeException("Unexpected End of File.");
+ }
+ offset += nRead;
+ }
+ mData.put(row);
+ }
+ mData.rewind();
+ }
+
+ final float[] getPixelArray() {
+ FloatBuffer floatBuffer = mData.asFloatBuffer();
+ if (floatBuffer.hasArray()) {
+ return floatBuffer.array();
+ }
+
+ float[] array = new float[mWidth * mHeight];
+ floatBuffer.get(array);
+
+ return array;
+ }
+
+ int getWidth() { return mWidth; }
+
+ int getHeight() { return mHeight; }
+}
diff --git a/tests/java_api/Refocus/src/com/android/rs/test/RGBZ.java b/tests/java_api/Refocus/src/com/android/rs/test/RGBZ.java
new file mode 100644
index 0000000..8e82659
--- /dev/null
+++ b/tests/java_api/Refocus/src/com/android/rs/test/RGBZ.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.rs.refocus;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Color;
+import android.net.Uri;
+import android.util.Log;
+import com.android.rs.refocus.image.RangeInverseDepthTransform;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+/**
+ * An RGBZ image, where Z stands for depth, i.e. a color+depth image.
+ * The RGBZ always has a preview image, which represents the latest rendering of the RGBZ.
+ * The preview is encoded as the normal jpeg content for client compatibility,
+ * while the color channel and depth channels are encoded as XMP data.
+ * The class supports lazy initialization where the XMP meta data is loaded only when first
+ * accessed.
+ */
+public class RGBZ {
+ public static final String TAG = "RGBZ";
+
+ private Bitmap bitmap;
+ private Bitmap preview;
+ private Bitmap depthBitmap;
+ private DepthTransform depthTransform;
+ private DepthImage depthImage;
+
+ /**
+ * Creates an RGBZ from a content uri.
+ *
+ * @param uri The uri name of the RGBZ
+ * @throws FileNotFoundException if the RGBZ could not be read
+ */
+ public RGBZ(Uri uri, ContentResolver contentResolver, Context context) throws IOException {
+ preview = BitmapFactory.decodeStream(contentResolver.openInputStream(uri));
+ if (preview == null) {
+ throw new FileNotFoundException(uri.toString());
+ }
+ depthImage = DepthImage.createFromXMPMetadata(context, uri);
+ depthBitmap = depthImage.getDepthBitmap();
+ //MediaStoreSaver.savePNG(depthBitmap, "depthmap", "depthmap", context);
+ bitmap = setAlphaChannel(preview, depthBitmap);
+ depthTransform = depthImage.getDepthTransform();
+ }
+
+ /**
+ * Creates an RGBZ from uris to an image and a depthmap.
+ *
+ * @param uriImage The uri name of the image
+ * @param uriDepthmap The uri name of the depthmap
+ * @throws FileNotFoundException if the RGBZ could not be read
+ */
+ public RGBZ(Uri uriImage, Uri uriDepthmap, ContentResolver contentResolver,
+ Context context) throws IOException {
+ preview = BitmapFactory.decodeStream(contentResolver.openInputStream(uriImage));
+ if (preview == null) {
+ throw new FileNotFoundException(uriImage.toString());
+ }
+ depthImage = DepthImage.createFromDepthmap(context, uriDepthmap);
+ depthBitmap = depthImage.getDepthBitmap();
+ bitmap = setAlphaChannel(preview, depthBitmap);
+ depthTransform = depthImage.getDepthTransform();
+ }
+
+
+ public RGBZ(Bitmap image, DepthImage depthImage) {
+ preview = image;
+ this.depthImage = depthImage;
+ depthBitmap = depthImage.getDepthBitmap();
+ bitmap = setAlphaChannel(preview, depthBitmap);
+ depthTransform = depthImage.getDepthTransform();
+ }
+
+ public static RGBZ createFromBitmapDepthmap(Uri uriImage, Uri uriDepthmap,
+ ContentResolver contentResolver, Context context)
+ throws IOException {
+ Bitmap image = BitmapFactory.decodeStream(contentResolver.openInputStream(uriImage));
+ if (image == null) {
+ throw new FileNotFoundException(uriImage.toString());
+ }
+ DepthImage depthImage = DepthImage.createFromDepthmap(context, uriDepthmap);
+ return new RGBZ(image, depthImage);
+ }
+
+ public static RGBZ createFromPFMDepthmap(Uri uriImage, Uri uriDepthmap,
+ ContentResolver contentResolver, Context context)
+ throws IOException {
+ Bitmap image = BitmapFactory.decodeStream(contentResolver.openInputStream(uriImage));
+ if (image == null) {
+ throw new FileNotFoundException(uriImage.toString());
+ }
+ DepthImage depthImage = DepthImage.createFromPFM(context, uriDepthmap);
+ MediaStoreSaver.savePNG(depthImage.getDepthBitmap(), "depthmap",
+ "depthmap", context);
+ return new RGBZ(image, depthImage);
+ }
+
+ /**
+ * @return Whether the RGBZ has a depth channel
+ */
+ public boolean hasDepthmap() {
+ return depthTransform != null;
+ }
+
+ /**
+ * @return The color+depth {@code Bitmap}
+ */
+ public Bitmap getBitmap() {
+ return bitmap;
+ }
+
+ /**
+ * @return The depthmap component of this RGBZ
+ */
+ public DepthTransform getDepthTransform() {
+ return depthTransform;
+ }
+
+ public double getFocusDepth() {
+ return this.depthImage.getFocalDistance();
+ }
+
+ public double getDepthOfField() {
+ return this.depthImage.getDepthOfField();
+ }
+
+ public double getBlurInfinity() {
+ return this.depthImage.getBlurAtInfinity();
+ }
+
+ /**
+ * @return the width of this {@code RGBZ}
+ */
+ public int getWidth() {
+ return bitmap.getWidth();
+ }
+
+ /**
+ * @return the height of this {@code RGBZ}
+ */
+ public int getHeight() {
+ return bitmap.getHeight();
+ }
+
+ /**
+ * @return the depth value of the given pixel
+ */
+
+ public float getDepth(int x, int y) {
+ if (!hasDepthmap()) {
+ return 0.0f;
+ }
+ if (x < 0 || x > depthBitmap.getWidth() ||
+ y < 0 || y > depthBitmap.getHeight()) {
+ Log.e("RGBZ getDepth", "index out of bound");
+ return 0;
+ }
+ return getDepthTransform().reconstruct(Color.blue(depthBitmap.getPixel(x, y)));
+ }
+
+ /**
+ * Sets the depthmap as the alpha channel of the {@code Bitmap}.
+ */
+ public Bitmap setAlphaChannel(Bitmap bitmap, Bitmap depthBitmap) {
+ if (bitmap == null) {
+ return bitmap;
+ }
+ Bitmap result = bitmap.copy(Bitmap.Config.ARGB_8888, true);
+ // set the alpha channel of depthBitmap to alpha of bitmap
+ result = setAlphaChannelFromBitmap(depthBitmap, bitmap, result);
+ return result;
+ }
+
+ private Bitmap setAlphaChannelFromBitmap(Bitmap depth, Bitmap orig, Bitmap dest) {
+ int w = orig.getWidth();
+ int h = orig.getHeight();
+ int[] orig_data = new int[w*h];
+ int[] depth_data = new int[w*h];
+
+ orig.getPixels(orig_data, 0, w, 0, 0, w, h);
+ depth.getPixels(depth_data, 0, w, 0, 0, w, h);
+ for (int i = 0; i < orig_data.length; i++) {
+ int v = orig_data[i] & 0x00FFFFFF;
+ int temp = (depth_data[i] & 0x000000FF) << 24;
+ v = v | temp;
+ orig_data[i] = v;
+ }
+ dest.setPixels(orig_data, 0, w, 0, 0, w, h);
+ return dest;
+ }
+}
+
diff --git a/java/tests/Refocus/src/com/android/rs/test/RefocusFilter.java b/tests/java_api/Refocus/src/com/android/rs/test/RefocusFilter.java
similarity index 93%
rename from java/tests/Refocus/src/com/android/rs/test/RefocusFilter.java
rename to tests/java_api/Refocus/src/com/android/rs/test/RefocusFilter.java
index 5ac3422..ddb2b48 100644
--- a/java/tests/Refocus/src/com/android/rs/test/RefocusFilter.java
+++ b/tests/java_api/Refocus/src/com/android/rs/test/RefocusFilter.java
@@ -3,6 +3,8 @@
import android.graphics.Bitmap;
import android.support.v8.renderscript.RenderScript;
import android.util.Log;
+import android.util.Pair;
+import java.util.ArrayList;
/**
* An abstract class that implements refocus filtering using Render Script. The
@@ -23,6 +25,18 @@
// Script functions in .rs file.
protected ScriptType scriptC;
+ // Timing info for each phase and total computation
+ public ArrayList<Pair<String,Long>> timings = new ArrayList<Pair<String,Long>>();
+
+ public void logTiming(String implementation, String phase, long time) {
+ logTiming(implementation, phase, time, "ns");
+ }
+
+ public void logTiming(String implementation, String phase, long time, String unit) {
+ timings.add(Pair.create(phase + " (" + unit + ")", Long.valueOf(time)));
+ Log.d(implementation, phase + ":" + time + " " + unit);
+ }
+
/*
* A constructor that initializes the class.
*
diff --git a/java/tests/Refocus/src/com/android/rs/test/RenderScriptTask.java b/tests/java_api/Refocus/src/com/android/rs/test/RenderScriptTask.java
similarity index 87%
rename from java/tests/Refocus/src/com/android/rs/test/RenderScriptTask.java
rename to tests/java_api/Refocus/src/com/android/rs/test/RenderScriptTask.java
index 6c932ba..c8e9559 100644
--- a/java/tests/Refocus/src/com/android/rs/test/RenderScriptTask.java
+++ b/tests/java_api/Refocus/src/com/android/rs/test/RenderScriptTask.java
@@ -6,7 +6,8 @@
import android.graphics.Bitmap;
import android.support.v8.renderscript.RenderScript;
import android.util.Log;
-
+import android.util.Pair;
+import java.util.ArrayList;
/**
* An wrapper class that calls the refocus filtering function in
@@ -62,6 +63,8 @@
*/
private RenderScript renderScript;
+ public ArrayList<Pair<String,Long>> timings;
+
/**
* A constructor of render script context.
*
@@ -81,29 +84,28 @@
* @return the refocus filtering result
*/
public Bitmap applyRefocusFilter(DepthOfFieldOptions options) {
- long startTime = System.currentTimeMillis();
-
// Generates {@code rgbdImage} and {@code blurStack}.
prepareRefocusFilter(options);
- Bitmap outputImage = null;
+
// Check which version of RenderScript code is used.
+ RefocusFilter filter;
switch (mScript) {
case f32:
- RefocusFilterF32 rfFilterF32 = new RefocusFilterF32(renderScript);
- outputImage =
- rfFilterF32.compute(rgbdImage, blurStack);
+ filter = new RefocusFilterF32(renderScript);
break;
case d1new:
- RefocusFilterd1new rfFilterd1new = new RefocusFilterd1new(renderScript);
- outputImage =
- rfFilterd1new.compute(rgbdImage, blurStack);
+ filter = new RefocusFilterd1new(renderScript);
break;
+ default:
+ filter = null;
}
+ long startTime = System.currentTimeMillis();
+ Bitmap outputImage = filter.compute(rgbdImage, blurStack);
long endTime = System.currentTimeMillis();
- float duration = (endTime - startTime);
- Log.d(TAG, "applyRefocusFilter is finished in " + (duration / 1000.0f)
- + " seconds");
+ filter.logTiming(TAG, "TOTAL", endTime - startTime, "ms");
+
+ timings = filter.timings;
return outputImage;
}
diff --git a/java/tests/Refocus/src/com/android/rs/test/XmpDepthDecode.java b/tests/java_api/Refocus/src/com/android/rs/test/XmpDepthDecode.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/XmpDepthDecode.java
rename to tests/java_api/Refocus/src/com/android/rs/test/XmpDepthDecode.java
diff --git a/java/tests/Refocus/src/com/android/rs/test/camera_response.rsh b/tests/java_api/Refocus/src/com/android/rs/test/camera_response.rsh
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/camera_response.rsh
rename to tests/java_api/Refocus/src/com/android/rs/test/camera_response.rsh
diff --git a/java/tests/Refocus/src/com/android/rs/test/camera_response_fast.rsh b/tests/java_api/Refocus/src/com/android/rs/test/camera_response_fast.rsh
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/camera_response_fast.rsh
rename to tests/java_api/Refocus/src/com/android/rs/test/camera_response_fast.rsh
diff --git a/java/tests/Refocus/src/com/android/rs/test/d1new/ImageBuffersForRenderScriptd1new.java b/tests/java_api/Refocus/src/com/android/rs/test/d1new/ImageBuffersForRenderScriptd1new.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/d1new/ImageBuffersForRenderScriptd1new.java
rename to tests/java_api/Refocus/src/com/android/rs/test/d1new/ImageBuffersForRenderScriptd1new.java
diff --git a/java/tests/Refocus/src/com/android/rs/test/d1new/KernelDataForRenderScriptd1new.java b/tests/java_api/Refocus/src/com/android/rs/test/d1new/KernelDataForRenderScriptd1new.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/d1new/KernelDataForRenderScriptd1new.java
rename to tests/java_api/Refocus/src/com/android/rs/test/d1new/KernelDataForRenderScriptd1new.java
diff --git a/java/tests/Refocus/src/com/android/rs/test/d1new/RefocusFilterd1new.java b/tests/java_api/Refocus/src/com/android/rs/test/d1new/RefocusFilterd1new.java
similarity index 88%
rename from java/tests/Refocus/src/com/android/rs/test/d1new/RefocusFilterd1new.java
rename to tests/java_api/Refocus/src/com/android/rs/test/d1new/RefocusFilterd1new.java
index ee5ca47..2df00bd 100644
--- a/java/tests/Refocus/src/com/android/rs/test/d1new/RefocusFilterd1new.java
+++ b/tests/java_api/Refocus/src/com/android/rs/test/d1new/RefocusFilterd1new.java
@@ -65,9 +65,13 @@
startnow = System.nanoTime();
scriptC.forEach_PackOutputImage(buffers.outAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "PackOutputImage: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "PackOutputImage", endnow - startnow);
+ startnow = System.nanoTime();
buffers.outAllocation.copyTo(buffers.outputImage);
+ endnow = System.nanoTime();
+ logTiming(myTAG, "CopyOutputImage", endnow - startnow);
+
return buffers.outputImage;
}
@@ -133,16 +137,16 @@
startnow = System.nanoTime();
//scriptC.forEach_MarkLayerMask(buffers.inAllocation);
// Pass sharp meta allocation directly into the kernel
- scriptC.forEach_MarkLayerMaskPassInput(buffers.sharpActualDepthAllocation, buffers.sharpDilatedDepthAllocation);
+ scriptC.forEach_MarkLayerMaskPassInput(buffers.sharpActualDepthAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "MarkLayerMask: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "MarkLayerMask", endnow - startnow);
startnow = System.nanoTime();
//scriptC.forEach_ComputeLayerMatteBehindFocalDepth(buffers.inAllocation);
// Pass g_sharp_meta into kernel and get updated g_sharp_meta
scriptC.forEach_ComputeLayerMatteBehindFocalDepthPassInput(buffers.sharpDilatedDepthAllocation, buffers.sharpDilatedDepthAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "ComputeLayerMatteBehindFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "ComputeLayerMatteBehindFocalDepth", endnow - startnow);
}
@Override
@@ -162,7 +166,7 @@
scriptC.forEach_ComputeIntegralImageForLayerBehindFocalDepth(
buffers.inAllocation, launchOptions);
endnow = System.nanoTime();
- Log.d(myTAG, "ComputeIntegralImageForLayerBehindFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "ComputeIntegralImageForLayerBehindFocalDepth", endnow - startnow);
} else {
scriptC.invoke_SetUseIntegralImage(0);
}
@@ -172,7 +176,8 @@
// Pass g_fuzzy_RGBA into kernel and get g_fuzzy_RGBA as output
scriptC.forEach_FilterLayerBehindFocalDepthPassInput(buffers.fuzzyRGBAAllocation, buffers.fuzzyRGBAAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "FilterLayerBehindFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "FilterLayerBehindFocalDepth", endnow - startnow);
+
//extractFuzzyImage("fuzzy_behind");
//extractSharpImage("sharp_behind");
}
@@ -186,10 +191,10 @@
//scriptC.forEach_UpdateSharpImageUsingFuzzyImage(buffers.inAllocation);
// Pass input and output version of UpdateSharpImageUsingFuzzyImage
- scriptC.forEach_UpdateSharpUsingFuzzyPassInput(buffers.sharpDilatedDepthAllocation, buffers.sharpDilatedDepthAllocation);
+ scriptC.forEach_UpdateSharpUsingFuzzyPassInput(buffers.sharpDilatedDepthAllocation, buffers.sharpDilatedDepthAllocation);
+ endnow = System.nanoTime();
+ logTiming(myTAG, "UpdateSharpImageUsingFuzzyImage", endnow - startnow);
- endnow = System.nanoTime();
- Log.d(myTAG, "updateSharpImageUsingFuzzyImage: "+(endnow - startnow)+ " ns" );
//extractSharpImage("sharp_update");
}
@@ -204,16 +209,16 @@
startnow = System.nanoTime();
//scriptC.forEach_MarkLayerMask(buffers.inAllocation);
// Pass sharp meta allocation directly into the kernel
- scriptC.forEach_MarkLayerMaskPassInput(buffers.sharpActualDepthAllocation, buffers.sharpDilatedDepthAllocation);
+ scriptC.forEach_MarkLayerMaskPassInput(buffers.sharpActualDepthAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "MarkLayerMask: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "MarkLayerMask", endnow - startnow);
startnow = System.nanoTime();
//scriptC.forEach_ComputeLayerMatteInFrontOfFocalDepth(buffers.inAllocation);
// Pass g_sharp_meta and g_fuzzy_RGBA directly into the kernel
scriptC.forEach_ComputeLayerMatteInFrontOfFocalDepthPassInput(buffers.sharpDilatedDepthAllocation, buffers.sharpDilatedDepthAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "ComputeLayerMatteInFrontOfFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "ComputeLayerMatteInFrontOfFocalDepth", endnow - startnow);
}
@Override
@@ -232,7 +237,7 @@
scriptC.forEach_ComputeIntegralImageForLayerInFrontOfFocalDepth(
buffers.inAllocation, launchOptions);
endnow = System.nanoTime();
- Log.d(myTAG, "ComputeIntegralImageForLayerInFrontOfFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "ComputeIntegralImageForLayerInFrontOfFocalDepth", endnow - startnow);
} else {
scriptC.invoke_SetUseIntegralImage(0);
}
@@ -241,7 +246,7 @@
// Pass g_sharp_dilated_depth into kernel and get g_fuzzy_RGBA as output
scriptC.forEach_FilterLayerInFrontOfFocalDepthPassInput(buffers.sharpDilatedDepthAllocation, buffers.sharpDilatedDepthAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "FilterLayerInFrontOfFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "FilterLayerInFrontOfFocalDepth", endnow - startnow);
//extractFuzzyImage("fuzzy_front");
//extractSharpImage("sharp_front");
@@ -257,6 +262,6 @@
scriptC.forEach_FinalizeFuzzyImageUsingSharpImage(buffers.inAllocation);
//scriptC.forEach_FinalizeFuzzyImageUsingSharpImagePassInput(buffers.sharpActualDepthAllocation, buffers.fuzzyRGBAAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "finalizeFuzzyImageUsingSharpImage: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "FinalizeFuzzyImageUsingSharpImage", endnow - startnow);
}
}
diff --git a/java/tests/Refocus/src/com/android/rs/test/f32/ImageBuffersForRenderScriptF32.java b/tests/java_api/Refocus/src/com/android/rs/test/f32/ImageBuffersForRenderScriptF32.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/f32/ImageBuffersForRenderScriptF32.java
rename to tests/java_api/Refocus/src/com/android/rs/test/f32/ImageBuffersForRenderScriptF32.java
diff --git a/java/tests/Refocus/src/com/android/rs/test/f32/KernelDataForRenderScriptF32.java b/tests/java_api/Refocus/src/com/android/rs/test/f32/KernelDataForRenderScriptF32.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/f32/KernelDataForRenderScriptF32.java
rename to tests/java_api/Refocus/src/com/android/rs/test/f32/KernelDataForRenderScriptF32.java
diff --git a/java/tests/Refocus/src/com/android/rs/test/f32/RefocusFilterF32.java b/tests/java_api/Refocus/src/com/android/rs/test/f32/RefocusFilterF32.java
similarity index 89%
rename from java/tests/Refocus/src/com/android/rs/test/f32/RefocusFilterF32.java
rename to tests/java_api/Refocus/src/com/android/rs/test/f32/RefocusFilterF32.java
index d7ccef9..f203a81 100644
--- a/java/tests/Refocus/src/com/android/rs/test/f32/RefocusFilterF32.java
+++ b/tests/java_api/Refocus/src/com/android/rs/test/f32/RefocusFilterF32.java
@@ -63,9 +63,13 @@
startnow = System.nanoTime();
scriptC.forEach_PackOutputImage(buffers.outAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "PackOutputImage: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "PackOutputImage", endnow - startnow);
+ startnow = System.nanoTime();
buffers.outAllocation.copyTo(buffers.outputImage);
+ endnow = System.nanoTime();
+ logTiming(myTAG, "CopyOutputImage", endnow - startnow);
+
return buffers.outputImage;
}
@@ -131,12 +135,12 @@
startnow = System.nanoTime();
scriptC.forEach_MarkLayerMask(buffers.inAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "MarkLayerMask: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "MarkLayerMask", endnow - startnow);
startnow = System.nanoTime();
scriptC.forEach_ComputeLayerMatteBehindFocalDepth(buffers.inAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "ComputeLayerMatteBehindFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "ComputeLayerMatteBehindFocalDepth", endnow - startnow);
}
@Override
@@ -155,7 +159,7 @@
scriptC.forEach_ComputeIntegralImageForLayerBehindFocalDepth(
buffers.inAllocation, launchOptions);
endnow = System.nanoTime();
- Log.d(myTAG, "ComputeIntegralImageForLayerBehindFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "ComputeIntegralImageForLayerBehindFocalDepth", endnow - startnow);
} else {
scriptC.invoke_SetUseIntegralImage(0);
}
@@ -163,7 +167,7 @@
startnow = System.nanoTime();
scriptC.forEach_FilterLayerBehindFocalDepth(buffers.inAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "FilterLayerBehindFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "FilterLayerBehindFocalDepth", endnow - startnow);
//extractFuzzyImage("fuzzy_behind");
//extractSharpImage("sharp_behind");
@@ -177,7 +181,7 @@
startnow = System.nanoTime();
scriptC.forEach_UpdateSharpImageUsingFuzzyImage(buffers.inAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "UpdateSharpImageUsingFuzzyImage: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "UpdateSharpImageUsingFuzzyImage", endnow - startnow);
//extractSharpImage("sharp_update");
}
@@ -191,12 +195,12 @@
startnow = System.nanoTime();
scriptC.forEach_MarkLayerMask(buffers.inAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "MarkLayerMask: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "MarkLayerMask", endnow - startnow);
startnow = System.nanoTime();
scriptC.forEach_ComputeLayerMatteInFrontOfFocalDepth(buffers.inAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "ComputeLayerMatteInFrontOfFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "ComputeLayerMatteInFrontOfFocalDepth", endnow - startnow);
}
@Override
@@ -215,14 +219,14 @@
scriptC.forEach_ComputeIntegralImageForLayerInFrontOfFocalDepth(
buffers.inAllocation, launchOptions);
endnow = System.nanoTime();
- Log.d(myTAG, "ComputeIntegralImageForLayerInFrontOfFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "ComputeIntegralImageForLayerInFrontOfFocalDepth", endnow - startnow);
} else {
scriptC.invoke_SetUseIntegralImage(0);
}
startnow = System.nanoTime();
scriptC.forEach_FilterLayerInFrontOfFocalDepth(buffers.inAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "FilterLayerInFrontOfFocalDepth: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "FilterLayerInFrontOfFocalDepth", endnow - startnow);
//extractFuzzyImage("fuzzy_front");
//extractSharpImage("sharp_front");
@@ -237,6 +241,6 @@
startnow = System.nanoTime();
scriptC.forEach_FinalizeFuzzyImageUsingSharpImage(buffers.inAllocation);
endnow = System.nanoTime();
- Log.d(myTAG, "FinalizeFuzzyImageUsingSharpImage: "+(endnow - startnow)+ " ns" );
+ logTiming(myTAG, "FinalizeFuzzyImageUsingSharpImage", endnow - startnow);
}
}
diff --git a/java/tests/Refocus/src/com/android/rs/test/image/RangeInverseDepthTransform.java b/tests/java_api/Refocus/src/com/android/rs/test/image/RangeInverseDepthTransform.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/image/RangeInverseDepthTransform.java
rename to tests/java_api/Refocus/src/com/android/rs/test/image/RangeInverseDepthTransform.java
diff --git a/java/tests/Refocus/src/com/android/rs/test/image/RangeLinearDepthTransform.java b/tests/java_api/Refocus/src/com/android/rs/test/image/RangeLinearDepthTransform.java
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/image/RangeLinearDepthTransform.java
rename to tests/java_api/Refocus/src/com/android/rs/test/image/RangeLinearDepthTransform.java
diff --git a/java/tests/Refocus/src/com/android/rs/test/image_and_kernel.rsh b/tests/java_api/Refocus/src/com/android/rs/test/image_and_kernel.rsh
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/image_and_kernel.rsh
rename to tests/java_api/Refocus/src/com/android/rs/test/image_and_kernel.rsh
diff --git a/java/tests/Refocus/src/com/android/rs/test/layer_info.rsh b/tests/java_api/Refocus/src/com/android/rs/test/layer_info.rsh
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/layer_info.rsh
rename to tests/java_api/Refocus/src/com/android/rs/test/layer_info.rsh
diff --git a/java/tests/Refocus/src/com/android/rs/test/layer_info_fast.rsh b/tests/java_api/Refocus/src/com/android/rs/test/layer_info_fast.rsh
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/layer_info_fast.rsh
rename to tests/java_api/Refocus/src/com/android/rs/test/layer_info_fast.rsh
diff --git a/java/tests/Refocus/src/com/android/rs/test/layered_filter_d1new_helper.rsh b/tests/java_api/Refocus/src/com/android/rs/test/layered_filter_d1new_helper.rsh
similarity index 98%
rename from java/tests/Refocus/src/com/android/rs/test/layered_filter_d1new_helper.rsh
rename to tests/java_api/Refocus/src/com/android/rs/test/layered_filter_d1new_helper.rsh
index 39c8d90..77a0c31 100644
--- a/java/tests/Refocus/src/com/android/rs/test/layered_filter_d1new_helper.rsh
+++ b/tests/java_api/Refocus/src/com/android/rs/test/layered_filter_d1new_helper.rsh
@@ -73,7 +73,7 @@
}
// Converts min_dist to a matte value.
- rsSetElementAt_uchar(g_sharp_matte, (uchar)(dilation_radius + 1 - (int)half_sqrt((float)min_dist)), index_sharp_meta);
+ rsSetElementAt_uchar(g_sharp_matte, (uchar)(dilation_radius + 1 - (int)(half_sqrt((float)min_dist) + 0.5f)), index_sharp_meta);
// If sharp->matte > 0, depth must be within the depth range of this layer.
rsSetElementAt_uchar(g_sharp_dilated_depth, (uchar)depth, index_sharp_meta);
}
@@ -113,7 +113,7 @@
current_meta_index += jump_to_next_row;
}
// Converts min_dist to a matte value.
- rsSetElementAt_uchar(g_sharp_matte, (uchar)(dilation_radius + 1 - (int)half_sqrt((float)min_dist)), index_sharp_meta);
+ rsSetElementAt_uchar(g_sharp_matte, (uchar)(dilation_radius + 1 - (int)(half_sqrt((float)min_dist) + 0.5f)), index_sharp_meta);
// If sharp->matte > 0, depth must be within the depth range of this layer.
return (uchar)depth;
}
diff --git a/java/tests/Refocus/src/com/android/rs/test/layered_filter_f32_helper.rsh b/tests/java_api/Refocus/src/com/android/rs/test/layered_filter_f32_helper.rsh
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/layered_filter_f32_helper.rsh
rename to tests/java_api/Refocus/src/com/android/rs/test/layered_filter_f32_helper.rsh
diff --git a/java/tests/Refocus/src/com/android/rs/test/layered_filter_fast_d1new.rs b/tests/java_api/Refocus/src/com/android/rs/test/layered_filter_fast_d1new.rs
similarity index 98%
rename from java/tests/Refocus/src/com/android/rs/test/layered_filter_fast_d1new.rs
rename to tests/java_api/Refocus/src/com/android/rs/test/layered_filter_fast_d1new.rs
index 8437123..750e4ee 100644
--- a/java/tests/Refocus/src/com/android/rs/test/layered_filter_fast_d1new.rs
+++ b/tests/java_api/Refocus/src/com/android/rs/test/layered_filter_fast_d1new.rs
@@ -30,7 +30,7 @@
// UnpackInputImage, ComputeLayerMatteBehindFocalDepth, ComputeIntegralImageForLayerBehindFocalDepth,
// FilterLayerBehindFocalDepth, updateSharpImageUsingFuzzyImage, ComputeLayerMatteInFrontOfFocalDepth,
// FilterLayerInFrontOfFocalDepth
-double cpuDummy;
+// double cpuDummy;
// Image size of padded images: g_sharp_image and g_fuzzy_image.
// Float4 that stores the image size info: 1. width, 2. height, 3. margin
@@ -179,8 +179,8 @@
// Another version of MarkLayerMask kernel that directly passes input allocation to kernels
// Input: g_sharp_actual_depth
// Output: g_sharp_dilated_depth
-uchar __attribute__((kernel)) MarkLayerMaskPassInput(uchar in_sharp_actual_depth, uint32_t x) {
- if (!OnTheLayer(in_sharp_actual_depth, g_target_layer_i2)) return rsGetElementAt_uchar(g_sharp_dilated_depth, x);
+void __attribute__((kernel)) MarkLayerMaskPassInput(uchar in_sharp_actual_depth, uint32_t x) {
+ if (!OnTheLayer(in_sharp_actual_depth, g_target_layer_i2)) return;
// Marks this pixel as active.
rsSetElementAt_uchar(g_sharp_active, 1, x);
@@ -207,7 +207,8 @@
ValidDepthNotOnTheLayer(sharp_actual_depth, g_target_layer_i2);
if (!is_this_pixel_on_boundary) {
- return in_sharp_actual_depth;
+ rsSetElementAt_uchar(g_sharp_dilated_depth, in_sharp_actual_depth, x);
+ return;
}
// Marks pixels near the boundary of active pixels to compute matte later.
@@ -233,8 +234,6 @@
}
current_meta_index += jump_to_next_row;
}
-
- return in_sharp_actual_depth;
}
// Distance transform in processing layers in pass one from the back-most to
// the sharp depth.
diff --git a/java/tests/Refocus/src/com/android/rs/test/layered_filter_fast_f32.rs b/tests/java_api/Refocus/src/com/android/rs/test/layered_filter_fast_f32.rs
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/layered_filter_fast_f32.rs
rename to tests/java_api/Refocus/src/com/android/rs/test/layered_filter_fast_f32.rs
diff --git a/java/tests/Refocus/src/com/android/rs/test/luts_for_speedup_f32.rsh b/tests/java_api/Refocus/src/com/android/rs/test/luts_for_speedup_f32.rsh
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/luts_for_speedup_f32.rsh
rename to tests/java_api/Refocus/src/com/android/rs/test/luts_for_speedup_f32.rsh
diff --git a/java/tests/Refocus/src/com/android/rs/test/pixel_format_f32.rsh b/tests/java_api/Refocus/src/com/android/rs/test/pixel_format_f32.rsh
similarity index 100%
rename from java/tests/Refocus/src/com/android/rs/test/pixel_format_f32.rsh
rename to tests/java_api/Refocus/src/com/android/rs/test/pixel_format_f32.rsh
diff --git a/java/tests/RsBLAS_Benchmark/Android.mk b/tests/java_api/RsBLAS_Benchmark/Android.mk
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/Android.mk
rename to tests/java_api/RsBLAS_Benchmark/Android.mk
diff --git a/java/tests/RsBLAS_Benchmark/AndroidManifest.xml b/tests/java_api/RsBLAS_Benchmark/AndroidManifest.xml
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/AndroidManifest.xml
rename to tests/java_api/RsBLAS_Benchmark/AndroidManifest.xml
diff --git a/java/tests/RsBLAS_Benchmark/libsgemm/Android.mk b/tests/java_api/RsBLAS_Benchmark/libsgemm/Android.mk
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/libsgemm/Android.mk
rename to tests/java_api/RsBLAS_Benchmark/libsgemm/Android.mk
diff --git a/java/tests/RsBLAS_Benchmark/libsgemm/test_data.cpp b/tests/java_api/RsBLAS_Benchmark/libsgemm/test_data.cpp
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/libsgemm/test_data.cpp
rename to tests/java_api/RsBLAS_Benchmark/libsgemm/test_data.cpp
diff --git a/java/tests/RsBLAS_Benchmark/res/drawable-hdpi/ic_action_settings.png b/tests/java_api/RsBLAS_Benchmark/res/drawable-hdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/res/drawable-hdpi/ic_action_settings.png
rename to tests/java_api/RsBLAS_Benchmark/res/drawable-hdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/RsBLAS_Benchmark/res/drawable-mdpi/ic_action_settings.png b/tests/java_api/RsBLAS_Benchmark/res/drawable-mdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/res/drawable-mdpi/ic_action_settings.png
rename to tests/java_api/RsBLAS_Benchmark/res/drawable-mdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/RsBLAS_Benchmark/res/drawable-xhdpi/ic_action_settings.png b/tests/java_api/RsBLAS_Benchmark/res/drawable-xhdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/res/drawable-xhdpi/ic_action_settings.png
rename to tests/java_api/RsBLAS_Benchmark/res/drawable-xhdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/RsBLAS_Benchmark/res/drawable-xxhdpi/ic_action_settings.png b/tests/java_api/RsBLAS_Benchmark/res/drawable-xxhdpi/ic_action_settings.png
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/res/drawable-xxhdpi/ic_action_settings.png
rename to tests/java_api/RsBLAS_Benchmark/res/drawable-xxhdpi/ic_action_settings.png
Binary files differ
diff --git a/java/tests/RsBLAS_Benchmark/res/layout/controls.xml b/tests/java_api/RsBLAS_Benchmark/res/layout/controls.xml
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/res/layout/controls.xml
rename to tests/java_api/RsBLAS_Benchmark/res/layout/controls.xml
diff --git a/java/tests/RsBLAS_Benchmark/res/layout/main.xml b/tests/java_api/RsBLAS_Benchmark/res/layout/main.xml
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/res/layout/main.xml
rename to tests/java_api/RsBLAS_Benchmark/res/layout/main.xml
diff --git a/java/tests/RsBLAS_Benchmark/res/menu/main_activity_actions.xml b/tests/java_api/RsBLAS_Benchmark/res/menu/main_activity_actions.xml
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/res/menu/main_activity_actions.xml
rename to tests/java_api/RsBLAS_Benchmark/res/menu/main_activity_actions.xml
diff --git a/java/tests/RsBLAS_Benchmark/res/values/strings.xml b/tests/java_api/RsBLAS_Benchmark/res/values/strings.xml
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/res/values/strings.xml
rename to tests/java_api/RsBLAS_Benchmark/res/values/strings.xml
diff --git a/java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BNNMTest.java b/tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BNNMTest.java
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BNNMTest.java
rename to tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BNNMTest.java
diff --git a/java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasBenchmark.java b/tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasBenchmark.java
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasBenchmark.java
rename to tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasBenchmark.java
diff --git a/java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasControls.java b/tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasControls.java
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasControls.java
rename to tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasControls.java
diff --git a/java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasSettings.java b/tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasSettings.java
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasSettings.java
rename to tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasSettings.java
diff --git a/java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasTest.java b/tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasTest.java
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasTest.java
rename to tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasTest.java
diff --git a/java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasTestList.java b/tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasTestList.java
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasTestList.java
rename to tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/BlasTestList.java
diff --git a/java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/GoogLeNet.java b/tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/GoogLeNet.java
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/GoogLeNet.java
rename to tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/GoogLeNet.java
diff --git a/java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/SGEMMTest.java b/tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/SGEMMTest.java
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/SGEMMTest.java
rename to tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/SGEMMTest.java
diff --git a/java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/TestBase.java b/tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/TestBase.java
similarity index 100%
rename from java/tests/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/TestBase.java
rename to tests/java_api/RsBLAS_Benchmark/src/com/example/android/rs/blasbenchmark/TestBase.java
diff --git a/java/tests/RsCameraDemo/Android.mk b/tests/java_api/RsCameraDemo/Android.mk
similarity index 100%
rename from java/tests/RsCameraDemo/Android.mk
rename to tests/java_api/RsCameraDemo/Android.mk
diff --git a/java/tests/RsCameraDemo/AndroidManifest.xml b/tests/java_api/RsCameraDemo/AndroidManifest.xml
similarity index 100%
rename from java/tests/RsCameraDemo/AndroidManifest.xml
rename to tests/java_api/RsCameraDemo/AndroidManifest.xml
diff --git a/java/tests/RsCameraDemo/_index.html b/tests/java_api/RsCameraDemo/_index.html
similarity index 100%
rename from java/tests/RsCameraDemo/_index.html
rename to tests/java_api/RsCameraDemo/_index.html
diff --git a/java/tests/RsCameraDemo/res/anim/slide_in_from_left.xml b/tests/java_api/RsCameraDemo/res/anim/slide_in_from_left.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/anim/slide_in_from_left.xml
rename to tests/java_api/RsCameraDemo/res/anim/slide_in_from_left.xml
diff --git a/java/tests/RsCameraDemo/res/anim/slide_out_to_right.xml b/tests/java_api/RsCameraDemo/res/anim/slide_out_to_right.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/anim/slide_out_to_right.xml
rename to tests/java_api/RsCameraDemo/res/anim/slide_out_to_right.xml
diff --git a/java/tests/RsCameraDemo/res/drawable-hdpi/camera.png b/tests/java_api/RsCameraDemo/res/drawable-hdpi/camera.png
similarity index 100%
rename from java/tests/RsCameraDemo/res/drawable-hdpi/camera.png
rename to tests/java_api/RsCameraDemo/res/drawable-hdpi/camera.png
Binary files differ
diff --git a/java/tests/RsCameraDemo/res/drawable-mdpi/camera.png b/tests/java_api/RsCameraDemo/res/drawable-mdpi/camera.png
similarity index 100%
rename from java/tests/RsCameraDemo/res/drawable-mdpi/camera.png
rename to tests/java_api/RsCameraDemo/res/drawable-mdpi/camera.png
Binary files differ
diff --git a/java/tests/RsCameraDemo/res/drawable-xhdpi/camera.png b/tests/java_api/RsCameraDemo/res/drawable-xhdpi/camera.png
similarity index 100%
rename from java/tests/RsCameraDemo/res/drawable-xhdpi/camera.png
rename to tests/java_api/RsCameraDemo/res/drawable-xhdpi/camera.png
Binary files differ
diff --git a/java/tests/RsCameraDemo/res/drawable-xxhdpi/camera.png b/tests/java_api/RsCameraDemo/res/drawable-xxhdpi/camera.png
similarity index 100%
rename from java/tests/RsCameraDemo/res/drawable-xxhdpi/camera.png
rename to tests/java_api/RsCameraDemo/res/drawable-xxhdpi/camera.png
Binary files differ
diff --git a/java/tests/RsCameraDemo/res/drawable/ic_back.xml b/tests/java_api/RsCameraDemo/res/drawable/ic_back.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/drawable/ic_back.xml
rename to tests/java_api/RsCameraDemo/res/drawable/ic_back.xml
diff --git a/java/tests/RsCameraDemo/res/drawable/ic_cam.xml b/tests/java_api/RsCameraDemo/res/drawable/ic_cam.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/drawable/ic_cam.xml
rename to tests/java_api/RsCameraDemo/res/drawable/ic_cam.xml
diff --git a/java/tests/RsCameraDemo/res/layout/activity_main.xml b/tests/java_api/RsCameraDemo/res/layout/activity_main.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/layout/activity_main.xml
rename to tests/java_api/RsCameraDemo/res/layout/activity_main.xml
diff --git a/java/tests/RsCameraDemo/res/values-v21/styles.xml b/tests/java_api/RsCameraDemo/res/values-v21/styles.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/values-v21/styles.xml
rename to tests/java_api/RsCameraDemo/res/values-v21/styles.xml
diff --git a/java/tests/RsCameraDemo/res/values-w820dp/dimens.xml b/tests/java_api/RsCameraDemo/res/values-w820dp/dimens.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/values-w820dp/dimens.xml
rename to tests/java_api/RsCameraDemo/res/values-w820dp/dimens.xml
diff --git a/java/tests/RsCameraDemo/res/values/attrs.xml b/tests/java_api/RsCameraDemo/res/values/attrs.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/values/attrs.xml
rename to tests/java_api/RsCameraDemo/res/values/attrs.xml
diff --git a/java/tests/RsCameraDemo/res/values/base-strings.xml b/tests/java_api/RsCameraDemo/res/values/base-strings.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/values/base-strings.xml
rename to tests/java_api/RsCameraDemo/res/values/base-strings.xml
diff --git a/java/tests/RsCameraDemo/res/values/strings.xml b/tests/java_api/RsCameraDemo/res/values/strings.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/values/strings.xml
rename to tests/java_api/RsCameraDemo/res/values/strings.xml
diff --git a/java/tests/RsCameraDemo/res/values/template-dimens.xml b/tests/java_api/RsCameraDemo/res/values/template-dimens.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/values/template-dimens.xml
rename to tests/java_api/RsCameraDemo/res/values/template-dimens.xml
diff --git a/java/tests/RsCameraDemo/res/values/template-styles.xml b/tests/java_api/RsCameraDemo/res/values/template-styles.xml
similarity index 100%
rename from java/tests/RsCameraDemo/res/values/template-styles.xml
rename to tests/java_api/RsCameraDemo/res/values/template-styles.xml
diff --git a/java/tests/RsCameraDemo/src/com/android/example/rscamera/CameraOps.java b/tests/java_api/RsCameraDemo/src/com/android/example/rscamera/CameraOps.java
similarity index 100%
rename from java/tests/RsCameraDemo/src/com/android/example/rscamera/CameraOps.java
rename to tests/java_api/RsCameraDemo/src/com/android/example/rscamera/CameraOps.java
diff --git a/java/tests/RsCameraDemo/src/com/android/example/rscamera/CameraView.java b/tests/java_api/RsCameraDemo/src/com/android/example/rscamera/CameraView.java
similarity index 100%
rename from java/tests/RsCameraDemo/src/com/android/example/rscamera/CameraView.java
rename to tests/java_api/RsCameraDemo/src/com/android/example/rscamera/CameraView.java
diff --git a/java/tests/RsCameraDemo/src/com/android/example/rscamera/FixedAspectSurfaceView.java b/tests/java_api/RsCameraDemo/src/com/android/example/rscamera/FixedAspectSurfaceView.java
similarity index 100%
rename from java/tests/RsCameraDemo/src/com/android/example/rscamera/FixedAspectSurfaceView.java
rename to tests/java_api/RsCameraDemo/src/com/android/example/rscamera/FixedAspectSurfaceView.java
diff --git a/java/tests/RsCameraDemo/src/com/android/example/rscamera/MainActivity.java b/tests/java_api/RsCameraDemo/src/com/android/example/rscamera/MainActivity.java
similarity index 100%
rename from java/tests/RsCameraDemo/src/com/android/example/rscamera/MainActivity.java
rename to tests/java_api/RsCameraDemo/src/com/android/example/rscamera/MainActivity.java
diff --git a/java/tests/RsCameraDemo/src/com/android/example/rscamera/MediaStoreSaver.java b/tests/java_api/RsCameraDemo/src/com/android/example/rscamera/MediaStoreSaver.java
similarity index 100%
rename from java/tests/RsCameraDemo/src/com/android/example/rscamera/MediaStoreSaver.java
rename to tests/java_api/RsCameraDemo/src/com/android/example/rscamera/MediaStoreSaver.java
diff --git a/java/tests/RsCameraDemo/src/com/android/example/rscamera/VerticalSeekBar.java b/tests/java_api/RsCameraDemo/src/com/android/example/rscamera/VerticalSeekBar.java
similarity index 100%
rename from java/tests/RsCameraDemo/src/com/android/example/rscamera/VerticalSeekBar.java
rename to tests/java_api/RsCameraDemo/src/com/android/example/rscamera/VerticalSeekBar.java
diff --git a/java/tests/RsCameraDemo/src/com/android/example/rscamera/ViewfinderProcessor.java b/tests/java_api/RsCameraDemo/src/com/android/example/rscamera/ViewfinderProcessor.java
similarity index 100%
rename from java/tests/RsCameraDemo/src/com/android/example/rscamera/ViewfinderProcessor.java
rename to tests/java_api/RsCameraDemo/src/com/android/example/rscamera/ViewfinderProcessor.java
diff --git a/java/tests/RsCameraDemo/src/com/android/example/rscamera/focus_peak.rs b/tests/java_api/RsCameraDemo/src/com/android/example/rscamera/focus_peak.rs
similarity index 100%
rename from java/tests/RsCameraDemo/src/com/android/example/rscamera/focus_peak.rs
rename to tests/java_api/RsCameraDemo/src/com/android/example/rscamera/focus_peak.rs
diff --git a/java/tests/RsNbody/Android.mk b/tests/java_api/RsNbody/Android.mk
similarity index 100%
rename from java/tests/RsNbody/Android.mk
rename to tests/java_api/RsNbody/Android.mk
diff --git a/java/tests/RsNbody/AndroidManifest.xml b/tests/java_api/RsNbody/AndroidManifest.xml
similarity index 100%
rename from java/tests/RsNbody/AndroidManifest.xml
rename to tests/java_api/RsNbody/AndroidManifest.xml
diff --git a/java/tests/RsNbody/res/layout/activity_main.xml b/tests/java_api/RsNbody/res/layout/activity_main.xml
similarity index 100%
rename from java/tests/RsNbody/res/layout/activity_main.xml
rename to tests/java_api/RsNbody/res/layout/activity_main.xml
diff --git a/java/tests/RsNbody/res/mipmap-hdpi/ic_launcher.png b/tests/java_api/RsNbody/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from java/tests/RsNbody/res/mipmap-hdpi/ic_launcher.png
rename to tests/java_api/RsNbody/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/RsNbody/res/mipmap-mdpi/ic_launcher.png b/tests/java_api/RsNbody/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from java/tests/RsNbody/res/mipmap-mdpi/ic_launcher.png
rename to tests/java_api/RsNbody/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/RsNbody/res/mipmap-xhdpi/ic_launcher.png b/tests/java_api/RsNbody/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from java/tests/RsNbody/res/mipmap-xhdpi/ic_launcher.png
rename to tests/java_api/RsNbody/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/RsNbody/res/mipmap-xxhdpi/ic_launcher.png b/tests/java_api/RsNbody/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from java/tests/RsNbody/res/mipmap-xxhdpi/ic_launcher.png
rename to tests/java_api/RsNbody/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/RsNbody/res/mipmap-xxxhdpi/ic_launcher.png b/tests/java_api/RsNbody/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from java/tests/RsNbody/res/mipmap-xxxhdpi/ic_launcher.png
rename to tests/java_api/RsNbody/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/RsNbody/res/values-w820dp/dimens.xml b/tests/java_api/RsNbody/res/values-w820dp/dimens.xml
similarity index 100%
rename from java/tests/RsNbody/res/values-w820dp/dimens.xml
rename to tests/java_api/RsNbody/res/values-w820dp/dimens.xml
diff --git a/java/tests/RsNbody/res/values/colors.xml b/tests/java_api/RsNbody/res/values/colors.xml
similarity index 100%
rename from java/tests/RsNbody/res/values/colors.xml
rename to tests/java_api/RsNbody/res/values/colors.xml
diff --git a/java/tests/RsNbody/res/values/dimens.xml b/tests/java_api/RsNbody/res/values/dimens.xml
similarity index 100%
rename from java/tests/RsNbody/res/values/dimens.xml
rename to tests/java_api/RsNbody/res/values/dimens.xml
diff --git a/java/tests/RsNbody/res/values/strings.xml b/tests/java_api/RsNbody/res/values/strings.xml
similarity index 100%
rename from java/tests/RsNbody/res/values/strings.xml
rename to tests/java_api/RsNbody/res/values/strings.xml
diff --git a/java/tests/RsNbody/res/values/styles.xml b/tests/java_api/RsNbody/res/values/styles.xml
similarity index 100%
rename from java/tests/RsNbody/res/values/styles.xml
rename to tests/java_api/RsNbody/res/values/styles.xml
diff --git a/java/tests/RsNbody/src/com/example/android/rs/nbody_gl/BasicGLRenderer.java b/tests/java_api/RsNbody/src/com/example/android/rs/nbody_gl/BasicGLRenderer.java
similarity index 100%
rename from java/tests/RsNbody/src/com/example/android/rs/nbody_gl/BasicGLRenderer.java
rename to tests/java_api/RsNbody/src/com/example/android/rs/nbody_gl/BasicGLRenderer.java
diff --git a/java/tests/RsNbody/src/com/example/android/rs/nbody_gl/BasicGLSurfaceView.java b/tests/java_api/RsNbody/src/com/example/android/rs/nbody_gl/BasicGLSurfaceView.java
similarity index 100%
rename from java/tests/RsNbody/src/com/example/android/rs/nbody_gl/BasicGLSurfaceView.java
rename to tests/java_api/RsNbody/src/com/example/android/rs/nbody_gl/BasicGLSurfaceView.java
diff --git a/java/tests/RsNbody/src/com/example/android/rs/nbody_gl/MainActivity.java b/tests/java_api/RsNbody/src/com/example/android/rs/nbody_gl/MainActivity.java
similarity index 100%
rename from java/tests/RsNbody/src/com/example/android/rs/nbody_gl/MainActivity.java
rename to tests/java_api/RsNbody/src/com/example/android/rs/nbody_gl/MainActivity.java
diff --git a/java/tests/RsNbody/src/com/example/android/rs/nbody_gl/Swarm.java b/tests/java_api/RsNbody/src/com/example/android/rs/nbody_gl/Swarm.java
similarity index 100%
rename from java/tests/RsNbody/src/com/example/android/rs/nbody_gl/Swarm.java
rename to tests/java_api/RsNbody/src/com/example/android/rs/nbody_gl/Swarm.java
diff --git a/java/tests/RsNbody/src/com/example/android/rs/nbody_gl/nbody.rs b/tests/java_api/RsNbody/src/com/example/android/rs/nbody_gl/nbody.rs
similarity index 100%
rename from java/tests/RsNbody/src/com/example/android/rs/nbody_gl/nbody.rs
rename to tests/java_api/RsNbody/src/com/example/android/rs/nbody_gl/nbody.rs
diff --git a/java/tests/RsTest/Android.mk b/tests/java_api/RsTest/Android.mk
similarity index 100%
rename from java/tests/RsTest/Android.mk
rename to tests/java_api/RsTest/Android.mk
diff --git a/java/tests/RsTest/AndroidManifest.xml b/tests/java_api/RsTest/AndroidManifest.xml
similarity index 100%
rename from java/tests/RsTest/AndroidManifest.xml
rename to tests/java_api/RsTest/AndroidManifest.xml
diff --git a/java/tests/RsTest/res/drawable-nodpi/test_pattern.png b/tests/java_api/RsTest/res/drawable-nodpi/test_pattern.png
similarity index 100%
rename from java/tests/RsTest/res/drawable-nodpi/test_pattern.png
rename to tests/java_api/RsTest/res/drawable-nodpi/test_pattern.png
Binary files differ
diff --git a/java/tests/RsTest/src/com/android/rs/test/RSContinuousTest.java b/tests/java_api/RsTest/src/com/android/rs/test/RSContinuousTest.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/RSContinuousTest.java
rename to tests/java_api/RsTest/src/com/android/rs/test/RSContinuousTest.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/RSContinuousTestActivity.java b/tests/java_api/RsTest/src/com/android/rs/test/RSContinuousTestActivity.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/RSContinuousTestActivity.java
rename to tests/java_api/RsTest/src/com/android/rs/test/RSContinuousTestActivity.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/RSTest.java b/tests/java_api/RsTest/src/com/android/rs/test/RSTest.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/RSTest.java
rename to tests/java_api/RsTest/src/com/android/rs/test/RSTest.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/RSTestCore.java b/tests/java_api/RsTest/src/com/android/rs/test/RSTestCore.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/RSTestCore.java
rename to tests/java_api/RsTest/src/com/android/rs/test/RSTestCore.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_alloc.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_alloc.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_alloc.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_alloc.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_array_alloc.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_array_alloc.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_array_alloc.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_array_alloc.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_array_init.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_array_init.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_array_init.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_array_init.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_atomic.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_atomic.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_atomic.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_atomic.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_bug_char.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_bug_char.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_bug_char.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_bug_char.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_check_dims.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_check_dims.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_check_dims.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_check_dims.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_clamp.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_clamp.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_clamp.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_clamp.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_clamp_relaxed.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_clamp_relaxed.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_clamp_relaxed.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_clamp_relaxed.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_constant.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_constant.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_constant.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_constant.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_convert.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_convert.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_convert.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_convert.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_convert_relaxed.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_convert_relaxed.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_convert_relaxed.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_convert_relaxed.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_copy_test.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_copy_test.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_copy_test.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_copy_test.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_ctxt_default.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_ctxt_default.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_ctxt_default.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_ctxt_default.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_element.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_element.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_element.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_element.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_foreach.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_foreach.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_foreach.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_foreach.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_foreach_bounds.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_foreach_bounds.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_foreach_bounds.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_foreach_bounds.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_foreach_multi.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_foreach_multi.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_foreach_multi.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_foreach_multi.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_fp16.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_fp16.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_fp16.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_fp16.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_fp16_globals.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_fp16_globals.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_fp16_globals.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_fp16_globals.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_fp_mad.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_fp_mad.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_fp_mad.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_fp_mad.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_int4.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_int4.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_int4.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_int4.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_kernel.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_kernel.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_kernel.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_kernel.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_kernel2d.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_kernel2d.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_kernel2d.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_kernel2d.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_kernel2d_oldstyle.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_kernel2d_oldstyle.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_kernel2d_oldstyle.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_kernel2d_oldstyle.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_kernel3d.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_kernel3d.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_kernel3d.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_kernel3d.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_kernel_struct.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_kernel_struct.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_kernel_struct.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_kernel_struct.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_math.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_math.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_math.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_math.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_math_agree.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_math_agree.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_math_agree.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_math_agree.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_math_conformance.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_math_conformance.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_math_conformance.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_math_conformance.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_math_fp16.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_math_fp16.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_math_fp16.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_math_fp16.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_min.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_min.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_min.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_min.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_noroot.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_noroot.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_noroot.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_noroot.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_primitives.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_primitives.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_primitives.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_primitives.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_reduce.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_reduce.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_reduce.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_reduce.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_reduce_backward.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_reduce_backward.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_reduce_backward.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_reduce_backward.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_refcount.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_refcount.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_refcount.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_refcount.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_rsdebug.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_rsdebug.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_rsdebug.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_rsdebug.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_rstime.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_rstime.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_rstime.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_rstime.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_rstypes.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_rstypes.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_rstypes.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_rstypes.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_sampler.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_sampler.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_sampler.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_sampler.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_script_group2_float.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_script_group2_float.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_script_group2_float.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_script_group2_float.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_script_group2_gatherscatter.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_script_group2_gatherscatter.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_script_group2_gatherscatter.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_script_group2_gatherscatter.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_script_group2_nochain.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_script_group2_nochain.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_script_group2_nochain.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_script_group2_nochain.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_script_group2_pointwise.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_script_group2_pointwise.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_script_group2_pointwise.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_script_group2_pointwise.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_single_source_alloc.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_single_source_alloc.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_single_source_alloc.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_single_source_alloc.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_single_source_ref_count.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_single_source_ref_count.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_single_source_ref_count.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_single_source_ref_count.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_single_source_script.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_single_source_script.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_single_source_script.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_single_source_script.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_small_struct.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_small_struct.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_small_struct.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_small_struct.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_static_globals.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_static_globals.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_static_globals.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_static_globals.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_struct.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_struct.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_struct.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_struct.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_struct_field.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_struct_field.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_struct_field.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_struct_field.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_unsigned.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_unsigned.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_unsigned.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_unsigned.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UT_vector.java b/tests/java_api/RsTest/src/com/android/rs/test/UT_vector.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UT_vector.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UT_vector.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/UnitTest.java b/tests/java_api/RsTest/src/com/android/rs/test/UnitTest.java
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/UnitTest.java
rename to tests/java_api/RsTest/src/com/android/rs/test/UnitTest.java
diff --git a/java/tests/RsTest/src/com/android/rs/test/addup.rs b/tests/java_api/RsTest/src/com/android/rs/test/addup.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/addup.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/addup.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/alloc.rs b/tests/java_api/RsTest/src/com/android/rs/test/alloc.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/alloc.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/alloc.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/array_alloc.rs b/tests/java_api/RsTest/src/com/android/rs/test/array_alloc.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/array_alloc.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/array_alloc.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/array_init.rs b/tests/java_api/RsTest/src/com/android/rs/test/array_init.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/array_init.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/array_init.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/atomic.rs b/tests/java_api/RsTest/src/com/android/rs/test/atomic.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/atomic.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/atomic.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/bug_char.rs b/tests/java_api/RsTest/src/com/android/rs/test/bug_char.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/bug_char.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/bug_char.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/check_dims.rs b/tests/java_api/RsTest/src/com/android/rs/test/check_dims.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/check_dims.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/check_dims.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/clamp.rs b/tests/java_api/RsTest/src/com/android/rs/test/clamp.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/clamp.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/clamp.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/clamp_relaxed.rs b/tests/java_api/RsTest/src/com/android/rs/test/clamp_relaxed.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/clamp_relaxed.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/clamp_relaxed.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/constant.rs b/tests/java_api/RsTest/src/com/android/rs/test/constant.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/constant.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/constant.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/convert.rs b/tests/java_api/RsTest/src/com/android/rs/test/convert.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/convert.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/convert.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/convert_relaxed.rs b/tests/java_api/RsTest/src/com/android/rs/test/convert_relaxed.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/convert_relaxed.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/convert_relaxed.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/copy_test.rs b/tests/java_api/RsTest/src/com/android/rs/test/copy_test.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/copy_test.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/copy_test.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/ctxt_default.rs b/tests/java_api/RsTest/src/com/android/rs/test/ctxt_default.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/ctxt_default.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/ctxt_default.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/double.rs b/tests/java_api/RsTest/src/com/android/rs/test/double.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/double.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/double.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/element.rs b/tests/java_api/RsTest/src/com/android/rs/test/element.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/element.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/element.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/float_test.rs b/tests/java_api/RsTest/src/com/android/rs/test/float_test.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/float_test.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/float_test.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/foreach.rs b/tests/java_api/RsTest/src/com/android/rs/test/foreach.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/foreach.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/foreach.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/foreach_bounds.rs b/tests/java_api/RsTest/src/com/android/rs/test/foreach_bounds.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/foreach_bounds.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/foreach_bounds.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/foreach_multi.rs b/tests/java_api/RsTest/src/com/android/rs/test/foreach_multi.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/foreach_multi.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/foreach_multi.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/fp16.rs b/tests/java_api/RsTest/src/com/android/rs/test/fp16.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/fp16.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/fp16.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/fp16_globals.rs b/tests/java_api/RsTest/src/com/android/rs/test/fp16_globals.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/fp16_globals.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/fp16_globals.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/fp_mad.rs b/tests/java_api/RsTest/src/com/android/rs/test/fp_mad.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/fp_mad.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/fp_mad.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/increment.rs b/tests/java_api/RsTest/src/com/android/rs/test/increment.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/increment.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/increment.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/increment2.rs b/tests/java_api/RsTest/src/com/android/rs/test/increment2.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/increment2.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/increment2.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/int4.rs b/tests/java_api/RsTest/src/com/android/rs/test/int4.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/int4.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/int4.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/kernel.rs b/tests/java_api/RsTest/src/com/android/rs/test/kernel.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/kernel.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/kernel.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/kernel2d.rs b/tests/java_api/RsTest/src/com/android/rs/test/kernel2d.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/kernel2d.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/kernel2d.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/kernel2d_oldstyle.rs b/tests/java_api/RsTest/src/com/android/rs/test/kernel2d_oldstyle.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/kernel2d_oldstyle.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/kernel2d_oldstyle.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/kernel3d.rs b/tests/java_api/RsTest/src/com/android/rs/test/kernel3d.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/kernel3d.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/kernel3d.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/kernel_struct.rs b/tests/java_api/RsTest/src/com/android/rs/test/kernel_struct.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/kernel_struct.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/kernel_struct.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/math.rs b/tests/java_api/RsTest/src/com/android/rs/test/math.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/math.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/math.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/math_agree.rs b/tests/java_api/RsTest/src/com/android/rs/test/math_agree.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/math_agree.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/math_agree.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/math_conformance.rs b/tests/java_api/RsTest/src/com/android/rs/test/math_conformance.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/math_conformance.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/math_conformance.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/math_fp16.rs b/tests/java_api/RsTest/src/com/android/rs/test/math_fp16.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/math_fp16.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/math_fp16.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/min.rs b/tests/java_api/RsTest/src/com/android/rs/test/min.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/min.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/min.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/noroot.rs b/tests/java_api/RsTest/src/com/android/rs/test/noroot.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/noroot.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/noroot.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/primitives.rs b/tests/java_api/RsTest/src/com/android/rs/test/primitives.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/primitives.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/primitives.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/reduce.rs b/tests/java_api/RsTest/src/com/android/rs/test/reduce.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/reduce.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/reduce.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/reduce_backward.rs b/tests/java_api/RsTest/src/com/android/rs/test/reduce_backward.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/reduce_backward.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/reduce_backward.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/refcount.rs b/tests/java_api/RsTest/src/com/android/rs/test/refcount.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/refcount.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/refcount.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/rsdebug.rs b/tests/java_api/RsTest/src/com/android/rs/test/rsdebug.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/rsdebug.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/rsdebug.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/rslist.rs b/tests/java_api/RsTest/src/com/android/rs/test/rslist.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/rslist.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/rslist.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/rstime.rs b/tests/java_api/RsTest/src/com/android/rs/test/rstime.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/rstime.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/rstime.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/rstypes.rs b/tests/java_api/RsTest/src/com/android/rs/test/rstypes.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/rstypes.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/rstypes.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/sampler.rs b/tests/java_api/RsTest/src/com/android/rs/test/sampler.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/sampler.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/sampler.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/shared.rsh b/tests/java_api/RsTest/src/com/android/rs/test/shared.rsh
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/shared.rsh
rename to tests/java_api/RsTest/src/com/android/rs/test/shared.rsh
diff --git a/java/tests/RsTest/src/com/android/rs/test/single_source_alloc.rs b/tests/java_api/RsTest/src/com/android/rs/test/single_source_alloc.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/single_source_alloc.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/single_source_alloc.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/single_source_ref_count.rs b/tests/java_api/RsTest/src/com/android/rs/test/single_source_ref_count.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/single_source_ref_count.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/single_source_ref_count.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/single_source_script.rs b/tests/java_api/RsTest/src/com/android/rs/test/single_source_script.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/single_source_script.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/single_source_script.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/small_struct.rs b/tests/java_api/RsTest/src/com/android/rs/test/small_struct.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/small_struct.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/small_struct.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/static_globals.rs b/tests/java_api/RsTest/src/com/android/rs/test/static_globals.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/static_globals.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/static_globals.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/struct.rs b/tests/java_api/RsTest/src/com/android/rs/test/struct.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/struct.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/struct.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/struct_field.rs b/tests/java_api/RsTest/src/com/android/rs/test/struct_field.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/struct_field.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/struct_field.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/unsigned.rs b/tests/java_api/RsTest/src/com/android/rs/test/unsigned.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/unsigned.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/unsigned.rs
diff --git a/java/tests/RsTest/src/com/android/rs/test/vector.rs b/tests/java_api/RsTest/src/com/android/rs/test/vector.rs
similarity index 100%
rename from java/tests/RsTest/src/com/android/rs/test/vector.rs
rename to tests/java_api/RsTest/src/com/android/rs/test/vector.rs
diff --git a/java/tests/RsTest_11/Android.mk b/tests/java_api/RsTest_11/Android.mk
similarity index 100%
rename from java/tests/RsTest_11/Android.mk
rename to tests/java_api/RsTest_11/Android.mk
diff --git a/java/tests/RsTest_11/AndroidManifest.xml b/tests/java_api/RsTest_11/AndroidManifest.xml
similarity index 100%
rename from java/tests/RsTest_11/AndroidManifest.xml
rename to tests/java_api/RsTest_11/AndroidManifest.xml
diff --git a/java/tests/RsTest_11/res/drawable/test_pattern.png b/tests/java_api/RsTest_11/res/drawable/test_pattern.png
similarity index 100%
rename from java/tests/RsTest_11/res/drawable/test_pattern.png
rename to tests/java_api/RsTest_11/res/drawable/test_pattern.png
Binary files differ
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/RSTestCore.java b/tests/java_api/RsTest_11/src/com/android/rs/test/RSTestCore.java
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/RSTestCore.java
rename to tests/java_api/RsTest_11/src/com/android/rs/test/RSTestCore.java
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/RSTestView.java b/tests/java_api/RsTest_11/src/com/android/rs/test/RSTestView.java
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/RSTestView.java
rename to tests/java_api/RsTest_11/src/com/android/rs/test/RSTestView.java
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/RSTest_v11.java b/tests/java_api/RsTest_11/src/com/android/rs/test/RSTest_v11.java
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/RSTest_v11.java
rename to tests/java_api/RsTest_11/src/com/android/rs/test/RSTest_v11.java
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/UT_fp_mad.java b/tests/java_api/RsTest_11/src/com/android/rs/test/UT_fp_mad.java
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/UT_fp_mad.java
rename to tests/java_api/RsTest_11/src/com/android/rs/test/UT_fp_mad.java
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/UT_math.java b/tests/java_api/RsTest_11/src/com/android/rs/test/UT_math.java
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/UT_math.java
rename to tests/java_api/RsTest_11/src/com/android/rs/test/UT_math.java
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/UT_primitives.java b/tests/java_api/RsTest_11/src/com/android/rs/test/UT_primitives.java
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/UT_primitives.java
rename to tests/java_api/RsTest_11/src/com/android/rs/test/UT_primitives.java
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/UT_rsdebug.java b/tests/java_api/RsTest_11/src/com/android/rs/test/UT_rsdebug.java
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/UT_rsdebug.java
rename to tests/java_api/RsTest_11/src/com/android/rs/test/UT_rsdebug.java
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/UT_rstime.java b/tests/java_api/RsTest_11/src/com/android/rs/test/UT_rstime.java
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/UT_rstime.java
rename to tests/java_api/RsTest_11/src/com/android/rs/test/UT_rstime.java
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/UT_rstypes.java b/tests/java_api/RsTest_11/src/com/android/rs/test/UT_rstypes.java
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/UT_rstypes.java
rename to tests/java_api/RsTest_11/src/com/android/rs/test/UT_rstypes.java
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/UnitTest.java b/tests/java_api/RsTest_11/src/com/android/rs/test/UnitTest.java
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/UnitTest.java
rename to tests/java_api/RsTest_11/src/com/android/rs/test/UnitTest.java
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/fp_mad.rs b/tests/java_api/RsTest_11/src/com/android/rs/test/fp_mad.rs
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/fp_mad.rs
rename to tests/java_api/RsTest_11/src/com/android/rs/test/fp_mad.rs
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/math.rs b/tests/java_api/RsTest_11/src/com/android/rs/test/math.rs
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/math.rs
rename to tests/java_api/RsTest_11/src/com/android/rs/test/math.rs
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/primitives.rs b/tests/java_api/RsTest_11/src/com/android/rs/test/primitives.rs
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/primitives.rs
rename to tests/java_api/RsTest_11/src/com/android/rs/test/primitives.rs
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/rsdebug.rs b/tests/java_api/RsTest_11/src/com/android/rs/test/rsdebug.rs
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/rsdebug.rs
rename to tests/java_api/RsTest_11/src/com/android/rs/test/rsdebug.rs
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/rslist.rs b/tests/java_api/RsTest_11/src/com/android/rs/test/rslist.rs
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/rslist.rs
rename to tests/java_api/RsTest_11/src/com/android/rs/test/rslist.rs
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/rstime.rs b/tests/java_api/RsTest_11/src/com/android/rs/test/rstime.rs
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/rstime.rs
rename to tests/java_api/RsTest_11/src/com/android/rs/test/rstime.rs
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/rstypes.rs b/tests/java_api/RsTest_11/src/com/android/rs/test/rstypes.rs
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/rstypes.rs
rename to tests/java_api/RsTest_11/src/com/android/rs/test/rstypes.rs
diff --git a/java/tests/RsTest_11/src/com/android/rs/test/shared.rsh b/tests/java_api/RsTest_11/src/com/android/rs/test/shared.rsh
similarity index 100%
rename from java/tests/RsTest_11/src/com/android/rs/test/shared.rsh
rename to tests/java_api/RsTest_11/src/com/android/rs/test/shared.rsh
diff --git a/java/tests/RsTest_14/Android.mk b/tests/java_api/RsTest_14/Android.mk
similarity index 100%
rename from java/tests/RsTest_14/Android.mk
rename to tests/java_api/RsTest_14/Android.mk
diff --git a/java/tests/RsTest_14/AndroidManifest.xml b/tests/java_api/RsTest_14/AndroidManifest.xml
similarity index 100%
rename from java/tests/RsTest_14/AndroidManifest.xml
rename to tests/java_api/RsTest_14/AndroidManifest.xml
diff --git a/java/tests/RsTest_14/res/drawable-nodpi/test_pattern.png b/tests/java_api/RsTest_14/res/drawable-nodpi/test_pattern.png
similarity index 100%
rename from java/tests/RsTest_14/res/drawable-nodpi/test_pattern.png
rename to tests/java_api/RsTest_14/res/drawable-nodpi/test_pattern.png
Binary files differ
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/RSTestCore.java b/tests/java_api/RsTest_14/src/com/android/rs/test/RSTestCore.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/RSTestCore.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/RSTestCore.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/RSTestView.java b/tests/java_api/RsTest_14/src/com/android/rs/test/RSTestView.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/RSTestView.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/RSTestView.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/RSTest_v14.java b/tests/java_api/RsTest_14/src/com/android/rs/test/RSTest_v14.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/RSTest_v14.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/RSTest_v14.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UT_alloc.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UT_alloc.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UT_alloc.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UT_alloc.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UT_foreach.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UT_foreach.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UT_foreach.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UT_foreach.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UT_fp_mad.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UT_fp_mad.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UT_fp_mad.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UT_fp_mad.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UT_math.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UT_math.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UT_math.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UT_math.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UT_primitives.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UT_primitives.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UT_primitives.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UT_primitives.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UT_refcount.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UT_refcount.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UT_refcount.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UT_refcount.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UT_rsdebug.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UT_rsdebug.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UT_rsdebug.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UT_rsdebug.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UT_rstime.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UT_rstime.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UT_rstime.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UT_rstime.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UT_rstypes.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UT_rstypes.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UT_rstypes.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UT_rstypes.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UT_vector.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UT_vector.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UT_vector.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UT_vector.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/UnitTest.java b/tests/java_api/RsTest_14/src/com/android/rs/test/UnitTest.java
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/UnitTest.java
rename to tests/java_api/RsTest_14/src/com/android/rs/test/UnitTest.java
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/alloc.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/alloc.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/alloc.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/alloc.rs
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/foreach.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/foreach.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/foreach.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/foreach.rs
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/fp_mad.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/fp_mad.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/fp_mad.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/fp_mad.rs
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/math.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/math.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/math.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/math.rs
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/math.rs.bak b/tests/java_api/RsTest_14/src/com/android/rs/test/math.rs.bak
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/math.rs.bak
rename to tests/java_api/RsTest_14/src/com/android/rs/test/math.rs.bak
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/math.rs.orig b/tests/java_api/RsTest_14/src/com/android/rs/test/math.rs.orig
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/math.rs.orig
rename to tests/java_api/RsTest_14/src/com/android/rs/test/math.rs.orig
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/primitives.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/primitives.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/primitives.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/primitives.rs
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/refcount.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/refcount.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/refcount.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/refcount.rs
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/rsdebug.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/rsdebug.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/rsdebug.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/rsdebug.rs
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/rslist.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/rslist.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/rslist.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/rslist.rs
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/rstime.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/rstime.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/rstime.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/rstime.rs
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/rstypes.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/rstypes.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/rstypes.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/rstypes.rs
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/shared.rsh b/tests/java_api/RsTest_14/src/com/android/rs/test/shared.rsh
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/shared.rsh
rename to tests/java_api/RsTest_14/src/com/android/rs/test/shared.rsh
diff --git a/java/tests/RsTest_14/src/com/android/rs/test/vector.rs b/tests/java_api/RsTest_14/src/com/android/rs/test/vector.rs
similarity index 100%
rename from java/tests/RsTest_14/src/com/android/rs/test/vector.rs
rename to tests/java_api/RsTest_14/src/com/android/rs/test/vector.rs
diff --git a/java/tests/RsTest_16/Android.mk b/tests/java_api/RsTest_16/Android.mk
similarity index 100%
rename from java/tests/RsTest_16/Android.mk
rename to tests/java_api/RsTest_16/Android.mk
diff --git a/java/tests/RsTest_16/AndroidManifest.xml b/tests/java_api/RsTest_16/AndroidManifest.xml
similarity index 100%
rename from java/tests/RsTest_16/AndroidManifest.xml
rename to tests/java_api/RsTest_16/AndroidManifest.xml
diff --git a/java/tests/RsTest_16/res/drawable-nodpi/test_pattern.png b/tests/java_api/RsTest_16/res/drawable-nodpi/test_pattern.png
similarity index 100%
rename from java/tests/RsTest_16/res/drawable-nodpi/test_pattern.png
rename to tests/java_api/RsTest_16/res/drawable-nodpi/test_pattern.png
Binary files differ
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/RSTestCore.java b/tests/java_api/RsTest_16/src/com/android/rs/test/RSTestCore.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/RSTestCore.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/RSTestCore.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/RSTestView.java b/tests/java_api/RsTest_16/src/com/android/rs/test/RSTestView.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/RSTestView.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/RSTestView.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/RSTest_v16.java b/tests/java_api/RsTest_16/src/com/android/rs/test/RSTest_v16.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/RSTest_v16.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/RSTest_v16.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UT_alloc.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UT_alloc.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UT_alloc.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UT_alloc.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UT_foreach.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UT_foreach.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UT_foreach.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UT_foreach.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UT_fp_mad.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UT_fp_mad.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UT_fp_mad.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UT_fp_mad.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UT_math.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UT_math.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UT_math.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UT_math.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UT_primitives.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UT_primitives.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UT_primitives.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UT_primitives.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UT_refcount.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UT_refcount.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UT_refcount.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UT_refcount.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UT_rsdebug.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UT_rsdebug.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UT_rsdebug.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UT_rsdebug.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UT_rstime.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UT_rstime.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UT_rstime.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UT_rstime.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UT_rstypes.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UT_rstypes.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UT_rstypes.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UT_rstypes.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UT_vector.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UT_vector.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UT_vector.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UT_vector.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/UnitTest.java b/tests/java_api/RsTest_16/src/com/android/rs/test/UnitTest.java
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/UnitTest.java
rename to tests/java_api/RsTest_16/src/com/android/rs/test/UnitTest.java
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/alloc.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/alloc.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/alloc.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/alloc.rs
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/foreach.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/foreach.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/foreach.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/foreach.rs
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/fp_mad.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/fp_mad.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/fp_mad.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/fp_mad.rs
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/math.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/math.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/math.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/math.rs
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/primitives.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/primitives.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/primitives.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/primitives.rs
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/refcount.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/refcount.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/refcount.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/refcount.rs
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/rsdebug.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/rsdebug.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/rsdebug.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/rsdebug.rs
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/rslist.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/rslist.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/rslist.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/rslist.rs
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/rstime.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/rstime.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/rstime.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/rstime.rs
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/rstypes.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/rstypes.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/rstypes.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/rstypes.rs
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/shared.rsh b/tests/java_api/RsTest_16/src/com/android/rs/test/shared.rsh
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/shared.rsh
rename to tests/java_api/RsTest_16/src/com/android/rs/test/shared.rsh
diff --git a/java/tests/RsTest_16/src/com/android/rs/test/vector.rs b/tests/java_api/RsTest_16/src/com/android/rs/test/vector.rs
similarity index 100%
rename from java/tests/RsTest_16/src/com/android/rs/test/vector.rs
rename to tests/java_api/RsTest_16/src/com/android/rs/test/vector.rs
diff --git a/java/tests/SSHealingBrush/Android.mk b/tests/java_api/SSHealingBrush/Android.mk
similarity index 100%
rename from java/tests/SSHealingBrush/Android.mk
rename to tests/java_api/SSHealingBrush/Android.mk
diff --git a/java/tests/SSHealingBrush/AndroidManifest.xml b/tests/java_api/SSHealingBrush/AndroidManifest.xml
similarity index 100%
rename from java/tests/SSHealingBrush/AndroidManifest.xml
rename to tests/java_api/SSHealingBrush/AndroidManifest.xml
diff --git a/java/tests/SSHealingBrush/cnb b/tests/java_api/SSHealingBrush/cnb
similarity index 100%
rename from java/tests/SSHealingBrush/cnb
rename to tests/java_api/SSHealingBrush/cnb
diff --git a/java/tests/SSHealingBrush/res/drawable-nodpi/bugs.jpg b/tests/java_api/SSHealingBrush/res/drawable-nodpi/bugs.jpg
similarity index 100%
rename from java/tests/SSHealingBrush/res/drawable-nodpi/bugs.jpg
rename to tests/java_api/SSHealingBrush/res/drawable-nodpi/bugs.jpg
Binary files differ
diff --git a/java/tests/SSHealingBrush/res/drawable/ic_launcher.png b/tests/java_api/SSHealingBrush/res/drawable/ic_launcher.png
similarity index 100%
rename from java/tests/SSHealingBrush/res/drawable/ic_launcher.png
rename to tests/java_api/SSHealingBrush/res/drawable/ic_launcher.png
Binary files differ
diff --git a/java/tests/SSHealingBrush/res/layout/activity_main.xml b/tests/java_api/SSHealingBrush/res/layout/activity_main.xml
similarity index 100%
rename from java/tests/SSHealingBrush/res/layout/activity_main.xml
rename to tests/java_api/SSHealingBrush/res/layout/activity_main.xml
diff --git a/java/tests/SSHealingBrush/res/values-w820dp/dimens.xml b/tests/java_api/SSHealingBrush/res/values-w820dp/dimens.xml
similarity index 100%
rename from java/tests/SSHealingBrush/res/values-w820dp/dimens.xml
rename to tests/java_api/SSHealingBrush/res/values-w820dp/dimens.xml
diff --git a/java/tests/SSHealingBrush/res/values/dimens.xml b/tests/java_api/SSHealingBrush/res/values/dimens.xml
similarity index 100%
rename from java/tests/SSHealingBrush/res/values/dimens.xml
rename to tests/java_api/SSHealingBrush/res/values/dimens.xml
diff --git a/java/tests/SSHealingBrush/res/values/strings.xml b/tests/java_api/SSHealingBrush/res/values/strings.xml
similarity index 100%
rename from java/tests/SSHealingBrush/res/values/strings.xml
rename to tests/java_api/SSHealingBrush/res/values/strings.xml
diff --git a/java/tests/SSHealingBrush/res/values/styles.xml b/tests/java_api/SSHealingBrush/res/values/styles.xml
similarity index 100%
rename from java/tests/SSHealingBrush/res/values/styles.xml
rename to tests/java_api/SSHealingBrush/res/values/styles.xml
diff --git a/java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/DrawView.java b/tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/DrawView.java
similarity index 100%
rename from java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/DrawView.java
rename to tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/DrawView.java
diff --git a/java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/FindRegion.java b/tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/FindRegion.java
similarity index 100%
rename from java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/FindRegion.java
rename to tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/FindRegion.java
diff --git a/java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/Healing.java b/tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/Healing.java
similarity index 100%
rename from java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/Healing.java
rename to tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/Healing.java
diff --git a/java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/MainActivity.java b/tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/MainActivity.java
similarity index 100%
rename from java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/MainActivity.java
rename to tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/MainActivity.java
diff --git a/java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/MediaStoreSaver.java b/tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/MediaStoreSaver.java
similarity index 100%
rename from java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/MediaStoreSaver.java
rename to tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/MediaStoreSaver.java
diff --git a/java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/Region.java b/tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/Region.java
similarity index 100%
rename from java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/Region.java
rename to tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/Region.java
diff --git a/java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/find_region.rs b/tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/find_region.rs
similarity index 100%
rename from java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/find_region.rs
rename to tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/find_region.rs
diff --git a/java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/healing.rs b/tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/healing.rs
similarity index 100%
rename from java/tests/SSHealingBrush/src/rs/example/android/com/healingbrush/healing.rs
rename to tests/java_api/SSHealingBrush/src/rs/example/android/com/healingbrush/healing.rs
diff --git a/java/tests/SampleTest/Android.mk b/tests/java_api/SampleTest/Android.mk
similarity index 100%
rename from java/tests/SampleTest/Android.mk
rename to tests/java_api/SampleTest/Android.mk
diff --git a/java/tests/SampleTest/AndroidManifest.xml b/tests/java_api/SampleTest/AndroidManifest.xml
similarity index 100%
rename from java/tests/SampleTest/AndroidManifest.xml
rename to tests/java_api/SampleTest/AndroidManifest.xml
diff --git a/java/tests/SampleTest/res/drawable-nodpi/city.png b/tests/java_api/SampleTest/res/drawable-nodpi/city.png
similarity index 100%
rename from java/tests/SampleTest/res/drawable-nodpi/city.png
rename to tests/java_api/SampleTest/res/drawable-nodpi/city.png
Binary files differ
diff --git a/java/tests/SampleTest/res/drawable-nodpi/twobytwo.png b/tests/java_api/SampleTest/res/drawable-nodpi/twobytwo.png
similarity index 100%
rename from java/tests/SampleTest/res/drawable-nodpi/twobytwo.png
rename to tests/java_api/SampleTest/res/drawable-nodpi/twobytwo.png
Binary files differ
diff --git a/java/tests/SampleTest/res/layout/rs.xml b/tests/java_api/SampleTest/res/layout/rs.xml
similarity index 100%
rename from java/tests/SampleTest/res/layout/rs.xml
rename to tests/java_api/SampleTest/res/layout/rs.xml
diff --git a/java/tests/SampleTest/res/values/strings.xml b/tests/java_api/SampleTest/res/values/strings.xml
similarity index 100%
rename from java/tests/SampleTest/res/values/strings.xml
rename to tests/java_api/SampleTest/res/values/strings.xml
diff --git a/java/tests/SampleTest/src/com/android/rs/sample/SampleRSActivity.java b/tests/java_api/SampleTest/src/com/android/rs/sample/SampleRSActivity.java
similarity index 100%
rename from java/tests/SampleTest/src/com/android/rs/sample/SampleRSActivity.java
rename to tests/java_api/SampleTest/src/com/android/rs/sample/SampleRSActivity.java
diff --git a/java/tests/SampleTest/src/com/android/rs/sample/sample.rs b/tests/java_api/SampleTest/src/com/android/rs/sample/sample.rs
similarity index 100%
rename from java/tests/SampleTest/src/com/android/rs/sample/sample.rs
rename to tests/java_api/SampleTest/src/com/android/rs/sample/sample.rs
diff --git a/java/tests/ScriptGroupTest/Android.mk b/tests/java_api/ScriptGroupTest/Android.mk
similarity index 100%
rename from java/tests/ScriptGroupTest/Android.mk
rename to tests/java_api/ScriptGroupTest/Android.mk
diff --git a/java/tests/ScriptGroupTest/AndroidManifest.xml b/tests/java_api/ScriptGroupTest/AndroidManifest.xml
similarity index 100%
rename from java/tests/ScriptGroupTest/AndroidManifest.xml
rename to tests/java_api/ScriptGroupTest/AndroidManifest.xml
diff --git a/java/tests/ScriptGroupTest/res/drawable-nodpi/img1600x1067.jpg b/tests/java_api/ScriptGroupTest/res/drawable-nodpi/img1600x1067.jpg
similarity index 100%
rename from java/tests/ScriptGroupTest/res/drawable-nodpi/img1600x1067.jpg
rename to tests/java_api/ScriptGroupTest/res/drawable-nodpi/img1600x1067.jpg
Binary files differ
diff --git a/java/tests/ScriptGroupTest/res/drawable-nodpi/img1600x1067b.jpg b/tests/java_api/ScriptGroupTest/res/drawable-nodpi/img1600x1067b.jpg
similarity index 100%
rename from java/tests/ScriptGroupTest/res/drawable-nodpi/img1600x1067b.jpg
rename to tests/java_api/ScriptGroupTest/res/drawable-nodpi/img1600x1067b.jpg
Binary files differ
diff --git a/java/tests/ScriptGroupTest/res/layout/main.xml b/tests/java_api/ScriptGroupTest/res/layout/main.xml
similarity index 100%
rename from java/tests/ScriptGroupTest/res/layout/main.xml
rename to tests/java_api/ScriptGroupTest/res/layout/main.xml
diff --git a/java/tests/ScriptGroupTest/res/layout/spinner_layout.xml b/tests/java_api/ScriptGroupTest/res/layout/spinner_layout.xml
similarity index 100%
rename from java/tests/ScriptGroupTest/res/layout/spinner_layout.xml
rename to tests/java_api/ScriptGroupTest/res/layout/spinner_layout.xml
diff --git a/java/tests/ScriptGroupTest/res/values/strings.xml b/tests/java_api/ScriptGroupTest/res/values/strings.xml
similarity index 100%
rename from java/tests/ScriptGroupTest/res/values/strings.xml
rename to tests/java_api/ScriptGroupTest/res/values/strings.xml
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/Filters.java b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/Filters.java
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/Filters.java
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/Filters.java
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/ScriptGroupTestActivity.java b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/ScriptGroupTestActivity.java
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/ScriptGroupTestActivity.java
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/ScriptGroupTestActivity.java
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/TestBase.java b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/TestBase.java
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/TestBase.java
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/TestBase.java
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/colormatrix_f.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/colormatrix_f.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/colormatrix_f.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/colormatrix_f.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/contrast_f.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/contrast_f.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/contrast_f.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/contrast_f.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/exposure_f.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/exposure_f.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/exposure_f.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/exposure_f.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/f4touc4.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/f4touc4.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/f4touc4.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/f4touc4.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/fisheye_approx_f.rsh b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/fisheye_approx_f.rsh
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/fisheye_approx_f.rsh
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/fisheye_approx_f.rsh
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/fisheye_approx_relaxed_f.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/fisheye_approx_relaxed_f.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/fisheye_approx_relaxed_f.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/fisheye_approx_relaxed_f.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/greyscale_f.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/greyscale_f.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/greyscale_f.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/greyscale_f.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/ip.rsh b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/ip.rsh
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/ip.rsh
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/ip.rsh
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/levels_f.rsh b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/levels_f.rsh
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/levels_f.rsh
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/levels_f.rsh
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/levels_relaxed_f.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/levels_relaxed_f.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/levels_relaxed_f.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/levels_relaxed_f.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/shadows_f.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/shadows_f.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/shadows_f.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/shadows_f.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/uc4tof4.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/uc4tof4.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/uc4tof4.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/uc4tof4.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/vibrance_f.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/vibrance_f.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/vibrance_f.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/vibrance_f.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/vignette_approx_f.rsh b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/vignette_approx_f.rsh
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/vignette_approx_f.rsh
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/vignette_approx_f.rsh
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/vignette_approx_relaxed_f.rs b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/vignette_approx_relaxed_f.rs
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/vignette_approx_relaxed_f.rs
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/vignette_approx_relaxed_f.rs
diff --git a/java/tests/ScriptGroupTest/src/com/android/rs/sgtest/vignette_f.rsh b/tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/vignette_f.rsh
similarity index 100%
rename from java/tests/ScriptGroupTest/src/com/android/rs/sgtest/vignette_f.rsh
rename to tests/java_api/ScriptGroupTest/src/com/android/rs/sgtest/vignette_f.rsh
diff --git a/java/tests/VrDemo/Android.mk b/tests/java_api/VrDemo/Android.mk
similarity index 100%
rename from java/tests/VrDemo/Android.mk
rename to tests/java_api/VrDemo/Android.mk
diff --git a/java/tests/VrDemo/AndroidManifest.xml b/tests/java_api/VrDemo/AndroidManifest.xml
similarity index 100%
rename from java/tests/VrDemo/AndroidManifest.xml
rename to tests/java_api/VrDemo/AndroidManifest.xml
diff --git a/java/tests/VrDemo/_index.html b/tests/java_api/VrDemo/_index.html
similarity index 100%
rename from java/tests/VrDemo/_index.html
rename to tests/java_api/VrDemo/_index.html
diff --git a/java/tests/VrDemo/res/drawable-hdpi/ic_launcher.png b/tests/java_api/VrDemo/res/drawable-hdpi/ic_launcher.png
similarity index 100%
rename from java/tests/VrDemo/res/drawable-hdpi/ic_launcher.png
rename to tests/java_api/VrDemo/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/VrDemo/res/drawable-mdpi/ic_launcher.png b/tests/java_api/VrDemo/res/drawable-mdpi/ic_launcher.png
similarity index 100%
rename from java/tests/VrDemo/res/drawable-mdpi/ic_launcher.png
rename to tests/java_api/VrDemo/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/VrDemo/res/drawable-xhdpi/ic_launcher.png b/tests/java_api/VrDemo/res/drawable-xhdpi/ic_launcher.png
similarity index 100%
rename from java/tests/VrDemo/res/drawable-xhdpi/ic_launcher.png
rename to tests/java_api/VrDemo/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/VrDemo/res/drawable-xxhdpi/ic_launcher.png b/tests/java_api/VrDemo/res/drawable-xxhdpi/ic_launcher.png
similarity index 100%
rename from java/tests/VrDemo/res/drawable-xxhdpi/ic_launcher.png
rename to tests/java_api/VrDemo/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/java/tests/VrDemo/res/layout-land/activity_vr.xml b/tests/java_api/VrDemo/res/layout-land/activity_vr.xml
similarity index 100%
rename from java/tests/VrDemo/res/layout-land/activity_vr.xml
rename to tests/java_api/VrDemo/res/layout-land/activity_vr.xml
diff --git a/java/tests/VrDemo/res/layout/activity_vr.xml b/tests/java_api/VrDemo/res/layout/activity_vr.xml
similarity index 100%
rename from java/tests/VrDemo/res/layout/activity_vr.xml
rename to tests/java_api/VrDemo/res/layout/activity_vr.xml
diff --git a/java/tests/VrDemo/res/values-v21/styles.xml b/tests/java_api/VrDemo/res/values-v21/styles.xml
similarity index 100%
rename from java/tests/VrDemo/res/values-v21/styles.xml
rename to tests/java_api/VrDemo/res/values-v21/styles.xml
diff --git a/java/tests/VrDemo/res/values-w820dp/dimens.xml b/tests/java_api/VrDemo/res/values-w820dp/dimens.xml
similarity index 100%
rename from java/tests/VrDemo/res/values-w820dp/dimens.xml
rename to tests/java_api/VrDemo/res/values-w820dp/dimens.xml
diff --git a/java/tests/VrDemo/res/values/dimens.xml b/tests/java_api/VrDemo/res/values/dimens.xml
similarity index 100%
rename from java/tests/VrDemo/res/values/dimens.xml
rename to tests/java_api/VrDemo/res/values/dimens.xml
diff --git a/java/tests/VrDemo/res/values/strings.xml b/tests/java_api/VrDemo/res/values/strings.xml
similarity index 100%
rename from java/tests/VrDemo/res/values/strings.xml
rename to tests/java_api/VrDemo/res/values/strings.xml
diff --git a/java/tests/VrDemo/res/values/styles.xml b/tests/java_api/VrDemo/res/values/styles.xml
similarity index 100%
rename from java/tests/VrDemo/res/values/styles.xml
rename to tests/java_api/VrDemo/res/values/styles.xml
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/VrActivity.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/VrActivity.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/VrActivity.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/VrView.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/VrView.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/VrView.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/VrView.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/BasicPipeline.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/BasicPipeline.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/BasicPipeline.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/BasicPipeline.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/Cube.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Cube.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/Cube.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Cube.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/Material.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Material.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/Material.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Material.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/Matrix.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Matrix.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/Matrix.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Matrix.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/Pipeline.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Pipeline.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/Pipeline.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Pipeline.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/Quaternion.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Quaternion.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/Quaternion.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Quaternion.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/RsBrickedBitMask.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/RsBrickedBitMask.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/RsBrickedBitMask.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/RsBrickedBitMask.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/Transform.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Transform.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/Transform.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Transform.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/TriData.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/TriData.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/TriData.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/TriData.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/VectorUtil.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/VectorUtil.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/VectorUtil.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/VectorUtil.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/ViewMatrix.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/ViewMatrix.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/ViewMatrix.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/ViewMatrix.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/Volume.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Volume.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/Volume.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/Volume.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/VrPipline1.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/VrPipline1.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/VrPipline1.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/VrPipline1.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/VrState.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/VrState.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/VrState.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/VrState.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/bricked.rs b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/bricked.rs
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/bricked.rs
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/bricked.rs
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/bugdroid.rs b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/bugdroid.rs
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/bugdroid.rs
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/bugdroid.rs
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/mandelbulb.rs b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/mandelbulb.rs
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/mandelbulb.rs
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/mandelbulb.rs
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/rasterize.rs b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/rasterize.rs
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/rasterize.rs
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/rasterize.rs
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs b/tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/vr.rs
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/engine/vr.rs
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/engine/vr.rs
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Droid.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/loaders/Droid.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Droid.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/loaders/Droid.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/LoaderDicom.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/loaders/LoaderDicom.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/loaders/LoaderDicom.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/loaders/LoaderDicom.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/LoaderRaw.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/loaders/LoaderRaw.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/loaders/LoaderRaw.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/loaders/LoaderRaw.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/loaders/Mandelbulb.java
diff --git a/java/tests/VrDemo/src/com/example/android/rs/vr/loaders/VolumeLoader.java b/tests/java_api/VrDemo/src/com/example/android/rs/vr/loaders/VolumeLoader.java
similarity index 100%
rename from java/tests/VrDemo/src/com/example/android/rs/vr/loaders/VolumeLoader.java
rename to tests/java_api/VrDemo/src/com/example/android/rs/vr/loaders/VolumeLoader.java
diff --git a/update_rs_prebuilts.sh b/update_rs_prebuilts.sh
index 3cef67f..d951d04 100755
--- a/update_rs_prebuilts.sh
+++ b/update_rs_prebuilts.sh
@@ -80,7 +80,7 @@
echo Building for target $1
lunch $1
# Build a sample support application to ensure that all the pieces are up to date.
- cd $MY_ANDROID_DIR/frameworks/rs/java/tests/RSTest_CompatLib/ && mma -j$NUM_CORES FORCE_BUILD_RS_COMPAT=true && cd - || exit 6
+ cd $MY_ANDROID_DIR/frameworks/rs/tests/java_api/RSTest_CompatLib/ && mma -j$NUM_CORES FORCE_BUILD_RS_COMPAT=true && cd - || exit 6
}
build_rs_host_tools() {