mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-18 22:08:53 +08:00
performance: dont wait on already waited counter
Related-To: GSD-11996 Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
c3912acaca
commit
5790a624e1
@@ -1222,9 +1222,9 @@ ze_result_t CommandListCoreFamilyImmediate<gfxCoreFamily>::hostSynchronize(uint6
|
||||
|
||||
uint64_t inOrderSyncValue = this->inOrderExecInfo.get() ? inOrderExecInfo->getCounterValue() : 0;
|
||||
|
||||
if (inOrderWaitAllowed) {
|
||||
if (inOrderWaitAllowed && !inOrderExecInfo->isCounterAlreadyDone(inOrderExecInfo->getCounterValue())) {
|
||||
status = synchronizeInOrderExecution(timeout, (waitQueue == this->cmdQImmediateCopyOffload));
|
||||
} else {
|
||||
} else if (!inOrderWaitAllowed) {
|
||||
const auto indefinitelyPoll = timeout == std::numeric_limits<uint64_t>::max();
|
||||
auto waitStatus = NEO::WaitStatus::notReady;
|
||||
|
||||
|
||||
@@ -3260,6 +3260,10 @@ HWTEST_F(InOrderCmdListTests, givenHostVisibleEventOnLatestFlushWhenCallingSynch
|
||||
EXPECT_EQ(0u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
}
|
||||
|
||||
auto currSyncInOrderCalls = immCmdList->synchronizeInOrderExecutionCalled;
|
||||
immCmdList->hostSynchronize(0, false);
|
||||
EXPECT_EQ(currSyncInOrderCalls, immCmdList->synchronizeInOrderExecutionCalled);
|
||||
|
||||
events[0]->signalScope = ZE_EVENT_SCOPE_FLAG_HOST;
|
||||
immCmdList->appendLaunchKernel(kernel->toHandle(), groupCount, events[0]->toHandle(), 0, nullptr, launchParams);
|
||||
EXPECT_TRUE(immCmdList->latestFlushIsHostVisible);
|
||||
@@ -3268,10 +3272,10 @@ HWTEST_F(InOrderCmdListTests, givenHostVisibleEventOnLatestFlushWhenCallingSynch
|
||||
|
||||
if (!immCmdList->isHeaplessModeEnabled() && immCmdList->latestOperationHasOptimizedCbEvent) {
|
||||
EXPECT_EQ(0u, immCmdList->synchronizeInOrderExecutionCalled);
|
||||
EXPECT_EQ(2u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
EXPECT_EQ(3u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
} else if (immCmdList->dcFlushSupport) {
|
||||
EXPECT_EQ(1u, immCmdList->synchronizeInOrderExecutionCalled);
|
||||
EXPECT_EQ(1u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
EXPECT_EQ(2u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
} else {
|
||||
EXPECT_EQ(2u, immCmdList->synchronizeInOrderExecutionCalled);
|
||||
EXPECT_EQ(0u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
@@ -3282,10 +3286,10 @@ HWTEST_F(InOrderCmdListTests, givenHostVisibleEventOnLatestFlushWhenCallingSynch
|
||||
|
||||
if (!immCmdList->isHeaplessModeEnabled() && immCmdList->latestOperationHasOptimizedCbEvent) {
|
||||
EXPECT_EQ(0u, immCmdList->synchronizeInOrderExecutionCalled);
|
||||
EXPECT_EQ(3u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
EXPECT_EQ(4u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
} else if (immCmdList->dcFlushSupport) {
|
||||
EXPECT_EQ(1u, immCmdList->synchronizeInOrderExecutionCalled);
|
||||
EXPECT_EQ(2u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
EXPECT_EQ(3u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
} else {
|
||||
EXPECT_EQ(2u, immCmdList->synchronizeInOrderExecutionCalled);
|
||||
EXPECT_EQ(1u, ultCsr->waitForCompletionWithTimeoutTaskCountCalled);
|
||||
|
||||
Reference in New Issue
Block a user