mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-26 15:03:02 +08:00
Change-Id: I9a76f2c7d97254aa6b71e1be44fb1ac5317f37ea Signed-off-by: Adam Cetnerowski <adam.cetnerowski@intel.com>
112 lines
4.0 KiB
C++
112 lines
4.0 KiB
C++
/*
|
|
* Copyright (C) 2018-2019 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
*/
|
|
|
|
#include "test.h"
|
|
|
|
using namespace NEO;
|
|
|
|
TEST(BdwHwInfoConfig, givenHwInfoConfigStringThenAfterSetupResultingHwInfoIsCorrect) {
|
|
if (IGFX_BROADWELL != productFamily) {
|
|
return;
|
|
}
|
|
HardwareInfo hwInfo;
|
|
GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
|
|
|
|
std::string strConfig = "1x3x8";
|
|
hardwareInfoSetup[productFamily](&hwInfo, false, strConfig);
|
|
EXPECT_EQ(1u, gtSystemInfo.SliceCount);
|
|
EXPECT_EQ(3u, gtSystemInfo.SubSliceCount);
|
|
EXPECT_EQ(23u, gtSystemInfo.EUCount);
|
|
|
|
strConfig = "2x3x8";
|
|
gtSystemInfo = {0};
|
|
hardwareInfoSetup[productFamily](&hwInfo, false, strConfig);
|
|
EXPECT_EQ(2u, gtSystemInfo.SliceCount);
|
|
EXPECT_EQ(6u, gtSystemInfo.SubSliceCount);
|
|
EXPECT_EQ(47u, gtSystemInfo.EUCount);
|
|
|
|
strConfig = "1x2x6";
|
|
gtSystemInfo = {0};
|
|
hardwareInfoSetup[productFamily](&hwInfo, false, strConfig);
|
|
EXPECT_EQ(1u, gtSystemInfo.SliceCount);
|
|
EXPECT_EQ(2u, gtSystemInfo.SubSliceCount);
|
|
EXPECT_EQ(12u, gtSystemInfo.EUCount);
|
|
|
|
strConfig = "1x3x6";
|
|
gtSystemInfo = {0};
|
|
hardwareInfoSetup[productFamily](&hwInfo, false, strConfig);
|
|
EXPECT_EQ(1u, gtSystemInfo.SliceCount);
|
|
EXPECT_EQ(3u, gtSystemInfo.SubSliceCount);
|
|
EXPECT_EQ(18u, gtSystemInfo.EUCount);
|
|
|
|
strConfig = "default";
|
|
gtSystemInfo = {0};
|
|
hardwareInfoSetup[productFamily](&hwInfo, false, strConfig);
|
|
EXPECT_EQ(1u, gtSystemInfo.SliceCount);
|
|
EXPECT_EQ(3u, gtSystemInfo.SubSliceCount);
|
|
EXPECT_EQ(23u, gtSystemInfo.EUCount);
|
|
|
|
strConfig = "erroneous";
|
|
gtSystemInfo = {0};
|
|
EXPECT_ANY_THROW(hardwareInfoSetup[productFamily](&hwInfo, false, strConfig));
|
|
|
|
EXPECT_EQ(0u, gtSystemInfo.SliceCount);
|
|
EXPECT_EQ(0u, gtSystemInfo.SubSliceCount);
|
|
EXPECT_EQ(0u, gtSystemInfo.EUCount);
|
|
}
|
|
|
|
using BdwHwInfo = ::testing::Test;
|
|
|
|
BDWTEST_F(BdwHwInfo, givenBoolWhenCallBdwHardwareInfoSetupThenFeatureTableAndWorkaroundTableAreSetCorrect) {
|
|
std::string strConfig[] = {
|
|
"1x3x8",
|
|
"2x3x8",
|
|
"1x2x6",
|
|
"1x3x6"};
|
|
bool boolValue[]{
|
|
true, false};
|
|
HardwareInfo hwInfo;
|
|
GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
|
|
FeatureTable &featureTable = hwInfo.featureTable;
|
|
WorkaroundTable &workaroundTable = hwInfo.workaroundTable;
|
|
|
|
for (auto &config : strConfig) {
|
|
for (auto setParamBool : boolValue) {
|
|
|
|
gtSystemInfo = {0};
|
|
featureTable = {};
|
|
workaroundTable = {};
|
|
hardwareInfoSetup[productFamily](&hwInfo, setParamBool, config);
|
|
|
|
EXPECT_EQ(setParamBool, featureTable.ftrL3IACoherency);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrPPGTT);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrSVM);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrIA32eGfxPTEs);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrFbc);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrFbc2AddressTranslation);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrFbcBlitterTracking);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrFbcCpuTracking);
|
|
EXPECT_EQ(setParamBool, featureTable.ftrTileY);
|
|
|
|
EXPECT_EQ(setParamBool, workaroundTable.waDisableLSQCROPERFforOCL);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waReportPerfCountUseGlobalContextID);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waUseVAlign16OnTileXYBpp816);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waModifyVFEStateAfterGPGPUPreemption);
|
|
EXPECT_EQ(setParamBool, workaroundTable.waSamplerCacheFlushBetweenRedescribedSurfaceReads);
|
|
}
|
|
}
|
|
}
|
|
|
|
BDWTEST_F(BdwHwInfo, givenHwInfoConfigStringThenAfterSetupResultingVmeIsDisabled) {
|
|
HardwareInfo hwInfo;
|
|
|
|
std::string strConfig = "default";
|
|
hardwareInfoSetup[productFamily](&hwInfo, false, strConfig);
|
|
EXPECT_FALSE(hwInfo.capabilityTable.ftrSupportsVmeAvcTextureSampler);
|
|
EXPECT_FALSE(hwInfo.capabilityTable.ftrSupportsVmeAvcPreemption);
|
|
EXPECT_FALSE(hwInfo.capabilityTable.supportsVme);
|
|
} |