This document summarizes the notable changes introduced in OpenVX 1.3.2 relative to OpenVX 1.3.1.

API Additions

  • Added new error code VX_ERROR_TIMEOUT for operations that do not complete within an expected duration.

  • Added new error code VX_ERROR_GRAPH_NOT_VERIFIED for graphs that have not yet been verified.

  • Added VX_DF_IMAGE_RGBA image format with RGBA[4] member in vx_pixel_value_t.

  • Added VX_KERNEL_MAX_1_3 for conformance test bounds checking.

  • Added VX_ID_BOSCH vendor ID for Robert Bosch GmbH.

API Behavioral Changes

  • vxCreateVirtualObjectArray: Broadened allowed exemplar types — only vx_object_array and vx_convolution are now disallowed (previously limited to vx_image, vx_array, and vx_pyramid).

  • vxRegisterUserStruct / vxRegisterUserStructWithName: User structs can now also be used with vx_scalar (previously only vx_array).

  • vxCreateLUT / vxCreateVirtualLUT: Removed restrictive upper bounds on count parameter.

  • VX_GRAPH_STATE: Marked as a read-only attribute.

  • vxHalfScaleGaussianNode / vxuHalfScaleGaussian: Added VX_DF_IMAGE_U1 support for input and output.

API Signature Fixes

  • vxAddUserKernel: Changed name parameter from fixed-size array to const vx_char *name to fix compiler warnings.

  • All vxUnmap* functions: Changed map_id parameter to const vx_map_id and corrected its direction from [out] to [in] (vxUnmapImagePatch, vxUnmapLUT, vxUnmapDistribution, vxUnmapRemapPatch, vxUnmapArrayRange).

Error Reporting Improvements

  • Added VX_ERROR_NOT_SUPPORTED return value to all vxSet*Attribute APIs for read-only attributes (vxSetImageAttribute, vxSetKernelAttribute, vxSetGraphAttribute, vxSetNodeAttribute, vxSetThresholdAttribute, vxSetConvolutionAttribute).

  • Added VX_ERROR_NO_MEMORY return value to all vxCopy* and vxMap* framework APIs for internal allocation failures.

Bug Fixes

  • VX_PERF_INIT: Fixed initializer from 6 fields to 8 fields to match the vx_perf_t struct.

  • VX_KERNEL_MAX_1_0 / VX_KERNEL_MAX_1_1 / VX_KERNEL_MAX_1_2: Changed from auto-increment to explicit value assignment to prevent conformance test breakage when new kernels are added.

  • vxCopyImagePatch: Fixed stride constraint from stride_x >= pixel size to stride_x = pixel size (no gaps allowed).

  • vxQueryMetaFormatAttribute: Fixed duplicate VX_THRESHOLD_INPUT_FORMAT — corrected second instance to VX_THRESHOLD_OUTPUT_FORMAT.

  • vxGetUserStructNameByEnum: Fixed parameter documentation — [in] parameter corrected from type_name to user_struct_type.

  • VX_ENUM_SCALAR_OPERATION: Fixed hex literal from 0X20 to 0x20.

  • TensorConvertDepth: Fixed output description from "input tensor data type" to "output tensor data type"; added missing VX_TYPE_INT8 as supported output type.

Image Patch and U1 Image Clarifications

  • vx_imagepatch_addressing_t: Added stride_x constraint — must equal the exact byte size of the data type when contained in whole bytes.

  • vxCreateImageFromHandle: Clarified that stride_x_bits is required for VX_DF_IMAGE_U1 images.

  • vxCreateImageFromROI: Added restriction that start_x must be a multiple of 8 for VX_DF_IMAGE_U1 images.

  • Enhanced documentation for VX_DF_IMAGE_U1 pixel addressing in vxFormatImagePatchAddress1d, vxFormatImagePatchAddress2d, vxGetValidRegionImage, vxCopyImagePatch, and vxMapImagePatch.

Terminology Standardization

  • Replaced all instances of "undefined" behavior with "implementation-defined" across the entire specification for clarity and consistency.

  • Standardized "implementation-dependent" to "implementation-defined" throughout.

  • Standardized all spelling from British English to American English (e.g., "normalised" → "normalized", "centred" → "centered").

Documentation Quality

  • Consistently documented output image dimension and format constraints across all node and immediate mode functions in vx_nodes.h and vxu.h.

  • Added missing VX_SUCCESS return values and standardized \retval formatting across all framework APIs.

  • Fixed numerous typos, grammar errors, and broken cross-references throughout all header files.