nx-ci-docs (2026-10-26): CI workflow, symptom index, reference, title notes, GPU regression tests¶
Branch claude/nx-ci-docs-2026-10-26-nx. From the nxnative review items T1, T2, T3, T6. Only new files plus an append to THIRD_PARTY_NOTICES.md.
What changed¶
- T2
.github/workflows/tests.yml(release.yml, pages.yml untouched): jobsdocs(ubuntu),rust(cargo test --workspace --locked),native(input, audio, frontend tests; gfx lib+adapter+all tests built; gfx Metal run non-blocking; runtimetest test-services),studio(swift test),ios-smoke(libopus +tools/build_ios.shfor the Simulator, non-blocking, see below). - T1
docs/symptoms.md(about 30 rows: Symptom, Cause, Fix, Found on),docs/reference.md(per-subsystem code, tests, debug env vars),tools/check_docs.py(links, anchors, 4-cell symptom rows, title notes exist; runs in thedocsjob). - T6
docs/titles/<id>.mdfor LAS, SMO, ACNH, MK8D plusdocs/titles/README.md(in-place build recipe). - T3
gfx/tests/nvn_harness.handt_clear_tex,t_clear_ds,t_depth16,t_feedback,t_copy_alias,t_present_snap,t_pso_archive(all picked up bymake -C gfx test).KNOWN(cond, ...)skips with a message (fails underT_STRICT=1) for behaviour that is open.
Findings from the new tests (open bugs, all in ac-render's files, not fixed here)¶
do_clear_tex(mtl_replay.m) ignores the region and the channel mask ((void)mask): a sub-rectangle clear clears the whole texture.- Clears are folded into the next pass; a copy/readback of that target before any draw does not flush them, so a clear after a readback reads stale (t_clear_ds, t_feedback).
- Depth clear with depth mask 0 passes; Depth16 clears agree between both paths; aliasing textures on one pool range works; presented-frame snapshot works.
Verified (fresh copy of the tree, scripted)¶
cargo test --workspace --locked, make input/audio/frontend test, gfx lib adapter tests and make -C gfx test (ALL TESTS PASSED, incl. 7 new, 4 KNOWN skips), runtime test test-services, swift test --package-path studio, check_docs.py: all rc 0. iOS smoke: link FAILS on main (undefined _a32_*: build_ios.sh lacks runtime/src/a32, fixed on claude/ios-sim-2026-10-25-titles), so that job is non-blocking. Not verified: the workflow on a real GitHub runner (yaml parses; macos-26 runners may lack a usable Metal device: that is why the gfx run is non-blocking).