2020-03-06 11:09:57 +01:00
|
|
|
/*
|
|
|
|
|
* Copyright (C) 2019-2020 Intel Corporation
|
|
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "level_zero/source/inc/ze_intel_gpu.h"
|
|
|
|
|
#include <level_zero/ze_api.h>
|
|
|
|
|
#include <level_zero/ze_ddi.h>
|
2020-07-29 02:45:54 -07:00
|
|
|
#include <level_zero/zes_api.h>
|
|
|
|
|
#include <level_zero/zes_ddi.h>
|
2020-03-06 11:09:57 +01:00
|
|
|
#include <level_zero/zet_api.h>
|
|
|
|
|
#include <level_zero/zet_ddi.h>
|
|
|
|
|
|
|
|
|
|
#include "ze_ddi_tables.h"
|
|
|
|
|
|
|
|
|
|
extern ze_gpu_driver_dditable_t driver_ddiTable;
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
|
|
|
|
zetGetContextProcAddrTable(
|
|
|
|
|
ze_api_version_t version,
|
|
|
|
|
zet_context_dditable_t *pDdiTable) {
|
|
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
|
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
|
|
|
|
pDdiTable->pfnActivateMetricGroups = (zet_pfnContextActivateMetricGroups_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetContextActivateMetricGroups);
|
2020-07-29 02:45:54 -07:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
|
|
|
|
zetGetMetricStreamerProcAddrTable(
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_api_version_t version,
|
2020-07-29 02:45:54 -07:00
|
|
|
zet_metric_streamer_dditable_t *pDdiTable) {
|
2020-03-06 11:09:57 +01:00
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-07-29 02:45:54 -07:00
|
|
|
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnOpen = (zet_pfnMetricStreamerOpen_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricStreamerOpen);
|
|
|
|
|
pDdiTable->pfnClose = (zet_pfnMetricStreamerClose_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricStreamerClose);
|
|
|
|
|
pDdiTable->pfnReadData = (zet_pfnMetricStreamerReadData_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricStreamerReadData);
|
2020-07-29 02:45:54 -07:00
|
|
|
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
|
|
|
|
zetGetTracerExpProcAddrTable(
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_api_version_t version,
|
2020-07-29 02:45:54 -07:00
|
|
|
zet_tracer_exp_dditable_t *pDdiTable) {
|
2020-03-06 11:09:57 +01:00
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnCreate = (zet_pfnTracerExpCreate_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetTracerExpCreate);
|
|
|
|
|
pDdiTable->pfnDestroy = (zet_pfnTracerExpDestroy_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetTracerExpDestroy);
|
|
|
|
|
pDdiTable->pfnSetPrologues = (zet_pfnTracerExpSetPrologues_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetTracerExpSetPrologues);
|
|
|
|
|
pDdiTable->pfnSetEpilogues = (zet_pfnTracerExpSetEpilogues_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetTracerExpSetEpilogues);
|
|
|
|
|
pDdiTable->pfnSetEnabled = (zet_pfnTracerExpSetEnabled_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetTracerExpSetEnabled);
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
2020-03-06 11:09:57 +01:00
|
|
|
zetGetCommandListProcAddrTable(
|
|
|
|
|
ze_api_version_t version,
|
|
|
|
|
zet_command_list_dditable_t *pDdiTable) {
|
|
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnAppendMetricStreamerMarker = (zet_pfnCommandListAppendMetricStreamerMarker_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetCommandListAppendMetricStreamerMarker);
|
|
|
|
|
pDdiTable->pfnAppendMetricQueryBegin = (zet_pfnCommandListAppendMetricQueryBegin_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetCommandListAppendMetricQueryBegin);
|
|
|
|
|
pDdiTable->pfnAppendMetricQueryEnd = (zet_pfnCommandListAppendMetricQueryEnd_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetCommandListAppendMetricQueryEnd);
|
|
|
|
|
pDdiTable->pfnAppendMetricMemoryBarrier = (zet_pfnCommandListAppendMetricMemoryBarrier_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetCommandListAppendMetricMemoryBarrier);
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
2020-03-06 11:09:57 +01:00
|
|
|
zetGetModuleProcAddrTable(
|
|
|
|
|
ze_api_version_t version,
|
|
|
|
|
zet_module_dditable_t *pDdiTable) {
|
|
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnGetDebugInfo = (zet_pfnModuleGetDebugInfo_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetModuleGetDebugInfo);
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
2020-03-06 11:09:57 +01:00
|
|
|
zetGetKernelProcAddrTable(
|
|
|
|
|
ze_api_version_t version,
|
|
|
|
|
zet_kernel_dditable_t *pDdiTable) {
|
|
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnGetProfileInfo = (zet_pfnKernelGetProfileInfo_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetKernelGetProfileInfo);
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
2020-03-06 11:09:57 +01:00
|
|
|
zetGetMetricGroupProcAddrTable(
|
|
|
|
|
ze_api_version_t version,
|
|
|
|
|
zet_metric_group_dditable_t *pDdiTable) {
|
|
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnGet = (zet_pfnMetricGroupGet_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricGroupGet);
|
|
|
|
|
pDdiTable->pfnGetProperties = (zet_pfnMetricGroupGetProperties_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricGroupGetProperties);
|
|
|
|
|
pDdiTable->pfnCalculateMetricValues = (zet_pfnMetricGroupCalculateMetricValues_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricGroupCalculateMetricValues);
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
2020-03-06 11:09:57 +01:00
|
|
|
zetGetMetricProcAddrTable(
|
|
|
|
|
ze_api_version_t version,
|
|
|
|
|
zet_metric_dditable_t *pDdiTable) {
|
|
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnGet = (zet_pfnMetricGet_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricGet);
|
|
|
|
|
pDdiTable->pfnGetProperties = (zet_pfnMetricGetProperties_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricGetProperties);
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
2020-03-06 11:09:57 +01:00
|
|
|
zetGetMetricQueryPoolProcAddrTable(
|
|
|
|
|
ze_api_version_t version,
|
|
|
|
|
zet_metric_query_pool_dditable_t *pDdiTable) {
|
|
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnCreate = (zet_pfnMetricQueryPoolCreate_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricQueryPoolCreate);
|
|
|
|
|
pDdiTable->pfnDestroy = (zet_pfnMetricQueryPoolDestroy_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricQueryPoolDestroy);
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
2020-03-06 11:09:57 +01:00
|
|
|
zetGetMetricQueryProcAddrTable(
|
|
|
|
|
ze_api_version_t version,
|
|
|
|
|
zet_metric_query_dditable_t *pDdiTable) {
|
|
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnCreate = (zet_pfnMetricQueryCreate_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricQueryCreate);
|
|
|
|
|
pDdiTable->pfnDestroy = (zet_pfnMetricQueryDestroy_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricQueryDestroy);
|
|
|
|
|
pDdiTable->pfnReset = (zet_pfnMetricQueryReset_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricQueryReset);
|
|
|
|
|
pDdiTable->pfnGetData = (zet_pfnMetricQueryGetData_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetMetricQueryGetData);
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
|
|
|
|
zetGetDeviceProcAddrTable(
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_api_version_t version,
|
2020-07-29 02:45:54 -07:00
|
|
|
zet_device_dditable_t *pDdiTable) {
|
2020-03-06 11:09:57 +01:00
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnGetDebugProperties = (zet_pfnDeviceGetDebugProperties_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetDeviceGetDebugProperties);
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
2020-07-29 02:45:54 -07:00
|
|
|
ZE_DLLEXPORT ze_result_t ZE_APICALL
|
2020-03-06 11:09:57 +01:00
|
|
|
zetGetDebugProcAddrTable(
|
|
|
|
|
ze_api_version_t version,
|
|
|
|
|
zet_debug_dditable_t *pDdiTable) {
|
|
|
|
|
if (nullptr == pDdiTable)
|
|
|
|
|
return ZE_RESULT_ERROR_INVALID_ARGUMENT;
|
|
|
|
|
if (driver_ddiTable.version < version)
|
|
|
|
|
return ZE_RESULT_ERROR_UNKNOWN;
|
2020-10-12 10:54:21 +02:00
|
|
|
if (nullptr == driver_ddiTable.driverLibrary) {
|
|
|
|
|
return ZE_RESULT_ERROR_UNINITIALIZED;
|
|
|
|
|
}
|
2020-03-06 11:09:57 +01:00
|
|
|
ze_result_t result = ZE_RESULT_SUCCESS;
|
2020-10-12 10:54:21 +02:00
|
|
|
pDdiTable->pfnAttach = (zet_pfnDebugAttach_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetDebugAttach);
|
|
|
|
|
pDdiTable->pfnDetach = (zet_pfnDebugDetach_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetDebugDetach);
|
|
|
|
|
pDdiTable->pfnReadEvent = (zet_pfnDebugReadEvent_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetDebugReadEvent);
|
|
|
|
|
pDdiTable->pfnInterrupt = (zet_pfnDebugInterrupt_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetDebugInterrupt);
|
|
|
|
|
pDdiTable->pfnResume = (zet_pfnDebugResume_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetDebugResume);
|
|
|
|
|
pDdiTable->pfnReadMemory = (zet_pfnDebugReadMemory_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetDebugReadMemory);
|
|
|
|
|
pDdiTable->pfnWriteMemory = (zet_pfnDebugWriteMemory_t)GET_FUNCTION_PTR(driver_ddiTable.driverLibrary, zetDebugWriteMemory);
|
2020-07-29 02:45:54 -07:00
|
|
|
|
2020-03-06 11:09:57 +01:00
|
|
|
return result;
|
|
|
|
|
}
|