Skip to content

Commit bf4498d

Browse files
committed
[L0 v2] Implement urEnqueueEventsWait
1 parent 32aaa06 commit bf4498d

File tree

2 files changed

+17
-144
lines changed

2 files changed

+17
-144
lines changed

source/adapters/level_zero/v2/queue_immediate_in_order.cpp

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -251,10 +251,23 @@ ur_result_t ur_queue_immediate_in_order_t::enqueueKernelLaunch(
251251
ur_result_t ur_queue_immediate_in_order_t::enqueueEventsWait(
252252
uint32_t numEventsInWaitList, const ur_event_handle_t *phEventWaitList,
253253
ur_event_handle_t *phEvent) {
254-
std::ignore = numEventsInWaitList;
255-
std::ignore = phEventWaitList;
256-
std::ignore = phEvent;
257-
return UR_RESULT_ERROR_UNSUPPORTED_FEATURE;
254+
TRACK_SCOPE_LATENCY("ur_queue_immediate_in_order_t::enqueueEventsWait");
255+
256+
std::unique_lock<ur_shared_mutex> lock(this->Mutex);
257+
258+
auto handler = getCommandListHandlerForCompute();
259+
auto signalEvent = getSignalEvent(handler, phEvent);
260+
auto [pWaitEvents, numWaitEvents] =
261+
getWaitListView(phEventWaitList, numEventsInWaitList, handler);
262+
263+
ZE2UR_CALL(zeCommandListAppendWaitOnEvents,
264+
(handler->commandList.get(), numWaitEvents, pWaitEvents));
265+
ZE2UR_CALL(zeCommandListAppendSignalEvent,
266+
(handler->commandList.get(), signalEvent));
267+
268+
lastHandler = handler;
269+
270+
return UR_RESULT_SUCCESS;
258271
}
259272

260273
ur_result_t ur_queue_immediate_in_order_t::enqueueEventsWaitWithBarrier(

0 commit comments

Comments
 (0)