You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CI: harden Phase 1 staging + drop enhanced_vision from comparable subset
Three fixes addressing first-run CI failures on PR #14:
1. SONAME / symlink staging (MIVisionX failed with
`libopenvx.so.1: cannot open shared object file`):
- Replace `cp libopenvx*.so` with `find -name 'libopenvx*' -exec cp -P`
so all versioned variants (libopenvx.so, libopenvx.so.1,
libopenvx.so.X.Y.Z) are staged AND symlinks are preserved (so
ld.so can follow the SONAME chain at load time).
- Same pattern applied to MIVisionX, Khronos sample, and (defensively)
anywhere else we stage native .so files.
2. Khronos sample crashes inside Tensor* kernels (segfault on TensorAdd
during smoke):
- Smoke + compare now use `--feature-set vision,framework` instead
of `everything`. `enhanced_vision` is held back because at least
one impl segfaults inside its Tensor kernels, and openvx-mark
only writes its JSON at end-of-run — a mid-bench crash kills the
entire signal for that vendor. Re-enable later when impl quirks
are sorted upstream.
3. Failure isolation — single-impl crash should not block all signal:
- Smoke step gains `continue-on-error: true` so the artifact upload
(which the compare job depends on) still runs even if a specific
impl crashes inside a specific kernel.
- Impl artifact upload steps gain `if: always()` (defensive — same
intent).
- compare job's per-impl bench steps now use
`if: always() && steps.detect.outputs.X == 'true'`. GitHub Actions
treats any explicit `if:` without `always()` as implicit
`success()`, so without this fix a crash in MIVisionX's bench
would skip the Khronos and rustVX bench steps entirely and we'd
lose all comparison data.
Co-authored-by: Cursor <cursoragent@cursor.com>
0 commit comments