rsHandcode.h revision 07ae40623737a6060b8a925fd2e6bba76780dcd4
1 2#define DATA_SYNC_SIZE 1024 3 4static inline void rsHCAPI_AllocationData (RsContext rsc, RsAllocation va, const void * data, uint32_t sizeBytes) 5{ 6 ThreadIO *io = &((Context *)rsc)->mIO; 7 uint32_t size = sizeof(RS_CMD_AllocationData); 8 if (sizeBytes < DATA_SYNC_SIZE) { 9 size += (sizeBytes + 3) & ~3; 10 } 11 RS_CMD_AllocationData *cmd = static_cast<RS_CMD_AllocationData *>(io->mToCore.reserve(size)); 12 cmd->va = va; 13 cmd->bytes = sizeBytes; 14 cmd->data = data; 15 if (sizeBytes < DATA_SYNC_SIZE) { 16 cmd->data = (void *)(cmd+1); 17 memcpy(cmd+1, data, sizeBytes); 18 io->mToCore.commit(RS_CMD_ID_AllocationData, size); 19 } else { 20 io->mToCore.commitSync(RS_CMD_ID_AllocationData, size); 21 } 22} 23 24 25static inline void rsHCAPI_Allocation1DSubData (RsContext rsc, RsAllocation va, uint32_t xoff, uint32_t count, const void * data, uint32_t sizeBytes) 26{ 27 ThreadIO *io = &((Context *)rsc)->mIO; 28 uint32_t size = sizeof(RS_CMD_Allocation1DSubData); 29 if (sizeBytes < DATA_SYNC_SIZE) { 30 size += (sizeBytes + 3) & ~3; 31 } 32 RS_CMD_Allocation1DSubData *cmd = static_cast<RS_CMD_Allocation1DSubData *>(io->mToCore.reserve(size)); 33 cmd->va = va; 34 cmd->xoff = xoff; 35 cmd->count = count; 36 cmd->data = data; 37 cmd->bytes = sizeBytes; 38 if (sizeBytes < DATA_SYNC_SIZE) { 39 cmd->data = (void *)(cmd+1); 40 memcpy(cmd+1, data, sizeBytes); 41 io->mToCore.commit(RS_CMD_ID_Allocation1DSubData, size); 42 } else { 43 io->mToCore.commitSync(RS_CMD_ID_Allocation1DSubData, size); 44 } 45 46} 47 48