409 lines
19 KiB
C++
409 lines
19 KiB
C++
/*
|
|
* Copyright (C) 2020-2021 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
*/
|
|
|
|
#include "level_zero/experimental/source/tracing/tracing_imp.h"
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGet_Tracing(ze_driver_handle_t hDriver,
|
|
uint32_t *pCount,
|
|
ze_device_handle_t *phDevices) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGet,
|
|
hDriver,
|
|
pCount,
|
|
phDevices);
|
|
|
|
ze_device_get_params_t tracerParams;
|
|
tracerParams.phDriver = &hDriver;
|
|
tracerParams.ppCount = &pCount;
|
|
tracerParams.pphDevices = &phDevices;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetCb_t, Device, pfnGetCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGet,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDriver,
|
|
*tracerParams.ppCount,
|
|
*tracerParams.pphDevices);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetProperties_Tracing(ze_device_handle_t hDevice,
|
|
ze_device_properties_t *pDeviceProperties) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetProperties,
|
|
hDevice,
|
|
pDeviceProperties);
|
|
|
|
ze_device_get_properties_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.ppDeviceProperties = &pDeviceProperties;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetPropertiesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetPropertiesCb_t, Device, pfnGetPropertiesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetProperties,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.ppDeviceProperties);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetComputeProperties_Tracing(ze_device_handle_t hDevice,
|
|
ze_device_compute_properties_t *pComputeProperties) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetComputeProperties,
|
|
hDevice,
|
|
pComputeProperties);
|
|
|
|
ze_device_get_compute_properties_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.ppComputeProperties = &pComputeProperties;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetComputePropertiesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetComputePropertiesCb_t, Device, pfnGetComputePropertiesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetComputeProperties,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.ppComputeProperties);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetMemoryProperties_Tracing(ze_device_handle_t hDevice,
|
|
uint32_t *pCount,
|
|
ze_device_memory_properties_t *pMemProperties) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetMemoryProperties,
|
|
hDevice,
|
|
pCount,
|
|
pMemProperties);
|
|
|
|
ze_device_get_memory_properties_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.ppCount = &pCount;
|
|
tracerParams.ppMemProperties = &pMemProperties;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetMemoryPropertiesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetMemoryPropertiesCb_t, Device, pfnGetMemoryPropertiesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetMemoryProperties,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.ppCount,
|
|
*tracerParams.ppMemProperties);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetCacheProperties_Tracing(ze_device_handle_t hDevice,
|
|
uint32_t *pCount,
|
|
ze_device_cache_properties_t *pCacheProperties) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetCacheProperties,
|
|
hDevice,
|
|
pCount,
|
|
pCacheProperties);
|
|
|
|
ze_device_get_cache_properties_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.ppCount = &pCount;
|
|
tracerParams.ppCacheProperties = &pCacheProperties;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetCachePropertiesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetCachePropertiesCb_t, Device, pfnGetCachePropertiesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetCacheProperties,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.ppCount,
|
|
*tracerParams.ppCacheProperties);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetImageProperties_Tracing(ze_device_handle_t hDevice,
|
|
ze_device_image_properties_t *pImageProperties) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetImageProperties,
|
|
hDevice,
|
|
pImageProperties);
|
|
|
|
ze_device_get_image_properties_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.ppImageProperties = &pImageProperties;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetImagePropertiesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetImagePropertiesCb_t, Device, pfnGetImagePropertiesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetImageProperties,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.ppImageProperties);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetSubDevices_Tracing(ze_device_handle_t hDevice,
|
|
uint32_t *pCount,
|
|
ze_device_handle_t *phSubdevices) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetSubDevices,
|
|
hDevice,
|
|
pCount,
|
|
phSubdevices);
|
|
|
|
ze_device_get_sub_devices_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.ppCount = &pCount;
|
|
tracerParams.pphSubdevices = &phSubdevices;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetSubDevicesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetSubDevicesCb_t, Device, pfnGetSubDevicesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetSubDevices,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.ppCount,
|
|
*tracerParams.pphSubdevices);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetP2PProperties_Tracing(ze_device_handle_t hDevice,
|
|
ze_device_handle_t hPeerDevice,
|
|
ze_device_p2p_properties_t *pP2PProperties) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetP2PProperties,
|
|
hDevice,
|
|
hPeerDevice,
|
|
pP2PProperties);
|
|
|
|
ze_device_get_p2_p_properties_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.phPeerDevice = &hPeerDevice;
|
|
tracerParams.ppP2PProperties = &pP2PProperties;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetP2PPropertiesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetP2PPropertiesCb_t, Device, pfnGetP2PPropertiesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetP2PProperties,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.phPeerDevice,
|
|
*tracerParams.ppP2PProperties);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceCanAccessPeer_Tracing(ze_device_handle_t hDevice,
|
|
ze_device_handle_t hPeerDevice,
|
|
ze_bool_t *value) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnCanAccessPeer,
|
|
hDevice,
|
|
hPeerDevice,
|
|
value);
|
|
|
|
ze_device_can_access_peer_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.phPeerDevice = &hPeerDevice;
|
|
tracerParams.pvalue = &value;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceCanAccessPeerCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceCanAccessPeerCb_t, Device, pfnCanAccessPeerCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnCanAccessPeer,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.phPeerDevice,
|
|
*tracerParams.pvalue);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeKernelSetCacheConfig_Tracing(ze_kernel_handle_t hKernel,
|
|
ze_cache_config_flags_t flags) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Kernel.pfnSetCacheConfig,
|
|
hKernel,
|
|
flags);
|
|
|
|
ze_kernel_set_cache_config_params_t tracerParams;
|
|
tracerParams.phKernel = &hKernel;
|
|
tracerParams.pflags = &flags;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnKernelSetCacheConfigCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnKernelSetCacheConfigCb_t, Kernel, pfnSetCacheConfigCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Kernel.pfnSetCacheConfig,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phKernel,
|
|
*tracerParams.pflags);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetMemoryAccessProperties_Tracing(ze_device_handle_t hDevice,
|
|
ze_device_memory_access_properties_t *pMemAccessProperties) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetMemoryAccessProperties,
|
|
hDevice,
|
|
pMemAccessProperties);
|
|
|
|
ze_device_get_memory_access_properties_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.ppMemAccessProperties = &pMemAccessProperties;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetMemoryAccessPropertiesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetMemoryAccessPropertiesCb_t, Device,
|
|
pfnGetMemoryAccessPropertiesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetMemoryAccessProperties,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.ppMemAccessProperties);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetModuleProperties_Tracing(ze_device_handle_t hDevice,
|
|
ze_device_module_properties_t *pModuleProperties) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetModuleProperties,
|
|
hDevice,
|
|
pModuleProperties);
|
|
|
|
ze_device_get_module_properties_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.ppModuleProperties = &pModuleProperties;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetModulePropertiesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetModulePropertiesCb_t, Device, pfnGetModulePropertiesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetModuleProperties,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.ppModuleProperties);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetCommandQueueGroupProperties_Tracing(ze_device_handle_t hDevice,
|
|
uint32_t *pCount,
|
|
ze_command_queue_group_properties_t *pCommandQueueGroupProperties) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetCommandQueueGroupProperties,
|
|
hDevice,
|
|
pCount,
|
|
pCommandQueueGroupProperties);
|
|
|
|
ze_device_get_command_queue_group_properties_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.ppCount = &pCount;
|
|
tracerParams.ppCommandQueueGroupProperties = &pCommandQueueGroupProperties;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetCommandQueueGroupPropertiesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetCommandQueueGroupPropertiesCb_t, Device, pfnGetCommandQueueGroupPropertiesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetCommandQueueGroupProperties,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.ppCount,
|
|
*tracerParams.ppCommandQueueGroupProperties);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetExternalMemoryProperties_Tracing(ze_device_handle_t hDevice,
|
|
ze_device_external_memory_properties_t *pExternalMemoryProperties) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetExternalMemoryProperties,
|
|
hDevice,
|
|
pExternalMemoryProperties);
|
|
|
|
ze_device_get_external_memory_properties_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
tracerParams.ppExternalMemoryProperties = &pExternalMemoryProperties;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetExternalMemoryPropertiesCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetExternalMemoryPropertiesCb_t, Device, pfnGetExternalMemoryPropertiesCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetExternalMemoryProperties,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice,
|
|
*tracerParams.ppExternalMemoryProperties);
|
|
}
|
|
|
|
ZE_APIEXPORT ze_result_t ZE_APICALL
|
|
zeDeviceGetStatus_Tracing(ze_device_handle_t hDevice) {
|
|
|
|
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Device.pfnGetStatus,
|
|
hDevice);
|
|
|
|
ze_device_get_status_params_t tracerParams;
|
|
tracerParams.phDevice = &hDevice;
|
|
|
|
L0::APITracerCallbackDataImp<ze_pfnDeviceGetStatusCb_t> api_callbackData;
|
|
|
|
ZE_GEN_PER_API_CALLBACK_STATE(api_callbackData, ze_pfnDeviceGetStatusCb_t, Device, pfnGetStatusCb);
|
|
|
|
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Device.pfnGetStatus,
|
|
&tracerParams,
|
|
api_callbackData.apiOrdinal,
|
|
api_callbackData.prologCallbacks,
|
|
api_callbackData.epilogCallbacks,
|
|
*tracerParams.phDevice);
|
|
}
|