From d356d2bea1a5c0012bf6ef746a90f86b2076d9c2 Mon Sep 17 00:00:00 2001 From: David Phillips Date: Sat, 18 Feb 2017 00:48:16 +1300 Subject: Add macro to set CL kernel source directory This will future-proof the software for installation to system roots, where the executable isn't being run in the source tree. --- cl/mandelbrot.cl | 25 +++++++++++++++++++++++++ config.mk | 2 +- fractal-gen.c | 2 +- mandelbrot.cl | 25 ------------------------- 4 files changed, 27 insertions(+), 27 deletions(-) create mode 100644 cl/mandelbrot.cl delete mode 100644 mandelbrot.cl diff --git a/cl/mandelbrot.cl b/cl/mandelbrot.cl new file mode 100644 index 0000000..2652108 --- /dev/null +++ b/cl/mandelbrot.cl @@ -0,0 +1,25 @@ +__kernel void fractal_gen( + __global unsigned char *buffer, + const unsigned int size, + const unsigned int iterations) +{ + unsigned int x = get_global_id(0); + unsigned int y = get_global_id(1); + unsigned int i = 0; + + float a = -2.5+(((float)x)/(float)size)*3.5; + float b = -1.75+(((float)y)/(float)size)*3.5; + + float2 z = (0.0, 0.0); + + for (i = 0; i < iterations; i++) { + // if abs(z) > 2 + if (z.x*z.x + z.y*z.y > 4) + break; + + float oldx = z.x; + z.x = z.x*z.x - z.y*z.y + a; + z.y = 2*oldx*z.y + b; + } + buffer[(size*y)+x] = (i*255)/iterations; +} diff --git a/config.mk b/config.mk index 2c4b751..5b068e5 100644 --- a/config.mk +++ b/config.mk @@ -1,2 +1,2 @@ -CFLAGS += -I/usr/include/CL/ +CFLAGS += -I/usr/include/CL/ -DCL_SRC_DIR=\"./cl/\" LDFLAGS += -lOpenCL diff --git a/fractal-gen.c b/fractal-gen.c index 91a2f18..60b27e3 100644 --- a/fractal-gen.c +++ b/fractal-gen.c @@ -14,7 +14,7 @@ int run(unsigned int size, unsigned int iterations) fprintf(stderr, "Done.\n"); fprintf(stderr, "Loading kernel source from file... "); - if (tramp_load_kernel("mandelbrot.cl")) { + if (tramp_load_kernel(CL_SRC_DIR"mandelbrot.cl")) { fprintf(stderr, "Failed.\n"); return 1; } diff --git a/mandelbrot.cl b/mandelbrot.cl deleted file mode 100644 index 2652108..0000000 --- a/mandelbrot.cl +++ /dev/null @@ -1,25 +0,0 @@ -__kernel void fractal_gen( - __global unsigned char *buffer, - const unsigned int size, - const unsigned int iterations) -{ - unsigned int x = get_global_id(0); - unsigned int y = get_global_id(1); - unsigned int i = 0; - - float a = -2.5+(((float)x)/(float)size)*3.5; - float b = -1.75+(((float)y)/(float)size)*3.5; - - float2 z = (0.0, 0.0); - - for (i = 0; i < iterations; i++) { - // if abs(z) > 2 - if (z.x*z.x + z.y*z.y > 4) - break; - - float oldx = z.x; - z.x = z.x*z.x - z.y*z.y + a; - z.y = 2*oldx*z.y + b; - } - buffer[(size*y)+x] = (i*255)/iterations; -} -- cgit v1.1