OpenVX 1.1 Specification: Vendor-specific implementation details broken down by section
Section 2.10.2: User Kernels Naming Conventions
TI's vendor ID is VX_ID_TI
TI user kernel strings begin with "com.ti"
TI user kernel enums begin with TIVX_KERNEL_
Section 2.12: Targets
TI's targets can be found at <TIOVX_PATH>/include/TI/tivx.h
Section 2.18.1: Extending Attributes
TI's vendor extension ID is VX_ID_TI
Section 2.18.2: Vendor Custom Kernels
Further documentation is provided for any custom kernel extension
Section 2.18.3: Vendor Custom extensions
TI does not currently support any custom extensions
Section 2.18.4: Hinting
TI does not currently support any custom hints
Additional specification interpretation beyond the scope of OpenVX 1.1 Specification:
Vendor Naming Conventions
TI's naming convention append "tivx" to the front of a given object. For example, a TI extension of the df_image_e is called "tivx_df_image_e".
TI's enumeration values append "TIVX" to the front of an enum. For example, a TI-specific target host is called TIVX_TARGET_HOST.
Context Creation
The TI Implementation of OpenVX supports the creation of a single context. Additional calls to vxCreateContext beyond the initial call simply return a reference to the initially created context.
Furthermore, the TIVX_CONTEXT_MAX_OBJECTS does not take effect. It merely provides the value of the amount of contexts that are allowed, namely 1.
Valid Region
The valid regions for each kernel are set prior to graph verification and restrictions to valid regions are propagated to downstream kernels during the initialize callbacks of each kernel.
After graph verification, the valid regions for each kernel have been set.
Therefore, following graph verification, changes to the valid region using vxSetImageValidRectangle must not be made.
Data Object Mapping
The following functions are used for mapping of specific data objects:
vxMapArrayRange
vxMapImagePatch
tivxMapTensorPatch
The types of mapping supported for these functions are the following:
VX_READ_ONLY
VX_READ_AND_WRITE
VX_WRITE_ONLY
The framework allows multiple mappings of the same region of a given data object.
Therefore, the user must be aware of the regions that have been mapped and the read/write privileges that each mapping has been granted.
Tensor Object
Each tensor is mapped to a single contiguous buffer, of size = stride[number_of_dimensions - 1U] * dimensions[number_of_dimensions - 1U]