Use RCS as default engine for TGL LP A0

Related-To: NEO-3741

Change-Id: Iac79ff5e7142a3ee74990048fcc84565639a2da2
Signed-off-by: Pawel Wilma <pawel.wilma@intel.com>
This commit is contained in:
Pawel Wilma 2019-11-24 16:13:44 +01:00 committed by sys_ocldev
parent b4df74f42b
commit 9b84d8f5ba
5 changed files with 31 additions and 4 deletions

View File

@ -119,5 +119,6 @@ struct WorkaroundTableBase {
bool waAuxTable16KGranular = false;
bool waDisableFusedThreadScheduling = false;
bool waUseOffsetToSkipSetFFIDGP = false;
bool waForceDefaultRCSEngine = false;
};
} // namespace NEO

View File

@ -17,7 +17,7 @@ typedef TGLLPFamily Family;
template <>
void HwHelperHw<Family>::adjustDefaultEngineType(HardwareInfo *pHwInfo) {
if (!pHwInfo->featureTable.ftrCCSNode) {
if (!pHwInfo->featureTable.ftrCCSNode || pHwInfo->workaroundTable.waForceDefaultRCSEngine) {
pHwInfo->capabilityTable.defaultEngineType = aub_stream::ENGINE_RCS;
}
}

View File

@ -100,8 +100,9 @@ void TGLLP::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
workaroundTable->wa4kAlignUVOffsetNV12LinearSurface = true;
workaroundTable->waEnablePreemptionGranularityControlByUMD = true;
workaroundTable->waUntypedBufferCompression = true;
if (hwInfo->platform.usRevId == REVISION_A0) {
if (hwInfo->platform.usRevId < REVISION_B) {
workaroundTable->waUseOffsetToSkipSetFFIDGP = true;
workaroundTable->waForceDefaultRCSEngine = true;
}
};

View File

@ -88,10 +88,26 @@ TGLLPTEST_F(TgllpHwInfo, givenA0SteppingWhenWaTableIsInitializedThenWaUseOffsetT
EXPECT_TRUE(hwInfo.workaroundTable.waUseOffsetToSkipSetFFIDGP);
}
TGLLPTEST_F(TgllpHwInfo, givenA1SteppingWhenWaTableIsInitializedThenWaUseOffsetToSkipSetFFIDGPIsNotSet) {
TGLLPTEST_F(TgllpHwInfo, givenBSteppingWhenWaTableIsInitializedThenWaUseOffsetToSkipSetFFIDGPIsNotSet) {
HardwareInfo hwInfo;
hwInfo.platform.usRevId = REVISION_A1;
hwInfo.platform.usRevId = REVISION_B;
TGLLP::setupFeatureAndWorkaroundTable(&hwInfo);
EXPECT_FALSE(hwInfo.workaroundTable.waUseOffsetToSkipSetFFIDGP);
}
TGLLPTEST_F(TgllpHwInfo, givenA0SteppingWhenWaTableIsInitializedThenWaForceDefaultRCSEngineIsSet) {
HardwareInfo hwInfo;
hwInfo.platform.usRevId = REVISION_A0;
TGLLP::setupFeatureAndWorkaroundTable(&hwInfo);
EXPECT_TRUE(hwInfo.workaroundTable.waForceDefaultRCSEngine);
}
TGLLPTEST_F(TgllpHwInfo, givenBSteppingWhenWaTableIsInitializedThenWaForceDefaultRCSEngineIsNotSet) {
HardwareInfo hwInfo;
hwInfo.platform.usRevId = REVISION_B;
TGLLP::setupFeatureAndWorkaroundTable(&hwInfo);
EXPECT_FALSE(hwInfo.workaroundTable.waForceDefaultRCSEngine);
}

View File

@ -769,3 +769,12 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HwHelperTest, GivenVariousValuesWhenCallingCalculate
hardwareInfo.gtSystemInfo.ThreadCount / hardwareInfo.gtSystemInfo.EUCount);
EXPECT_EQ(hardwareInfo.gtSystemInfo.ThreadCount, result);
}
HWCMDTEST_F(IGFX_GEN8_CORE, HwHelperTest, givenWaForceDefaultRcsEngineIsSetWhenAdjustDefaultEngineTypeIsCalledThenRcsIsUsedAsDefaultEngine) {
hardwareInfo.featureTable.ftrCCSNode = true;
hardwareInfo.workaroundTable.waForceDefaultRCSEngine = true;
auto &helper = HwHelper::get(hardwareInfo.platform.eRenderCoreFamily);
helper.adjustDefaultEngineType(&hardwareInfo);
EXPECT_EQ(aub_stream::ENGINE_RCS, hardwareInfo.capabilityTable.defaultEngineType);
}