From: <sp...@us...> - 2010-09-30 17:52:22
|
Revision: 3420 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3420&view=rev Author: spasi Date: 2010-09-30 17:52:16 +0000 (Thu, 30 Sep 2010) Log Message: ----------- Added checks for CL 1.1 stuff. Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/test/opencl/HelloOpenCL.java Modified: trunk/LWJGL/src/java/org/lwjgl/test/opencl/HelloOpenCL.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/test/opencl/HelloOpenCL.java 2010-09-30 17:21:50 UTC (rev 3419) +++ trunk/LWJGL/src/java/org/lwjgl/test/opencl/HelloOpenCL.java 2010-09-30 17:52:16 UTC (rev 3420) @@ -35,6 +35,7 @@ import org.lwjgl.LWJGLException; import org.lwjgl.PointerBuffer; import org.lwjgl.opencl.*; +import org.lwjgl.opencl.api.CLBufferRegion; import java.nio.ByteBuffer; import java.util.List; @@ -70,8 +71,10 @@ final List<CLDevice> devices = platform.getDevices(CL_DEVICE_TYPE_ALL); for ( CLDevice device : devices ) { + final CLDeviceCapabilities caps = CLCapabilities.getDeviceCapabilities(device); + System.out.println("\n\tNEW DEVICE: " + device.getPointer()); - System.out.println(CLCapabilities.getDeviceCapabilities(device)); + System.out.println(caps); System.out.println("\t-------------------------"); System.out.println("\tCL_DEVICE_TYPE = " + device.getInfoInt(CL_DEVICE_TYPE)); @@ -91,7 +94,8 @@ printDeviceInfo(device, "CL_DRIVER_VERSION", CL_DRIVER_VERSION); printDeviceInfo(device, "CL_DEVICE_PROFILE", CL_DEVICE_PROFILE); printDeviceInfo(device, "CL_DEVICE_VERSION", CL_DEVICE_VERSION); - printDeviceInfo(device, "CL_DEVICE_OPENCL_C_VERSION", CL_DEVICE_OPENCL_C_VERSION); + if ( caps.OpenCL11 ) + printDeviceInfo(device, "CL_DEVICE_OPENCL_C_VERSION", CL_DEVICE_OPENCL_C_VERSION); CLContext context = clCreateContext(ctxProps, device, new CLContextCallback() { protected void handleMessage(final String errinfo, final ByteBuffer private_info) { @@ -101,29 +105,29 @@ CLMem buffer = clCreateBuffer(context, CL_MEM_READ_ONLY, 128, null); - clSetMemObjectDestructorCallback(buffer, new CLMemObjectDestructorCallback() { - protected void handleMessage(final long memobj) { - System.out.println("FIRST Buffer destructed: " + memobj); - } - }); + if ( caps.OpenCL11 ) { + clSetMemObjectDestructorCallback(buffer, new CLMemObjectDestructorCallback() { + protected void handleMessage(final long memobj) { + System.out.println("FIRST Buffer destructed: " + memobj); + } + }); - clSetMemObjectDestructorCallback(buffer, new CLMemObjectDestructorCallback() { - protected void handleMessage(final long memobj) { - System.out.println("SECOND Buffer destructed: " + memobj); - } - }); + clSetMemObjectDestructorCallback(buffer, new CLMemObjectDestructorCallback() { + protected void handleMessage(final long memobj) { + System.out.println("SECOND Buffer destructed: " + memobj); + } + }); + } - ByteBuffer bufferCreateInfo = BufferUtils.createByteBuffer(2 * PointerBuffer.getPointerSize()); - PointerBuffer.put(bufferCreateInfo, 0); - PointerBuffer.put(bufferCreateInfo, 64); - bufferCreateInfo.flip(); - CLMem subbuffer = clCreateSubBuffer(buffer, CL10.CL_MEM_READ_ONLY, CL11.CL_BUFFER_CREATE_TYPE_REGION, bufferCreateInfo, null); + if ( caps.OpenCL11 ) { + CLMem subbuffer = buffer.createSubBuffer(CL_MEM_READ_ONLY, CL_BUFFER_CREATE_TYPE_REGION, new CLBufferRegion(0, 64), null); - clSetMemObjectDestructorCallback(subbuffer, new CLMemObjectDestructorCallback() { - protected void handleMessage(final long memobj) { - System.out.println("Sub Buffer destructed: " + memobj); - } - }); + clSetMemObjectDestructorCallback(subbuffer, new CLMemObjectDestructorCallback() { + protected void handleMessage(final long memobj) { + System.out.println("Sub Buffer destructed: " + memobj); + } + }); + } clRetainMemObject(buffer); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |