From 63a97ef2af4e97ec077d48edd62c41dc2d17eb14 Mon Sep 17 00:00:00 2001 From: Michael Bien Date: Mon, 1 Mar 2010 02:13:49 +0100 Subject: added put/setNullArg(int size) for setting NULL ranges as kernel argument to CLKernel. added missing flush() to CLCommandQueue. added CLMemory.getCapacity() utility method. --- src/com/mbien/opencl/CLCommandQueue.java | 9 +++++++++ src/com/mbien/opencl/CLKernel.java | 10 ++++++++++ src/com/mbien/opencl/CLMemory.java | 12 +++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/com/mbien/opencl/CLCommandQueue.java b/src/com/mbien/opencl/CLCommandQueue.java index 05042333..a33593ad 100644 --- a/src/com/mbien/opencl/CLCommandQueue.java +++ b/src/com/mbien/opencl/CLCommandQueue.java @@ -989,6 +989,15 @@ public class CLCommandQueue extends CLObject implements CLResource { return this; } + /** + * Calls {@native clFlush}. + */ + public CLCommandQueue flush() { + int ret = cl.clFlush(ID); + checkForError(ret, "can not flush command queue"); + return this; + } + /** * Returns true only when {@link Mode#PROFILING_MODE} has been enabled. */ diff --git a/src/com/mbien/opencl/CLKernel.java b/src/com/mbien/opencl/CLKernel.java index a50478aa..696007ba 100644 --- a/src/com/mbien/opencl/CLKernel.java +++ b/src/com/mbien/opencl/CLKernel.java @@ -82,6 +82,11 @@ public class CLKernel extends CLObject implements CLResource, Cloneable { return this; } + public CLKernel putNullArg(int size) { + setNullArg(argIndex++, size); + return this; + } + public CLKernel putArgs(CLMemory... values) { setArgs(argIndex, values); argIndex += values.length; @@ -126,6 +131,11 @@ public class CLKernel extends CLObject implements CLResource, Cloneable { return this; } + public CLKernel setNullArg(int argumentIndex, int size) { + setArgument(argumentIndex, size, null); + return this; + } + public CLKernel setArgs(CLMemory... values) { setArgs(0, values); return this; diff --git a/src/com/mbien/opencl/CLMemory.java b/src/com/mbien/opencl/CLMemory.java index 84aeb6b1..275f39ff 100644 --- a/src/com/mbien/opencl/CLMemory.java +++ b/src/com/mbien/opencl/CLMemory.java @@ -76,7 +76,17 @@ public abstract class CLMemory extends CLObject implements CL } /** - * Returns the size of the wrapped direct buffer in byte. + * Returns the capacity of the wrapped direct buffer or 0 if no buffer available. + */ + public int getCapacity() { + if(buffer == null) { + return 0; + } + return buffer.capacity(); + } + + /** + * Returns the size of the wrapped direct buffer in byte or 0 if no buffer available. */ public int getSize() { if(buffer == null) { -- cgit v1.2.3