Skip to content

KHR Streaming extension APIs are stubs #52

Description

@simonCatBot

Summary

The OpenVX Pipelining, Streaming & Batch Processing KHR extension includes streaming APIs (vxEnableGraphStreaming, vxStartGraphStreaming, vxStopGraphStreaming). In rustVX these functions are present in openvx-core/src/pipelining_api.rs, but they do not implement real streaming behavior.

Current behavior

  • vxEnableGraphStreaming only sets a flag and stores a trigger-node ID.
  • vxStartGraphStreaming spawns a thread whose streaming_loop repeatedly sleeps for 10 ms and updates a pending counter, but never actually executes the graph.
  • vxStopGraphStreaming signals the thread to stop and joins it.

As a result, no graph processing occurs while streaming is "active", and conformance tests for GraphStreaming.* cannot pass against rustVX.

Expected behavior

vxStartGraphStreaming should begin continuous, asynchronous graph execution (e.g., by repeatedly calling vxScheduleGraph / vxProcessGraph or integrating with the existing pipelining executor) until vxStopGraphStreaming is called. The implementation should:

  1. Respect the optional trigger node semantics from the spec.
  2. Handle pipeup-to-steady-state transitions correctly.
  3. Work with the existing QUEUE_AUTO / QUEUE_MANUAL pipelining modes where applicable.
  4. Emit relevant events if eventing is enabled.

References

  • OpenVX 1.3.1 KHR extension: "Pipelining, Streaming & Batch Processing"
  • Related implementation work in the Khronos OpenVX sample implementation (streaming extension)

Suggested next steps

  • Decide whether streaming will reuse the pipelining executor or have its own scheduler loop.
  • Implement the actual graph execution loop in streaming_loop.
  • Add CTS coverage for GraphStreaming.* once implemented.

If streaming is intentionally not supported yet, it would be helpful to document that clearly in the README and extension-conformance matrix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions