Skip to content

Commit d31bb46

Browse files
committed
Fix Segmentation Fault in piEnqueueEventsWaitWithBarrier in pi_level0.cpp
Signed-off-by: Dmitry Vodopyanov <[email protected]>
1 parent f029f2d commit d31bb46

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

sycl/plugins/level_zero/pi_level0.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2505,12 +2505,23 @@ pi_result piEnqueueEventsWaitWithBarrier(pi_queue Queue,
25052505
pi_event *Event) {
25062506

25072507
assert(Queue);
2508+
25082509
// Get a new command list to be used on this call
25092510
ze_command_list_handle_t ZeCommandList = nullptr;
25102511
if (auto Res = Queue->Context->Device->createCommandList(&ZeCommandList))
25112512
return Res;
25122513

2513-
ze_event_handle_t ZeEvent = (*Event)->ZeEvent;
2514+
ze_event_handle_t ZeEvent = nullptr;
2515+
if (Event) {
2516+
auto Res = piEventCreate(Queue->Context, Event);
2517+
if (Res != PI_SUCCESS)
2518+
return Res;
2519+
2520+
(*Event)->Queue = Queue;
2521+
(*Event)->ZeCommandList = ZeCommandList;
2522+
2523+
ZeEvent = (*Event)->ZeEvent;
2524+
}
25142525

25152526
// TODO: use unique_ptr with custom deleter in the whole Level Zero plugin for
25162527
// wrapping ze_event_handle_t *ZeEventWaitList to avoid memory leaks in case

sycl/test/enqueue_barrier/enqueue_barrier.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
int main() {
1212
sycl::context Context;
13-
sycl::queue Q1(Context, sycl::cpu_selector{});
13+
sycl::queue Q1(Context, sycl::default_selector{});
1414

1515
Q1.submit([&](sycl::handler &cgh) {
1616
cgh.single_task<class kernel1>([]() {});
@@ -34,8 +34,8 @@ int main() {
3434
// call queue::submit_barrier()
3535
Q1.submit_barrier();
3636

37-
sycl::queue Q2(Context, sycl::cpu_selector{});
38-
sycl::queue Q3(Context, sycl::cpu_selector{});
37+
sycl::queue Q2(Context, sycl::default_selector{});
38+
sycl::queue Q3(Context, sycl::default_selector{});
3939

4040
auto Event1 = Q1.submit([&](sycl::handler &cgh) {
4141
cgh.single_task<class kernel5>([]() {});

0 commit comments

Comments
 (0)