Skip to content

tests: add renderer performance infrastructure - #67

Open
tritao wants to merge 13 commits into
stack/drawlist-layers-rebuiltfrom
stack/render-performance-infrastructure
Open

tests: add renderer performance infrastructure#67
tritao wants to merge 13 commits into
stack/drawlist-layers-rebuiltfrom
stack/render-performance-infrastructure

Conversation

@tritao

@tritao tritao commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Builds on #55.

Purpose

The retained and LegacyGL renderers need to be compared using the same scenes
and the same definitions of work. Correctness tests alone cannot show whether
time moved from traversal into planning, submission, GPU completion, picking,
or selection, while wall-clock thresholds on ordinary CI runners would be too
noisy to trust.

This PR adds shared, deterministic workload and measurement infrastructure.
It is the foundation used by the performance layers above it; it does not
optimize renderer behavior itself.

What changed

  • Add deterministic CPU and hardware OpenGL benchmark executables with JSON
    output.
  • Compare LegacyGL, DrawList compatibility, and DrawList core paths where the
    workload is semantically supported by each.
  • Measure retained traversal/construction, planning, backend preparation,
    submission, GPU completion, picking, and selection phases separately.
  • Share workload construction between benchmarks, parity tests, and an
    interactive viewer.
  • Add reusable visible/resizable GL test sessions and portable framebuffer
    operations through Coin's GL glue.
  • Register capability-based benchmark and stress CTest labels.

How results should be used

Timing is informational and intended for controlled hardware comparisons.
Ordinary correctness CI compiles the tools and runs smoke coverage, but does
not fail a PR for small wall-clock changes. Deterministic work counters,
checksums, and parity assertions protect against empty or semantically
different fast paths.

Validation

  • CPU benchmark, hardware GL benchmark, parity, and viewer smoke coverage.
  • Compatibility and core DrawList contexts, plus LegacyGL where enabled.
  • Portable shared-library test boundaries on Windows.
  • Local compatibility build with 31 selected unit, GL, viewer, parity, and
    benchmark tests; full platform coverage is exercised by the top stack PR.

@tritao tritao changed the title stack/render performance infrastructure tests: add renderer performance infrastructure Aug 20, 2026
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from 64cd48c to 727b9d4 Compare August 20, 2026 21:59
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from 727b9d4 to 4a77932 Compare August 20, 2026 22:13
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch 2 times, most recently from 466716b to aaee94a Compare August 20, 2026 22:36
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from aaee94a to 9774a6c Compare August 20, 2026 22:49
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from 9774a6c to 3bb01a6 Compare August 20, 2026 23:00
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from 3bb01a6 to 3138601 Compare August 20, 2026 23:15
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from 3138601 to cdd09e3 Compare August 21, 2026 00:22
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from cdd09e3 to 88508e5 Compare August 21, 2026 00:31
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from 88508e5 to 733afe5 Compare August 21, 2026 01:03
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from 733afe5 to 592b596 Compare August 21, 2026 01:18
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from 592b596 to b487aa0 Compare August 21, 2026 01:33
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from b487aa0 to 9aed268 Compare August 21, 2026 02:08
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from 9aed268 to c70eb64 Compare August 21, 2026 09:29
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from c70eb64 to a1e3d91 Compare August 21, 2026 09:34
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch 2 times, most recently from 7f64047 to d1227ab 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/render-performance-infrastructure branch 2 times, most recently from c150c42 to 6e1f6da Compare August 23, 2026 03:19
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch 2 times, most recently from 9d1b999 to f8fd7ed Compare August 23, 2026 10:09
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch 2 times, most recently from 16b78ae to ff6f704 Compare August 23, 2026 12:38
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from ff6f704 to b56c026 Compare August 23, 2026 13:14
@tritao
tritao force-pushed the stack/render-performance-infrastructure branch from b56c026 to ae9de06 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