Refactor Device::engineGroups to store only available engine groups

Simplify logic around engine groups.
Remove no longer needed code.
Ensure correct device is used when verifying engine groups.

Related-To: NEO-6219

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski
2021-12-03 14:30:46 +00:00
committed by Compute-Runtime-Automation
parent a1121ccb6b
commit 2098b0c3fa
23 changed files with 268 additions and 302 deletions

View File

@@ -379,18 +379,13 @@ void ClDevice::initializeCaps() {
}
}
const auto &queueFamilies = this->getDevice().getEngineGroups();
for (size_t queueFamilyIndex = 0u; queueFamilyIndex < CommonConstants::engineGroupCount; queueFamilyIndex++) {
const std::vector<EngineControl> &enginesInFamily = queueFamilies[queueFamilyIndex];
if (enginesInFamily.size() > 0) {
const auto engineGroupType = static_cast<EngineGroupType>(queueFamilyIndex);
cl_queue_family_properties_intel properties = {};
properties.capabilities = getQueueFamilyCapabilities(engineGroupType);
properties.count = static_cast<cl_uint>(enginesInFamily.size());
properties.properties = deviceInfo.queueOnHostProperties;
getQueueFamilyName(properties.name, engineGroupType);
deviceInfo.queueFamilyProperties.push_back(properties);
}
for (auto &engineGroup : this->getDevice().getEngineGroups()) {
cl_queue_family_properties_intel properties = {};
properties.capabilities = getQueueFamilyCapabilities(engineGroup.engineGroupType);
properties.count = static_cast<cl_uint>(engineGroup.engines.size());
properties.properties = deviceInfo.queueOnHostProperties;
getQueueFamilyName(properties.name, engineGroup.engineGroupType);
deviceInfo.queueFamilyProperties.push_back(properties);
}
auto &clHwHelper = NEO::ClHwHelper::get(hwInfo.platform.eRenderCoreFamily);
const std::vector<uint32_t> &supportedThreadArbitrationPolicies = clHwHelper.getSupportedThreadArbitrationPolicies();