Skip to content

feat: Enhanced Vision kernel implementations — Copy, NMS, HoughLinesP, MatchTemplate, LBP#35

Merged
kiritigowda merged 10 commits into
kiritigowda:mainfrom
simonCatBot:fix/enhanced-vision-coverage
May 15, 2026
Merged

feat: Enhanced Vision kernel implementations — Copy, NMS, HoughLinesP, MatchTemplate, LBP#35
kiritigowda merged 10 commits into
kiritigowda:mainfrom
simonCatBot:fix/enhanced-vision-coverage

Conversation

@simonCatBot

Copy link
Copy Markdown
Collaborator

Summary

Implements 5 Enhanced Vision conformance kernels, passing 103/106 tests (3 tensor pre-existing failures).

Kernels Implemented

Kernel Tests Status
Copy 33/36 ✅ (3 tensor pre-existing)
NonMaxSuppression 33/33 ✅ All passing
HoughLinesP 15/15 ✅ All passing
MatchTemplate 11/11 ✅ All passing
LBP 11/11 ✅ All passing

Files Changed

  • openvx-core/src/c_api.rs — kernel registrations
  • openvx-core/src/unified_c_api.rs — node creation, graph dispatch, output indices
  • openvx-core/src/vxu_impl.rs — algorithm implementations
  • openvx-core/src/c_api_data.rs — threshold type constants fix

Notes

  • CTS built with -DOPENVX_USE_ENHANCED_VISION=ON
  • Tensor copy (3/36) remains VX_ERROR_NOT_IMPLEMENTED due to private struct fields
  • Remaining Enhanced Vision kernels (BilateralFilter, TensorOp, HOGCells, HOGFeatures, Select, ScalarOperation) not yet implemented

Kiriti added 10 commits May 14, 2026 20:39
Implement vxCopyNode, dispatch arm, and vxu_copy_impl for all reference types:
- IMAGE: map/unmap with dimension/format validation
- ARRAY: C API map/unmap + add items (deadlock-safe, no raw RwLock)
- SCALAR: direct struct access via VxCScalarData
- MATRIX/CONVOLUTION/DISTRIBUTION/LUT: C API copy functions with buffer
- THRESHOLD: direct VxCThresholdData struct access (vxQueryThreshold lacks VALUE/LOWER/UPPER)
- REMAP: direct map_data clone
- PYRAMID: recursive level copy with vxReleaseImage leak fix
- OBJECT_ARRAY: C API get/set items

Fixes:
- vx_uint32 for VX_IMAGE_WIDTH/HEIGHT queries (size mismatch was causing INVALID_PARAMETERS)
- VX_ARRAY_ITEMSIZE for array item_size (VX_TYPE_COORDINATES2D wasn't in item_type match)
- VX_THRESHOLD_TYPE_BINARY/RANGE constants corrected to 0x0B000/0x0B001

Remaining: TENSOR (3/36 fail) - vxCreateTensor not implemented in c_api_data.rs
@kiritigowda kiritigowda merged commit 4258032 into kiritigowda:main May 15, 2026
52 of 54 checks passed
@simonCatBot simonCatBot deleted the fix/enhanced-vision-coverage branch May 27, 2026 17:14
kiritigowda pushed a commit that referenced this pull request May 28, 2026
Update the OpenVX 1.3.1 coverage plan to current state:

- Mark P2 (Base API + UDO, 10 funcs) as COMPLETE (#16, #18, #23, #24)
- Mark P3 (Enhanced Vision non-tensor, 14 funcs) as COMPLETE (#35, #36, #39)
- Mark P4 (Tensor kernels, 14 funcs) as COMPLETE (#40)
- Mark P5a (Control-flow nodes, 2 funcs) as COMPLETE (#41)
- Update conformance tally: 6,786 / 6,786 tests passing (100%)
- Add open issues status review (#38 stale, #20#22 should close)
- Update coverage trajectory: ~300/361 (~83%) implemented
- Refresh risks and tracking labels

Co-authored-by: Kiriti <kiriti@example.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants