11a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks/* 21a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * Copyright (C) 2017 The Android Open Source Project 31a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * 41a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * Licensed under the Apache License, Version 2.0 (the "License"); 51a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * you may not use this file except in compliance with the License. 61a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * You may obtain a copy of the License at 71a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * 81a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * http://www.apache.org/licenses/LICENSE-2.0 91a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * 101a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * Unless required by applicable law or agreed to in writing, software 111a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * distributed under the License is distributed on an "AS IS" BASIS, 121a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * See the License for the specific language governing permissions and 141a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks * limitations under the License. 151a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks */ 161a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 171a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubankspackage com.android.rs.unittest; 181a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 191a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanksimport android.content.Context; 201a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanksimport android.renderscript.RenderScript; 211a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanksimport android.renderscript.Sampler; 221a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 231a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubankspublic class UT_sampler extends UnitTest { 241a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks Sampler minification; 251a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks Sampler magnification; 261a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks Sampler wrapS; 271a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks Sampler wrapT; 281a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks Sampler anisotropy; 291a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 301a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks public UT_sampler(Context ctx) { 311a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks super("Sampler", ctx); 321a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks } 331a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 341a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks private Sampler.Builder getDefaultBuilder(RenderScript RS) { 351a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks Sampler.Builder b = new Sampler.Builder(RS); 361a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b.setMinification(Sampler.Value.NEAREST); 371a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b.setMagnification(Sampler.Value.NEAREST); 381a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b.setWrapS(Sampler.Value.CLAMP); 391a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b.setWrapT(Sampler.Value.CLAMP); 401a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b.setAnisotropy(1.0f); 411a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks return b; 421a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks } 431a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 441a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks private void initializeGlobals(RenderScript RS, ScriptC_sampler s) { 451a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks Sampler.Builder b = getDefaultBuilder(RS); 461a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b.setMinification(Sampler.Value.LINEAR_MIP_LINEAR); 471a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks minification = b.create(); 481a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 491a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b = getDefaultBuilder(RS); 501a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b.setMagnification(Sampler.Value.LINEAR); 511a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks magnification = b.create(); 521a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 531a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b = getDefaultBuilder(RS); 541a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b.setWrapS(Sampler.Value.WRAP); 551a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapS = b.create(); 561a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 571a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b = getDefaultBuilder(RS); 581a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b.setWrapT(Sampler.Value.WRAP); 591a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapT = b.create(); 601a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 611a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b = getDefaultBuilder(RS); 621a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks b.setAnisotropy(8.0f); 631a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks anisotropy = b.create(); 641a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 651a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks s.set_minification(minification); 661a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks s.set_magnification(magnification); 671a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks s.set_wrapS(wrapS); 681a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks s.set_wrapT(wrapT); 691a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks s.set_anisotropy(anisotropy); 701a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks } 711a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 721a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks private void testScriptSide(RenderScript pRS) { 731a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks ScriptC_sampler s = new ScriptC_sampler(pRS); 741a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks initializeGlobals(pRS, s); 751a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks s.invoke_sampler_test(); 761a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks pRS.finish(); 771a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks s.destroy(); 781a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks } 791a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 804cad330154b7df7c3adf126b9f4b2665191a23a4Arthur Eubanks private void testJavaSide(RenderScript pRS) { 811a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("minification.getMagnification() == Sampler.Value.NEAREST", 821a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks minification.getMagnification() == Sampler.Value.NEAREST); 831a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("minification.getMinification() == Sampler.Value.LINEAR_MIP_LINEAR", 841a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks minification.getMinification() == Sampler.Value.LINEAR_MIP_LINEAR); 851a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("minification.getWrapS() == Sampler.Value.CLAMP", 861a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks minification.getWrapS() == Sampler.Value.CLAMP); 871a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("minification.getWrapT() == Sampler.Value.CLAMP", 881a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks minification.getWrapT() == Sampler.Value.CLAMP); 891a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("minification.getAnisotropy() == 1.0f", 901a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks minification.getAnisotropy() == 1.0f); 911a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 921a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("magnification.getMagnification() == Sampler.Value.LINEAR", 931a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks magnification.getMagnification() == Sampler.Value.LINEAR); 941a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("magnification.getMinification() == Sampler.Value.NEAREST", 951a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks magnification.getMinification() == Sampler.Value.NEAREST); 961a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("magnification.getWrapS() == Sampler.Value.CLAMP", 971a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks magnification.getWrapS() == Sampler.Value.CLAMP); 981a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("magnification.getWrapT() == Sampler.Value.CLAMP", 991a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks magnification.getWrapT() == Sampler.Value.CLAMP); 1001a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("magnification.getAnisotropy() == 1.0f", 1011a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks magnification.getAnisotropy() == 1.0f); 1021a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 1031a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("wrapS.getMagnification() == Sampler.Value.NEAREST", 1041a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapS.getMagnification() == Sampler.Value.NEAREST); 1051a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("wrapS.getMinification() == Sampler.Value.NEAREST", 1061a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapS.getMinification() == Sampler.Value.NEAREST); 1071a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("wrapS.getWrapS() == Sampler.Value.WRAP", 1081a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapS.getWrapS() == Sampler.Value.WRAP); 1091a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("wrapS.getWrapT() == Sampler.Value.CLAMP", 1101a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapS.getWrapT() == Sampler.Value.CLAMP); 1111a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("wrapS.getAnisotropy() == 1.0f", 1121a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapS.getAnisotropy() == 1.0f); 1131a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 1141a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("wrapT.getMagnification() == Sampler.Value.NEAREST", 1151a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapT.getMagnification() == Sampler.Value.NEAREST); 1161a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("wrapT.getMinification() == Sampler.Value.NEAREST", 1171a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapT.getMinification() == Sampler.Value.NEAREST); 1181a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("wrapT.getWrapS() == Sampler.Value.CLAMP", 1191a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapT.getWrapS() == Sampler.Value.CLAMP); 1201a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("wrapT.getWrapT() == Sampler.Value.WRAP", 1211a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapT.getWrapT() == Sampler.Value.WRAP); 1221a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("wrapT.getAnisotropy() == 1.0f", 1231a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks wrapT.getAnisotropy() == 1.0f); 1241a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 1251a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("anisotropy.getMagnification() == Sampler.Value.NEAREST", 1261a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks anisotropy.getMagnification() == Sampler.Value.NEAREST); 1271a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("anisotropy.getMinification() == Sampler.Value.NEAREST", 1281a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks anisotropy.getMinification() == Sampler.Value.NEAREST); 1291a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("anisotropy.getWrapS() == Sampler.Value.CLAMP", 1301a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks anisotropy.getWrapS() == Sampler.Value.CLAMP); 1311a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("anisotropy.getWrapT() == Sampler.Value.CLAMP", 1321a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks anisotropy.getWrapT() == Sampler.Value.CLAMP); 1331a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks _RS_ASSERT("anisotropy.getAnisotropy() == 1.0f", 1341a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks anisotropy.getAnisotropy() == 8.0f); 1351a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks } 1361a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks 1371a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks public void run() { 1384cad330154b7df7c3adf126b9f4b2665191a23a4Arthur Eubanks RenderScript pRS = createRenderScript(true); 1391a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks testScriptSide(pRS); 1401a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks testJavaSide(pRS); 1411a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks passTest(); 1421a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks pRS.destroy(); 1431a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks } 1441a3e97c3ab51f602927a67d4abc50ffa6ce5ccbaArthur Eubanks} 145