mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-26 06:42:33 +08:00
L0 and Ocl Metric Api sub device support
Signed-off-by: Piotr Maciejewski <piotr.maciejewski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
6a81edfbe1
commit
aa05b5adb4
@@ -76,7 +76,7 @@ class MetricEnumerationTestLinux : public MetricContextFixture,
|
||||
TEST_F(MetricEnumerationTestLinux, givenCorrectLinuxDrmAdapterWhenGetMetricsAdapterThenReturnSuccess) {
|
||||
|
||||
auto adapterGroupParams = TAdapterGroupParams_1_6{};
|
||||
auto adapterParams = TAdapterParams_1_8{};
|
||||
auto adapterParams = TAdapterParams_1_9{};
|
||||
|
||||
adapterGroupParams.AdapterCount = 1;
|
||||
adapterParams.SystemId.Type = MetricsDiscovery::TAdapterIdType::ADAPTER_ID_TYPE_MAJOR_MINOR;
|
||||
@@ -112,7 +112,7 @@ TEST_F(MetricEnumerationTestLinux, givenCorrectLinuxMinorPrimaryNodeDrmAdapterWh
|
||||
const int32_t drmMaxDevices = 64; // From drm_drv.c#110
|
||||
|
||||
auto adapterGroupParams = TAdapterGroupParams_1_6{};
|
||||
auto adapterParams = TAdapterParams_1_8{};
|
||||
auto adapterParams = TAdapterParams_1_9{};
|
||||
|
||||
adapterGroupParams.AdapterCount = 1;
|
||||
adapterParams.SystemId.Type = MetricsDiscovery::TAdapterIdType::ADAPTER_ID_TYPE_MAJOR_MINOR;
|
||||
@@ -150,7 +150,7 @@ TEST_F(MetricEnumerationTestLinux, givenCorrectLinuxMinorRenderNodeDrmAdapterWhe
|
||||
const int32_t drmMaxDevices = 64; // From drm_drv.c#110
|
||||
|
||||
auto adapterGroupParams = TAdapterGroupParams_1_6{};
|
||||
auto adapterParams = TAdapterParams_1_8{};
|
||||
auto adapterParams = TAdapterParams_1_9{};
|
||||
|
||||
adapterGroupParams.AdapterCount = 1;
|
||||
adapterParams.SystemId.Type = MetricsDiscovery::TAdapterIdType::ADAPTER_ID_TYPE_MAJOR_MINOR;
|
||||
@@ -185,7 +185,7 @@ TEST_F(MetricEnumerationTestLinux, givenCorrectLinuxMinorRenderNodeDrmAdapterWhe
|
||||
TEST_F(MetricEnumerationTestLinux, givenIcorrectMetricDiscoveryAdapterTypeWhenGetMetricsAdapterThenReturnFail) {
|
||||
|
||||
auto adapterGroupParams = TAdapterGroupParams_1_6{};
|
||||
auto adapterParams = TAdapterParams_1_8{};
|
||||
auto adapterParams = TAdapterParams_1_9{};
|
||||
|
||||
adapterGroupParams.AdapterCount = 1;
|
||||
adapterParams.SystemId.Type = MetricsDiscovery::TAdapterIdType::ADAPTER_ID_TYPE_LUID;
|
||||
@@ -220,7 +220,7 @@ TEST_F(MetricEnumerationTestLinux, givenIcorrectMetricDiscoveryAdapterTypeWhenGe
|
||||
TEST_F(MetricEnumerationTestLinux, givenIcorrectMetricDiscoveryAdapterMajorWhenGetMetricsAdapterThenReturnFail) {
|
||||
|
||||
auto adapterGroupParams = TAdapterGroupParams_1_6{};
|
||||
auto adapterParams = TAdapterParams_1_8{};
|
||||
auto adapterParams = TAdapterParams_1_9{};
|
||||
|
||||
adapterGroupParams.AdapterCount = 1;
|
||||
adapterParams.SystemId.Type = MetricsDiscovery::TAdapterIdType::ADAPTER_ID_TYPE_MAJOR_MINOR;
|
||||
@@ -256,7 +256,7 @@ TEST_F(MetricEnumerationTestLinux, givenIcorrectMetricDiscoveryAdapterMajorWhenG
|
||||
TEST_F(MetricEnumerationTestLinux, givenIcorrectMetricDiscoveryAdapterMinorWhenGetMetricsAdapterThenReturnFail) {
|
||||
|
||||
auto adapterGroupParams = TAdapterGroupParams_1_6{};
|
||||
auto adapterParams = TAdapterParams_1_8{};
|
||||
auto adapterParams = TAdapterParams_1_9{};
|
||||
|
||||
adapterGroupParams.AdapterCount = 1;
|
||||
adapterParams.SystemId.Type = MetricsDiscovery::TAdapterIdType::ADAPTER_ID_TYPE_MAJOR_MINOR;
|
||||
@@ -292,7 +292,7 @@ TEST_F(MetricEnumerationTestLinux, givenIcorrectMetricDiscoveryAdapterMinorWhenG
|
||||
TEST_F(MetricEnumerationTestLinux, givenIcorrectOpenMetricDeviceOnAdapterWhenGetMetricsAdapterThenReturnFail) {
|
||||
|
||||
auto adapterGroupParams = TAdapterGroupParams_1_6{};
|
||||
auto adapterParams = TAdapterParams_1_8{};
|
||||
auto adapterParams = TAdapterParams_1_9{};
|
||||
|
||||
adapterGroupParams.AdapterCount = 1;
|
||||
adapterParams.SystemId.Type = MetricsDiscovery::TAdapterIdType::ADAPTER_ID_TYPE_MAJOR_MINOR;
|
||||
|
||||
@@ -160,8 +160,8 @@ class MetricContextFixture : public ContextFixture {
|
||||
MockMetricsDiscoveryApi mockMetricsDiscoveryApi = {};
|
||||
|
||||
// Metrics discovery device
|
||||
Mock<IAdapterGroup_1_8> adapterGroup;
|
||||
Mock<IAdapter_1_8> adapter;
|
||||
Mock<IAdapterGroup_1_9> adapterGroup;
|
||||
Mock<IAdapter_1_9> adapter;
|
||||
Mock<IMetricsDevice_1_5> metricsDevice;
|
||||
MetricsDiscovery::TMetricsDeviceParams_1_2 metricsDeviceParams = {};
|
||||
};
|
||||
|
||||
@@ -18,7 +18,7 @@ Mock<MetricEnumeration>::~Mock() {
|
||||
|
||||
MockMetricsDiscoveryApi *Mock<MetricEnumeration>::g_mockApi = nullptr;
|
||||
|
||||
TCompletionCode MockMetricsDiscoveryApi::OpenAdapterGroup(IAdapterGroup_1_8 **group) {
|
||||
TCompletionCode MockMetricsDiscoveryApi::OpenAdapterGroup(IAdapterGroup_1_9 **group) {
|
||||
return Mock<MetricEnumeration>::g_mockApi->MockOpenAdapterGroup(group);
|
||||
}
|
||||
|
||||
@@ -264,6 +264,11 @@ IAdapter_1_8 *IAdapterGroup_1_8::GetAdapter(uint32_t index) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IAdapter_1_6 *IAdapterGroup_1_6::GetAdapter(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IAdapterGroup_1_6 ::~IAdapterGroup_1_6() {
|
||||
}
|
||||
|
||||
@@ -272,7 +277,7 @@ const TAdapterGroupParams_1_6 *IAdapterGroup_1_6::GetParams(void) const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
IAdapter_1_6 *IAdapterGroup_1_6::GetAdapter(uint32_t index) {
|
||||
IAdapter_1_9 *IAdapterGroup_1_9::GetAdapter(uint32_t index) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
@@ -294,6 +299,11 @@ const TAdapterParams_1_8 *IAdapter_1_8::GetParams(void) const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const TAdapterParams_1_9 *IAdapter_1_9::GetParams(void) const {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IAdapter_1_6 ::Reset() {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
@@ -319,4 +329,24 @@ TCompletionCode IAdapter_1_6 ::SaveMetricsDeviceToFile(const char *fileName, voi
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
const TSubDeviceParams_1_9 *IAdapter_1_9::GetSubDeviceParams(const uint32_t subDeviceIndex) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const TEngineParams_1_9 *IAdapter_1_9::GetEngineParams(const uint32_t subDeviceIndex, const uint32_t engineIndex) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
TCompletionCode IAdapter_1_9::OpenMetricsSubDevice(const uint32_t subDeviceIndex, IMetricsDevice_1_5 **metricsDevice) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
TCompletionCode IAdapter_1_9::OpenMetricsSubDeviceFromFile(const uint32_t subDeviceIndex, const char *fileName, void *openParams, IMetricsDevice_1_5 **metricsDevice) {
|
||||
UNRECOVERABLE_IF(true);
|
||||
return CC_ERROR_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
} // namespace MetricsDiscovery
|
||||
|
||||
@@ -26,8 +26,10 @@ using MetricGroup = WhiteBox<::L0::MetricGroup>;
|
||||
|
||||
using MetricsDiscovery::IAdapter_1_6;
|
||||
using MetricsDiscovery::IAdapter_1_8;
|
||||
using MetricsDiscovery::IAdapter_1_9;
|
||||
using MetricsDiscovery::IAdapterGroup_1_6;
|
||||
using MetricsDiscovery::IAdapterGroup_1_8;
|
||||
using MetricsDiscovery::IAdapterGroup_1_9;
|
||||
using MetricsDiscovery::IConcurrentGroup_1_5;
|
||||
using MetricsDiscovery::IInformation_1_0;
|
||||
using MetricsDiscovery::IMetric_1_0;
|
||||
@@ -38,13 +40,16 @@ using MetricsDiscovery::IOverride_1_2;
|
||||
using MetricsDiscovery::TAdapterGroupParams_1_6;
|
||||
using MetricsDiscovery::TAdapterParams_1_6;
|
||||
using MetricsDiscovery::TAdapterParams_1_8;
|
||||
using MetricsDiscovery::TAdapterParams_1_9;
|
||||
using MetricsDiscovery::TCompletionCode;
|
||||
using MetricsDiscovery::TConcurrentGroupParams_1_0;
|
||||
using MetricsDiscovery::TEngineParams_1_9;
|
||||
using MetricsDiscovery::TGlobalSymbol_1_0;
|
||||
using MetricsDiscovery::TMetricParams_1_0;
|
||||
using MetricsDiscovery::TMetricsDeviceParams_1_2;
|
||||
using MetricsDiscovery::TMetricSetParams_1_4;
|
||||
using MetricsDiscovery::TSamplingType;
|
||||
using MetricsDiscovery::TSubDeviceParams_1_9;
|
||||
using MetricsDiscovery::TTypedValue_1_0;
|
||||
|
||||
struct MockMetricsDiscoveryApi {
|
||||
@@ -53,31 +58,37 @@ struct MockMetricsDiscoveryApi {
|
||||
static TCompletionCode MD_STDCALL OpenMetricsDeviceFromFile(const char *fileName, void *openParams, IMetricsDevice_1_5 **device);
|
||||
static TCompletionCode MD_STDCALL CloseMetricsDevice(IMetricsDevice_1_5 *device);
|
||||
static TCompletionCode MD_STDCALL SaveMetricsDeviceToFile(const char *fileName, void *saveParams, IMetricsDevice_1_5 *device);
|
||||
static TCompletionCode MD_STDCALL OpenAdapterGroup(IAdapterGroup_1_8 **adapterGroup);
|
||||
static TCompletionCode MD_STDCALL OpenAdapterGroup(IAdapterGroup_1_9 **adapterGroup);
|
||||
|
||||
// Mocked api functions.
|
||||
MOCK_METHOD(TCompletionCode, MockOpenMetricsDeviceFromFile, (const char *, void *, IMetricsDevice_1_5 **));
|
||||
MOCK_METHOD(TCompletionCode, MockCloseMetricsDevice, (IMetricsDevice_1_5 *));
|
||||
MOCK_METHOD(TCompletionCode, MockSaveMetricsDeviceToFile, (const char *, void *, IMetricsDevice_1_5 *));
|
||||
MOCK_METHOD(TCompletionCode, MockOpenAdapterGroup, (IAdapterGroup_1_8 * *adapterGroup));
|
||||
MOCK_METHOD(TCompletionCode, MockOpenAdapterGroup, (IAdapterGroup_1_9 * *adapterGroup));
|
||||
};
|
||||
|
||||
template <>
|
||||
class Mock<IAdapterGroup_1_8> : public IAdapterGroup_1_8 {
|
||||
class Mock<IAdapterGroup_1_9> : public IAdapterGroup_1_9 {
|
||||
public:
|
||||
Mock(){};
|
||||
|
||||
MOCK_METHOD(IAdapter_1_8 *, GetAdapter, (uint32_t), (override));
|
||||
MOCK_METHOD(IAdapter_1_9 *, GetAdapter, (uint32_t), (override));
|
||||
MOCK_METHOD(const TAdapterGroupParams_1_6 *, GetParams, (), (const, override));
|
||||
MOCK_METHOD(TCompletionCode, Close, (), (override));
|
||||
};
|
||||
|
||||
template <>
|
||||
class Mock<IAdapter_1_8> : public IAdapter_1_8 {
|
||||
class Mock<IAdapter_1_9> : public IAdapter_1_9 {
|
||||
public:
|
||||
Mock(){};
|
||||
|
||||
MOCK_METHOD(const TAdapterParams_1_8 *, GetParams, (), (const, override));
|
||||
// 1.9
|
||||
MOCK_METHOD(const TSubDeviceParams_1_9 *, GetSubDeviceParams, (const uint32_t subDeviceIndex), (override));
|
||||
MOCK_METHOD(const TEngineParams_1_9 *, GetEngineParams, (const uint32_t subDeviceIndex, const uint32_t engineIndex), (override));
|
||||
MOCK_METHOD(TCompletionCode, OpenMetricsSubDevice, (const uint32_t subDeviceIndex, IMetricsDevice_1_5 **metricsDevice), (override));
|
||||
MOCK_METHOD(TCompletionCode, OpenMetricsSubDeviceFromFile, (const uint32_t subDeviceIndex, const char *fileName, void *openParams, IMetricsDevice_1_5 **metricsDevice), (override));
|
||||
|
||||
MOCK_METHOD(const TAdapterParams_1_9 *, GetParams, (), (const, override));
|
||||
MOCK_METHOD(TCompletionCode, Reset, (), (override));
|
||||
MOCK_METHOD(TCompletionCode, OpenMetricsDevice, (IMetricsDevice_1_5 **), (override));
|
||||
MOCK_METHOD(TCompletionCode, OpenMetricsDeviceFromFile, (const char *, void *, IMetricsDevice_1_5 **), (override));
|
||||
@@ -146,6 +157,7 @@ struct Mock<MetricEnumeration> : public MetricEnumeration {
|
||||
Mock(::L0::MetricContext &metricContext);
|
||||
~Mock() override;
|
||||
|
||||
using MetricEnumeration::cleanupMetricsDiscovery;
|
||||
using MetricEnumeration::hMetricsDiscovery;
|
||||
using MetricEnumeration::initializationState;
|
||||
using MetricEnumeration::openAdapterGroup;
|
||||
@@ -157,12 +169,12 @@ struct Mock<MetricEnumeration> : public MetricEnumeration {
|
||||
// Mock metric enumeration functions.
|
||||
MOCK_METHOD(bool, isInitialized, (), (override));
|
||||
MOCK_METHOD(ze_result_t, loadMetricsDiscovery, (), (override));
|
||||
MOCK_METHOD(MetricsDiscovery::IAdapter_1_8 *, getMetricsAdapter, (), (override));
|
||||
MOCK_METHOD(MetricsDiscovery::IAdapter_1_9 *, getMetricsAdapter, (), (override));
|
||||
MOCK_METHOD(bool, getAdapterId, (uint32_t & drmMajor, uint32_t &drmMinor), (override));
|
||||
|
||||
// Not mocked metrics enumeration functions.
|
||||
bool baseIsInitialized() { return MetricEnumeration::isInitialized(); }
|
||||
IAdapter_1_8 *baseGetMetricsAdapter() { return MetricEnumeration::getMetricsAdapter(); }
|
||||
IAdapter_1_9 *baseGetMetricsAdapter() { return MetricEnumeration::getMetricsAdapter(); }
|
||||
bool baseGetAdapterId(uint32_t &adapterMajor, uint32_t &adapterMinor) { return MetricEnumeration::getAdapterId(adapterMajor, adapterMinor); }
|
||||
ze_result_t baseLoadMetricsDiscovery() { return MetricEnumeration::loadMetricsDiscovery(); }
|
||||
|
||||
|
||||
@@ -1966,22 +1966,94 @@ TEST_F(MetricEnumerationTest, givenNotLoadedMetricsLibraryAndDiscoveryWhenLoadDe
|
||||
EXPECT_EQ(metricContext.isInitialized(), false);
|
||||
}
|
||||
|
||||
TEST_F(MetricEnumerationTest, givenLoadedMetricsLibraryAndDiscoveryAndMetricsLibraryNotInitializedWhenLoadDependenciesThenReturnFail) {
|
||||
TEST_F(MetricEnumerationTest, givenRootDeviceWhenLoadDependenciesIsCalledThenLegacyOpenMetricsDeviceWillBeCalled) {
|
||||
|
||||
EXPECT_CALL(*mockMetricEnumeration, loadMetricsDiscovery())
|
||||
.Times(1)
|
||||
.WillOnce(Return(ZE_RESULT_SUCCESS));
|
||||
auto &metricContext = device->getMetricContext();
|
||||
Mock<IAdapterGroup_1_9> mockAdapterGroup;
|
||||
Mock<IAdapter_1_9> mockAdapter;
|
||||
Mock<IMetricsDevice_1_5> mockDevice;
|
||||
|
||||
EXPECT_CALL(*mockMetricsLibrary, load())
|
||||
.Times(1)
|
||||
.WillOnce(Return(true));
|
||||
|
||||
mockMetricsLibrary->initializationState = ZE_RESULT_ERROR_NOT_AVAILABLE;
|
||||
EXPECT_CALL(*mockMetricEnumeration, loadMetricsDiscovery())
|
||||
.Times(1)
|
||||
.WillOnce(Return(ZE_RESULT_SUCCESS));
|
||||
|
||||
auto &metricContext = device->getMetricContext();
|
||||
EXPECT_EQ(metricContext.loadDependencies(), false);
|
||||
EXPECT_EQ(metricContext.isInitialized(), false);
|
||||
EXPECT_CALL(*Mock<MetricEnumeration>::g_mockApi, MockOpenAdapterGroup(_))
|
||||
.Times(1)
|
||||
.WillOnce(DoAll(::testing::SetArgPointee<0>(&mockAdapterGroup), Return(TCompletionCode::CC_OK)));
|
||||
|
||||
EXPECT_CALL(*mockMetricEnumeration, getMetricsAdapter())
|
||||
.Times(1)
|
||||
.WillOnce(Return(&mockAdapter));
|
||||
|
||||
EXPECT_CALL(mockAdapter, OpenMetricsDevice(_))
|
||||
.Times(1)
|
||||
.WillOnce(DoAll(::testing::SetArgPointee<0>(&mockDevice), Return(TCompletionCode::CC_OK)));
|
||||
|
||||
EXPECT_CALL(mockAdapter, CloseMetricsDevice(_))
|
||||
.Times(1)
|
||||
.WillOnce(Return(TCompletionCode::CC_OK));
|
||||
|
||||
EXPECT_CALL(mockDevice, GetParams())
|
||||
.Times(1)
|
||||
.WillOnce(Return(&metricsDeviceParams));
|
||||
|
||||
// Use first sub device.
|
||||
metricContext.setSubDeviceIndex(0);
|
||||
mockMetricsLibrary->initializationState = ZE_RESULT_SUCCESS;
|
||||
|
||||
EXPECT_EQ(metricContext.loadDependencies(), true);
|
||||
EXPECT_EQ(metricContext.isInitialized(), true);
|
||||
EXPECT_EQ(mockMetricEnumeration->baseIsInitialized(), true);
|
||||
EXPECT_EQ(mockMetricEnumeration->cleanupMetricsDiscovery(), ZE_RESULT_SUCCESS);
|
||||
}
|
||||
|
||||
TEST_F(MetricEnumerationTest, givenSubDeviceWhenLoadDependenciesIsCalledThenOpenMetricsSubDeviceWillBeCalled) {
|
||||
|
||||
auto &metricContext = device->getMetricContext();
|
||||
Mock<IAdapterGroup_1_9> mockAdapterGroup;
|
||||
Mock<IAdapter_1_9> mockAdapter;
|
||||
Mock<IMetricsDevice_1_5> mockDevice;
|
||||
|
||||
EXPECT_CALL(*mockMetricsLibrary, load())
|
||||
.Times(1)
|
||||
.WillOnce(Return(true));
|
||||
|
||||
EXPECT_CALL(*mockMetricEnumeration, loadMetricsDiscovery())
|
||||
.Times(1)
|
||||
.WillOnce(Return(ZE_RESULT_SUCCESS));
|
||||
|
||||
EXPECT_CALL(*Mock<MetricEnumeration>::g_mockApi, MockOpenAdapterGroup(_))
|
||||
.Times(1)
|
||||
.WillOnce(DoAll(::testing::SetArgPointee<0>(&mockAdapterGroup), Return(TCompletionCode::CC_OK)));
|
||||
|
||||
EXPECT_CALL(*mockMetricEnumeration, getMetricsAdapter())
|
||||
.Times(1)
|
||||
.WillOnce(Return(&mockAdapter));
|
||||
|
||||
EXPECT_CALL(mockAdapter, OpenMetricsSubDevice(_, _))
|
||||
.Times(1)
|
||||
.WillOnce(DoAll(::testing::SetArgPointee<1>(&mockDevice), Return(TCompletionCode::CC_OK)));
|
||||
|
||||
EXPECT_CALL(mockAdapter, CloseMetricsDevice(_))
|
||||
.Times(1)
|
||||
.WillOnce(Return(TCompletionCode::CC_OK));
|
||||
|
||||
EXPECT_CALL(mockDevice, GetParams())
|
||||
.Times(1)
|
||||
.WillOnce(Return(&metricsDeviceParams));
|
||||
|
||||
// Use first sub device.
|
||||
metricContext.setSubDeviceIndex(1);
|
||||
mockMetricsLibrary->initializationState = ZE_RESULT_SUCCESS;
|
||||
|
||||
EXPECT_EQ(metricContext.loadDependencies(), true);
|
||||
EXPECT_EQ(metricContext.isInitialized(), true);
|
||||
EXPECT_EQ(mockMetricEnumeration->baseIsInitialized(), true);
|
||||
EXPECT_EQ(mockMetricEnumeration->cleanupMetricsDiscovery(), ZE_RESULT_SUCCESS);
|
||||
}
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
#include "shared/source/os_interface/device_factory.h"
|
||||
#include "shared/test/common/mocks/ult_device_factory.h"
|
||||
|
||||
#include "test.h"
|
||||
|
||||
@@ -879,5 +880,52 @@ TEST_F(MetricQueryPoolTest, givenExecutionQueryTypeAndMetricsLibraryWillFailWhen
|
||||
EXPECT_EQ(zeEventPoolDestroy(eventPoolHandle), ZE_RESULT_SUCCESS);
|
||||
}
|
||||
|
||||
TEST_F(MetricQueryPoolTest, givenRootDeviceWhenGetSubDeviceClientOptionsIsCalledThenReturnRootDeviceProperties) {
|
||||
|
||||
auto &metricContext = device->getMetricContext();
|
||||
auto &metricsLibrary = metricContext.getMetricsLibrary();
|
||||
auto subDevice = ClientOptionsData_1_0{};
|
||||
auto subDeviceIndex = ClientOptionsData_1_0{};
|
||||
auto subDeviceCount = ClientOptionsData_1_0{};
|
||||
|
||||
metricsLibrary.getSubDeviceClientOptions(*device->getNEODevice(), subDevice, subDeviceIndex, subDeviceCount);
|
||||
|
||||
// Root device
|
||||
EXPECT_EQ(subDevice.Type, MetricsLibraryApi::ClientOptionsType::SubDevice);
|
||||
EXPECT_EQ(subDevice.SubDevice.Enabled, false);
|
||||
|
||||
EXPECT_EQ(subDeviceIndex.Type, MetricsLibraryApi::ClientOptionsType::SubDeviceIndex);
|
||||
EXPECT_EQ(subDeviceIndex.SubDeviceIndex.Index, 0u);
|
||||
|
||||
EXPECT_EQ(subDeviceCount.Type, MetricsLibraryApi::ClientOptionsType::SubDeviceCount);
|
||||
EXPECT_EQ(subDeviceCount.SubDeviceCount.Count, device->getNEODevice()->getNumAvailableDevices());
|
||||
}
|
||||
|
||||
TEST_F(MetricQueryPoolTest, givenSubDeviceWhenGetSubDeviceClientOptionsIsCalledThenReturnSubDeviceProperties) {
|
||||
|
||||
auto deviceFactory = std::make_unique<UltDeviceFactory>(1, 4);
|
||||
auto rootDevice = deviceFactory->rootDevices[0];
|
||||
|
||||
auto &metricContext = device->getMetricContext();
|
||||
auto &metricsLibrary = metricContext.getMetricsLibrary();
|
||||
auto subDevice = ClientOptionsData_1_0{};
|
||||
auto subDeviceIndex = ClientOptionsData_1_0{};
|
||||
auto subDeviceCount = ClientOptionsData_1_0{};
|
||||
|
||||
// Sub devices
|
||||
for (uint32_t i = 0, count = rootDevice->getNumAvailableDevices(); i < count; ++i) {
|
||||
|
||||
metricsLibrary.getSubDeviceClientOptions(*rootDevice->subdevices[i], subDevice, subDeviceIndex, subDeviceCount);
|
||||
|
||||
EXPECT_EQ(subDevice.Type, MetricsLibraryApi::ClientOptionsType::SubDevice);
|
||||
EXPECT_EQ(subDevice.SubDevice.Enabled, true);
|
||||
|
||||
EXPECT_EQ(subDeviceIndex.Type, MetricsLibraryApi::ClientOptionsType::SubDeviceIndex);
|
||||
EXPECT_EQ(subDeviceIndex.SubDeviceIndex.Index, i);
|
||||
|
||||
EXPECT_EQ(subDeviceCount.Type, MetricsLibraryApi::ClientOptionsType::SubDeviceCount);
|
||||
EXPECT_EQ(subDeviceCount.SubDeviceCount.Count, rootDevice->getNumAvailableDevices());
|
||||
}
|
||||
}
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
@@ -29,7 +29,7 @@ TEST_F(MetricEnumerationTestWindows, givenCorrectWindowsAdapterWhenGetMetricsAda
|
||||
auto &osInterface = rootDevice->osInterface;
|
||||
auto wddm = new WddmMock(*rootDevice);
|
||||
auto adapterGroupParams = TAdapterGroupParams_1_6{};
|
||||
auto adapterParams = TAdapterParams_1_8{};
|
||||
auto adapterParams = TAdapterParams_1_9{};
|
||||
|
||||
osInterface = std::make_unique<NEO::OSInterface>();
|
||||
osInterface->get()->setWddm(wddm);
|
||||
|
||||
Reference in New Issue
Block a user