Skip to content

Commit a768a18

Browse files
committed
JavaCL: more faster calls (enqueueBarrier, enqueueMarker, enqueueWaitForEvents)
1 parent 08c266b commit a768a18

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

Core/src/main/java/com/nativelibs4java/opencl/CLQueue.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,13 @@ public void flush() {
131131
/**
132132
* Enqueues a wait for a specific event or a list of events to complete before any future commands queued in the this queue are executed.
133133
*/
134-
public void enqueueWaitForEvents(CLEvent... events) {
135-
Pointer<cl_event> evts = CLEvent.to_cl_event_array(events);
136-
error(CL.clEnqueueWaitForEvents(getEntity(), evts == null ? 0 : (int)evts.getValidElements(), evts));
134+
public void enqueueWaitForEvents(CLEvent... eventsToWaitFor) {
135+
ReusablePointers ptrs = ReusablePointers.get();
136+
int[] eventsCount = new int[1];
137+
Pointer<cl_event> events = CLAbstractEntity.copyNonNullEntities(eventsToWaitFor, eventsCount, ptrs.events_in);
138+
if (events == null)
139+
return;
140+
error(CL.clEnqueueWaitForEvents(getPeer(getEntity()), eventsCount[0], getPeer(events)));
137141
}
138142

139143
/**
@@ -142,7 +146,7 @@ public void enqueueWaitForEvents(CLEvent... events) {
142146
* enqueueBarrier() is a synchronization point.
143147
*/
144148
public void enqueueBarrier() {
145-
error(CL.clEnqueueBarrier(getEntity()));
149+
error(CL.clEnqueueBarrier(getPeer(getEntity())));
146150
}
147151

148152
/**
@@ -151,8 +155,8 @@ public void enqueueBarrier() {
151155
* @return Event object that identifies this command and can be used to query or queue a wait for the command to complete.
152156
*/
153157
public CLEvent enqueueMarker() {
154-
Pointer<cl_event> eventOut = allocateTypedPointer(cl_event.class);
155-
error(CL.clEnqueueMarker(getEntity(), eventOut));
158+
Pointer<cl_event> eventOut = ReusablePointers.get().event_out;
159+
error(CL.clEnqueueMarker(getPeer(getEntity()), getPeer(eventOut)));
156160
return CLEvent.createEventFromPointer(this, eventOut);
157161
}
158162

OpenCL4Java/src/main/java/com/nativelibs4java/opencl/library/OpenCLLibrary.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,10 +786,13 @@ public static abstract class clSetMemObjectDestructorAPPLE_arg1_callback extends
786786
public static synchronized native OpenCLLibrary.cl_mem clCreateImage3D(OpenCLLibrary.cl_context cl_context1, long cl_mem_flags1, Pointer<cl_image_format > cl_image_formatPtr1, @Ptr long size_t1, @Ptr long size_t2, @Ptr long size_t3, @Ptr long size_t4, @Ptr long size_t5, Pointer<? > voidPtr1, Pointer<Integer > cl_intPtr1);
787787
/// Original signature : <code>cl_int clEnqueueMarker(cl_command_queue, cl_event*)</code>
788788
public static synchronized native int clEnqueueMarker(OpenCLLibrary.cl_command_queue cl_command_queue1, Pointer<OpenCLLibrary.cl_event > cl_eventPtr1);
789+
public static synchronized native int clEnqueueMarker(@Ptr long cl_command_queue1, @Ptr long cl_eventPtr1);
789790
/// Original signature : <code>cl_int clEnqueueWaitForEvents(cl_command_queue, cl_uint, const cl_event*)</code>
790791
public static synchronized native int clEnqueueWaitForEvents(OpenCLLibrary.cl_command_queue cl_command_queue1, int cl_uint1, Pointer<OpenCLLibrary.cl_event > cl_eventPtr1);
792+
public static synchronized native int clEnqueueWaitForEvents(@Ptr long cl_command_queue1, int cl_uint1, @Ptr long cl_eventPtr1);
791793
/// Original signature : <code>cl_int clEnqueueBarrier(cl_command_queue)</code>
792794
public static synchronized native int clEnqueueBarrier(OpenCLLibrary.cl_command_queue cl_command_queue1);
795+
public static synchronized native int clEnqueueBarrier(@Ptr long cl_command_queue1);
793796
/// Original signature : <code>cl_int clUnloadCompiler()</code>
794797
public static synchronized native int clUnloadCompiler();
795798
/// Original signature : <code>void* clGetExtensionFunctionAddress(const char*)</code>

0 commit comments

Comments
 (0)