|
Phase 0 spike is closed GO (real-seat confirmed: input accurate through the 3D
transform, ~30fps fill-bound under the 4-window load). Records the design that
Phase 1 settles, per the user's contract decision.
- notes/rml-compositing-phase1.md (NEW): the Phase 1 design doc.
- Contract principle: RCSS is the single source of truth for ALL layout +
animation; C++ drives the document via a TYPED substrate API (reconciled
with the constitution's typed-symbol rule, which governs cross-extension
dependency discovery, not the RCSS vocabulary).
- New kernel primitive: SurfaceElement = a LIVE analogue of Preview
(zero-copy seq-gated import, frame-callback duty, per-subsurface tree).
- Window layout = existing bind_list + RCSS pattern (stage-dock's, generalized).
- Unified input-back folded into the substrate (the Element::Project mapping).
- Damage limiting = Option B (buffer-age + wlr_damage_ring + scissor +
set_buffer_with_damage), built properly here; scanout bypass deferred.
- Cross-unit contract changes + Phase-2 wave plan.
- User boundary decision: a NEW ext-window-field core extension owns the
window field + layout; ext-xdg-shell only supplies toplevel handles +
root wl_surface (Toplevel::scene_tree retired, wl_surface() added).
- notes/plan.md row 71: DIRECTION -> ADOPTED/GO + the Option-2 contract.
- tasks.md: slice 13 Phase 0 CLOSED; Phase 2 Wave 1 (kernel substrate) next.
|