Skip to content
This repository was archived by the owner on Mar 28, 2023. It is now read-only.

Commit 3b399b5

Browse files
[SYCL][L0] E2E test for make_event interop (#378)
Signed-off-by: Sergey V Maslov <[email protected]>
1 parent 84b230c commit 3b399b5

File tree

1 file changed

+38
-2
lines changed

1 file changed

+38
-2
lines changed

SYCL/Plugin/interop-level-zero-keep-ownership.cpp

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,44 @@ int main() {
2929
{ // Scope in which SYCL interop context object is live
3030
vector_class<device> Devices{};
3131
Devices.push_back(Device);
32-
auto ContextInterop = level_zero::make<context>(
33-
Devices, ZeContext, level_zero::ownership::keep);
32+
auto Context = level_zero::make<context>(Devices, ZeContext,
33+
level_zero::ownership::keep);
34+
35+
// Create L0 event pool
36+
ze_event_pool_handle_t ZeEventPool;
37+
ze_event_pool_desc_t ZeEventPoolDesc{};
38+
ZeEventPoolDesc.stype = ZE_STRUCTURE_TYPE_EVENT_POOL_DESC;
39+
ZeEventPoolDesc.count = 1;
40+
ZeEventPoolDesc.flags = ZE_EVENT_POOL_FLAG_HOST_VISIBLE;
41+
zeEventPoolCreate(ZeContext, &ZeEventPoolDesc, 1, &ZeDevice, &ZeEventPool);
42+
43+
// Create L0 event
44+
ze_event_handle_t ZeEvent;
45+
ze_event_desc_t ZeEventDesc{};
46+
ZeEventDesc.stype = ZE_STRUCTURE_TYPE_EVENT_DESC;
47+
ZeEventDesc.signal = ZE_EVENT_SCOPE_FLAG_HOST;
48+
ZeEventDesc.wait = 0;
49+
ZeEventDesc.index = 0;
50+
zeEventCreate(ZeEventPool, &ZeEventDesc, &ZeEvent);
51+
52+
{ // Scope in which SYCL interop event is alive
53+
int i = 0;
54+
event Event = level_zero::make<event>(Context, ZeEvent,
55+
level_zero::ownership::keep);
56+
57+
info::event_command_status status;
58+
do {
59+
status = Event.get_info<info::event::command_execution_status>();
60+
printf("%d: %s\n", i,
61+
status == info::event_command_status::complete ? "complete"
62+
: "!complete");
63+
if (++i == 5) {
64+
zeEventHostSignal(ZeEvent);
65+
}
66+
} while (status != info::event_command_status::complete);
67+
}
68+
zeEventDestroy(ZeEvent);
69+
zeEventPoolDestroy(ZeEventPool);
3470
}
3571

3672
// Verifies that Level-Zero context is not destroyed by SYCL RT yet.

0 commit comments

Comments
 (0)