OpenCV 4.10.0-dev
Open Source Computer Vision
Loading...
Searching...
No Matches
cv::ocl::ProgramSource Class Reference

#include <opencv2/core/ocl.hpp>

Collaboration diagram for cv::ocl::ProgramSource:

Public Types

typedef uint64 hash_t
 

Public Member Functions

 ProgramSource () CV_NOEXCEPT
 
 ProgramSource (const char *prog)
 
 ProgramSource (const ProgramSource &prog)
 
 ProgramSource (const String &module, const String &name, const String &codeStr, const String &codeHash)
 
 ProgramSource (const String &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().
 
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().
 

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 Symbol 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: