Leave init builtin async only on post silicon

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2023-02-21 14:27:13 +00:00
committed by Compute-Runtime-Automation
parent 012cbecb32
commit 45139de33a
12 changed files with 44 additions and 1 deletions

View File

@@ -24,7 +24,8 @@ std::unique_ptr<BuiltinFunctionsLib> BuiltinFunctionsLib::create(Device *device,
bool BuiltinFunctionsLibImpl::initBuiltinsAsyncEnabled(Device *device) {
return device->getNEODevice()->getRootDeviceEnvironment().osInterface.get() &&
device->getNEODevice()->getRootDeviceEnvironment().osInterface->getDriverModel()->getDriverModelType() == NEO::DriverModelType::DRM &&
device->getNEODevice()->getDefaultEngine().commandStreamReceiver->getType() == NEO::CommandStreamReceiverType::CSR_HW;
device->getNEODevice()->getDefaultEngine().commandStreamReceiver->getType() == NEO::CommandStreamReceiverType::CSR_HW &&
device->getNEODevice()->getRootDeviceEnvironment().getProductHelper().isInitBuiltinAsyncSupported(device->getHwInfo());
}
} // namespace L0

View File

@@ -125,6 +125,7 @@ class ProductHelper {
virtual bool isFlushTaskAllowed() const = 0;
virtual bool programAllStateComputeCommandFields() const = 0;
virtual bool isSystolicModeConfigurable(const HardwareInfo &hwInfo) const = 0;
virtual bool isInitBuiltinAsyncSupported(const HardwareInfo &hwInfo) const = 0;
virtual bool isGlobalFenceInCommandStreamRequired(const HardwareInfo &hwInfo) const = 0;
virtual bool isGlobalFenceInDirectSubmissionRequired(const HardwareInfo &hwInfo) const = 0;
virtual bool isComputeDispatchAllWalkerEnableInComputeWalkerRequired(const HardwareInfo &hwInfo) const = 0;

View File

@@ -55,6 +55,11 @@ void ProductHelperHw<gfxProduct>::setCapabilityCoherencyFlag(const HardwareInfo
coherencyFlag = true;
}
template <PRODUCT_FAMILY gfxProduct>
bool ProductHelperHw<gfxProduct>::isInitBuiltinAsyncSupported(const HardwareInfo &hwInfo) const {
return true;
}
template <PRODUCT_FAMILY gfxProduct>
bool ProductHelperHw<gfxProduct>::isTile64With3DSurfaceOnBCSSupported(const HardwareInfo &hwInfo) const {
return true;

View File

@@ -58,6 +58,11 @@ void ProductHelperHw<gfxProduct>::setCapabilityCoherencyFlag(const HardwareInfo
coherencyFlag = false;
}
template <PRODUCT_FAMILY gfxProduct>
bool ProductHelperHw<gfxProduct>::isInitBuiltinAsyncSupported(const HardwareInfo &hwInfo) const {
return true;
}
template <PRODUCT_FAMILY gfxProduct>
bool ProductHelperHw<gfxProduct>::isTile64With3DSurfaceOnBCSSupported(const HardwareInfo &hwInfo) const {
return false;

View File

@@ -84,6 +84,7 @@ class ProductHelperHw : public ProductHelper {
bool isFlushTaskAllowed() const override;
bool programAllStateComputeCommandFields() const override;
bool isSystolicModeConfigurable(const HardwareInfo &hwInfo) const override;
bool isInitBuiltinAsyncSupported(const HardwareInfo &hwInfo) const override;
bool isComputeDispatchAllWalkerEnableInComputeWalkerRequired(const HardwareInfo &hwInfo) const override;
bool isCopyEngineSelectorEnabled(const HardwareInfo &hwInfo) const override;
bool isGlobalFenceInCommandStreamRequired(const HardwareInfo &hwInfo) const override;

View File

@@ -106,6 +106,11 @@ bool ProductHelperHw<gfxProduct>::isAdjustWalkOrderAvailable(const HardwareInfo
return (MTL::isLpg(hwInfo) == false);
}
template <>
bool ProductHelperHw<gfxProduct>::isInitBuiltinAsyncSupported(const HardwareInfo &hwInfo) const {
return false;
}
template <>
bool ProductHelperHw<gfxProduct>::isEvictionIfNecessaryFlagSupported() const {
return true;

View File

@@ -215,6 +215,11 @@ template <>
void ProductHelperHw<IGFX_UNKNOWN>::setCapabilityCoherencyFlag(const HardwareInfo &hwInfo, bool &coherencyFlag) {
}
template <>
bool ProductHelperHw<IGFX_UNKNOWN>::isInitBuiltinAsyncSupported(const HardwareInfo &hwInfo) const {
return false;
}
template <>
bool ProductHelperHw<IGFX_UNKNOWN>::isAdditionalMediaSamplerProgrammingRequired() const {
return false;

View File

@@ -35,6 +35,10 @@ SKLTEST_F(SklProductHelper, GivenIncorrectDataWhenConfiguringHwInfoThenErrorIsRe
EXPECT_EQ(0u, gtSystemInfo.EUCount);
}
SKLTEST_F(SklProductHelper, givenSklProductHelperWhenIsInitBuiltinAsyncSupportedThenReturnTrue) {
EXPECT_TRUE(productHelper->isInitBuiltinAsyncSupported(*defaultHwInfo));
}
SKLTEST_F(SklProductHelper, givenBoolWhenCallSklHardwareInfoSetupThenFeatureTableAndWorkaroundTableAreSetCorrect) {
uint64_t configs[] = {
0x100030008,

View File

@@ -51,6 +51,10 @@ XEHPTEST_F(XeHpProductHelper, givenProductHelperWhenRevisionIsAtLeastBThenAllowS
}
}
XEHPTEST_F(XeHpProductHelper, givenXeHpProductHelperWhenIsInitBuiltinAsyncSupportedThenReturnTrue) {
EXPECT_TRUE(productHelper->isInitBuiltinAsyncSupported(*defaultHwInfo));
}
XEHPTEST_F(XeHpProductHelper, givenXeHpCoreProductHelperWhenCheckDirectSubmissionSupportedThenTrueIsReturned) {
auto hwInfo = *defaultHwInfo;

View File

@@ -87,6 +87,10 @@ PVCTEST_F(PvcProductHelper, givenPvcProductHelperWhenIsStatefulAddressingModeSup
EXPECT_FALSE(productHelper->isStatefulAddressingModeSupported());
}
PVCTEST_F(PvcProductHelper, givenPvcProductHelperWhenIsInitBuiltinAsyncSupportedThenReturnTrue) {
EXPECT_TRUE(productHelper->isInitBuiltinAsyncSupported(*defaultHwInfo));
}
PVCTEST_F(PvcProductHelper, givenPvcSteppingWhenQueryIsComputeDispatchAllWalkerEnableInCfeStateRequiredThenAppropriateValueIsReturned) {
auto hwInfo = *defaultHwInfo;

View File

@@ -55,6 +55,10 @@ DG2TEST_F(ProductHelperTestDg2, givenDg2ConfigWhenSetupHardwareInfoThenGtSystemI
EXPECT_FALSE(gtSystemInfo.IsL3HashModeEnabled);
}
DG2TEST_F(ProductHelperTestDg2, givenDg2ProductHelperWhenIsInitBuiltinAsyncSupportedThenReturnTrue) {
EXPECT_TRUE(productHelper->isInitBuiltinAsyncSupported(*defaultHwInfo));
}
DG2TEST_F(ProductHelperTestDg2, givenG10DevIdWhenAdditionalKernelExecInfoSupportCheckedThenCorrectValueIsReturned) {
HardwareInfo myHwInfo = *defaultHwInfo;
myHwInfo.platform.usDeviceID = dg2G10DeviceIds[0];

View File

@@ -62,6 +62,10 @@ MTLTEST_F(MtlProductHelper, whenGettingAubstreamProductFamilyThenProperEnumValue
EXPECT_EQ(aub_stream::ProductFamily::Mtl, productHelper->getAubStreamProductFamily());
}
MTLTEST_F(MtlProductHelper, givenMtlProductHelperWhenIsInitBuiltinAsyncSupportedThenReturnFalse) {
EXPECT_FALSE(productHelper->isInitBuiltinAsyncSupported(*defaultHwInfo));
}
MTLTEST_F(MtlProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
EXPECT_TRUE(productHelper->isEvictionIfNecessaryFlagSupported());
}