aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/mbien/opencl
diff options
context:
space:
mode:
authorMichael Bien <[email protected]>2010-03-01 02:13:49 +0100
committerMichael Bien <[email protected]>2010-03-01 02:13:49 +0100
commit63a97ef2af4e97ec077d48edd62c41dc2d17eb14 (patch)
treed17ccf52ad318717d7d2cf575bd2cce133190d82 /src/com/mbien/opencl
parenta0bc08e7f90733d291bd730a3fcde069602f99e8 (diff)
added put/setNullArg(int size) for setting NULL ranges as kernel argument to CLKernel.
added missing flush() to CLCommandQueue. added CLMemory.getCapacity() utility method.
Diffstat (limited to 'src/com/mbien/opencl')
-rw-r--r--src/com/mbien/opencl/CLCommandQueue.java9
-rw-r--r--src/com/mbien/opencl/CLKernel.java10
-rw-r--r--src/com/mbien/opencl/CLMemory.java12
3 files changed, 30 insertions, 1 deletions
diff --git a/src/com/mbien/opencl/CLCommandQueue.java b/src/com/mbien/opencl/CLCommandQueue.java
index 0504233..a33593a 100644
--- a/src/com/mbien/opencl/CLCommandQueue.java
+++ b/src/com/mbien/opencl/CLCommandQueue.java
@@ -990,6 +990,15 @@ public class CLCommandQueue extends CLObject implements CLResource {
}
/**
+ * 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.
*/
public boolean isProfilingEnabled() {
diff --git a/src/com/mbien/opencl/CLKernel.java b/src/com/mbien/opencl/CLKernel.java
index a50478a..696007b 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 84aeb6b..275f39f 100644
--- a/src/com/mbien/opencl/CLMemory.java
+++ b/src/com/mbien/opencl/CLMemory.java
@@ -76,7 +76,17 @@ public abstract class CLMemory <B extends Buffer> 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) {