/* * * Copyright (C) 2019-2021 Intel Corporation * * SPDX-License-Identifier: MIT * * @file ze_ddi.h * @version v1.12-r1.12.15 * */ #ifndef _ZE_DDI_H #define _ZE_DDI_H #if defined(__cplusplus) #pragma once #endif #include "ze_api.h" #if defined(__cplusplus) extern "C" { #endif /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeRTASBuilderCreateExp typedef ze_result_t (ZE_APICALL *ze_pfnRTASBuilderCreateExp_t)( ze_driver_handle_t, const ze_rtas_builder_exp_desc_t*, ze_rtas_builder_exp_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeRTASBuilderGetBuildPropertiesExp typedef ze_result_t (ZE_APICALL *ze_pfnRTASBuilderGetBuildPropertiesExp_t)( ze_rtas_builder_exp_handle_t, const ze_rtas_builder_build_op_exp_desc_t*, ze_rtas_builder_exp_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeRTASBuilderBuildExp typedef ze_result_t (ZE_APICALL *ze_pfnRTASBuilderBuildExp_t)( ze_rtas_builder_exp_handle_t, const ze_rtas_builder_build_op_exp_desc_t*, void*, size_t, void*, size_t, ze_rtas_parallel_operation_exp_handle_t, void*, ze_rtas_aabb_exp_t*, size_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeRTASBuilderDestroyExp typedef ze_result_t (ZE_APICALL *ze_pfnRTASBuilderDestroyExp_t)( ze_rtas_builder_exp_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of RTASBuilderExp functions pointers typedef struct _ze_rtas_builder_exp_dditable_t { ze_pfnRTASBuilderCreateExp_t pfnCreateExp; ze_pfnRTASBuilderGetBuildPropertiesExp_t pfnGetBuildPropertiesExp; ze_pfnRTASBuilderBuildExp_t pfnBuildExp; ze_pfnRTASBuilderDestroyExp_t pfnDestroyExp; } ze_rtas_builder_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's RTASBuilderExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetRTASBuilderExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_rtas_builder_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetRTASBuilderExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetRTASBuilderExpProcAddrTable_t)( ze_api_version_t, ze_rtas_builder_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeRTASParallelOperationCreateExp typedef ze_result_t (ZE_APICALL *ze_pfnRTASParallelOperationCreateExp_t)( ze_driver_handle_t, ze_rtas_parallel_operation_exp_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeRTASParallelOperationGetPropertiesExp typedef ze_result_t (ZE_APICALL *ze_pfnRTASParallelOperationGetPropertiesExp_t)( ze_rtas_parallel_operation_exp_handle_t, ze_rtas_parallel_operation_exp_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeRTASParallelOperationJoinExp typedef ze_result_t (ZE_APICALL *ze_pfnRTASParallelOperationJoinExp_t)( ze_rtas_parallel_operation_exp_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeRTASParallelOperationDestroyExp typedef ze_result_t (ZE_APICALL *ze_pfnRTASParallelOperationDestroyExp_t)( ze_rtas_parallel_operation_exp_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of RTASParallelOperationExp functions pointers typedef struct _ze_rtas_parallel_operation_exp_dditable_t { ze_pfnRTASParallelOperationCreateExp_t pfnCreateExp; ze_pfnRTASParallelOperationGetPropertiesExp_t pfnGetPropertiesExp; ze_pfnRTASParallelOperationJoinExp_t pfnJoinExp; ze_pfnRTASParallelOperationDestroyExp_t pfnDestroyExp; } ze_rtas_parallel_operation_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's RTASParallelOperationExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetRTASParallelOperationExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_rtas_parallel_operation_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetRTASParallelOperationExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetRTASParallelOperationExpProcAddrTable_t)( ze_api_version_t, ze_rtas_parallel_operation_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeInit typedef ze_result_t (ZE_APICALL *ze_pfnInit_t)( ze_init_flags_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeInitDrivers typedef ze_result_t (ZE_APICALL *ze_pfnInitDrivers_t)( uint32_t*, ze_driver_handle_t*, ze_init_driver_type_desc_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Global functions pointers typedef struct _ze_global_dditable_t { ze_pfnInit_t pfnInit; ze_pfnInitDrivers_t pfnInitDrivers; } ze_global_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Global table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetGlobalProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_global_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetGlobalProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetGlobalProcAddrTable_t)( ze_api_version_t, ze_global_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDriverGet typedef ze_result_t (ZE_APICALL *ze_pfnDriverGet_t)( uint32_t*, ze_driver_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDriverGetApiVersion typedef ze_result_t (ZE_APICALL *ze_pfnDriverGetApiVersion_t)( ze_driver_handle_t, ze_api_version_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDriverGetProperties typedef ze_result_t (ZE_APICALL *ze_pfnDriverGetProperties_t)( ze_driver_handle_t, ze_driver_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDriverGetIpcProperties typedef ze_result_t (ZE_APICALL *ze_pfnDriverGetIpcProperties_t)( ze_driver_handle_t, ze_driver_ipc_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDriverGetExtensionProperties typedef ze_result_t (ZE_APICALL *ze_pfnDriverGetExtensionProperties_t)( ze_driver_handle_t, uint32_t*, ze_driver_extension_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDriverGetExtensionFunctionAddress typedef ze_result_t (ZE_APICALL *ze_pfnDriverGetExtensionFunctionAddress_t)( ze_driver_handle_t, const char*, void** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDriverGetLastErrorDescription typedef ze_result_t (ZE_APICALL *ze_pfnDriverGetLastErrorDescription_t)( ze_driver_handle_t, const char** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Driver functions pointers typedef struct _ze_driver_dditable_t { ze_pfnDriverGet_t pfnGet; ze_pfnDriverGetApiVersion_t pfnGetApiVersion; ze_pfnDriverGetProperties_t pfnGetProperties; ze_pfnDriverGetIpcProperties_t pfnGetIpcProperties; ze_pfnDriverGetExtensionProperties_t pfnGetExtensionProperties; ze_pfnDriverGetExtensionFunctionAddress_t pfnGetExtensionFunctionAddress; ze_pfnDriverGetLastErrorDescription_t pfnGetLastErrorDescription; } ze_driver_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Driver table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetDriverProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_driver_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetDriverProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetDriverProcAddrTable_t)( ze_api_version_t, ze_driver_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDriverRTASFormatCompatibilityCheckExp typedef ze_result_t (ZE_APICALL *ze_pfnDriverRTASFormatCompatibilityCheckExp_t)( ze_driver_handle_t, ze_rtas_format_exp_t, ze_rtas_format_exp_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of DriverExp functions pointers typedef struct _ze_driver_exp_dditable_t { ze_pfnDriverRTASFormatCompatibilityCheckExp_t pfnRTASFormatCompatibilityCheckExp; } ze_driver_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's DriverExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetDriverExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_driver_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetDriverExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetDriverExpProcAddrTable_t)( ze_api_version_t, ze_driver_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGet typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGet_t)( ze_driver_handle_t, uint32_t*, ze_device_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetSubDevices typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetSubDevices_t)( ze_device_handle_t, uint32_t*, ze_device_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetProperties typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetProperties_t)( ze_device_handle_t, ze_device_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetComputeProperties typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetComputeProperties_t)( ze_device_handle_t, ze_device_compute_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetModuleProperties typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetModuleProperties_t)( ze_device_handle_t, ze_device_module_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetCommandQueueGroupProperties typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetCommandQueueGroupProperties_t)( ze_device_handle_t, uint32_t*, ze_command_queue_group_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetMemoryProperties typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetMemoryProperties_t)( ze_device_handle_t, uint32_t*, ze_device_memory_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetMemoryAccessProperties typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetMemoryAccessProperties_t)( ze_device_handle_t, ze_device_memory_access_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetCacheProperties typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetCacheProperties_t)( ze_device_handle_t, uint32_t*, ze_device_cache_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetImageProperties typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetImageProperties_t)( ze_device_handle_t, ze_device_image_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetExternalMemoryProperties typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetExternalMemoryProperties_t)( ze_device_handle_t, ze_device_external_memory_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetP2PProperties typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetP2PProperties_t)( ze_device_handle_t, ze_device_handle_t, ze_device_p2p_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceCanAccessPeer typedef ze_result_t (ZE_APICALL *ze_pfnDeviceCanAccessPeer_t)( ze_device_handle_t, ze_device_handle_t, ze_bool_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetStatus typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetStatus_t)( ze_device_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetGlobalTimestamps typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetGlobalTimestamps_t)( ze_device_handle_t, uint64_t*, uint64_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceReserveCacheExt typedef ze_result_t (ZE_APICALL *ze_pfnDeviceReserveCacheExt_t)( ze_device_handle_t, size_t, size_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceSetCacheAdviceExt typedef ze_result_t (ZE_APICALL *ze_pfnDeviceSetCacheAdviceExt_t)( ze_device_handle_t, void*, size_t, ze_cache_ext_region_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDevicePciGetPropertiesExt typedef ze_result_t (ZE_APICALL *ze_pfnDevicePciGetPropertiesExt_t)( ze_device_handle_t, ze_pci_ext_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetRootDevice typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetRootDevice_t)( ze_device_handle_t, ze_device_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceImportExternalSemaphoreExt typedef ze_result_t (ZE_APICALL *ze_pfnDeviceImportExternalSemaphoreExt_t)( ze_device_handle_t, const ze_external_semaphore_ext_desc_t*, ze_external_semaphore_ext_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceReleaseExternalSemaphoreExt typedef ze_result_t (ZE_APICALL *ze_pfnDeviceReleaseExternalSemaphoreExt_t)( ze_external_semaphore_ext_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Device functions pointers typedef struct _ze_device_dditable_t { ze_pfnDeviceGet_t pfnGet; ze_pfnDeviceGetSubDevices_t pfnGetSubDevices; ze_pfnDeviceGetProperties_t pfnGetProperties; ze_pfnDeviceGetComputeProperties_t pfnGetComputeProperties; ze_pfnDeviceGetModuleProperties_t pfnGetModuleProperties; ze_pfnDeviceGetCommandQueueGroupProperties_t pfnGetCommandQueueGroupProperties; ze_pfnDeviceGetMemoryProperties_t pfnGetMemoryProperties; ze_pfnDeviceGetMemoryAccessProperties_t pfnGetMemoryAccessProperties; ze_pfnDeviceGetCacheProperties_t pfnGetCacheProperties; ze_pfnDeviceGetImageProperties_t pfnGetImageProperties; ze_pfnDeviceGetExternalMemoryProperties_t pfnGetExternalMemoryProperties; ze_pfnDeviceGetP2PProperties_t pfnGetP2PProperties; ze_pfnDeviceCanAccessPeer_t pfnCanAccessPeer; ze_pfnDeviceGetStatus_t pfnGetStatus; ze_pfnDeviceGetGlobalTimestamps_t pfnGetGlobalTimestamps; ze_pfnDeviceReserveCacheExt_t pfnReserveCacheExt; ze_pfnDeviceSetCacheAdviceExt_t pfnSetCacheAdviceExt; ze_pfnDevicePciGetPropertiesExt_t pfnPciGetPropertiesExt; ze_pfnDeviceGetRootDevice_t pfnGetRootDevice; ze_pfnDeviceImportExternalSemaphoreExt_t pfnImportExternalSemaphoreExt; ze_pfnDeviceReleaseExternalSemaphoreExt_t pfnReleaseExternalSemaphoreExt; } ze_device_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Device table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetDeviceProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_device_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetDeviceProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetDeviceProcAddrTable_t)( ze_api_version_t, ze_device_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeDeviceGetFabricVertexExp typedef ze_result_t (ZE_APICALL *ze_pfnDeviceGetFabricVertexExp_t)( ze_device_handle_t, ze_fabric_vertex_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of DeviceExp functions pointers typedef struct _ze_device_exp_dditable_t { ze_pfnDeviceGetFabricVertexExp_t pfnGetFabricVertexExp; } ze_device_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's DeviceExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetDeviceExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_device_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetDeviceExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetDeviceExpProcAddrTable_t)( ze_api_version_t, ze_device_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeContextCreate typedef ze_result_t (ZE_APICALL *ze_pfnContextCreate_t)( ze_driver_handle_t, const ze_context_desc_t*, ze_context_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeContextDestroy typedef ze_result_t (ZE_APICALL *ze_pfnContextDestroy_t)( ze_context_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeContextGetStatus typedef ze_result_t (ZE_APICALL *ze_pfnContextGetStatus_t)( ze_context_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeContextSystemBarrier typedef ze_result_t (ZE_APICALL *ze_pfnContextSystemBarrier_t)( ze_context_handle_t, ze_device_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeContextMakeMemoryResident typedef ze_result_t (ZE_APICALL *ze_pfnContextMakeMemoryResident_t)( ze_context_handle_t, ze_device_handle_t, void*, size_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeContextEvictMemory typedef ze_result_t (ZE_APICALL *ze_pfnContextEvictMemory_t)( ze_context_handle_t, ze_device_handle_t, void*, size_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeContextMakeImageResident typedef ze_result_t (ZE_APICALL *ze_pfnContextMakeImageResident_t)( ze_context_handle_t, ze_device_handle_t, ze_image_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeContextEvictImage typedef ze_result_t (ZE_APICALL *ze_pfnContextEvictImage_t)( ze_context_handle_t, ze_device_handle_t, ze_image_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeContextCreateEx typedef ze_result_t (ZE_APICALL *ze_pfnContextCreateEx_t)( ze_driver_handle_t, const ze_context_desc_t*, uint32_t, ze_device_handle_t*, ze_context_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Context functions pointers typedef struct _ze_context_dditable_t { ze_pfnContextCreate_t pfnCreate; ze_pfnContextDestroy_t pfnDestroy; ze_pfnContextGetStatus_t pfnGetStatus; ze_pfnContextSystemBarrier_t pfnSystemBarrier; ze_pfnContextMakeMemoryResident_t pfnMakeMemoryResident; ze_pfnContextEvictMemory_t pfnEvictMemory; ze_pfnContextMakeImageResident_t pfnMakeImageResident; ze_pfnContextEvictImage_t pfnEvictImage; ze_pfnContextCreateEx_t pfnCreateEx; } ze_context_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Context table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetContextProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_context_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetContextProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetContextProcAddrTable_t)( ze_api_version_t, ze_context_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandQueueCreate typedef ze_result_t (ZE_APICALL *ze_pfnCommandQueueCreate_t)( ze_context_handle_t, ze_device_handle_t, const ze_command_queue_desc_t*, ze_command_queue_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandQueueDestroy typedef ze_result_t (ZE_APICALL *ze_pfnCommandQueueDestroy_t)( ze_command_queue_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandQueueExecuteCommandLists typedef ze_result_t (ZE_APICALL *ze_pfnCommandQueueExecuteCommandLists_t)( ze_command_queue_handle_t, uint32_t, ze_command_list_handle_t*, ze_fence_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandQueueSynchronize typedef ze_result_t (ZE_APICALL *ze_pfnCommandQueueSynchronize_t)( ze_command_queue_handle_t, uint64_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandQueueGetOrdinal typedef ze_result_t (ZE_APICALL *ze_pfnCommandQueueGetOrdinal_t)( ze_command_queue_handle_t, uint32_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandQueueGetIndex typedef ze_result_t (ZE_APICALL *ze_pfnCommandQueueGetIndex_t)( ze_command_queue_handle_t, uint32_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of CommandQueue functions pointers typedef struct _ze_command_queue_dditable_t { ze_pfnCommandQueueCreate_t pfnCreate; ze_pfnCommandQueueDestroy_t pfnDestroy; ze_pfnCommandQueueExecuteCommandLists_t pfnExecuteCommandLists; ze_pfnCommandQueueSynchronize_t pfnSynchronize; ze_pfnCommandQueueGetOrdinal_t pfnGetOrdinal; ze_pfnCommandQueueGetIndex_t pfnGetIndex; } ze_command_queue_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's CommandQueue table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetCommandQueueProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_command_queue_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetCommandQueueProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetCommandQueueProcAddrTable_t)( ze_api_version_t, ze_command_queue_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListCreate typedef ze_result_t (ZE_APICALL *ze_pfnCommandListCreate_t)( ze_context_handle_t, ze_device_handle_t, const ze_command_list_desc_t*, ze_command_list_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListCreateImmediate typedef ze_result_t (ZE_APICALL *ze_pfnCommandListCreateImmediate_t)( ze_context_handle_t, ze_device_handle_t, const ze_command_queue_desc_t*, ze_command_list_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListDestroy typedef ze_result_t (ZE_APICALL *ze_pfnCommandListDestroy_t)( ze_command_list_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListClose typedef ze_result_t (ZE_APICALL *ze_pfnCommandListClose_t)( ze_command_list_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListReset typedef ze_result_t (ZE_APICALL *ze_pfnCommandListReset_t)( ze_command_list_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendWriteGlobalTimestamp typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendWriteGlobalTimestamp_t)( ze_command_list_handle_t, uint64_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendBarrier typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendBarrier_t)( ze_command_list_handle_t, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendMemoryRangesBarrier typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendMemoryRangesBarrier_t)( ze_command_list_handle_t, uint32_t, const size_t*, const void**, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendMemoryCopy typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendMemoryCopy_t)( ze_command_list_handle_t, void*, const void*, size_t, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendMemoryFill typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendMemoryFill_t)( ze_command_list_handle_t, void*, const void*, size_t, size_t, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendMemoryCopyRegion typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendMemoryCopyRegion_t)( ze_command_list_handle_t, void*, const ze_copy_region_t*, uint32_t, uint32_t, const void*, const ze_copy_region_t*, uint32_t, uint32_t, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendMemoryCopyFromContext typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendMemoryCopyFromContext_t)( ze_command_list_handle_t, void*, ze_context_handle_t, const void*, size_t, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendImageCopy typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendImageCopy_t)( ze_command_list_handle_t, ze_image_handle_t, ze_image_handle_t, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendImageCopyRegion typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendImageCopyRegion_t)( ze_command_list_handle_t, ze_image_handle_t, ze_image_handle_t, const ze_image_region_t*, const ze_image_region_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendImageCopyToMemory typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendImageCopyToMemory_t)( ze_command_list_handle_t, void*, ze_image_handle_t, const ze_image_region_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendImageCopyFromMemory typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendImageCopyFromMemory_t)( ze_command_list_handle_t, ze_image_handle_t, const void*, const ze_image_region_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendMemoryPrefetch typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendMemoryPrefetch_t)( ze_command_list_handle_t, const void*, size_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendMemAdvise typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendMemAdvise_t)( ze_command_list_handle_t, ze_device_handle_t, const void*, size_t, ze_memory_advice_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendSignalEvent typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendSignalEvent_t)( ze_command_list_handle_t, ze_event_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendWaitOnEvents typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendWaitOnEvents_t)( ze_command_list_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendEventReset typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendEventReset_t)( ze_command_list_handle_t, ze_event_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendQueryKernelTimestamps typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendQueryKernelTimestamps_t)( ze_command_list_handle_t, uint32_t, ze_event_handle_t*, void*, const size_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendLaunchKernel typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendLaunchKernel_t)( ze_command_list_handle_t, ze_kernel_handle_t, const ze_group_count_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendLaunchCooperativeKernel typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendLaunchCooperativeKernel_t)( ze_command_list_handle_t, ze_kernel_handle_t, const ze_group_count_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendLaunchKernelIndirect typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendLaunchKernelIndirect_t)( ze_command_list_handle_t, ze_kernel_handle_t, const ze_group_count_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendLaunchMultipleKernelsIndirect typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendLaunchMultipleKernelsIndirect_t)( ze_command_list_handle_t, uint32_t, ze_kernel_handle_t*, const uint32_t*, const ze_group_count_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendImageCopyToMemoryExt typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendImageCopyToMemoryExt_t)( ze_command_list_handle_t, void*, ze_image_handle_t, const ze_image_region_t*, uint32_t, uint32_t, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendImageCopyFromMemoryExt typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendImageCopyFromMemoryExt_t)( ze_command_list_handle_t, ze_image_handle_t, const void*, const ze_image_region_t*, uint32_t, uint32_t, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListHostSynchronize typedef ze_result_t (ZE_APICALL *ze_pfnCommandListHostSynchronize_t)( ze_command_list_handle_t, uint64_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListGetDeviceHandle typedef ze_result_t (ZE_APICALL *ze_pfnCommandListGetDeviceHandle_t)( ze_command_list_handle_t, ze_device_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListGetContextHandle typedef ze_result_t (ZE_APICALL *ze_pfnCommandListGetContextHandle_t)( ze_command_list_handle_t, ze_context_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListGetOrdinal typedef ze_result_t (ZE_APICALL *ze_pfnCommandListGetOrdinal_t)( ze_command_list_handle_t, uint32_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListImmediateGetIndex typedef ze_result_t (ZE_APICALL *ze_pfnCommandListImmediateGetIndex_t)( ze_command_list_handle_t, uint32_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListIsImmediate typedef ze_result_t (ZE_APICALL *ze_pfnCommandListIsImmediate_t)( ze_command_list_handle_t, ze_bool_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendSignalExternalSemaphoreExt typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendSignalExternalSemaphoreExt_t)( ze_command_list_handle_t, uint32_t, ze_external_semaphore_ext_handle_t*, ze_external_semaphore_signal_params_ext_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListAppendWaitExternalSemaphoreExt typedef ze_result_t (ZE_APICALL *ze_pfnCommandListAppendWaitExternalSemaphoreExt_t)( ze_command_list_handle_t, uint32_t, ze_external_semaphore_ext_handle_t*, ze_external_semaphore_wait_params_ext_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of CommandList functions pointers typedef struct _ze_command_list_dditable_t { ze_pfnCommandListCreate_t pfnCreate; ze_pfnCommandListCreateImmediate_t pfnCreateImmediate; ze_pfnCommandListDestroy_t pfnDestroy; ze_pfnCommandListClose_t pfnClose; ze_pfnCommandListReset_t pfnReset; ze_pfnCommandListAppendWriteGlobalTimestamp_t pfnAppendWriteGlobalTimestamp; ze_pfnCommandListAppendBarrier_t pfnAppendBarrier; ze_pfnCommandListAppendMemoryRangesBarrier_t pfnAppendMemoryRangesBarrier; ze_pfnCommandListAppendMemoryCopy_t pfnAppendMemoryCopy; ze_pfnCommandListAppendMemoryFill_t pfnAppendMemoryFill; ze_pfnCommandListAppendMemoryCopyRegion_t pfnAppendMemoryCopyRegion; ze_pfnCommandListAppendMemoryCopyFromContext_t pfnAppendMemoryCopyFromContext; ze_pfnCommandListAppendImageCopy_t pfnAppendImageCopy; ze_pfnCommandListAppendImageCopyRegion_t pfnAppendImageCopyRegion; ze_pfnCommandListAppendImageCopyToMemory_t pfnAppendImageCopyToMemory; ze_pfnCommandListAppendImageCopyFromMemory_t pfnAppendImageCopyFromMemory; ze_pfnCommandListAppendMemoryPrefetch_t pfnAppendMemoryPrefetch; ze_pfnCommandListAppendMemAdvise_t pfnAppendMemAdvise; ze_pfnCommandListAppendSignalEvent_t pfnAppendSignalEvent; ze_pfnCommandListAppendWaitOnEvents_t pfnAppendWaitOnEvents; ze_pfnCommandListAppendEventReset_t pfnAppendEventReset; ze_pfnCommandListAppendQueryKernelTimestamps_t pfnAppendQueryKernelTimestamps; ze_pfnCommandListAppendLaunchKernel_t pfnAppendLaunchKernel; ze_pfnCommandListAppendLaunchCooperativeKernel_t pfnAppendLaunchCooperativeKernel; ze_pfnCommandListAppendLaunchKernelIndirect_t pfnAppendLaunchKernelIndirect; ze_pfnCommandListAppendLaunchMultipleKernelsIndirect_t pfnAppendLaunchMultipleKernelsIndirect; ze_pfnCommandListAppendImageCopyToMemoryExt_t pfnAppendImageCopyToMemoryExt; ze_pfnCommandListAppendImageCopyFromMemoryExt_t pfnAppendImageCopyFromMemoryExt; ze_pfnCommandListHostSynchronize_t pfnHostSynchronize; ze_pfnCommandListGetDeviceHandle_t pfnGetDeviceHandle; ze_pfnCommandListGetContextHandle_t pfnGetContextHandle; ze_pfnCommandListGetOrdinal_t pfnGetOrdinal; ze_pfnCommandListImmediateGetIndex_t pfnImmediateGetIndex; ze_pfnCommandListIsImmediate_t pfnIsImmediate; ze_pfnCommandListAppendSignalExternalSemaphoreExt_t pfnAppendSignalExternalSemaphoreExt; ze_pfnCommandListAppendWaitExternalSemaphoreExt_t pfnAppendWaitExternalSemaphoreExt; } ze_command_list_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's CommandList table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetCommandListProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_command_list_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetCommandListProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetCommandListProcAddrTable_t)( ze_api_version_t, ze_command_list_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListCreateCloneExp typedef ze_result_t (ZE_APICALL *ze_pfnCommandListCreateCloneExp_t)( ze_command_list_handle_t, ze_command_list_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListImmediateAppendCommandListsExp typedef ze_result_t (ZE_APICALL *ze_pfnCommandListImmediateAppendCommandListsExp_t)( ze_command_list_handle_t, uint32_t, ze_command_list_handle_t*, ze_event_handle_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListGetNextCommandIdExp typedef ze_result_t (ZE_APICALL *ze_pfnCommandListGetNextCommandIdExp_t)( ze_command_list_handle_t, const ze_mutable_command_id_exp_desc_t*, uint64_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListUpdateMutableCommandsExp typedef ze_result_t (ZE_APICALL *ze_pfnCommandListUpdateMutableCommandsExp_t)( ze_command_list_handle_t, const ze_mutable_commands_exp_desc_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListUpdateMutableCommandSignalEventExp typedef ze_result_t (ZE_APICALL *ze_pfnCommandListUpdateMutableCommandSignalEventExp_t)( ze_command_list_handle_t, uint64_t, ze_event_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListUpdateMutableCommandWaitEventsExp typedef ze_result_t (ZE_APICALL *ze_pfnCommandListUpdateMutableCommandWaitEventsExp_t)( ze_command_list_handle_t, uint64_t, uint32_t, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListGetNextCommandIdWithKernelsExp typedef ze_result_t (ZE_APICALL *ze_pfnCommandListGetNextCommandIdWithKernelsExp_t)( ze_command_list_handle_t, const ze_mutable_command_id_exp_desc_t*, uint32_t, ze_kernel_handle_t*, uint64_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeCommandListUpdateMutableCommandKernelsExp typedef ze_result_t (ZE_APICALL *ze_pfnCommandListUpdateMutableCommandKernelsExp_t)( ze_command_list_handle_t, uint32_t, uint64_t*, ze_kernel_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of CommandListExp functions pointers typedef struct _ze_command_list_exp_dditable_t { ze_pfnCommandListCreateCloneExp_t pfnCreateCloneExp; ze_pfnCommandListImmediateAppendCommandListsExp_t pfnImmediateAppendCommandListsExp; ze_pfnCommandListGetNextCommandIdExp_t pfnGetNextCommandIdExp; ze_pfnCommandListUpdateMutableCommandsExp_t pfnUpdateMutableCommandsExp; ze_pfnCommandListUpdateMutableCommandSignalEventExp_t pfnUpdateMutableCommandSignalEventExp; ze_pfnCommandListUpdateMutableCommandWaitEventsExp_t pfnUpdateMutableCommandWaitEventsExp; ze_pfnCommandListGetNextCommandIdWithKernelsExp_t pfnGetNextCommandIdWithKernelsExp; ze_pfnCommandListUpdateMutableCommandKernelsExp_t pfnUpdateMutableCommandKernelsExp; } ze_command_list_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's CommandListExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetCommandListExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_command_list_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetCommandListExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetCommandListExpProcAddrTable_t)( ze_api_version_t, ze_command_list_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeImageGetProperties typedef ze_result_t (ZE_APICALL *ze_pfnImageGetProperties_t)( ze_device_handle_t, const ze_image_desc_t*, ze_image_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeImageCreate typedef ze_result_t (ZE_APICALL *ze_pfnImageCreate_t)( ze_context_handle_t, ze_device_handle_t, const ze_image_desc_t*, ze_image_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeImageDestroy typedef ze_result_t (ZE_APICALL *ze_pfnImageDestroy_t)( ze_image_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeImageGetAllocPropertiesExt typedef ze_result_t (ZE_APICALL *ze_pfnImageGetAllocPropertiesExt_t)( ze_context_handle_t, ze_image_handle_t, ze_image_allocation_ext_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeImageViewCreateExt typedef ze_result_t (ZE_APICALL *ze_pfnImageViewCreateExt_t)( ze_context_handle_t, ze_device_handle_t, const ze_image_desc_t*, ze_image_handle_t, ze_image_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Image functions pointers typedef struct _ze_image_dditable_t { ze_pfnImageGetProperties_t pfnGetProperties; ze_pfnImageCreate_t pfnCreate; ze_pfnImageDestroy_t pfnDestroy; ze_pfnImageGetAllocPropertiesExt_t pfnGetAllocPropertiesExt; ze_pfnImageViewCreateExt_t pfnViewCreateExt; } ze_image_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Image table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetImageProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_image_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetImageProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetImageProcAddrTable_t)( ze_api_version_t, ze_image_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeImageGetMemoryPropertiesExp typedef ze_result_t (ZE_APICALL *ze_pfnImageGetMemoryPropertiesExp_t)( ze_image_handle_t, ze_image_memory_properties_exp_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeImageViewCreateExp typedef ze_result_t (ZE_APICALL *ze_pfnImageViewCreateExp_t)( ze_context_handle_t, ze_device_handle_t, const ze_image_desc_t*, ze_image_handle_t, ze_image_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeImageGetDeviceOffsetExp typedef ze_result_t (ZE_APICALL *ze_pfnImageGetDeviceOffsetExp_t)( ze_image_handle_t, uint64_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of ImageExp functions pointers typedef struct _ze_image_exp_dditable_t { ze_pfnImageGetMemoryPropertiesExp_t pfnGetMemoryPropertiesExp; ze_pfnImageViewCreateExp_t pfnViewCreateExp; ze_pfnImageGetDeviceOffsetExp_t pfnGetDeviceOffsetExp; } ze_image_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's ImageExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetImageExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_image_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetImageExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetImageExpProcAddrTable_t)( ze_api_version_t, ze_image_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemAllocShared typedef ze_result_t (ZE_APICALL *ze_pfnMemAllocShared_t)( ze_context_handle_t, const ze_device_mem_alloc_desc_t*, const ze_host_mem_alloc_desc_t*, size_t, size_t, ze_device_handle_t, void** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemAllocDevice typedef ze_result_t (ZE_APICALL *ze_pfnMemAllocDevice_t)( ze_context_handle_t, const ze_device_mem_alloc_desc_t*, size_t, size_t, ze_device_handle_t, void** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemAllocHost typedef ze_result_t (ZE_APICALL *ze_pfnMemAllocHost_t)( ze_context_handle_t, const ze_host_mem_alloc_desc_t*, size_t, size_t, void** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemFree typedef ze_result_t (ZE_APICALL *ze_pfnMemFree_t)( ze_context_handle_t, void* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemGetAllocProperties typedef ze_result_t (ZE_APICALL *ze_pfnMemGetAllocProperties_t)( ze_context_handle_t, const void*, ze_memory_allocation_properties_t*, ze_device_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemGetAddressRange typedef ze_result_t (ZE_APICALL *ze_pfnMemGetAddressRange_t)( ze_context_handle_t, const void*, void**, size_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemGetIpcHandle typedef ze_result_t (ZE_APICALL *ze_pfnMemGetIpcHandle_t)( ze_context_handle_t, const void*, ze_ipc_mem_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemOpenIpcHandle typedef ze_result_t (ZE_APICALL *ze_pfnMemOpenIpcHandle_t)( ze_context_handle_t, ze_device_handle_t, ze_ipc_mem_handle_t, ze_ipc_memory_flags_t, void** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemCloseIpcHandle typedef ze_result_t (ZE_APICALL *ze_pfnMemCloseIpcHandle_t)( ze_context_handle_t, const void* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemFreeExt typedef ze_result_t (ZE_APICALL *ze_pfnMemFreeExt_t)( ze_context_handle_t, const ze_memory_free_ext_desc_t*, void* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemPutIpcHandle typedef ze_result_t (ZE_APICALL *ze_pfnMemPutIpcHandle_t)( ze_context_handle_t, ze_ipc_mem_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemGetPitchFor2dImage typedef ze_result_t (ZE_APICALL *ze_pfnMemGetPitchFor2dImage_t)( ze_context_handle_t, ze_device_handle_t, size_t, size_t, unsigned int, size_t * ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Mem functions pointers typedef struct _ze_mem_dditable_t { ze_pfnMemAllocShared_t pfnAllocShared; ze_pfnMemAllocDevice_t pfnAllocDevice; ze_pfnMemAllocHost_t pfnAllocHost; ze_pfnMemFree_t pfnFree; ze_pfnMemGetAllocProperties_t pfnGetAllocProperties; ze_pfnMemGetAddressRange_t pfnGetAddressRange; ze_pfnMemGetIpcHandle_t pfnGetIpcHandle; ze_pfnMemOpenIpcHandle_t pfnOpenIpcHandle; ze_pfnMemCloseIpcHandle_t pfnCloseIpcHandle; ze_pfnMemFreeExt_t pfnFreeExt; ze_pfnMemPutIpcHandle_t pfnPutIpcHandle; ze_pfnMemGetPitchFor2dImage_t pfnGetPitchFor2dImage; } ze_mem_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Mem table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetMemProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_mem_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetMemProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetMemProcAddrTable_t)( ze_api_version_t, ze_mem_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemGetIpcHandleFromFileDescriptorExp typedef ze_result_t (ZE_APICALL *ze_pfnMemGetIpcHandleFromFileDescriptorExp_t)( ze_context_handle_t, uint64_t, ze_ipc_mem_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemGetFileDescriptorFromIpcHandleExp typedef ze_result_t (ZE_APICALL *ze_pfnMemGetFileDescriptorFromIpcHandleExp_t)( ze_context_handle_t, ze_ipc_mem_handle_t, uint64_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemSetAtomicAccessAttributeExp typedef ze_result_t (ZE_APICALL *ze_pfnMemSetAtomicAccessAttributeExp_t)( ze_context_handle_t, ze_device_handle_t, const void*, size_t, ze_memory_atomic_attr_exp_flags_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeMemGetAtomicAccessAttributeExp typedef ze_result_t (ZE_APICALL *ze_pfnMemGetAtomicAccessAttributeExp_t)( ze_context_handle_t, ze_device_handle_t, const void*, size_t, ze_memory_atomic_attr_exp_flags_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of MemExp functions pointers typedef struct _ze_mem_exp_dditable_t { ze_pfnMemGetIpcHandleFromFileDescriptorExp_t pfnGetIpcHandleFromFileDescriptorExp; ze_pfnMemGetFileDescriptorFromIpcHandleExp_t pfnGetFileDescriptorFromIpcHandleExp; ze_pfnMemSetAtomicAccessAttributeExp_t pfnSetAtomicAccessAttributeExp; ze_pfnMemGetAtomicAccessAttributeExp_t pfnGetAtomicAccessAttributeExp; } ze_mem_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's MemExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetMemExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_mem_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetMemExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetMemExpProcAddrTable_t)( ze_api_version_t, ze_mem_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFenceCreate typedef ze_result_t (ZE_APICALL *ze_pfnFenceCreate_t)( ze_command_queue_handle_t, const ze_fence_desc_t*, ze_fence_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFenceDestroy typedef ze_result_t (ZE_APICALL *ze_pfnFenceDestroy_t)( ze_fence_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFenceHostSynchronize typedef ze_result_t (ZE_APICALL *ze_pfnFenceHostSynchronize_t)( ze_fence_handle_t, uint64_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFenceQueryStatus typedef ze_result_t (ZE_APICALL *ze_pfnFenceQueryStatus_t)( ze_fence_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFenceReset typedef ze_result_t (ZE_APICALL *ze_pfnFenceReset_t)( ze_fence_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Fence functions pointers typedef struct _ze_fence_dditable_t { ze_pfnFenceCreate_t pfnCreate; ze_pfnFenceDestroy_t pfnDestroy; ze_pfnFenceHostSynchronize_t pfnHostSynchronize; ze_pfnFenceQueryStatus_t pfnQueryStatus; ze_pfnFenceReset_t pfnReset; } ze_fence_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Fence table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetFenceProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_fence_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetFenceProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetFenceProcAddrTable_t)( ze_api_version_t, ze_fence_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventPoolCreate typedef ze_result_t (ZE_APICALL *ze_pfnEventPoolCreate_t)( ze_context_handle_t, const ze_event_pool_desc_t*, uint32_t, ze_device_handle_t*, ze_event_pool_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventPoolDestroy typedef ze_result_t (ZE_APICALL *ze_pfnEventPoolDestroy_t)( ze_event_pool_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventPoolGetIpcHandle typedef ze_result_t (ZE_APICALL *ze_pfnEventPoolGetIpcHandle_t)( ze_event_pool_handle_t, ze_ipc_event_pool_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventPoolOpenIpcHandle typedef ze_result_t (ZE_APICALL *ze_pfnEventPoolOpenIpcHandle_t)( ze_context_handle_t, ze_ipc_event_pool_handle_t, ze_event_pool_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventPoolCloseIpcHandle typedef ze_result_t (ZE_APICALL *ze_pfnEventPoolCloseIpcHandle_t)( ze_event_pool_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventPoolPutIpcHandle typedef ze_result_t (ZE_APICALL *ze_pfnEventPoolPutIpcHandle_t)( ze_context_handle_t, ze_ipc_event_pool_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventPoolGetContextHandle typedef ze_result_t (ZE_APICALL *ze_pfnEventPoolGetContextHandle_t)( ze_event_pool_handle_t, ze_context_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventPoolGetFlags typedef ze_result_t (ZE_APICALL *ze_pfnEventPoolGetFlags_t)( ze_event_pool_handle_t, ze_event_pool_flags_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of EventPool functions pointers typedef struct _ze_event_pool_dditable_t { ze_pfnEventPoolCreate_t pfnCreate; ze_pfnEventPoolDestroy_t pfnDestroy; ze_pfnEventPoolGetIpcHandle_t pfnGetIpcHandle; ze_pfnEventPoolOpenIpcHandle_t pfnOpenIpcHandle; ze_pfnEventPoolCloseIpcHandle_t pfnCloseIpcHandle; ze_pfnEventPoolPutIpcHandle_t pfnPutIpcHandle; ze_pfnEventPoolGetContextHandle_t pfnGetContextHandle; ze_pfnEventPoolGetFlags_t pfnGetFlags; } ze_event_pool_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's EventPool table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetEventPoolProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_event_pool_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetEventPoolProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetEventPoolProcAddrTable_t)( ze_api_version_t, ze_event_pool_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventCreate typedef ze_result_t (ZE_APICALL *ze_pfnEventCreate_t)( ze_event_pool_handle_t, const ze_event_desc_t*, ze_event_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventDestroy typedef ze_result_t (ZE_APICALL *ze_pfnEventDestroy_t)( ze_event_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventHostSignal typedef ze_result_t (ZE_APICALL *ze_pfnEventHostSignal_t)( ze_event_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventHostSynchronize typedef ze_result_t (ZE_APICALL *ze_pfnEventHostSynchronize_t)( ze_event_handle_t, uint64_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventQueryStatus typedef ze_result_t (ZE_APICALL *ze_pfnEventQueryStatus_t)( ze_event_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventHostReset typedef ze_result_t (ZE_APICALL *ze_pfnEventHostReset_t)( ze_event_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventQueryKernelTimestamp typedef ze_result_t (ZE_APICALL *ze_pfnEventQueryKernelTimestamp_t)( ze_event_handle_t, ze_kernel_timestamp_result_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventQueryKernelTimestampsExt typedef ze_result_t (ZE_APICALL *ze_pfnEventQueryKernelTimestampsExt_t)( ze_event_handle_t, ze_device_handle_t, uint32_t*, ze_event_query_kernel_timestamps_results_ext_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventGetEventPool typedef ze_result_t (ZE_APICALL *ze_pfnEventGetEventPool_t)( ze_event_handle_t, ze_event_pool_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventGetSignalScope typedef ze_result_t (ZE_APICALL *ze_pfnEventGetSignalScope_t)( ze_event_handle_t, ze_event_scope_flags_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventGetWaitScope typedef ze_result_t (ZE_APICALL *ze_pfnEventGetWaitScope_t)( ze_event_handle_t, ze_event_scope_flags_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Event functions pointers typedef struct _ze_event_dditable_t { ze_pfnEventCreate_t pfnCreate; ze_pfnEventDestroy_t pfnDestroy; ze_pfnEventHostSignal_t pfnHostSignal; ze_pfnEventHostSynchronize_t pfnHostSynchronize; ze_pfnEventQueryStatus_t pfnQueryStatus; ze_pfnEventHostReset_t pfnHostReset; ze_pfnEventQueryKernelTimestamp_t pfnQueryKernelTimestamp; ze_pfnEventQueryKernelTimestampsExt_t pfnQueryKernelTimestampsExt; ze_pfnEventGetEventPool_t pfnGetEventPool; ze_pfnEventGetSignalScope_t pfnGetSignalScope; ze_pfnEventGetWaitScope_t pfnGetWaitScope; } ze_event_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Event table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetEventProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_event_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetEventProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetEventProcAddrTable_t)( ze_api_version_t, ze_event_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeEventQueryTimestampsExp typedef ze_result_t (ZE_APICALL *ze_pfnEventQueryTimestampsExp_t)( ze_event_handle_t, ze_device_handle_t, uint32_t*, ze_kernel_timestamp_result_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of EventExp functions pointers typedef struct _ze_event_exp_dditable_t { ze_pfnEventQueryTimestampsExp_t pfnQueryTimestampsExp; } ze_event_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's EventExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetEventExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_event_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetEventExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetEventExpProcAddrTable_t)( ze_api_version_t, ze_event_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleCreate typedef ze_result_t (ZE_APICALL *ze_pfnModuleCreate_t)( ze_context_handle_t, ze_device_handle_t, const ze_module_desc_t*, ze_module_handle_t*, ze_module_build_log_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleDestroy typedef ze_result_t (ZE_APICALL *ze_pfnModuleDestroy_t)( ze_module_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleDynamicLink typedef ze_result_t (ZE_APICALL *ze_pfnModuleDynamicLink_t)( uint32_t, ze_module_handle_t*, ze_module_build_log_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleGetNativeBinary typedef ze_result_t (ZE_APICALL *ze_pfnModuleGetNativeBinary_t)( ze_module_handle_t, size_t*, uint8_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleGetGlobalPointer typedef ze_result_t (ZE_APICALL *ze_pfnModuleGetGlobalPointer_t)( ze_module_handle_t, const char*, size_t*, void** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleGetKernelNames typedef ze_result_t (ZE_APICALL *ze_pfnModuleGetKernelNames_t)( ze_module_handle_t, uint32_t*, const char** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleGetProperties typedef ze_result_t (ZE_APICALL *ze_pfnModuleGetProperties_t)( ze_module_handle_t, ze_module_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleGetFunctionPointer typedef ze_result_t (ZE_APICALL *ze_pfnModuleGetFunctionPointer_t)( ze_module_handle_t, const char*, void** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleInspectLinkageExt typedef ze_result_t (ZE_APICALL *ze_pfnModuleInspectLinkageExt_t)( ze_linkage_inspection_ext_desc_t*, uint32_t, ze_module_handle_t*, ze_module_build_log_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Module functions pointers typedef struct _ze_module_dditable_t { ze_pfnModuleCreate_t pfnCreate; ze_pfnModuleDestroy_t pfnDestroy; ze_pfnModuleDynamicLink_t pfnDynamicLink; ze_pfnModuleGetNativeBinary_t pfnGetNativeBinary; ze_pfnModuleGetGlobalPointer_t pfnGetGlobalPointer; ze_pfnModuleGetKernelNames_t pfnGetKernelNames; ze_pfnModuleGetProperties_t pfnGetProperties; ze_pfnModuleGetFunctionPointer_t pfnGetFunctionPointer; ze_pfnModuleInspectLinkageExt_t pfnInspectLinkageExt; } ze_module_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Module table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetModuleProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_module_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetModuleProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetModuleProcAddrTable_t)( ze_api_version_t, ze_module_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleBuildLogDestroy typedef ze_result_t (ZE_APICALL *ze_pfnModuleBuildLogDestroy_t)( ze_module_build_log_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeModuleBuildLogGetString typedef ze_result_t (ZE_APICALL *ze_pfnModuleBuildLogGetString_t)( ze_module_build_log_handle_t, size_t*, char* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of ModuleBuildLog functions pointers typedef struct _ze_module_build_log_dditable_t { ze_pfnModuleBuildLogDestroy_t pfnDestroy; ze_pfnModuleBuildLogGetString_t pfnGetString; } ze_module_build_log_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's ModuleBuildLog table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetModuleBuildLogProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_module_build_log_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetModuleBuildLogProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetModuleBuildLogProcAddrTable_t)( ze_api_version_t, ze_module_build_log_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelCreate typedef ze_result_t (ZE_APICALL *ze_pfnKernelCreate_t)( ze_module_handle_t, const ze_kernel_desc_t*, ze_kernel_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelDestroy typedef ze_result_t (ZE_APICALL *ze_pfnKernelDestroy_t)( ze_kernel_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelSetCacheConfig typedef ze_result_t (ZE_APICALL *ze_pfnKernelSetCacheConfig_t)( ze_kernel_handle_t, ze_cache_config_flags_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelSetGroupSize typedef ze_result_t (ZE_APICALL *ze_pfnKernelSetGroupSize_t)( ze_kernel_handle_t, uint32_t, uint32_t, uint32_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelSuggestGroupSize typedef ze_result_t (ZE_APICALL *ze_pfnKernelSuggestGroupSize_t)( ze_kernel_handle_t, uint32_t, uint32_t, uint32_t, uint32_t*, uint32_t*, uint32_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelSuggestMaxCooperativeGroupCount typedef ze_result_t (ZE_APICALL *ze_pfnKernelSuggestMaxCooperativeGroupCount_t)( ze_kernel_handle_t, uint32_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelSetArgumentValue typedef ze_result_t (ZE_APICALL *ze_pfnKernelSetArgumentValue_t)( ze_kernel_handle_t, uint32_t, size_t, const void* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelSetIndirectAccess typedef ze_result_t (ZE_APICALL *ze_pfnKernelSetIndirectAccess_t)( ze_kernel_handle_t, ze_kernel_indirect_access_flags_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelGetIndirectAccess typedef ze_result_t (ZE_APICALL *ze_pfnKernelGetIndirectAccess_t)( ze_kernel_handle_t, ze_kernel_indirect_access_flags_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelGetSourceAttributes typedef ze_result_t (ZE_APICALL *ze_pfnKernelGetSourceAttributes_t)( ze_kernel_handle_t, uint32_t*, char** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelGetProperties typedef ze_result_t (ZE_APICALL *ze_pfnKernelGetProperties_t)( ze_kernel_handle_t, ze_kernel_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelGetName typedef ze_result_t (ZE_APICALL *ze_pfnKernelGetName_t)( ze_kernel_handle_t, size_t*, char* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Kernel functions pointers typedef struct _ze_kernel_dditable_t { ze_pfnKernelCreate_t pfnCreate; ze_pfnKernelDestroy_t pfnDestroy; ze_pfnKernelSetCacheConfig_t pfnSetCacheConfig; ze_pfnKernelSetGroupSize_t pfnSetGroupSize; ze_pfnKernelSuggestGroupSize_t pfnSuggestGroupSize; ze_pfnKernelSuggestMaxCooperativeGroupCount_t pfnSuggestMaxCooperativeGroupCount; ze_pfnKernelSetArgumentValue_t pfnSetArgumentValue; ze_pfnKernelSetIndirectAccess_t pfnSetIndirectAccess; ze_pfnKernelGetIndirectAccess_t pfnGetIndirectAccess; ze_pfnKernelGetSourceAttributes_t pfnGetSourceAttributes; ze_pfnKernelGetProperties_t pfnGetProperties; ze_pfnKernelGetName_t pfnGetName; } ze_kernel_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Kernel table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetKernelProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_kernel_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetKernelProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetKernelProcAddrTable_t)( ze_api_version_t, ze_kernel_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelSetGlobalOffsetExp typedef ze_result_t (ZE_APICALL *ze_pfnKernelSetGlobalOffsetExp_t)( ze_kernel_handle_t, uint32_t, uint32_t, uint32_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelSchedulingHintExp typedef ze_result_t (ZE_APICALL *ze_pfnKernelSchedulingHintExp_t)( ze_kernel_handle_t, ze_scheduling_hint_exp_desc_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeKernelGetBinaryExp typedef ze_result_t (ZE_APICALL *ze_pfnKernelGetBinaryExp_t)( ze_kernel_handle_t, size_t*, uint8_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of KernelExp functions pointers typedef struct _ze_kernel_exp_dditable_t { ze_pfnKernelSetGlobalOffsetExp_t pfnSetGlobalOffsetExp; ze_pfnKernelSchedulingHintExp_t pfnSchedulingHintExp; ze_pfnKernelGetBinaryExp_t pfnGetBinaryExp; } ze_kernel_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's KernelExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetKernelExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_kernel_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetKernelExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetKernelExpProcAddrTable_t)( ze_api_version_t, ze_kernel_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeSamplerCreate typedef ze_result_t (ZE_APICALL *ze_pfnSamplerCreate_t)( ze_context_handle_t, ze_device_handle_t, const ze_sampler_desc_t*, ze_sampler_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeSamplerDestroy typedef ze_result_t (ZE_APICALL *ze_pfnSamplerDestroy_t)( ze_sampler_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of Sampler functions pointers typedef struct _ze_sampler_dditable_t { ze_pfnSamplerCreate_t pfnCreate; ze_pfnSamplerDestroy_t pfnDestroy; } ze_sampler_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's Sampler table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetSamplerProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_sampler_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetSamplerProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetSamplerProcAddrTable_t)( ze_api_version_t, ze_sampler_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zePhysicalMemCreate typedef ze_result_t (ZE_APICALL *ze_pfnPhysicalMemCreate_t)( ze_context_handle_t, ze_device_handle_t, ze_physical_mem_desc_t*, ze_physical_mem_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zePhysicalMemDestroy typedef ze_result_t (ZE_APICALL *ze_pfnPhysicalMemDestroy_t)( ze_context_handle_t, ze_physical_mem_handle_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of PhysicalMem functions pointers typedef struct _ze_physical_mem_dditable_t { ze_pfnPhysicalMemCreate_t pfnCreate; ze_pfnPhysicalMemDestroy_t pfnDestroy; } ze_physical_mem_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's PhysicalMem table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetPhysicalMemProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_physical_mem_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetPhysicalMemProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetPhysicalMemProcAddrTable_t)( ze_api_version_t, ze_physical_mem_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeVirtualMemReserve typedef ze_result_t (ZE_APICALL *ze_pfnVirtualMemReserve_t)( ze_context_handle_t, const void*, size_t, void** ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeVirtualMemFree typedef ze_result_t (ZE_APICALL *ze_pfnVirtualMemFree_t)( ze_context_handle_t, const void*, size_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeVirtualMemQueryPageSize typedef ze_result_t (ZE_APICALL *ze_pfnVirtualMemQueryPageSize_t)( ze_context_handle_t, ze_device_handle_t, size_t, size_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeVirtualMemMap typedef ze_result_t (ZE_APICALL *ze_pfnVirtualMemMap_t)( ze_context_handle_t, const void*, size_t, ze_physical_mem_handle_t, size_t, ze_memory_access_attribute_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeVirtualMemUnmap typedef ze_result_t (ZE_APICALL *ze_pfnVirtualMemUnmap_t)( ze_context_handle_t, const void*, size_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeVirtualMemSetAccessAttribute typedef ze_result_t (ZE_APICALL *ze_pfnVirtualMemSetAccessAttribute_t)( ze_context_handle_t, const void*, size_t, ze_memory_access_attribute_t ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeVirtualMemGetAccessAttribute typedef ze_result_t (ZE_APICALL *ze_pfnVirtualMemGetAccessAttribute_t)( ze_context_handle_t, const void*, size_t, ze_memory_access_attribute_t*, size_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of VirtualMem functions pointers typedef struct _ze_virtual_mem_dditable_t { ze_pfnVirtualMemReserve_t pfnReserve; ze_pfnVirtualMemFree_t pfnFree; ze_pfnVirtualMemQueryPageSize_t pfnQueryPageSize; ze_pfnVirtualMemMap_t pfnMap; ze_pfnVirtualMemUnmap_t pfnUnmap; ze_pfnVirtualMemSetAccessAttribute_t pfnSetAccessAttribute; ze_pfnVirtualMemGetAccessAttribute_t pfnGetAccessAttribute; } ze_virtual_mem_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's VirtualMem table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetVirtualMemProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_virtual_mem_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetVirtualMemProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetVirtualMemProcAddrTable_t)( ze_api_version_t, ze_virtual_mem_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFabricVertexGetExp typedef ze_result_t (ZE_APICALL *ze_pfnFabricVertexGetExp_t)( ze_driver_handle_t, uint32_t*, ze_fabric_vertex_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFabricVertexGetSubVerticesExp typedef ze_result_t (ZE_APICALL *ze_pfnFabricVertexGetSubVerticesExp_t)( ze_fabric_vertex_handle_t, uint32_t*, ze_fabric_vertex_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFabricVertexGetPropertiesExp typedef ze_result_t (ZE_APICALL *ze_pfnFabricVertexGetPropertiesExp_t)( ze_fabric_vertex_handle_t, ze_fabric_vertex_exp_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFabricVertexGetDeviceExp typedef ze_result_t (ZE_APICALL *ze_pfnFabricVertexGetDeviceExp_t)( ze_fabric_vertex_handle_t, ze_device_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of FabricVertexExp functions pointers typedef struct _ze_fabric_vertex_exp_dditable_t { ze_pfnFabricVertexGetExp_t pfnGetExp; ze_pfnFabricVertexGetSubVerticesExp_t pfnGetSubVerticesExp; ze_pfnFabricVertexGetPropertiesExp_t pfnGetPropertiesExp; ze_pfnFabricVertexGetDeviceExp_t pfnGetDeviceExp; } ze_fabric_vertex_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's FabricVertexExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetFabricVertexExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_fabric_vertex_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetFabricVertexExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetFabricVertexExpProcAddrTable_t)( ze_api_version_t, ze_fabric_vertex_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFabricEdgeGetExp typedef ze_result_t (ZE_APICALL *ze_pfnFabricEdgeGetExp_t)( ze_fabric_vertex_handle_t, ze_fabric_vertex_handle_t, uint32_t*, ze_fabric_edge_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFabricEdgeGetVerticesExp typedef ze_result_t (ZE_APICALL *ze_pfnFabricEdgeGetVerticesExp_t)( ze_fabric_edge_handle_t, ze_fabric_vertex_handle_t*, ze_fabric_vertex_handle_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeFabricEdgeGetPropertiesExp typedef ze_result_t (ZE_APICALL *ze_pfnFabricEdgeGetPropertiesExp_t)( ze_fabric_edge_handle_t, ze_fabric_edge_exp_properties_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Table of FabricEdgeExp functions pointers typedef struct _ze_fabric_edge_exp_dditable_t { ze_pfnFabricEdgeGetExp_t pfnGetExp; ze_pfnFabricEdgeGetVerticesExp_t pfnGetVerticesExp; ze_pfnFabricEdgeGetPropertiesExp_t pfnGetPropertiesExp; } ze_fabric_edge_exp_dditable_t; /////////////////////////////////////////////////////////////////////////////// /// @brief Exported function for filling application's FabricEdgeExp table /// with current process' addresses /// /// @returns /// - ::ZE_RESULT_SUCCESS /// - ::ZE_RESULT_ERROR_UNINITIALIZED /// - ::ZE_RESULT_ERROR_INVALID_NULL_POINTER /// - ::ZE_RESULT_ERROR_UNSUPPORTED_VERSION ZE_DLLEXPORT ze_result_t ZE_APICALL zeGetFabricEdgeExpProcAddrTable( ze_api_version_t version, ///< [in] API version requested ze_fabric_edge_exp_dditable_t* pDdiTable ///< [in,out] pointer to table of DDI function pointers ); /////////////////////////////////////////////////////////////////////////////// /// @brief Function-pointer for zeGetFabricEdgeExpProcAddrTable typedef ze_result_t (ZE_APICALL *ze_pfnGetFabricEdgeExpProcAddrTable_t)( ze_api_version_t, ze_fabric_edge_exp_dditable_t* ); /////////////////////////////////////////////////////////////////////////////// /// @brief Container for all DDI tables typedef struct _ze_dditable_t { ze_rtas_builder_exp_dditable_t RTASBuilderExp; ze_rtas_parallel_operation_exp_dditable_t RTASParallelOperationExp; ze_global_dditable_t Global; ze_driver_dditable_t Driver; ze_driver_exp_dditable_t DriverExp; ze_device_dditable_t Device; ze_device_exp_dditable_t DeviceExp; ze_context_dditable_t Context; ze_command_queue_dditable_t CommandQueue; ze_command_list_dditable_t CommandList; ze_command_list_exp_dditable_t CommandListExp; ze_image_dditable_t Image; ze_image_exp_dditable_t ImageExp; ze_mem_dditable_t Mem; ze_mem_exp_dditable_t MemExp; ze_fence_dditable_t Fence; ze_event_pool_dditable_t EventPool; ze_event_dditable_t Event; ze_event_exp_dditable_t EventExp; ze_module_dditable_t Module; ze_module_build_log_dditable_t ModuleBuildLog; ze_kernel_dditable_t Kernel; ze_kernel_exp_dditable_t KernelExp; ze_sampler_dditable_t Sampler; ze_physical_mem_dditable_t PhysicalMem; ze_virtual_mem_dditable_t VirtualMem; ze_fabric_vertex_exp_dditable_t FabricVertexExp; ze_fabric_edge_exp_dditable_t FabricEdgeExp; } ze_dditable_t; /// @brief Container for all DDI tables with version and tables set by the Driver typedef struct _ze_dditable_driver_t { ze_api_version_t version; uint8_t isValidFlag; ze_rtas_builder_exp_dditable_t * RTASBuilderExp; ze_rtas_parallel_operation_exp_dditable_t * RTASParallelOperationExp; ze_global_dditable_t * Global; ze_driver_dditable_t * Driver; ze_driver_exp_dditable_t * DriverExp; ze_device_dditable_t * Device; ze_device_exp_dditable_t * DeviceExp; ze_context_dditable_t * Context; ze_command_queue_dditable_t * CommandQueue; ze_command_list_dditable_t * CommandList; ze_command_list_exp_dditable_t * CommandListExp; ze_image_dditable_t * Image; ze_image_exp_dditable_t * ImageExp; ze_mem_dditable_t * Mem; ze_mem_exp_dditable_t * MemExp; ze_fence_dditable_t * Fence; ze_event_pool_dditable_t * EventPool; ze_event_dditable_t * Event; ze_event_exp_dditable_t * EventExp; ze_module_dditable_t * Module; ze_module_build_log_dditable_t * ModuleBuildLog; ze_kernel_dditable_t * Kernel; ze_kernel_exp_dditable_t * KernelExp; ze_sampler_dditable_t * Sampler; ze_physical_mem_dditable_t * PhysicalMem; ze_virtual_mem_dditable_t * VirtualMem; ze_fabric_vertex_exp_dditable_t * FabricVertexExp; ze_fabric_edge_exp_dditable_t * FabricEdgeExp; } ze_dditable_driver_t; #if defined(__cplusplus) } // extern "C" #endif #endif // _ZE_DDI_H