mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Do not update tag on pipe control with level change.
- Tag should be updated only as a part of epilogue. - Level change should only emit pipe control with cs stall Change-Id: I6e04f794641818b0d046523776d3ce87aec9f606
This commit is contained in:
2
Jenkinsfile
vendored
2
Jenkinsfile
vendored
@ -2,4 +2,4 @@
|
||||
neoDependenciesRev='735095-769'
|
||||
strategy='EQUAL'
|
||||
allowedF=44
|
||||
allowedCD=353
|
||||
allowedCD=352
|
||||
|
@ -267,30 +267,8 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
|
||||
}
|
||||
// Add a PC if we have a dependency on a previous walker to avoid concurrency issues.
|
||||
if (taskLevel > this->taskLevel) {
|
||||
//Some architectures (SKL) requires to have pipe control prior to pipe control with tag write, add it here
|
||||
addPipeControlWA(commandStreamCSR, false);
|
||||
|
||||
auto pCmd = addPipeControlCmd(commandStreamCSR);
|
||||
|
||||
pCmd->setPostSyncOperation(PIPE_CONTROL::POST_SYNC_OPERATION_WRITE_IMMEDIATE_DATA);
|
||||
if (DebugManager.flags.FlushAllCaches.get()) {
|
||||
pCmd->setDcFlushEnable(true);
|
||||
pCmd->setRenderTargetCacheFlushEnable(true);
|
||||
pCmd->setInstructionCacheInvalidateEnable(true);
|
||||
pCmd->setTextureCacheInvalidationEnable(true);
|
||||
pCmd->setPipeControlFlushEnable(true);
|
||||
pCmd->setVfCacheInvalidationEnable(true);
|
||||
pCmd->setConstantCacheInvalidationEnable(true);
|
||||
pCmd->setStateCacheInvalidationEnable(true);
|
||||
}
|
||||
|
||||
auto address = (uint64_t)this->getTagAddress();
|
||||
pCmd->setAddressHigh(address >> 32);
|
||||
pCmd->setAddress(address & (0xffffffff));
|
||||
pCmd->setImmediateData(this->taskCount);
|
||||
|
||||
addPipeControl(commandStreamCSR, false);
|
||||
this->taskLevel = taskLevel;
|
||||
this->latestSentTaskCount = std::max(this->taskCount, (uint32_t)this->latestSentTaskCount);
|
||||
DBG_LOG(LogTaskCounts, __FUNCTION__, "Line: ", __LINE__, "this->taskCount", this->taskCount);
|
||||
}
|
||||
|
||||
|
@ -722,7 +722,7 @@ HWTEST_F(ProfilingWithPerfCountersTests, GIVENCommandQueueBlockedWithProflingPer
|
||||
pCmdQ->setPerfCountersEnabled(false, UINT32_MAX);
|
||||
}
|
||||
|
||||
HWTEST_F(ProfilingWithPerfCountersTests, GIVENCommandQueueWithProfilingPerfCountersNoEventWHENWalkerIsDispatchedTHENPipeControlWithTimeStampIsPresentInCS) {
|
||||
HWTEST_F(ProfilingWithPerfCountersTests, GIVENCommandQueueWithProfilingPerfCountersNoEventWHENWalkerIsDispatchedTHENPipeControlWithTimeStampIsNotPresentInCS) {
|
||||
typedef typename FamilyType::PIPE_CONTROL PIPE_CONTROL;
|
||||
typedef typename FamilyType::GPGPU_WALKER GPGPU_WALKER;
|
||||
typedef typename FamilyType::MI_REPORT_PERF_COUNT MI_REPORT_PERF_COUNT;
|
||||
@ -771,7 +771,7 @@ HWTEST_F(ProfilingWithPerfCountersTests, GIVENCommandQueueWithProfilingPerfCount
|
||||
ASSERT_NE(nullptr, pAfterPC);
|
||||
EXPECT_EQ(1u, pAfterPC->getCommandStreamerStallEnable());
|
||||
|
||||
EXPECT_EQ(PIPE_CONTROL::POST_SYNC_OPERATION_WRITE_IMMEDIATE_DATA, pBeforePC->getPostSyncOperation());
|
||||
EXPECT_EQ(PIPE_CONTROL::POST_SYNC_OPERATION_NO_WRITE, pBeforePC->getPostSyncOperation());
|
||||
|
||||
// expect MI_REPORT_PERF_COUNT after WALKER
|
||||
auto itorAfterReportPerf = find<MI_REPORT_PERF_COUNT *>(itorGPGPUWalkerCmd, cmdList.end());
|
||||
|
Reference in New Issue
Block a user