Ask Your Question

bvanevery's profile - activity

2013-11-22 19:13:09 -0600 asked a question 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.