OpenCV  4.6.0
Open Source Computer Vision
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
cv::ocl::ProgramSource Class Reference

#include <opencv2/core/ocl.hpp>

Public Types

typedef uint64 hash_t
 

Public Member Functions

 ProgramSource () CV_NOEXCEPT
 
 ProgramSource (const String &module, const String &name, const String &codeStr, const String &codeHash)
 
 ProgramSource (const String &prog)
 
 ProgramSource (const char *prog)
 
 ProgramSource (const ProgramSource &prog)
 
 ProgramSource (ProgramSource &&prog) CV_NOEXCEPT
 
 ~ProgramSource ()
 
bool empty () const
 
ImplgetImpl () const
 
hash_t hash () const
 
ProgramSourceoperator= (const ProgramSource &prog)
 
ProgramSourceoperator= (ProgramSource &&prog) CV_NOEXCEPT
 
const Stringsource () const
 

Static Public Member Functions

static ProgramSource fromBinary (const String &module, const String &name, const unsigned char *binary, const size_t size, const cv::String &buildOptions=cv::String())
 Describe OpenCL program binary. Do not call clCreateProgramWithBinary() and/or clBuildProgram(). More...
 
static ProgramSource fromSPIR (const String &module, const String &name, const unsigned char *binary, const size_t size, const cv::String &buildOptions=cv::String())
 Describe OpenCL program in SPIR format. Do not call clCreateProgramWithBinary() and/or clBuildProgram(). More...
 

Protected Attributes

Implp
 

Friends

struct Impl
 

Member Typedef Documentation

◆ hash_t

Constructor & Destructor Documentation

◆ ProgramSource() [1/6]

cv::ocl::ProgramSource::ProgramSource ( )

◆ ProgramSource() [2/6]

cv::ocl::ProgramSource::ProgramSource ( const String module,
const String name,
const String codeStr,
const String codeHash 
)
explicit

◆ ProgramSource() [3/6]

cv::ocl::ProgramSource::ProgramSource ( const String prog)
explicit

◆ ProgramSource() [4/6]

cv::ocl::ProgramSource::ProgramSource ( const char *  prog)
explicit

◆ ~ProgramSource()

cv::ocl::ProgramSource::~ProgramSource ( )

◆ ProgramSource() [5/6]

cv::ocl::ProgramSource::ProgramSource ( const ProgramSource prog)

◆ ProgramSource() [6/6]

cv::ocl::ProgramSource::ProgramSource ( ProgramSource &&  prog)

Member Function Documentation

◆ empty()

bool cv::ocl::ProgramSource::empty ( ) const
inline

◆ fromBinary()

static ProgramSource cv::ocl::ProgramSource::fromBinary ( const String module,
const String name,
const unsigned char *  binary,
const size_t  size,
const cv::String buildOptions = cv::String() 
)
static

Describe OpenCL program binary. Do not call clCreateProgramWithBinary() and/or clBuildProgram().

Caller should guarantee binary buffer lifetime greater than ProgramSource object (and any of its copies).

This kind of binary is not portable between platforms in general - it is specific to OpenCL vendor / device / driver version.

Parameters
modulename of program owner module
nameunique name of program (module+name is used as key for OpenCL program caching)
binarybuffer address. See buffer lifetime requirement in description.
sizebuffer size
buildOptionsadditional program-related build options passed to clBuildProgram()
Returns
created ProgramSource object

◆ fromSPIR()

static ProgramSource cv::ocl::ProgramSource::fromSPIR ( const String module,
const String name,
const unsigned char *  binary,
const size_t  size,
const cv::String buildOptions = cv::String() 
)
static

Describe OpenCL program in SPIR format. Do not call clCreateProgramWithBinary() and/or clBuildProgram().

Supports SPIR 1.2 by default (pass '-spir-std=X.Y' in buildOptions to override this behavior)

Caller should guarantee binary buffer lifetime greater than ProgramSource object (and any of its copies).

Programs in this format are portable between OpenCL implementations with 'khr_spir' extension: https://www.khronos.org/registry/OpenCL/sdk/2.0/docs/man/xhtml/cl_khr_spir.html (but they are not portable between different platforms: 32-bit / 64-bit)

Note: these programs can't support vendor specific extensions, like 'cl_intel_subgroups'.

Parameters
modulename of program owner module
nameunique name of program (module+name is used as key for OpenCL program caching)
binarybuffer address. See buffer lifetime requirement in description.
sizebuffer size
buildOptionsadditional program-related build options passed to clBuildProgram() (these options are added automatically: '-x spir' and '-spir-std=1.2')
Returns
created ProgramSource object.

◆ getImpl()

Impl* cv::ocl::ProgramSource::getImpl ( ) const
inline

◆ hash()

hash_t cv::ocl::ProgramSource::hash ( ) const

◆ operator=() [1/2]

ProgramSource& cv::ocl::ProgramSource::operator= ( const ProgramSource prog)

◆ operator=() [2/2]

ProgramSource& cv::ocl::ProgramSource::operator= ( ProgramSource &&  prog)

◆ source()

const String& cv::ocl::ProgramSource::source ( ) const

Friends And Related Function Documentation

◆ Impl

friend struct Impl
friend

Member Data Documentation

◆ p

Impl* cv::ocl::ProgramSource::p
protected

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