21 inline namespace _V1 {
41 const std::shared_ptr<plugin> &APlugin)
42 : MPlatform(APlatform), MPlugin(APlugin) {
81 template <
typename Param>
typename Param::return_type
get_info()
const;
86 template <
typename Param>
94 const char **backend_option)
const {
98 MPlatform, frontend_option, backend_option);
99 Plugin->checkPiResult(Err);
103 cl_platform_id
get()
const {
return pi::cast<cl_platform_id>(MPlatform); }
148 bool has(aspect Aspect)
const;
156 std::shared_ptr<device_impl>
168 std::shared_ptr<device_impl>
170 const std::shared_ptr<platform_impl> &PlatformImpl);
179 static std::shared_ptr<platform_impl>
192 static std::shared_ptr<platform_impl>
201 std::shared_ptr<device_impl>
205 template <
typename ListT,
typename FilterT>
207 filterDeviceFilter(std::vector<sycl::detail::pi::PiDevice> &PiDevices,
208 ListT *FilterList)
const;
214 std::vector<std::weak_ptr<device_impl>> MDeviceCache;
215 std::mutex MDeviceMapMutex;
::pi_platform_backend PiPlatformBackend
backend convertBackend(pi_platform_backend PiBackend)
std::shared_ptr< plugin > PluginPtr
uintptr_t pi_native_handle
@ PI_EXT_PLATFORM_INFO_BACKEND
pi_result piPluginGetBackendOption(pi_platform platform, const char *frontend_option, const char **backend_option)
API to get backend specific option.
pi_result piPlatformGetInfo(pi_platform platform, pi_platform_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
C++ wrapper of extern "C" PI interfaces.