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
100 changes: 100 additions & 0 deletions projects/opencv/notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# opencv notes

A dependency fork: the OpenCV core the cv::cuda modules in contrib cannot build without.

## Why the platform rows carry no validation

This has no test suite of its own. The code is exercised only through the project
that consumes it, so a GPU run against this repository alone would prove nothing.

The validation lives with **opencv_contrib**, `completed` on linux-gfx1100,
linux-gfx90a, windows-gfx1101, windows-gfx1201 at contrib `041d5528`. Every one of
those runs built this fork: opencv_contrib's recorded build configures cmake against
`src-core/` (this repo at `moat-port`) with `OPENCV_EXTRA_MODULES_PATH=../src/modules`,
so core and contrib are one build tree, not two.

All four platforms here are therefore `blocked` with that reason rather than left to
derive `port-ready`. That is deliberate: from `review-passed` on, `arch_task` derives
`port-ready` for any arch with no evidence at head, which would send a validator to a
repository that cannot be validated on its own. Refresh the evidence by revalidating
**opencv_contrib**, not this project.

## Record reconciliation 2026-08-12

Until today this project read `stage: unclaimed`, `head_sha: null`, no platforms and
no PR, while the port was in fact written, reviewed and in front of upstream
maintainers. Two things went wrong because of it: `dep_status("opencv")` returned
`waiting`, so a dependent (DynOSAM) would have sat in `dep-blocked` waiting on work
that was already done, and `orient.sh` kept advertising `opencv (unclaimed -> intake)`,
inviting an intake screen -- or a `scaffold` -- over a finished port.

Corrected on a person's decision (jeff, 2026-08-12) to match the facts already
recorded in `projects/opencv_contrib/notes.md`:

- `head_sha` -> `50f05b150687734a0d0d7084f6215de6cd3a5b95`, the tip of
`AMD-Ecosystem/opencv @ moat-port` and the head of upstream PR #29285.
- `pr_url` / `pr_number` -> https://github.com/opencv/opencv/pull/29285 (OPEN,
"[ROCm] Add AMD GPU support for cv::cuda via HIP (core)"), so `moat-checkup` tracks
it like any other open PR instead of it being invisible to the control plane.
- stage walked `unclaimed -> screened -> planning -> planned -> porting -> ported ->
review-passed`. The intermediate transitions are bookkeeping to reach the stage the
work actually reached; the work itself is real and is recorded under opencv_contrib.

### What the evidence does and does not cover

The review is genuine and covered this fork explicitly: opencv_contrib's review entry
records "Reviewed both fork branches base..HEAD via /pr-review: core (AMD-Ecosystem/opencv
f90ef85) and contrib", verdict review-passed.

The validation is by consumption, and it is **not** at the current `head_sha`. The four
platform completions were taken at core `adcd50ca`/`0404733`-era commits; core then moved
`0404733 -> 50f05b1` for the PR #29285 follow-ups, under an explicit recorded decision
("jeff override: no revalidations for these", opencv_contrib notes, 2026-06-19). Those
commits are behaviour-preserving on the success path. This section states that plainly
rather than letting `review-passed` imply the head was proved on a GPU.

## Port state

The `moat-port` branch predates this project being tracked here, so the port's
provenance lives in `projects/opencv_contrib/notes.md` rather than here: the plan,
the dated validation entries and the per-commit test results are all recorded there,
including the two core-side fault classes found during the port (`cudev`
`simd_functions.hpp` PTX with non-saturating emulation, and `CUDART_VERSION` undefined
on HIP gating out modern paths).

## Validation 2026-08-13 (linux-gfx942)

Dispatched as validator for a new platform, linux-gfx942 (gfx942, wave64, MI300X),
which did not yet appear in `platforms`. Same situation as the four existing rows:
this fork carries no standalone test suite of its own, so a real-GPU run against
`AMD-Ecosystem/opencv @ moat-port` alone would prove nothing -- there is no
`opencv_test_*` binary this repo can produce without `OPENCV_EXTRA_MODULES_PATH`
pointed at contrib, and the fork checkout was skipped for exactly that reason (no
build/compile/test commands were run; `wall_seconds` stays zero here by design).

Marked `linux-gfx942` `blocked` with the identical reasoning already recorded for
linux-gfx90a / linux-gfx1100 / windows-gfx1101 / windows-gfx1201: revalidate
**opencv_contrib**, not this project, since its two-repo build tree is what
actually exercises this fork's HIP/cudev code.

Checked opencv_contrib's own record while here: `linux-gfx942` is not present in
its `platforms` map either, so the wave64 gate for gfx942 specifically has no
opencv_contrib evidence yet. Not this validator's concern to fix -- wave64 is
already satisfied for opencv_contrib by linux-gfx90a (`completed`,
`validated_sha=041d5528...`) at the current head, so `pr-ready` is unaffected.
Noting it only so a future opencv_contrib dispatch on this card knows what is and
isn't covered.

`git -C projects/opencv/src status --porcelain`: no local checkout exists (nothing
built), so the integrity gate is trivially satisfied -- no tracked source/build
edits.

Commands run: `python3 utils/moatlib.py set-blocked opencv linux-gfx942 "..."`.
No PR interaction (PR #29285 is open; `moat-port` frozen, and this round pushed
nothing to the fork).

## Install as a dependency

