@@ -191,6 +191,9 @@ class ur_result_v(IntEnum):
191
191
ERROR_OBJECT_ALLOCATION_FAILURE = 66 ## Objection allocation failure
192
192
ERROR_ADAPTER_SPECIFIC = 67 ## An adapter specific warning/error has been reported and can be
193
193
## retrieved via the urGetLastResult entry point.
194
+ ERROR_INVALID_COMMAND_BUFFER_EXP = 0x1000 ## Invalid Command-Buffer
195
+ ERROR_INVALID_COMMAND_BUFFER_SYNC_POINT_EXP = 0x1001 ## Sync point is not valid for the command-buffer
196
+ ERROR_INVALID_COMMAND_BUFFER_SYNC_POINT_WAIT_LIST_EXP = 0x1002 ## Sync point wait list is invalid
194
197
ERROR_UNKNOWN = 0x7ffffffe ## Unknown or internal error
195
198
196
199
class ur_result_t (c_int ):
@@ -228,6 +231,7 @@ class ur_structure_type_v(IntEnum):
228
231
SAMPLER_NATIVE_PROPERTIES = 24 ## ::ur_sampler_native_properties_t
229
232
QUEUE_NATIVE_DESC = 25 ## ::ur_queue_native_desc_t
230
233
DEVICE_PARTITION_PROPERTIES = 26 ## ::ur_device_partition_properties_t
234
+ EXP_COMMAND_BUFFER_DESC = 27 ## ::ur_exp_command_buffer_desc_t
231
235
232
236
class ur_structure_type_t (c_int ):
233
237
def __str__ (self ):
@@ -1605,6 +1609,7 @@ class ur_command_v(IntEnum):
1605
1609
DEVICE_GLOBAL_VARIABLE_READ = 24 ## Event created by ::urEnqueueDeviceGlobalVariableRead
1606
1610
READ_HOST_PIPE = 25 ## Event created by ::urEnqueueReadHostPipe
1607
1611
WRITE_HOST_PIPE = 26 ## Event created by ::urEnqueueWriteHostPipe
1612
+ COMMAND_BUFFER_ENQUEUE_EXP = 27 ## Event created by ::urCommandBufferEnqueueExp
1608
1613
1609
1614
class ur_command_t (c_int ):
1610
1615
def __str__ (self ):
@@ -1810,13 +1815,22 @@ class ur_function_v(IntEnum):
1810
1815
USM_FREE = 110 ## Enumerator for ::urUSMFree
1811
1816
USM_GET_MEM_ALLOC_INFO = 111 ## Enumerator for ::urUSMGetMemAllocInfo
1812
1817
USM_POOL_CREATE = 112 ## Enumerator for ::urUSMPoolCreate
1818
+ COMMAND_BUFFER_CREATE_EXP = 113 ## Enumerator for ::urCommandBufferCreateExp
1813
1819
PLATFORM_GET_BACKEND_OPTION = 114 ## Enumerator for ::urPlatformGetBackendOption
1814
1820
MEM_BUFFER_CREATE_WITH_NATIVE_HANDLE = 115 ## Enumerator for ::urMemBufferCreateWithNativeHandle
1815
1821
MEM_IMAGE_CREATE_WITH_NATIVE_HANDLE = 116 ## Enumerator for ::urMemImageCreateWithNativeHandle
1816
1822
ENQUEUE_WRITE_HOST_PIPE = 117 ## Enumerator for ::urEnqueueWriteHostPipe
1817
1823
USM_POOL_RETAIN = 118 ## Enumerator for ::urUSMPoolRetain
1818
1824
USM_POOL_RELEASE = 119 ## Enumerator for ::urUSMPoolRelease
1819
1825
USM_POOL_GET_INFO = 120 ## Enumerator for ::urUSMPoolGetInfo
1826
+ COMMAND_BUFFER_RETAIN_EXP = 121 ## Enumerator for ::urCommandBufferRetainExp
1827
+ COMMAND_BUFFER_RELEASE_EXP = 122 ## Enumerator for ::urCommandBufferReleaseExp
1828
+ COMMAND_BUFFER_FINALIZE_EXP = 123 ## Enumerator for ::urCommandBufferFinalizeExp
1829
+ COMMAND_BUFFER_APPEND_KERNEL_LAUNCH_EXP = 125 ## Enumerator for ::urCommandBufferAppendKernelLaunchExp
1830
+ COMMAND_BUFFER_ENQUEUE_EXP = 128 ## Enumerator for ::urCommandBufferEnqueueExp
1831
+ COMMAND_BUFFER_APPEND_MEMCPY_USM_EXP = 129 ## Enumerator for ::urCommandBufferAppendMemcpyUSMExp
1832
+ COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_EXP = 130 ## Enumerator for ::urCommandBufferAppendMembufferCopyExp
1833
+ COMMAND_BUFFER_APPEND_MEMBUFFER_COPY_RECT_EXP = 131 ## Enumerator for ::urCommandBufferAppendMembufferCopyRectExp
1820
1834
1821
1835
class ur_function_t (c_int ):
1822
1836
def __str__ (self ):
@@ -1845,6 +1859,26 @@ def __str__(self):
1845
1859
return hex (self .value )
1846
1860
1847
1861
1862
+ ###############################################################################
1863
+ ## @brief Command-Buffer Descriptor Type
1864
+ class ur_exp_command_buffer_desc_t (Structure ):
1865
+ _fields_ = [
1866
+ ("stype" , ur_structure_type_t ), ## [in] type of this structure, must be
1867
+ ## ::UR_STRUCTURE_TYPE_EXP_COMMAND_BUFFER_DESC
1868
+ ("pNext" , c_void_p ) ## [in][optional] pointer to extension-specific structure
1869
+ ]
1870
+
1871
+ ###############################################################################
1872
+ ## @brief A value that identifies a command inside of a command-buffer, used for
1873
+ ## defining dependencies between commands in the same command-buffer.
1874
+ class ur_exp_command_buffer_sync_point_t (c_ulong ):
1875
+ pass
1876
+
1877
+ ###############################################################################
1878
+ ## @brief Handle of Command-Buffer object
1879
+ class ur_exp_command_buffer_handle_t (c_void_p ):
1880
+ pass
1881
+
1848
1882
###############################################################################
1849
1883
__use_win_types = "Windows" == platform .uname ()[0 ]
1850
1884
@@ -2695,6 +2729,85 @@ class ur_queue_dditable_t(Structure):
2695
2729
("pfnFlush" , c_void_p ) ## _urQueueFlush_t
2696
2730
]
2697
2731
2732
+ ###############################################################################
2733
+ ## @brief Function-pointer for urCommandBufferCreateExp
2734
+ if __use_win_types :
2735
+ _urCommandBufferCreateExp_t = WINFUNCTYPE ( ur_result_t , ur_context_handle_t , ur_device_handle_t , POINTER (ur_exp_command_buffer_desc_t ), POINTER (ur_exp_command_buffer_handle_t ) )
2736
+ else :
2737
+ _urCommandBufferCreateExp_t = CFUNCTYPE ( ur_result_t , ur_context_handle_t , ur_device_handle_t , POINTER (ur_exp_command_buffer_desc_t ), POINTER (ur_exp_command_buffer_handle_t ) )
2738
+
2739
+ ###############################################################################
2740
+ ## @brief Function-pointer for urCommandBufferRetainExp
2741
+ if __use_win_types :
2742
+ _urCommandBufferRetainExp_t = WINFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t )
2743
+ else :
2744
+ _urCommandBufferRetainExp_t = CFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t )
2745
+
2746
+ ###############################################################################
2747
+ ## @brief Function-pointer for urCommandBufferReleaseExp
2748
+ if __use_win_types :
2749
+ _urCommandBufferReleaseExp_t = WINFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t )
2750
+ else :
2751
+ _urCommandBufferReleaseExp_t = CFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t )
2752
+
2753
+ ###############################################################################
2754
+ ## @brief Function-pointer for urCommandBufferFinalizeExp
2755
+ if __use_win_types :
2756
+ _urCommandBufferFinalizeExp_t = WINFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t )
2757
+ else :
2758
+ _urCommandBufferFinalizeExp_t = CFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t )
2759
+
2760
+ ###############################################################################
2761
+ ## @brief Function-pointer for urCommandBufferAppendKernelLaunchExp
2762
+ if __use_win_types :
2763
+ _urCommandBufferAppendKernelLaunchExp_t = WINFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t , ur_kernel_handle_t , c_ulong , POINTER (c_size_t ), POINTER (c_size_t ), POINTER (c_size_t ), c_ulong , POINTER (ur_exp_command_buffer_sync_point_t ), POINTER (ur_exp_command_buffer_sync_point_t ) )
2764
+ else :
2765
+ _urCommandBufferAppendKernelLaunchExp_t = CFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t , ur_kernel_handle_t , c_ulong , POINTER (c_size_t ), POINTER (c_size_t ), POINTER (c_size_t ), c_ulong , POINTER (ur_exp_command_buffer_sync_point_t ), POINTER (ur_exp_command_buffer_sync_point_t ) )
2766
+
2767
+ ###############################################################################
2768
+ ## @brief Function-pointer for urCommandBufferAppendMemcpyUSMExp
2769
+ if __use_win_types :
2770
+ _urCommandBufferAppendMemcpyUSMExp_t = WINFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t , c_void_p , c_void_p , c_size_t , c_ulong , POINTER (ur_exp_command_buffer_sync_point_t ), POINTER (ur_exp_command_buffer_sync_point_t ) )
2771
+ else :
2772
+ _urCommandBufferAppendMemcpyUSMExp_t = CFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t , c_void_p , c_void_p , c_size_t , c_ulong , POINTER (ur_exp_command_buffer_sync_point_t ), POINTER (ur_exp_command_buffer_sync_point_t ) )
2773
+
2774
+ ###############################################################################
2775
+ ## @brief Function-pointer for urCommandBufferAppendMembufferCopyExp
2776
+ if __use_win_types :
2777
+ _urCommandBufferAppendMembufferCopyExp_t = WINFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t , ur_mem_handle_t , ur_mem_handle_t , c_size_t , c_size_t , c_size_t , c_ulong , POINTER (ur_exp_command_buffer_sync_point_t ), POINTER (ur_exp_command_buffer_sync_point_t ) )
2778
+ else :
2779
+ _urCommandBufferAppendMembufferCopyExp_t = CFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t , ur_mem_handle_t , ur_mem_handle_t , c_size_t , c_size_t , c_size_t , c_ulong , POINTER (ur_exp_command_buffer_sync_point_t ), POINTER (ur_exp_command_buffer_sync_point_t ) )
2780
+
2781
+ ###############################################################################
2782
+ ## @brief Function-pointer for urCommandBufferAppendMembufferCopyRectExp
2783
+ if __use_win_types :
2784
+ _urCommandBufferAppendMembufferCopyRectExp_t = WINFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t , ur_mem_handle_t , ur_mem_handle_t , ur_rect_offset_t , ur_rect_offset_t , ur_rect_region_t , c_size_t , c_size_t , c_size_t , c_size_t , c_ulong , POINTER (ur_exp_command_buffer_sync_point_t ), POINTER (ur_exp_command_buffer_sync_point_t ) )
2785
+ else :
2786
+ _urCommandBufferAppendMembufferCopyRectExp_t = CFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t , ur_mem_handle_t , ur_mem_handle_t , ur_rect_offset_t , ur_rect_offset_t , ur_rect_region_t , c_size_t , c_size_t , c_size_t , c_size_t , c_ulong , POINTER (ur_exp_command_buffer_sync_point_t ), POINTER (ur_exp_command_buffer_sync_point_t ) )
2787
+
2788
+ ###############################################################################
2789
+ ## @brief Function-pointer for urCommandBufferEnqueueExp
2790
+ if __use_win_types :
2791
+ _urCommandBufferEnqueueExp_t = WINFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t , ur_queue_handle_t , c_ulong , POINTER (ur_event_handle_t ), POINTER (ur_event_handle_t ) )
2792
+ else :
2793
+ _urCommandBufferEnqueueExp_t = CFUNCTYPE ( ur_result_t , ur_exp_command_buffer_handle_t , ur_queue_handle_t , c_ulong , POINTER (ur_event_handle_t ), POINTER (ur_event_handle_t ) )
2794
+
2795
+
2796
+ ###############################################################################
2797
+ ## @brief Table of CommandBufferExp functions pointers
2798
+ class ur_command_buffer_exp_dditable_t (Structure ):
2799
+ _fields_ = [
2800
+ ("pfnCreateExp" , c_void_p ), ## _urCommandBufferCreateExp_t
2801
+ ("pfnRetainExp" , c_void_p ), ## _urCommandBufferRetainExp_t
2802
+ ("pfnReleaseExp" , c_void_p ), ## _urCommandBufferReleaseExp_t
2803
+ ("pfnFinalizeExp" , c_void_p ), ## _urCommandBufferFinalizeExp_t
2804
+ ("pfnAppendKernelLaunchExp" , c_void_p ), ## _urCommandBufferAppendKernelLaunchExp_t
2805
+ ("pfnAppendMemcpyUSMExp" , c_void_p ), ## _urCommandBufferAppendMemcpyUSMExp_t
2806
+ ("pfnAppendMembufferCopyExp" , c_void_p ), ## _urCommandBufferAppendMembufferCopyExp_t
2807
+ ("pfnAppendMembufferCopyRectExp" , c_void_p ), ## _urCommandBufferAppendMembufferCopyRectExp_t
2808
+ ("pfnEnqueueExp" , c_void_p ) ## _urCommandBufferEnqueueExp_t
2809
+ ]
2810
+
2698
2811
###############################################################################
2699
2812
## @brief Function-pointer for urInit
2700
2813
if __use_win_types :
@@ -2896,6 +3009,7 @@ class ur_dditable_t(Structure):
2896
3009
("Mem" , ur_mem_dditable_t ),
2897
3010
("Enqueue" , ur_enqueue_dditable_t ),
2898
3011
("Queue" , ur_queue_dditable_t ),
3012
+ ("CommandBufferExp" , ur_command_buffer_exp_dditable_t ),
2899
3013
("Global" , ur_global_dditable_t ),
2900
3014
("USM" , ur_usm_dditable_t ),
2901
3015
("Device" , ur_device_dditable_t )
@@ -3096,6 +3210,24 @@ def __init__(self, version : ur_api_version_t):
3096
3210
self .urQueueFinish = _urQueueFinish_t (self .__dditable .Queue .pfnFinish )
3097
3211
self .urQueueFlush = _urQueueFlush_t (self .__dditable .Queue .pfnFlush )
3098
3212
3213
+ # call driver to get function pointers
3214
+ CommandBufferExp = ur_command_buffer_exp_dditable_t ()
3215
+ r = ur_result_v (self .__dll .urGetCommandBufferExpProcAddrTable (version , byref (CommandBufferExp )))
3216
+ if r != ur_result_v .SUCCESS :
3217
+ raise Exception (r )
3218
+ self .__dditable .CommandBufferExp = CommandBufferExp
3219
+
3220
+ # attach function interface to function address
3221
+ self .urCommandBufferCreateExp = _urCommandBufferCreateExp_t (self .__dditable .CommandBufferExp .pfnCreateExp )
3222
+ self .urCommandBufferRetainExp = _urCommandBufferRetainExp_t (self .__dditable .CommandBufferExp .pfnRetainExp )
3223
+ self .urCommandBufferReleaseExp = _urCommandBufferReleaseExp_t (self .__dditable .CommandBufferExp .pfnReleaseExp )
3224
+ self .urCommandBufferFinalizeExp = _urCommandBufferFinalizeExp_t (self .__dditable .CommandBufferExp .pfnFinalizeExp )
3225
+ self .urCommandBufferAppendKernelLaunchExp = _urCommandBufferAppendKernelLaunchExp_t (self .__dditable .CommandBufferExp .pfnAppendKernelLaunchExp )
3226
+ self .urCommandBufferAppendMemcpyUSMExp = _urCommandBufferAppendMemcpyUSMExp_t (self .__dditable .CommandBufferExp .pfnAppendMemcpyUSMExp )
3227
+ self .urCommandBufferAppendMembufferCopyExp = _urCommandBufferAppendMembufferCopyExp_t (self .__dditable .CommandBufferExp .pfnAppendMembufferCopyExp )
3228
+ self .urCommandBufferAppendMembufferCopyRectExp = _urCommandBufferAppendMembufferCopyRectExp_t (self .__dditable .CommandBufferExp .pfnAppendMembufferCopyRectExp )
3229
+ self .urCommandBufferEnqueueExp = _urCommandBufferEnqueueExp_t (self .__dditable .CommandBufferExp .pfnEnqueueExp )
3230
+
3099
3231
# call driver to get function pointers
3100
3232
Global = ur_global_dditable_t ()
3101
3233
r = ur_result_v (self .__dll .urGetGlobalProcAddrTable (version , byref (Global )))
0 commit comments