compute-runtime/level_zero/experimental/source/tracing/tracing_driver_imp.cpp

135 lines
5.9 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
zeDriverGet_Tracing(uint32_t *pCount,
ze_driver_handle_t *phDrivers) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Driver.pfnGet,
pCount,
phDrivers);
ze_driver_get_params_t tracerParams;
tracerParams.ppCount = &pCount;
tracerParams.pphDrivers = &phDrivers;
L0::APITracerCallbackDataImp<ze_pfnDriverGetCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnDriverGetCb_t, Driver, pfnGetCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Driver.pfnGet,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.ppCount,
*tracerParams.pphDrivers);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDriverGetProperties_Tracing(ze_driver_handle_t hDriver,
ze_driver_properties_t *properties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Driver.pfnGetProperties,
hDriver,
properties);
ze_driver_get_properties_params_t tracerParams;
tracerParams.phDriver = &hDriver;
tracerParams.ppDriverProperties = &properties;
L0::APITracerCallbackDataImp<ze_pfnDriverGetPropertiesCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnDriverGetPropertiesCb_t, Driver, pfnGetPropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Driver.pfnGetProperties,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phDriver,
*tracerParams.ppDriverProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDriverGetApiVersion_Tracing(ze_driver_handle_t hDrivers,
ze_api_version_t *version) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Driver.pfnGetApiVersion, hDrivers, version);
ze_driver_get_api_version_params_t tracerParams;
tracerParams.phDriver = &hDrivers;
tracerParams.pversion = &version;
L0::APITracerCallbackDataImp<ze_pfnDriverGetApiVersionCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnDriverGetApiVersionCb_t, Driver, pfnGetApiVersionCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Driver.pfnGetApiVersion,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phDriver,
*tracerParams.pversion);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDriverGetIpcProperties_Tracing(ze_driver_handle_t hDriver,
ze_driver_ipc_properties_t *pIpcProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Driver.pfnGetIpcProperties,
hDriver,
pIpcProperties);
ze_driver_get_ipc_properties_params_t tracerParams;
tracerParams.phDriver = &hDriver;
tracerParams.ppIpcProperties = &pIpcProperties;
L0::APITracerCallbackDataImp<ze_pfnDriverGetIpcPropertiesCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnDriverGetIpcPropertiesCb_t, Driver, pfnGetIpcPropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Driver.pfnGetIpcProperties,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phDriver,
*tracerParams.ppIpcProperties);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeDriverGetExtensionProperties_Tracing(ze_driver_handle_t hDriver,
uint32_t *pCount,
ze_driver_extension_properties_t *pExtensionProperties) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.Driver.pfnGetExtensionProperties,
hDriver,
pCount,
pExtensionProperties);
ze_driver_get_extension_properties_params_t tracerParams;
tracerParams.phDriver = &hDriver;
tracerParams.ppCount = &pCount;
tracerParams.ppExtensionProperties = &pExtensionProperties;
L0::APITracerCallbackDataImp<ze_pfnDriverGetExtensionPropertiesCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnDriverGetExtensionPropertiesCb_t, Driver, pfnGetExtensionPropertiesCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.Driver.pfnGetExtensionProperties,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phDriver,
*tracerParams.ppCount,
*tracerParams.ppExtensionProperties);
}