Fix direct submission initialization

Related-To: NEO-6057
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
This commit is contained in:
Maciej Dziuban 2021-10-12 10:08:17 +00:00 committed by Compute-Runtime-Automation
parent 5aeae0cf99
commit cdb7287816
3 changed files with 17 additions and 3 deletions

View File

@ -92,9 +92,11 @@ class CommandQueueHw : public CommandQueue {
gpgpuEngine->osContext->ensureContextInitialized();
gpgpuEngine->commandStreamReceiver->initDirectSubmission(device->getDevice(), *gpgpuEngine->osContext);
if (const EngineControl *mainBcsEngine = bcsEngines[0]; mainBcsEngine != nullptr) {
mainBcsEngine->osContext->ensureContextInitialized();
mainBcsEngine->commandStreamReceiver->initDirectSubmission(device->getDevice(), *mainBcsEngine->osContext);
for (const EngineControl *engine : bcsEngines) {
if (engine != nullptr) {
engine->osContext->ensureContextInitialized();
engine->commandStreamReceiver->initDirectSubmission(device->getDevice(), *engine->osContext);
}
}
}

View File

@ -234,6 +234,16 @@ HWTEST_F(CommandQueueHwTest, GivenCommandQueueWhenProcessDispatchForMarkerCalled
EXPECT_GT(csr.makeResidentCalledTimes, 0u);
}
HWTEST_F(CommandQueueHwTest, GivenCommandQueueWhenItIsCreatedThenInitDirectSubmissionIsCalledOnAllBcsEngines) {
MockCommandQueueHw<FamilyType> queue(pContext, pClDevice, nullptr);
for (auto engine : queue.bcsEngines) {
if (engine != nullptr) {
auto csr = static_cast<UltCommandStreamReceiver<FamilyType> *>(engine->commandStreamReceiver);
EXPECT_EQ(1u, csr->initDirectSubmissionCalled);
}
}
}
HWTEST_F(CommandQueueHwTest, givenCommandQueueWhenAskingForCacheFlushOnBcsThenReturnTrue) {
auto pHwQ = static_cast<CommandQueueHw<FamilyType> *>(pCmdQ);

View File

@ -254,6 +254,7 @@ class UltCommandStreamReceiver : public CommandStreamReceiverHw<GfxFamily>, publ
if (ultHwConfig.csrFailInitDirectSubmission) {
return false;
}
initDirectSubmissionCalled++;
return BaseClass::CommandStreamReceiver::initDirectSubmission(device, osContext);
}
@ -295,6 +296,7 @@ class UltCommandStreamReceiver : public CommandStreamReceiverHw<GfxFamily>, publ
uint32_t latestSentTaskCountValueDuringFlush = 0;
uint32_t blitBufferCalled = 0;
uint32_t createPerDssBackedBufferCalled = 0;
uint32_t initDirectSubmissionCalled = 0;
int ensureCommandBufferAllocationCalled = 0;
DispatchFlags recordedDispatchFlags;
BlitPropertiesContainer receivedBlitProperties = {};