Merged
Conversation
added 30 commits
April 12, 2026 15:33
- Was passing null as kernel, causing Graph.VirtualArray test to fail - Now looks up kernel by name and properly sets parameters
- vxFastCornersNode: Was passing null kernel, now looks up kernel by name - vxOpticalFlowPyrLKNode: Fixed parameter count to match kernel registration Graph.VirtualArray still failing on user kernel lookup (vxAddUserKernel)
- vxFastCornersNode: Now uses proper kernel lookup - vxOpticalFlowPyrLKNode: Fixed parameter count to 7 params - vxAddUserKernel: Now registers kernel in REFERENCE_TYPES as VX_TYPE_KERNEL - Removed debug eprintln! statements from execute_node
The mapped data pointer was being returned from a local Vec that gets dropped at the end of the function. Fixed by getting the pointer BEFORE moving the Vec into the HashMap. Also cleaned up vxUnmapArrayRange to avoid unsafe memory reconstruction.
- vxFastCornersNode: Now looks up kernel by name - vxOpticalFlowPyrLKNode: Fixed parameter count to 7 - vxAddUserKernel: Now registers with VX_TYPE_KERNEL type - vxGetParameterByIndex: Now syncs with node's parameters - dispatch_kernel_with_border: Added stub for user kernels - Removed debug eprintln! statements Remaining: User kernel execution needs kernel callback field in VxCUserKernel
- VXU arithmetic operations fixes - Image operation improvements - Color conversion enhancements (NV21, packed YUV support) Work in progress from multi-agent conformance effort.
- Added kernel function field to VxCUserKernel struct - Fixed vxAddUserKernel to accept kernel execution function - Made USER_KERNELS and VxCUserKernel fields public for access from c_api - vxCreateGenericNode now checks USER_KERNELS for num_params Graph.VirtualArray still failing - parameter 2 not being set correctly
…eryPyramid attribute constants
…_CONTEXT_IMMEDIATE_BORDER, vxQueryPyramid constants
…ng, fix signatures - HarrisCorners: num_params 7→8, use fixed-index params instead of conditional push - FastCorners: fix both vxFASTCornersNode and vxFastCornersNode with correct param indices - NonLinearFilter: fix signature from mask_size:vx_size to mask:vx_matrix - HalfScaleGaussian: replace NULL kernel stub with proper create_node_with_params - Not/ConvertDepth/EqualizeHist: replace NULL kernel stubs with proper create_node_with_params - LaplacianPyramid: implement node creation (was returning NULL) - LaplacianReconstruct: implement node creation (was returning NULL) - create_node_with_params: skip NULL params (optional outputs) - vxSetParameterByIndex: remove incorrect NULL rejection for param 0 - Fix vxGetKernelByEnum fallback num_params match table
The pattern matrix is required by NonLinearFilterNode and other kernels. Uses VX_TYPE_UINT8 with 0/255 values per the OpenVX spec.
…ncation - vxCopyScalar now delegates to c_api_data::vxCopyScalarData (works with actual VxCScalarData layout) - Added vxCopyScalarData to c_api_data.rs - Fixed vxQueryScalar missing #[no_mangle] - Weighted average now reads alpha from scalar instead of hardcoding 128 - Uses float arithmetic: output = alpha*img1 + (1-alpha)*img2 with C-style truncation - 102/102 WeightedAverage tests now pass
…inOp8u 8/8, vxuAddSub 60/60
…parameter The OpenVX spec defines vxuMultiply with vx_float32 scale (plain float), not vx_scalar. The previous implementation incorrectly treated the float value as a pointer, causing a segfault. Added vxu_multiply_impl_direct_scale for the VXU path, keeping vxu_multiply_impl (scalar-based) for graph path. Result: vxuMultiply 0/170 -> 170/170 passing
…114/156, vxCopyImagePatch 87/117
…, proper border handling, correct CTS-matching formulas
…r planar formats Major fixes: 1. vxSwapImageHandle: Handle NULL new_ptrs (reclaim pointers), return VX_ERROR_INVALID_REFERENCE for ROI/channel sub-images (not from handle) 2. Fix vx_imagepatch_addressing_t struct layout: step_y was u32 should be u16, stride_x_bits was i32 should be u16. This caused wrong stride values for multi-plane formats (NV12, NV21, IYUV, YUV4) when reading from addrs[] array in vxCreateImageFromHandle. 3. vxCreateImageFromROI: Share parent data instead of copying. Support external memory ROIs that follow parent handle swaps. Track ROI offsets per plane for correct addressing. 4. vxMapImagePatch: For ROI sub-images, look up root parent's current external pointers (handles may have been swapped). Return VX_ERROR_NO_MEMORY when external pointers are NULL (reclaimed). 5. Fix VxCImage::plane_dimensions for NV12/NV21 plane 1: dim_x should be width/2 (chroma subsampling), not width. 6. Add is_from_handle flag to VxCImage to distinguish images created directly from vxCreateImageFromHandle vs sub-images. 7. Add roi_offsets field to VxCImage for per-plane ROI offset tracking.
- Fixed CTS column-major matrix layout: m[0]*x + m[2]*y + m[4] for src_x - Added border mode support (VX_BORDER_CONSTANT with any value, UNDEFINED, REPLICATE) - Added nearest neighbor interpolation support for warp - Fixed border_from_vx to use correct OpenVX enum values (0xC000, 0xC001, 0xC002) - Read interpolation type from scalar parameter in graph dispatch - Pass node border mode through to warp functions WarpAffine: 71/305 -> 292/305 pass
- Apply same border mode fixes to warp_perspective (now 360/361) - Implement vxCopyRemapPatch to actually store remap table data - Implement vxu_remap_impl with bilinear and NN interpolation - Fix border constant value propagation for all warp/remap ops - Remap: 52/380 -> 361/380
added 8 commits
April 19, 2026 10:44
…i_data.rs, fix table_lookup_impl
…, LUT 38/38 via cherry-pick from R4-color-lut-sobel
… WarpPerspective), add pattern field and as_u8_slice to VxCMatrixData
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Work in progress for OpenVX 1.3.1 conformance.
Status:
Changes: