1566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar#include "RenderScript.h" 2566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar 37d72c9e5ad10e85789a0bc2e63c3f918c609ae49Chih-Hung Hsiehusing android::RSC::Allocation; 47d72c9e5ad10e85789a0bc2e63c3f918c609ae49Chih-Hung Hsiehusing android::RSC::Element; 57d72c9e5ad10e85789a0bc2e63c3f918c609ae49Chih-Hung Hsiehusing android::RSC::RS; 67d72c9e5ad10e85789a0bc2e63c3f918c609ae49Chih-Hung Hsiehusing android::RSC::Type; 77d72c9e5ad10e85789a0bc2e63c3f918c609ae49Chih-Hung Hsiehusing android::RSC::sp; 8566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar 9566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainarstatic const uint32_t dimX = 7, dimY = 5, dimZ = 3; 10566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar 1145768e1663714702c0c2b7adf14fdbd80dae71f5Chih-Hung Hsiehvoid testAllocationCreation(const sp<RS>& rs, const sp<const Element>& e, uint32_t nDims) { 12566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar Type::Builder tb(rs, e); 13566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar tb.setX(dimX); 14566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar if (nDims >= 2) 15566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar tb.setY(dimY); 16566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar if (nDims >= 3) 17566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar tb.setZ(dimZ); 18566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar 19566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar sp<const Type> t = tb.create(); 20566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar sp<Allocation> alloc = Allocation::createTyped(rs, t); 21566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar} 22566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar 23566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainarint main(int , char** ) 24566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar{ 25566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar sp<RS> rs = new RS(); 26566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar 27863237215cab4812df373b63ba3bbf2bc1d8647dJean-Luc Brouillet if (!rs->init("/system/bin")) { 28863237215cab4812df373b63ba3bbf2bc1d8647dJean-Luc Brouillet printf("Could not initialize RenderScript\n"); 29863237215cab4812df373b63ba3bbf2bc1d8647dJean-Luc Brouillet return 1; 30863237215cab4812df373b63ba3bbf2bc1d8647dJean-Luc Brouillet } 31566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar 32566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar // Test ability to create 1D, 2D and 3D allocations of f16 scalars and 33566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar // vectors 34566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar sp<const Element> half = Element::F16(rs); 35566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar sp<const Element> half2 = Element::F16_2(rs); 36566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar sp<const Element> half3 = Element::F16_3(rs); 37566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar sp<const Element> half4 = Element::F16_4(rs); 38566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar 39566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar for (uint32_t nDims = 1; nDims <= 3; nDims ++) { 40566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar testAllocationCreation(rs, half, nDims); 41566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar testAllocationCreation(rs, half2, nDims); 42566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar testAllocationCreation(rs, half3, nDims); 43566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar testAllocationCreation(rs, half4, nDims); 44566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar } 45566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar 46566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar printf("Test successful!"); 47566168431399086c146b2f845f6d0128852c9686Pirama Arumuga Nainar} 48