Skip to content

V3: freeze composition baselines before alpha changes - #151

Open
git-chad wants to merge 6 commits into
git-chad/shader-lab-v3-planfrom
git-chad/v3-composition-alpha
Open

git-chad wants to merge 6 commits into
git-chad/shader-lab-v3-planfrom
git-chad/v3-composition-alpha

Conversation

@git-chad

@git-chad git-chad commented Sep 17, 2026 •

Copy link
Copy Markdown
Collaborator

V3 alpha changes will affect a compositor shared by sources and effects, and existing masks currently darken RGB instead of cutting transparent holes. This PR establishes compatibility references before changing those semantics.

Part of parent #150. Base: git-chad/shader-lab-v3-plan, not main. This is the first slice of roadmap steps 1.1–1.2; it does not complete phase 1 or change rendering behavior.

  • Add a standalone Playwright/WebGPU regression harness with 136 float-pixel samples covering all blend modes and mask sources in both the editor and exported runtime.
  • Freeze four saved-project fixtures and reviewed PNGs for legacy text masks, solid text backgrounds, transparent text with Screen, and contained media with halftone. Check preview/export agreement, fresh-renderer reopening, and visual baselines.
  • Preserve the actual existing default project's nine layers, two assets, and saved parameters through parse/serialize/viewer checks and actual editor-store hydration/resaving, including scene settings, timeline, audio, and the scene-replacement signal.
  • Run the suite in CI and document confirmed alpha boundaries, compatibility concerns, and remaining phase-1 coverage in tests/composition/README.md.

Validation: bun run test:composition, bun run check (passes with three existing warnings), and bunx changeset status --since=origin/git-chad/shader-lab-v3-plan pass locally. A deliberate expected-pixel mutation was also rejected by the suite. The suite explicitly selects WebGPU through SwiftShader; missing GPU support and browser/shader errors fail rather than skip.

GPU CI runs in a dedicated macos-14 job with PNG artifacts. Linux retains build/lint/type checks: its Chromium/SwiftShader drops the GPU instance during texture-backed shader compilation, so Linux GPU execution is not yet supported. No baseline tolerances or assertions were relaxed.

Limits: the four visual fixtures are synthetic regression scenes. The fourteen artistic references and broader photographic/video baselines are still outstanding. The real default project receives persistence checks only, and full runtime scene/export parity, groups, masks, and undo coverage remain future slices.

@vercel

vercel Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
shader-lab Ready Ready Preview Sep 17, 2026 2:06am UTC

@greptile-apps

greptile-apps Bot commented Sep 17, 2026

Copy link
Copy Markdown
Greptile Summary

This PR establishes composition compatibility references ahead of alpha changes.

  • Adds WebGPU blend and mask samples for editor/runtime parity.
  • Adds four visual fixtures with preview, export, reopening, and PNG comparisons.
  • Adds default-project persistence checks and runs the suite in CI.
  • Documents current alpha boundaries and remaining V3 coverage.
Confidence Score: 4/5

The PR appears safe to merge, with a non-blocking gap in the claimed editor-hydration regression coverage.

The rendering baselines and CI integration are coherent, but the default-project check validates a viewer snapshot rather than the production editor-store hydration path.

Files Needing Attention: tests/composition/browser.mjs

Prompt To Fix All With AI
### Issue 1
tests/composition/browser.mjs:220
**Hydration path is untested**

This calls `buildViewerProjectState`, which creates a read-only snapshot rather than exercising `applyLabProjectFile`, the actual editor hydration path. Regressions in restoring stores, pruning timeline tracks, applying scene settings, or signaling scene replacement could therefore pass this compatibility check. Please test the real hydration entry point and assert the resulting store state.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (1): Last reviewed commit: "test: establish V3 composition and alpha..." | Re-trigger Greptile

Comment thread tests/composition/browser.mjs

This branch was successfully deployed

1 active deployment
Preview — bdab0b7b Deployed Sep 17, 2026 by vercel[bot]
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