TIOVX User Guide

Detailed Description

APIs for adding BAM supernode support to DSP target kernel plugins.

Typedefs

typedef vx_status(VX_CALLBACKtivx_target_kernel_create_in_bam_graph_f) (tivx_target_kernel_instance kernel, tivx_obj_desc_t *obj_desc[], uint16_t num_params, void *priv_arg, BAM_NodeParams node_list[], tivx_bam_kernel_details_t kernel_details[], int32_t *bam_node_cnt, void *scratch, int32_t *size)
 The "create in bam graph" target kernel callback. More...
 
typedef vx_status(VX_CALLBACKtivx_target_kernel_get_node_port_f) (tivx_target_kernel_instance kernel, uint8_t ovx_port, uint8_t plane, uint8_t *bam_node, uint8_t *bam_port)
 The "get node port" target kernel callback. More...
 
typedef vx_status(VX_CALLBACKtivx_target_kernel_append_internal_edges_f) (tivx_target_kernel_instance kernel, BAM_EdgeParams edge_list[], int32_t *bam_edge_cnt)
 The "append internal edges" target kernel callback This callback is optional and only needs to be implemented if the node has more than one BAM kernel inside it. In this case, the node needs to append the internal edges to the overal BAM graph edge list. More...
 
typedef vx_status(VX_CALLBACKtivx_target_kernel_pre_post_process_f) (tivx_target_kernel_instance kernel, tivx_obj_desc_t *obj_desc[], uint16_t num_params, tivx_bam_graph_handle *graph_handle, void *priv_arg)
 The "create in bam graph" target kernel callback. More...
 

Functions

VX_API_ENTRY vx_status VX_API_CALL tivxEnableKernelForSuperNode (tivx_target_kernel target_kernel, tivx_target_kernel_create_in_bam_graph_f create_in_bam_func, tivx_target_kernel_get_node_port_f get_node_port_func, tivx_target_kernel_append_internal_edges_f append_internal_edges_func, tivx_target_kernel_pre_post_process_f preprocess_func, tivx_target_kernel_pre_post_process_f postprocess_func, int32_t kernel_params_size, void *priv_arg)
 Allows users to support kernel as part of super node. More...
 

Typedef Documentation

◆ tivx_target_kernel_create_in_bam_graph_f

typedef vx_status(VX_CALLBACK * tivx_target_kernel_create_in_bam_graph_f) (tivx_target_kernel_instance kernel, tivx_obj_desc_t *obj_desc[], uint16_t num_params, void *priv_arg, BAM_NodeParams node_list[], tivx_bam_kernel_details_t kernel_details[], int32_t *bam_node_cnt, void *scratch, int32_t *size)

The "create in bam graph" target kernel callback.

Parameters
[in]kernelThe kernel for which the callback is called
[in]obj_descObject descriptor array passed as input to this callback
[in]num_params[]Number of parameters in the obj_desc[] array
[in]priv_argPrivate argument
[in,out]node_listPointer to array of nodes to be updated by callback
[in,out]kernel_detailsPointer to array of kernel_details to be updated by callback
[in,out]bam_node_cntNumber of bam nodes to be updated by callback
[in]scratchPointer to scratch memory requirement from node

Definition at line 412 of file tivx_bam_kernel_wrapper.h.

◆ tivx_target_kernel_get_node_port_f

typedef vx_status(VX_CALLBACK * tivx_target_kernel_get_node_port_f) (tivx_target_kernel_instance kernel, uint8_t ovx_port, uint8_t plane, uint8_t *bam_node, uint8_t *bam_port)

The "get node port" target kernel callback.

Parameters
[in]kernelThe kernel for which the callback is called
[in]ovx_portOpenVX node port number
[out]bam_nodeBAM node number corresponding to the OpenVX node
[out]bam_portBAM kernel port number corresponding to the OpenVX node number

Definition at line 432 of file tivx_bam_kernel_wrapper.h.

◆ tivx_target_kernel_append_internal_edges_f

typedef vx_status(VX_CALLBACK * tivx_target_kernel_append_internal_edges_f) (tivx_target_kernel_instance kernel, BAM_EdgeParams edge_list[], int32_t *bam_edge_cnt)

The "append internal edges" target kernel callback This callback is optional and only needs to be implemented if the node has more than one BAM kernel inside it. In this case, the node needs to append the internal edges to the overal BAM graph edge list.

Parameters
[in]kernelThe kernel for which the callback is called
[in,out]edge_listBAM graph edge list.
[in,out]bam_edge_cntNumber of edges in the edge list

Definition at line 449 of file tivx_bam_kernel_wrapper.h.

◆ tivx_target_kernel_pre_post_process_f

typedef vx_status(VX_CALLBACK * tivx_target_kernel_pre_post_process_f) (tivx_target_kernel_instance kernel, tivx_obj_desc_t *obj_desc[], uint16_t num_params, tivx_bam_graph_handle *graph_handle, void *priv_arg)

The "create in bam graph" target kernel callback.

Parameters
[in]kernelThe kernel for which the callback is called
[in]obj_descObject descriptor array passed as input to this callback
[in]num_params[]Number of parameters in the obj_desc[] array
[in,out]graphhandle from the supernode
[in]priv_argprivate argument

Definition at line 463 of file tivx_bam_kernel_wrapper.h.

Function Documentation

◆ tivxEnableKernelForSuperNode()

VX_API_ENTRY vx_status VX_API_CALL tivxEnableKernelForSuperNode ( tivx_target_kernel  target_kernel,
tivx_target_kernel_create_in_bam_graph_f  create_in_bam_func,
tivx_target_kernel_get_node_port_f  get_node_port_func,
tivx_target_kernel_append_internal_edges_f  append_internal_edges_func,
tivx_target_kernel_pre_post_process_f  preprocess_func,
tivx_target_kernel_pre_post_process_f  postprocess_func,
int32_t  kernel_params_size,
void *  priv_arg 
)

Allows users to support kernel as part of super node.

This is intended to be run after adding the target kernel.

Parameters
[in]target_kernelThe kernel for which the callbacks are associated with
[in]create_in_bam_funcCallback for giving information needed by supernode to create BAM graph.
[in]get_node_port_funcCallback for translating OpenVX node ports to BAM ports.
[in]append_internal_edges_func(optional) Callback for appending internal edges to BAM edge list (if there are any)
[in]preprocess_func(optional) Callback for performing any processing before the BAM graph is called for each frame (if there is any)
[in]postprocess_func(optional) Callback for performing any processing after the BAM graph is called for each frame (if there is any)
[in]kernel_params_sizeSize in bytes of the kernel_params structure
[in]priv_arg(optional) Private arguments to pass to the create callback