DPC++ Runtime
Runtime libraries for oneAPI DPC++
cl::sycl::detail::image_impl< Dimensions > Class Template Referencefinal

#include <CL/sycl/detail/image_impl.hpp>

Inheritance diagram for cl::sycl::detail::image_impl< Dimensions >:
Collaboration diagram for cl::sycl::detail::image_impl< Dimensions >:

Public Member Functions

 image_impl (image_channel_order Order, image_channel_type Type, const range< Dimensions > &ImageRange, std::unique_ptr< SYCLMemObjAllocator > Allocator, const property_list &PropList={})
 
template<bool B = (Dimensions > 1)>
 image_impl (image_channel_order Order, image_channel_type Type, const range< Dimensions > &ImageRange, const EnableIfPitchT< B > &Pitch, std::unique_ptr< SYCLMemObjAllocator > Allocator, const property_list &PropList={})
 
 image_impl (void *HData, image_channel_order Order, image_channel_type Type, const range< Dimensions > &ImageRange, std::unique_ptr< SYCLMemObjAllocator > Allocator, const property_list &PropList={})
 
 image_impl (const void *HData, image_channel_order Order, image_channel_type Type, const range< Dimensions > &ImageRange, std::unique_ptr< SYCLMemObjAllocator > Allocator, const property_list &PropList={})
 
template<bool B = (Dimensions > 1)>
 image_impl (void *HData, image_channel_order Order, image_channel_type Type, const range< Dimensions > &ImageRange, const EnableIfPitchT< B > &Pitch, std::unique_ptr< SYCLMemObjAllocator > Allocator, const property_list &PropList={})
 
 image_impl (std::shared_ptr< void > &HData, image_channel_order Order, image_channel_type Type, const range< Dimensions > &ImageRange, std::unique_ptr< SYCLMemObjAllocator > Allocator, const property_list &PropList={})
 
template<bool B = (Dimensions > 1)>
 image_impl (std::shared_ptr< void > &HData, image_channel_order Order, image_channel_type Type, const range< Dimensions > &ImageRange, const EnableIfPitchT< B > &Pitch, std::unique_ptr< SYCLMemObjAllocator > Allocator, const property_list &PropList={})
 
 image_impl (cl_mem MemObject, const context &SyclContext, event AvailableEvent, std::unique_ptr< SYCLMemObjAllocator > Allocator)
 
range< Dimensionsget_range () const
 
template<bool B = (Dimensions == 2)>
detail::enable_if_t< B, range< 1 > > get_pitch () const
 
template<bool B = (Dimensions == 3)>
detail::enable_if_t< B, range< 2 > > get_pitch () const
 
size_t get_count () const
 
size_t size () const noexcept
 
void * allocateMem (ContextImplPtr Context, bool InitFromUserData, void *HostPtr, RT::PiEvent &OutEventToWait) override
 
MemObjType getType () const override
 
size_t getElementSize () const
 
image_channel_order getChannelOrder () const
 
image_channel_type getChannelType () const
 
size_t getRowPitch () const
 
size_t getSlicePitch () const
 
 ~image_impl ()
 
- Public Member Functions inherited from cl::sycl::detail::SYCLMemObjT
 SYCLMemObjT (const size_t SizeInBytes, const property_list &Props, std::unique_ptr< SYCLMemObjAllocator > Allocator)
 
 SYCLMemObjT (const property_list &Props, std::unique_ptr< SYCLMemObjAllocator > Allocator)
 
 SYCLMemObjT (cl_mem MemObject, const context &SyclContext, const size_t SizeInBytes, event AvailableEvent, std::unique_ptr< SYCLMemObjAllocator > Allocator)
 
 SYCLMemObjT (pi_native_handle MemObject, const context &SyclContext, const size_t SizeInBytes, event AvailableEvent, std::unique_ptr< SYCLMemObjAllocator > Allocator)
 
 SYCLMemObjT (cl_mem MemObject, const context &SyclContext, event AvailableEvent, std::unique_ptr< SYCLMemObjAllocator > Allocator)
 
 SYCLMemObjT (pi_native_handle MemObject, const context &SyclContext, bool OwmNativeHandle, event AvailableEvent, std::unique_ptr< SYCLMemObjAllocator > Allocator)
 
