@@ -333,10 +333,11 @@ template <>
333
333
struct get_device_info <bool , info::device::usm_device_allocations> {
334
334
static bool get (RT::PiDevice dev) {
335
335
pi_usm_capabilities caps;
336
- PI_CALL (piDeviceGetInfo)(
336
+ pi_result Err = PI_CALL_NOCHECK (piDeviceGetInfo)(
337
337
dev, pi::cast<RT::PiDeviceInfo>(info::device::usm_device_allocations),
338
338
sizeof (pi_usm_capabilities), &caps, nullptr );
339
- return (caps != 0 );
339
+
340
+ return (Err != PI_SUCCESS) ? false : (caps & PI_USM_ACCESS);
340
341
}
341
342
};
342
343
@@ -345,10 +346,11 @@ template <>
345
346
struct get_device_info <bool , info::device::usm_host_allocations> {
346
347
static bool get (RT::PiDevice dev) {
347
348
pi_usm_capabilities caps;
348
- PI_CALL (piDeviceGetInfo)(
349
+ pi_result Err = PI_CALL_NOCHECK (piDeviceGetInfo)(
349
350
dev, pi::cast<RT::PiDeviceInfo>(info::device::usm_host_allocations),
350
351
sizeof (pi_usm_capabilities), &caps, nullptr );
351
- return (caps & PI_USM_ACCESS);
352
+
353
+ return (Err != PI_SUCCESS) ? false : (caps & PI_USM_ACCESS);
352
354
}
353
355
};
354
356
@@ -357,10 +359,10 @@ template <>
357
359
struct get_device_info <bool , info::device::usm_shared_allocations> {
358
360
static bool get (RT::PiDevice dev) {
359
361
pi_usm_capabilities caps;
360
- PI_CALL (piDeviceGetInfo)(
362
+ pi_result Err = PI_CALL_NOCHECK (piDeviceGetInfo)(
361
363
dev, pi::cast<RT::PiDeviceInfo>(info::device::usm_shared_allocations),
362
364
sizeof (pi_usm_capabilities), &caps, nullptr );
363
- return (caps & PI_USM_ACCESS);
365
+ return (Err != PI_SUCCESS) ? false : ( caps & PI_USM_ACCESS);
364
366
}
365
367
};
366
368
@@ -369,13 +371,15 @@ template <>
369
371
struct get_device_info <bool , info::device::usm_restricted_shared_allocations> {
370
372
static bool get (RT::PiDevice dev) {
371
373
pi_usm_capabilities caps;
372
- PI_CALL (piDeviceGetInfo)(
374
+ pi_result Err = PI_CALL_NOCHECK (piDeviceGetInfo)(
373
375
dev,
374
376
pi::cast<RT::PiDeviceInfo>(
375
377
info::device::usm_restricted_shared_allocations),
376
378
sizeof (pi_usm_capabilities), &caps, nullptr );
377
379
// Check that we don't support any cross device sharing
378
- return !(caps & (PI_USM_ACCESS | PI_USM_CONCURRENT_ACCESS));
380
+ return (Err != PI_SUCCESS)
381
+ ? false
382
+ : !(caps & (PI_USM_ACCESS | PI_USM_CONCURRENT_ACCESS));
379
383
}
380
384
};
381
385
@@ -384,11 +388,10 @@ template <>
384
388
struct get_device_info <bool , info::device::usm_system_allocator> {
385
389
static bool get (RT::PiDevice dev) {
386
390
pi_usm_capabilities caps;
387
- PI_CALL (piDeviceGetInfo)(
391
+ pi_result Err = PI_CALL_NOCHECK (piDeviceGetInfo)(
388
392
dev, pi::cast<RT::PiDeviceInfo>(info::device::usm_system_allocator),
389
393
sizeof (pi_usm_capabilities), &caps, nullptr );
390
- // Check that we don't support any cross device sharing
391
- return (caps & PI_USM_ACCESS);
394
+ return (Err != PI_SUCCESS) ? false : (caps & PI_USM_ACCESS);
392
395
}
393
396
};
394
397
0 commit comments