Repository navigation
Add an opt-in packed HDR conversion measurement tool - #1168
oliverames wants to merge 2 commits into
Conversation
|
@seedds, the reusable packed-HDR measurement for Switch 2 games running on iPhone is now at 49979db, reconciled with your landed mesh-stage fix. The 95-case M2 Pro run and independently checked raw words reproduce the earlier conversion observation, without asserting that rounding mode is universal. #1153 now has a separately reviewed iPhone measurement mode and a signed build, but no physical iPhone 17 Pro Max conversion result yet. This stays draft; DKB constants, sampling precision and fur-shimmer causation remain unmeasured. The probe may help packed-target investigations in other titles. |
|
@seedds Fresh physical-device evidence for the Switch 2 games running on iPhone work: the RG11B10Float diagnostic ran on Newt, iPhone 17 Pro Max / Apple A19 Pro GPU, iOS 27.2. All 95 ordered input words and packed output words exactly match the earlier M2 Pro measurement. Using the reference analysis for this controlled input set, all 285 channel observations match the lower representable candidate; 113 differ from nearest-even. Packed-output SHA-256: Probe source: This measures fragment output stored to an RG11B10Float attachment and blitted to a buffer. It does not establish a universal rounding rule, DKB sampling arithmetic, an emulator bug, or reduced fur shimmer. It provides a device-specific reference potentially useful for other titles using this format. Actual DKB constants and sustained gameplay remain separate work. Build hashes and matching run identity establish our artifact chain, but the device report does not independently attest the installed executable bytes. |
|
Head 2e0fded fixes the Tool tests failure this PR caused: The other failures are not from this diff:
|
2e0fded to
56cd971
Compare
56cd971 to
3b32464
Compare
|
Folded into one HDR pull request, oliverames#9, which carries this probe together with the per-model peak default and the launcher rows. It is stacked on #1176, so it can only merge after that. Closing this one to keep the HDR work in a single place. |
What and why
Add an opt-in RG11B10Float measurement tool for investigating differences between shader replay predictions and GPU attachment output. It submits 95 exact FP32 bit patterns, reads the packed attachment words back, and reports nearest-even and lower-representable candidates without requiring either result. It measures the combined fragment-output, attachment-store and blit path, not isolated rounding hardware or game sampling.
Run
python3 dm/gfx/tests/metal_conversion_probe.py --output-dir /path/to/new-runon a Mac with Xcode and Metal. The directory must be new. Each completed report includes raw words, binary artifacts, run ID, OS/GPU/compiler/SDK information and source/input hashes. Failed attempts record failure rather than leave a prior successful report. No game data, keys, profile or renderer is used. The standalone Makefile target is excluded frommake run; the four deterministic tests verify tool behavior, not GPU rounding policy. An iPhone wrapper remains outstanding.@seedds, this is part of the Switch 2 games running on iPhone investigation for DKB on iPhone 17 Pro Max. Conditional replay had small packed-color differences, but actual game constants and sampling precision remain unmeasured. The tool may help other titles using packed HDR targets. It does not establish A19 Pro conversion behavior, a shader mismatch, or a pacing/aliasing/fur-shimmer improvement. Draft pending hosted CI and further platform integration/verification.
Superseded #1154 is closed and no longer appears in this diff; the five diagnostic files are unchanged. Updated to main a70f071 with the maintainer's equivalent mesh-stage fix. This change is also folded into oliverames#9, a stacked PR; this PR stays open as it is.
Checked
90d94428e0a6ccb1b4e36a0e99f5238496daa04cb099c938ef4b8ad56151bbfb; packed-output SHA-256:59465088ebe292331077338b2a437f2e6a519a5f3ee8aef466ed2523a50a77ae. Final run ID:b77c67d9-cd15-41e2-8726-e6f9c6318b23. No iPhone run (the wrapper is outstanding).Front ends
None: no front end has to act on this.
Docs
docs/reference/<subsystem>.mdentry, andpython3 dm/tools/docs_symptoms.pywas run (the symptom index). The diff changesdm/gfx/README.mdonly; no reference entry or game note is in it, and the description does not say the symptom index was run.dmsh_chain.py --headerwas run anddm/gfx/nvn/dmsh_chain.his part of the change. Not applicable: no chain tool changed (the five files are the probe, its tests, the Makefile anddm/gfx/README.md).Rebased onto main bd979ce; conflicts resolved in dm/gfx/tests/Makefile.