mirror of
https://github.com/intel/compute-runtime.git
synced 2025-06-28 17:58:30 +08:00

For all of the devices, preferredPlatformName is initialized with nullptr by default and platform name will be initialized to driver's default platform name, at the moment this is "Intel(R) OpenCL Graphics". When Platform is initialized and preferredPlatformName is not nullptr then Platform name will be set to the value stored in preferredPlatformName. Add ENABLE_LEGACY_PLATFORM_NAME AIL enum related to added functionality. Move PlatformInfo to NEO namespace. Related-To: HSD-22018809561 Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
79 lines
2.1 KiB
C++
79 lines
2.1 KiB
C++
/*
|
|
* Copyright (C) 2018-2023 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
#include "shared/source/helpers/common_types.h"
|
|
|
|
#include "opencl/source/api/cl_types.h"
|
|
#include "opencl/source/cl_device/cl_device_vector.h"
|
|
#include "opencl/source/helpers/base_object.h"
|
|
|
|
#include <mutex>
|
|
#include <vector>
|
|
|
|
namespace NEO {
|
|
|
|
class CompilerInterface;
|
|
class Device;
|
|
class ExecutionEnvironment;
|
|
class GmmHelper;
|
|
class GmmClientContext;
|
|
struct PlatformInfo;
|
|
struct HardwareInfo;
|
|
|
|
template <>
|
|
struct OpenCLObjectMapper<_cl_platform_id> {
|
|
typedef class Platform DerivedType;
|
|
};
|
|
|
|
class Platform : public BaseObject<_cl_platform_id> {
|
|
public:
|
|
static const cl_ulong objectMagic = 0x8873ACDEF2342133LL;
|
|
|
|
Platform(ExecutionEnvironment &executionEnvironment);
|
|
~Platform() override;
|
|
|
|
Platform(const Platform &) = delete;
|
|
Platform &operator=(Platform const &) = delete;
|
|
|
|
cl_int getInfo(cl_platform_info paramName,
|
|
size_t paramValueSize,
|
|
void *paramValue,
|
|
size_t *paramValueSizeRet);
|
|
|
|
MOCKABLE_VIRTUAL bool initialize(std::vector<std::unique_ptr<Device>> devices);
|
|
bool isInitialized();
|
|
void tryNotifyGtpinInit();
|
|
|
|
size_t getNumDevices() const;
|
|
ClDevice **getClDevices();
|
|
ClDevice *getClDevice(size_t deviceOrdinal);
|
|
|
|
const PlatformInfo &getPlatformInfo() const;
|
|
ExecutionEnvironment *peekExecutionEnvironment() const { return &executionEnvironment; }
|
|
|
|
static std::unique_ptr<Platform> (*createFunc)(ExecutionEnvironment &executionEnvironment);
|
|
static std::vector<DeviceVector> groupDevices(DeviceVector devices);
|
|
|
|
protected:
|
|
enum {
|
|
StateNone,
|
|
StateIniting,
|
|
StateInited,
|
|
};
|
|
cl_uint state = StateNone;
|
|
void fillGlobalDispatchTable();
|
|
std::unique_ptr<PlatformInfo> platformInfo;
|
|
ClDeviceVector clDevices;
|
|
ExecutionEnvironment &executionEnvironment;
|
|
std::once_flag initializeExtensionsWithVersionOnce;
|
|
std::once_flag oclInitGTPinOnce;
|
|
};
|
|
|
|
extern std::vector<std::unique_ptr<Platform>> *platformsImpl;
|
|
} // namespace NEO
|