Summary
Introduce dedicated BenchmarkDotNet suite for measuring the CPU side performance of render pipeline. The benchmark suite should provide repeatable baselines for the parts of rendering that happen before OpenGL/GPU execution: timeline processing, render event translation, render state assembly, scene snapshot generation, visibility planning, and preparation of CPU side data structures used by GPU buffers.
This should make render performance easier to reason about before optimization work starts. Instead of relying on manual FPS observations or full OpenTK window runs, the project should have focused benchmarks that isolate CPU pipeline costs and memory allocations.
Goal
Create repeatable benchmarking setup that measures CPU-side render pipeline performance and memory allocations. The benchmark suite should help identify bottlenecks before data is sent to OpenGL/GPU rendering.
Scope
What should be implemented?
Acceptance Criteria
Notes
Start with CPU side render pipeline benchmarks. Real GPU/OpenTK frame benchmarking should be handled separately because results depend heavily on hardware, drivers, VSync, resolution, and windowing environment.
Useful areas to benchmark include RenderFrameAssembler, SceneFrameUpdater, render state assembly, scene snapshot assembly, visibility planning, label planning, and cpu side gpu contract preparation.
Summary
Introduce dedicated BenchmarkDotNet suite for measuring the CPU side performance of render pipeline. The benchmark suite should provide repeatable baselines for the parts of rendering that happen before OpenGL/GPU execution: timeline processing, render event translation, render state assembly, scene snapshot generation, visibility planning, and preparation of CPU side data structures used by GPU buffers.
This should make render performance easier to reason about before optimization work starts. Instead of relying on manual FPS observations or full OpenTK window runs, the project should have focused benchmarks that isolate CPU pipeline costs and memory allocations.
Goal
Create repeatable benchmarking setup that measures CPU-side render pipeline performance and memory allocations. The benchmark suite should help identify bottlenecks before data is sent to OpenGL/GPU rendering.
Scope
What should be implemented?
Benchmarks/ChangeTrace.Benchmarks.csproj1k,10k,100keventsAcceptance Criteria
Notes
Start with CPU side render pipeline benchmarks. Real GPU/OpenTK frame benchmarking should be handled separately because results depend heavily on hardware, drivers, VSync, resolution, and windowing environment.
Useful areas to benchmark include
RenderFrameAssembler,SceneFrameUpdater, render state assembly, scene snapshot assembly, visibility planning, label planning, and cpu side gpu contract preparation.