clGetDeviceInfo() issue when fetching CL_DEVICE_MAX_WORK_ITEM_SIZES

Seems to me that there exist an issue with 3.0-beta1 driver on 64-bit Linux: when clGetDeviceInfo() info called with CL_DEVICE_MAX_WORK_ITEM_SIZES as second argument, seem like upper half of returned values is not set to zero bits. To verify this issue, one could add following code in OpenCL/common/src/oclUtils.cpp, after line 156:

printf("  CL_DEVICE_MAX_WORK_ITEM_SIZES:\t%lu / %lu / %lu \n", workitem_size[0], workitem_size[1], workitem_size[2]);

On 64-bit Linux, size_t is defined as unsigned long, so using “%lu” should be correct, instead of “%u” as in line 156 of this file. After making this change, one should re-compile the SDK samples, and it could be seen in oclDeviceQuery sample printout that values returned by clGetDeviceInfo() contain garbage in theirs upper 32 bits.

BTW, this issue was already reported by apaehler on this thread (see the first page of the thread), but nobody seem to replied…