Fix the OpenCL portion to match the c++ code.

Fix an undiscovered bug in the c++ code.
This commit is contained in:
Tetragramm 2016-11-03 20:41:16 -05:00
parent c6772a8f5d
commit 17df65e666
2 changed files with 5 additions and 2 deletions

View File

@ -215,7 +215,7 @@ namespace
if (residual != 0)
{
int residualStep = MAX(histSize / residual, 1);
for (int i = 0; i < histSize; i += residualStep)
for (int i = 0; i < histSize && residual > 0; i += residualStep, residual--)
tileHist[i]++;
}
}

View File

@ -201,7 +201,10 @@ __kernel void calcLut(__global __const uchar * src, const int srcStep,
tHistVal += redistBatch;
int residual = totalClipped - redistBatch * 256;
if (tid < residual)
int rStep = 256 / residual;
if (rStep < 1)
rStep = 1;
if (tid%rStep == 0 && (tid/rStep)<residual)
++tHistVal;
}