mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-05 09:09:04 +08:00
feature: add indirect semaphore mode
Related-To: NEO-8242 Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
a441b10015
commit
6648065703
@@ -25,6 +25,7 @@ HWTEST_F(CommandEncodeSemaphore, WhenProgrammingThenMiSemaphoreWaitIsUsed) {
|
||||
MI_SEMAPHORE_WAIT::COMPARE_OPERATION::COMPARE_OPERATION_SAD_NOT_EQUAL_SDD,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false);
|
||||
|
||||
EXPECT_EQ(MI_SEMAPHORE_WAIT::COMPARE_OPERATION::COMPARE_OPERATION_SAD_NOT_EQUAL_SDD, miSemaphore1.getCompareOperation());
|
||||
@@ -39,6 +40,7 @@ HWTEST_F(CommandEncodeSemaphore, WhenProgrammingThenMiSemaphoreWaitIsUsed) {
|
||||
MI_SEMAPHORE_WAIT::COMPARE_OPERATION::COMPARE_OPERATION_SAD_NOT_EQUAL_SDD,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false);
|
||||
EXPECT_EQ(MI_SEMAPHORE_WAIT::WAIT_MODE::WAIT_MODE_SIGNAL_MODE, miSemaphore2.getWaitMode());
|
||||
}
|
||||
@@ -55,7 +57,7 @@ HWTEST_F(CommandEncodeSemaphore, whenAddingMiSemaphoreCommandThenExpectCompareFi
|
||||
EncodeSemaphore<FamilyType>::addMiSemaphoreWaitCommand(stream,
|
||||
0xFF00FF000u,
|
||||
5u,
|
||||
compareMode, false, false);
|
||||
compareMode, false, false, false);
|
||||
|
||||
EXPECT_EQ(NEO::EncodeSemaphore<FamilyType>::getSizeMiSemaphoreWait(), stream.getUsed());
|
||||
|
||||
@@ -70,6 +72,30 @@ HWTEST_F(CommandEncodeSemaphore, whenAddingMiSemaphoreCommandThenExpectCompareFi
|
||||
EXPECT_EQ(WAIT_MODE::WAIT_MODE_POLLING_MODE, miSemaphore->getWaitMode());
|
||||
}
|
||||
|
||||
HWTEST2_F(CommandEncodeSemaphore, givenIndirectModeSetWhenProgrammingSemaphoreThenSetIndirectBit, IsAtLeastXeHpCore) {
|
||||
using MI_SEMAPHORE_WAIT = typename FamilyType::MI_SEMAPHORE_WAIT;
|
||||
using COMPARE_OPERATION = typename FamilyType::MI_SEMAPHORE_WAIT::COMPARE_OPERATION;
|
||||
using WAIT_MODE = typename FamilyType::MI_SEMAPHORE_WAIT::WAIT_MODE;
|
||||
|
||||
std::unique_ptr<uint8_t> buffer(new uint8_t[128]);
|
||||
LinearStream stream(buffer.get(), 128);
|
||||
COMPARE_OPERATION compareMode = COMPARE_OPERATION::COMPARE_OPERATION_SAD_GREATER_THAN_OR_EQUAL_SDD;
|
||||
|
||||
EncodeSemaphore<FamilyType>::addMiSemaphoreWaitCommand(stream,
|
||||
0xFF00FF000u,
|
||||
5u,
|
||||
compareMode, false, false, true);
|
||||
|
||||
EXPECT_EQ(NEO::EncodeSemaphore<FamilyType>::getSizeMiSemaphoreWait(), stream.getUsed());
|
||||
|
||||
HardwareParse hwParse;
|
||||
hwParse.parseCommands<FamilyType>(stream);
|
||||
MI_SEMAPHORE_WAIT *miSemaphore = hwParse.getCommand<MI_SEMAPHORE_WAIT>();
|
||||
ASSERT_NE(nullptr, miSemaphore);
|
||||
|
||||
EXPECT_TRUE(miSemaphore->getIndirectSemaphoreDataDword());
|
||||
}
|
||||
|
||||
HWTEST_F(CommandEncodeSemaphore, whenGettingMiSemaphoreCommandSizeThenExpectSingleMiSemaphoreCommandSize) {
|
||||
using MI_SEMAPHORE_WAIT = typename FamilyType::MI_SEMAPHORE_WAIT;
|
||||
size_t expectedSize = NEO::EncodeSemaphore<FamilyType>::getSizeMiSemaphoreWait();
|
||||
|
||||
Reference in New Issue
Block a user