performance: Fill reusable allocation list on xe and later

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk 2024-03-01 06:49:26 +00:00 committed by Compute-Runtime-Automation
parent a3e60acc8f
commit 15934ceb43
6 changed files with 32 additions and 22 deletions

View File

@ -681,14 +681,6 @@ bool GfxCoreHelperHw<GfxFamily>::copyThroughLockedPtrEnabled(const HardwareInfo
return false;
}
template <typename GfxFamily>
uint32_t GfxCoreHelperHw<GfxFamily>::getAmountOfAllocationsToFill() const {
if (debugManager.flags.SetAmountOfReusableAllocations.get() != -1) {
return debugManager.flags.SetAmountOfReusableAllocations.get();
}
return 0u;
}
template <typename GfxFamily>
bool GfxCoreHelperHw<GfxFamily>::isChipsetUniqueUUIDSupported() const {
return false;

View File

@ -43,6 +43,14 @@ bool GfxCoreHelperHw<GfxFamily>::timestampPacketWriteSupported() const {
return false;
}
template <typename GfxFamily>
uint32_t GfxCoreHelperHw<GfxFamily>::getAmountOfAllocationsToFill() const {
if (debugManager.flags.SetAmountOfReusableAllocations.get() != -1) {
return debugManager.flags.SetAmountOfReusableAllocations.get();
}
return 0u;
}
template <typename GfxFamily>
bool GfxCoreHelperHw<GfxFamily>::isTimestampWaitSupportedForQueues() const {
return false;

View File

@ -58,6 +58,14 @@ bool GfxCoreHelperHw<GfxFamily>::isTimestampWaitSupportedForQueues() const {
return true;
}
template <typename GfxFamily>
uint32_t GfxCoreHelperHw<GfxFamily>::getAmountOfAllocationsToFill() const {
if (debugManager.flags.SetAmountOfReusableAllocations.get() != -1) {
return debugManager.flags.SetAmountOfReusableAllocations.get();
}
return 1u;
}
template <typename GfxFamily>
bool GfxCoreHelperHw<GfxFamily>::makeResidentBeforeLockNeeded(bool precondition) const {
return true;

View File

@ -399,14 +399,6 @@ bool GfxCoreHelperHw<Family>::copyThroughLockedPtrEnabled(const HardwareInfo &hw
return true;
}
template <>
uint32_t GfxCoreHelperHw<Family>::getAmountOfAllocationsToFill() const {
if (debugManager.flags.SetAmountOfReusableAllocations.get() != -1) {
return debugManager.flags.SetAmountOfReusableAllocations.get();
}
return 1u;
}
template <>
bool GfxCoreHelperHw<Family>::isRelaxedOrderingSupported() const {
return true;

View File

@ -1347,11 +1347,6 @@ HWTEST2_F(GfxCoreHelperTest, givenGfxCoreHelperWhenCallCopyThroughLockedPtrEnabl
EXPECT_FALSE(gfxCoreHelper.copyThroughLockedPtrEnabled(*defaultHwInfo, productHelper));
}
HWTEST2_F(GfxCoreHelperTest, givenGfxCoreHelperWhenCallGetAmountOfAllocationsToFillThenReturnFalse, IsNotXeHpcCore) {
const auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
EXPECT_EQ(gfxCoreHelper.getAmountOfAllocationsToFill(), 0u);
}
HWTEST_F(GfxCoreHelperTest, givenGfxCoreHelperWhenFlagSetAndCallCopyThroughLockedPtrEnabledThenReturnCorrectValue) {
DebugManagerStateRestore restorer;
const auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
@ -1363,9 +1358,11 @@ HWTEST_F(GfxCoreHelperTest, givenGfxCoreHelperWhenFlagSetAndCallCopyThroughLocke
EXPECT_TRUE(gfxCoreHelper.copyThroughLockedPtrEnabled(*defaultHwInfo, productHelper));
}
HWTEST_F(GfxCoreHelperTest, givenGfxCoreHelperWhenFlagSetAndCallGetAmountOfAllocationsToFillThenReturnCorrectValue) {
HWTEST2_F(GfxCoreHelperTest, givenGfxCoreHelperWhenFlagSetAndCallGetAmountOfAllocationsToFillThenReturnCorrectValue, IsBeforeXeHpCore) {
DebugManagerStateRestore restorer;
const auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
EXPECT_EQ(gfxCoreHelper.getAmountOfAllocationsToFill(), 0u);
debugManager.flags.SetAmountOfReusableAllocations.set(0);
EXPECT_EQ(gfxCoreHelper.getAmountOfAllocationsToFill(), 0u);

View File

@ -232,6 +232,19 @@ HWTEST2_F(GfxCoreHelperDg2AndLaterTest, givenGfxCoreHelperWhenCheckMakeResidentB
EXPECT_TRUE(gfxCoreHelper.makeResidentBeforeLockNeeded(false));
}
HWTEST2_F(GfxCoreHelperDg2AndLaterTest, givenGfxCoreHelperWhenFlagSetAndCallGetAmountOfAllocationsToFillThenReturnCorrectValue, IsAtLeastXeHpgCore) {
DebugManagerStateRestore restorer;
MockExecutionEnvironment mockExecutionEnvironment{};
auto &gfxCoreHelper = mockExecutionEnvironment.rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
EXPECT_EQ(gfxCoreHelper.getAmountOfAllocationsToFill(), 1u);
debugManager.flags.SetAmountOfReusableAllocations.set(0);
EXPECT_EQ(gfxCoreHelper.getAmountOfAllocationsToFill(), 0u);
debugManager.flags.SetAmountOfReusableAllocations.set(1);
EXPECT_EQ(gfxCoreHelper.getAmountOfAllocationsToFill(), 1u);
}
using ProductHelperTestDg2AndLater = ::testing::Test;
HWTEST2_F(ProductHelperTestDg2AndLater, givenDg2AndLaterPlatformWhenAskedIfHeapInLocalMemThenTrueIsReturned, IsAtLeastXeHpgCore) {