Linked repository document
Compositor fixture
fixtures/compositor/README.md
This document retains its design, example or evidence context. References outside this guide show their repository paths.
This is the separate Phase 5 qualification fixture selected by ADR 0042. Its
authored package declares one CloudCompositor : CompositorEffect, its
immutable Main-to-Render snapshot controls, one Main-only local-device probe,
and the Render-only _render_callback, which receives the bridge-injected
gd.Render_Call. RenderData remains a callback-scoped engine-owned borrow.
The two small compute shaders are compiler-owned source inside the authored
package and are compiled on their owning global or local device. The global
path also retains the density-field-upload workload's 4 MiB staging owner; its
pure producer writes the Godot backing store and the shader verifies the
transferred tail before tinting.
Since the ADR 0050 migration this fixture is a generated-mode project: the
authored package under declarations/ is the single source and the project
image is the generated bridge, so no handwritten image adapter exists. The
render bodies reach the reviewed render facade through
call_authority.main_facade and render_facade: the bridge binds one facade
API at bootstrap, installs it on the call authority, and the authority mirrors
its publication on every capability dispatch, so facade operations validate
against exactly the callback scope that produced them.
The exact pre-1.0 live matrix is macOS arm64 Forward+ with Metal on the pinned Godot snapshot only. Global compositor work is submitted by Godot. The local-device probe alone performs explicit submit, sync, and readback. Other exact Godot versions are post-1.0 compatibility work.
This directory is also a configured Gododin project. gododin.toml declares the
Phase 4 native composition and, under
ADR 0046,
an authority_root of ../..: declarations, the project image, the Godot
project, and the generated runtime are this project's, while the stable Host
source, the bindings, the stage tool, and the managed Odin distribution are the
repository's. gododin.lock is a byte-identical copy of the repository lock,
because the publication owner reads a lock beside the config; a Phase 5 case
requires that equality so the copy cannot become a second toolchain authority.
Everything the build owner needs beyond that is machine-specific and ignored:
create .gododin/local.toml here naming the same Godot executable and export
home as the repository's.
Generated catalog, documentation, the generated image bridge, and the
generator-owned typed MethodBind inventory live under generated/. The
inventory names the render support set the bridge binds; the build owner's
compile stage verifies the rendered image object's surviving
godot::bind_*_prebound symbols against it, so declaration and image cannot
drift. The inventory, the generated runtime, and the generated bridge are
covered by the same receipt. The live Host/image project, its checked-in
run/requalification/test harness, and the renderer evidence receipt live under
live/; this fixture does not alter the completed
native-basic scene or Phase 4 recovery project.
The current dated receipts describe the same rendered result and share one configured debug publication from the installed SDK selected by the current lock. The harness switches its isolated copy to installed authority; the checked-in project remains a checkout-authority fixture.
compositor-evidence-2026-10-19-sdk5.json (repository: fixtures/compositor/compositor-evidence-2026-10-19-sdk5.json) and the inspected
compositor-evidence.png (repository: fixtures/compositor/compositor-evidence.png) are the exact-target
Forward+/Metal rendering receipt for that harness. They record artifact
identities, the observed device line, the baseline and blue-dominant viewport
colors, the shader-verified 4 MiB bulk payload, and the zero-owner shutdown
counters.
phase4-evidence-2026-10-19-sdk5.json (repository: fixtures/compositor/phase4-evidence-2026-10-19-sdk5.json) is the Phase 4 editor/build/export
requalification recorded with this artifact: the coordinator publication, a
recovery editor that loads no project image, an accepted editor that loads and
unloads the pair without making a call, a windowed current accepted run, and both
exports with their applications executed. Its binding to the rendering receipt is
the inspected PNG: the run and both exported applications each wrote it byte for
byte.
Neither receipt promotes macOS arm64 platform support. That promotion needs every
native, editor/export, and renderer gate to pass together under one release
toolchain and a clean-machine matrix; these record the recording host only.
Changes that invalidate the catalog, artifact, or toolchain evidence require
requalification and new dated receipts even when the inspected PNG stays stable.
The September rendering receipt (repository: fixtures/compositor/compositor-evidence-2026-09-19-xcode27.json),
September editor/export receipt (repository: fixtures/compositor/phase4-evidence-2026-09-19-xcode27.json), and
earlier undated receipts remain unchanged history. The first beta1
checkout-authority receipts also remain historical after this SDK reseat. The current pair also binds
a retained trace archive (repository: fixtures/compositor/compositor-trace-2026-10-19-sdk5.tar.xz) with the
executed logs, artifact manifests and inspected images.