Phase 0 / Housekeeping / Post-M0.4 + Renderer Debt#19
Draft
guysenpai wants to merge 25 commits into
Draft
Conversation
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.
Brief
briefs/M0.5-housekeeping.md— M0.5 (Post-M0.4 Housekeeping + Renderer Debt).Status
Draft. The milestone runs E1→E6 with a mandatory stop for GO at each end-of-step gate (M0.1 model). This PR opens after E1 is green; it will be marked ready for review only after E6 + CI green.
≤ 200-line gate) routed to Claude.ai (Cas 2): the brief's~250premise is wrong (main.zigwas 501, and has been since M0.4). The≤ 200gate is unreachable via the prescribed capture-helper extraction alone. Per Guy's interim GO the gate is removed (FROZEN amendment pending) and NOT chased; the in-scope extraction + CI de-dup proceeded. See the brief's Blockers § B1.E1 summary
gal/capture.zig(captureFrameToPPM+ pureencodePpm/writePpm), exposed as aDevice.captureFrameToPPMmethod on the Vulkan + Null backends and in the interface contract; wired the triangle example to consume it. §13 coverage intests/render/capture_helper.zig(pure encode + NullUnsupportedpropagation; the full Vulkan path is exercised on lavapipe CI by the example + the PSNR gate).examples/triangle/src/main.zig: 501 → 449 lines (observation, not a gate).tests/render/ppm_psnr_compare.zig+zig build test-ppm-psnrthat compares the already-producedout/smoke_test.ppmvs golden with no render-stack rebuild and no triangle re-spawn; CIruntime-smoke-testswitched fromtest-render-capture(saves ~3-5 min/run). The spawn-basedtests/render/capture.zigis retained per source-preservation (engine-development-workflow.md§2.5) until the new gate is proven on Linux CI.Acceptance criteria (E1)
Device.captureFrameToPPMon the public GAL surface, exercised by ≥ 1 test (§13)zig build test(debug + ReleaseSafe),zig fmt --check,zig build lint,run-example-triangle --smoke-testall greenChangelog (so far)
refactor(render): extract captureFrameToPPM into GAL surface (M0.5)test(render): cover captureFrameToPPM, add PSNR gate (M0.5)perf(ci): drop PSNR rebuild in runtime-smoke-test (M0.5 item 1)docs(brief): record E1 deliverables and 449-line baseline (M0.5)Manual GPU validation
Best-effort only for M0.5 (
engine-development-workflow.md§4.5.1). Win11 + RTX 4080 markedunavailable(machine down — item 6).🤖 Generated with Claude Code