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

463 lines
23 KiB
C++

/*
* Copyright (C) 2020-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "level_zero/experimental/source/tracing/tracing_imp.h"
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendMemoryCopyTracing(ze_command_list_handle_t hCommandList,
void *dstptr,
const void *srcptr,
size_t size,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryCopy,
hCommandList,
dstptr,
srcptr,
size,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_memory_copy_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.pdstptr = &dstptr;
tracerParams.psrcptr = &srcptr;
tracerParams.psize = &size;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendMemoryCopyCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendMemoryCopyCb_t, CommandList, pfnAppendMemoryCopyCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryCopy,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.pdstptr,
*tracerParams.psrcptr,
*tracerParams.psize,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendMemoryFillTracing(ze_command_list_handle_t hCommandList,
void *ptr,
const void *pattern,
size_t patternSize,
size_t size,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryFill,
hCommandList,
ptr,
pattern,
patternSize,
size,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_memory_fill_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.pptr = &ptr;
tracerParams.ppattern = &pattern;
tracerParams.ppattern_size = &patternSize;
tracerParams.psize = &size;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendMemoryFillCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendMemoryFillCb_t, CommandList, pfnAppendMemoryFillCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryFill,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.pptr,
*tracerParams.ppattern,
*tracerParams.ppattern_size,
*tracerParams.psize,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendMemoryCopyRegionTracing(ze_command_list_handle_t hCommandList,
void *dstptr,
const ze_copy_region_t *dstRegion,
uint32_t dstPitch,
uint32_t dstSlicePitch,
const void *srcptr,
const ze_copy_region_t *srcRegion,
uint32_t srcPitch,
uint32_t srcSlicePitch,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryCopyRegion,
hCommandList,
dstptr,
dstRegion,
dstPitch,
dstSlicePitch,
srcptr,
srcRegion,
srcPitch,
srcSlicePitch,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_memory_copy_region_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.pdstptr = &dstptr;
tracerParams.pdstRegion = &dstRegion;
tracerParams.pdstPitch = &dstPitch;
tracerParams.pdstSlicePitch = &dstSlicePitch;
tracerParams.psrcptr = &srcptr;
tracerParams.psrcRegion = &srcRegion;
tracerParams.psrcPitch = &srcPitch;
tracerParams.psrcSlicePitch = &srcSlicePitch;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendMemoryCopyRegionCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendMemoryCopyRegionCb_t, CommandList, pfnAppendMemoryCopyRegionCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryCopyRegion,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.pdstptr,
*tracerParams.pdstRegion,
*tracerParams.pdstPitch,
*tracerParams.pdstSlicePitch,
*tracerParams.psrcptr,
*tracerParams.psrcRegion,
*tracerParams.psrcPitch,
*tracerParams.psrcSlicePitch,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendMemoryCopyFromContextTracing(ze_command_list_handle_t hCommandList,
void *dstptr,
ze_context_handle_t hContextSrc,
const void *srcptr,
size_t size,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryCopyFromContext,
hCommandList,
dstptr,
hContextSrc,
srcptr,
size,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_memory_copy_from_context_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.pdstptr = &dstptr;
tracerParams.phContextSrc = &hContextSrc,
tracerParams.psrcptr = &srcptr,
tracerParams.psize = &size,
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendMemoryCopyFromContextCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendMemoryCopyFromContextCb_t, CommandList, pfnAppendMemoryCopyFromContextCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryCopyFromContext,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.pdstptr,
*tracerParams.phContextSrc,
*tracerParams.psrcptr,
*tracerParams.psize,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendImageCopyTracing(ze_command_list_handle_t hCommandList,
ze_image_handle_t hDstImage,
ze_image_handle_t hSrcImage,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendImageCopy,
hCommandList,
hDstImage,
hSrcImage,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_image_copy_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.phDstImage = &hDstImage;
tracerParams.phSrcImage = &hSrcImage;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendImageCopyCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendImageCopyCb_t, CommandList, pfnAppendImageCopyCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendImageCopy,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.phDstImage,
*tracerParams.phSrcImage,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendImageCopyRegionTracing(ze_command_list_handle_t hCommandList,
ze_image_handle_t hDstImage,
ze_image_handle_t hSrcImage,
const ze_image_region_t *pDstRegion,
const ze_image_region_t *pSrcRegion,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendImageCopyRegion,
hCommandList,
hDstImage,
hSrcImage,
pDstRegion,
pSrcRegion,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_image_copy_region_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.phDstImage = &hDstImage;
tracerParams.phSrcImage = &hSrcImage;
tracerParams.ppDstRegion = &pDstRegion;
tracerParams.ppSrcRegion = &pSrcRegion;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendImageCopyRegionCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendImageCopyRegionCb_t, CommandList, pfnAppendImageCopyRegionCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendImageCopyRegion,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.phDstImage,
*tracerParams.phSrcImage,
*tracerParams.ppDstRegion,
*tracerParams.ppSrcRegion,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendImageCopyToMemoryTracing(ze_command_list_handle_t hCommandList,
void *dstptr,
ze_image_handle_t hSrcImage,
const ze_image_region_t *pSrcRegion,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendImageCopyToMemory,
hCommandList,
dstptr,
hSrcImage,
pSrcRegion,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_image_copy_to_memory_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.pdstptr = &dstptr;
tracerParams.phSrcImage = &hSrcImage;
tracerParams.ppSrcRegion = &pSrcRegion;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendImageCopyToMemoryCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendImageCopyToMemoryCb_t, CommandList, pfnAppendImageCopyToMemoryCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendImageCopyToMemory,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.pdstptr,
*tracerParams.phSrcImage,
*tracerParams.ppSrcRegion,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendImageCopyFromMemoryTracing(ze_command_list_handle_t hCommandList,
ze_image_handle_t hDstImage,
const void *srcptr,
const ze_image_region_t *pDstRegion,
ze_event_handle_t hSignalEvent,
uint32_t numWaitEvents,
ze_event_handle_t *phWaitEvents) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendImageCopyFromMemory,
hCommandList,
hDstImage,
srcptr,
pDstRegion,
hSignalEvent,
numWaitEvents,
phWaitEvents);
ze_command_list_append_image_copy_from_memory_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.phDstImage = &hDstImage;
tracerParams.psrcptr = &srcptr;
tracerParams.ppDstRegion = &pDstRegion;
tracerParams.phSignalEvent = &hSignalEvent;
tracerParams.pnumWaitEvents = &numWaitEvents;
tracerParams.pphWaitEvents = &phWaitEvents;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendImageCopyFromMemoryCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendImageCopyFromMemoryCb_t, CommandList, pfnAppendImageCopyFromMemoryCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendImageCopyFromMemory,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.phDstImage,
*tracerParams.psrcptr,
*tracerParams.ppDstRegion,
*tracerParams.phSignalEvent,
*tracerParams.pnumWaitEvents,
*tracerParams.pphWaitEvents);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendMemoryPrefetchTracing(ze_command_list_handle_t hCommandList,
const void *ptr,
size_t size) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryPrefetch,
hCommandList,
ptr,
size);
ze_command_list_append_memory_prefetch_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.pptr = &ptr;
tracerParams.psize = &size;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendMemoryPrefetchCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendMemoryPrefetchCb_t, CommandList, pfnAppendMemoryPrefetchCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemoryPrefetch,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.pptr,
*tracerParams.psize);
}
ZE_APIEXPORT ze_result_t ZE_APICALL
zeCommandListAppendMemAdviseTracing(ze_command_list_handle_t hCommandList,
ze_device_handle_t hDevice,
const void *ptr,
size_t size,
ze_memory_advice_t advice) {
ZE_HANDLE_TRACER_RECURSION(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemAdvise,
hCommandList,
hDevice,
ptr,
size,
advice);
ze_command_list_append_mem_advise_params_t tracerParams;
tracerParams.phCommandList = &hCommandList;
tracerParams.phDevice = &hDevice;
tracerParams.pptr = &ptr;
tracerParams.psize = &size;
tracerParams.padvice = &advice;
L0::APITracerCallbackDataImp<ze_pfnCommandListAppendMemAdviseCb_t> apiCallbackData;
ZE_GEN_PER_API_CALLBACK_STATE(apiCallbackData, ze_pfnCommandListAppendMemAdviseCb_t, CommandList, pfnAppendMemAdviseCb);
return L0::apiTracerWrapperImp(driver_ddiTable.core_ddiTable.CommandList.pfnAppendMemAdvise,
&tracerParams,
apiCallbackData.apiOrdinal,
apiCallbackData.prologCallbacks,
apiCallbackData.epilogCallbacks,
*tracerParams.phCommandList,
*tracerParams.phDevice,
*tracerParams.pptr,
*tracerParams.psize,
*tracerParams.padvice);
}