mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-07-18 14:14:53 -04:00
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:
@ -485,8 +485,8 @@ public:
|
||||
"\n"
|
||||
"void CircleTrans1Trans(real_t a, real_t b, real_t x, real_t y, real_t* x1, real_t* y1)\n"
|
||||
"{\n"
|
||||
" *x1 = (x - a) * T(0.5) + a;\n"
|
||||
" *y1 = (y - b) * T(0.5) + b;\n"
|
||||
" *x1 = (x - a) * (real_t)(0.5) + a;\n"
|
||||
" *y1 = (y - b) * (real_t)(0.5) + b;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"void CircleTrans1CircleR(real_t mx, real_t my, real_t sc, real_t seed, real_t dens, real_t* ux, real_t* vy, uint2* mwc)\n"
|
||||
@ -498,10 +498,10 @@ public:
|
||||
" {\n"
|
||||
" x = fabs(mx) * (1 - 2 * MwcNext01(mwc));\n"
|
||||
" y = fabs(my) * (1 - 2 * MwcNext01(mwc));\n"
|
||||
" m = (int)floor(T(0.5) * x / sc);\n"
|
||||
" n = (int)floor(T(0.5) * y / sc);\n"
|
||||
" m = (int)floor((real_t)(0.5) * x / sc);\n"
|
||||
" n = (int)floor((real_t)(0.5) * y / sc);\n"
|
||||
" alpha = M_2PI * MwcNext01(mwc);\n"
|
||||
" u = T(0.3) + T(0.7) * CircleTrans1DiscreteNoise2(m + 10, n + 3);\n"
|
||||
" u = (real_t)(0.3) + (real_t)(0.7) * CircleTrans1DiscreteNoise2(m + 10, n + 3);\n"
|
||||
" x = u * cos(alpha);\n"
|
||||
" y = u * sin(alpha);\n"
|
||||
"\n"
|
||||
|
Reference in New Issue
Block a user