diff --git a/OCLStream.cpp b/OCLStream.cpp index 50ad543..0ed4b8e 100644 --- a/OCLStream.cpp +++ b/OCLStream.cpp @@ -78,7 +78,18 @@ OCLStream::OCLStream(const unsigned int ARRAY_SIZE, const int device_index) // Check device can do double if (!device.getInfo()) throw std::runtime_error("Device does not support double precision, please use --float"); - program.build("-DTYPE=double"); + try + { + program.build("-DTYPE=double"); + } + catch (cl::Error& err) + { + if (err.err() == CL_BUILD_PROGRAM_FAILURE) + { + std::cout << program.getBuildInfo()[0].second << std::endl; + throw err; + } + } } else if (sizeof(T) == sizeof(float)) program.build("-DTYPE=float");