fix: in-order compact events handling
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
parent
87022c31d3
commit
1377437b3f
|
@ -77,7 +77,11 @@ void programEventL3Flush(Event *event,
|
|||
|
||||
template <GFXCORE_FAMILY gfxCoreFamily>
|
||||
bool CommandListCoreFamily<gfxCoreFamily>::isInOrderNonWalkerSignalingRequired(const Event *event) const {
|
||||
return (!this->duplicatedInOrderCounterStorageEnabled && event && (event->isUsingContextEndOffset() || !event->isCounterBased() || compactL3FlushEvent(getDcFlushRequired(event->isSignalScope()))));
|
||||
if (event && compactL3FlushEvent(getDcFlushRequired(event->isSignalScope()))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return (!this->duplicatedInOrderCounterStorageEnabled && event && (event->isUsingContextEndOffset() || !event->isCounterBased()));
|
||||
}
|
||||
|
||||
template <GFXCORE_FAMILY gfxCoreFamily>
|
||||
|
@ -352,6 +356,9 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(K
|
|||
syncCmdBuffer = &launchParams.outSyncCommand->pDestination;
|
||||
}
|
||||
appendEventForProfilingAllWalkers(compactEvent, syncCmdBuffer, launchParams.outListCommands, false, true, launchParams.omitAddingEventResidency);
|
||||
if (compactEvent->isInterruptModeEnabled()) {
|
||||
NEO::EnodeUserInterrupt<GfxFamily>::encode(*commandContainer.getCommandStream());
|
||||
}
|
||||
} else if (event) {
|
||||
event->setPacketsInUse(partitionCount);
|
||||
if (l3FlushEnable) {
|
||||
|
|
|
@ -2189,7 +2189,9 @@ HWTEST2_F(InOrderCmdListTests, givenMultipleAllocationsForWriteWhenAskingForNonW
|
|||
auto eventPool2 = createEvents<FamilyType>(1, false);
|
||||
events[2]->makeCounterBasedInitiallyDisabled();
|
||||
|
||||
bool isCompactEvent0 = immCmdList->compactL3FlushEvent(immCmdList->getDcFlushRequired(events[0]->isSignalScope()));
|
||||
bool isCompactEvent1 = immCmdList->compactL3FlushEvent(immCmdList->getDcFlushRequired(events[1]->isSignalScope()));
|
||||
bool isCompactEvent2 = immCmdList->compactL3FlushEvent(immCmdList->getDcFlushRequired(events[2]->isSignalScope()));
|
||||
|
||||
EXPECT_TRUE(immCmdList->isInOrderNonWalkerSignalingRequired(events[0].get()));
|
||||
EXPECT_EQ(isCompactEvent1, immCmdList->isInOrderNonWalkerSignalingRequired(events[1].get()));
|
||||
|
@ -2199,9 +2201,9 @@ HWTEST2_F(InOrderCmdListTests, givenMultipleAllocationsForWriteWhenAskingForNonW
|
|||
debugManager.flags.InOrderDuplicatedCounterStorageEnabled.set(1);
|
||||
auto immCmdList2 = createImmCmdList<gfxCoreFamily>();
|
||||
|
||||
EXPECT_FALSE(immCmdList2->isInOrderNonWalkerSignalingRequired(events[0].get()));
|
||||
EXPECT_FALSE(immCmdList2->isInOrderNonWalkerSignalingRequired(events[1].get()));
|
||||
EXPECT_FALSE(immCmdList2->isInOrderNonWalkerSignalingRequired(events[2].get()));
|
||||
EXPECT_EQ(isCompactEvent0, immCmdList2->isInOrderNonWalkerSignalingRequired(events[0].get()));
|
||||
EXPECT_EQ(isCompactEvent1, immCmdList2->isInOrderNonWalkerSignalingRequired(events[1].get()));
|
||||
EXPECT_EQ(isCompactEvent2, immCmdList2->isInOrderNonWalkerSignalingRequired(events[2].get()));
|
||||
EXPECT_FALSE(immCmdList2->isInOrderNonWalkerSignalingRequired(nullptr));
|
||||
}
|
||||
|
||||
|
@ -4460,7 +4462,7 @@ HWTEST2_F(MultiTileInOrderCmdListTests, givenMultiTileInOrderModeWhenProgramming
|
|||
ASSERT_NE(nullptr, semaphoreCmd);
|
||||
|
||||
EXPECT_EQ(static_cast<uint32_t>(Event::State::STATE_CLEARED), semaphoreCmd->getSemaphoreDataDword());
|
||||
EXPECT_EQ(gpuAddress + sizeof(uint64_t), semaphoreCmd->getSemaphoreGraphicsAddress());
|
||||
EXPECT_EQ(gpuAddress + events[0]->getSinglePacketSize(), semaphoreCmd->getSemaphoreGraphicsAddress());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue