Skip to content

Commit 403fedf

Browse files
Improve EngineInstance usage in Aub CSR
Change-Id: I9097f7cc8c930fcf531744af9bddfa38b2c5e1da Signed-off-by: Dunajski, Bartosz <[email protected]>
1 parent 6dd4548 commit 403fedf

7 files changed

+24
-40
lines changed

runtime/command_stream/aub_command_stream_receiver_hw.inl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,8 +326,8 @@ FlushStamp AUBCommandStreamReceiverHw<GfxFamily>::flush(BatchBuffer &batchBuffer
326326
}
327327

328328
auto streamLocked = getAubStream()->lockStream();
329-
auto engineIndex = this->getEngineIndex(osContext->getEngineType().type);
330-
auto engineInstance = allEngineInstances[engineIndex];
329+
330+
auto engineIndex = this->getEngineIndex(osContext->getEngineType());
331331

332332
initializeEngine(engineIndex);
333333

@@ -363,7 +363,7 @@ FlushStamp AUBCommandStreamReceiverHw<GfxFamily>::flush(BatchBuffer &batchBuffer
363363

364364
submitBatchBuffer(engineIndex, batchBufferGpuAddress, pBatchBuffer, sizeBatchBuffer, this->getMemoryBank(batchBuffer.commandBufferAllocation), this->getPPGTTAdditionalBits(batchBuffer.commandBufferAllocation));
365365

366-
pollForCompletion(engineInstance);
366+
pollForCompletion(osContext->getEngineType());
367367
if (this->standalone) {
368368
*this->tagAddress = this->peekLatestSentTaskCount();
369369
}

runtime/command_stream/command_stream_receiver_simulated_common_hw.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ class CommandStreamReceiverSimulatedCommonHw : public CommandStreamReceiverHw<Gf
3232
uint64_t getPPGTTAdditionalBits(GraphicsAllocation *gfxAllocation);
3333
void getGTTData(void *memory, AubGTTData &data);
3434
uint32_t getMemoryBankForGtt() const;
35-
size_t getEngineIndexFromInstance(EngineInstanceT engineInstance);
36-
size_t getEngineIndex(EngineType engineType);
35+
size_t getEngineIndex(EngineInstanceT engineInstance);
3736

3837
AubMemDump::AubStream *stream;
3938
size_t gpgpuEngineIndex = EngineInstanceConstants::numGpgpuEngineInstances - 1;

runtime/command_stream/command_stream_receiver_simulated_common_hw.inl

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,11 @@ uint32_t CommandStreamReceiverSimulatedCommonHw<GfxFamily>::getMemoryBankForGtt(
8888
}
8989

9090
template <typename GfxFamily>
91-
size_t CommandStreamReceiverSimulatedCommonHw<GfxFamily>::getEngineIndexFromInstance(EngineInstanceT engineInstance) {
91+
size_t CommandStreamReceiverSimulatedCommonHw<GfxFamily>::getEngineIndex(EngineInstanceT engineInstance) {
9292
auto findCriteria = [&](const auto &it) { return it.type == engineInstance.type && it.id == engineInstance.id; };
9393
auto findResult = std::find_if(allEngineInstances.begin(), allEngineInstances.end(), findCriteria);
9494
UNRECOVERABLE_IF(findResult == allEngineInstances.end());
9595
return findResult - allEngineInstances.begin();
9696
}
9797

98-
template <typename GfxFamily>
99-
size_t CommandStreamReceiverSimulatedCommonHw<GfxFamily>::getEngineIndex(EngineType engineType) {
100-
return getEngineIndexFromInstance(engineType);
101-
}
10298
} // namespace OCLRT

runtime/command_stream/tbx_command_stream_receiver_hw.inl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,9 @@ CommandStreamReceiver *TbxCommandStreamReceiverHw<GfxFamily>::create(const Hardw
183183

184184
template <typename GfxFamily>
185185
FlushStamp TbxCommandStreamReceiverHw<GfxFamily>::flush(BatchBuffer &batchBuffer, ResidencyContainer &allocationsForResidency) {
186-
auto engineType = osContext->getEngineType().type;
187-
auto engineIndex = this->getEngineIndex(osContext->getEngineType().type);
188-
auto engineInstance = allEngineInstances[engineIndex];
186+
auto &engineInstance = osContext->getEngineType();
189187
uint32_t mmioBase = getCsTraits(engineInstance).mmioBase;
190-
auto &engineInfo = engineInfoTable[engineType];
188+
auto &engineInfo = engineInfoTable[engineInstance.type];
191189

192190
if (!engineInfo.pLRCA) {
193191
initializeEngine(engineInstance);

unit_tests/command_stream/aub_command_stream_receiver_1_tests.cpp

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -96,33 +96,25 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenGetEngi
9696
auto aubCsr = std::make_unique<AUBCommandStreamReceiverHw<FamilyType>>(**platformDevices, "", true, executionEnvironment);
9797
EXPECT_NE(nullptr, aubCsr);
9898

99-
EXPECT_TRUE(aubCsr->getEngineIndexFromInstance(EngineInstanceT(EngineType::ENGINE_RCS, 0)) < allEngineInstances.size());
100-
EXPECT_TRUE(aubCsr->getEngineIndexFromInstance(EngineInstanceT(EngineType::ENGINE_RCS, 1)) < allEngineInstances.size());
101-
EXPECT_TRUE(aubCsr->getEngineIndexFromInstance(EngineInstanceT(EngineType::ENGINE_BCS, 0)) < allEngineInstances.size());
102-
EXPECT_TRUE(aubCsr->getEngineIndexFromInstance(EngineInstanceT(EngineType::ENGINE_VCS, 0)) < allEngineInstances.size());
103-
EXPECT_TRUE(aubCsr->getEngineIndexFromInstance(EngineInstanceT(EngineType::ENGINE_VECS, 0)) < allEngineInstances.size());
104-
105-
EXPECT_THROW(aubCsr->getEngineIndexFromInstance(EngineInstanceT(EngineType::ENGINE_RCS, 2)), std::exception);
106-
EXPECT_THROW(aubCsr->getEngineIndexFromInstance(EngineInstanceT(EngineType::ENGINE_BCS, 1)), std::exception);
107-
EXPECT_THROW(aubCsr->getEngineIndexFromInstance(EngineInstanceT(EngineType::ENGINE_VCS, 1)), std::exception);
108-
EXPECT_THROW(aubCsr->getEngineIndexFromInstance(EngineInstanceT(EngineType::ENGINE_VECS, 1)), std::exception);
99+
EXPECT_TRUE(aubCsr->getEngineIndex(EngineInstanceT(EngineType::ENGINE_RCS, 0)) < allEngineInstances.size());
100+
EXPECT_TRUE(aubCsr->getEngineIndex(EngineInstanceT(EngineType::ENGINE_RCS, 1)) < allEngineInstances.size());
101+
EXPECT_TRUE(aubCsr->getEngineIndex(EngineInstanceT(EngineType::ENGINE_BCS, 0)) < allEngineInstances.size());
102+
EXPECT_TRUE(aubCsr->getEngineIndex(EngineInstanceT(EngineType::ENGINE_VCS, 0)) < allEngineInstances.size());
103+
EXPECT_TRUE(aubCsr->getEngineIndex(EngineInstanceT(EngineType::ENGINE_VECS, 0)) < allEngineInstances.size());
104+
105+
EXPECT_THROW(aubCsr->getEngineIndex(EngineInstanceT(EngineType::ENGINE_RCS, 2)), std::exception);
106+
EXPECT_THROW(aubCsr->getEngineIndex(EngineInstanceT(EngineType::ENGINE_BCS, 1)), std::exception);
107+
EXPECT_THROW(aubCsr->getEngineIndex(EngineInstanceT(EngineType::ENGINE_VCS, 1)), std::exception);
108+
EXPECT_THROW(aubCsr->getEngineIndex(EngineInstanceT(EngineType::ENGINE_VECS, 1)), std::exception);
109109
}
110110

111111
HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenGetEngineIndexIsCalledForGivenEngineTypeThenEngineIndexForThatTypeIsReturned) {
112112
auto aubCsr = std::make_unique<AUBCommandStreamReceiverHw<FamilyType>>(**platformDevices, "", true, executionEnvironment);
113113
EXPECT_NE(nullptr, aubCsr);
114114

115-
auto engineIndex = aubCsr->getEngineIndex(EngineType::ENGINE_RCS);
115+
auto engineIndex = aubCsr->getEngineIndex(EngineInstanceT(EngineType::ENGINE_RCS, 1));
116116
EXPECT_EQ(EngineType::ENGINE_RCS, allEngineInstances[engineIndex].type);
117-
118-
engineIndex = aubCsr->getEngineIndex(EngineType::ENGINE_BCS);
119-
EXPECT_EQ(EngineType::ENGINE_BCS, allEngineInstances[engineIndex].type);
120-
121-
engineIndex = aubCsr->getEngineIndex(EngineType::ENGINE_VCS);
122-
EXPECT_EQ(EngineType::ENGINE_VCS, allEngineInstances[engineIndex].type);
123-
124-
engineIndex = aubCsr->getEngineIndex(EngineType::ENGINE_VECS);
125-
EXPECT_EQ(EngineType::ENGINE_VECS, allEngineInstances[engineIndex].type);
117+
EXPECT_EQ(1, allEngineInstances[engineIndex].id);
126118
}
127119

128120
HWTEST_F(AubCommandStreamReceiverTests, givenAubCsrWhenItIsCreatedWithDefaultSettingsThenItHasBatchedDispatchModeEnabled) {
@@ -273,8 +265,8 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenMultipl
273265

274266
auto aubCsr1 = std::make_unique<AUBCommandStreamReceiverHw<FamilyType>>(**platformDevices, "", true, executionEnvironment);
275267
auto aubCsr2 = std::make_unique<AUBCommandStreamReceiverHw<FamilyType>>(**platformDevices, "", true, executionEnvironment);
276-
auto engineType = OCLRT::ENGINE_RCS;
277-
auto engineIndex = aubCsr1->getEngineIndex(engineType);
268+
auto engineType = gpgpuEngineInstances[0].type;
269+
auto engineIndex = aubCsr1->getEngineIndex(gpgpuEngineInstances[0]);
278270

279271
aubCsr1->initializeEngine(engineIndex);
280272
EXPECT_NE(0u, aubCsr1->engineInfoTable[engineType].ggttLRCA);
@@ -294,7 +286,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenFlushIs
294286

295287
BatchBuffer batchBuffer{cs.getGraphicsAllocation(), 0, 0, nullptr, false, false, QueueThrottle::MEDIUM, cs.getUsed(), &cs};
296288
ResidencyContainer allocationsForResidency = {};
297-
auto engineIndex = aubCsr->getEngineIndexFromInstance(aubCsr->getOsContext().getEngineType());
289+
auto engineIndex = aubCsr->getEngineIndex(aubCsr->getOsContext().getEngineType());
298290
aubCsr->flush(batchBuffer, allocationsForResidency);
299291
EXPECT_NE(nullptr, aubCsr->engineInfoTable[engineIndex].pLRCA);
300292
EXPECT_NE(nullptr, aubCsr->engineInfoTable[engineIndex].pGlobalHWStatusPage);

unit_tests/command_stream/aub_command_stream_receiver_2_tests.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -704,8 +704,7 @@ HWTEST_F(AubCommandStreamReceiverTests, givenAubCommandStreamReceiverWhenEngineI
704704
auto aubCsr = std::make_unique<MockAubCsrToTestDumpContext<FamilyType>>(**platformDevices, "", true, executionEnvironment);
705705
EXPECT_NE(nullptr, aubCsr);
706706

707-
auto engineType = OCLRT::ENGINE_RCS;
708-
auto engineIndex = aubCsr->getEngineIndex(engineType);
707+
auto engineIndex = aubCsr->getEngineIndex(gpgpuEngineInstances[0]);
709708

710709
aubCsr->initializeEngine(engineIndex);
711710
EXPECT_NE(0u, aubCsr->handle);

unit_tests/command_stream/aub_file_stream_tests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ HWTEST_F(AubFileStreamTests, givenAubCommandStreamReceiverWhenInitializeEngineIs
327327
comments.push_back(std::string(str));
328328
return true;
329329
}));
330-
auto engineIndex = aubCsr->getEngineIndex(OCLRT::ENGINE_RCS);
330+
auto engineIndex = aubCsr->getEngineIndex(gpgpuEngineInstances[0]);
331331
aubCsr->initializeEngine(engineIndex);
332332

333333
#define QTR(a) #a

0 commit comments

Comments
 (0)