1 /*
2 * Copyright (C) 2019-2021 Intel Corporation
3 *
4 * SPDX-License-Identifier: MIT
5 *
6 */
7
8 #include "shared/source/os_interface/hw_info_config.h"
9 #include "shared/test/common/helpers/default_hw_info.h"
10 #include "shared/test/common/test_macros/test.h"
11
12 using namespace NEO;
13
14 using IcllpHwInfoConfig = ::testing::Test;
15
ICLLPTEST_F(IcllpHwInfoConfig,givenInvalidSystemInfoWhenSettingHardwareInfoThenExpectThrow)16 ICLLPTEST_F(IcllpHwInfoConfig, givenInvalidSystemInfoWhenSettingHardwareInfoThenExpectThrow) {
17 HardwareInfo hwInfo = *defaultHwInfo;
18 GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
19
20 uint64_t config = 0xdeadbeef;
21 gtSystemInfo = {0};
22 EXPECT_ANY_THROW(hardwareInfoSetup[productFamily](&hwInfo, false, config));
23 EXPECT_EQ(0u, gtSystemInfo.SliceCount);
24 EXPECT_EQ(0u, gtSystemInfo.SubSliceCount);
25 EXPECT_EQ(0u, gtSystemInfo.DualSubSliceCount);
26 EXPECT_EQ(0u, gtSystemInfo.EUCount);
27 }
28
ICLLPTEST_F(IcllpHwInfoConfig,givenHwInfoConfigWhenAskedIfAdditionalMediaSamplerProgrammingIsRequiredThenTrueIsReturned)29 ICLLPTEST_F(IcllpHwInfoConfig, givenHwInfoConfigWhenAskedIfAdditionalMediaSamplerProgrammingIsRequiredThenTrueIsReturned) {
30 const auto &hwInfoConfig = *HwInfoConfig::get(defaultHwInfo->platform.eProductFamily);
31 EXPECT_TRUE(hwInfoConfig.isAdditionalMediaSamplerProgrammingRequired());
32 }
33
ICLLPTEST_F(IcllpHwInfoConfig,givenHwInfoConfigWhenAskedIfInitialFlagsProgrammingIsRequiredThenTrueIsReturned)34 ICLLPTEST_F(IcllpHwInfoConfig, givenHwInfoConfigWhenAskedIfInitialFlagsProgrammingIsRequiredThenTrueIsReturned) {
35 const auto &hwInfoConfig = *HwInfoConfig::get(defaultHwInfo->platform.eProductFamily);
36 EXPECT_TRUE(hwInfoConfig.isInitialFlagsProgrammingRequired());
37 }
38
ICLLPTEST_F(IcllpHwInfoConfig,givenHwInfoConfigWhenAskedIfReturnedCmdSizeForMediaSamplerAdjustmentIsRequiredThenTrueIsReturned)39 ICLLPTEST_F(IcllpHwInfoConfig, givenHwInfoConfigWhenAskedIfReturnedCmdSizeForMediaSamplerAdjustmentIsRequiredThenTrueIsReturned) {
40 const auto &hwInfoConfig = *HwInfoConfig::get(defaultHwInfo->platform.eProductFamily);
41 EXPECT_TRUE(hwInfoConfig.isReturnedCmdSizeForMediaSamplerAdjustmentRequired());
42 }
43
44 using IcllpHwInfo = ::testing::Test;
45
ICLLPTEST_F(IcllpHwInfo,givenBoolWhenCallIcllpHardwareInfoSetupThenFeatureTableAndWorkaroundTableAreSetCorrect)46 ICLLPTEST_F(IcllpHwInfo, givenBoolWhenCallIcllpHardwareInfoSetupThenFeatureTableAndWorkaroundTableAreSetCorrect) {
47 uint64_t configs[] = {
48 0x100080008,
49 0x100040008,
50 0x100060008};
51 bool boolValue[]{
52 true, false};
53
54 HardwareInfo hwInfo = *defaultHwInfo;
55 GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
56 FeatureTable &featureTable = hwInfo.featureTable;
57 WorkaroundTable &workaroundTable = hwInfo.workaroundTable;
58
59 for (auto config : configs) {
60 for (auto setParamBool : boolValue) {
61
62 gtSystemInfo = {0};
63 featureTable = {};
64 workaroundTable = {};
65 hardwareInfoSetup[productFamily](&hwInfo, setParamBool, config);
66
67 EXPECT_EQ(setParamBool, featureTable.flags.ftrL3IACoherency);
68 EXPECT_EQ(setParamBool, featureTable.flags.ftrPPGTT);
69 EXPECT_EQ(setParamBool, featureTable.flags.ftrSVM);
70 EXPECT_EQ(setParamBool, featureTable.flags.ftrIA32eGfxPTEs);
71 EXPECT_EQ(setParamBool, featureTable.flags.ftrStandardMipTailFormat);
72 EXPECT_EQ(setParamBool, featureTable.flags.ftrDisplayYTiling);
73 EXPECT_EQ(setParamBool, featureTable.flags.ftrTranslationTable);
74 EXPECT_EQ(setParamBool, featureTable.flags.ftrUserModeTranslationTable);
75 EXPECT_EQ(setParamBool, featureTable.flags.ftrTileMappedResource);
76 EXPECT_EQ(setParamBool, featureTable.flags.ftrEnableGuC);
77 EXPECT_EQ(setParamBool, featureTable.flags.ftrFbc);
78 EXPECT_EQ(setParamBool, featureTable.flags.ftrFbc2AddressTranslation);
79 EXPECT_EQ(setParamBool, featureTable.flags.ftrFbcBlitterTracking);
80 EXPECT_EQ(setParamBool, featureTable.flags.ftrFbcCpuTracking);
81 EXPECT_EQ(setParamBool, featureTable.flags.ftrTileY);
82 EXPECT_EQ(setParamBool, featureTable.flags.ftrAstcHdr2D);
83 EXPECT_EQ(setParamBool, featureTable.flags.ftrAstcLdr2D);
84 EXPECT_EQ(setParamBool, featureTable.flags.ftr3dMidBatchPreempt);
85 EXPECT_EQ(setParamBool, featureTable.flags.ftrGpGpuMidBatchPreempt);
86 EXPECT_EQ(setParamBool, featureTable.flags.ftrGpGpuMidThreadLevelPreempt);
87 EXPECT_EQ(setParamBool, featureTable.flags.ftrGpGpuThreadGroupLevelPreempt);
88 EXPECT_EQ(setParamBool, featureTable.flags.ftrPerCtxtPreemptionGranularityControl);
89
90 EXPECT_EQ(setParamBool, workaroundTable.flags.wa4kAlignUVOffsetNV12LinearSurface);
91 EXPECT_EQ(setParamBool, workaroundTable.flags.waReportPerfCountUseGlobalContextID);
92 }
93 }
94 }
95