rendering: update retained frames incrementally - #72
Open
tritao wants to merge 2 commits into
Open
Conversation
tritao
force-pushed
the
stack/retained-incremental-updates
branch
2 times, most recently
from
August 22, 2026 13:47
ed31031 to
029b6da
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
2 times, most recently
from
August 22, 2026 18:51
bbe2850 to
987cd24
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
from
August 22, 2026 18:57
987cd24 to
fe46d7e
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
from
August 22, 2026 19:48
fe46d7e to
ded7f84
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
from
August 23, 2026 01:44
ded7f84 to
3b021a6
Compare
tritao
marked this pull request as ready for review
August 23, 2026 01:46
This was referenced Aug 23, 2026
tritao
force-pushed
the
stack/retained-incremental-updates
branch
2 times, most recently
from
August 23, 2026 03:00
aaed4e2 to
db28ee7
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
from
August 23, 2026 03:09
db28ee7 to
d81ab94
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
from
August 23, 2026 03:19
d81ab94 to
980ebbe
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
2 times, most recently
from
August 23, 2026 10:09
3824452 to
f5c40d0
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
from
August 23, 2026 11:13
f5c40d0 to
86a66c8
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
2 times, most recently
from
August 23, 2026 12:38
037da14 to
511818c
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
2 times, most recently
from
August 23, 2026 17:46
14d8393 to
2045b81
Compare
tritao
force-pushed
the
stack/retained-incremental-updates
branch
from
August 23, 2026 21:21
2045b81 to
c3e03d4
Compare
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.
Builds on #71.
Purpose
Once a retained frame exists, a small scene edit should not require rebuilding
the whole frame or scanning every command path to discover what changed. The
renderer needs to know which commands depend on the changed node and which
derived data the edit can invalidate.
This PR introduces that mutation model. It indexes retained dependencies,
classifies scene notifications, and applies supported updates transactionally.
If an update cannot be proven safe, the manager falls back to a full rebuild.
What changed
rebuild invalidation domains.
through the internal
SoRetainedUpdater.retained state before rebuilding.
SoRenderManagerresponsible only for orchestration: accept theincremental update or rebuild the frame.
Ownership and fallback
SoRetainedUpdateris the sole classifier for supported scene mutations andtheir invalidation effects. Unsupported nodes, ambiguous dependencies, or a
failed transaction take the existing full-rebuild path.
This layer defines invalidation semantics. Reusing plans and validated GPU
resources based on those guarantees is the responsibility of #78.
Validation
pick-topology invalidation, and full rebuild counts.