From 9d2b25c69b1b61cf2d50e036be62fb187b605003 Mon Sep 17 00:00:00 2001 From: "Jobczyk, Lukasz" Date: Mon, 10 Feb 2020 09:44:00 +0100 Subject: [PATCH] Use CCS if available for internal usage Related-To: NEO-4231 Change-Id: Ia74b32f50cacc970f247ec3679fd7cee54d1847f Signed-off-by: Jobczyk, Lukasz --- core/device/device.cpp | 7 ++++++- unit_tests/device/device_tests.cpp | 8 ++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/core/device/device.cpp b/core/device/device.cpp index 787d418280..8f0282383a 100644 --- a/core/device/device.cpp +++ b/core/device/device.cpp @@ -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); diff --git a/unit_tests/device/device_tests.cpp b/unit_tests/device/device_tests.cpp index 3698a40349..1323e4ffea 100644 --- a/unit_tests/device/device_tests.cpp +++ b/unit_tests/device/device_tests.cpp @@ -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(MockDevice::createWithNewExecutionEnvironment(nullptr)); + + auto internalEngineType = device->getInternalEngine().osContext->getEngineType(); + auto defaultEngineType = getChosenEngineType(device->getHardwareInfo()); + EXPECT_EQ(defaultEngineType, internalEngineType); +}