Skip to content

V3: render isolated groups in editor and runtime pipelines - #154

Merged
git-chad merged 10 commits into
git-chad/shader-lab-v3-planfrom
git-chad/v3-isolated-group-rendering
Oct 1, 2026
Merged

git-chad merged 10 commits into
git-chad/shader-lab-v3-planfrom
git-chad/v3-isolated-group-rendering

Conversation

@git-chad

Copy link
Copy Markdown
Collaborator

The renderer previously processed every layer in one global chain, so it could not give a group its own effect scope. Internal renderer frames now accept isolated groups: each group renders its children against transparent targets and blends the combined result into its parent. A threshold effect inside a photographic group affects that group while the surrounding background and upper layers retain their colors.

Stacked on #153; base branch: git-chad/v3-alpha-compositing. Part of the V3 integration in #150. Nothing in this stack merges to main until the required V3 roadmap is complete.

  • Support nested groups, group opacity/blend mode/visibility, and top-first ordering at every depth in editor preview/export and runtime canvas/headless paths.
  • Preserve child pass instances during reparenting, propagate animation/export preparation through visible groups, resize group targets, and dispose removed group resources.
  • Reject duplicate IDs and nesting beyond eight levels before mutating live passes. Ignore obsolete compile callbacks after a pass is removed or replaced.
  • Keep existing flat projects and shader configs unchanged. Editor grouping controls, saved groups, undo, public shader-config group export, and coverage masks follow in the next slices; this does not complete roadmap step 1.3.

Validation: bun run test:composition passes all frozen PNG/project/blend baselines, the existing 34 media and 100 alpha samples, and 52 new group checks. The group suite uses real editor/runtime pipelines and verifies scope, overlap, ordering, nesting, visibility, reparenting, resize/disposal, transparent external input, the headless entry point, and exact preview/PNG parity. Nested image orientation and soft edges match the flat render. bun run check, runtime and MCP typechecks, and changeset validation pass; only the pre-existing local lint warnings remain. No frozen baselines were changed.

Each group currently owns two full-resolution RGBA16F targets (about 32 MiB at 1080p), reused between frames. Large-scene performance and target pooling remain follow-up work. No new UI controls are exposed in this renderer-only slice.

@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 Oct 1, 2026 7:05am UTC

@greptile-apps

greptile-apps Bot commented Sep 17, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

The PR should not merge until stale media callbacks are isolated from replacement passes; the nested export reporting issue should also be corrected.

Summary

This PR adds isolated, nested composition groups to the editor and runtime rendering pipelines.

  • Introduces composition-tree validation, recursive paint ordering, and per-group transparent render targets.
  • Preserves passes across reparenting and propagates resizing, animation, export preparation, and disposal.
  • Adds editor/runtime group coverage for isolation, ordering, opacity, visibility, nesting, lifecycle, and export parity.
  • Two lifecycle and error-reporting issues remain in the editor pipeline.

Reviews (1) · Last reviewed commit: "Add isolated group rendering to editor a..."

Comment thread src/renderer/pipeline-manager.ts
Comment thread src/renderer/pipeline-manager.ts
…roup failures

Media load callbacks now ignore replaced or removed passes and pending loads are cleared on disposal. Strict-mode pass failures are reported once at the originating pass instead of at every group boundary.
@git-chad
git-chad changed the base branch from git-chad/v3-alpha-compositing to git-chad/shader-lab-v3-plan October 1, 2026 15:12
@git-chad
git-chad merged commit e7a5f6c into git-chad/shader-lab-v3-plan Oct 1, 2026
5 checks passed

This branch was successfully deployed

1 active deployment
Preview — e7a5f6c6 Deployed Oct 1, 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