TIOVX User Guide
tivx_ext_super_node.h
Go to the documentation of this file.
1 /*
2 *
3 * Copyright (c) 2019 Texas Instruments Incorporated
4 *
5 * All rights reserved not granted herein.
6 *
7 * Limited License.
8 *
9 * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10 * license under copyrights and patents it now or hereafter owns or controls to make,
11 * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12 * terms herein. With respect to the foregoing patent license, such license is granted
13 * solely to the extent that any such patent is necessary to Utilize the software alone.
14 * The patent license shall not apply to any combinations which include this software,
15 * other than combinations with devices manufactured by or for TI ("TI Devices").
16 * No hardware patent is licensed hereunder.
17 *
18 * Redistributions must preserve existing copyright notices and reproduce this license
19 * (including the above copyright notice and the disclaimer and (if applicable) source
20 * code license limitations below) in the documentation and/or other materials provided
21 * with the distribution
22 *
23 * Redistribution and use in binary form, without modification, are permitted provided
24 * that the following conditions are met:
25 *
26 * * No reverse engineering, decompilation, or disassembly of this software is
27 * permitted with respect to any software provided in binary form.
28 *
29 * * any redistribution and use are licensed by TI for use only with TI Devices.
30 *
31 * * Nothing shall obligate TI to provide you with source code for the software
32 * licensed and provided to you in object code.
33 *
34 * If software source code is provided to you, modification and redistribution of the
35 * source code are permitted provided that the following conditions are met:
36 *
37 * * any redistribution and use of the source code, including any resulting derivative
38 * works, are licensed by TI for use only with TI Devices.
39 *
40 * * any redistribution and use of any object code compiled from the source code
41 * and any resulting derivative works, are licensed by TI for use only with TI Devices.
42 *
43 * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44 *
45 * may be used to endorse or promote products derived from this software without
46 * specific prior written permission.
47 *
48 * DISCLAIMER.
49 *
50 * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53 * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59 * OF THE POSSIBILITY OF SUCH DAMAGE.
60 *
61 */
62 
63 #ifndef TIVX_EXT_SUPER_NODE_H_
64 #define TIVX_EXT_SUPER_NODE_H_
65 
77 #define TIVX_SUPER_NODE "tivx_super_node"
78 
79 #include <VX/vx.h>
80 #include <TI/tivx.h>
81 
82 #ifdef __cplusplus
83 extern "C" {
84 #endif
85 
89 #define TIVX_TYPE_SUPER_NODE 0x818
91 #define TIVX_KERNEL_SUPERNODE VX_KERNEL_BASE(VX_ID_TI, TIVX_LIBRARY_EXTENSION_BASE) + 0x0
92 
96 typedef struct _tivx_super_node * tivx_super_node;
97 
115 };
116 
154  vx_node nodes[], uint32_t num_nodes);
155 
166 
184  vx_enum attribute,
185  void *ptr,
186  vx_size size);
187 
203  vx_enum target_enum,
204  const char* target_string);
205 
216  vx_uint32 block_width,
217  vx_uint32 block_height);
218 
219 #ifdef __cplusplus
220 }
221 #endif
222 
223 #endif
Queries the status of the super node execution. Read-only. Use a vx_status parameter.
Interface to TI extension APIs.
VX_API_ENTRY tivx_super_node VX_API_CALL tivxCreateSuperNode(vx_graph graph, vx_node nodes[], uint32_t num_nodes)
Creates a reference to a super node object.
size_t vx_size
VX_API_ENTRY vx_status VX_API_CALL tivxQuerySuperNode(tivx_super_node super_node, vx_enum attribute, void *ptr, vx_size size)
Queries the super node for some specific information.
int32_t vx_enum
VX_ID_TI
vx_enum vx_status
VX_API_ENTRY vx_status VX_API_CALL tivxSetSuperNodeTileSize(tivx_super_node super_node, vx_uint32 block_width, vx_uint32 block_height)
Sets the tile size for a given supernode in a graph. This is only valid for BAM-enabled kernels on C6...
VX_API_ENTRY vx_status VX_API_CALL tivxSetSuperNodeTarget(tivx_super_node super_node, vx_enum target_enum, const char *target_string)
Sets the super node target to the provided value. A success invalidates the graph that the super node...
tivx_super_node_attribute_e
The super node attributes.
#define VX_ATTRIBUTE_BASE(vendor, object)
struct _tivx_super_node * tivx_super_node
The Super Node Framework Object. Super Node is a strongly-typed container for connected nodes...
uint32_t vx_uint32
Queries the number of nodes in a super node. Read-only. Use a vx_uint32 parameter.
Queries the performance of the super node execution. The accuracy of timing information is platform d...
VX_API_ENTRY vx_status VX_API_CALL tivxReleaseSuperNode(tivx_super_node *super_node)
Releases a reference to a super node object. The object may not be garbage collected until its total ...
struct _vx_graph * vx_graph
struct _vx_node * vx_node
#define TIVX_TYPE_SUPER_NODE
The object type enumeration for super nodes.
Queries the target this super-node is run on. Read-only. Use a vx_char[] parameter of size TIVX_TARGE...
vx_status(* VX_API_CALL)(vx_reference *ref)
Callback type used to register release callbacks from object derived from references.
Definition: vx_reference.h:56