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