Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 13 additions & 27 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,13 @@ jobs:
- uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq cmake make git python3 gcc g++
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq cmake make git git-lfs python3 gcc g++
- name: Verify LFS files
run: git lfs ls-files | head -5 || true
- name: Build & install sample (Debug)
run: |
mkdir -p build/Linux/x64/Debug && cd build/Linux/x64/Debug
Expand Down Expand Up @@ -93,10 +96,11 @@ jobs:
- uses: actions/checkout@v4
with:
submodules: recursive
lfs: true
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq cmake make git python3 gcc g++
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq cmake make git git-lfs python3 gcc g++
- name: Build & install sample (Release)
run: |
mkdir -p build/Linux/x64/Release && cd build/Linux/x64/Release
Expand Down Expand Up @@ -137,7 +141,6 @@ jobs:
name: Conformance · Framework · Graph
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -153,7 +156,6 @@ jobs:
name: Conformance · Data objects
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand Down Expand Up @@ -184,7 +186,6 @@ jobs:
name: Conformance · Framework · User kernels
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -200,7 +201,6 @@ jobs:
name: "Conformance · Extension · Import/Export (IX)"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand Down Expand Up @@ -252,14 +252,12 @@ jobs:
timeout 4800 ./bin/vx_test_conformance --filter="*loop_count=100*:*loop_count=1000*"

# ================================================================
# Streaming — still a stub in this repo (VX_ERROR_NOT_IMPLEMENTED),
# so these are allowed to fail and surface as warnings.
# Streaming — functional on ToT; expected to pass.
# ================================================================
streaming:
name: "Conformance · Extension · Streaming (warning only)"
name: "Conformance · Extension · Streaming"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -268,20 +266,17 @@ jobs:
- name: Run streaming tests
run: |
cd build-cts && chmod +x bin/vx_test_conformance
if ! LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \
timeout 900 ./bin/vx_test_conformance --filter="GraphStreaming.*"; then
echo "::warning title=Streaming conformance::GraphStreaming.* tests failed — Streaming extension is still a stub (VX_ERROR_NOT_IMPLEMENTED)."
fi
LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \
timeout 900 ./bin/vx_test_conformance --filter="GraphStreaming.*"

# ================================================================
# Neural Networks — AlexNet test needs weights not shipped in
# test_data, so this is allowed to fail.
# Neural Networks — full feature set is expected to pass now that
# Git LFS brings in the missing test weights.
# ================================================================
neural-networks:
name: Conformance · Neural Networks · Core
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -291,13 +286,12 @@ jobs:
run: |
cd build-cts && chmod +x bin/vx_test_conformance
LD_LIBRARY_PATH="$OPENVX_DIR/bin:./lib" \
timeout 600 ./bin/vx_test_conformance --filter="TensorNetworks.*:-TensorNetworks.AlexNetTestNetwork:*NN*:VxKernelOfNNAndNNEF.*:VxParameterOfNNAndNNEF.*:MetaFormatOfNNAndNNEF.*:UserKernelsOfNNAndNNEF.*"
timeout 1200 ./bin/vx_test_conformance --filter="TensorNetworks.*:*NN*:VxKernelOfNNAndNNEF.*:VxParameterOfNNAndNNEF.*:MetaFormatOfNNAndNNEF.*:UserKernelsOfNNAndNNEF.*"

nnef-import:
name: "Conformance · Neural Networks · NNEF import"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -316,7 +310,6 @@ jobs:
name: "Conformance · Vision · Color & channel"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -332,7 +325,6 @@ jobs:
name: "Conformance · Vision · Filters & morphology"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -348,7 +340,6 @@ jobs:
name: "Conformance · Vision · Arithmetic & bitwise"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -364,7 +355,6 @@ jobs:
name: "Conformance · Vision · Geometric"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -380,7 +370,6 @@ jobs:
name: "Conformance · Vision · Features & edges"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -396,7 +385,6 @@ jobs:
name: "Conformance · Vision · Statistics"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -412,7 +400,6 @@ jobs:
name: "Conformance · Vision · Image ops"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand All @@ -428,7 +415,6 @@ jobs:
name: "Conformance · Vision · Pyramid & optical flow"
needs: [build, build-release]
runs-on: ubuntu-22.04
continue-on-error: true
steps:
- name: Download conformance artifact
uses: actions/download-artifact@v4
Expand Down
4 changes: 2 additions & 2 deletions BUILD_DEFINES
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ OPENVX_USE_USER_DATA_OBJECT (ENABLED)
- Enables the user data object extension

OPENVX_USE_PIPELINING (DISABLED)
- Enables the pipelining extension
- Enables the pipelining extension (functional implementation)

OPENVX_USE_STREAMING (DISABLED)
- Enables the streaming extension
- Enables the streaming extension (functional implementation; relies on pipelining state machinery)

IMPLEMENTATION SPECIFIC OPTIONS:
--------------------------------
Expand Down
16 changes: 9 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ The following is a summary of what this sample implementation IS and IS NOT:
* Passing OpenVX 1.3.2 conformance tests
* Implementing the full core API (context, image, graph, kernel, node, scalar, array, object array, pyramid, remap, distribution, threshold, LUT, matrix, convolution, delay, tensor, meta format)
* Implementing all standard vision and neural network kernels
* Supporting extensions: Import/Export (IX), Neural Networks (NN), User Data Object, NNEF Import Kernel, U1 (binary image)
* Supporting extensions: Import/Export (IX), Neural Networks (NN), User Data Object, NNEF Import Kernel, U1 (binary image), Pipelining, Streaming

