diff --git a/Source/EmberCL/FinalAccumOpenCLKernelCreator.cpp b/Source/EmberCL/FinalAccumOpenCLKernelCreator.cpp index b27e7eb..4217047 100644 --- a/Source/EmberCL/FinalAccumOpenCLKernelCreator.cpp +++ b/Source/EmberCL/FinalAccumOpenCLKernelCreator.cpp @@ -377,7 +377,7 @@ string FinalAccumOpenCLKernelCreator::CreateGammaCorrectionFunctionString(boo os << "\n" - " correctedChannels[rgbi] = (" << dataType << ")clamp(a, 0.0f, 255.0f);\n" + " correctedChannels[rgbi] = (" << dataType << ")clamp(a, T(0.0), T(255.0));\n" " }\n" "\n"; diff --git a/Source/EmberCL/OpenCLWrapper.cpp b/Source/EmberCL/OpenCLWrapper.cpp index 1576c7b..e1cf8ce 100644 --- a/Source/EmberCL/OpenCLWrapper.cpp +++ b/Source/EmberCL/OpenCLWrapper.cpp @@ -1221,10 +1221,13 @@ bool OpenCLWrapper::CreateSPK(const string& name, const string& program, const s { if (m_Init) { + std::string precisionDef(doublePrecision ? "#define T(v) (double)(v)\n" : "#define T(v) (float)(v)\n"); + std::string p(precisionDef + program); + cl_int err; spk.m_Name = name; - spk.m_Source = cl::Program::Sources(1, std::make_pair(program.c_str(), program.length() + 1)); + spk.m_Source = cl::Program::Sources(1, std::make_pair(p.c_str(), p.length() + 1)); spk.m_Program = cl::Program(m_Context, spk.m_Source); if (doublePrecision)