Use CCS if available for internal usage

Related-To: NEO-4231

Change-Id: Ia74b32f50cacc970f247ec3679fd7cee54d1847f
Signed-off-by: Jobczyk, Lukasz <lukasz.jobczyk@intel.com>
This commit is contained in:
Jobczyk, Lukasz
2020-02-10 09:44:00 +01:00
committed by sys_ocldev
parent bf1680ed00
commit 9d2b25c69b
2 changed files with 14 additions and 1 deletions

View File

@@ -115,12 +115,17 @@ bool Device::createEngine(uint32_t deviceCsrIndex, aub_stream::EngineType engine
if (!commandStreamReceiver) {
return false;
}
bool internalUsage = (deviceCsrIndex == HwHelper::internalUsageEngineIndex);
if (internalUsage) {
engineType = defaultEngineType;
}
if (commandStreamReceiver->needsPageTableManager(engineType)) {
commandStreamReceiver->createPageTableManager();
}
bool lowPriority = (deviceCsrIndex == HwHelper::lowPriorityGpgpuEngineIndex);
bool internalUsage = (deviceCsrIndex == HwHelper::internalUsageEngineIndex);
auto osContext = executionEnvironment->memoryManager->createAndRegisterOsContext(commandStreamReceiver.get(), engineType,
getDeviceBitfield(), preemptionMode, lowPriority);
commandStreamReceiver->setupContext(*osContext);

View File

@@ -337,3 +337,11 @@ TEST(DeviceGenEngineTest, givenHwCsrModeWhenGetEngineThenDedicatedForInternalUsa
auto internalEngineIndex = HwHelper::internalUsageEngineIndex;
EXPECT_EQ(internalEngineIndex, internalEngine.osContext->getContextId());
}
TEST(DeviceGenEngineTest, whenCreateDeviceThenInternalEngineHasDefaultType) {
auto device = std::unique_ptr<Device>(MockDevice::createWithNewExecutionEnvironment<Device>(nullptr));
auto internalEngineType = device->getInternalEngine().osContext->getEngineType();
auto defaultEngineType = getChosenEngineType(device->getHardwareInfo());
EXPECT_EQ(defaultEngineType, internalEngineType);
}