diff options
Diffstat (limited to 'tests/cppf16/compute.cpp')
| -rw-r--r-- | tests/cppf16/compute.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/cppf16/compute.cpp b/tests/cppf16/compute.cpp new file mode 100644 index 00000000..d39466d8 --- /dev/null +++ b/tests/cppf16/compute.cpp @@ -0,0 +1,41 @@ +#include "RenderScript.h" + +using namespace android; +using namespace RSC; + +static const uint32_t dimX = 7, dimY = 5, dimZ = 3; + +void testAllocationCreation(sp<RS> rs, sp<const Element> e, uint32_t nDims) { + Type::Builder tb(rs, e); + tb.setX(dimX); + if (nDims >= 2) + tb.setY(dimY); + if (nDims >= 3) + tb.setZ(dimZ); + + sp<const Type> t = tb.create(); + sp<Allocation> alloc = Allocation::createTyped(rs, t); +} + +int main(int , char** ) +{ + sp<RS> rs = new RS(); + + bool r = rs->init("/system/bin"); + + // Test ability to create 1D, 2D and 3D allocations of f16 scalars and + // vectors + sp<const Element> half = Element::F16(rs); + sp<const Element> half2 = Element::F16_2(rs); + sp<const Element> half3 = Element::F16_3(rs); + sp<const Element> half4 = Element::F16_4(rs); + + for (uint32_t nDims = 1; nDims <= 3; nDims ++) { + testAllocationCreation(rs, half, nDims); + testAllocationCreation(rs, half2, nDims); + testAllocationCreation(rs, half3, nDims); + testAllocationCreation(rs, half4, nDims); + } + + printf("Test successful!"); +} |
