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. |