Add tests and missing functions for rs_allocation APIs. This change also adds some missing support library functions: rsAllocationCopy1DRange() rsAllocationCopy2DRange() rsAllocationIoSend() rsAllocationIoReceive() Change-Id: Ia50773d767f78f3cfa2cfdf0340d8c3d9cdb0991
diff --git a/driver/rsdRuntimeStubs.cpp b/driver/rsdRuntimeStubs.cpp index 4788a12..2a3ebc9 100644 --- a/driver/rsdRuntimeStubs.cpp +++ b/driver/rsdRuntimeStubs.cpp
@@ -84,6 +84,10 @@ OPAQUETYPE(rs_script_call) #undef OPAQUETYPE +typedef enum { + // Empty to avoid conflicting definitions with RsAllocationCubemapFace +} rs_allocation_cubemap_face; + typedef struct { int tm_sec; ///< seconds int tm_min; ///< minutes @@ -138,7 +142,6 @@ srcXoff, srcYoff, srcMip, srcFace); } -#ifndef RS_COMPATIBILITY_LIB static void SC_AllocationIoSend(Allocation *alloc) { Context *rsc = RsdCpuReference::getTlsContext(); rsrAllocationIoSend(rsc, alloc); @@ -150,7 +153,7 @@ rsrAllocationIoReceive(rsc, alloc); } - +#ifndef RS_COMPATIBILITY_LIB ////////////////////////////////////////////////////////////////////////////// // Context @@ -1244,6 +1247,38 @@ return SC_GetAllocation(ptr); } +void __attribute__((overloadable)) rsAllocationIoSend(rs_allocation a) { + SC_AllocationIoSend((Allocation *)a.p); +} + +void __attribute__((overloadable)) rsAllocationIoReceive(rs_allocation a) { + SC_AllocationIoReceive((Allocation *)a.p); +} + + +void __attribute__((overloadable)) rsAllocationCopy1DRange( + rs_allocation dstAlloc, + uint32_t dstOff, uint32_t dstMip, uint32_t count, + rs_allocation srcAlloc, + uint32_t srcOff, uint32_t srcMip) { + SC_AllocationCopy1DRange((Allocation *)dstAlloc.p, dstOff, dstMip, count, + (Allocation *)srcAlloc.p, srcOff, srcMip); +} + +void __attribute__((overloadable)) rsAllocationCopy2DRange( + rs_allocation dstAlloc, + uint32_t dstXoff, uint32_t dstYoff, + uint32_t dstMip, rs_allocation_cubemap_face dstFace, + uint32_t width, uint32_t height, + rs_allocation srcAlloc, + uint32_t srcXoff, uint32_t srcYoff, + uint32_t srcMip, rs_allocation_cubemap_face srcFace) { + SC_AllocationCopy2DRange((Allocation *)dstAlloc.p, dstXoff, dstYoff, + dstMip, dstFace, width, height, + (Allocation *)srcAlloc.p, srcXoff, srcYoff, + srcMip, srcFace); +} + void __attribute__((overloadable)) rsForEach(rs_script script, rs_allocation in, rs_allocation out,