Skip to content

nvn/tests: check depth-only archive buffer allocations - #2697

Open
thehobbit85 wants to merge 1 commit into
seedds:mainfrom
thehobbit85:codex/fix-pso-archive-lint
Open

thehobbit85 wants to merge 1 commit into
seedds:mainfrom
thehobbit85:codex/fix-pso-archive-lint

Conversation

@thehobbit85

Copy link
Copy Markdown
Contributor

The depth-only pipeline-archive test can receive a null vertex or readback buffer from Metal, then bind, copy into, or read it. Abort fixture setup immediately if either allocation fails, matching the existing texture check and retaining the depth and command-completion assertions.

This fixes the extra NullablePassedToNonnull finding in t_pso_archive.m (3 findings versus the baseline's 2). The baseline stays unchanged. It is a separate shared CI repair, complementary to #2555 and the existing fixture/baseline corrections in #2476.

Validation on base 2ad01cb47cfd37ccb68791671bc62068c1b9408a:

  • LLVM 23.1.4 focused ratchet reproduced the failure before the guard and passed afterward (2/2 nullable findings).
  • make -C dm/gfx/tests GAME=010015100B514000 check_t_pso_archive: 362 checks and 14 restart/process tests passed. Also rebuilt and ran both with Xcode 27.2's compiler and macOS 27.2 SDK explicitly.
  • make -k -j6 -C dm/gfx/tests GAME=010015100B514000 run: passed; six optional Wonder reflection samples unavailable.
  • CI's Python test-file loop with the native translator: 2,283 tests, 39 skipped, no failures. Fourteen skips are the archive process tests exercised above; the others require optional execution/GPU fixtures.
  • Python lint: 321 findings match the 321-entry baseline, no new or stale findings.
  • Full C lint: exactly the intended warning removed, no added diagnostics. The scan remains red on nine other file/check pairs above baseline and three below it; these reproduce on main and are covered by the existing packing/uepak: read version 9 frozen pak indices #2476 changes (nvn/tests: check nullable Metal fixture allocations #2555 covers three of its fixtures).
  • regress.py impact: no host entry points or mapped games reached. This changes only a native test fixture; no game run was performed. Four profiles were classified unaffected and 166 lack usage manifests.

The full graphics run used the shell's Apple clang 21 from Swift 6.4.1 with the selected Xcode SDK; the affected fixture additionally passed with Xcode's clang 2100.4.1.1. Agent 2 reviewed the actual one-line diff with no actionable findings.

Current-main integration at f226affd2f4cce7fb954d26b89d917361133745d: clean merge simulation; focused lint fails on unmodified main and passes with this guard; the 362 archive checks and 14 process tests pass again. Full C lint has the same nine above-baseline and three stale-baseline pairs listed above, with no additional diagnostics.

Abort fixture setup when either Metal buffer allocation fails before binding
the vertices, copying depth into the readback buffer or dereferencing it.
This fixes the extra NullablePassedToNonnull finding without changing the
pixel checks or the lint baseline.
@github-actions github-actions Bot added the nvn NVN on Metal and its tests (dm/gfx/nvn, dm/gfx/tests) label Nov 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

nvn NVN on Metal and its tests (dm/gfx/nvn, dm/gfx/tests)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants