Skip to content

fast: avoid redundant ancestor renders after child splices - #91

Open
tikokuma wants to merge 1 commit into
longbridge:mainfrom
tikokuma:codex/splice-validation
Open

tikokuma wants to merge 1 commit into
longbridge:mainfrom
tikokuma:codex/splice-validation

Conversation

@tikokuma

Copy link
Copy Markdown
Contributor

After a retained child splice, the ancestor's aggregate entity-update checkpoint remains stale. A subsequent idle draw can therefore render the ancestor again even though its own dependencies have not changed.

Advance the aggregate checkpoint using the generation captured before rebuilding the gaps, while preserving each view's own read checkpoint. Replay dependencies by reference without cloning them.

Also exclude state accesses belonging to rebuilt gaps when copying old prepaint segments. Otherwise, layout accesses recorded during an ancestor's prepaint can retain removed element state once the redundant ancestor render is eliminated.

Regression tests cover ancestor reuse, painted output after shared-model updates, and element-state/layout-node cleanup after an opacity change followed by removal. Remove the obsolete assertion requiring a root render after a child-only update.

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