fix: Fix split copy when signal event is used for sub copy

Related-To: NEO-13003

Signed-off-by: Bellekallu Rajkiran <bellekallu.rajkiran@intel.com>
This commit is contained in:
Bellekallu Rajkiran
2025-10-31 16:08:54 +00:00
committed by Compute-Runtime-Automation
parent 95a69a0c3b
commit 88c473bcf0

View File

@@ -97,6 +97,11 @@ ze_result_t BcsSplit::appendSplitCall(CommandListCoreFamilyImmediate<gfxCoreFami
subCmdList->getCmdContainer().addToResidencyContainer(this->events.subcopy[copyEventIndex]->getInOrderExecInfo()->getDeviceCounterAllocation());
}
if (useSignalEventForSubcopy) {
subCmdList->getCmdContainer().addToResidencyContainer(subCmdList->getInOrderExecInfo()->getDeviceCounterAllocation());
subCmdList->getCmdContainer().addToResidencyContainer(subCmdList->getInOrderExecInfo()->getHostCounterAllocation());
}
result = appendCall(subCmdList, localCopyParams, localSize, eventHandle, aggregatedEventIncrementVal);
subCmdList->flushImmediate(result, true, !hasRelaxedOrderingDependencies, hasRelaxedOrderingDependencies, NEO::AppendOperations::nonKernel, false, nullptr, true, &lock, nullptr);
@@ -114,7 +119,20 @@ ze_result_t BcsSplit::appendSplitCall(CommandListCoreFamilyImmediate<gfxCoreFami
const bool dualStreamCopyOffload = cmdList->isDualStreamCopyOffloadOperation(cmdList->isCopyOffloadEnabled());
cmdList->addEventsToCmdList(static_cast<uint32_t>(eventHandles.size()), eventHandles.data(), nullptr, hasRelaxedOrderingDependencies, false, true, false, dualStreamCopyOffload);
if (useSignalEventForSubcopy && cmdList->isInOrderExecutionEnabled()) {
for (size_t i = 0; i < cmdListsForSplit.size(); i++) {
auto subCmdList = static_cast<CommandListCoreFamilyImmediate<gfxCoreFamily> *>(cmdListsForSplit[i]);
auto &subInOrderExecInfo = subCmdList->getInOrderExecInfo();
cmdList->appendWaitOnInOrderDependency(subInOrderExecInfo, nullptr,
subInOrderExecInfo->getCounterValue(),
subInOrderExecInfo->getAllocationOffset(),
hasRelaxedOrderingDependencies, false, false, false, dualStreamCopyOffload);
}
}
if (!useSignalEventForSubcopy) {
cmdList->addEventsToCmdList(static_cast<uint32_t>(eventHandles.size()), eventHandles.data(), nullptr, hasRelaxedOrderingDependencies, false, true, false, dualStreamCopyOffload);
}
const auto isCopyCmdList = cmdList->isCopyOnly(dualStreamCopyOffload);