80 lines
3.3 KiB
C++
80 lines
3.3 KiB
C++
/*
|
|
* Copyright (C) 2018-2020 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
*/
|
|
|
|
#include "test.h"
|
|
|
|
using namespace NEO;
|
|
|
|
TEST(GlkHwInfoConfig, givenHwInfoErrorneousConfigString) {
|
|
if (IGFX_GEMINILAKE != productFamily) {
|
|
return;
|
|
}
|
|
HardwareInfo hwInfo;
|
|
GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
|
|
gtSystemInfo = {0};
|
|
|
|
uint64_t config = 0xdeadbeef;
|
|
gtSystemInfo = {0};
|
|
EXPECT_ANY_THROW(hardwareInfoSetup[productFamily](&hwInfo, false, config));
|
|
EXPECT_EQ(0u, gtSystemInfo.SliceCount);
|
|
EXPECT_EQ(0u, gtSystemInfo.SubSliceCount);
|
|
EXPECT_EQ(0u, gtSystemInfo.EUCount);
|
|
}
|
|
|
|
using GlkHwInfo = ::testing::Test;
|
|
|
|
GLKTEST_F(GlkHwInfo, givenBoolWhenCallGlkHardwareInfoSetupThenFeatureTableAndWorkaroundTableAreSetCorrect) {
|
|
uint64_t configs[] = {
|
|
0x100020006,
|
|
0x100030006};
|
|
bool boolValue[]{
|
|
true, false};
|
|
HardwareInfo hwInfo;
|
|
GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
|
|
FeatureTable &featureTable = hwInfo.featureTable;
|
|
WorkaroundTable &workaroundTable = hwInfo.workaroundTable;
|
|
|
|
for (auto &config : configs) {
|
|
for (auto setParamBool : boolValue) {
|
|
|
|
gtSystemInfo = {0};
|
|
featureTable = {};
|
|
workaroundTable = {};
|
|
hardwareInfoSetup[productFamily](&hwInfo, setParamBool, config);
|
|
|
|
EXPECT_EQ(setParamBool, featureTable.ftrGpGpuMidBatchPreempt);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrGpGpuThreadGroupLevelPreempt);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrL3IACoherency);
|
|
EXPECT_EQ(false, featureTable.ftrGpGpuMidThreadLevelPreempt);
|
|
EXPECT_EQ(setParamBool, featureTable.ftr3dMidBatchPreempt);
|
|
EXPECT_EQ(setParamBool, featureTable.ftr3dObjectLevelPreempt);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrPerCtxtPreemptionGranularityControl);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrLCIA);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrPPGTT);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrIA32eGfxPTEs);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrTranslationTable);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrUserModeTranslationTable);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrEnableGuC);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrTileMappedResource);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrULT);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrAstcHdr2D);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrAstcLdr2D);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrTileY);
|
|
|
|
EXPECT_EQ(setParamBool, workaroundTable.waLLCCachingUnsupported);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waMsaa8xTileYDepthPitchAlignment);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waFbcLinearSurfaceStride);
|
|
EXPECT_EQ(setParamBool, workaroundTable.wa4kAlignUVOffsetNV12LinearSurface);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waEnablePreemptionGranularityControlByUMD);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waSendMIFLUSHBeforeVFE);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waForcePcBbFullCfgRestore);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waReportPerfCountUseGlobalContextID);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waSamplerCacheFlushBetweenRedescribedSurfaceReads);
|
|
}
|
|
}
|
|
}
|