class InferenceEngine::gpu::D3DSurface2DBlob

Overview

This class represents an abstraction for GPU plugin remote blob which is shared with Direct3D 11 2D texture. The plugin object derived from this class can be obtained with CreateBlob() call. More…

#include <gpu_context_api_dx.hpp>

class D3DSurface2DBlob: public InferenceEngine::gpu::ClImage2DBlob
{
public:
    // typedefs

    typedef std::shared_ptr<D3DSurface2DBlob> Ptr;

    // construction

    D3DSurface2DBlob(const TensorDesc& tensorDesc);

    // methods

    operator ID3D11Texture2D \* ();
    uint32_t plane();
};

Inherited Members

public:
    // typedefs

    typedef std::shared_ptr<Blob> Ptr;
    typedef std::shared_ptr<const Blob> CPtr;
    typedef std::shared_ptr<MemoryBlob> Ptr;
    typedef std::shared_ptr<const MemoryBlob> CPtr;
    typedef std::shared_ptr<RemoteBlob> Ptr;
    typedef std::shared_ptr<const RemoteBlob> CPtr;
    typedef std::shared_ptr<ClBlob> Ptr;
    typedef std::shared_ptr<ClImage2DBlob> Ptr;

    // methods

    static Ptr CreateFromData(const DataPtr& data);

    template <
        typename T,
        typename std::enable_if<!std::is_pointer<T>::value&&!std::is_reference<T>::value, int>::type = 0,
        typename std::enable_if<std::is_base_of<Blob, T>::value, int>::type = 0
        >
    bool is();

    template <
        typename T,
        typename std::enable_if<!std::is_pointer<T>::value&&!std::is_reference<T>::value, int>::type = 0,
        typename std::enable_if<std::is_base_of<Blob, T>::value, int>::type = 0
        >
    bool is() const;

    template <
        typename T,
        typename std::enable_if<!std::is_pointer<T>::value&&!std::is_reference<T>::value, int>::type = 0,
        typename std::enable_if<std::is_base_of<Blob, T>::value, int>::type = 0
        >
    T \* as();

    template <
        typename T,
        typename std::enable_if<!std::is_pointer<T>::value&&!std::is_reference<T>::value, int>::type = 0,
        typename std::enable_if<std::is_base_of<Blob, T>::value, int>::type = 0
        >
    const T \* as() const;

    virtual const TensorDesc& getTensorDesc() const;
    virtual TensorDesc& getTensorDesc();
    virtual size_t size() const;
    virtual size_t byteSize() const;
    virtual size_t element_size() const = 0;
    virtual void allocate() = 0;
    virtual bool deallocate() = 0;
    void setShape(const SizeVector& dims);
    virtual Blob::Ptr createROI(const ROI& roi) const;

    virtual Blob::Ptr createROI(
        const std::vector<std::size_t>& begin,
        const std::vector<std::size_t>& end
        ) const;

    virtual const TensorDesc& getTensorDesc() const;
    virtual TensorDesc& getTensorDesc();
    virtual size_t size() const;
    virtual size_t byteSize() const;
    virtual size_t element_size() const;
    virtual void allocate() = 0;
    virtual bool deallocate() = 0;
    virtual LockedMemory<void> rwmap() = 0;
    virtual LockedMemory<const void> rmap() const = 0;
    virtual LockedMemory<void> wmap() = 0;
    virtual ParamMap getParams() const = 0;
    virtual std::string getDeviceName() const = 0;
    virtual std::shared_ptr<RemoteContext> getContext() const = 0;
    cl_mem get();
    operator cl_mem ();
    operator cl::Image2D ();

Detailed Documentation

This class represents an abstraction for GPU plugin remote blob which is shared with Direct3D 11 2D texture. The plugin object derived from this class can be obtained with CreateBlob() call.

User can also obtain OpenCL 2D image handle from this class.

Typedefs

typedef std::shared_ptr<D3DSurface2DBlob> Ptr

A smart pointer to the D3DSurface2DBlob object.

Construction

D3DSurface2DBlob(const TensorDesc& tensorDesc)

Creates a D3DSurface2DBlob object with the specified dimensions and layout.

Parameters:

tensorDesc

Tensor description

Methods

operator ID3D11Texture2D \* ()

ID3D11Texture2D conversion operator for the D3DContext object.

Returns:

Pointer to underlying ID3D11Texture2D interface

uint32_t plane()

Returns plane ID of underlying video decoder surface, or 0 if no video surface was shared.

Returns:

Plane ID