Fix multitile tag initialization for AubCsr

Before this change, only Tile0 tag was initialized

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
Bartosz Dunajski
2022-01-18 18:19:25 +00:00
committed by Compute-Runtime-Automation
parent 479c97beaf
commit 10f329768f
2 changed files with 19 additions and 3 deletions

View File

@ -317,12 +317,21 @@ HWTEST_F(CommandStreamReceiverWithAubDumpSimpleTest, givenCsrWithAubDumpWhenCrea
mockAubCenter->aubManager = std::unique_ptr<MockAubManager>(new MockAubManager());
executionEnvironment->rootDeviceEnvironments[0]->aubCenter = std::unique_ptr<MockAubCenter>(mockAubCenter);
DeviceBitfield deviceBitfield(1);
uint32_t subDevicesCount = 4;
DeviceBitfield deviceBitfield = maxNBitValue(subDevicesCount);
CommandStreamReceiverWithAUBDump<UltCommandStreamReceiver<FamilyType>> csrWithAubDump("file_name.aub", *executionEnvironment, 0, deviceBitfield);
EXPECT_NE(nullptr, csrWithAubDump.aubCSR->getTagAllocation());
EXPECT_NE(nullptr, csrWithAubDump.aubCSR->getTagAddress());
EXPECT_EQ(std::numeric_limits<uint32_t>::max(), *csrWithAubDump.aubCSR->getTagAddress());
auto tagAddressToInitialize = csrWithAubDump.aubCSR->getTagAddress();
for (uint32_t i = 0; i < subDevicesCount; i++) {
EXPECT_EQ(std::numeric_limits<uint32_t>::max(), *tagAddressToInitialize);
tagAddressToInitialize = ptrOffset(tagAddressToInitialize, csrWithAubDump.aubCSR->getPostSyncWriteOffset());
}
}
HWTEST_F(CommandStreamReceiverWithAubDumpSimpleTest, givenAubCsrWithHwWhenAddingCommentThenAddCommentToAubManager) {

View File

@ -27,7 +27,14 @@ CommandStreamReceiverWithAUBDump<BaseCSR>::CommandStreamReceiverWithAUBDump(cons
if (createAubCsr) {
aubCSR.reset(AUBCommandStreamReceiver::create(baseName, false, executionEnvironment, rootDeviceIndex, deviceBitfield));
UNRECOVERABLE_IF(!aubCSR->initializeTagAllocation());
*aubCSR->getTagAddress() = std::numeric_limits<uint32_t>::max();
uint32_t subDevices = static_cast<uint32_t>(this->deviceBitfield.count());
auto tagAddressToInitialize = aubCSR->getTagAddress();
for (uint32_t i = 0; i < subDevices; i++) {
*tagAddressToInitialize = std::numeric_limits<uint32_t>::max();
tagAddressToInitialize = ptrOffset(tagAddressToInitialize, this->postSyncWriteOffset);
}
}
}