From c58657378e76e5380acbf31833cab374c2249f37 Mon Sep 17 00:00:00 2001 From: Katarzyna Cencelewska Date: Fri, 10 Jun 2022 10:58:07 +0000 Subject: [PATCH] Fix set engine index by flag NodeOrdinal for l0 Related-To: LOCI-3154 Signed-off-by: Katarzyna Cencelewska --- level_zero/core/source/device/device_imp.cpp | 2 ++ .../core/test/unit_tests/sources/device/test_device.cpp | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/level_zero/core/source/device/device_imp.cpp b/level_zero/core/source/device/device_imp.cpp index b6197f25c1..6153665fc2 100644 --- a/level_zero/core/source/device/device_imp.cpp +++ b/level_zero/core/source/device/device_imp.cpp @@ -218,11 +218,13 @@ void DeviceImp::adjustCommandQueueDesc(ze_command_queue_desc_t &desc) { } currentEngineIndex++; } + currentEngineIndex = 0u; for (const auto &engine : engineGroups[desc.ordinal].engines) { if (engine.getEngineType() == static_cast(nodeOrdinal)) { desc.index = currentEngineIndex; break; } + currentEngineIndex++; } } } diff --git a/level_zero/core/test/unit_tests/sources/device/test_device.cpp b/level_zero/core/test/unit_tests/sources/device/test_device.cpp index b03e0bb0fb..23e0ba45a7 100644 --- a/level_zero/core/test/unit_tests/sources/device/test_device.cpp +++ b/level_zero/core/test/unit_tests/sources/device/test_device.cpp @@ -1123,7 +1123,7 @@ HWTEST_F(DeviceTest, givenNodeOrdinalFlagWhenCallAdjustCommandQueueDescThenDescO hwHelperFactoryBackup = &hwHelper; hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled = 2; - auto nodeOrdinal = EngineHelpers::remapEngineTypeToHwSpecific(aub_stream::EngineType::ENGINE_CCS1, hwInfo); + auto nodeOrdinal = EngineHelpers::remapEngineTypeToHwSpecific(aub_stream::EngineType::ENGINE_CCS2, hwInfo); DebugManager.flags.NodeOrdinal.set(nodeOrdinal); auto deviceImp = static_cast *>(device); @@ -1134,20 +1134,23 @@ HWTEST_F(DeviceTest, givenNodeOrdinalFlagWhenCallAdjustCommandQueueDescThenDescO engineGroups.clear(); NEO::Device::EngineGroupT engineGroupCompute{}; engineGroupCompute.engineGroupType = NEO::EngineGroupType::Compute; - engineGroupCompute.engines.resize(2); + engineGroupCompute.engines.resize(3); auto osContext1 = std::make_unique(0u, EngineDescriptorHelper::getDefaultDescriptor()); osContext1->engineType = aub_stream::EngineType::ENGINE_CCS; engineGroupCompute.engines[0].osContext = osContext1.get(); auto osContext2 = std::make_unique(0u, EngineDescriptorHelper::getDefaultDescriptor()); osContext2->engineType = aub_stream::EngineType::ENGINE_CCS1; engineGroupCompute.engines[1].osContext = osContext2.get(); + auto osContext3 = std::make_unique(0u, EngineDescriptorHelper::getDefaultDescriptor()); + osContext3->engineType = aub_stream::EngineType::ENGINE_CCS2; + engineGroupCompute.engines[2].osContext = osContext3.get(); NEO::Device::EngineGroupT engineGroupRender{}; engineGroupRender.engineGroupType = NEO::EngineGroupType::RenderCompute; engineGroups.push_back(engineGroupRender); engineGroups.push_back(engineGroupCompute); uint32_t expectedOrdinal = 1u; - uint32_t expectedIndex = 1u; + uint32_t expectedIndex = 2u; deviceImp->adjustCommandQueueDesc(desc); EXPECT_EQ(desc.ordinal, expectedOrdinal); EXPECT_EQ(desc.index, expectedIndex);