For some specific images, a buffer cannot be read from the graphics card (invalid command queue error) and the library crashes.
E.g. the following 11 images out of 2000 tested images of the MIRFLICKR-25000 dataset http://press.liacs.nl/mirflickr/ reproducibly lead to this error: im1572.jpg, im2768.jpg, im3721.jpg, im10212.jpg, im10571.jpg, im11872.jpg, im12630.jpg, im22165.jpg, im361.jpg, im7248.jpg, im7940.jpg
The call of the clEnqueueReadBuffer method in CSurfCL.cpp line 1177 returns -36 (CL_INVALID_COMMAND_QUEUE).
[...]
// Wieviele Punkte wurden gefunden?
ErrorCode = clEnqueueReadBuffer(m_CommandQueue, m_IPointsCountBuff, CL_TRUE, 0,
sizeof(cl_uint) * m_Height, m_IPointsCount, 0, NULL, NULL);
[...]
Intel Xenon 2.4GHz
NVIDIA Quadro FX 580 (NVIDIA drivers version 270.71)
Windows XP SP3
Visual Studio 2008
OpenCV 2.3.0
NVIDIA CUDA Toolkit 4.0.17
NVIDIA CUDA SDK 4.0.19
I forgot to mention the call which leads to the execution of CSurfCL.cpp:
[...]
CSurfCL *surf = new CSurfCL();
cv::Mat img = cv::imread("im1572.jpg");
surf->DebugResizeBuffer(img.cols, img.rows);
surf->ScanImage24Bit(img.cols, img.rows, img.data, 0.0004f, 4, 2, false);
[...]