mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
performance: Signal inOrder counter with pipe control, part 2
When on DC flush platform signal inOrder counter directly with pipe control. Obtain profiling from CW. Only for immediate in order cmd lists. Related-To: NEO-13441 Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
98aedc5b35
commit
363f2becd4
@ -284,7 +284,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(K
|
||||
|
||||
std::list<void *> additionalCommands;
|
||||
|
||||
if (compactEvent) {
|
||||
if (compactEvent && (!compactEvent->isCounterBased() || !this->isImmediateType())) {
|
||||
appendEventForProfilingAllWalkers(compactEvent, nullptr, launchParams.outListCommands, true, true, launchParams.omitAddingEventResidency, false);
|
||||
}
|
||||
|
||||
@ -299,12 +299,20 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(K
|
||||
inOrderNonWalkerSignalling = isInOrderNonWalkerSignalingRequired(eventForInOrderExec);
|
||||
|
||||
if (inOrderExecSignalRequired) {
|
||||
if (!compactEvent || !this->isImmediateType() || (!compactEvent->isCounterBased() || compactEvent->isUsingContextEndOffset())) {
|
||||
if (!compactEvent || !this->isImmediateType() || !compactEvent->isCounterBased() || compactEvent->isUsingContextEndOffset()) {
|
||||
if (inOrderNonWalkerSignalling) {
|
||||
if (!eventForInOrderExec->getAllocation(this->device) && Event::standaloneInOrderTimestampAllocationEnabled()) {
|
||||
eventForInOrderExec->resetInOrderTimestampNode(device->getInOrderTimestampAllocator()->getTag());
|
||||
}
|
||||
dispatchEventPostSyncOperation(eventForInOrderExec, nullptr, launchParams.outListCommands, Event::STATE_CLEARED, false, false, false, false, false);
|
||||
if (!compactEvent || !this->isImmediateType() || !compactEvent->isCounterBased()) {
|
||||
dispatchEventPostSyncOperation(eventForInOrderExec, nullptr, launchParams.outListCommands, Event::STATE_CLEARED, false, false, false, false, false);
|
||||
} else {
|
||||
eventAddress = eventForInOrderExec->getPacketAddress(this->device);
|
||||
isTimestampEvent = true;
|
||||
if (!launchParams.omitAddingEventResidency) {
|
||||
commandContainer.addToResidencyContainer(eventForInOrderExec->getAllocation(this->device));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
inOrderCounterValue = this->inOrderExecInfo->getCounterValue() + getInOrderIncrementValue();
|
||||
inOrderExecInfo = this->inOrderExecInfo.get();
|
||||
@ -384,7 +392,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(K
|
||||
}
|
||||
|
||||
if (!launchParams.makeKernelCommandView) {
|
||||
if ((compactEvent && (!compactEvent->isCounterBased() || compactEvent->isUsingContextEndOffset() || !this->isImmediateType()))) {
|
||||
if ((compactEvent && (!compactEvent->isCounterBased() || !this->isImmediateType()))) {
|
||||
void **syncCmdBuffer = nullptr;
|
||||
if (launchParams.outSyncCommand != nullptr) {
|
||||
launchParams.outSyncCommand->type = CommandToPatch::SignalEventPostSyncPipeControl;
|
||||
@ -408,7 +416,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(K
|
||||
if (inOrderExecSignalRequired) {
|
||||
if (inOrderNonWalkerSignalling) {
|
||||
if (!launchParams.skipInOrderNonWalkerSignaling) {
|
||||
if ((compactEvent && (compactEvent->isCounterBased() && !compactEvent->isUsingContextEndOffset() && this->isImmediateType()))) {
|
||||
if ((compactEvent && (compactEvent->isCounterBased() && this->isImmediateType()))) {
|
||||
appendSignalInOrderDependencyCounter(eventForInOrderExec, false, true);
|
||||
} else {
|
||||
appendWaitOnSingleEvent(eventForInOrderExec, launchParams.outListCommands, false, false, CommandToPatch::CbEventTimestampPostSyncSemaphoreWait);
|
||||
|
Reference in New Issue
Block a user