Skip to content

rendering: reuse retained CPU work - #73

Open
tritao wants to merge 10 commits into
integration/retained-performance-wipfrom
stack/retained-cpu-reuse
Open

rendering: reuse retained CPU work#73
tritao wants to merge 10 commits into
integration/retained-performance-wipfrom
stack/retained-cpu-reuse

Conversation

@tritao

@tritao tritao commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

Builds on #78.

Purpose

After unchanged-frame reuse and incremental updates remove the large rebuilds,
the remaining CPU cost is dominated by smaller repeated work: constructing and
copying command data, allocating short-lived containers, resolving the same
resource/cache indices, and rebinding state that has not changed.

This PR removes those costs from the existing retained pipeline without
changing its semantic model or adding new public APIs.

What changed

  • Move completed retained commands directly into draw-list storage.
  • Streamline command construction and compact retained command paths.
  • Use internal inline storage for small hot-path collections.
  • Reuse command-to-resource and prepared cache indices during submission.
  • Preserve compatible visual submission, shader, material-uniform, depth, and
    blend state across adjacent commands.

Scope

These are internal CPU hot-path optimizations. The inline-storage helper is
not installed or exposed as a public Coin container, and public retained-IR
value types keep their standard-container API. Planner ordering and mutation
semantics remain owned by the lower layers.

Validation

  • Retained node and material/lighting correctness tests.
  • Existing visual, picking, and selection coverage across the optimized
    submission path.
  • Benchmark phase data verifies reduced construction and command-execution
    work without changing semantic draw counts or output.

@tritao tritao changed the title stack/retained cpu reuse rendering: reuse retained CPU work Aug 22, 2026
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch 2 times, most recently from d5e9ca7 to f55602a Compare August 22, 2026 13:47
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch 2 times, most recently from 20e49c0 to f4d9413 Compare August 22, 2026 18:51
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from f4d9413 to 161f6b5 Compare August 22, 2026 18:57
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch 2 times, most recently from 31fe99b to 813e819 Compare August 23, 2026 01:44
@tritao
tritao marked this pull request as ready for review August 23, 2026 01:46
@tritao
tritao changed the base branch from stack/retained-incremental-updates to integration/retained-performance-wip August 23, 2026 01:47
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from 813e819 to 2ff5b2e Compare August 23, 2026 02:13
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from 2ff5b2e to c7697ca Compare August 23, 2026 03:00
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from c7697ca to 1960e9f Compare August 23, 2026 03:09
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from 1960e9f to 6007f42 Compare August 23, 2026 03:19
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from 6007f42 to 57b7176 Compare August 23, 2026 09:33
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from 57b7176 to 93e42d4 Compare August 23, 2026 10:09
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from 93e42d4 to 0df0010 Compare August 23, 2026 11:13
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch 2 times, most recently from 6db698a to 01d714a Compare August 23, 2026 12:38
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from 01d714a to c5c4911 Compare August 23, 2026 13:14
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from 33d823f to ed50ca1 Compare August 23, 2026 17:46
@tritao
tritao force-pushed the stack/retained-cpu-reuse branch from ed50ca1 to 077be95 Compare August 23, 2026 21:21
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