fix: don't flush texture cache if not required

Related-To: NEO-14645

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
Szymon Morek
2025-04-15 13:39:15 +00:00
committed by Compute-Runtime-Automation
parent b423084861
commit 4d60465a9e
7 changed files with 41 additions and 7 deletions

View File

@@ -203,6 +203,8 @@ class GfxCoreHelper {
virtual bool getSipBinaryFromExternalLib() const = 0;
virtual uint32_t getImplicitArgsVersion() const = 0;
virtual bool isCacheFlushPriorImageReadRequired() const = 0;
virtual ~GfxCoreHelper() = default;
protected:
@@ -450,6 +452,8 @@ class GfxCoreHelperHw : public GfxCoreHelper {
bool getSipBinaryFromExternalLib() const override;
bool isCacheFlushPriorImageReadRequired() const override;
~GfxCoreHelperHw() override = default;
protected:

View File

@@ -848,4 +848,9 @@ uint32_t GfxCoreHelperHw<Family>::getImplicitArgsVersion() const {
return 0;
}
template <typename Family>
bool GfxCoreHelperHw<Family>::isCacheFlushPriorImageReadRequired() const {
return false;
}
} // namespace NEO

View File

@@ -91,4 +91,9 @@ bool GfxCoreHelperHw<Family>::usmCompressionSupported(const NEO::HardwareInfo &h
return hwInfo.capabilityTable.ftrRenderCompressedBuffers;
}
template <>
bool GfxCoreHelperHw<Family>::isCacheFlushPriorImageReadRequired() const {
return true;
}
} // namespace NEO

View File

@@ -1932,3 +1932,8 @@ HWTEST_F(GfxCoreHelperTest, givenDebugFlagForceUseOnlyGlobalTimestampsSetWhenCal
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
EXPECT_TRUE(gfxCoreHelper.useOnlyGlobalTimestamps());
}
HWTEST2_F(GfxCoreHelperTest, whenIsCacheFlushPriorImageReadRequiredCalledThenFalseIsReturned, IsBeforeXe2HpgCore) {
auto &helper = getHelper<GfxCoreHelper>();
EXPECT_FALSE(helper.isCacheFlushPriorImageReadRequired());
}

View File

@@ -106,3 +106,9 @@ HWTEST2_F(GfxCoreHelperXe2AndLaterTests, givenAtLeastXe2HpgWhenEncodeAdditionalT
EXPECT_EQ(storeRegMem->getRegisterAddress(), RegisterOffsets::globalTimestampUn);
EXPECT_EQ(storeRegMem->getMemoryAddress(), sndAddress + sizeof(uint32_t));
}
HWTEST2_F(GfxCoreHelperXe2AndLaterTests, givenAtLeastXe2HpgWhenIsCacheFlushPriorImageReadRequiredThenTrueIsReturned, IsAtLeastXe2HpgCore) {
MockExecutionEnvironment mockExecutionEnvironment{};
auto &gfxCoreHelper = mockExecutionEnvironment.rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
EXPECT_TRUE(gfxCoreHelper.isCacheFlushPriorImageReadRequired());
}