mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 09:14:47 +08:00
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:
committed by
Compute-Runtime-Automation
parent
95a69a0c3b
commit
88c473bcf0
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user