Gododin Gododin Documentation

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.

View original Markdown · Download · Return to the guide

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.