Skip to content

rendering: accelerate retained interaction - #74

Open
tritao wants to merge 6 commits into
stack/retained-cpu-reusefrom
stack/retained-interaction-performance
Open

rendering: accelerate retained interaction#74
tritao wants to merge 6 commits into
stack/retained-cpu-reusefrom
stack/retained-interaction-performance

Conversation

@tritao

@tritao tritao commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

Builds on #73.

Purpose

Hover picking, selection changes, and depth-stack queries can run far more
often than the scene itself changes. Rebuilding the same interaction work or
waiting synchronously for avoidable GPU readback makes those operations scale
with the full retained frame instead of the requested interaction.

This PR prepares and reuses interaction-specific work, adds a direct
frontmost-target path for closest picks, and introduces internal asynchronous
readback machinery while preserving the existing synchronous public API.

What changed

  • Use the frontmost retained target for closest-pick queries.
  • Prepare and reuse interaction plans.
  • Batch selection and depth-stack submissions where ordering permits.
  • Dispatch OpenGL synchronization objects through Coin's glue layer.
  • Support asynchronous request, poll, and completion internally.
  • Add interaction phase diagnostics and scaling workloads.

API and fallback

SoRenderManager remains synchronous. Backend request tokens, synchronization,
and prepared interaction caches remain implementation details until an actual
consumer establishes the requirements for a public asynchronous API.

Unsupported or stale prepared work falls back to the established interaction
rendering and readback paths.

Validation

  • Closest, region, and overlapping depth-stack picking.
  • Selection updates and batched interaction submissions.
  • Synchronous and internal asynchronous result parity.
  • Interaction latency and scaling curves across compatibility and core
    profiles.

@tritao tritao changed the title stack/retained interaction performance rendering: accelerate retained interaction Aug 22, 2026
@tritao
tritao force-pushed the stack/retained-interaction-performance branch 5 times, most recently from 0ec7e8f to 75c1b1b Compare August 22, 2026 11:14
@tritao
tritao force-pushed the stack/retained-interaction-performance branch 2 times, most recently from 2b2a0bc to daa78cf Compare August 22, 2026 15:57
@tritao
tritao force-pushed the stack/retained-interaction-performance branch 2 times, most recently from 04503bd to ea3fa59 Compare August 22, 2026 18:57
@tritao
tritao force-pushed the stack/retained-interaction-performance branch from ea3fa59 to bd3c524 Compare August 22, 2026 19:48
@tritao
tritao force-pushed the stack/retained-interaction-performance branch from bd3c524 to cc22141 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-interaction-performance branch from cc22141 to 7edab1f Compare August 23, 2026 02:13
@tritao
tritao force-pushed the stack/retained-interaction-performance branch 3 times, most recently from 8a83ea7 to af8b48c Compare August 23, 2026 03:19
@tritao
tritao force-pushed the stack/retained-interaction-performance branch from af8b48c to df541f8 Compare August 23, 2026 09:33
@tritao
tritao force-pushed the stack/retained-interaction-performance branch 2 times, most recently from 6a4da3d to 7d6bffd Compare August 23, 2026 11:13
@tritao
tritao force-pushed the stack/retained-interaction-performance branch 2 times, most recently from 300668b to 03be934 Compare August 23, 2026 12:38
@tritao
tritao force-pushed the stack/retained-interaction-performance branch 6 times, most recently from 5119ac0 to 5889090 Compare August 23, 2026 15:15
@tritao
tritao force-pushed the stack/retained-interaction-performance branch from 5889090 to 8734242 Compare August 23, 2026 17:46
@tritao
tritao force-pushed the stack/retained-interaction-performance branch from 8734242 to 697813f 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