Skip to content

Feat: BenchmarkDotNet suites for render and player pipelines#20

Merged
rian-be merged 1 commit into
mainfrom
develop
May 29, 2026
Merged

Feat: BenchmarkDotNet suites for render and player pipelines#20
rian-be merged 1 commit into
mainfrom
develop

Conversation

@rian-be
Copy link
Copy Markdown
Owner

@rian-be rian-be commented May 29, 2026

Introduce dedicated BenchmarkDotNet benchmarks for CPU side render pipeline and player performance analysis.

Added

Benchmark project
- Adds Benchmarks/ChangeTrace.Benchmarks.csproj
- Adds BenchmarkDotNet dependency
- References production ChangeTrace code from separate benchmark project
- Keeps benchmark code excluded from normal application runtime

Render pipeline benchmarks
- Adds render event translation benchmark
- Adds render state assembly benchmark
- Adds scene snapshot assembly benchmark
- Adds scene frame update benchmark
- Adds render frame submission benchmark
- Adds CPU side GPU buffer data preparation benchmark
- Adds hive layout step and convergence benchmarks

Player benchmarks
- Adds event cursor seek and drain benchmarks
- Adds seekable timeline benchmarks
- Adds timeline stepper traversal benchmark
- Adds timeline player factory benchmark

Benchmark fixtures
- Adds deterministic render benchmark fixture
- Generates synthetic render scenes for 1k, 10k and 100k event scenarios
- Adds deterministic player timeline fixture
- Avoids OpenTK window creation and real GPU access

Documentation and tooling
- Adds benchmark README with local run commands
- Adds task benchmark command for render pipeline benchmarks
- Enables memory allocation diagnostics
- Documents BenchmarkDotNet report output and runtime notes

Result

These changes provide repeatable CPU side performance baselines for render translation, layout, snapshot assembly, GPU data preparation and player playback paths before deeper optimization work.

Introduce dedicated BenchmarkDotNet benchmarks for CPU side render pipeline and player performance analysis.

Added

 Benchmark project
      - Adds Benchmarks/ChangeTrace.Benchmarks.csproj
      - Adds BenchmarkDotNet dependency
      - References production ChangeTrace code from separate benchmark project
      - Keeps benchmark code excluded from normal application runtime

 Render pipeline benchmarks
      - Adds render event translation benchmark
      - Adds render state assembly benchmark
      - Adds scene snapshot assembly benchmark
      - Adds scene frame update benchmark
      - Adds render frame submission benchmark
      - Adds CPU side GPU buffer data preparation benchmark
      - Adds hive layout step and convergence benchmarks

 Player benchmarks
      - Adds event cursor seek and drain benchmarks
      - Adds seekable timeline benchmarks
      - Adds timeline stepper traversal benchmark
      - Adds timeline player factory benchmark

 Benchmark fixtures
      - Adds deterministic render benchmark fixture
      - Generates synthetic render scenes for 1k, 10k and 100k event scenarios
      - Adds deterministic player timeline fixture
      - Avoids OpenTK window creation and real GPU access

 Documentation and tooling
      - Adds benchmark README with local run commands
      - Adds task benchmark command for render pipeline benchmarks
      - Enables memory allocation diagnostics
      - Documents BenchmarkDotNet report output and runtime notes

Result

 These changes provide repeatable CPU side performance baselines for render translation, layout, snapshot assembly, GPU data preparation and player playback paths before deeper optimization work.
@rian-be rian-be self-assigned this May 29, 2026
@rian-be rian-be added Architecture Architecture-related changes Performance Performance improvements or regressions labels May 29, 2026
@rian-be rian-be linked an issue May 29, 2026 that may be closed by this pull request
16 tasks
@rian-be rian-be merged commit 89c6dea into main May 29, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Architecture Architecture-related changes Performance Performance improvements or regressions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Task]: BenchmarkDotNet suite for CPU side render pipeline performance

1 participant