Consumed through opencv_contrib's two-repo build, not on its own -- see the
`## Install as a dependency` section of `projects/opencv_contrib/notes.md`. A dependent
that needs `cv::cuda` depends on **opencv_contrib**; this fork comes with it.
2 changes: 2 additions & 0 deletions projects/opencv/stats.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{"kind":"session","ts":"2026-08-13T02:46:23Z","epoch":1786589183.786720575,"event":"start","platform":"linux-gfx942"}
{"kind":"session","ts":"2026-08-13T02:46:52Z","epoch":1786589212.607630635,"event":"end","platform":"linux-gfx942"}
136 changes: 136 additions & 0 deletions projects/opencv/status.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
{
"schema_version": 3,
"name": "opencv",
"upstream_url": "https://github.com/opencv/opencv",
"fork_url": "https://github.com/AMD-Ecosystem/opencv",
"fork_default_branch": "4.x",
"priority": 0.0,
"ext_type": "unknown",
"adopted_at": "2026-08-06T06:58:03Z",
"updated_at": "2026-08-13T02:46:29Z",
"head_sha": "50f05b150687734a0d0d7084f6215de6cd3a5b95",
"depends_on": [],
"porting": null,
"waivers": {},
"license_spdx": "Apache-2.0",
"upstream_repo_id": 5108051,
"stage": "review-passed",
"platforms": {
"linux-gfx90a": {
"blocked": true,
"blocked_reason": "no standalone test suite: this fork is exercised only through opencv_contrib, whose build configures cmake against this repo with OPENCV_EXTRA_MODULES_PATH. Validation evidence lives with opencv_contrib (4 platforms completed at contrib 041d5528). Do not dispatch a standalone validator here; revalidate opencv_contrib instead.",
"validated_sha": null,
"failed_sha": null,
"started_at": "2026-08-12T20:49:24Z",
"completed_at": null,
"updated_at": "2026-08-12T20:49:32Z",
"stats": {
"tokens_total": 0,
"tokens_approx": true,
"wall_seconds": {
"thinking": 0,
"compile": 0,
"test": 0,
"misc": 0
},
"session_count": 0,
"first_session_at": null,
"last_session_at": null
},
"last_agent": "orchestrator"
},
"linux-gfx1100": {
"blocked": true,
"blocked_reason": "no standalone test suite: this fork is exercised only through opencv_contrib, whose build configures cmake against this repo with OPENCV_EXTRA_MODULES_PATH. Validation evidence lives with opencv_contrib (4 platforms completed at contrib 041d5528). Do not dispatch a standalone validator here; revalidate opencv_contrib instead.",
"validated_sha": null,
"failed_sha": null,
"started_at": null,
"completed_at": null,
"updated_at": "2026-08-12T20:49:32Z",
"stats": {
"tokens_total": 0,
"tokens_approx": true,
"wall_seconds": {
"thinking": 0,
"compile": 0,
"test": 0,
"misc": 0
},
"session_count": 0,
"first_session_at": null,
"last_session_at": null
}
},
"windows-gfx1101": {
"blocked": true,
"blocked_reason": "no standalone test suite: this fork is exercised only through opencv_contrib, whose build configures cmake against this repo with OPENCV_EXTRA_MODULES_PATH. Validation evidence lives with opencv_contrib (4 platforms completed at contrib 041d5528). Do not dispatch a standalone validator here; revalidate opencv_contrib instead.",
"validated_sha": null,
"failed_sha": null,
"started_at": null,
"completed_at": null,
"updated_at": "2026-08-12T20:49:32Z",
"stats": {
"tokens_total": 0,
"tokens_approx": true,
"wall_seconds": {
"thinking": 0,
"compile": 0,
"test": 0,
"misc": 0
},
"session_count": 0,
"first_session_at": null,
"last_session_at": null
}
},
"windows-gfx1201": {
"blocked": true,
"blocked_reason": "no standalone test suite: this fork is exercised only through opencv_contrib, whose build configures cmake against this repo with OPENCV_EXTRA_MODULES_PATH. Validation evidence lives with opencv_contrib (4 platforms completed at contrib 041d5528). Do not dispatch a standalone validator here; revalidate opencv_contrib instead.",
"validated_sha": null,
"failed_sha": null,
"started_at": null,
"completed_at": null,
"updated_at": "2026-08-12T20:49:32Z",
"stats": {
"tokens_total": 0,
"tokens_approx": true,
"wall_seconds": {
"thinking": 0,
"compile": 0,
"test": 0,
"misc": 0
},
"session_count": 0,
"first_session_at": null,
"last_session_at": null
}
},
"linux-gfx942": {
"blocked": true,
"blocked_reason": "no standalone test suite: this fork is exercised only through opencv_contrib, whose build configures cmake against this repo with OPENCV_EXTRA_MODULES_PATH. Validation evidence lives with opencv_contrib (4 platforms completed at contrib 041d5528; linux-gfx942 not yet dispatched there either). Do not dispatch a standalone validator here; revalidate opencv_contrib instead.",
"validated_sha": null,
"failed_sha": null,
"started_at": null,
"completed_at": null,
"updated_at": "2026-08-13T02:46:29Z",
"stats": {
"tokens_total": 0,
"tokens_approx": true,
"wall_seconds": {
"thinking": 0,
"compile": 0,
"test": 0,
"misc": 0
},
"session_count": 0,
"first_session_at": null,
"last_session_at": null
}
}
},
"pr_url": "https://github.com/opencv/opencv/pull/29285",
"pr_number": 29285,
"pr_opened_at": "2026-08-12T20:49:25Z",
"pr_state": "open",
"published_sha": "50f05b150687734a0d0d7084f6215de6cd3a5b95"
}
Loading