virtual ~SYCLMemObjT ()=default
 
const plugingetPlugin () const
 
__SYCL_DLL_LOCAL size_t getSize () const override
 
 __SYCL2020_DEPRECATED ("get_count() is deprecated, please use size() instead") __SYCL_DLL_LOCAL size_t get_count() const
 
__SYCL_DLL_LOCAL size_t size () const noexcept
 
template<typename propertyT >
__SYCL_DLL_LOCAL bool has_property () const
 
template<typename propertyT >
__SYCL_DLL_LOCAL propertyT get_property () const
 
__SYCL_DLL_LOCAL void addOrReplaceAccessorProperties (const property_list &PropertyList)
 
__SYCL_DLL_LOCAL void deleteAccessorProperty (const PropWithDataKind &Kind)
 
template<typename AllocatorT >
__SYCL_DLL_LOCAL AllocatorT get_allocator () const
 
__SYCL_DLL_LOCAL void * allocateHostMem () override
 
__SYCL_DLL_LOCAL void releaseHostMem (void *Ptr) override
 
void releaseMem (ContextImplPtr Context, void *MemAllocation) override
 
__SYCL_DLL_LOCAL void * getUserPtr () const
 
__SYCL_DLL_LOCAL void set_write_back (bool NeedWriteBack)
 
__SYCL_DLL_LOCAL void set_final_data (std::nullptr_t)
 
template<template< typename T > class PtrT, typename T >
__SYCL_DLL_LOCAL enable_if_t< std::is_convertible< PtrT< T >, std::weak_ptr< T > >::value > set_final_data (PtrT< T > FinalData)
 
template<typename T >
__SYCL_DLL_LOCAL void set_final_data (std::weak_ptr< T > FinalData)
 
__SYCL_DLL_LOCAL void set_final_data_from_storage ()
 
template<typename Destination >
__SYCL_DLL_LOCAL EnableIfOutputPointerT< Destination > set_final_data (Destination FinalData)
 
template<typename Destination >
__SYCL_DLL_LOCAL EnableIfOutputIteratorT< Destination > set_final_data (Destination FinalData)
 
__SYCL_DLL_LOCAL bool useHostPtr ()
 
__SYCL_DLL_LOCAL bool canReuseHostPtr (void *HostPtr, const size_t RequiredAlign)
 
__SYCL_DLL_LOCAL void handleHostData (void *HostPtr, const size_t RequiredAlign)
 
__SYCL_DLL_LOCAL void handleHostData (const void *HostPtr, const size_t RequiredAlign)
 
template<typename T >
__SYCL_DLL_LOCAL void handleHostData (const std::shared_ptr< T > &HostPtr, const size_t RequiredAlign)
 
template<class InputIterator >
__SYCL_DLL_LOCAL void handleHostData (InputIterator First, InputIterator Last, const size_t RequiredAlign)
 
__SYCL_DLL_LOCAL void setAlign (size_t RequiredAlign)
 
__SYCL_DLL_LOCAL void * allocateMem (ContextImplPtr Context, bool InitFromUserData, void *HostPtr, RT::PiEvent &InteropEvent) override
 
__SYCL_DLL_LOCAL MemObjType getType () const override
 
ContextImplPtr getInteropContext () const override
 
bool hasUserDataPtr () const
 
bool isInterop () const
 
- Public Member Functions inherited from cl::sycl::detail::SYCLMemObjI
virtual ~SYCLMemObjI ()=default
 

Additional Inherited Members

- Public Types inherited from cl::sycl::detail::SYCLMemObjI
enum  MemObjType { Buffer = 0, Image = 1, Undefined = 2 }
 
