Files
compute-runtime/level_zero/experimental/source/tracing/tracing_cmdqueue_imp.cpp
Jaime Arteaga 902fc2f6c4 level-zero v1.0 (2/N)
Change-Id: I1419231a721fab210e166d26a264cae04d661dcd
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
Signed-off-by: macabral <matias.a.cabral@intel.com>
Signed-off-by: davidoli <david.olien@intel.com>
Signed-off-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@intel.com>
Signed-off-by: Spruit, Neil R <neil.r.spruit@intel.com>
Signed-off-by: Latif, Raiyan <raiyan.latif@intel.com>
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2020-08-03 13:11:13 +02:00

118 lines
5.4 KiB
C++

/*
* Copyright (C) 2019-2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "level_zero/experimental/source/tracing/tracing_imp.h"
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandQueueCreate_Tracing(ze_context_handle_t hContext,
ze_device_handle_t hDevice,
const ze_command_queue_desc_t *desc,
ze_command_queue_handle_t *phCommandQueue) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandQueue.pfnCreate,
hContext,
hDevice,
desc,
phCommandQueue);
ze_command_queue_create_params_t tracerParams;
tracerParams.phContext = &hContext;
tracerParams.phDevice = &hDevice;
tracerParams.pdesc = &desc;
tracerParams.pphCommandQueue = &phCommandQueue;
L0::APITracerCallbackDataImp<ze_pfnCommandQueueCreateCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandQueueCreateCb_t, CommandQueue, pfnCreateCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.CommandQueue.pfnCreate,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phContext,
*tracerParams.phDevice,
*tracerParams.pdesc,
*tracerParams.pphCommandQueue);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandQueueDestroy_Tracing(ze_command_queue_handle_t hCommandQueue) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandQueue.pfnDestroy,
hCommandQueue);
ze_command_queue_destroy_params_t tracerParams;
tracerParams.phCommandQueue = &hCommandQueue;
L0::APITracerCallbackDataImp<ze_pfnCommandQueueDestroyCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandQueueDestroyCb_t, CommandQueue, pfnDestroyCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.CommandQueue.pfnDestroy,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandQueue);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandQueueExecuteCommandLists_Tracing(ze_command_queue_handle_t hCommandQueue,
uint32_t numCommandLists,
ze_command_list_handle_t *phCommandLists,
ze_fence_handle_t hFence) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandQueue.pfnExecuteCommandLists,
hCommandQueue,
numCommandLists,
phCommandLists,
hFence);
ze_command_queue_execute_command_lists_params_t tracerParams;
tracerParams.phCommandQueue = &hCommandQueue;
tracerParams.pnumCommandLists = &numCommandLists;
tracerParams.pphCommandLists = &phCommandLists;
tracerParams.phFence = &hFence;
L0::APITracerCallbackDataImp<ze_pfnCommandQueueExecuteCommandListsCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandQueueExecuteCommandListsCb_t, CommandQueue, pfnExecuteCommandListsCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.CommandQueue.pfnExecuteCommandLists,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandQueue,
*tracerParams.pnumCommandLists,
*tracerParams.pphCommandLists,
*tracerParams.phFence);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandQueueSynchronize_Tracing(ze_command_queue_handle_t hCommandQueue,
uint64_t timeout) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandQueue.pfnSynchronize,
hCommandQueue,
timeout);
ze_command_queue_synchronize_params_t tracerParams;
tracerParams.phCommandQueue = &hCommandQueue;
tracerParams.ptimeout = &timeout;
L0::APITracerCallbackDataImp<ze_pfnCommandQueueSynchronizeCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandQueueSynchronizeCb_t, CommandQueue, pfnSynchronizeCb);
return L0::APITracerWrapperImp(driver_ddiTable.core_ddiTable.CommandQueue.pfnSynchronize,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandQueue,
*tracerParams.ptimeout);
}