mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 15:53:03 +04:00
ocl: validate arguments in KernelArgs constructor
- don't use undefined flag=0. It should be CONSTANT instead. - don't allow 'UMat* m=NULL' argument (except LOCAL/CONSTANT flags). This case is not handled well to provide NULL __global pointers. It is better to use '-D' macro defines instead (at least for performance)
This commit is contained in:
@@ -5814,7 +5814,7 @@ static bool ocl_warpTransform_cols4(InputArray _src, OutputArray _dst, InputArra
|
||||
matM.convertTo(M0, CV_32F);
|
||||
|
||||
k.args(ocl::KernelArg::ReadOnly(src), ocl::KernelArg::WriteOnly(dst), ocl::KernelArg::PtrReadOnly(M0),
|
||||
ocl::KernelArg(0, 0, 0, 0, borderBuf, CV_ELEM_SIZE(sctype)));
|
||||
ocl::KernelArg(ocl::KernelArg::CONSTANT, 0, 0, 0, borderBuf, CV_ELEM_SIZE(sctype)));
|
||||
|
||||
size_t globalThreads[2];
|
||||
globalThreads[0] = (size_t)(dst.cols / 4);
|
||||
@@ -5913,7 +5913,7 @@ static bool ocl_warpTransform(InputArray _src, OutputArray _dst, InputArray _M0,
|
||||
matM.convertTo(M0, doubleSupport ? CV_64F : CV_32F);
|
||||
|
||||
k.args(ocl::KernelArg::ReadOnly(src), ocl::KernelArg::WriteOnly(dst), ocl::KernelArg::PtrReadOnly(M0),
|
||||
ocl::KernelArg(0, 0, 0, 0, borderBuf, CV_ELEM_SIZE(sctype)));
|
||||
ocl::KernelArg(ocl::KernelArg::CONSTANT, 0, 0, 0, borderBuf, CV_ELEM_SIZE(sctype)));
|
||||
|
||||
size_t globalThreads[2] = { (size_t)dst.cols, ((size_t)dst.rows + rowsPerWI - 1) / rowsPerWI };
|
||||
return k.run(2, globalThreads, NULL, false);
|
||||
|
||||
Reference in New Issue
Block a user