11// ////////////////////////////////////////////////////////////////////////////
22//
3- // Copyright © 2019-2020, Intel Corporation
3+ // Copyright © 2019-2020, Intel Corporation
44//
55// Permission is hereby granted, free of charge, to any person obtaining a
66// copy of this software and associated documentation files (the "Software"),
5454// ////////////////////////////////////////////////////////////////////////////////
5555// API build number:
5656// ////////////////////////////////////////////////////////////////////////////////
57- #define MD_API_BUILD_NUMBER_CURRENT 133
57+ #define MD_API_BUILD_NUMBER_CURRENT 139
5858
5959namespace MetricsDiscovery
6060{
@@ -74,16 +74,17 @@ namespace MetricsDiscovery
7474 typedef enum EMD_API_MINOR_VERSION
7575 {
7676 MD_API_MINOR_NUMBER_0 = 0 ,
77- MD_API_MINOR_NUMBER_1 = 1 , // CalculationAPI
78- MD_API_MINOR_NUMBER_2 = 2 , // OverridesAPI
79- MD_API_MINOR_NUMBER_3 = 3 , // BatchBuffer Sampling (aka DMA Sampling)
80- MD_API_MINOR_NUMBER_4 = 4 , // GT dependent MetricSets
81- MD_API_MINOR_NUMBER_5 = 5 , // MaxValue calculation for CalculationAPI
82- MD_API_MINOR_NUMBER_6 = 6 , // Multi adapter support
83- MD_API_MINOR_NUMBER_7 = 7 ,
84- MD_API_MINOR_NUMBER_8 = 8 , // TAdapterParams update
85- MD_API_MINOR_NUMBER_9 = 9 , // Sub device support.
86- MD_API_MINOR_NUMBER_CURRENT = MD_API_MINOR_NUMBER_9,
77+ MD_API_MINOR_NUMBER_1 = 1 , // CalculationAPI
78+ MD_API_MINOR_NUMBER_2 = 2 , // OverridesAPI
79+ MD_API_MINOR_NUMBER_3 = 3 , // BatchBuffer Sampling (aka DMA Sampling)
80+ MD_API_MINOR_NUMBER_4 = 4 , // GT dependent MetricSets
81+ MD_API_MINOR_NUMBER_5 = 5 , // MaxValue calculation for CalculationAPI
82+ MD_API_MINOR_NUMBER_6 = 6 , // Multi adapter support
83+ MD_API_MINOR_NUMBER_7 = 7 , // Compile time equations calculation approach
84+ MD_API_MINOR_NUMBER_8 = 8 , // TAdapterParams update
85+ MD_API_MINOR_NUMBER_9 = 9 , // Sub device support.
86+ MD_API_MINOR_NUMBER_10 = 10 , // GetGpuCpuTimestamps API function extended by a correlation indicator param
87+ MD_API_MINOR_NUMBER_CURRENT = MD_API_MINOR_NUMBER_10,
8788 MD_API_MINOR_NUMBER_CEIL = 0xFFFFFFFF
8889 } MD_API_MINOR_VERSION;
8990
@@ -1225,6 +1226,25 @@ namespace MetricsDiscovery
12251226 virtual IConcurrentGroup_1_5* GetConcurrentGroup ( uint32_t index );
12261227 };
12271228
1229+ // /////////////////////////////////////////////////////////////////////////////
1230+ //
1231+ // Class:
1232+ // IMetricsDevice_1_10
1233+ //
1234+ // Description:
1235+ // Updated 1.5 version to use with 1.10 interface version.
1236+ //
1237+ // Updates:
1238+ // - GetGpuCpuTimestamps: Update to 1.10 interface
1239+ //
1240+ // /////////////////////////////////////////////////////////////////////////////
1241+ class IMetricsDevice_1_10 : public IMetricsDevice_1_5
1242+ {
1243+ public:
1244+ using IMetricsDevice_1_0::GetGpuCpuTimestamps; // To avoid hiding by 1.10 interface function
1245+ virtual TCompletionCode GetGpuCpuTimestamps ( uint64_t * gpuTimestampNs, uint64_t * cpuTimestampNs, uint32_t * cpuId, uint64_t * correlationIndicatorNs );
1246+ };
1247+
12281248 // /////////////////////////////////////////////////////////////////////////////
12291249 //
12301250 // Class:
@@ -1298,6 +1318,35 @@ namespace MetricsDiscovery
12981318 virtual TCompletionCode OpenMetricsSubDeviceFromFile ( const uint32_t subDeviceIndex, const char * fileName, void * openParams, IMetricsDevice_1_5** metricsDevice );
12991319 };
13001320
1321+ // /////////////////////////////////////////////////////////////////////////////
1322+ //
1323+ // Class:
1324+ // IAdapter_1_10
1325+ //
1326+ // Description:
1327+ // Abstract interface for GPU adapter.
1328+ //
1329+ // Updates:
1330+ // - OpenMetricsDevice: Update to 1.10 interface
1331+ // - OpenMetricsDeviceFromFile: Update to 1.10 interface
1332+ // - OpenMetricsSubDevice: Update to 1.10 interface
1333+ // - OpenMetricsSubDeviceFromFile: Update to 1.10 interface
1334+ //
1335+ // /////////////////////////////////////////////////////////////////////////////
1336+ class IAdapter_1_10 : public IAdapter_1_9
1337+ {
1338+ public:
1339+ using IAdapter_1_6::OpenMetricsDevice;
1340+ using IAdapter_1_6::OpenMetricsDeviceFromFile;
1341+ using IAdapter_1_9::OpenMetricsSubDevice;
1342+ using IAdapter_1_9::OpenMetricsSubDeviceFromFile;
1343+
1344+ virtual TCompletionCode OpenMetricsDevice ( IMetricsDevice_1_10** metricsDevice );
1345+ virtual TCompletionCode OpenMetricsDeviceFromFile ( const char * fileName, void * openParams, IMetricsDevice_1_10** metricsDevice );
1346+ virtual TCompletionCode OpenMetricsSubDevice ( const uint32_t subDeviceIndex, IMetricsDevice_1_10** metricsDevice );
1347+ virtual TCompletionCode OpenMetricsSubDeviceFromFile ( const uint32_t subDeviceIndex, const char * fileName, void * openParams, IMetricsDevice_1_10** metricsDevice );
1348+ };
1349+
13011350 // /////////////////////////////////////////////////////////////////////////////
13021351 //
13031352 // Class:
@@ -1357,19 +1406,77 @@ namespace MetricsDiscovery
13571406 virtual IAdapter_1_9* GetAdapter ( uint32_t index );
13581407 };
13591408
1409+ // /////////////////////////////////////////////////////////////////////////////
1410+ //
1411+ // Class:
1412+ // IAdapterGroup_1_10
1413+ //
1414+ // Description:
1415+ // Abstract interface for the GPU adapters root object.
1416+ //
1417+ // Updates:
1418+ // - GetAdapter: Update to 1.10 interface
1419+ //
1420+ // /////////////////////////////////////////////////////////////////////////////
1421+ class IAdapterGroup_1_10 : public IAdapterGroup_1_9
1422+ {
1423+ public:
1424+ virtual IAdapter_1_10* GetAdapter ( uint32_t index );
1425+ };
1426+
1427+ // ////////////////////////////////////////////////////////////////////////////////
1428+ // Latest interfaces and typedef structs versions:
1429+ // ////////////////////////////////////////////////////////////////////////////////
1430+ using IAdapterGroupLatest = IAdapterGroup_1_10;
1431+ using IAdapterLatest = IAdapter_1_10;
1432+ using IConcurrentGroupLatest = IConcurrentGroup_1_5;
1433+ using IEquationLatest = IEquation_1_0;
1434+ using IInformationLatest = IInformation_1_0;
1435+ using IMetricLatest = IMetric_1_0;
1436+ using IMetricSetLatest = IMetricSet_1_5;
1437+ using IMetricsDeviceLatest = IMetricsDevice_1_10;
1438+ using IOverrideLatest = IOverride_1_2;
1439+ using TAdapterGroupParamsLatest = TAdapterGroupParams_1_6;
1440+ using TAdapterIdLatest = TAdapterId_1_6;
1441+ using TAdapterIdLuidLatest = TAdapterIdLuid_1_6;
1442+ using TAdapterIdMajorMinorLatest = TAdapterIdMajorMinor_1_6;
1443+ using TAdapterParamsLatest = TAdapterParams_1_9;
1444+ using TApiSpecificIdLatest = TApiSpecificId_1_0;
1445+ using TApiVersionLatest = TApiVersion_1_0;
1446+ using TByteArrayLatest = TByteArray_1_0;
1447+ using TConcurrentGroupParamsLatest = TConcurrentGroupParams_1_0;
1448+ using TDeltaFunctionLatest = TDeltaFunction_1_0;
1449+ using TEngineIdClassInstanceLatest = TEngineIdClassInstance_1_9;
1450+ using TEngineIdLatest = TEngineId_1_9;
1451+ using TEngineParamsLatest = TEngineParams_1_9;
1452+ using TEquationElementLatest = TEquationElement_1_0;
1453+ using TGlobalSymbolLatest = TGlobalSymbol_1_0;
1454+ using TInformationParamsLatest = TInformationParams_1_0;
1455+ using TMetricParamsLatest = TMetricParams_1_0;
1456+ using TMetricSetParamsLatest = TMetricSetParams_1_4;
1457+ using TMetricsDeviceParamsLatest = TMetricsDeviceParams_1_2;
1458+ using TOverrideParamsLatest = TOverrideParams_1_2;
1459+ using TReadParamsLatest = TReadParams_1_0;
1460+ using TSetDriverOverrideParamsLatest = TSetDriverOverrideParams_1_2;
1461+ using TSetFrequencyOverrideParamsLatest = TSetFrequencyOverrideParams_1_2;
1462+ using TSetOverrideParamsLatest = TSetOverrideParams_1_2;
1463+ using TSetQueryOverrideParamsLatest = TSetQueryOverrideParams_1_2;
1464+ using TSubDeviceParamsLatest = TSubDeviceParams_1_9;
1465+ using TTypedValueLatest = TTypedValue_1_0;
1466+
13601467#ifdef __cplusplus
13611468 extern " C"
13621469 {
13631470#endif
13641471
13651472 // [Current] Factory functions
1366- typedef TCompletionCode ( MD_STDCALL* OpenAdapterGroup_fn )( IAdapterGroup_1_9 ** adapterGroup );
1473+ typedef TCompletionCode ( MD_STDCALL* OpenAdapterGroup_fn )( IAdapterGroupLatest ** adapterGroup );
13671474
13681475 // [Legacy] Factory functions
1369- typedef TCompletionCode ( MD_STDCALL* OpenMetricsDevice_fn )( IMetricsDevice_1_5 ** metricsDevice );
1370- typedef TCompletionCode ( MD_STDCALL* OpenMetricsDeviceFromFile_fn )( const char * fileName, void * openParams, IMetricsDevice_1_5 ** metricsDevice );
1371- typedef TCompletionCode ( MD_STDCALL* CloseMetricsDevice_fn )( IMetricsDevice_1_5 * metricsDevice );
1372- typedef TCompletionCode ( MD_STDCALL* SaveMetricsDeviceToFile_fn )( const char * fileName, void * saveParams, IMetricsDevice_1_5 * metricsDevice );
1476+ typedef TCompletionCode ( MD_STDCALL* OpenMetricsDevice_fn )( IMetricsDeviceLatest ** metricsDevice );
1477+ typedef TCompletionCode ( MD_STDCALL* OpenMetricsDeviceFromFile_fn )( const char * fileName, void * openParams, IMetricsDeviceLatest ** metricsDevice );
1478+ typedef TCompletionCode ( MD_STDCALL* CloseMetricsDevice_fn )( IMetricsDeviceLatest * metricsDevice );
1479+ typedef TCompletionCode ( MD_STDCALL* SaveMetricsDeviceToFile_fn )( const char * fileName, void * saveParams, IMetricsDeviceLatest * metricsDevice );
13731480
13741481#ifdef __cplusplus
13751482 }
0 commit comments