mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
fix: state cache invalidation WA for xe3
Related-To: NEO-16281, NEO-16405 Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
efc7bcba4b
commit
ebdf993a25
@@ -70,6 +70,7 @@ class ReleaseHelper {
|
||||
virtual bool shouldQueryPeerAccess() const = 0;
|
||||
virtual bool isSpirSupported() const = 0;
|
||||
virtual bool isSingleDispatchRequiredForMultiCCS() const = 0;
|
||||
virtual bool isStateCacheInvalidationWaRequired() const = 0;
|
||||
|
||||
protected:
|
||||
ReleaseHelper(HardwareIpVersion hardwareIpVersion) : hardwareIpVersion(hardwareIpVersion) {}
|
||||
@@ -119,6 +120,7 @@ class ReleaseHelperHw : public ReleaseHelper {
|
||||
bool shouldQueryPeerAccess() const override;
|
||||
bool isSpirSupported() const override;
|
||||
bool isSingleDispatchRequiredForMultiCCS() const override;
|
||||
bool isStateCacheInvalidationWaRequired() const override;
|
||||
|
||||
protected:
|
||||
ReleaseHelperHw(HardwareIpVersion hardwareIpVersion) : ReleaseHelper(hardwareIpVersion) {}
|
||||
|
||||
@@ -196,4 +196,9 @@ bool ReleaseHelperHw<releaseType>::isSingleDispatchRequiredForMultiCCS() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <ReleaseType releaseType>
|
||||
bool ReleaseHelperHw<releaseType>::isStateCacheInvalidationWaRequired() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2024 Intel Corporation
|
||||
* Copyright (C) 2024-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -33,4 +33,9 @@ const SizeToPreferredSlmValueArray &ReleaseHelperHw<release>::getSizeToPreferred
|
||||
return sizeToPreferredSlmValue;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ReleaseHelperHw<release>::isStateCacheInvalidationWaRequired() const {
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -48,6 +48,7 @@ class MockReleaseHelper : public ReleaseHelper {
|
||||
ADDMETHOD_CONST_NOBASE(shouldQueryPeerAccess, bool, false, ());
|
||||
ADDMETHOD_CONST_NOBASE(isSpirSupported, bool, true, ());
|
||||
ADDMETHOD_CONST_NOBASE(isSingleDispatchRequiredForMultiCCS, bool, false, ());
|
||||
ADDMETHOD_CONST_NOBASE(isStateCacheInvalidationWaRequired, bool, false, ());
|
||||
|
||||
const SizeToPreferredSlmValueArray &getSizeToPreferredSlmValue(bool isHeapless) const override {
|
||||
static SizeToPreferredSlmValueArray sizeToPreferredSlmValue = {};
|
||||
|
||||
@@ -128,4 +128,8 @@ TEST_F(ReleaseHelper1255Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper1255Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1255Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -128,4 +128,8 @@ TEST_F(ReleaseHelper1256Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper1256Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1256Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -128,4 +128,8 @@ TEST_F(ReleaseHelper1257Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper1257Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1257Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -113,4 +113,8 @@ TEST_F(ReleaseHelper1260Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper1260Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1260Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -112,4 +112,8 @@ TEST_F(ReleaseHelper1261Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper1261Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1261Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -122,4 +122,8 @@ TEST_F(ReleaseHelper1270Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper1270Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1270Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -122,4 +122,8 @@ TEST_F(ReleaseHelper1271Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper1271Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1271Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -128,4 +128,8 @@ TEST_F(ReleaseHelper1274Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper1274Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1274Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -121,4 +121,8 @@ TEST_F(ReleaseHelper2001Tests, whenShouldQueryPeerAccessCalledThenTrueReturned)
|
||||
|
||||
TEST_F(ReleaseHelper2001Tests, whenIsSingleDispatchRequiredForMultiCCSThenTrueReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenTrueReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2001Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -121,4 +121,8 @@ TEST_F(ReleaseHelper2002Tests, whenShouldQueryPeerAccessCalledThenTrueReturned)
|
||||
|
||||
TEST_F(ReleaseHelper2002Tests, whenIsSingleDispatchRequiredForMultiCCSThenTrueReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenTrueReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2002Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -124,4 +124,8 @@ TEST_F(ReleaseHelper2004Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper2004Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2004Tests, whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -122,4 +122,8 @@ TEST_F(ReleaseHelper3000Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper3000Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper3000Tests, whenIsStateCacheInvalidationWaRequiredCalledThenTrueReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenTrueReturned();
|
||||
}
|
||||
|
||||
@@ -122,4 +122,8 @@ TEST_F(ReleaseHelper3001Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper3001Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper3001Tests, whenIsStateCacheInvalidationWaRequiredCalledThenTrueReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenTrueReturned();
|
||||
}
|
||||
|
||||
@@ -122,4 +122,8 @@ TEST_F(ReleaseHelper3003Tests, whenShouldQueryPeerAccessCalledThenFalseReturned)
|
||||
|
||||
TEST_F(ReleaseHelper3003Tests, whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned) {
|
||||
whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper3003Tests, whenIsStateCacheInvalidationWaRequiredCalledThenTrueReturned) {
|
||||
whenIsStateCacheInvalidationWaRequiredCalledThenTrueReturned();
|
||||
}
|
||||
|
||||
@@ -231,4 +231,22 @@ void ReleaseHelperTestsBase::whenIsSingleDispatchRequiredForMultiCCSCalledThenTr
|
||||
ASSERT_NE(nullptr, releaseHelper);
|
||||
EXPECT_TRUE(releaseHelper->isSingleDispatchRequiredForMultiCCS());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ReleaseHelperTestsBase::whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned() {
|
||||
for (auto &revision : getRevisions()) {
|
||||
ipVersion.revision = revision;
|
||||
releaseHelper = ReleaseHelper::create(ipVersion);
|
||||
ASSERT_NE(nullptr, releaseHelper);
|
||||
EXPECT_FALSE(releaseHelper->isStateCacheInvalidationWaRequired());
|
||||
}
|
||||
}
|
||||
|
||||
void ReleaseHelperTestsBase::whenIsStateCacheInvalidationWaRequiredCalledThenTrueReturned() {
|
||||
for (auto &revision : getRevisions()) {
|
||||
ipVersion.revision = revision;
|
||||
releaseHelper = ReleaseHelper::create(ipVersion);
|
||||
ASSERT_NE(nullptr, releaseHelper);
|
||||
EXPECT_TRUE(releaseHelper->isStateCacheInvalidationWaRequired());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,6 +41,8 @@ struct ReleaseHelperTestsBase : public ::testing::Test {
|
||||
void whenShouldQueryPeerAccessCalledThenTrueReturned();
|
||||
void whenIsSingleDispatchRequiredForMultiCCSCalledThenFalseReturned();
|
||||
void whenIsSingleDispatchRequiredForMultiCCSCalledThenTrueReturned();
|
||||
void whenIsStateCacheInvalidationWaRequiredCalledThenFalseReturned();
|
||||
void whenIsStateCacheInvalidationWaRequiredCalledThenTrueReturned();
|
||||
virtual std::vector<uint32_t> getRevisions() = 0;
|
||||
|
||||
std::unique_ptr<ReleaseHelper> releaseHelper;
|
||||
|
||||
Reference in New Issue
Block a user