Skip to content

Commit 20fd053

Browse files
committed
JavaCL: faster enqueueTask
1 parent d8ceec2 commit 20fd053

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -402,10 +402,11 @@ protected void clear() {
402402
* @return Event object that identifies this command and can be used to query or queue a wait for the command to complete.
403403
*/
404404
public CLEvent enqueueTask(CLQueue queue, CLEvent... eventsToWaitFor) {
405-
Pointer<cl_event> eventOut = CLEvent.new_event_out(eventsToWaitFor);
406-
Pointer<cl_event> evts = CLEvent.to_cl_event_array(eventsToWaitFor);
407-
error(CL.clEnqueueTask
408-
NDRangeKernel(queue.getEntity(), getEntity(), 1, null, oneNL, oneNL, evts == null ? 0 : (int)evts.getValidElements(), evts, eventOut));
405+
Pointer<cl_event> eventOut = ReusablePointers.get().event_out;
406+
ReusablePointers ptrs = ReusablePointers.get();
407+
int[] eventsCount = new int[1];
408+
Pointer<cl_event> events = CLAbstractEntity.copyNonNullEntities(eventsToWaitFor, eventsCount, ptrs.events_in);
409+
error(CL.clEnqueueTask(getPeer(queue.getEntity()), getPeer(getEntity()), eventsCount[0], getPeer(events), getPeer(eventOut)));
409410
return CLEvent.createEventFromPointer(queue, eventOut);
410411
}
411412

0 commit comments

Comments
 (0)