25 class AccessorBaseHost;
27 class DispatchHostTask;
43 __SYCL_EXPORT
backend get_backend()
const noexcept;
51 template <
backend Backend = backend::opencl,
typename DataT,
int Dims,
58 Target == access::target::constant_buffer,
59 "The method is available only for target::device accessors");
60 #ifndef __SYCL_DEVICE_ONLY__
61 if (Backend != get_backend())
62 throw invalid_object_error(
"Incorrect backend argument was passed",
63 PI_ERROR_INVALID_MEM_OBJECT);
65 return getMemImpl<Backend, DataT, Dims>(
86 template <backend Backend = backend::opencl>
88 #ifndef __SYCL_DEVICE_ONLY__
92 if (Backend != get_backend())
93 throw invalid_object_error(
"Incorrect backend argument was passed",
94 PI_ERROR_INVALID_MEM_OBJECT);
107 template <backend Backend = backend::opencl>
109 #ifndef __SYCL_DEVICE_ONLY__
113 if (Backend != get_backend())
114 throw invalid_object_error(
"Incorrect backend argument was passed",
115 PI_ERROR_INVALID_MEM_OBJECT);
129 template <backend Backend = backend::opencl>
131 #ifndef __SYCL_DEVICE_ONLY__
135 if (Backend != get_backend())
136 throw invalid_object_error(
"Incorrect backend argument was passed",
137 PI_ERROR_INVALID_MEM_OBJECT);
149 using ReqToMem = std::pair<detail::Requirement *, pi_mem>;
152 const std::shared_ptr<detail::queue_impl> &Queue,
153 const std::shared_ptr<detail::device_impl> &
Device,
154 const std::shared_ptr<detail::context_impl> &Context)
155 : MQueue(Queue), MDevice(
Device), MContext(Context),
156 MMemObjs(
std::move(MemObjs)) {}
158 template <backend Backend,
typename DataT,
int Dims>
161 std::vector<pi_native_handle> NativeHandles{getNativeMem(Req)};
162 return detail::BufferInterop<Backend, DataT, Dims>::GetNativeObjs(
171 std::shared_ptr<detail::queue_impl> MQueue;
172 std::shared_ptr<detail::device_impl> MDevice;
173 std::shared_ptr<detail::context_impl> MContext;
175 std::vector<ReqToMem> MMemObjs;