Skip to content

Commit 6cf2c3e

Browse files
committed
[SYCL][UR][L0 v2] fix ur_queue_handle_t_ after #17118
ur_queue_handle_t_ was not inheriting from ur::handle_base resulting in *reinterpret_cast<ur_dditable_t **>(hQueue) not working correctly. For some reason this worked on some platforms, and only manifested on PVC.
1 parent 35e80fb commit 6cf2c3e

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

unified-runtime/source/adapters/level_zero/v2/queue_handle.hpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,24 @@
1313

1414
#pragma once
1515

16+
#include "../common.hpp"
1617
#include "queue_immediate_in_order.hpp"
1718
#include <ur_api.h>
1819
#include <variant>
1920

20-
struct ur_queue_handle_t_ {
21+
struct ur_queue_handle_t_ : ur::handle_base<ur::level_zero::ddi_getter> {
2122
using data_variant = std::variant<v2::ur_queue_immediate_in_order_t>;
2223
data_variant queue_data;
2324

25+
template <typename T, class... Args>
26+
ur_queue_handle_t_(std::in_place_type_t<T>, Args &&...args)
27+
: ur::handle_base<ur::level_zero::ddi_getter>(),
28+
queue_data(std::in_place_type<T>, std::forward<Args>(args)...) {}
29+
2430
template <typename T, class... Args>
2531
static ur_queue_handle_t_ *create(Args &&...args) {
26-
return new ur_queue_handle_t_{data_variant{std::in_place_type<T>, args...}};
32+
return new ur_queue_handle_t_(std::in_place_type<T>,
33+
std::forward<Args>(args)...);
2734
}
2835

2936
ur_queue_t_ &get() {

0 commit comments

Comments
 (0)