fix: set ioq info to regular event only if duplicated host storage

Related-To: NEO-13596

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
Bartosz Dunajski 2024-12-27 12:53:27 +00:00 committed by Compute-Runtime-Automation
parent c703e0bf6e
commit dba1204d9e
3 changed files with 15 additions and 3 deletions

View File

@ -195,7 +195,7 @@ void CommandListCoreFamily<gfxCoreFamily>::handleInOrderDependencyCounter(Event
this->commandContainer.addToResidencyContainer(inOrderExecInfo->getHostCounterAllocation());
if (signalEvent) {
if (signalEvent->isCounterBased() || nonWalkerInOrderCmdsChaining || isImmediateType()) {
if (signalEvent->isCounterBased() || nonWalkerInOrderCmdsChaining || (isImmediateType() && this->duplicatedInOrderCounterStorageEnabled)) {
signalEvent->updateInOrderExecState(inOrderExecInfo, inOrderExecInfo->getCounterValue(), inOrderExecInfo->getAllocationOffset());
} else {
signalEvent->unsetInOrderExecInfo();

View File

@ -201,6 +201,7 @@ struct WhiteBox<L0::CommandListCoreFamilyImmediate<gfxCoreFamily>>
using BaseClass::disablePatching;
using BaseClass::dispatchEventRemainingPacketsPostSyncOperation;
using BaseClass::doubleSbaWa;
using BaseClass::duplicatedInOrderCounterStorageEnabled;
using BaseClass::enablePatching;
using BaseClass::engineGroupType;
using BaseClass::eventSignalPipeControl;

View File

@ -885,8 +885,19 @@ HWTEST2_F(InOrderCmdListTests, givenInOrderModeWheUsingRegularEventAndImmediateC
events[0]->makeCounterBasedImplicitlyDisabled(eventPool->getAllocation());
cmdList->appendLaunchKernel(kernel->toHandle(), groupCount, events[0]->toHandle(), 0, nullptr, launchParams, false);
EXPECT_FALSE(events[0]->isCounterBased());
EXPECT_EQ(events[0]->inOrderExecSignalValue, 1u);
EXPECT_NE(events[0]->inOrderExecInfo.get(), nullptr);
if (cmdList->isInOrderNonWalkerSignalingRequired(events[0].get()) || cmdList->duplicatedInOrderCounterStorageEnabled) {
EXPECT_EQ(events[0]->inOrderExecSignalValue, 1u);
EXPECT_NE(events[0]->inOrderExecInfo.get(), nullptr);
} else {
EXPECT_EQ(events[0]->inOrderExecInfo.get(), nullptr);
}
auto tsEventPool = createEvents<FamilyType>(1, true);
events[1]->makeCounterBasedImplicitlyDisabled(eventPool->getAllocation());
cmdList->appendBarrier(events[1]->toHandle(), 0, nullptr, false);
EXPECT_EQ(events[1]->inOrderExecInfo.get() != nullptr, cmdList->duplicatedInOrderCounterStorageEnabled);
}
HWTEST2_F(InOrderCmdListTests, givenRegularEventWithInOrderExecInfoWhenReusedOnRegularCmdListThenUnsetInOrderData, MatchAny) {