mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 09:14:47 +08:00
Simplify RootDevice class
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
3521d89106
commit
176270114b
@@ -57,7 +57,46 @@ Device::~Device() {
|
||||
executionEnvironment->decRefInternal();
|
||||
}
|
||||
|
||||
SubDevice *Device::createSubDevice(uint32_t subDeviceIndex) {
|
||||
return Device::create<SubDevice>(executionEnvironment, subDeviceIndex, *getRootDevice());
|
||||
}
|
||||
|
||||
bool Device::createSubDevices() {
|
||||
if (!subDevicesAllowed()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
auto deviceMask = executionEnvironment->rootDeviceEnvironments[getRootDeviceIndex()]->deviceAffinityMask;
|
||||
uint32_t subDeviceCount = HwHelper::getSubDevicesCount(&getHardwareInfo());
|
||||
deviceBitfield = maxNBitValue(subDeviceCount);
|
||||
deviceBitfield &= deviceMask;
|
||||
numSubDevices = static_cast<uint32_t>(deviceBitfield.count());
|
||||
if (numSubDevices == 1) {
|
||||
numSubDevices = 0;
|
||||
}
|
||||
UNRECOVERABLE_IF(!subdevices.empty());
|
||||
if (numSubDevices) {
|
||||
subdevices.resize(subDeviceCount, nullptr);
|
||||
for (auto i = 0u; i < subDeviceCount; i++) {
|
||||
if (!deviceBitfield.test(i)) {
|
||||
continue;
|
||||
}
|
||||
auto subDevice = createSubDevice(i);
|
||||
if (!subDevice) {
|
||||
return false;
|
||||
}
|
||||
subdevices[i] = subDevice;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Device::createDeviceImpl() {
|
||||
if (!createSubDevices()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
auto &hwInfo = getHardwareInfo();
|
||||
preemptionMode = PreemptionHelper::getDefaultPreemptionMode(hwInfo);
|
||||
|
||||
@@ -120,6 +159,8 @@ bool Device::createDeviceImpl() {
|
||||
getRootDeviceEnvironment().tagsManager->initialize(*this);
|
||||
}
|
||||
|
||||
createBindlessHeapsHelper();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user