fix: set flushed task count for all cases of post sync task count operations

- set monitor fence dispatch for all cases task count post sync operation
- stand alone flush task count will not happen when already flushed and so
monitor fence
- monitor fence then must be dispatched together with task count post sync

Related-To: NEO-8395

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2023-10-03 10:20:42 +00:00
committed by Compute-Runtime-Automation
parent d0e615820c
commit 0a99384936
2 changed files with 78 additions and 2 deletions

View File

@@ -646,7 +646,7 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
BatchBuffer batchBuffer{streamToSubmit.getGraphicsAllocation(), startOffset, chainedBatchBufferStartOffset, taskStartAddress, chainedBatchBuffer,
dispatchFlags.lowPriority, dispatchFlags.throttle, dispatchFlags.sliceCount,
streamToSubmit.getUsed(), &streamToSubmit, bbEndLocation, this->getNumClients(), (submitCSR || dispatchFlags.hasStallingCmds || hasStallingCmdsOnTaskStream),
dispatchFlags.hasRelaxedOrderingDependencies, dispatchFlags.blocking};
dispatchFlags.hasRelaxedOrderingDependencies, hasStallingCmdsOnTaskStream};
updateStreamTaskCount(streamToSubmit, taskCount + 1);
@@ -658,7 +658,7 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
CompletionStamp completionStamp = {CompletionStamp::getTaskCountFromSubmissionStatusError(submissionStatus)};
return completionStamp;
}
if (dispatchFlags.blocking || dispatchFlags.dcFlush || dispatchFlags.guardCommandBufferWithPipeControl) {
if (hasStallingCmdsOnTaskStream) {
this->latestFlushedTaskCount = this->taskCount + 1;
}
} else {