fix: initialize context with first submission in heapless execution

- early return from initializeDeviceWithFirstSubmission if flush was
already called

Related-To: NEO-11219

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
Mateusz Hoppe
2024-05-24 13:46:53 +00:00
committed by Compute-Runtime-Automation
parent 0a74d718f2
commit a2a154ba4a
3 changed files with 21 additions and 1 deletions

View File

@@ -5236,6 +5236,21 @@ HWTEST_F(CommandStreamReceiverTest, givenBcsCsrWhenInitializeDeviceWithFirstSubm
EXPECT_EQ(SubmissionStatus::success, commandStreamReceiver.initializeDeviceWithFirstSubmission(*pDevice));
}
HWTEST_F(CommandStreamReceiverTest, givenCsrWhenInitializeDeviceWithFirstSubmissionIsCalledThenFlushOnlyForTheFirstTime) {
MockOsContext mockOsContext(0, EngineDescriptorHelper::getDefaultDescriptor({defaultHwInfo->capabilityTable.defaultEngineType, EngineUsage::regular}));
pDevice->setPreemptionMode(PreemptionMode::Disabled);
MockCsrHw<FamilyType> commandStreamReceiver(*pDevice->executionEnvironment, pDevice->getRootDeviceIndex(), pDevice->getDeviceBitfield());
commandStreamReceiver.setupContext(mockOsContext);
commandStreamReceiver.initializeTagAllocation();
EXPECT_EQ(0u, commandStreamReceiver.taskCount);
EXPECT_EQ(SubmissionStatus::success, commandStreamReceiver.initializeDeviceWithFirstSubmission(*pDevice));
EXPECT_EQ(1u, commandStreamReceiver.taskCount);
EXPECT_EQ(SubmissionStatus::success, commandStreamReceiver.initializeDeviceWithFirstSubmission(*pDevice));
EXPECT_EQ(1u, commandStreamReceiver.taskCount);
}
using CommandStreamReceiverHwHeaplessTest = Test<DeviceFixture>;
HWTEST_F(CommandStreamReceiverHwHeaplessTest, whenHeaplessCommandStreamReceiverFunctionsAreCalledThenExceptionIsThrown) {