fix: request for task count should enable monitor fence dispatch

Related-To: NEO-10356

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz 2025-03-09 22:05:27 +00:00 committed by Compute-Runtime-Automation
parent fc770cacf2
commit cd904269ed
2 changed files with 5 additions and 1 deletions

View File

@ -2238,6 +2238,7 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::handleImmediateFlushSendBatc
size_t chainedBatchBufferStartOffset = startFromCsr ? csrStream.getUsed() : 0; size_t chainedBatchBufferStartOffset = startFromCsr ? csrStream.getUsed() : 0;
uint64_t taskStartAddress = immediateCommandStream.getGpuBase() + immediateCommandStreamStart; uint64_t taskStartAddress = immediateCommandStream.getGpuBase() + immediateCommandStreamStart;
bool hasStallingCmds = (startFromCsr || dispatchFlags.blockingAppend || dispatchFlags.hasStallingCmds); bool hasStallingCmds = (startFromCsr || dispatchFlags.blockingAppend || dispatchFlags.hasStallingCmds);
bool dispatchMonitorFence = dispatchFlags.blockingAppend || dispatchFlags.requireTaskCountUpdate;
constexpr bool immediateLowPriority = false; constexpr bool immediateLowPriority = false;
const QueueThrottle immediateThrottle = getThrottleFromPowerSavingUint(this->getUmdPowerHintValue()); const QueueThrottle immediateThrottle = getThrottleFromPowerSavingUint(this->getUmdPowerHintValue());
@ -2246,7 +2247,7 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::handleImmediateFlushSendBatc
BatchBuffer batchBuffer{streamToSubmit.getGraphicsAllocation(), startOffset, chainedBatchBufferStartOffset, taskStartAddress, chainedBatchBuffer, BatchBuffer batchBuffer{streamToSubmit.getGraphicsAllocation(), startOffset, chainedBatchBufferStartOffset, taskStartAddress, chainedBatchBuffer,
immediateLowPriority, immediateThrottle, immediateSliceCount, immediateLowPriority, immediateThrottle, immediateSliceCount,
streamToSubmit.getUsed(), &streamToSubmit, flushData.endPtr, this->getNumClients(), hasStallingCmds, streamToSubmit.getUsed(), &streamToSubmit, flushData.endPtr, this->getNumClients(), hasStallingCmds,
dispatchFlags.hasRelaxedOrderingDependencies, dispatchFlags.blockingAppend, false}; dispatchFlags.hasRelaxedOrderingDependencies, dispatchMonitorFence, false};
updateStreamTaskCount(streamToSubmit, taskCount + 1); updateStreamTaskCount(streamToSubmit, taskCount + 1);
auto submissionStatus = flushHandler(batchBuffer, this->getResidencyAllocations()); auto submissionStatus = flushHandler(batchBuffer, this->getResidencyAllocations());

View File

@ -6368,6 +6368,8 @@ HWTEST_F(CommandStreamReceiverHwTest, givenEpilogueStreamAvailableWhenFlushImmed
LinearStream epilogueStream(commandBuffer); LinearStream epilogueStream(commandBuffer);
commandStreamReceiver.storeMakeResidentAllocations = true; commandStreamReceiver.storeMakeResidentAllocations = true;
commandStreamReceiver.recordFlushedBatchBuffer = true;
immediateFlushTaskFlags.requireTaskCountUpdate = true; immediateFlushTaskFlags.requireTaskCountUpdate = true;
immediateFlushTaskFlags.optionalEpilogueCmdStream = &epilogueStream; immediateFlushTaskFlags.optionalEpilogueCmdStream = &epilogueStream;
@ -6377,6 +6379,7 @@ HWTEST_F(CommandStreamReceiverHwTest, givenEpilogueStreamAvailableWhenFlushImmed
*pDevice); *pDevice);
EXPECT_TRUE(commandStreamReceiver.isMadeResident(commandBuffer)); EXPECT_TRUE(commandStreamReceiver.isMadeResident(commandBuffer));
EXPECT_TRUE(commandStreamReceiver.latestFlushedBatchBuffer.dispatchMonitorFence);
HardwareParse hwParser; HardwareParse hwParser;