Files
compute-runtime/runtime/device/sub_device.cpp
Jobczyk, Lukasz 77d7d9f740 Add a getRootDeviceIndex method
Change-Id: I7f46a42b5ce25a53365b9faaeba62f2c3232f104
Signed-off-by: Jobczyk, Lukasz <lukasz.jobczyk@intel.com>
2019-10-21 15:35:26 +02:00

47 lines
1.3 KiB
C++

/*
* Copyright (C) 2019 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "runtime/device/sub_device.h"
#include "runtime/device/root_device.h"
namespace NEO {
SubDevice::SubDevice(ExecutionEnvironment *executionEnvironment, uint32_t deviceIndex, uint32_t subDeviceIndex, RootDevice &rootDevice) : Device(executionEnvironment, deviceIndex), subDeviceIndex(subDeviceIndex), rootDevice(rootDevice) {}
void SubDevice::retain() {
rootDevice.incRefInternal();
Device::retain();
};
unique_ptr_if_unused<Device> SubDevice::release() {
rootDevice.decRefInternal();
return Device::release();
};
void SubDevice::retainInternal() {
rootDevice.incRefInternal();
}
void SubDevice::releaseInternal() {
rootDevice.decRefInternal();
}
DeviceBitfield SubDevice::getDeviceBitfieldForOsContext() const {
DeviceBitfield deviceBitfield;
deviceBitfield.set(subDeviceIndex);
return deviceBitfield;
}
uint32_t SubDevice::getNumAvailableDevices() const {
return 1u;
}
uint32_t SubDevice::getRootDeviceIndex() const {
return this->rootDevice.getRootDeviceIndex();
}
Device *SubDevice::getDeviceById(uint32_t deviceId) const {
UNRECOVERABLE_IF(deviceId >= getNumAvailableDevices());
return const_cast<SubDevice *>(this);
}
} // namespace NEO