Repository navigation
Conversation
psdevhh
force-pushed
the
codex/geometry-viewport-reservation
branch
from
November 3, 2026 01:08
44eabf6 to
9e7e06f
Compare
The reservation for UsesViewportIndex used VertexIndex. The missing slot left a raster output on the compute kernel and gave the reader the wrong builtin. Reserve ViewportIndex and refresh the translator and chain. The synthetic regression compiles the kernel and raster reader for five input topologies on Mac and iOS.
psdevhh
force-pushed
the
codex/geometry-viewport-reservation
branch
from
November 3, 2026 08:22
9e7e06f to
583b81c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
ResourceReservations.FillIoOffsetMapreservedVertexIndexfor geometry shaders that setUsesViewportIndex. Without a viewport-index slot, the geometry-to-compute transform left a raster output on a Metal kernel, and the reader used the wrong builtin.Reserve
ViewportIndexso the compute pass stores the value in the emitted vertex record and the raster pass reads that field. Include the reservation source in the chain fingerprint and refresh the translator artifacts, lock and generated header.Checked
Documentation, chain and tool-lock checks passed after rebasing onto
dac4a433. The upstream SARC reader change leaves the tested translation inputs identical.Standalone branch on
mainatb1dee89c. Geometry, shader-chain and documentation tests passed (44 tests, one optional skip). The new dynamic viewport-index regression compiled the compute kernel and raster reader for all five input topologies with both the macOS and iOS Metal compilers.Prior integration run on Apple M4, macOS 27.2. Both real Alien: Isolation
010075D00E8BA000geometry shaders failed with the old translator and compiled with the fix for macOS and iOS. All 12 Metroid Prime Remastered geometry shaders compiled and their 105 generated Metal sources matched the old baseline.Rebased checks on Apple M4, macOS 27.2 and Xcode 27.2. The synthetic regression failed on all five topologies with the current upstream translator. Both real Alien: Isolation geometry shaders compiled for macOS and iOS with this branch. All 12 Metroid Prime Remastered 1.0.0 geometry shaders compiled on both revisions, and all 105 generated Metal sources matched.
Metroid Prime Remastered covers real geometry shaders. Dark Souls Remastered 1.0.3 covers an NVN shader set without geometry. The rebased regression comparison built 3,099 of 3,099 Dark Souls shaders on each revision with zero changed Metal sources or new interface failures. These are shader comparisons. Gameplay on other titles and iOS was outside this check.
Python lint reports the same upstream finding in
dmsh_logic.py:83as onmain. GitHub clang-tidy reports two findings in the unchangedt_geometry_hazards.m, covered by upstream PR C lint: t_geometry_hazards checks its readback buffer, and notes who owns its program #979.Rebased regression report
regress.py check (full): PASS
Baseline
origin/mainb1dee89, candidateHEAD44eabf6; Apple M4, macOS 27.2, Xcode 27.2; 1.5 s01004AB00A26000001004AB00A260000
01004AB00A260000: PASSPrior integration regression report
regress.py check (full): PASS
Baseline
origin/main65501fb, candidateworktree65501fb (+ uncommitted changes); Apple M4, macOS 27.2, Xcode 27.2; 126 s01004AB00A26000001004AB00A260000
01004AB00A260000: PASSDocs
docs/reference/shaders.md#viewport-indices-in-geometry-compute-recordsand regenerated the symptom index.dmsh_chain.py --headerand committed the generated header.tool_lock.py --check-toolspassed.