summaryrefslogtreecommitdiffstats
path: root/balls.c
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-10-30 13:11:16 -0400
committerSam Anthony <sam@samanthony.xyz>2024-10-30 13:11:16 -0400
commit06c70ebee487f37cdbceba682578ae52062b1f6e (patch)
treedb3e03eede49eae93085fc4ba35e3b417f5ec29b /balls.c
parent2977d4fe128b2bd3ae4f6449cc102a46004fcfd9 (diff)
downloadballs-06c70ebee487f37cdbceba682578ae52062b1f6e.zip
createKernel()
Diffstat (limited to 'balls.c')
-rw-r--r--balls.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/balls.c b/balls.c
index b1c12d5..f244917 100644
--- a/balls.c
+++ b/balls.c
@@ -37,6 +37,7 @@ const Rectangle bounds = { {-1.0, -1.0}, {1.0, 1.0} };
void initGL(int argc, char *argv[]);
void initCL(void);
+cl_kernel createKernel(cl_program prog, const char *kernelFunc);
void setPositions(void);
void setVelocities(void);
void setRadii(void);
@@ -194,22 +195,21 @@ initCL(void) {
sysfatal("Failed to create command queue.\n");
/* Create kernels. */
- /* TODO: extract helper. */
- moveKernel = clCreateKernel(prog, MOVE_KERNEL_FUNC, &err);
- if (err < 0)
- sysfatal("Failed to create kernel '%s': %d\n", MOVE_KERNEL_FUNC, err);
-
- collideWallsKernel = clCreateKernel(prog, COLLIDE_WALLS_KERNEL_FUNC, &err);
- if (err < 0)
- sysfatal("Failed to create kernel '%s': %d\n", COLLIDE_WALLS_KERNEL_FUNC, err);
+ moveKernel = createKernel(prog, MOVE_KERNEL_FUNC);
+ collideWallsKernel = createKernel(prog, COLLIDE_WALLS_KERNEL_FUNC);
+ collideBallsKernel = createKernel(prog, COLLIDE_BALLS_KERNEL_FUNC);
+ genVerticesKernel = createKernel(prog, GEN_VERTICES_KERNEL_FUNC);
+}
- collideBallsKernel = clCreateKernel(prog, COLLIDE_BALLS_KERNEL_FUNC, &err);
- if (err < 0)
- sysfatal("Failed to create kernel '%s': %d\n", COLLIDE_BALLS_KERNEL_FUNC, &err);
+cl_kernel
+createKernel(cl_program prog, const char *kernelFunc) {
+ cl_kernel kernel;
+ int err;
- genVerticesKernel = clCreateKernel(prog, GEN_VERTICES_KERNEL_FUNC, &err);
+ kernel = clCreateKernel(prog, kernelFunc, &err);
if (err < 0)
- sysfatal("Failed to create kernel '%s': %d\n", GEN_VERTICES_KERNEL_FUNC, err);
+ sysfatal("Failed to create kernel '%s': %d\n", kernelFunc, err);
+ return kernel;
}
void