diff --git a/com.amd.aparapi.jni/src/cpp/aparapi.cpp b/com.amd.aparapi.jni/src/cpp/aparapi.cpp index d58632921e6b4eca267208c472bb0b77e56e12d2..29fa4c27e127e339e6f470cbeda81d866417a140 100644 --- a/com.amd.aparapi.jni/src/cpp/aparapi.cpp +++ b/com.amd.aparapi.jni/src/cpp/aparapi.cpp @@ -447,6 +447,15 @@ class JNIContext{ status = clGetDeviceIDs(platforms[i], deviceType, 0, NULL, &deviceIdc); // now check if this platform supports the requested device type (GPU or CPU) if (status == CL_SUCCESS && deviceIdc >0 ){ + if (deviceIdc >1){ + if (isVerbose()){ + fprintf(stderr, "Warning attempt to use %d devices\n", deviceIdc); + } + deviceIdc = 1; // Hack to work around issue #18 (multiple device error) + if (isVerbose()){ + fprintf(stderr, "Locking deviceIdc to %d to work around issue #18\n", deviceIdc); + } + } platform = platforms[i]; if (isVerbose()){ fprintf(stderr, "platform %s supports requested device type\n", platformVendorName);