fix: Correct logic to select internal BCS engine

When BCS3 is not available, use last available copy engine as internal.

Related-To: HSD-18039263936

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski
2024-07-17 21:39:08 +00:00
committed by Compute-Runtime-Automation
parent d7777ef163
commit 46f9133bf2
9 changed files with 118 additions and 21 deletions

View File

@@ -72,16 +72,13 @@ const EngineInstancesContainer GfxCoreHelperHw<Family>::getGpgpuEngineInstances(
engines.push_back({aub_stream::EngineType::ENGINE_BCS, EngineUsage::internal}); // Internal usage
}
uint32_t internalIndex = getInternalCopyEngineIndex(hwInfo);
for (uint32_t i = 1; i < hwInfo.featureTable.ftrBcsInfo.size(); i++) {
if (hwInfo.featureTable.ftrBcsInfo.test(i)) {
auto engineType = static_cast<aub_stream::EngineType>((i - 1) + aub_stream::ENGINE_BCS1); // Link copy engine
engines.push_back({engineType, EngineUsage::regular});
uint32_t internalIndex = 3;
if (debugManager.flags.ForceBCSForInternalCopyEngine.get() != -1) {
internalIndex = debugManager.flags.ForceBCSForInternalCopyEngine.get();
}
if (i == internalIndex) {
engines.push_back({engineType, EngineUsage::internal}); // BCS3 for internal usage
engines.push_back({engineType, EngineUsage::internal});
}
}
}