- Static Public Member Functions inherited from cl::sycl::detail::SYCLMemObjT
static size_t getBufSizeForContext (const ContextImplPtr &Context, cl_mem MemObject)
 
static size_t getBufSizeForContext (const ContextImplPtr &Context, pi_native_handle MemObject)
 
- Protected Member Functions inherited from cl::sycl::detail::SYCLMemObjT
void updateHostMemory (void *const Ptr)
 
void updateHostMemory ()
 
void determineHostPtr (const ContextImplPtr &Context, bool InitFromUserData, void *&HostPtr, bool &HostPtrReadOnly)
 
- Protected Attributes inherited from cl::sycl::detail::SYCLMemObjT
std::unique_ptr< SYCLMemObjAllocatorMAllocator
 
property_list MProps
 
EventImplPtr MInteropEvent
 
ContextImplPtr MInteropContext
 
RT::PiMem MInteropMemObject
 
bool MOpenCLInterop
 
bool MHostPtrReadOnly
 
bool MNeedWriteBack
 
size_t MSizeInBytes
 
void * MUserPtr
 
void * MShadowCopy
 
std::function< void(void)> MUploadDataFunctor
 
std::shared_ptr< const void > MSharedPtrStorage
 
- Protected Attributes inherited from cl::sycl::detail::SYCLMemObjI
std::shared_ptr< MemObjRecordMRecord
 

Detailed Description

template<int Dimensions>
class cl::sycl::detail::image_impl< Dimensions >

Definition at line 70 of file image_impl.hpp.

Constructor & Destructor Documentation

◆ image_impl() [1/8]

template<int Dimensions>
cl::sycl::detail::image_impl< Dimensions >::image_impl ( image_channel_order  Order,
image_channel_type  Type,
const range< Dimensions > &  ImageRange,
std::unique_ptr< SYCLMemObjAllocator Allocator,
const property_list PropList = {} 
)
inline

Definition at line 103 of file image_impl.hpp.

◆ image_impl() [2/8]

template<int Dimensions>
template<bool B = (Dimensions > 1)>
cl::sycl::detail::image_impl< Dimensions >::image_impl ( image_channel_order  Order,
image_channel_type  Type,
const range< Dimensions > &  ImageRange,
const EnableIfPitchT< B > &  Pitch,
std::unique_ptr< SYCLMemObjAllocator Allocator,
const property_list PropList = {} 
)
inline

Definition at line 111 of file image_impl.hpp.

◆ image_impl() [3/8]

template<int Dimensions>
cl::sycl::detail::image_impl< Dimensions >::image_impl ( void *  HData,
image_channel_order  Order,
image_channel_type  Type,
const range< Dimensions > &  ImageRange,
std::unique_ptr< SYCLMemObjAllocator Allocator,
const property_list PropList = {} 
)
inline

Definition at line 119 of file image_impl.hpp.

◆ image_impl() [4/8]

template<int Dimensions>
cl::sycl::detail::image_impl< Dimensions >::image_impl ( const void *  HData,
image_channel_order  Order,
image_channel_type  Type,
const range< Dimensions > &  ImageRange,
std::unique_ptr< SYCLMemObjAllocator Allocator,
const property_list PropList = {} 
)
inline

Definition at line 131 of file image_impl.hpp.

◆ image_impl() [5/8]

template<int Dimensions>
template<bool B = (Dimensions > 1)>
cl::sycl::detail::image_impl< Dimensions >::image_impl ( void *  HData,
image_channel_order  Order,
image_channel_type  Type,
const range< Dimensions > &  ImageRange,
const EnableIfPitchT< B > &  Pitch,
std::unique_ptr< SYCLMemObjAllocator Allocator,
const property_list PropList = {} 
)
inline

Definition at line 144 of file image_impl.hpp.

◆ image_impl() [6/8]

