mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-04 07:14:10 +08:00
fix: dont use event fence wait in tbx mode
Related-To: HSD-18040280103 Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
e687e11ab1
commit
e60f3d931b
@@ -656,8 +656,11 @@ ze_result_t EventImp<TagSizeT>::hostSynchronize(uint64_t timeout) {
|
||||
|
||||
waitStartTime = std::chrono::high_resolution_clock::now();
|
||||
lastHangCheckTime = waitStartTime;
|
||||
|
||||
const bool fenceWait = isKmdWaitModeEnabled() && isCounterBased() && !this->tbxMode;
|
||||
|
||||
do {
|
||||
if (isKmdWaitModeEnabled() && isCounterBased()) {
|
||||
if (fenceWait) {
|
||||
ret = waitForUserFence(timeout);
|
||||
} else {
|
||||
ret = queryStatus();
|
||||
|
||||
@@ -578,6 +578,29 @@ HWTEST2_F(InOrderCmdListTests, givenUserInterruptEventWhenWaitingThenWaitForUser
|
||||
EXPECT_TRUE(ultCsr->waitUserFenecParams.userInterrupt);
|
||||
}
|
||||
|
||||
HWTEST2_F(InOrderCmdListTests, givenUserInterruptEventAndTbxModeWhenWaitingThenDontWaitForUserFence, IsAtLeastXeHpCore) {
|
||||
auto immCmdList = createImmCmdList<gfxCoreFamily>();
|
||||
auto ultCsr = static_cast<UltCommandStreamReceiver<FamilyType> *>(device->getNEODevice()->getDefaultEngine().commandStreamReceiver);
|
||||
|
||||
ultCsr->waitUserFenecParams.forceRetStatusEnabled = true;
|
||||
ultCsr->commandStreamReceiverType = CommandStreamReceiverType::tbx;
|
||||
|
||||
auto eventPool = createEvents<FamilyType>(2, false);
|
||||
events[0]->enableKmdWaitMode();
|
||||
events[0]->enableInterruptMode();
|
||||
|
||||
events[1]->enableKmdWaitMode();
|
||||
events[1]->enableInterruptMode();
|
||||
events[1]->externalInterruptId = 0x123;
|
||||
|
||||
immCmdList->appendLaunchKernel(kernel->toHandle(), groupCount, events[0]->toHandle(), 0, nullptr, launchParams, false);
|
||||
immCmdList->appendLaunchKernel(kernel->toHandle(), groupCount, events[1]->toHandle(), 0, nullptr, launchParams, false);
|
||||
|
||||
events[0]->hostSynchronize(2);
|
||||
events[1]->hostSynchronize(2);
|
||||
EXPECT_EQ(0u, ultCsr->waitUserFenecParams.callCount);
|
||||
}
|
||||
|
||||
HWTEST2_F(InOrderCmdListTests, givenUserInterruptEventWhenWaitingThenPassCorrectAllocation, IsAtLeastXeHpCore) {
|
||||
debugManager.flags.InOrderDuplicatedCounterStorageEnabled.set(0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user