clBuildProgram hangs on some plateform - how to retrieve the CL capabilities?

Hi Folks,

My problem started with an hangs of the “clBuildProgram” function on specific systems:
It occurs only on Win 8 (or greater) with the Intel HD Graphic devices (3000, 4000)[drivers up to date] while every thing works well on other systems.
The version of OpenCL is 1.1 and is supposed to be supported by the graphic chipsets.

I am currently reaching the point that make me wonder how to test the device in order to avoid that hang (I guess due to some driver problems).

So far I do the following:


// Check device availability & capability
{
  cl_bool isDeviceAvailable, isDeviceCompilerAvailale;
  if (!GetDeviceInfo(deviceIDs[deviceIndex], CL_DEVICE_AVAILABLE, isDeviceAvailable) || isDeviceAvailable != CL_TRUE ||
      !GetDeviceInfo(deviceIDs[deviceIndex], CL_DEVICE_COMPILER_AVAILABLE, isDeviceCompilerAvailale) || isDeviceCompilerAvailale != CL_TRUE)
    {
      if (verbose) Log::Warning("%s::%d OpenCL device %d::%d not available.", __FUNCTION__, __LINE__, platformIndex, deviceIndex);
      continue;
    }

  cl_device_exec_capabilities executionCapabilities;
  if (GetDeviceInfo(deviceIDs[deviceIndex], CL_DEVICE_EXECUTION_CAPABILITIES, executionCapabilities) || !(executionCapabilities & CL_EXEC_KERNEL))
    {
      if (verbose) Log::Warning("%s::%d OpenCL device %d::%d has not the required execution capabilities.", __FUNCTION__, __LINE__, platformIndex, deviceIndex);
      continue;
    }
}

None of this function tell me that the device has a lack of OpenCL support.
I am working on legacy code, but I though of the “Extensions” and “clImages” support but none seems to be used.

What tells me that I am missing something is that with the exact same configuration, the software GPU-Z consider the same device as unavailable (Do I miss some tests?)

PS: It is very difficult for me to make tests as the problems cannot be reproduced on my own devices.

Thank you very much.
Kind regards,
M. J-L