used cudaMalloc for 1-row or 1-column matrix instead of cudaMallocPitch
This commit is contained in:
parent
1db4afac6a
commit
0489489322
@ -678,11 +678,17 @@ void cv::gpu::GpuMat::create(int _rows, int _cols, int _type)
|
|||||||
size_t esz = elemSize();
|
size_t esz = elemSize();
|
||||||
|
|
||||||
void* devPtr;
|
void* devPtr;
|
||||||
cudaSafeCall( cudaMallocPitch(&devPtr, &step, esz * cols, rows) );
|
|
||||||
|
|
||||||
// Single row must be continuous
|
if (rows > 1 && cols > 1)
|
||||||
if (rows == 1)
|
{
|
||||||
|
cudaSafeCall( cudaMallocPitch(&devPtr, &step, esz * cols, rows) );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Single row or single column must be continuous
|
||||||
|
cudaSafeCall( cudaMalloc(&devPtr, esz * cols * rows) );
|
||||||
step = esz * cols;
|
step = esz * cols;
|
||||||
|
}
|
||||||
|
|
||||||
if (esz * cols == step)
|
if (esz * cols == step)
|
||||||
flags |= Mat::CONTINUOUS_FLAG;
|
flags |= Mat::CONTINUOUS_FLAG;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user