**IS NOT:**
* A reference implementation
* Optimized
* Production ready
* Actively maintained by Khronos publicly

> **Note:** As of the current tip of tree (ToT), the Pipelining extension API has a functional implementation. The Streaming and Event Queue extension APIs are still present as stubs (return `VX_ERROR_NOT_IMPLEMENTED`); they are included for API compatibility but do not yet have functional implementations.
> **Note:** As of the current tip of tree (ToT), the Pipelining and Streaming extension APIs have functional implementations and their conformance tests (`GraphPipeline.*` and `GraphStreaming.*`) are expected to pass. The Event Queue extension API is still present as a stub (returns `VX_ERROR_NOT_IMPLEMENTED`); it is included for API compatibility but does not yet have a functional implementation.

## Building and Executing

Expand Down Expand Up @@ -447,6 +447,8 @@ export OPENVX_DIR=$(pwd)/install/Linux/x64/Debug
export VX_TEST_DATA_PATH=$(pwd)/cts/test_data/
```

> **Note:** The `cts/test_data/` directory contains large binary files managed with **Git LFS**. Make sure Git LFS is installed and files are pulled (`git lfs pull`) before running the conformance suite. The CI workflow enables LFS checkout automatically.

> **Note:** When switching between modes, remove the previous install directory before rebuilding: `rm -rf install/Linux/x64/Debug`

> **Note:** On macOS, use `.dylib` instead of `.so` for library paths in `OPENVX_LIBRARIES`, replace `LD_LIBRARY_PATH` with `DYLD_LIBRARY_PATH`, and omit `rt` from the library list (e.g., `"...libopenvx.dylib;...libvxu.dylib;pthread;dl;m"`).
Expand Down Expand Up @@ -523,7 +525,7 @@ cmake --build .
LD_LIBRARY_PATH=$OPENVX_DIR/bin:./lib ./bin/vx_test_conformance '--filter=GraphPipeline.*'
```

> **Note:** As of the current tip of tree (ToT), Pipelining is implemented, so the `GraphPipeline.*` conformance tests are expected to pass.
> **Note:** As of the current tip of tree (ToT), Pipelining and Streaming are implemented, so the `GraphPipeline.*` and `GraphStreaming.*` conformance tests are expected to pass.

### Mode 8 - Vision, Enhanced Vision, Pipelining, & Streaming

Expand All @@ -535,7 +537,7 @@ cmake --build .
LD_LIBRARY_PATH=$OPENVX_DIR/bin:./lib ./bin/vx_test_conformance '--filter=GraphStreaming.*'
```

> **Note:** The Streaming and Event Queue APIs are still stub implementations that return `VX_ERROR_NOT_IMPLEMENTED`, so the `GraphStreaming.*` tests are expected to fail. In CI this job is marked `allow_failure`.
> **Note:** Streaming is now implemented on ToT, so the `GraphStreaming.*` tests are expected to pass. In CI this job is required to pass.

## Included Unit Tests

Expand Down Expand Up @@ -628,17 +630,17 @@ The project runs continuous integration on both GitHub Actions and GitLab CI, us
- Mode 5: Combined (Vision, Enhanced Vision, Neural Networks, Import/Export, U1)
- Mode 6: User Data Object
- Mode 7: Pipelining (implemented on ToT; runs the `GraphPipeline.*` tests, expected to pass)
- Mode 8: Streaming (allowed to fail -- Streaming remains a stub; runs the `GraphStreaming.*` tests)
- Mode 8: Streaming (implemented on ToT; runs the `GraphStreaming.*` tests, expected to pass)

Git submodules are fetched recursively.

### GitHub Actions

The GitHub Actions workflow (`.github/workflows/ci.yml`) runs on every pull request and on pushes to all branches. It defines a `build` job (Release + Debug) plus one job per conformance test mode; each job checks out the repository with submodules, builds the sample implementation, then builds and runs the CTS. The Streaming job is marked `continue-on-error: true` so it surfaces as a warning rather than failing the pipeline.
The GitHub Actions workflow (`.github/workflows/ci.yml`) runs on every pull request and on pushes to all branches. It defines a `build` job (Release + Debug) plus one job per conformance test mode; each job checks out the repository with submodules, builds the sample implementation, then builds and runs the CTS. The Streaming job is required to pass.

### GitLab CI

The GitLab CI pipeline (`.gitlab-ci.yml`) uses the `ubuntu:22.04` image with a `build` stage and a `test` stage covering the same 8 conformance modes. Submodules are fetched via `GIT_SUBMODULE_STRATEGY: recursive`, and the Streaming job uses `allow_failure: true`.
The GitLab CI pipeline (`.gitlab-ci.yml`) uses the `ubuntu:22.04` image with a `build` stage and a `test` stage covering the same 8 conformance modes. Submodules are fetched via `GIT_SUBMODULE_STRATEGY: recursive`, and the Streaming job is required to pass.

## Bug Reporting

Expand Down
2 changes: 1 addition & 1 deletion cts
Loading
Loading