class ov::intel_gpu::ocl::D3DContext

Overview

This class represents an abstraction for GPU plugin remote context which is shared with Direct3D 11 device. The plugin object derived from this class can be obtained either with CompiledModel::get_context() or Core::create_context() calls. More…

#include <dx.hpp>

class D3DContext: public ov::intel_gpu::ocl::ClContext
{
public:
    // construction

    D3DContext(, , );

    // methods

    static voidconst RemoteContext& type_check();
    operator ID3D11Device \* ();

    std::pair<D3DSurface2DTensor, D3DSurface2DTensor>const size_tconst size_tID3D11Texture2D \* create_tensor_nv12(
        ,
        ,

        );

    D3DBufferTensorconst element::Typeconst Shape&ID3D11Buffer \* create_tensor(
        ,
        ,

        );

    D3DSurface2DTensorconst element::Typeconst Shape&ID3D11Texture2D \*uint32_t create_tensor(
        ,
        ,
        ,

        );

    ClBufferTensorconst element::Typeconst Shape&const cl_mem create_tensor(, , );

    ClBufferTensorconst element::Typeconst Shape&const cl::Buffer& create_tensor(
        ,
        ,

        );

    ClImage2DTensorconst element::Typeconst Shape&const cl::Image2D& create_tensor(
        ,
        ,

        );

    USMTensorconst element::Typeconst Shape&void \* create_tensor(, , );
};

Inherited Members

public:
    // methods

    RemoteContext&const RemoteContext& operator = ();
    RemoteContext&RemoteContext&& operator = ();
    operator bool () const;

    template <>
    bool is() const;

    template <>
    const T as() const;

    RemoteTensorconst element::Type&const Shape&const AnyMap& create_tensor(, , );
    AnyMap get_params() const;
    Tensorconst element::Typeconst Shape& create_host_tensor(, );

    static voidconst RemoteContext&const std::map<std::string, std::vector<std::string>>& type_check(
        ,

        );

    static voidconst RemoteContext& type_check();
    cl_context get();
    operator cl_context ();
    operator cl::Context ();

    std::pair<ClImage2DTensor, ClImage2DTensor>const cl::Image2D&const cl::Image2D& create_tensor_nv12(
        ,

        );

    ClBufferTensorconst element::Typeconst Shape&const cl_mem create_tensor(, , );

    ClBufferTensorconst element::Typeconst Shape&const cl::Buffer& create_tensor(
        ,
        ,

        );

    ClImage2DTensorconst element::Typeconst Shape&const cl::Image2D& create_tensor(
        ,
        ,

        );

    USMTensorconst element::Typeconst Shape&void \* create_tensor(, , );
    USMTensorconst element::Typeconst Shape& create_usm_host_tensor(, );
    USMTensorconst element::Typeconst Shape& create_usm_device_tensor(, );
    RemoteTensorconst element::Type&const Shape&const AnyMap& create_tensor(, , );

Detailed Documentation

This class represents an abstraction for GPU plugin remote context which is shared with Direct3D 11 device. The plugin object derived from this class can be obtained either with CompiledModel::get_context() or Core::create_context() calls.

User can also obtain OpenCL context handle from this class.

Construction

D3DContext(, , )

Constructs D3DContext remote context object from ID3D11Device.

Parameters:

core

OpenVINO Runtime Core object instance

device

A pointer to ID3D11Device to be used to create a remote context

target_tile_id

Desired tile id within given context for multi-tile system. Default value (-1) means that root device should be used

Methods

static voidconst RemoteContext& type_check()

Checks that type defined runtime parameters are presented in remote object.

Parameters:

remote_context

A remote context to check

operator ID3D11Device \* ()

ID3D11Device conversion operator for the D3DContext object.

Returns:

Pointer to underlying ID3D11Device interface

std::pair<D3DSurface2DTensor, D3DSurface2DTensor>const size_tconst size_tID3D11Texture2D \* create_tensor_nv12(
    ,
    ,

    )

This function is used to obtain a NV12 tensor from NV12 DXGI video decoder output. The resulting tensor contains two remote tensors for Y and UV planes of the surface.

Parameters:

height

Height of Y plane

width

Width of Y plane

nv12_surf

A ID3D11Texture2D instance to create NV12 tensor from

Returns:

A pair of remote tensors for each plane

D3DBufferTensorconst element::Typeconst Shape&ID3D11Buffer \* create_tensor(
    ,
    ,

    )

This function is used to obtain remote tensor object from ID3D11Buffer.

Parameters:

type

Tensor element type

shape

Tensor shape

buffer

A pointer to ID3D11Buffer instance to create remote tensor based on

Returns:

A remote tensor instance

D3DSurface2DTensorconst element::Typeconst Shape&ID3D11Texture2D \*uint32_t create_tensor(
    ,
    ,
    ,

    )

This function is used to obtain remote tensor object from ID3D11Texture2D.

The underlying ID3D11Texture2D can also be a plane of output surface of DXGI video decoder

Parameters:

type

Tensor element type

shape

Tensor shape

surface

Pointer to ID3D11Texture2D interface of the objects that owns NV12 texture

plane

ID of the plane to be shared (0 or 1)

Returns:

D3DSurface2DTensor tensor

ClBufferTensorconst element::Typeconst Shape&const cl_mem create_tensor(, , )

This function is used to obtain remote tensor object from user-supplied cl_mem object.

Parameters:

type

Tensor element type

shape

Tensor shape

buffer

A cl_mem object that should be wrapped by a remote tensor

Returns:

A remote tensor instance

ClBufferTensorconst element::Typeconst Shape&const cl::Buffer& create_tensor(
    ,
    ,

    )

This function is used to obtain remote tensor object from user-supplied cl::Buffer object.

Parameters:

type

Tensor element type

shape

Tensor shape

buffer

A cl::Buffer object that should be wrapped by a remote tensor

Returns:

A remote tensor instance

ClImage2DTensorconst element::Typeconst Shape&const cl::Image2D& create_tensor(
    ,
    ,

    )

This function is used to obtain remote tensor object from user-supplied cl::Image2D object.

Parameters:

type

Tensor element type

shape

Tensor shape

image

A cl::Image2D object that should be wrapped by a remote tensor

Returns:

A remote tensor instance

USMTensorconst element::Typeconst Shape&void \* create_tensor(, , )

This function is used to obtain remote tensor object from user-supplied USM pointer.

Parameters:

type

Tensor element type

shape

Tensor shape

usm_ptr

A USM pointer that should be wrapped by a remote tensor

Returns:

A remote tensor instance