@Override public void simpleUpdate(float tpf) { //call kernel to test if it is still working if (!failed) { try { kernel.Run1NoEvent(clQueue, new Kernel.WorkSize(1), buffer, 1.0f); } catch (OpenCLException ex) { LOG.log(Level.SEVERE, "Kernel call not working anymore", ex); failed = true; statusText.setText("Failed"); } } } }
Kernel.WorkSize ws = new Kernel.WorkSize(count);
testMatrix4fKernel1.Run1NoEvent(clQueue, new Kernel.WorkSize(1), m1, buffer); ByteBuffer bb = buffer.map(clQueue, MappingAccess.MAP_READ_ONLY); if (bb.get() == 0) { testMatrix4fKernel2.Run1NoEvent(clQueue, new Kernel.WorkSize(1), m1, m1.determinant(), m1.transpose(), m1.adjoint(), buffer); bb = buffer.map(clQueue, MappingAccess.MAP_READ_ONLY); if (bb.get() == 0) {
testMatrix3fKernel1.Run1NoEvent(clQueue, new Kernel.WorkSize(1), buffer); ByteBuffer bb = buffer.map(clQueue, MappingAccess.MAP_READ_ONLY); if (bb.get() == 0) { Matrix3f m2 = new Matrix3f(-5.2f, 0.757f, 2.01f, 12.0f, -6, 2, 0.01f, 9, 2.255f); Matrix3f mRes = new Matrix3f(-31.68f, -165.703f, 1.51f, 12.468f, 62.4f, 86, -83.99f, 2.6f, -13.025f); testMatrix3fKernel2.Run1NoEvent(clQueue, new Kernel.WorkSize(1), m1, -2.0f, m2, mRes, buffer); bb = buffer.map(clQueue, MappingAccess.MAP_READ_ONLY); if (bb.get() == 0) {
Buffer buffer = clContext.createBuffer(size*4); float value = 5; Event event = kernel.Run1(clQueue, new com.jme3.opencl.Kernel.WorkSize(buffer.getSize() / 4), buffer, value); event.waitForFinished();
private void updateOpenCL(float tpf) { //aquire resource texCL.acquireImageForSharingNoEvent(clQueue); //no need to wait for the returned event, since the kernel implicitely waits for it (same command queue) //execute kernel Kernel.WorkSize ws = new Kernel.WorkSize(settings.getWidth(), settings.getHeight()); kernel.Run1NoEvent(clQueue, ws, texCL, C, 16); //release resource texCL.releaseImageForSharingNoEvent(clQueue); }
private void initOpenCL2() { //bind vertex buffer to OpenCL VertexBuffer vb = geom.getMesh().getBuffer(VertexBuffer.Type.Position); buffer = clContext.bindVertexBuffer(vb, MemoryAccess.READ_WRITE).register(); ws = new com.jme3.opencl.Kernel.WorkSize(geom.getMesh().getVertexCount()); } private void updateOpenCL(float tpf) {