Skip to content

Release the geometry fixture program and check readback allocation - #958

Open
RobiiAragon wants to merge 1 commit into
seedds:mainfrom
RobiiAragon:codex/upstream-geometry-fixture-lifetime
Open

RobiiAragon wants to merge 1 commit into
seedds:mainfrom
RobiiAragon:codex/upstream-geometry-fixture-lifetime

Conversation

@RobiiAragon

Copy link
Copy Markdown
Contributor

What and why

I reproduced two LLVM 23.1.4 findings in t_geometry_hazards.m on main 1ae435d5: the readback buffer can be nil when passed to Metal, and the program retained by the serial registry remains registered after its scenario ends.

I check the buffer allocation before the blit. Once the GPU has finished, I clear the draw bindings, remove the exact program entry under the registry lock, verify its identity and balance the registry’s CF retain. The production renderer, shader chain and lint baseline are unchanged. This also removes the main-branch lint failures I encountered while checking #956.

Checked

  • I ran make -C dm/gfx/tests GAME=010015100B514000 check_t_geometry_hazards: 57 checks passed in each of its three configurations (early submission on, off, and geometry cuts off), with Metal validation enabled.
  • I ran the complete LLVM 23.1.4 ratchet over 215 sources: 271 existing findings, zero above or below the unchanged baseline. The unmodified main fixture reproduces both findings; the changed fixture has none.
  • Device: Apple M5 Max, macOS 27.2, Xcode 27.2.
  • Validation scope: this is a synthetic-fixture resource-lifetime/allocation correction. Game routes and the full Metal fixture suite were not repeated because no production code or shader input changes.

Docs

  • The ownership boundary is explained beside the fixture cleanup; no runtime finding or game note changes.
  • No shader-chain change.
  • No game files, keys, extracted data or local certificates are included.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant