mirror of
https://github.com/opencv/opencv.git
synced 2025-06-12 12:22:51 +08:00
core(ocl): Don't query image formats when none exist
clGetSupportedImageFormats returns CL_INVALID_VALUE if called with num_entries 0 and a non-NULL image_formats pointer so let's not do that.
This commit is contained in:
parent
da6ad1c640
commit
ad16c243ca
@ -6445,16 +6445,19 @@ struct Image2D::Impl
|
|||||||
CL_MEM_OBJECT_IMAGE2D, numFormats,
|
CL_MEM_OBJECT_IMAGE2D, numFormats,
|
||||||
NULL, &numFormats);
|
NULL, &numFormats);
|
||||||
CV_OCL_DBG_CHECK_RESULT(err, "clGetSupportedImageFormats(CL_MEM_OBJECT_IMAGE2D, NULL)");
|
CV_OCL_DBG_CHECK_RESULT(err, "clGetSupportedImageFormats(CL_MEM_OBJECT_IMAGE2D, NULL)");
|
||||||
AutoBuffer<cl_image_format> formats(numFormats);
|
if (numFormats > 0)
|
||||||
err = clGetSupportedImageFormats(context, CL_MEM_READ_WRITE,
|
|
||||||
CL_MEM_OBJECT_IMAGE2D, numFormats,
|
|
||||||
formats.data(), NULL);
|
|
||||||
CV_OCL_DBG_CHECK_RESULT(err, "clGetSupportedImageFormats(CL_MEM_OBJECT_IMAGE2D, formats)");
|
|
||||||
for (cl_uint i = 0; i < numFormats; ++i)
|
|
||||||
{
|
{
|
||||||
if (!memcmp(&formats[i], &format, sizeof(format)))
|
AutoBuffer<cl_image_format> formats(numFormats);
|
||||||
|
err = clGetSupportedImageFormats(context, CL_MEM_READ_WRITE,
|
||||||
|
CL_MEM_OBJECT_IMAGE2D, numFormats,
|
||||||
|
formats.data(), NULL);
|
||||||
|
CV_OCL_DBG_CHECK_RESULT(err, "clGetSupportedImageFormats(CL_MEM_OBJECT_IMAGE2D, formats)");
|
||||||
|
for (cl_uint i = 0; i < numFormats; ++i)
|
||||||
{
|
{
|
||||||
return true;
|
if (!memcmp(&formats[i], &format, sizeof(format)))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user