Skip to content

Commit f11caf9

Browse files
authored
Merge pull request #1795 from DBDuncan/duncan/bindless-aspects
[Bindless][Exp] Update device_info enum elements and update Level Zero and CUDA backend device_info supported features
2 parents 436428f + 40902ec commit f11caf9

File tree

7 files changed

+172
-77
lines changed

7 files changed

+172
-77
lines changed

include/ur_api.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1657,12 +1657,8 @@ typedef enum ur_device_info_t {
16571657
///< from individual mipmap levels
16581658
UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP = 0x200C, ///< [::ur_bool_t] returns true if the device supports importing external
16591659
///< memory resources
1660-
UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP = 0x200D, ///< [::ur_bool_t] returns true if the device supports exporting internal
1661-
///< memory resources
16621660
UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP = 0x200E, ///< [::ur_bool_t] returns true if the device supports importing external
16631661
///< semaphore resources
1664-
UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP = 0x200F, ///< [::ur_bool_t] returns true if the device supports exporting internal
1665-
///< event resources
16661662
UR_DEVICE_INFO_CUBEMAP_SUPPORT_EXP = 0x2010, ///< [::ur_bool_t] returns true if the device supports allocating and
16671663
///< accessing cubemap resources
16681664
UR_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP = 0x2011, ///< [::ur_bool_t] returns true if the device supports sampling cubemapped
@@ -1675,11 +1671,17 @@ typedef enum ur_device_info_t {
16751671
///< backed 2D sampled image data.
16761672
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP = 0x2015, ///< [::ur_bool_t] returns true if the device is capable of fetching
16771673
///< non-USM backed 2D sampled image data.
1678-
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP = 0x2016, ///< [::ur_bool_t] returns true if the device is capable of fetching USM
1679-
///< backed 3D sampled image data.
16801674
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP = 0x2017, ///< [::ur_bool_t] returns true if the device is capable of fetching
16811675
///< non-USM backed 3D sampled image data.
16821676
UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP = 0x2018, ///< [::ur_bool_t] returns true if the device supports timestamp recording
1677+
UR_DEVICE_INFO_IMAGE_ARRAY_SUPPORT_EXP = 0x2019, ///< [::ur_bool_t] returns true if the device supports allocating and
1678+
///< accessing image array resources.
1679+
UR_DEVICE_INFO_BINDLESS_UNIQUE_ADDRESSING_PER_DIM_EXP = 0x201A, ///< [::ur_bool_t] returns true if the device supports unique addressing
1680+
///< per dimension.
1681+
UR_DEVICE_INFO_BINDLESS_SAMPLE_1D_USM_EXP = 0x201B, ///< [::ur_bool_t] returns true if the device is capable of sampling USM
1682+
///< backed 1D sampled image data.
1683+
UR_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_EXP = 0x201C, ///< [::ur_bool_t] returns true if the device is capable of sampling USM
1684+
///< backed 2D sampled image data.
16831685
UR_DEVICE_INFO_ENQUEUE_NATIVE_COMMAND_SUPPORT_EXP = 0x2020, ///< [::ur_bool_t] returns true if the device supports enqueueing of native
16841686
///< work
16851687
/// @cond

include/ur_print.hpp

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2583,15 +2583,9 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_device_info_t value) {
25832583
case UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP:
25842584
os << "UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP";
25852585
break;
2586-
case UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP:
2587-
os << "UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP";
2588-
break;
25892586
case UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP:
25902587
os << "UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP";
25912588
break;
2592-
case UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP:
2593-
os << "UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP";
2594-
break;
25952589
case UR_DEVICE_INFO_CUBEMAP_SUPPORT_EXP:
25962590
os << "UR_DEVICE_INFO_CUBEMAP_SUPPORT_EXP";
25972591
break;
@@ -2610,15 +2604,24 @@ inline std::ostream &operator<<(std::ostream &os, enum ur_device_info_t value) {
26102604
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP:
26112605
os << "UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP";
26122606
break;
2613-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP:
2614-
os << "UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP";
2615-
break;
26162607
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP:
26172608
os << "UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP";
26182609
break;
26192610
case UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP:
26202611
os << "UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP";
26212612
break;
2613+
case UR_DEVICE_INFO_IMAGE_ARRAY_SUPPORT_EXP:
2614+
os << "UR_DEVICE_INFO_IMAGE_ARRAY_SUPPORT_EXP";
2615+
break;
2616+
case UR_DEVICE_INFO_BINDLESS_UNIQUE_ADDRESSING_PER_DIM_EXP:
2617+
os << "UR_DEVICE_INFO_BINDLESS_UNIQUE_ADDRESSING_PER_DIM_EXP";
2618+
break;
2619+
case UR_DEVICE_INFO_BINDLESS_SAMPLE_1D_USM_EXP:
2620+
os << "UR_DEVICE_INFO_BINDLESS_SAMPLE_1D_USM_EXP";
2621+
break;
2622+
case UR_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_EXP:
2623+
os << "UR_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_EXP";
2624+
break;
26222625
case UR_DEVICE_INFO_ENQUEUE_NATIVE_COMMAND_SUPPORT_EXP:
26232626
os << "UR_DEVICE_INFO_ENQUEUE_NATIVE_COMMAND_SUPPORT_EXP";
26242627
break;
@@ -4223,7 +4226,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
42234226

42244227
os << ")";
42254228
} break;
4226-
case UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP: {
4229+
case UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP: {
42274230
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
42284231
if (sizeof(ur_bool_t) > size) {
42294232
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4235,7 +4238,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
42354238

42364239
os << ")";
42374240
} break;
4238-
case UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP: {
4241+
case UR_DEVICE_INFO_CUBEMAP_SUPPORT_EXP: {
42394242
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
42404243
if (sizeof(ur_bool_t) > size) {
42414244
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4247,7 +4250,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
42474250

42484251
os << ")";
42494252
} break;
4250-
case UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP: {
4253+
case UR_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP: {
42514254
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
42524255
if (sizeof(ur_bool_t) > size) {
42534256
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4259,7 +4262,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
42594262

42604263
os << ")";
42614264
} break;
4262-
case UR_DEVICE_INFO_CUBEMAP_SUPPORT_EXP: {
4265+
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP: {
42634266
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
42644267
if (sizeof(ur_bool_t) > size) {
42654268
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4271,7 +4274,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
42714274

42724275
os << ")";
42734276
} break;
4274-
case UR_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP: {
4277+
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP: {
42754278
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
42764279
if (sizeof(ur_bool_t) > size) {
42774280
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4283,7 +4286,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
42834286

42844287
os << ")";
42854288
} break;
4286-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP: {
4289+
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP: {
42874290
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
42884291
if (sizeof(ur_bool_t) > size) {
42894292
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4295,7 +4298,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
42954298

42964299
os << ")";
42974300
} break;
4298-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP: {
4301+
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP: {
42994302
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
43004303
if (sizeof(ur_bool_t) > size) {
43014304
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4307,7 +4310,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
43074310

43084311
os << ")";
43094312
} break;
4310-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP: {
4313+
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP: {
43114314
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
43124315
if (sizeof(ur_bool_t) > size) {
43134316
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4319,7 +4322,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
43194322

43204323
os << ")";
43214324
} break;
4322-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP: {
4325+
case UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP: {
43234326
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
43244327
if (sizeof(ur_bool_t) > size) {
43254328
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4331,7 +4334,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
43314334

43324335
os << ")";
43334336
} break;
4334-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP: {
4337+
case UR_DEVICE_INFO_IMAGE_ARRAY_SUPPORT_EXP: {
43354338
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
43364339
if (sizeof(ur_bool_t) > size) {
43374340
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4343,7 +4346,7 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
43434346

43444347
os << ")";
43454348
} break;
4346-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP: {
4349+
case UR_DEVICE_INFO_BINDLESS_UNIQUE_ADDRESSING_PER_DIM_EXP: {
43474350
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
43484351
if (sizeof(ur_bool_t) > size) {
43494352
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
@@ -4355,7 +4358,19 @@ inline ur_result_t printTagged(std::ostream &os, const void *ptr, ur_device_info
43554358

43564359
os << ")";
43574360
} break;
4358-
case UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP: {
4361+
case UR_DEVICE_INFO_BINDLESS_SAMPLE_1D_USM_EXP: {
4362+
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
4363+
if (sizeof(ur_bool_t) > size) {
4364+
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";
4365+
return UR_RESULT_ERROR_INVALID_SIZE;
4366+
}
4367+
os << (const void *)(tptr) << " (";
4368+
4369+
os << *tptr;
4370+
4371+
os << ")";
4372+
} break;
4373+
case UR_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_EXP: {
43594374
const ur_bool_t *tptr = (const ur_bool_t *)ptr;
43604375
if (sizeof(ur_bool_t) > size) {
43614376
os << "invalid size (is: " << size << ", expected: >=" << sizeof(ur_bool_t) << ")";

scripts/core/EXP-BINDLESS-IMAGES.rst

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,17 +87,18 @@ Enums
8787
* ${X}_DEVICE_INFO_MIPMAP_MAX_ANISOTROPY_EXP
8888
* ${X}_DEVICE_INFO_MIPMAP_LEVEL_REFERENCE_SUPPORT_EXP
8989
* ${X}_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP
90-
* ${X}_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP
9190
* ${X}_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP
92-
* ${X}_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP
9391
* ${X}_DEVICE_INFO_CUBEMAP_SUPPORT_EXP
9492
* ${X}_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP
9593
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_EXP
9694
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_EXP
9795
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_EXP
9896
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP
99-
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP
10097
* ${X}_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP
98+
* ${X}_DEVICE_INFO_IMAGE_ARRAY_SUPPORT_EXP
99+
* ${X}_DEVICE_INFO_BINDLESS_UNIQUE_ADDRESSING_PER_DIM_EXP
100+
* ${X}_DEVICE_INFO_BINDLESS_SAMPLE_1D_USM_EXP
101+
* ${X}_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_EXP
101102

102103
* ${x}_command_t
103104
* ${X}_COMMAND_INTEROP_SEMAPHORE_WAIT_EXP
@@ -243,6 +244,9 @@ Changelog
243244
+------------------------------------------------------------------------+
244245
| 15.0 | Added structures for supporting copying. |
245246
+----------+-------------------------------------------------------------+
247+
| 16.0 || Update device queries to resolve inconsistencies and |
248+
| || missing queries. |
249+
+----------+-------------------------------------------------------------+
246250

247251
Contributors
248252
--------------------------------------------------------------------------------

scripts/core/exp-bindless-images.yml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,15 +77,9 @@ etors:
7777
- name: INTEROP_MEMORY_IMPORT_SUPPORT_EXP
7878
value: "0x200C"
7979
desc: "[$x_bool_t] returns true if the device supports importing external memory resources"
80-
- name: INTEROP_MEMORY_EXPORT_SUPPORT_EXP
81-
value: "0x200D"
82-
desc: "[$x_bool_t] returns true if the device supports exporting internal memory resources"
8380
- name: INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP
8481
value: "0x200E"
8582
desc: "[$x_bool_t] returns true if the device supports importing external semaphore resources"
86-
- name: INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP
87-
value: "0x200F"
88-
desc: "[$x_bool_t] returns true if the device supports exporting internal event resources"
8983
- name: CUBEMAP_SUPPORT_EXP
9084
value: "0x2010"
9185
desc: "[$x_bool_t] returns true if the device supports allocating and accessing cubemap resources"
@@ -104,12 +98,21 @@ etors:
10498
- name: BINDLESS_SAMPLED_IMAGE_FETCH_2D_EXP
10599
value: "0x2015"
106100
desc: "[$x_bool_t] returns true if the device is capable of fetching non-USM backed 2D sampled image data."
107-
- name: BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP
108-
value: "0x2016"
109-
desc: "[$x_bool_t] returns true if the device is capable of fetching USM backed 3D sampled image data."
110101
- name: BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP
111102
value: "0x2017"
112103
desc: "[$x_bool_t] returns true if the device is capable of fetching non-USM backed 3D sampled image data."
104+
- name: IMAGE_ARRAY_SUPPORT_EXP
105+
value: "0x2019"
106+
desc: "[$x_bool_t] returns true if the device supports allocating and accessing image array resources."
107+
- name: BINDLESS_UNIQUE_ADDRESSING_PER_DIM_EXP
108+
value: "0x201A"
109+
desc: "[$x_bool_t] returns true if the device supports unique addressing per dimension."
110+
- name: BINDLESS_SAMPLE_1D_USM_EXP
111+
value: "0x201B"
112+
desc: "[$x_bool_t] returns true if the device is capable of sampling USM backed 1D sampled image data."
113+
- name: BINDLESS_SAMPLE_2D_USM_EXP
114+
value: "0x201C"
115+
desc: "[$x_bool_t] returns true if the device is capable of sampling USM backed 2D sampled image data."
113116
--- #--------------------------------------------------------------------------
114117
type: enum
115118
extend: true

source/adapters/cuda/device.cpp

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -846,9 +846,9 @@ UR_APIEXPORT ur_result_t UR_APICALL urDeviceGetInfo(ur_device_handle_t hDevice,
846846
return ReturnValue(true);
847847
}
848848
case UR_DEVICE_INFO_BINDLESS_IMAGES_1D_USM_SUPPORT_EXP: {
849-
// On CUDA 1D bindless image USM is not supported.
849+
// On CUDA 1D bindless image USM is supported, but sampling is not.
850850
// More specifically, linear filtering is not supported.
851-
return ReturnValue(false);
851+
return ReturnValue(true);
852852
}
853853
case UR_DEVICE_INFO_BINDLESS_IMAGES_2D_USM_SUPPORT_EXP: {
854854
// On CUDA 2D bindless image USM is supported.
@@ -903,18 +903,10 @@ UR_APIEXPORT ur_result_t UR_APICALL urDeviceGetInfo(ur_device_handle_t hDevice,
903903
// CUDA supports importing external memory.
904904
return ReturnValue(true);
905905
}
906-
case UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP: {
907-
// CUDA does not support exporting it's own device memory.
908-
return ReturnValue(false);
909-
}
910906
case UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP: {
911907
// CUDA supports importing external semaphores.
912908
return ReturnValue(true);
913909
}
914-
case UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP: {
915-
// CUDA does not support exporting semaphores or events.
916-
return ReturnValue(false);
917-
}
918910
case UR_DEVICE_INFO_CUBEMAP_SUPPORT_EXP: {
919911
// CUDA supports cubemaps.
920912
return ReturnValue(true);
@@ -939,14 +931,26 @@ UR_APIEXPORT ur_result_t UR_APICALL urDeviceGetInfo(ur_device_handle_t hDevice,
939931
// CUDA does support fetching 2D non-USM sampled image data.
940932
return ReturnValue(true);
941933
}
942-
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_USM_EXP: {
943-
// CUDA does not support 3D USM sampled textures
944-
return ReturnValue(false);
945-
}
946934
case UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_EXP: {
947935
// CUDA does support fetching 3D non-USM sampled image data.
948936
return ReturnValue(true);
949937
}
938+
case UR_DEVICE_INFO_IMAGE_ARRAY_SUPPORT_EXP: {
939+
// CUDA does support image arrays
940+
return ReturnValue(true);
941+
}
942+
case UR_DEVICE_INFO_BINDLESS_UNIQUE_ADDRESSING_PER_DIM_EXP: {
943+
// CUDA does support unique addressing per dimension
944+
return ReturnValue(true);
945+
}
946+
case UR_DEVICE_INFO_BINDLESS_SAMPLE_1D_USM_EXP: {
947+
// CUDA does not support sampling 1D USM sampled image data.
948+
return ReturnValue(false);
949+
}
950+
case UR_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_EXP: {
951+
// CUDA does support sampling 1D USM sampled image data.
952+
return ReturnValue(true);
953+
}
950954
case UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP: {
951955
// CUDA supports recording timestamp events.
952956
return ReturnValue(true);

0 commit comments

Comments
 (0)