mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 14:55:24 +08:00
feature: pass in-order exec info from Regular CmdList to Event
Related-To: NEO-8145 Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
cb903cbc03
commit
5402c9a13f
@@ -331,7 +331,7 @@ struct CommandListCoreFamily : CommandListImp {
|
||||
virtual void setupFlushMethod(const NEO::RootDeviceEnvironment &rootDeviceEnvironment) {}
|
||||
bool isInOrderEventWaitRequired(const Event &event) const;
|
||||
void handleInOrderImplicitDependencies(bool relaxedOrderingAllowed);
|
||||
virtual void handleInOrderDependencyCounter();
|
||||
virtual void handleInOrderDependencyCounter(Event *signalEvent);
|
||||
bool isQwordInOrderCounter() const { return GfxFamily::isQwordInOrderCounter; }
|
||||
bool isInOrderNonWalkerSignalingRequired(const Event *event) const;
|
||||
|
||||
|
||||
@@ -151,7 +151,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::reset() {
|
||||
}
|
||||
|
||||
template <GFXCORE_FAMILY gfxCoreFamily>
|
||||
void CommandListCoreFamily<gfxCoreFamily>::handleInOrderDependencyCounter() {
|
||||
void CommandListCoreFamily<gfxCoreFamily>::handleInOrderDependencyCounter(Event *signalEvent) {
|
||||
if (!isQwordInOrderCounter() && ((inOrderDependencyCounter + 1) == std::numeric_limits<uint32_t>::max())) {
|
||||
CommandListCoreFamily<gfxCoreFamily>::appendWaitOnInOrderDependency(&inOrderExecInfo->inOrderDependencyCounterAllocation, inOrderDependencyCounter + 1, inOrderAllocationOffset, false, true);
|
||||
|
||||
@@ -170,6 +170,10 @@ void CommandListCoreFamily<gfxCoreFamily>::handleInOrderDependencyCounter() {
|
||||
inOrderDependencyCounter++;
|
||||
|
||||
this->commandContainer.addToResidencyContainer(&inOrderExecInfo->inOrderDependencyCounterAllocation);
|
||||
|
||||
if (signalEvent && signalEvent->isInOrderExecEvent()) {
|
||||
signalEvent->updateInOrderExecState(inOrderExecInfo, this->inOrderDependencyCounter, this->inOrderAllocationOffset);
|
||||
}
|
||||
}
|
||||
|
||||
template <GFXCORE_FAMILY gfxCoreFamily>
|
||||
@@ -357,7 +361,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernel(ze_kernel_h
|
||||
event, launchParams);
|
||||
|
||||
if (isInOrderExecutionEnabled() && !launchParams.skipInOrderNonWalkerSignaling) {
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(event);
|
||||
}
|
||||
|
||||
addToMappedEventList(event);
|
||||
@@ -398,7 +402,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchCooperativeKernel(
|
||||
addToMappedEventList(event);
|
||||
|
||||
if (this->isInOrderExecutionEnabled()) {
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(event);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@@ -433,7 +437,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelIndirect(ze_
|
||||
appendSignalEventPostWalker(event, false);
|
||||
|
||||
if (isInOrderExecutionEnabled()) {
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(event);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -521,7 +525,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendEventReset(ze_event_hand
|
||||
|
||||
if (this->isInOrderExecutionEnabled()) {
|
||||
appendSignalInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(event);
|
||||
}
|
||||
|
||||
if (NEO::DebugManager.flags.EnableSWTags.get()) {
|
||||
@@ -560,7 +564,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendMemoryRangesBarrier(uint
|
||||
|
||||
if (this->isInOrderExecutionEnabled()) {
|
||||
appendSignalInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(signalEvent);
|
||||
}
|
||||
|
||||
return ZE_RESULT_SUCCESS;
|
||||
@@ -1477,7 +1481,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendMemoryCopy(void *dstptr,
|
||||
}
|
||||
|
||||
if (!isCopyOnly() || inOrderCopyOnlySignalingAllowed) {
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(signalEvent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1572,7 +1576,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendMemoryCopyRegion(void *d
|
||||
}
|
||||
|
||||
if (!isCopyOnly() || inOrderCopyOnlySignalingAllowed) {
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(signalEvent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2019,7 +2023,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendMemoryFill(void *ptr,
|
||||
appendSignalInOrderDependencyCounter();
|
||||
}
|
||||
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(signalEvent);
|
||||
}
|
||||
|
||||
if (NEO::DebugManager.flags.EnableSWTags.get()) {
|
||||
@@ -2082,7 +2086,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendBlitFill(void *ptr,
|
||||
|
||||
if (isInOrderExecutionEnabled()) {
|
||||
appendSignalInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(signalEvent);
|
||||
}
|
||||
}
|
||||
return ZE_RESULT_SUCCESS;
|
||||
@@ -2301,7 +2305,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendSignalEvent(ze_event_han
|
||||
|
||||
if (this->isInOrderExecutionEnabled()) {
|
||||
appendSignalInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(event);
|
||||
}
|
||||
|
||||
if (NEO::DebugManager.flags.EnableSWTags.get()) {
|
||||
@@ -2424,7 +2428,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWaitOnEvents(uint32_t nu
|
||||
|
||||
if (signalInOrderCompletion) {
|
||||
appendSignalInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(nullptr);
|
||||
}
|
||||
|
||||
makeResidentDummyAllocation();
|
||||
@@ -2594,7 +2598,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWriteGlobalTimestamp(
|
||||
|
||||
if (this->isInOrderExecutionEnabled()) {
|
||||
appendSignalInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(signalEvent);
|
||||
}
|
||||
|
||||
addToMappedEventList(signalEvent);
|
||||
@@ -3102,7 +3106,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendBarrier(ze_event_handle_
|
||||
appendSignalEventPostWalker(signalEvent, this->isInOrderExecutionEnabled());
|
||||
|
||||
if (isInOrderExecutionEnabled()) {
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(signalEvent);
|
||||
}
|
||||
|
||||
return ZE_RESULT_SUCCESS;
|
||||
@@ -3249,7 +3253,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWaitOnMemory(void *desc,
|
||||
|
||||
if (this->isInOrderExecutionEnabled()) {
|
||||
appendSignalInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(signalEvent);
|
||||
}
|
||||
|
||||
return ZE_RESULT_SUCCESS;
|
||||
@@ -3297,7 +3301,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendWriteToMemory(void *desc
|
||||
|
||||
if (this->isInOrderExecutionEnabled()) {
|
||||
appendSignalInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter();
|
||||
handleInOrderDependencyCounter(nullptr);
|
||||
}
|
||||
|
||||
return ZE_RESULT_SUCCESS;
|
||||
|
||||
@@ -444,8 +444,10 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::appendLaunchKernel(
|
||||
|
||||
if (isInOrderExecutionEnabled() && launchParams.skipInOrderNonWalkerSignaling) {
|
||||
// skip only in base appendLaunchKernel()
|
||||
handleInOrderNonWalkerSignaling(Event::fromHandle(hSignalEvent), stallingCmdsForRelaxedOrdering, relaxedOrderingDispatch, ret);
|
||||
CommandListCoreFamily<gfxCoreFamily>::handleInOrderDependencyCounter();
|
||||
auto event = Event::fromHandle(hSignalEvent);
|
||||
|
||||
handleInOrderNonWalkerSignaling(event, stallingCmdsForRelaxedOrdering, relaxedOrderingDispatch, ret);
|
||||
CommandListCoreFamily<gfxCoreFamily>::handleInOrderDependencyCounter(event);
|
||||
}
|
||||
|
||||
return flushImmediate(ret, true, stallingCmdsForRelaxedOrdering, relaxedOrderingDispatch, true, hSignalEvent);
|
||||
@@ -928,10 +930,6 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::flushImmediate(ze_res
|
||||
if (signalEvent) {
|
||||
signalEvent->setCsr(this->csr, isInOrderExecutionEnabled());
|
||||
this->latestFlushIsHostVisible = signalEvent->isSignalScope(ZE_EVENT_SCOPE_FLAG_HOST);
|
||||
|
||||
if (isInOrderExecutionEnabled() && signalEvent->isInOrderExecEvent()) {
|
||||
signalEvent->updateInOrderExecState(inOrderExecInfo, this->inOrderDependencyCounter, this->inOrderAllocationOffset);
|
||||
}
|
||||
} else {
|
||||
this->latestFlushIsHostVisible = false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user