From 1280b07faffab6cd4efcb8cb972b6c8256b6a331 Mon Sep 17 00:00:00 2001 From: Ross Brunton Date: Thu, 28 Aug 2025 16:29:48 +0100 Subject: [PATCH] [UR][Offload] Fix waiting on empty events The event pointer can be nullptr if the event is a "no-op". This was previously not handled in the `waitOnEvents helper`, now it is. --- unified-runtime/source/adapters/offload/enqueue.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/unified-runtime/source/adapters/offload/enqueue.cpp b/unified-runtime/source/adapters/offload/enqueue.cpp index bef76e396b839..0a39aac6f9e34 100644 --- a/unified-runtime/source/adapters/offload/enqueue.cpp +++ b/unified-runtime/source/adapters/offload/enqueue.cpp @@ -25,11 +25,15 @@ ol_result_t waitOnEvents(ol_queue_handle_t Queue, if (NumEvents) { std::vector OlEvents; OlEvents.reserve(NumEvents); + size_t RealEventCount = 0; for (size_t I = 0; I < NumEvents; I++) { - OlEvents.push_back(UrEvents[I]->OffloadEvent); + if (UrEvents[I]->OffloadEvent) { + RealEventCount++; + OlEvents.push_back(UrEvents[I]->OffloadEvent); + } } - return olWaitEvents(Queue, OlEvents.data(), NumEvents); + return olWaitEvents(Queue, OlEvents.data(), RealEventCount); } return OL_SUCCESS; }