1648a1c137663ef7207684d0d7009dd5518942111Stephen Hines/* 2648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * Copyright (C) 2015 The Android Open Source Project 3648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * 4648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * Licensed under the Apache License, Version 2.0 (the "License"); 5648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * you may not use this file except in compliance with the License. 6648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * You may obtain a copy of the License at 7648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * 8648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * http://www.apache.org/licenses/LICENSE-2.0 9648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * 10648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * Unless required by applicable law or agreed to in writing, software 11648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * distributed under the License is distributed on an "AS IS" BASIS, 12648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * See the License for the specific language governing permissions and 14648a1c137663ef7207684d0d7009dd5518942111Stephen Hines * limitations under the License. 15648a1c137663ef7207684d0d7009dd5518942111Stephen Hines */ 16648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 17648a1c137663ef7207684d0d7009dd5518942111Stephen Hinespackage com.android.rs.test_compatlegacy; 18648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 19648a1c137663ef7207684d0d7009dd5518942111Stephen Hinesimport android.content.Context; 20648a1c137663ef7207684d0d7009dd5518942111Stephen Hinesimport android.content.res.Resources; 21648a1c137663ef7207684d0d7009dd5518942111Stephen Hinesimport android.support.v8.renderscript.*; 22648a1c137663ef7207684d0d7009dd5518942111Stephen Hinesimport java.util.Random; 23648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 24648a1c137663ef7207684d0d7009dd5518942111Stephen Hinespublic class UT_alloc_copyPadded extends UnitTest { 25648a1c137663ef7207684d0d7009dd5518942111Stephen Hines private Resources mRes; 26648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 27648a1c137663ef7207684d0d7009dd5518942111Stephen Hines protected UT_alloc_copyPadded(RSTestCore rstc, Resources res, Context ctx) { 28648a1c137663ef7207684d0d7009dd5518942111Stephen Hines super(rstc, "Allocation CopyTo Padded", ctx); 29648a1c137663ef7207684d0d7009dd5518942111Stephen Hines mRes = res; 30648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 31648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 32648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void run() { 33648a1c137663ef7207684d0d7009dd5518942111Stephen Hines RenderScript mRS = RenderScript.create(mCtx); 34648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 35648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Byte3_1D(mRS); 36648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Byte3_2D(mRS); 37648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Byte3_3D(mRS); 38648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 39648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Short3_1D(mRS); 40648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Short3_2D(mRS); 41648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Short3_3D(mRS); 42648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 43648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Int3_1D(mRS); 44648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Int3_2D(mRS); 45648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Int3_3D(mRS); 46648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 47648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Float3_1D(mRS); 48648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Float3_2D(mRS); 49648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Float3_3D(mRS); 50648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 51648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Double3_1D(mRS); 52648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Double3_2D(mRS); 53648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Double3_3D(mRS); 54648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 55648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Long3_1D(mRS); 56648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Long3_2D(mRS); 57648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_Long3_3D(mRS); 58648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 59648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 60648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy1DRangeTo_Byte3(mRS); 61648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy1DRangeTo_Short3(mRS); 62648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy1DRangeTo_Int3(mRS); 63648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy1DRangeTo_Float3(mRS); 64648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy1DRangeTo_Long3(mRS); 65648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 66648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy2DRangeTo_Byte3(mRS); 67648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy2DRangeTo_Short3(mRS); 68648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy2DRangeTo_Int3(mRS); 69648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy2DRangeTo_Float3(mRS); 70648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy2DRangeTo_Long3(mRS); 71648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 72648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy1DRangeToUnchecked_Byte3(mRS); 73648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy1DRangeToUnchecked_Short3(mRS); 74648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy1DRangeToUnchecked_Int3(mRS); 75648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy1DRangeToUnchecked_Float3(mRS); 76648a1c137663ef7207684d0d7009dd5518942111Stephen Hines testAllocation_copy1DRangeToUnchecked_Long3(mRS); 77648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 78648a1c137663ef7207684d0d7009dd5518942111Stephen Hines mRS.destroy(); 79648a1c137663ef7207684d0d7009dd5518942111Stephen Hines passTest(); 80648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 81648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 82648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Byte3_1D(RenderScript mRS) { 83648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 84648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 85648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 86648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 87648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] inArray = new byte[arr_len]; 88648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] outArray = new byte[arr_len]; 89648a1c137663ef7207684d0d7009dd5518942111Stephen Hines random.nextBytes(inArray); 90648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 91648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8_3(mRS)); 92648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 93648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 94648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 95648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 96648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 97648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 98648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 99648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 100648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 101648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 102648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 103648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 104648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 105648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 106648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 107648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Byte1D TEST PASSED"); 108648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 109648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 110648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 111648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 112648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 113648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Byte3_2D(RenderScript mRS) { 114648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 115648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 116648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 117648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * height * 3; 118648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 119648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] inArray = new byte[arr_len]; 120648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] outArray = new byte[arr_len]; 121648a1c137663ef7207684d0d7009dd5518942111Stephen Hines random.nextBytes(inArray); 122648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 123648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8_3(mRS)); 124648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 125648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 126648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 127648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 128648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 129648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 130648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 131648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 132648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 133648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 134648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 135648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 136648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 137648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 138648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 139648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Byte2D TEST PASSED"); 140648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 141648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 142648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 143648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 144648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 145648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Byte3_3D(RenderScript mRS) { 146648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 147648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int w = random.nextInt(32); 148648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int h = random.nextInt(32); 149648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int d = random.nextInt(32); 150648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = w * d * h * 3; 151648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 152648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] inArray = new byte[arr_len]; 153648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] outArray = new byte[arr_len]; 154648a1c137663ef7207684d0d7009dd5518942111Stephen Hines random.nextBytes(inArray); 155648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 156648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8_3(mRS)); 157648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(w).setY(h).setZ(d); 158648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 159648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 160648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 161648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 162648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 163648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 164648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 165648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 166648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 167648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 168648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 169648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 170648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 171648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 172648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Byte3D TEST PASSED"); 173648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 174648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 175648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 176648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 177648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 178648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Short3_1D(RenderScript mRS) { 179648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 180648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 181648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 182648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 183648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] inArray = new short[arr_len]; 184648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] outArray = new short[arr_len]; 185648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 186648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 187648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = (short)random.nextInt(); 188648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 189648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 190648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16_3(mRS)); 191648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 192648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 193648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 194648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 195648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 196648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 197648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 198648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 199648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 200648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 201648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 202648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 203648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 204648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 205648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 206648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Short1D TEST PASSED"); 207648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 208648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 209648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 210648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 211648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 212648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Short3_2D(RenderScript mRS) { 213648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 214648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 215648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 216648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * height * 3; 217648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 218648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] inArray = new short[arr_len]; 219648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] outArray = new short[arr_len]; 220648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 221648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 222648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = (short)random.nextInt(); 223648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 224648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 225648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16_3(mRS)); 226648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 227648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 228648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 229648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 230648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 231648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 232648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 233648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 234648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 235648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 236648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 237648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 238648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 239648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 240648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 241648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Short2D TEST PASSED"); 242648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 243648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 244648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 245648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 246648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 247648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Short3_3D(RenderScript mRS) { 248648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 249648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int w = random.nextInt(32); 250648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int h = random.nextInt(32); 251648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int d = random.nextInt(32); 252648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = w * d * h * 3; 253648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 254648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] inArray = new short[arr_len]; 255648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] outArray = new short[arr_len]; 256648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 257648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 258648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = (short)random.nextInt(); 259648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 260648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 261648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16_3(mRS)); 262648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(w).setY(h).setZ(d); 263648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 264648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 265648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 266648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 267648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 268648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 269648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 270648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 271648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 272648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 273648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 274648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 275648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 276648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 277648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Short3D TEST PASSED"); 278648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 279648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 280648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 281648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 282648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 283648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Int3_1D(RenderScript mRS) { 284648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 285648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 286648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 287648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 288648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] inArray = new int[arr_len]; 289648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] outArray = new int[arr_len]; 290648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 291648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 292648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextInt(); 293648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 294648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 295648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32_3(mRS)); 296648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 297648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 298648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 299648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 300648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 301648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 302648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 303648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 304648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 305648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 306648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 307648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 308648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 309648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 310648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 311648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Int1D TEST PASSED"); 312648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 313648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 314648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 315648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 316648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 317648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Int3_2D(RenderScript mRS) { 318648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 319648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 320648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 321648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * height * 3; 322648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 323648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] inArray = new int[arr_len]; 324648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] outArray = new int[arr_len]; 325648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 326648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 327648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextInt(); 328648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 329648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 330648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32_3(mRS)); 331648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 332648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 333648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 334648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 335648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 336648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 337648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 338648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 339648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 340648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 341648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 342648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 343648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 344648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 345648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 346648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Int2D TEST PASSED"); 347648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 348648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 349648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 350648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 351648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 352648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Int3_3D(RenderScript mRS) { 353648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 354648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int w = random.nextInt(32); 355648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int h = random.nextInt(32); 356648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int d = random.nextInt(32); 357648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = w * d * h * 3; 358648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 359648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] inArray = new int[arr_len]; 360648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] outArray = new int[arr_len]; 361648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 362648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 363648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextInt(); 364648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 365648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 366648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32_3(mRS)); 367648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(w).setY(h).setZ(d); 368648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 369648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 370648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 371648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 372648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 373648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 374648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 375648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 376648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 377648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 378648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 379648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 380648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 381648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 382648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Int3D TEST PASSED"); 383648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 384648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 385648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 386648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 387648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 388648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Float3_1D(RenderScript mRS) { 389648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 390648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 391648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 392648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 393648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] inArray = new float[arr_len]; 394648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] outArray = new float[arr_len]; 395648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 396648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 397648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextFloat(); 398648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 399648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 400648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32_3(mRS)); 401648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 402648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 403648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 404648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 405648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 406648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 407648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 408648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 409648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 410648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 411648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 412648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 413648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 414648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 415648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 416648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Float1D TEST PASSED"); 417648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 418648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 419648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 420648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 421648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Float3_2D(RenderScript mRS) { 422648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 423648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 424648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 425648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * height * 3; 426648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 427648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] inArray = new float[arr_len]; 428648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] outArray = new float[arr_len]; 429648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 430648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 431648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextFloat(); 432648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 433648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 434648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32_3(mRS)); 435648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 436648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 437648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 438648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 439648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 440648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 441648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 442648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 443648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 444648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 445648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 446648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 447648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 448648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 449648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 450648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Float2D TEST PASSED"); 451648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 452648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 453648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 454648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 455648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Float3_3D(RenderScript mRS) { 456648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 457648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int w = random.nextInt(32); 458648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int h = random.nextInt(32); 459648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int d = random.nextInt(32); 460648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = w * d * h * 3; 461648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 462648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] inArray = new float[arr_len]; 463648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] outArray = new float[arr_len]; 464648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 465648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 466648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextFloat(); 467648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 468648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 469648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32_3(mRS)); 470648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(w).setY(h).setZ(d); 471648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 472648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 473648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 474648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 475648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 476648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 477648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 478648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 479648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 480648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 481648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 482648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 483648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 484648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 485648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Float3D TEST PASSED"); 486648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 487648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 488648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 489648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 490648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 491648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Double3_1D(RenderScript mRS) { 492648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 493648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 494648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 495648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 496648a1c137663ef7207684d0d7009dd5518942111Stephen Hines double[] inArray = new double[arr_len]; 497648a1c137663ef7207684d0d7009dd5518942111Stephen Hines double[] outArray = new double[arr_len]; 498648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 499648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 500648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = (double)random.nextFloat(); 501648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 502648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 503648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.F64_3(mRS)); 504648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 505648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 506648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 507648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 508648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 509648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 510648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 511648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 512648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 513648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 514648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 515648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 516648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 517648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 518648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 519648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Double1D TEST PASSED"); 520648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 521648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 522648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 523648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 524648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Double3_2D(RenderScript mRS) { 525648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 526648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 527648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 528648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * height * 3; 529648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 530648a1c137663ef7207684d0d7009dd5518942111Stephen Hines double[] inArray = new double[arr_len]; 531648a1c137663ef7207684d0d7009dd5518942111Stephen Hines double[] outArray = new double[arr_len]; 532648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 533648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 534648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = (double)random.nextFloat(); 535648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 536648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 537648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.F64_3(mRS)); 538648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 539648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 540648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 541648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 542648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 543648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 544648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 545648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 546648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 547648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 548648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 549648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 550648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 551648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 552648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 553648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Double2D TEST PASSED"); 554648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 555648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 556648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 557648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 558648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Double3_3D(RenderScript mRS) { 559648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 560648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int w = random.nextInt(32); 561648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int h = random.nextInt(32); 562648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int d = random.nextInt(32); 563648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = w * d * h * 3; 564648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 565648a1c137663ef7207684d0d7009dd5518942111Stephen Hines double[] inArray = new double[arr_len]; 566648a1c137663ef7207684d0d7009dd5518942111Stephen Hines double[] outArray = new double[arr_len]; 567648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 568648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 569648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = (double)random.nextFloat(); 570648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 571648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 572648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.F64_3(mRS)); 573648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(w).setY(h).setZ(d); 574648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 575648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 576648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 577648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 578648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 579648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 580648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 581648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 582648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 583648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 584648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 585648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 586648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 587648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 588648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Double3D TEST PASSED"); 589648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 590648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 591648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 592648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 593648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 594648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Long3_1D(RenderScript mRS) { 595648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 596648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 597648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 598648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 599648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] inArray = new long[arr_len]; 600648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] outArray = new long[arr_len]; 601648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 602648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 603648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextLong(); 604648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 605648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 606648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64_3(mRS)); 607648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 608648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 609648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 610648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 611648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 612648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 613648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 614648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 615648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 616648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 617648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 618648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 619648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 620648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 621648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 622648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Long1D TEST PASSED"); 623648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 624648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 625648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 626648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 627648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 628648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Long3_2D(RenderScript mRS) { 629648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 630648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 631648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 632648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * height * 3; 633648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 634648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] inArray = new long[arr_len]; 635648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] outArray = new long[arr_len]; 636648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 637648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 638648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextLong(); 639648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 640648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 641648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64_3(mRS)); 642648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 643648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 644648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 645648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 646648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 647648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 648648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 649648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 650648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 651648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 652648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 653648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 654648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 655648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 656648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 657648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Long2D TEST PASSED"); 658648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 659648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 660648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 661648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 662648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 663648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_Long3_3D(RenderScript mRS) { 664648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 665648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int w = random.nextInt(32); 666648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int h = random.nextInt(32); 667648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int d = random.nextInt(32); 668648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = w * d * h * 3; 669648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 670648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] inArray = new long[arr_len]; 671648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] outArray = new long[arr_len]; 672648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 673648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 674648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextLong(); 675648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 676648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 677648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64_3(mRS)); 678648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(w).setY(h).setZ(d); 679648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 680648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 681648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyFrom(inArray); 682648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copyTo(outArray); 683648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 684648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 685648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 686648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 687648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 688648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "" + i + " " + inArray[i] + " " + outArray[i]); 689648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 690648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 691648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 692648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 693648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Long3D TEST PASSED"); 694648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 695648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 696648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 697648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 698648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 699648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 700648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy1DRangeTo_Byte3(RenderScript mRS) { 701648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 702648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 703648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 704648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 705648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] inArray = new byte[arr_len]; 706648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] outArray = new byte[arr_len]; 707648a1c137663ef7207684d0d7009dd5518942111Stephen Hines random.nextBytes(inArray); 708648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 709648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8_3(mRS)); 710648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 711648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 712648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 713648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int offset = random.nextInt(width); 714648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int count = width - offset; 715648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeFrom(offset, count, inArray); 716648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeTo(offset, count, outArray); 717648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 718648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 719648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < count * 3; i++) { 720648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 721648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 722648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 723648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 724648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 725648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 726648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = count * 3; i < arr_len; i++) { 727648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (outArray[i] != 0) { 728648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 729648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 730648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 731648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 732648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 733648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 734648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy1DRangeTo_Byte TEST PASSED"); 735648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 736648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 737648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 738648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 739648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 740648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy1DRangeTo_Short3(RenderScript mRS) { 741648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 742648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 743648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 744648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 745648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] inArray = new short[arr_len]; 746648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] outArray = new short[arr_len]; 747648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 748648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 749648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = (short)random.nextInt(); 750648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 751648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 752648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16_3(mRS)); 753648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 754648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 755648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 756648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int offset = random.nextInt(width); 757648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int count = width - offset; 758648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeFrom(offset, count, inArray); 759648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeTo(offset, count, outArray); 760648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 761648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 762648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < count * 3; i++) { 763648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 764648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 765648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 766648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 767648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 768648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 769648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = count * 3; i < arr_len; i++) { 770648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (outArray[i] != 0) { 771648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 772648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 773648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 774648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 775648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 776648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 777648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy1DRangeTo_Short TEST PASSED"); 778648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 779648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 780648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 781648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 782648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 783648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy1DRangeTo_Int3(RenderScript mRS) { 784648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 785648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 786648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 787648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 788648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] inArray = new int[arr_len]; 789648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] outArray = new int[arr_len]; 790648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 791648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 792648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextInt(); 793648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 794648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 795648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32_3(mRS)); 796648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 797648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 798648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 799648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int offset = random.nextInt(width); 800648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int count = width - offset; 801648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeFrom(offset, count, inArray); 802648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeTo(offset, count, outArray); 803648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 804648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 805648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < count * 3; i++) { 806648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 807648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 808648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 809648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 810648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 811648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 812648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = count * 3; i < arr_len; i++) { 813648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (outArray[i] != 0) { 814648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 815648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 816648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 817648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 818648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 819648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 820648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy1DRangeTo_Int TEST PASSED"); 821648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 822648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 823648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 824648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 825648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 826648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy1DRangeTo_Float3(RenderScript mRS) { 827648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 828648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 829648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 830648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 831648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] inArray = new float[arr_len]; 832648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] outArray = new float[arr_len]; 833648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 834648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 835648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextFloat(); 836648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 837648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 838648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32_3(mRS)); 839648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 840648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 841648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 842648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int offset = random.nextInt(width); 843648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int count = width - offset; 844648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeFrom(offset, count, inArray); 845648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeTo(offset, count, outArray); 846648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 847648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 848648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < count * 3; i++) { 849648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 850648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 851648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 852648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 853648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 854648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 855648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = count * 3; i < arr_len; i++) { 856648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (outArray[i] != 0f) { 857648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 858648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 859648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 860648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 861648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 862648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 863648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy1DRangeTo_Float TEST PASSED"); 864648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 865648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 866648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 867648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 868648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 869648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy1DRangeTo_Long3(RenderScript mRS) { 870648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 871648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 872648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 873648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 874648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] inArray = new long[arr_len]; 875648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] outArray = new long[arr_len]; 876648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 877648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 878648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextLong(); 879648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 880648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 881648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64_3(mRS)); 882648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 883648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 884648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 885648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int offset = random.nextInt(width); 886648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int count = width - offset; 887648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeFrom(offset, count, inArray); 888648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeTo(offset, count, outArray); 889648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 890648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 891648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < count * 3; i++) { 892648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 893648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 894648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 895648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 896648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 897648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 898648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = count * 3; i < arr_len; i++) { 899648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (outArray[i] != 0) { 900648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 901648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 902648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 903648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 904648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 905648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 906648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy1DRangeTo_Long TEST PASSED"); 907648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 908648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 909648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 910648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 911648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 912648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy2DRangeTo_Byte3(RenderScript mRS) { 913648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 914648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 915648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 916648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int xoff = random.nextInt(width); 917648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int yoff = random.nextInt(height); 918648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int xcount = width - xoff; 919648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int ycount = height - yoff; 920648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = xcount * ycount * 3; 921648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 922648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] inArray = new byte[arr_len]; 923648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] outArray = new byte[arr_len]; 924648a1c137663ef7207684d0d7009dd5518942111Stephen Hines random.nextBytes(inArray); 925648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 926648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8_3(mRS)); 927648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 928648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 929648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 930648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray); 931648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray); 932648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 933648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 934648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 935648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 936648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 937648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 938648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 939648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 940648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 941648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 942648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy2DRangeTo_Byte TEST PASSED"); 943648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 944648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 945648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 946648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 947648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 948648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy2DRangeTo_Short3(RenderScript mRS) { 949648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 950648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 951648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 952648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int xoff = random.nextInt(width); 953648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int yoff = random.nextInt(height); 954648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int xcount = width - xoff; 955648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int ycount = height - yoff; 956648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = xcount * ycount * 3; 957648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 958648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] inArray = new short[arr_len]; 959648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] outArray = new short[arr_len]; 960648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 961648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 962648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = (short)random.nextInt(); 963648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 964648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 965648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16_3(mRS)); 966648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 967648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 968648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 969648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray); 970648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray); 971648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 972648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 973648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 974648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 975648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 976648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 977648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 978648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 979648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 980648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 981648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy2DRangeTo_Short TEST PASSED"); 982648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 983648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 984648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 985648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 986648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 987648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy2DRangeTo_Int3(RenderScript mRS) { 988648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 989648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 990648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 991648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int xoff = random.nextInt(width); 992648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int yoff = random.nextInt(height); 993648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int xcount = width - xoff; 994648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int ycount = height - yoff; 995648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = xcount * ycount * 3; 996648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 997648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] inArray = new int[arr_len]; 998648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] outArray = new int[arr_len]; 999648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1000648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 1001648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextInt(); 1002648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1003648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1004648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32_3(mRS)); 1005648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 1006648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1007648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 1008648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray); 1009648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray); 1010648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1011648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 1012648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 1013648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 1014648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1015648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1016648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1017648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1018648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1019648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 1020648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy2DRangeTo_Int TEST PASSED"); 1021648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 1022648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 1023648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1024648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1025648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1026648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy2DRangeTo_Float3(RenderScript mRS) { 1027648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 1028648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 1029648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 1030648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int xoff = random.nextInt(width); 1031648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int yoff = random.nextInt(height); 1032648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int xcount = width - xoff; 1033648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int ycount = height - yoff; 1034648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = xcount * ycount * 3; 1035648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1036648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] inArray = new float[arr_len]; 1037648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] outArray = new float[arr_len]; 1038648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1039648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 1040648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextFloat(); 1041648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1042648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1043648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32_3(mRS)); 1044648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 1045648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1046648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 1047648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray); 1048648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray); 1049648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1050648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 1051648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 1052648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 1053648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1054648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1055648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1056648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1057648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1058648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 1059648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy2DRangeTo_Float TEST PASSED"); 1060648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 1061648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 1062648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1063648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1064648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1065648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy2DRangeTo_Long3(RenderScript mRS) { 1066648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 1067648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(128); 1068648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int height = random.nextInt(128); 1069648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int xoff = random.nextInt(width); 1070648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int yoff = random.nextInt(height); 1071648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int xcount = width - xoff; 1072648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int ycount = height - yoff; 1073648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = xcount * ycount * 3; 1074648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1075648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] inArray = new long[arr_len]; 1076648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] outArray = new long[arr_len]; 1077648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1078648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 1079648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextLong(); 1080648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1081648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1082648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64_3(mRS)); 1083648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width).setY(height); 1084648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1085648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 1086648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy2DRangeFrom(xoff, yoff, xcount, ycount, inArray); 1087648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy2DRangeTo(xoff, yoff, xcount, ycount, outArray); 1088648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1089648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 1090648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 1091648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 1092648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1093648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1094648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1095648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1096648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1097648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 1098648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy2DRangeTo_Long TEST PASSED"); 1099648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 1100648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 1101648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1102648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1103648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1104648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1105648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy1DRangeToUnchecked_Byte3(RenderScript mRS) { 1106648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 1107648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 1108648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 1109648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1110648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] inArray = new byte[arr_len]; 1111648a1c137663ef7207684d0d7009dd5518942111Stephen Hines byte[] outArray = new byte[arr_len]; 1112648a1c137663ef7207684d0d7009dd5518942111Stephen Hines random.nextBytes(inArray); 1113648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1114648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I8_3(mRS)); 1115648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 1116648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1117648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 1118648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int offset = random.nextInt(width); 1119648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int count = width - offset; 1120648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeFrom(offset, count, inArray); 1121648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeToUnchecked(offset, count, outArray); 1122648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1123648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 1124648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < count * 3; i++) { 1125648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 1126648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1127648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1128648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1129648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1130648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1131648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = count * 3; i < arr_len; i++) { 1132648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (outArray[i] != 0) { 1133648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1134648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1135648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1136648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1137648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1138648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 1139648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy1DRangeToUnchecked_Byte TEST PASSED"); 1140648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 1141648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 1142648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1143648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1144648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1145648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy1DRangeToUnchecked_Short3(RenderScript mRS) { 1146648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 1147648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 1148648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 1149648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1150648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] inArray = new short[arr_len]; 1151648a1c137663ef7207684d0d7009dd5518942111Stephen Hines short[] outArray = new short[arr_len]; 1152648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1153648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 1154648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = (short)random.nextInt(); 1155648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1156648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1157648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I16_3(mRS)); 1158648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 1159648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1160648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 1161648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int offset = random.nextInt(width); 1162648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int count = width - offset; 1163648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeFrom(offset, count, inArray); 1164648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeToUnchecked(offset, count, outArray); 1165648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1166648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 1167648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < count * 3; i++) { 1168648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 1169648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1170648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1171648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1172648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1173648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1174648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = count * 3; i < arr_len; i++) { 1175648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (outArray[i] != 0) { 1176648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1177648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1178648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1179648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1180648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1181648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 1182648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy1DRangeToUnchecked_Short TEST PASSED"); 1183648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 1184648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 1185648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1186648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1187648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1188648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy1DRangeToUnchecked_Int3(RenderScript mRS) { 1189648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 1190648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 1191648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 1192648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1193648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] inArray = new int[arr_len]; 1194648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int[] outArray = new int[arr_len]; 1195648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1196648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 1197648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextInt(); 1198648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1199648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1200648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I32_3(mRS)); 1201648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 1202648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1203648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 1204648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int offset = random.nextInt(width); 1205648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int count = width - offset; 1206648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeFrom(offset, count, inArray); 1207648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeToUnchecked(offset, count, outArray); 1208648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1209648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 1210648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < count * 3; i++) { 1211648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 1212648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1213648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1214648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1215648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1216648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1217648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = count * 3; i < arr_len; i++) { 1218648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (outArray[i] != 0) { 1219648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1220648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1221648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1222648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1223648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1224648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 1225648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy1DRangeToUnchecked_Int TEST PASSED"); 1226648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 1227648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 1228648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1229648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1230648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1231648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy1DRangeToUnchecked_Float3(RenderScript mRS) { 1232648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 1233648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 1234648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 1235648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1236648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] inArray = new float[arr_len]; 1237648a1c137663ef7207684d0d7009dd5518942111Stephen Hines float[] outArray = new float[arr_len]; 1238648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1239648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 1240648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextFloat(); 1241648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1242648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1243648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.F32_3(mRS)); 1244648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 1245648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1246648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 1247648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int offset = random.nextInt(width); 1248648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int count = width - offset; 1249648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeFrom(offset, count, inArray); 1250648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeToUnchecked(offset, count, outArray); 1251648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1252648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 1253648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < count * 3; i++) { 1254648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 1255648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1256648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1257648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1258648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1259648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1260648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = count * 3; i < arr_len; i++) { 1261648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (outArray[i] != 0f) { 1262648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1263648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1264648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1265648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1266648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1267648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 1268648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy1DRangeToUnchecked_Float TEST PASSED"); 1269648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 1270648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 1271648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1272648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1273648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1274648a1c137663ef7207684d0d7009dd5518942111Stephen Hines public void testAllocation_copy1DRangeToUnchecked_Long3(RenderScript mRS) { 1275648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Random random = new Random(0x172d8ab9); 1276648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int width = random.nextInt(512); 1277648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int arr_len = width * 3; 1278648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1279648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] inArray = new long[arr_len]; 1280648a1c137663ef7207684d0d7009dd5518942111Stephen Hines long[] outArray = new long[arr_len]; 1281648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1282648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < arr_len; i++) { 1283648a1c137663ef7207684d0d7009dd5518942111Stephen Hines inArray[i] = random.nextLong(); 1284648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1285648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1286648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Type.Builder typeBuilder = new Type.Builder(mRS, Element.I64_3(mRS)); 1287648a1c137663ef7207684d0d7009dd5518942111Stephen Hines typeBuilder.setX(width); 1288648a1c137663ef7207684d0d7009dd5518942111Stephen Hines Allocation alloc = Allocation.createTyped(mRS, typeBuilder.create()); 1289648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.setAutoPadding(true); 1290648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int offset = random.nextInt(width); 1291648a1c137663ef7207684d0d7009dd5518942111Stephen Hines int count = width - offset; 1292648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeFrom(offset, count, inArray); 1293648a1c137663ef7207684d0d7009dd5518942111Stephen Hines alloc.copy1DRangeToUnchecked(offset, count, outArray); 1294648a1c137663ef7207684d0d7009dd5518942111Stephen Hines 1295648a1c137663ef7207684d0d7009dd5518942111Stephen Hines boolean result = true; 1296648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = 0; i < count * 3; i++) { 1297648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (inArray[i] != outArray[i]) { 1298648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1299648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1300648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1301648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1302648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1303648a1c137663ef7207684d0d7009dd5518942111Stephen Hines for (int i = count * 3; i < arr_len; i++) { 1304648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (outArray[i] != 0) { 1305648a1c137663ef7207684d0d7009dd5518942111Stephen Hines result = false; 1306648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "Failed: " + i + " " + inArray[i] + " " + outArray[i]); 1307648a1c137663ef7207684d0d7009dd5518942111Stephen Hines break; 1308648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1309648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1310648a1c137663ef7207684d0d7009dd5518942111Stephen Hines if (result) { 1311648a1c137663ef7207684d0d7009dd5518942111Stephen Hines android.util.Log.v("Alloc Padding Test", "copy1DRangeToUnchecked_Long TEST PASSED"); 1312648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } else { 1313648a1c137663ef7207684d0d7009dd5518942111Stephen Hines failTest(); 1314648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1315648a1c137663ef7207684d0d7009dd5518942111Stephen Hines } 1316648a1c137663ef7207684d0d7009dd5518942111Stephen Hines} 1317