This is commit of Simon Detheridge's pull request "osx-opencl" with a few modifications.

-If we change OpenCLWrapper to capture build log errors, we don't need to manually concat them in RendererCL because the overridden ErrorReport() function already concatenates the errors from both classes.

-Do not define T in OpenCL programs. We already have real_t to handle this.

-Do keep the casting to real_t. However this should not be necessary because there is a command line option to do this automatically which we already use: -cl-single-precision-constant. The only reason we do this is because the Apple OpenCL compiler does not follow the standard and obviously ignores this option. Absolutely awful.

-Fix a few improper casts in the CircleTrans1 and GlynnSim1 variations.

-Add an automated OpenCL program build tester to EmberTester, as well as a cast checker.
This commit is contained in:
mfeemster
2015-03-22 12:46:10 -07:00
parent fa6ec63447
commit ef01380e6d
8 changed files with 193 additions and 126 deletions

View File

@ -528,7 +528,7 @@ public:
return
"void GlynnSim1Circle(__constant real_t* radius1, __constant real_t* thickness, __constant real_t* x1, __constant real_t* y1, uint2* mwc, real_t* x, real_t* y)\n"
"{\n"
" real_t r = *radius1 * (*thickness + (T(1.0) - *thickness) * MwcNext01(mwc));\n"
" real_t r = *radius1 * (*thickness + ((real_t)(1.0) - *thickness) * MwcNext01(mwc));\n"
" real_t phi = M_2PI * MwcNext01(mwc);\n"
" real_t sinPhi = sin(phi);\n"
" real_t cosPhi = cos(phi);\n"