fix: Do not defer MOCS to PAT on xe lpg

Related-To: NEO-10556, NEO-11553

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2024-05-29 09:43:26 +00:00
committed by Compute-Runtime-Automation
parent 4f8ec54e1d
commit a1bd375237
7 changed files with 23 additions and 1 deletions

View File

@@ -230,6 +230,7 @@ class ProductHelper {
virtual std::optional<GfxMemoryAllocationMethod> getPreferredAllocationMethod(AllocationType allocationType) const = 0;
virtual bool isCachingOnCpuAvailable() const = 0;
virtual bool isNewCoherencyModelSupported() const = 0;
virtual bool deferMOCSToPatIndex() const = 0;
virtual const std::vector<uint32_t> getSupportedLocalDispatchSizes(const HardwareInfo &hwInfo) const = 0;
virtual bool supportReadOnlyAllocations() const = 0;
virtual bool isDeviceToHostCopySignalingFenceRequired() const = 0;

View File

@@ -45,6 +45,11 @@ bool ProductHelperHw<gfxProduct>::isNewResidencyModelSupported() const {
return false;
}
template <PRODUCT_FAMILY gfxProduct>
bool ProductHelperHw<gfxProduct>::deferMOCSToPatIndex() const {
return false;
}
template <PRODUCT_FAMILY gfxProduct>
bool ProductHelperHw<gfxProduct>::heapInLocalMem(const HardwareInfo &hwInfo) const {
return false;

View File

@@ -175,6 +175,7 @@ class ProductHelperHw : public ProductHelper {
std::optional<GfxMemoryAllocationMethod> getPreferredAllocationMethod(AllocationType allocationType) const override;
bool isCachingOnCpuAvailable() const override;
bool isNewCoherencyModelSupported() const override;
bool deferMOCSToPatIndex() const override;
bool supportReadOnlyAllocations() const override;
const std::vector<uint32_t> getSupportedLocalDispatchSizes(const HardwareInfo &hwInfo) const override;
bool isDeviceToHostCopySignalingFenceRequired() const override;

View File

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

View File

@@ -11,6 +11,6 @@
namespace NEO {
bool GmmHelper::deferMOCSToPatIndex() const {
return this->rootDeviceEnvironment.getProductHelper().isNewCoherencyModelSupported();
return this->rootDeviceEnvironment.getProductHelper().deferMOCSToPatIndex();
}
} // namespace NEO

View File

@@ -197,6 +197,11 @@ bool ProductHelperHw<IGFX_UNKNOWN>::isNewResidencyModelSupported() const {
return false;
}
template <>
bool ProductHelperHw<IGFX_UNKNOWN>::deferMOCSToPatIndex() const {
return false;
}
template <>
std::pair<bool, bool> ProductHelperHw<IGFX_UNKNOWN>::isPipeControlPriorToNonPipelinedStateCommandsWARequired(const HardwareInfo &hwInfo, bool isRcs, const ReleaseHelper *releaseHelper) const {
return {false, false};

View File

@@ -359,6 +359,11 @@ HWTEST2_F(XeLpgProductHelperTests, givenProductHelperWhenCallIsNewCoherencyModel
EXPECT_TRUE(productHelper->isNewCoherencyModelSupported());
}
HWTEST2_F(XeLpgProductHelperTests, givenProductHelperWhenCallDeferMOCSToPatThenFalseIsReturned, IsXeLpg) {
const auto &productHelper = getHelper<ProductHelper>();
EXPECT_FALSE(productHelper.deferMOCSToPatIndex());
}
HWTEST2_F(XeLpgProductHelperTests, givenProductHelperWhenCheckDummyBlitWaRequiredThenReturnTrue, IsXeLpg) {
EXPECT_TRUE(productHelper->isDummyBlitWaRequired());
}