Pass platform to ClDevice
Related-To: NEO-4207 Change-Id: I1c70d209df2b378573a41fa991ab594746691adb Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
parent
e0fe796115
commit
0a0b1ce1d8
|
@ -13,15 +13,15 @@
|
|||
|
||||
namespace NEO {
|
||||
|
||||
ClDevice::ClDevice(Device &device) : device(device), platformId(platform()) {
|
||||
ClDevice::ClDevice(Device &device, Platform *platform) : device(device), platformId(platform) {
|
||||
device.incRefInternal();
|
||||
initializeCaps();
|
||||
|
||||
auto numAvailableDevices = device.getNumAvailableDevices();
|
||||
if (numAvailableDevices > 1) {
|
||||
for (uint32_t i = 0; i < numAvailableDevices; i++) {
|
||||
subDevices.push_back(std::make_unique<ClDevice>(*device.getDeviceById(i)));
|
||||
platform()->clDeviceMap.emplace(device.getDeviceById(i), subDevices[i].get());
|
||||
subDevices.push_back(std::make_unique<ClDevice>(*device.getDeviceById(i), platform));
|
||||
platform->clDeviceMap.emplace(device.getDeviceById(i), subDevices[i].get());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,7 @@ struct EngineControl;
|
|||
struct HardwareCapabilities;
|
||||
struct HardwareInfo;
|
||||
struct RootDeviceEnvironment;
|
||||
class Platform;
|
||||
|
||||
template <>
|
||||
struct OpenCLObjectMapper<_cl_device_id> {
|
||||
|
@ -42,7 +43,7 @@ class ClDevice : public BaseObject<_cl_device_id> {
|
|||
ClDevice &operator=(const ClDevice &) = delete;
|
||||
ClDevice(const ClDevice &) = delete;
|
||||
|
||||
explicit ClDevice(Device &device);
|
||||
explicit ClDevice(Device &device, Platform *platformId);
|
||||
~ClDevice() override;
|
||||
|
||||
unsigned int getEnabledClVersion() const; //CL
|
||||
|
|
|
@ -160,7 +160,7 @@ bool Platform::initialize() {
|
|||
DEBUG_BREAK_IF(!pDevice);
|
||||
ClDevice *pClDevice = nullptr;
|
||||
if (pDevice) {
|
||||
pClDevice = new ClDevice{*pDevice};
|
||||
pClDevice = new ClDevice{*pDevice, this};
|
||||
}
|
||||
DEBUG_BREAK_IF(!pClDevice);
|
||||
if (pClDevice) {
|
||||
|
|
|
@ -167,7 +167,7 @@ TEST(clCreatePipeTest, givenPlatformWithoutDevicesWhenClCreatePipeIsCalledThenDe
|
|||
auto executionEnvironment = platform()->peekExecutionEnvironment();
|
||||
executionEnvironment->initializeMemoryManager();
|
||||
executionEnvironment->prepareRootDeviceEnvironments(1);
|
||||
auto device = std::make_unique<ClDevice>(*Device::create<RootDevice>(executionEnvironment, 0u));
|
||||
auto device = std::make_unique<ClDevice>(*Device::create<RootDevice>(executionEnvironment, 0u), platform());
|
||||
const DeviceInfo &devInfo = device->getDeviceInfo();
|
||||
if (devInfo.svmCapabilities == 0) {
|
||||
GTEST_SKIP();
|
||||
|
|
|
@ -74,7 +74,7 @@ TEST(clGetSupportedImageFormatsTest, givenPlatformWithoutDevicesWhenClGetSupport
|
|||
auto executionEnvironment = platform()->peekExecutionEnvironment();
|
||||
executionEnvironment->initializeMemoryManager();
|
||||
executionEnvironment->prepareRootDeviceEnvironments(1);
|
||||
auto device = std::make_unique<ClDevice>(*Device::create<RootDevice>(executionEnvironment, 0u));
|
||||
auto device = std::make_unique<ClDevice>(*Device::create<RootDevice>(executionEnvironment, 0u), platform());
|
||||
const DeviceInfo &devInfo = device->getDeviceInfo();
|
||||
if (!devInfo.imageSupport) {
|
||||
GTEST_SKIP();
|
||||
|
|
|
@ -41,7 +41,7 @@ TEST(clSVMAllocTest, givenPlatformWithoutDevicesWhenClSVMAllocIsCalledThenDevice
|
|||
executionEnvironment->initializeMemoryManager();
|
||||
executionEnvironment->prepareRootDeviceEnvironments(1);
|
||||
auto device = Device::create<RootDevice>(executionEnvironment, 0u);
|
||||
auto clDevice = std::make_unique<ClDevice>(*device);
|
||||
auto clDevice = std::make_unique<ClDevice>(*device, platform());
|
||||
const DeviceInfo &devInfo = device->getDeviceInfo();
|
||||
if (devInfo.svmCapabilities == 0) {
|
||||
GTEST_SKIP();
|
||||
|
|
|
@ -171,7 +171,7 @@ TEST(SyncBufferHandlerDeviceTest, GivenRootDeviceWhenAllocateSyncBufferIsCalledT
|
|||
TEST(SyncBufferHandlerDeviceTest, GivenSubDeviceWhenAllocateSyncBufferIsCalledTwiceThenTheObjectIsCreatedOnlyOnce) {
|
||||
const size_t testUsedBufferSize = 100;
|
||||
MockClDevice rootDevice{new MockDevice};
|
||||
ClDevice subDevice{*rootDevice.createSubDevice(0)};
|
||||
ClDevice subDevice{*rootDevice.createSubDevice(0), platform()};
|
||||
subDevice.allocateSyncBufferHandler();
|
||||
auto syncBufferHandler = reinterpret_cast<MockSyncBufferHandler *>(subDevice.syncBufferHandler.get());
|
||||
|
||||
|
|
|
@ -129,7 +129,7 @@ INSTANTIATE_TEST_CASE_P(
|
|||
struct GetDeviceInfoForImage : public GetDeviceInfoSize {};
|
||||
|
||||
TEST_P(GetDeviceInfoForImage, imageInfoSizeIsValid) {
|
||||
auto device = std::make_unique<ClDevice>(*MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr));
|
||||
auto device = std::make_unique<ClDevice>(*MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr), platform());
|
||||
if (!device->getDeviceInfo().imageSupport) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ TEST_P(GetDeviceInfoForImage, imageInfoSizeIsValid) {
|
|||
}
|
||||
|
||||
TEST_P(GetDeviceInfoForImage, whenImageAreNotSupportedThenClInvalidValueIsReturned) {
|
||||
auto device = std::make_unique<ClDevice>(*MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr));
|
||||
auto device = std::make_unique<ClDevice>(*MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr), platform());
|
||||
if (device->getDeviceInfo().imageSupport) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
@ -161,7 +161,7 @@ TEST_P(GetDeviceInfoForImage, whenImageAreNotSupportedThenClInvalidValueIsReturn
|
|||
}
|
||||
|
||||
TEST_P(GetDeviceInfoForImage, givenInfoImageParamsWhenCallGetDeviceInfoForImageThenSizeIsValidAndTrueReturned) {
|
||||
auto device = std::make_unique<ClDevice>(*MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr));
|
||||
auto device = std::make_unique<ClDevice>(*MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr), platform());
|
||||
size_t srcSize = 0;
|
||||
size_t retSize = 0;
|
||||
const void *src = nullptr;
|
||||
|
@ -177,7 +177,7 @@ TEST_P(GetDeviceInfoForImage, givenInfoImageParamsWhenCallGetDeviceInfoForImageT
|
|||
}
|
||||
|
||||
TEST(GetDeviceInfoForImage, givenNotImageParamWhenCallGetDeviceInfoForImageThenSizeIsNotValidAndFalseReturned) {
|
||||
auto device = std::make_unique<ClDevice>(*MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr));
|
||||
auto device = std::make_unique<ClDevice>(*MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr), platform());
|
||||
size_t srcSize = 0;
|
||||
size_t retSize = 0;
|
||||
const void *src = nullptr;
|
||||
|
|
|
@ -395,7 +395,7 @@ struct UpdateEventTest : public ::testing::Test {
|
|||
memoryManager = new MockMemoryManager(*executionEnvironment);
|
||||
hostPtrManager = static_cast<MockHostPtrManager *>(memoryManager->getHostPtrManager());
|
||||
executionEnvironment->memoryManager.reset(memoryManager);
|
||||
device.reset(new ClDevice{*Device::create<RootDevice>(executionEnvironment, 0u)});
|
||||
device.reset(new ClDevice{*Device::create<RootDevice>(executionEnvironment, 0u), platform()});
|
||||
context = std::make_unique<MockContext>(device.get());
|
||||
cl_int retVal = CL_OUT_OF_RESOURCES;
|
||||
commandQueue.reset(CommandQueue::create(context.get(), device.get(), nullptr, retVal));
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace NEO {
|
|||
void DeviceInstrumentationFixture::SetUp(bool instrumentation) {
|
||||
ExecutionEnvironment *executionEnvironment = getExecutionEnvironmentImpl(hwInfo, 1);
|
||||
hwInfo->capabilityTable.instrumentationEnabled = instrumentation;
|
||||
device = std::make_unique<ClDevice>(*Device::create<RootDevice>(executionEnvironment, 0));
|
||||
device = std::make_unique<ClDevice>(*Device::create<RootDevice>(executionEnvironment, 0), platform());
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
|
|
@ -24,7 +24,7 @@ decltype(&createCommandStream) MockDevice::createCommandStreamReceiverFunc = cre
|
|||
decltype(&createCommandStream) &MockClDevice::createCommandStreamReceiverFunc = MockDevice::createCommandStreamReceiverFunc;
|
||||
|
||||
MockClDevice::MockClDevice(MockDevice *pMockDevice)
|
||||
: ClDevice(*pMockDevice), device(*pMockDevice), deviceInfo(pMockDevice->deviceInfo),
|
||||
: ClDevice(*pMockDevice, platform()), device(*pMockDevice), deviceInfo(pMockDevice->deviceInfo),
|
||||
executionEnvironment(pMockDevice->executionEnvironment),
|
||||
subdevices(pMockDevice->subdevices), mockMemoryManager(pMockDevice->mockMemoryManager), engines(pMockDevice->engines) {
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ TEST(DeviceOsTest, GivenDefaultDeviceWhenCheckingForOsSpecificExtensionsThenCorr
|
|||
TEST(DeviceOsTest, GivenDefaultClDeviceWhenCheckingForOsSpecificExtensionsThenCorrectExtensionsAreSet) {
|
||||
auto hwInfo = *platformDevices;
|
||||
auto pDevice = MockDevice::createWithNewExecutionEnvironment<Device>(hwInfo);
|
||||
auto pClDevice = new ClDevice{*pDevice};
|
||||
auto pClDevice = new ClDevice{*pDevice, platform()};
|
||||
|
||||
std::string extensionString(pClDevice->getDeviceInfo().deviceExtensions);
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ TEST(DeviceOsTest, GivenDefaultDeviceWhenCheckingForOsSpecificExtensionsThenCorr
|
|||
TEST(DeviceOsTest, GivenDefaultClDeviceWhenCheckingForOsSpecificExtensionsThenCorrectExtensionsAreSet) {
|
||||
auto hwInfo = *platformDevices;
|
||||
auto pDevice = MockDevice::createWithNewExecutionEnvironment<Device>(hwInfo);
|
||||
auto pClDevice = new ClDevice{*pDevice};
|
||||
auto pClDevice = new ClDevice{*pDevice, platform()};
|
||||
|
||||
std::string extensionString(pClDevice->getDeviceInfo().deviceExtensions);
|
||||
|
||||
|
|
Loading…
Reference in New Issue