Skip to content

rendering: batch retained submissions - #71

Open
tritao wants to merge 5 commits into
stack/render-geometry-resource-reusefrom
stack/retained-submission-batching
Open

rendering: batch retained submissions#71
tritao wants to merge 5 commits into
stack/render-geometry-resource-reusefrom
stack/retained-submission-batching

Conversation

@tritao

@tritao tritao commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

Builds on #69.

Purpose

Stable geometry resources remove repeated preparation, but a scene containing
many compatible occurrences can still issue one OpenGL draw call per retained
command. Submission overhead then grows with occurrence count even when the
commands use the same geometry and render state.

This PR lets the render plan group compatible commands and submit them as
instanced batches. The same per-instance identity is carried through visual
rendering, picking, and selection.

What changed

  • Group compatible retained commands into shared GPU submissions.
  • Dispatch instanced drawing through Coin's OpenGL glue layer.
  • Carry shader-side draw and primitive identity through visual, picking, and
    selection shaders.
  • Centralize compatibility and ordering decisions in internal command traits.
  • Group only opaque commands that are safe to reorder.

Ordering contract

Batch compatibility is a semantic decision, not just a matching-shader test.
Transparent commands, render barriers, and depth-sensitive operations preserve
their required order. Geometry-resource ownership remains in #69; this layer
owns planner grouping and submission policy.

Validation

  • Instanced visual rendering in compatibility and core profiles.
  • Picking and selection preserve command and subelement identity.
  • Planner tests cover safe opaque grouping and order-sensitive exclusions.
  • Glue/runtime coverage checks the required instancing and ordered-submission
    capabilities.

@tritao tritao changed the title stack/retained submission batching rendering: batch retained submissions Aug 22, 2026
@tritao
tritao force-pushed the stack/retained-submission-batching branch 2 times, most recently from 020cb82 to d64b8a3 Compare August 22, 2026 15:57
@tritao
tritao force-pushed the stack/retained-submission-batching branch 2 times, most recently from d4d3249 to f8f89b9 Compare August 22, 2026 18:57
@tritao
tritao force-pushed the stack/retained-submission-batching branch 2 times, most recently from 92033be to 2b3057f Compare August 23, 2026 01:44
@tritao
tritao marked this pull request as ready for review August 23, 2026 01:46
@tritao
tritao force-pushed the stack/retained-submission-batching branch from 2b3057f to b00f332 Compare August 23, 2026 02:13
@tritao
tritao force-pushed the stack/retained-submission-batching branch from b00f332 to a6d266a Compare August 23, 2026 03:00
@tritao
tritao force-pushed the stack/retained-submission-batching branch from a6d266a to 24f51ea Compare August 23, 2026 03:09
@tritao
tritao force-pushed the stack/retained-submission-batching branch from 24f51ea to 59fab79 Compare August 23, 2026 03:19
@tritao
tritao force-pushed the stack/retained-submission-batching branch 2 times, most recently from 5c2ec2f to b953791 Compare August 23, 2026 10:09
@tritao
tritao force-pushed the stack/retained-submission-batching branch 2 times, most recently from 8cc7f70 to b00d5f9 Compare August 23, 2026 12:26
@tritao
tritao force-pushed the stack/retained-submission-batching branch 2 times, most recently from 976f4cc to fc1dcae Compare August 23, 2026 13:14
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