diff options
Diffstat (limited to 'cpu_ref/rsCpuIntrinsicHistogram.cpp')
-rw-r--r-- | cpu_ref/rsCpuIntrinsicHistogram.cpp | 58 |
1 files changed, 27 insertions, 31 deletions
diff --git a/cpu_ref/rsCpuIntrinsicHistogram.cpp b/cpu_ref/rsCpuIntrinsicHistogram.cpp index b5dbfa80..1c430b72 100644 --- a/cpu_ref/rsCpuIntrinsicHistogram.cpp +++ b/cpu_ref/rsCpuIntrinsicHistogram.cpp @@ -36,10 +36,10 @@ public: RsdCpuScriptIntrinsicHistogram(RsdCpuReferenceImpl *ctx, const Script *s, const Element *e); protected: - void preLaunch(uint32_t slot, const Allocation ** ains, uint32_t inLen, + void preLaunch(uint32_t slot, const Allocation * ain, Allocation * aout, const void * usr, uint32_t usrLen, const RsScriptCall *sc); - void postLaunch(uint32_t slot, const Allocation ** ains, uint32_t inLen, + void postLaunch(uint32_t slot, const Allocation * ain, Allocation * aout, const void * usr, uint32_t usrLen, const RsScriptCall *sc); @@ -97,12 +97,9 @@ void RsdCpuScriptIntrinsicHistogram::setGlobalVar(uint32_t slot, const void *dat -void -RsdCpuScriptIntrinsicHistogram::preLaunch(uint32_t slot, - const Allocation ** ains, - uint32_t inLen, Allocation * aout, - const void * usr, uint32_t usrLen, - const RsScriptCall *sc) { +void RsdCpuScriptIntrinsicHistogram::preLaunch(uint32_t slot, const Allocation * ain, + Allocation * aout, const void * usr, + uint32_t usrLen, const RsScriptCall *sc) { const uint32_t threads = mCtx->getThreadCount(); uint32_t vSize = mAllocOut->getType()->getElement()->getVectorSize(); @@ -126,7 +123,7 @@ RsdCpuScriptIntrinsicHistogram::preLaunch(uint32_t slot, } break; case 1: - switch(ains[0]->getType()->getElement()->getVectorSize()) { + switch(ain->getType()->getElement()->getVectorSize()) { case 1: mRootPtr = &kernelP1L1; break; @@ -145,12 +142,9 @@ RsdCpuScriptIntrinsicHistogram::preLaunch(uint32_t slot, memset(mSums, 0, 256 * sizeof(int32_t) * threads * vSize); } -void -RsdCpuScriptIntrinsicHistogram::postLaunch(uint32_t slot, - const Allocation ** ains, - uint32_t inLen, Allocation * aout, - const void * usr, uint32_t usrLen, - const RsScriptCall *sc) { +void RsdCpuScriptIntrinsicHistogram::postLaunch(uint32_t slot, const Allocation * ain, + Allocation * aout, const void * usr, + uint32_t usrLen, const RsScriptCall *sc) { unsigned int *o = (unsigned int *)mAllocOut->mHal.drvState.lod[0].mallocPtr; uint32_t threads = mCtx->getThreadCount(); @@ -171,7 +165,7 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1U4(const RsExpandKernelParams *p, uint32_t instep, uint32_t outstep) { RsdCpuScriptIntrinsicHistogram *cp = (RsdCpuScriptIntrinsicHistogram *)p->usr; - uchar *in = (uchar *)p->ins[0]; + uchar *in = (uchar *)p->in; int * sums = &cp->mSums[256 * 4 * p->lid]; for (uint32_t x = xstart; x < xend; x++) { @@ -179,7 +173,7 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1U4(const RsExpandKernelParams *p, sums[(in[1] << 2) + 1] ++; sums[(in[2] << 2) + 2] ++; sums[(in[3] << 2) + 3] ++; - in += p->inEStrides[0]; + in += instep; } } @@ -188,14 +182,14 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1U3(const RsExpandKernelParams *p, uint32_t instep, uint32_t outstep) { RsdCpuScriptIntrinsicHistogram *cp = (RsdCpuScriptIntrinsicHistogram *)p->usr; - uchar *in = (uchar *)p->ins[0]; + uchar *in = (uchar *)p->in; int * sums = &cp->mSums[256 * 4 * p->lid]; for (uint32_t x = xstart; x < xend; x++) { sums[(in[0] << 2) ] ++; sums[(in[1] << 2) + 1] ++; sums[(in[2] << 2) + 2] ++; - in += p->inEStrides[0]; + in += instep; } } @@ -204,13 +198,13 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1U2(const RsExpandKernelParams *p, uint32_t instep, uint32_t outstep) { RsdCpuScriptIntrinsicHistogram *cp = (RsdCpuScriptIntrinsicHistogram *)p->usr; - uchar *in = (uchar *)p->ins[0]; + uchar *in = (uchar *)p->in; int * sums = &cp->mSums[256 * 2 * p->lid]; for (uint32_t x = xstart; x < xend; x++) { sums[(in[0] << 1) ] ++; sums[(in[1] << 1) + 1] ++; - in += p->inEStrides[0]; + in += instep; } } @@ -219,7 +213,7 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1L4(const RsExpandKernelParams *p, uint32_t instep, uint32_t outstep) { RsdCpuScriptIntrinsicHistogram *cp = (RsdCpuScriptIntrinsicHistogram *)p->usr; - uchar *in = (uchar *)p->ins[0]; + uchar *in = (uchar *)p->in; int * sums = &cp->mSums[256 * p->lid]; for (uint32_t x = xstart; x < xend; x++) { @@ -228,7 +222,7 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1L4(const RsExpandKernelParams *p, (cp->mDotI[2] * in[2]) + (cp->mDotI[3] * in[3]); sums[(t + 0x7f) >> 8] ++; - in += p->inEStrides[0]; + in += instep; } } @@ -237,7 +231,7 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1L3(const RsExpandKernelParams *p, uint32_t instep, uint32_t outstep) { RsdCpuScriptIntrinsicHistogram *cp = (RsdCpuScriptIntrinsicHistogram *)p->usr; - uchar *in = (uchar *)p->ins[0]; + uchar *in = (uchar *)p->in; int * sums = &cp->mSums[256 * p->lid]; for (uint32_t x = xstart; x < xend; x++) { @@ -245,7 +239,7 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1L3(const RsExpandKernelParams *p, (cp->mDotI[1] * in[1]) + (cp->mDotI[2] * in[2]); sums[(t + 0x7f) >> 8] ++; - in += p->inEStrides[0]; + in += instep; } } @@ -254,14 +248,14 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1L2(const RsExpandKernelParams *p, uint32_t instep, uint32_t outstep) { RsdCpuScriptIntrinsicHistogram *cp = (RsdCpuScriptIntrinsicHistogram *)p->usr; - uchar *in = (uchar *)p->ins[0]; + uchar *in = (uchar *)p->in; int * sums = &cp->mSums[256 * p->lid]; for (uint32_t x = xstart; x < xend; x++) { int t = (cp->mDotI[0] * in[0]) + (cp->mDotI[1] * in[1]); sums[(t + 0x7f) >> 8] ++; - in += p->inEStrides[0]; + in += instep; } } @@ -270,13 +264,13 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1L1(const RsExpandKernelParams *p, uint32_t instep, uint32_t outstep) { RsdCpuScriptIntrinsicHistogram *cp = (RsdCpuScriptIntrinsicHistogram *)p->usr; - uchar *in = (uchar *)p->ins[0]; + uchar *in = (uchar *)p->in; int * sums = &cp->mSums[256 * p->lid]; for (uint32_t x = xstart; x < xend; x++) { int t = (cp->mDotI[0] * in[0]); sums[(t + 0x7f) >> 8] ++; - in += p->inEStrides[0]; + in += instep; } } @@ -285,12 +279,12 @@ void RsdCpuScriptIntrinsicHistogram::kernelP1U1(const RsExpandKernelParams *p, uint32_t instep, uint32_t outstep) { RsdCpuScriptIntrinsicHistogram *cp = (RsdCpuScriptIntrinsicHistogram *)p->usr; - uchar *in = (uchar *)p->ins[0]; + uchar *in = (uchar *)p->in; int * sums = &cp->mSums[256 * p->lid]; for (uint32_t x = xstart; x < xend; x++) { sums[in[0]] ++; - in += p->inEStrides[0]; + in += instep; } } @@ -329,3 +323,5 @@ RsdCpuScriptImpl * rsdIntrinsic_Histogram(RsdCpuReferenceImpl *ctx, const Script return new RsdCpuScriptIntrinsicHistogram(ctx, s, e); } + + |