summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--balls.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/balls.c b/balls.c
index 486ab98..3365d4a 100644
--- a/balls.c
+++ b/balls.c
@@ -205,7 +205,26 @@ configureSharedData(void) {
void
execKernel(void) {
- // TODO
+ int err;
+ cl_event kernelEvent;
+
+ glFinish();
+
+ err = clEnqueueAcquireGLObjects(queue, nelem(memObjs), memObjs, 0, NULL, NULL);
+ if (err < 0)
+ sysfatal("Couldn't acquire the GL objects.\n");
+
+ err = clEnqueueTask(queue, kernel, 0, NULL, &kernelEvent);
+ if (err < 0)
+ sysfatal("Couldn't enqueue the kernel.\n");
+
+ err = clWaitForEvents(1, &kernelEvent);
+ if (err < 0)
+ sysfatal("Couldn't enqueue the kernel.\n");
+
+ clEnqueueReleaseGLObjects(queue, nelem(memObjs), memObjs, 0, NULL, NULL);
+ clFinish(queue);
+ clReleaseEvent(kernelEvent);
}
void