Skip to content

Commit 3507f8d

Browse files
committed
[L0 v2] fix enqueueMemBufferMap implementation
event should always be signaled (if provided by the user).
1 parent 04013b3 commit 3507f8d

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
@@ -646,10 +646,11 @@ ur_result_t ur_queue_immediate_in_order_t::enqueueMemBufferMap(
646646
// If memory was not migrated, we need to wait on the events here.
647647
ZE2UR_CALL(zeCommandListAppendWaitOnEvents,
648648
(handler.commandList.get(), waitList.second, waitList.first));
649-
if (signalEvent) {
650-
ZE2UR_CALL(zeCommandListAppendSignalEvent,
651-
(handler.commandList.get(), signalEvent->getZeEvent()));
652-
}
649+
}
650+
651+
if (signalEvent) {
652+
ZE2UR_CALL(zeCommandListAppendSignalEvent,
653+
(handler.commandList.get(), signalEvent->getZeEvent()));
653654
}
654655

655656
if (blockingMap) {

test/conformance/enqueue/urEnqueueMemBufferMap.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,20 @@ TEST_P(urEnqueueMemBufferMapTestWithParam, MapWithHostPtr) {
234234
delete[] ptr;
235235
}
236236

237+
TEST_P(urEnqueueMemBufferMapTestWithParam, MapSignalEvent) {
238+
const std::vector<uint32_t> input(count, 0);
239+
ASSERT_SUCCESS(urEnqueueMemBufferWrite(queue, buffer, true, 0, size,
240+
input.data(), 0, nullptr, nullptr));
241+
242+
uint32_t *map = nullptr;
243+
ur_event_handle_t hEvent;
244+
ASSERT_SUCCESS(urEnqueueMemBufferMap(
245+
queue, buffer, true, UR_MAP_FLAG_READ | UR_MAP_FLAG_WRITE, 0, size, 0,
246+
nullptr, &hEvent, (void **)&map));
247+
248+
ASSERT_SUCCESS(urEnqueueEventsWait(queue, 1, &hEvent, nullptr));
249+
}
250+
237251
TEST_P(urEnqueueMemBufferMapTestWithParam, InvalidNullHandleQueue) {
238252
void *map = nullptr;
239253
ASSERT_EQ_RESULT(UR_RESULT_ERROR_INVALID_NULL_HANDLE,

0 commit comments

Comments
 (0)