wrong OpenCL version detected
I have built opencv_test_ocl successfully with OpenCV 2.4.7 under Linux Ubuntu 13.10. I have a NVIDIA GeForce 8600M GT. This card has OpenCL 1.1 and is detected as such by other programs like luxmark in the Phoronix test suite. When I run opencv_test_ocl it says the card is not supported. The relevant check code appears in modules/ocl/src/clcontext.cpp
// check for OpenCL 1.1
if (devices[i]->deviceVersionMajor < 1 ||
(devices[i]->deviceVersionMajor == 1 && devices[i]->deviceVersionMinor < 1))
{
std::cerr << "Skip unsupported version of OpenCL device: " << devices[i]->deviceName
<< "(" << devices[i]->platform->platformName << ")" << std::endl;
continue; // unsupported version of device, skip it
}
That code should approve a major.minor of 1.1. I added the major and minor to the cerr print statement and found out that minor is 0 ! So it thinks the implementation is 1.0. I haven't done any kind of debug trace as I'm a bit clumsy about setting up that sort of thing. Because other apps do detect the implementation as 1.1, I think this is an OpenCV error somewhere. A parsing error maybe? Bad iteration through a list of multiple devices? Just guessing, and wondering if this rings any bells for anyone.
Where can I find the sample ocl speed test that you mentioned in this post? I am using OpenCV 3.0 beta.