Skip to content

Return stored NVN sampler builder query state - #2115

Open
thehobbit85 wants to merge 1 commit into
seedds:mainfrom
thehobbit85:codex/sampler-builder-queries
Open

thehobbit85 wants to merge 1 commit into
seedds:mainfrom
thehobbit85:codex/sampler-builder-queries

Conversation

@thehobbit85

Copy link
Copy Markdown
Contributor

What and why

Addresses the sampler-builder query failure reported in issue #872. The five queried properties already have setters and stored state, but their getters still reached the generic unimplemented handler. Comparison and border-colour outputs remained untouched; scalar getters did not supply the required float/enum results.

Implement GetLodBias, GetCompare, GetBorderColor, GetMaxAnisotropy and GetReductionFilter using each builder's current parameters. The regression invokes the exported entry points through the same lookup and counting thunks games use. It checks changed values, a separate default builder, reset defaults and the four-float output boundary.

This resolves that concrete API defect only. #872's archive extraction, rendering and intermittent iPhone freeze remain open. No game files or gameplay validation were available, so this PR does not close the issue.

Checked

Apple M2 Max, macOS26.6, Xcode27.2, native arm64 builds, Python3.14.6.

  • Before the implementation, the new regression logged all five unimplemented calls and failed16 of295 checks. Afterward, make -C dm/gfx/tests GAME=010015100B514000 check_t_nvn passes all295.
  • Full make -C dm/gfx/tests -j2 GAME=010015100B514000 run: PASS, including the final value-comparison test revision.
  • make -C dm/host -j2 GAME=010015100B514000 dmhost: PASS.
  • Documentation tests:6 PASS; iOS Python suite:52 PASS.
  • Full tools suite:1423 tests,23 skips, one existing ABI-literal ratchet failure in unchanged nvn_mtl.m.
  • Full graphics Python suite:467 tests,140 skips, six existing IntegerPassThrough fixture errors (dmsh_fetch missing from its extracted namespace).
  • Python lint: three existing dmsh_build.py:166–167 type findings. The preceding Python failures reproduce on a pristine export of base6c676444; the shared repair is already proposed in Fix shader-tool lint and stale shader test fixtures #2111.
  • LLVM23.1.4: lint_c.py compdb succeeds; changed-source tidy --against 6c676444 dm/gfx/nvn/hle_nvn.c dm/gfx/tests/t_nvn.c has no new findings. The full274-source run also reports an unrelated t_pso_archive.m nullability count above its baseline; that reproduces on the pristine base with this toolchain.
  • regress.py impact HEAD: five NVN entry points; three profiles reached only by the broad NVN rule,149 profiles have no usage manifest. Attempted regress.py check --games 01004A4010FEA000,0100000000010000,010015100B514000,0100B04011742000,01007EF00011E000: exit2 because no REGRESS_ROOT/REGRESS_GAMES or game files are available. Bayonetta3 exercises builder readback, Odyssey caches sampler state, Wonder/Rise/Breath of the Wild broaden NVN renderer coverage. None was run; the reported title has no repository profile.

Fresh main and all1467 open/draft/closed/merged PR descriptions plus the issue timeline were checked before publication: no existing solution for these getters.

Docs

  • General mechanism and limitations in docs/reference/nvn-objects.md; development docs updated; symptom index regenerated.
  • No shader-chain tool changes.
  • No game files, extracted data, planning artifacts or execution journals.

@github-actions github-actions Bot added nvn NVN on Metal and its tests (dm/gfx/nvn, dm/gfx/tests) docs Documentation labels Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation 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