template<int Dimensions>
cl::sycl::detail::image_impl< Dimensions >::image_impl ( std::shared_ptr< void > &  HData,
image_channel_order  Order,
image_channel_type  Type,
const range< Dimensions > &  ImageRange,
std::unique_ptr< SYCLMemObjAllocator Allocator,
const property_list PropList = {} 
)
inline

Definition at line 157 of file image_impl.hpp.

◆ image_impl() [7/8]

template<int Dimensions>
template<bool B = (Dimensions > 1)>
cl::sycl::detail::image_impl< Dimensions >::image_impl ( std::shared_ptr< void > &  HData,
image_channel_order  Order,
image_channel_type  Type,
const range< Dimensions > &  ImageRange,
const EnableIfPitchT< B > &  Pitch,
std::unique_ptr< SYCLMemObjAllocator Allocator,
const property_list PropList = {} 
)
inline

Definition at line 171 of file image_impl.hpp.

◆ image_impl() [8/8]

◆ ~image_impl()

template<int Dimensions>
cl::sycl::detail::image_impl< Dimensions >::~image_impl ( )
inline

Definition at line 229 of file image_impl.hpp.

Member Function Documentation

◆ allocateMem()

template<int Dimensions>
void * cl::sycl::detail::image_impl< Dimensions >::allocateMem ( ContextImplPtr  Context,
bool  InitFromUserData,
void *  HostPtr,
RT::PiEvent OutEventToWait 
)
overridevirtual

◆ get_count()

template<int Dimensions>
size_t cl::sycl::detail::image_impl< Dimensions >::get_count ( ) const
inline

Definition at line 208 of file image_impl.hpp.

◆ get_pitch() [1/2]

template<int Dimensions>
template<bool B = (Dimensions == 2)>
detail::enable_if_t<B, range<1> > cl::sycl::detail::image_impl< Dimensions >::get_pitch ( ) const
inline

Definition at line 194 of file image_impl.hpp.

◆ get_pitch() [2/2]

template<int Dimensions>
template<bool B = (Dimensions == 3)>
detail::enable_if_t<B, range<2> > cl::sycl::detail::image_impl< Dimensions >::get_pitch ( ) const
inline

Definition at line 202 of file image_impl.hpp.

◆ get_range()

template<int Dimensions>
range<Dimensions> cl::sycl::detail::image_impl< Dimensions >::get_range ( ) const
inline

Definition at line 189 of file image_impl.hpp.

◆ getChannelOrder()

template<int Dimensions>
image_channel_order cl::sycl::detail::image_impl< Dimensions >::getChannelOrder ( ) const
inline

Definition at line 221 of file image_impl.hpp.

◆ getChannelType()

template<int Dimensions>
image_channel_type cl::sycl::detail::image_impl< Dimensions >::getChannelType ( ) const
inline

Definition at line 223 of file image_impl.hpp.

◆ getElementSize()

template<int Dimensions>
size_t cl::sycl::detail::image_impl< Dimensions >::getElementSize ( ) const
inline

Definition at line 219 of file image_impl.hpp.

◆ getRowPitch()

template<int Dimensions>
size_t cl::sycl::detail::image_impl< Dimensions >::getRowPitch ( ) const
inline

Definition at line 225 of file image_impl.hpp.

◆ getSlicePitch()

template<int Dimensions>
size_t cl::sycl::detail::image_impl< Dimensions >::getSlicePitch ( ) const
inline

Definition at line 227 of file image_impl.hpp.

◆ getType()

template<int Dimensions>
MemObjType cl::sycl::detail::image_impl< Dimensions >::getType ( ) const
inlineoverridevirtual

Implements cl::sycl::detail::SYCLMemObjI.

Definition at line 214 of file image_impl.hpp.

◆ size()

template<int Dimensions>
size_t cl::sycl::detail::image_impl< Dimensions >::size ( ) const
inlinenoexcept

Definition at line 209 of file image_impl.hpp.


The documentation for this class was generated from the following files: