Disable DirectSubmission in aub/tbx mode

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
Bartosz Dunajski
2022-02-28 12:03:29 +00:00
committed by Compute-Runtime-Automation
parent b096422e78
commit 927bbe9ee9
4 changed files with 41 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018-2021 Intel Corporation
* Copyright (C) 2018-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -96,6 +96,10 @@ void ExecutionEnvironment::calculateMaxOsContextCount() {
DirectSubmissionController *ExecutionEnvironment::initializeDirectSubmissionController() {
auto initializeDirectSubmissionController = DirectSubmissionController::isSupported();
if (DebugManager.flags.SetCommandStreamReceiver.get() > 0) {
initializeDirectSubmissionController = false;
}
if (DebugManager.flags.EnableDirectSubmissionController.get() != -1) {
initializeDirectSubmissionController = DebugManager.flags.EnableDirectSubmissionController.get();
}

View File

@@ -62,6 +62,10 @@ void OsContext::ensureContextInitialized() {
bool OsContext::isDirectSubmissionAvailable(const HardwareInfo &hwInfo, bool &submitOnInit) {
bool enableDirectSubmission = this->isDirectSubmissionSupported(hwInfo);
if (DebugManager.flags.SetCommandStreamReceiver.get() > 0) {
enableDirectSubmission = false;
}
if (DebugManager.flags.EnableDirectSubmission.get() != -1) {
enableDirectSubmission = DebugManager.flags.EnableDirectSubmission.get();
}

View File

@@ -619,6 +619,29 @@ HWTEST_F(InitDirectSubmissionTest, givenDirectSubmissionControllerDisabledWhenIn
EXPECT_EQ(controller, nullptr);
}
HWTEST_F(InitDirectSubmissionTest, givenSetCsrFlagSetWhenInitDirectSubmissionThenControllerIsNotCreatedAndCsrIsNotRegistered) {
DebugManagerStateRestore restorer;
DebugManager.flags.SetCommandStreamReceiver.set(1);
auto csr = std::make_unique<CommandStreamReceiverHw<FamilyType>>(*device->executionEnvironment, device->getRootDeviceIndex(), device->getDeviceBitfield());
std::unique_ptr<OsContext> osContext(OsContext::create(device->getExecutionEnvironment()->rootDeviceEnvironments[0]->osInterface.get(), 0,
EngineDescriptorHelper::getDefaultDescriptor({aub_stream::ENGINE_RCS, EngineUsage::Regular},
PreemptionMode::ThreadGroup, device->getDeviceBitfield())));
osContext->ensureContextInitialized();
osContext->setDefaultContext(true);
auto hwInfo = device->getRootDeviceEnvironment().getMutableHardwareInfo();
hwInfo->capabilityTable.directSubmissionEngines.data[aub_stream::ENGINE_RCS].engineSupported = true;
hwInfo->capabilityTable.directSubmissionEngines.data[aub_stream::ENGINE_RCS].submitOnInit = false;
bool ret = csr->initDirectSubmission(*device, *osContext.get());
EXPECT_TRUE(ret);
EXPECT_TRUE(csr->isDirectSubmissionEnabled());
auto controller = static_cast<DirectSubmissionControllerMock *>(device->executionEnvironment->initializeDirectSubmissionController());
EXPECT_EQ(controller, nullptr);
}
HWTEST_F(InitDirectSubmissionTest, whenDirectSubmissionEnabledOnRcsThenExpectFeatureAvailable) {
auto csr = std::make_unique<CommandStreamReceiverHw<FamilyType>>(*device->executionEnvironment, device->getRootDeviceIndex(), device->getDeviceBitfield());
std::unique_ptr<OsContext> osContext(OsContext::create(device->getExecutionEnvironment()->rootDeviceEnvironments[0]->osInterface.get(), 0,