Skip to content

Commit 764ecf2

Browse files
authored
Merge pull request #852 from isaacault/iault/layered_image_prop_struct
[Bindless][Exp] Create layered image properties struct
2 parents 172bc24 + 017c998 commit 764ecf2

File tree

5 files changed

+128
-40
lines changed

5 files changed

+128
-40
lines changed

include/ur.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,7 @@ class ur_structure_type_v(IntEnum):
247247
EXP_INTEROP_SEMAPHORE_DESC = 0x2002 ## ::ur_exp_interop_semaphore_desc_t
248248
EXP_FILE_DESCRIPTOR = 0x2003 ## ::ur_exp_file_descriptor_t
249249
EXP_WIN32_HANDLE = 0x2004 ## ::ur_exp_win32_handle_t
250+
EXP_LAYERED_IMAGE_PROPERTIES = 0x2005 ## ::ur_exp_layered_image_properties_t
250251

251252
class ur_structure_type_t(c_int):
252253
def __str__(self):
@@ -2231,6 +2232,21 @@ class ur_exp_interop_semaphore_desc_t(Structure):
22312232
("pNext", c_void_p) ## [in][optional] pointer to extension-specific structure
22322233
]
22332234

2235+
###############################################################################
2236+
## @brief Describes layered image properties
2237+
##
2238+
## @details
2239+
## - Specify these properties in ::urBindlessImagesUnsampledImageCreateExp
2240+
## or ::urBindlessImagesSampledImageCreateExp via ::ur_image_desc_t as
2241+
## part of a `pNext` chain.
2242+
class ur_exp_layered_image_properties_t(Structure):
2243+
_fields_ = [
2244+
("stype", ur_structure_type_t), ## [in] type of this structure, must be
2245+
## ::UR_STRUCTURE_TYPE_EXP_LAYERED_IMAGE_PROPERTIES
2246+
("pNext", c_void_p), ## [in,out][optional] pointer to extension-specific structure
2247+
("numLayers", c_ulong) ## [in] number of layers the image should have
2248+
]
2249+
22342250
###############################################################################
22352251
## @brief The extension string which defines support for command-buffers which
22362252
## is returned when querying device extensions.

include/ur_api.h

