|
From: <sp...@us...> - 2010-12-06 15:58:18
|
Revision: 3461
http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3461&view=rev
Author: spasi
Date: 2010-12-06 15:58:11 +0000 (Mon, 06 Dec 2010)
Log Message:
-----------
Added clSetKernelArg support for CLObject and __local arguments.
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/opencl/CLKernel.java
trunk/LWJGL/src/java/org/lwjgl/opencl/InfoUtilFactory.java
trunk/LWJGL/src/templates/org/lwjgl/opencl/CL10.java
Modified: trunk/LWJGL/src/java/org/lwjgl/opencl/CLKernel.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opencl/CLKernel.java 2010-11-29 18:25:28 UTC (rev 3460)
+++ trunk/LWJGL/src/java/org/lwjgl/opencl/CLKernel.java 2010-12-06 15:58:11 UTC (rev 3461)
@@ -31,8 +31,6 @@
*/
package org.lwjgl.opencl;
-import org.lwjgl.PointerWrapper;
-
/**
* This class is a wrapper around a cl_kernel pointer.
*
@@ -145,11 +143,24 @@
*
* @return this CLKernel object
*/
- public CLKernel setArg(final int index, final PointerWrapper value) {
+ public CLKernel setArg(final int index, final CLObject value) {
util.setArg(this, index, value);
return this;
}
+ /**
+ * Sets the size of a __local kernel argument at the specified index.
+ *
+ * @param index the argument index
+ * @param size the argument size
+ *
+ * @return this CLKernel object
+ */
+ public CLKernel setArgSize(final int index, final long size) {
+ util.setArgSize(this, index, size);
+ return this;
+ }
+
// clGetKernelInfo methods
/**
@@ -225,8 +236,10 @@
void setArg(CLKernel kernel, int index, double value);
- void setArg(CLKernel kernel, int index, PointerWrapper pointer);
+ void setArg(CLKernel kernel, int index, CLObject pointer);
+ void setArgSize(CLKernel kernel, int index, long size);
+
long getWorkGroupInfoSize(CLKernel kernel, CLDevice device, int param_name);
long[] getWorkGroupInfoSizeArray(CLKernel kernel, CLDevice device, int param_name);
Modified: trunk/LWJGL/src/java/org/lwjgl/opencl/InfoUtilFactory.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opencl/InfoUtilFactory.java 2010-11-29 18:25:28 UTC (rev 3460)
+++ trunk/LWJGL/src/java/org/lwjgl/opencl/InfoUtilFactory.java 2010-12-06 15:58:11 UTC (rev 3461)
@@ -230,10 +230,14 @@
clSetKernelArg(kernel, index, 8, APIUtil.getBufferDouble().put(0, value));
}
- public void setArg(final CLKernel kernel, final int index, final PointerWrapper pointer) {
- clSetKernelArg(kernel, index, PointerBuffer.getPointerSize(), APIUtil.getBufferPointer().put(0, pointer).getBuffer());
+ public void setArg(final CLKernel kernel, final int index, final CLObject value) {
+ clSetKernelArg(kernel, index, value);
}
+ public void setArgSize(final CLKernel kernel, final int index, final long size) {
+ clSetKernelArg(kernel, index, size);
+ }
+
protected int getInfo(final CLKernel kernel, final int param_name, final ByteBuffer param_value, final PointerBuffer param_value_size_ret) {
return clGetKernelInfo(kernel, param_name, param_value, param_value_size_ret);
}
Modified: trunk/LWJGL/src/templates/org/lwjgl/opencl/CL10.java
===================================================================
--- trunk/LWJGL/src/templates/org/lwjgl/opencl/CL10.java 2010-11-29 18:25:28 UTC (rev 3460)
+++ trunk/LWJGL/src/templates/org/lwjgl/opencl/CL10.java 2010-12-06 15:58:11 UTC (rev 3461)
@@ -979,8 +979,8 @@
@cl_int
int clSetKernelArg(@PointerWrapper("cl_kernel") CLKernel kernel,
@cl_uint int arg_index,
- @AutoSize(value = "arg_value", canBeNull = true) @size_t long arg_size,
- @Check(canBeNull = true) @Const
+ @AutoSize("arg_value") @size_t long arg_size,
+ @Const
@cl_byte
@cl_short
@cl_int
@@ -988,17 +988,33 @@
@cl_float
@cl_double Buffer arg_value);
- // This is used by CLKernelImpl. Assumes arg_value.position() == 0.
+ @Alternate("clSetKernelArg")
+ @cl_int
+ int clSetKernelArg(@PointerWrapper("cl_kernel") CLKernel kernel,
+ @cl_uint int arg_index,
+ @Constant("PointerBuffer.getPointerSize()") @size_t long arg_size,
+ @Check(canBeNull = true) @Const
+ @Constant(value = "APIUtil.getBufferPointer().put(0, arg_value == null ? 0 : arg_value.getPointer()).getBuffer(), 0", keepParam = true) CLObject arg_value);
+ /** Sets the size of a __local kernel argument at the specified index. */
@Alternate("clSetKernelArg")
- @Private
@cl_int
int clSetKernelArg2(@PointerWrapper("cl_kernel") CLKernel kernel,
@cl_uint int arg_index,
@size_t long arg_size,
- @Check(value = "1") @Const Buffer arg_value);
+ @Constant("null, 0") Buffer arg_value);
+ // This is used by CLKernelUtil. Assumes arg_value.position() == 0.
+
+ @Alternate("clSetKernelArg")
+ @Private
@cl_int
+ int clSetKernelArg3(@PointerWrapper("cl_kernel") CLKernel kernel,
+ @cl_uint int arg_index,
+ @size_t long arg_size,
+ @Constant(value = "arg_value, 0", keepParam = true) Buffer arg_value);
+
+ @cl_int
int clGetKernelInfo(@PointerWrapper("cl_kernel") CLKernel kernel,
@NativeType("cl_kernel_info") int param_name,
@AutoSize(value = "param_value", canBeNull = true) @size_t long param_value_size,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|