@@ -193,13 +193,21 @@ cdef str _device_type_to_filter_string_part(_device_type DTy):
193
193
return " unknown"
194
194
195
195
196
- cdef void _init_helper(_SyclDevice device, DPCTLSyclDeviceRef DRef):
196
+ cdef void _init_helper(_SyclDevice device, DPCTLSyclDeviceRef DRef) except * :
197
197
" Populate attributes of device from opaque device reference DRef"
198
198
device._device_ref = DRef
199
199
device._name = DPCTLDevice_GetName(DRef)
200
+ if device._name is NULL :
201
+ raise RuntimeError (" Descriptor 'name' not available" )
200
202
device._driver_version = DPCTLDevice_GetDriverVersion(DRef)
203
+ if device._driver_version is NULL :
204
+ raise RuntimeError (" Descriptor 'driver_version' not available" )
201
205
device._vendor = DPCTLDevice_GetVendor(DRef)
206
+ if device._vendor is NULL :
207
+ raise RuntimeError (" Descriptor 'vendor' not available" )
202
208
device._max_work_item_sizes = DPCTLDevice_GetMaxWorkItemSizes3d(DRef)
209
+ if device._max_work_item_sizes is NULL :
210
+ raise RuntimeError (" Descriptor 'max_work_item_sizes3d' not available" )
203
211
204
212
205
213
@ functools.lru_cache (maxsize = None )
@@ -938,6 +946,8 @@ cdef class SyclDevice(_SyclDevice):
938
946
max_work_item_sizes1d = DPCTLDevice_GetMaxWorkItemSizes1d(
939
947
self ._device_ref
940
948
)
949
+ if max_work_item_sizes1d is NULL :
950
+ raise RuntimeError (" error obtaining 'max_work_item_sizes1d'" )
941
951
s0 = max_work_item_sizes1d[0 ]
942
952
DPCTLSize_t_Array_Delete(max_work_item_sizes1d)
943
953
return (s0, )
@@ -960,6 +970,8 @@ cdef class SyclDevice(_SyclDevice):
960
970
max_work_item_sizes2d = DPCTLDevice_GetMaxWorkItemSizes2d(
961
971
self ._device_ref
962
972
)
973
+ if max_work_item_sizes2d is NULL :
974
+ raise RuntimeError (" error obtaining 'max_work_item_sizes2d'" )
963
975
s0 = max_work_item_sizes2d[0 ]
964
976
s1 = max_work_item_sizes2d[1 ]
965
977
DPCTLSize_t_Array_Delete(max_work_item_sizes2d)
0 commit comments