Skip to content

Commit 14ee7d6

Browse files
committed
[L0 v2] fix enqueueMemBufferMap implementation
event should always be signaled (if provided by the user).
1 parent 958f35a commit 14ee7d6

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

source/adapters/level_zero/v2/queue_immediate_in_order.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -660,10 +660,11 @@ ur_result_t ur_queue_immediate_in_order_t::enqueueMemBufferMap(
660660
// If memory was not migrated, we need to wait on the events here.
661661
ZE2UR_CALL(zeCommandListAppendWaitOnEvents,
662662
(handler.commandList.get(), waitList.second, waitList.first));
663-
if (signalEvent) {
664-
ZE2UR_CALL(zeCommandListAppendSignalEvent,
665-
(handler.commandList.get(), signalEvent->getZeEvent()));
666-
}
663+
}
664+
665+
if (signalEvent) {
666+
ZE2UR_CALL(zeCommandListAppendSignalEvent,
667+
(handler.commandList.get(), signalEvent->getZeEvent()));
667668
}
668669

669670
if (blockingMap) {

test/conformance/enqueue/urEnqueueMemBufferMap.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,20 @@ TEST_P(urEnqueueMemBufferMapTestWithParam, SuccessMultiMaps) {
228228
}
229229
}
230230

231+
TEST_P(urEnqueueMemBufferMapTestWithParam, MapSignalEvent) {
232+
const std::vector<uint32_t> input(count, 0);
233+
ASSERT_SUCCESS(urEnqueueMemBufferWrite(queue, buffer, true, 0, size,
234+
input.data(), 0, nullptr, nullptr));
235+
236+
uint32_t *map = nullptr;
237+
ur_event_handle_t hEvent;
238+
ASSERT_SUCCESS(urEnqueueMemBufferMap(
239+
queue, buffer, true, UR_MAP_FLAG_READ | UR_MAP_FLAG_WRITE, 0, size, 0,
240+
nullptr, &hEvent, (void **)&map));
241+
242+
ASSERT_SUCCESS(urEnqueueEventsWait(queue, 1, &hEvent, nullptr));
243+
}
244+
231245
TEST_P(urEnqueueMemBufferMapTestWithParam, InvalidNullHandleQueue) {
232246
void *map = nullptr;
233247
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_HANDLE,

0 commit comments

Comments
 (0)