Lines changed: 56 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -216,46 +216,47 @@ typedef enum ur_function_t {
216216
///////////////////////////////////////////////////////////////////////////////
217217
/// @brief Defines structure types
218218
typedef enum ur_structure_type_t {
219-
UR_STRUCTURE_TYPE_CONTEXT_PROPERTIES = 0, ///< ::ur_context_properties_t
220-
UR_STRUCTURE_TYPE_IMAGE_DESC = 1, ///< ::ur_image_desc_t
221-
UR_STRUCTURE_TYPE_BUFFER_PROPERTIES = 2, ///< ::ur_buffer_properties_t
222-
UR_STRUCTURE_TYPE_BUFFER_REGION = 3, ///< ::ur_buffer_region_t
223-
UR_STRUCTURE_TYPE_BUFFER_CHANNEL_PROPERTIES = 4, ///< ::ur_buffer_channel_properties_t
224-
UR_STRUCTURE_TYPE_BUFFER_ALLOC_LOCATION_PROPERTIES = 5, ///< ::ur_buffer_alloc_location_properties_t
225-
UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES = 6, ///< ::ur_program_properties_t
226-
UR_STRUCTURE_TYPE_USM_DESC = 7, ///< ::ur_usm_desc_t
227-
UR_STRUCTURE_TYPE_USM_HOST_DESC = 8, ///< ::ur_usm_host_desc_t
228-
UR_STRUCTURE_TYPE_USM_DEVICE_DESC = 9, ///< ::ur_usm_device_desc_t
229-
UR_STRUCTURE_TYPE_USM_POOL_DESC = 10, ///< ::ur_usm_pool_desc_t
230-
UR_STRUCTURE_TYPE_USM_POOL_LIMITS_DESC = 11, ///< ::ur_usm_pool_limits_desc_t
231-
UR_STRUCTURE_TYPE_DEVICE_BINARY = 12, ///< ::ur_device_binary_t
232-
UR_STRUCTURE_TYPE_SAMPLER_DESC = 13, ///< ::ur_sampler_desc_t
233-
UR_STRUCTURE_TYPE_QUEUE_PROPERTIES = 14, ///< ::ur_queue_properties_t
234-
UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES = 15, ///< ::ur_queue_index_properties_t
235-
UR_STRUCTURE_TYPE_CONTEXT_NATIVE_PROPERTIES = 16, ///< ::ur_context_native_properties_t
236-
UR_STRUCTURE_TYPE_KERNEL_NATIVE_PROPERTIES = 17, ///< ::ur_kernel_native_properties_t
237-
UR_STRUCTURE_TYPE_QUEUE_NATIVE_PROPERTIES = 18, ///< ::ur_queue_native_properties_t
238-
UR_STRUCTURE_TYPE_MEM_NATIVE_PROPERTIES = 19, ///< ::ur_mem_native_properties_t
239-
UR_STRUCTURE_TYPE_EVENT_NATIVE_PROPERTIES = 20, ///< ::ur_event_native_properties_t
240-
UR_STRUCTURE_TYPE_PLATFORM_NATIVE_PROPERTIES = 21, ///< ::ur_platform_native_properties_t
241-
UR_STRUCTURE_TYPE_DEVICE_NATIVE_PROPERTIES = 22, ///< ::ur_device_native_properties_t
242-
UR_STRUCTURE_TYPE_PROGRAM_NATIVE_PROPERTIES = 23, ///< ::ur_program_native_properties_t
243-
UR_STRUCTURE_TYPE_SAMPLER_NATIVE_PROPERTIES = 24, ///< ::ur_sampler_native_properties_t
244-
UR_STRUCTURE_TYPE_QUEUE_NATIVE_DESC = 25, ///< ::ur_queue_native_desc_t
245-
UR_STRUCTURE_TYPE_DEVICE_PARTITION_PROPERTIES = 26, ///< ::ur_device_partition_properties_t
246-
UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES = 27, ///< ::ur_kernel_arg_mem_obj_properties_t
247-
UR_STRUCTURE_TYPE_PHYSICAL_MEM_PROPERTIES = 28, ///< ::ur_physical_mem_properties_t
248-
UR_STRUCTURE_TYPE_KERNEL_ARG_POINTER_PROPERTIES = 29, ///< ::ur_kernel_arg_pointer_properties_t
249-
UR_STRUCTURE_TYPE_KERNEL_ARG_SAMPLER_PROPERTIES = 30, ///< ::ur_kernel_arg_sampler_properties_t
250-
UR_STRUCTURE_TYPE_KERNEL_EXEC_INFO_PROPERTIES = 31, ///< ::ur_kernel_exec_info_properties_t
251-
UR_STRUCTURE_TYPE_KERNEL_ARG_VALUE_PROPERTIES = 32, ///< ::ur_kernel_arg_value_properties_t
252-
UR_STRUCTURE_TYPE_KERNEL_ARG_LOCAL_PROPERTIES = 33, ///< ::ur_kernel_arg_local_properties_t
253-
UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC = 0x1000, ///< ::ur_exp_command_buffer_desc_t
254-
UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES = 0x2000, ///< ::ur_exp_sampler_mip_properties_t
255-
UR_STRUCTURE_TYPE_EXP_INTEROP_MEM_DESC = 0x2001, ///< ::ur_exp_interop_mem_desc_t
256-
UR_STRUCTURE_TYPE_EXP_INTEROP_SEMAPHORE_DESC = 0x2002, ///< ::ur_exp_interop_semaphore_desc_t
257-
UR_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR = 0x2003, ///< ::ur_exp_file_descriptor_t
258-
UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE = 0x2004, ///< ::ur_exp_win32_handle_t
219+
UR_STRUCTURE_TYPE_CONTEXT_PROPERTIES = 0, ///< ::ur_context_properties_t
220+
UR_STRUCTURE_TYPE_IMAGE_DESC = 1, ///< ::ur_image_desc_t
221+
UR_STRUCTURE_TYPE_BUFFER_PROPERTIES = 2, ///< ::ur_buffer_properties_t
222+
UR_STRUCTURE_TYPE_BUFFER_REGION = 3, ///< ::ur_buffer_region_t
223+
UR_STRUCTURE_TYPE_BUFFER_CHANNEL_PROPERTIES = 4, ///< ::ur_buffer_channel_properties_t
224+
UR_STRUCTURE_TYPE_BUFFER_ALLOC_LOCATION_PROPERTIES = 5, ///< ::ur_buffer_alloc_location_properties_t
225+
UR_STRUCTURE_TYPE_PROGRAM_PROPERTIES = 6, ///< ::ur_program_properties_t
226+
UR_STRUCTURE_TYPE_USM_DESC = 7, ///< ::ur_usm_desc_t
227+
UR_STRUCTURE_TYPE_USM_HOST_DESC = 8, ///< ::ur_usm_host_desc_t
228+
UR_STRUCTURE_TYPE_USM_DEVICE_DESC = 9, ///< ::ur_usm_device_desc_t
229+
UR_STRUCTURE_TYPE_USM_POOL_DESC = 10, ///< ::ur_usm_pool_desc_t
230+
UR_STRUCTURE_TYPE_USM_POOL_LIMITS_DESC = 11, ///< ::ur_usm_pool_limits_desc_t
231+
UR_STRUCTURE_TYPE_DEVICE_BINARY = 12, ///< ::ur_device_binary_t
232+
UR_STRUCTURE_TYPE_SAMPLER_DESC = 13, ///< ::ur_sampler_desc_t
233+
UR_STRUCTURE_TYPE_QUEUE_PROPERTIES = 14, ///< ::ur_queue_properties_t
234+
UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES = 15, ///< ::ur_queue_index_properties_t
235+
UR_STRUCTURE_TYPE_CONTEXT_NATIVE_PROPERTIES = 16, ///< ::ur_context_native_properties_t
236+
UR_STRUCTURE_TYPE_KERNEL_NATIVE_PROPERTIES = 17, ///< ::ur_kernel_native_properties_t
237+
UR_STRUCTURE_TYPE_QUEUE_NATIVE_PROPERTIES = 18, ///< ::ur_queue_native_properties_t
238+
UR_STRUCTURE_TYPE_MEM_NATIVE_PROPERTIES = 19, ///< ::ur_mem_native_properties_t
239+
UR_STRUCTURE_TYPE_EVENT_NATIVE_PROPERTIES = 20, ///< ::ur_event_native_properties_t
240+
UR_STRUCTURE_TYPE_PLATFORM_NATIVE_PROPERTIES = 21, ///< ::ur_platform_native_properties_t
241+
UR_STRUCTURE_TYPE_DEVICE_NATIVE_PROPERTIES = 22, ///< ::ur_device_native_properties_t
242+
UR_STRUCTURE_TYPE_PROGRAM_NATIVE_PROPERTIES = 23, ///< ::ur_program_native_properties_t
243+
UR_STRUCTURE_TYPE_SAMPLER_NATIVE_PROPERTIES = 24, ///< ::ur_sampler_native_properties_t
244+
UR_STRUCTURE_TYPE_QUEUE_NATIVE_DESC = 25, ///< ::ur_queue_native_desc_t
245+
UR_STRUCTURE_TYPE_DEVICE_PARTITION_PROPERTIES = 26, ///< ::ur_device_partition_properties_t
246+
UR_STRUCTURE_TYPE_KERNEL_ARG_MEM_OBJ_PROPERTIES = 27, ///< ::ur_kernel_arg_mem_obj_properties_t
247+
UR_STRUCTURE_TYPE_PHYSICAL_MEM_PROPERTIES = 28, ///< ::ur_physical_mem_properties_t
248+
UR_STRUCTURE_TYPE_KERNEL_ARG_POINTER_PROPERTIES = 29, ///< ::ur_kernel_arg_pointer_properties_t
249+
UR_STRUCTURE_TYPE_KERNEL_ARG_SAMPLER_PROPERTIES = 30, ///< ::ur_kernel_arg_sampler_properties_t
250+
UR_STRUCTURE_TYPE_KERNEL_EXEC_INFO_PROPERTIES = 31, ///< ::ur_kernel_exec_info_properties_t
251+
UR_STRUCTURE_TYPE_KERNEL_ARG_VALUE_PROPERTIES = 32, ///< ::ur_kernel_arg_value_properties_t
252+
UR_STRUCTURE_TYPE_KERNEL_ARG_LOCAL_PROPERTIES = 33, ///< ::ur_kernel_arg_local_properties_t
253+
UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC = 0x1000, ///< ::ur_exp_command_buffer_desc_t
254+
UR_STRUCTURE_TYPE_EXP_SAMPLER_MIP_PROPERTIES = 0x2000, ///< ::ur_exp_sampler_mip_properties_t
255+
UR_STRUCTURE_TYPE_EXP_INTEROP_MEM_DESC = 0x2001, ///< ::ur_exp_interop_mem_desc_t
256+
UR_STRUCTURE_TYPE_EXP_INTEROP_SEMAPHORE_DESC = 0x2002, ///< ::ur_exp_interop_semaphore_desc_t
257+
UR_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR = 0x2003, ///< ::ur_exp_file_descriptor_t
258+
UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE = 0x2004, ///< ::ur_exp_win32_handle_t
259+
UR_STRUCTURE_TYPE_EXP_LAYERED_IMAGE_PROPERTIES = 0x2005, ///< ::ur_exp_layered_image_properties_t
259260
/// @cond
260261
UR_STRUCTURE_TYPE_FORCE_UINT32 = 0x7fffffff
261262
/// @endcond
@@ -7026,6 +7027,21 @@ typedef struct ur_exp_interop_semaphore_desc_t {
70267027

70277028
} ur_exp_interop_semaphore_desc_t;
70287029

7030+
///////////////////////////////////////////////////////////////////////////////
7031+
/// @brief Describes layered image properties
7032+
///
7033+
/// @details
7034+
/// - Specify these properties in ::urBindlessImagesUnsampledImageCreateExp
7035+
/// or ::urBindlessImagesSampledImageCreateExp via ::ur_image_desc_t as
7036+
/// part of a `pNext` chain.
7037+
typedef struct ur_exp_layered_image_properties_t {
7038+
ur_structure_type_t stype; ///< [in] type of this structure, must be
7039+
///< ::UR_STRUCTURE_TYPE_EXP_LAYERED_IMAGE_PROPERTIES
7040+
void *pNext; ///< [in,out][optional] pointer to extension-specific structure
7041+
uint32_t numLayers; ///< [in] number of layers the image should have
7042+
7043+
} ur_exp_layered_image_properties_t;
7044+
70297045
///////////////////////////////////////////////////////////////////////////////
70307046
/// @brief USM allocate pitched memory
70317047
///

scripts/core/EXP-BINDLESS-IMAGES.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ Enums
6868
${X}_STRUCTURE_TYPE_EXP_INTEROP_SEMAPHORE_DESC
6969
${X}_STRUCTURE_TYPE_EXP_FILE_DESCRIPTOR
7070
${X}_STRUCTURE_TYPE_EXP_WIN32_HANDLE
71+
${X}_STRUCTURE_TYPE_EXP_LAYERED_IMAGE_PROPERTIES
7172

7273
* ${x}_device_info_t
7374
* ${X}_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP
@@ -127,6 +128,7 @@ Types
127128
* ${x}_exp_interop_semaphore_desc_t
128129
* ${x}_exp_file_descriptor_t
129130
* ${x}_exp_win32_handle_t
131+
* ${x}_exp_layered_image_properties_t
130132

131133
Functions
132134
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -176,6 +178,8 @@ Changelog
176178
+----------+-------------------------------------------------------------+
177179
| 6.0 | Fix semaphore import function parameter name. |
178180
+----------+-------------------------------------------------------------+
181+
| 7.0 | Add layered image properties struct. |
182+
+----------+-------------------------------------------------------------+
179183

180184
Contributors
181185
--------------------------------------------------------------------------------

scripts/core/exp-bindless-images.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,9 @@ etors:
107107
- name: EXP_WIN32_HANDLE
108108
desc: $x_exp_win32_handle_t
109109
value: "0x2004"
110+
- name: EXP_LAYERED_IMAGE_PROPERTIES
111+
desc: $x_exp_layered_image_properties_t
112+
value: "0x2005"
110113
--- #--------------------------------------------------------------------------
111114
type: enum
112115
extend: true
@@ -186,6 +189,20 @@ name: $x_exp_interop_semaphore_desc_t
186189
base: $x_base_desc_t
187190
members: []
188191
--- #--------------------------------------------------------------------------
192+
type: struct
193+
desc: "Describes layered image properties"
194+
details:
195+
- Specify these properties in $xBindlessImagesUnsampledImageCreateExp or
196+
$xBindlessImagesSampledImageCreateExp via $x_image_desc_t as part of a
197+
`pNext` chain.
198+
class: $xBindlessImages
199+
name: $x_exp_layered_image_properties_t
200+
base: $x_base_properties_t
201+
members:
202+
- type: uint32_t
203+
name: numLayers
204+
desc: "[in] number of layers the image should have"
205+
--- #--------------------------------------------------------------------------
189206
type: function
190207
desc: "USM allocate pitched memory"
191208
class: $xUSM

source/common/ur_params.hpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,9 @@ inline std::ostream &
438438
operator<<(std::ostream &os,
439439
const struct ur_exp_interop_semaphore_desc_t params);
440440
inline std::ostream &
441+
operator<<(std::ostream &os,
442+
const struct ur_exp_layered_image_properties_t params);
443+
inline std::ostream &
441444
operator<<(std::ostream &os, const struct ur_exp_command_buffer_desc_t params);
442445
inline std::ostream &operator<<(std::ostream &os,
443446
enum ur_exp_peer_info_t value);
@@ -1318,6 +1321,10 @@ inline std::ostream &operator<<(std::ostream &os,
13181321
case UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE:
13191322
os << "UR_STRUCTURE_TYPE_EXP_WIN32_HANDLE";
13201323
break;
1324+
1325+
case UR_STRUCTURE_TYPE_EXP_LAYERED_IMAGE_PROPERTIES:
1326+
os << "UR_STRUCTURE_TYPE_EXP_LAYERED_IMAGE_PROPERTIES";
1327+
break;
13211328
default:
13221329
os << "unknown enumerator";
13231330
break;
@@ -1566,6 +1573,12 @@ inline void serializeStruct(std::ostream &os, const void *ptr) {
15661573
(const ur_exp_win32_handle_t *)ptr;
15671574
ur_params::serializePtr(os, pstruct);
15681575
} break;
1576+
1577+
case UR_STRUCTURE_TYPE_EXP_LAYERED_IMAGE_PROPERTIES: {
1578+
const ur_exp_layered_image_properties_t *pstruct =
1579+
(const ur_exp_layered_image_properties_t *)ptr;
1580+
ur_params::serializePtr(os, pstruct);
1581+
} break;
15691582
default:
15701583
os << "unknown enumerator";
15711584
break;
@@ -9892,6 +9905,28 @@ operator<<(std::ostream &os,
98929905
return os;
98939906
}
98949907
inline std::ostream &
9908+
operator<<(std::ostream &os,
9909+
const struct ur_exp_layered_image_properties_t params) {
9910+
os << "(struct ur_exp_layered_image_properties_t){";
9911+
9912+
os << ".stype = ";
9913+
9914+
os << (params.stype);
9915+
9916+
os << ", ";
9917+
os << ".pNext = ";
9918+
9919+
ur_params::serializeStruct(os, (params.pNext));
9920+
9921+
os << ", ";
9922+
os << ".numLayers = ";
9923+
9924+
os << (params.numLayers);
9925+
9926+
os << "}";
9927+
return os;
9928+
}
9929+
inline std::ostream &
98959930
operator<<(std::ostream &os, const struct ur_exp_command_buffer_desc_t params) {
98969931
os << "(struct ur_exp_command_buffer_desc_t){";
98979932

0 commit comments

Comments
 (0)