added OpenCL >= 1.1 detection code, in preparation of OpenCL 1.1 global offset parameter support
diff --git a/ocl.c b/ocl.c
index 5311557..e0aafb1 100644
--- a/ocl.c
+++ b/ocl.c
@@ -302,6 +302,19 @@ _clState *initCl(unsigned int gpu, char *name, size_t nameSize)
find = strstr(extensions, camo);
if (find)
clState->hasBitAlign = true;
+
+ /* Check for OpenCL >= 1.0 support, needed for global offset parameter usage. */
+ char * devoclver = malloc(1024);
+ const char * ocl10 = "OpenCL 1.0";
+
+ status = clGetDeviceInfo(devices[gpu], CL_DEVICE_VERSION, 1024, (void *)devoclver, NULL);
+ if (status != CL_SUCCESS) {
+ applog(LOG_ERR, "Error: Failed to clGetDeviceInfo when trying to get CL_DEVICE_VERSION");
+ return NULL;
+ }
+ find = strstr(devoclver, ocl10);
+ if !(find)
+ clState->hasOpenCL11plus = true;
status = clGetDeviceInfo(devices[gpu], CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT, sizeof(cl_uint), (void *)&clState->preferred_vwidth, NULL);
if (status != CL_SUCCESS) {
diff --git a/ocl.h b/ocl.h
index d52bfce..ccab8b8 100644
--- a/ocl.h
+++ b/ocl.h
@@ -18,6 +18,7 @@ typedef struct {
cl_program program;
cl_mem outputBuffer;
bool hasBitAlign;
+ bool hasOpenCL11plus;
cl_uint preferred_vwidth;
size_t max_work_size;
size_t work_size;