Add hardware support for each pipeline property

This change is a baseline for tight control over
when dispatch pipeline state commands and which
pipeline state properties can be changed for a
given hardware platform

Related-To: NEO-5019

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2022-08-22 23:38:32 +00:00
committed by Compute-Runtime-Automation
parent 9974d95dc3
commit 02cf62902b
28 changed files with 754 additions and 0 deletions

View File

@@ -106,3 +106,25 @@ BXTTEST_F(BxtHwInfo, givenHwInfoConfigWhenGettingEvictIfNecessaryFlagSupportedTh
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
EXPECT_TRUE(hwInfoConfig.isEvictionIfNecessaryFlagSupported());
}
BXTTEST_F(BxtHwInfo, givenHwInfoConfigWhenGetCommandsStreamPropertiesSupportThenExpectCorrectValues) {
HardwareInfo hwInfo = *defaultHwInfo;
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
EXPECT_TRUE(hwInfoConfig.getScmPropertyThreadArbitrationSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyCoherencySupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyZPassAsyncSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyPixelAsyncSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyLargeGrfSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyDevicePreemptionSupport());
EXPECT_FALSE(hwInfoConfig.getSbaPropertyGlobalAtomicsSupport());
EXPECT_TRUE(hwInfoConfig.getSbaPropertyStatelessMocsSupport());
EXPECT_TRUE(hwInfoConfig.getFrontEndPropertyScratchSizeSupport());
EXPECT_FALSE(hwInfoConfig.getFrontEndPropertyPrivateScratchSizeSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyPreemptionModeSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyStateSipSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyCsrSurfaceSupport());
}

View File

@@ -113,3 +113,25 @@ CFLTEST_F(CflHwInfo, givenHwInfoConfigWhenGettingEvictIfNecessaryFlagSupportedTh
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
EXPECT_TRUE(hwInfoConfig.isEvictionIfNecessaryFlagSupported());
}
CFLTEST_F(CflHwInfo, givenHwInfoConfigWhenGetCommandsStreamPropertiesSupportThenExpectCorrectValues) {
HardwareInfo hwInfo = *defaultHwInfo;
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
EXPECT_TRUE(hwInfoConfig.getScmPropertyThreadArbitrationSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyCoherencySupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyZPassAsyncSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyPixelAsyncSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyLargeGrfSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyDevicePreemptionSupport());
EXPECT_FALSE(hwInfoConfig.getSbaPropertyGlobalAtomicsSupport());
EXPECT_TRUE(hwInfoConfig.getSbaPropertyStatelessMocsSupport());
EXPECT_TRUE(hwInfoConfig.getFrontEndPropertyScratchSizeSupport());
EXPECT_FALSE(hwInfoConfig.getFrontEndPropertyPrivateScratchSizeSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyPreemptionModeSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyStateSipSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyCsrSurfaceSupport());
}

View File

@@ -96,3 +96,25 @@ GLKTEST_F(GlkHwInfo, givenHwInfoConfigWhenGettingEvictIfNecessaryFlagSupportedTh
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
EXPECT_TRUE(hwInfoConfig.isEvictionIfNecessaryFlagSupported());
}
GLKTEST_F(GlkHwInfo, givenHwInfoConfigWhenGetCommandsStreamPropertiesSupportThenExpectCorrectValues) {
HardwareInfo hwInfo = *defaultHwInfo;
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
EXPECT_TRUE(hwInfoConfig.getScmPropertyThreadArbitrationSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyCoherencySupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyZPassAsyncSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyPixelAsyncSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyLargeGrfSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyDevicePreemptionSupport());
EXPECT_FALSE(hwInfoConfig.getSbaPropertyGlobalAtomicsSupport());
EXPECT_TRUE(hwInfoConfig.getSbaPropertyStatelessMocsSupport());
EXPECT_TRUE(hwInfoConfig.getFrontEndPropertyScratchSizeSupport());
EXPECT_FALSE(hwInfoConfig.getFrontEndPropertyPrivateScratchSizeSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyPreemptionModeSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyStateSipSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyCsrSurfaceSupport());
}

View File

@@ -120,3 +120,25 @@ KBLTEST_F(KblHwInfo, givenHwInfoConfigWhenGettingEvictIfNecessaryFlagSupportedTh
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
EXPECT_TRUE(hwInfoConfig.isEvictionIfNecessaryFlagSupported());
}
KBLTEST_F(KblHwInfo, givenHwInfoConfigWhenGetCommandsStreamPropertiesSupportThenExpectCorrectValues) {
HardwareInfo hwInfo = *defaultHwInfo;
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
EXPECT_TRUE(hwInfoConfig.getScmPropertyThreadArbitrationSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyCoherencySupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyZPassAsyncSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyPixelAsyncSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyLargeGrfSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyDevicePreemptionSupport());
EXPECT_FALSE(hwInfoConfig.getSbaPropertyGlobalAtomicsSupport());
EXPECT_TRUE(hwInfoConfig.getSbaPropertyStatelessMocsSupport());
EXPECT_TRUE(hwInfoConfig.getFrontEndPropertyScratchSizeSupport());
EXPECT_FALSE(hwInfoConfig.getFrontEndPropertyPrivateScratchSizeSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyPreemptionModeSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyStateSipSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyCsrSurfaceSupport());
}

View File

@@ -120,3 +120,25 @@ SKLTEST_F(SklHwInfo, givenHwInfoConfigWhenGettingEvictIfNecessaryFlagSupportedTh
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
EXPECT_TRUE(hwInfoConfig.isEvictionIfNecessaryFlagSupported());
}
SKLTEST_F(SklHwInfo, givenHwInfoConfigWhenGetCommandsStreamPropertiesSupportThenExpectCorrectValues) {
HardwareInfo hwInfo = *defaultHwInfo;
const auto &hwInfoConfig = *HwInfoConfig::get(hwInfo.platform.eProductFamily);
EXPECT_TRUE(hwInfoConfig.getScmPropertyThreadArbitrationSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyCoherencySupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyZPassAsyncSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyPixelAsyncSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyLargeGrfSupport());
EXPECT_FALSE(hwInfoConfig.getScmPropertyDevicePreemptionSupport());
EXPECT_FALSE(hwInfoConfig.getSbaPropertyGlobalAtomicsSupport());
EXPECT_TRUE(hwInfoConfig.getSbaPropertyStatelessMocsSupport());
EXPECT_TRUE(hwInfoConfig.getFrontEndPropertyScratchSizeSupport());
EXPECT_FALSE(hwInfoConfig.getFrontEndPropertyPrivateScratchSizeSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyPreemptionModeSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyStateSipSupport());
EXPECT_TRUE(hwInfoConfig.getPreemptionDbgPropertyCsrSurfaceSupport());
}