test(bench): SponzaBench harness + #40→HEAD perf measurement (#155)

Headless benchmark around the native Sponza RT scene: times setup and a
measured Render() loop over the full multi-mesh atrium, prints BENCH
metrics, and exits. Includes run-bench.sh and a README documenting the
methodology and the measured net gain from #40 to current master.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
catbot 2026-06-18 19:35:54 +00:00
commit 619e39369d
7 changed files with 616 additions and 0 deletions

View file

@ -0,0 +1,16 @@
#version 460
#extension GL_EXT_ray_tracing : enable
// Benchmark closest-hit: shade from the hit's barycentric coordinates.
// SponzaBench deliberately avoids the descriptor-heap texture sample the
// interactive Sponza example uses — the point here is to measure the
// ray-tracing traversal + frame-loop cost, not texturing, and a
// texture-free hit keeps the host setup portable across library
// revisions (issue #155).
hitAttributeEXT vec2 hitAttrs;
layout(location = 0) rayPayloadInEXT vec3 hitValue;
void main() {
vec3 bary = vec3(1.0 - hitAttrs.x - hitAttrs.y, hitAttrs.x, hitAttrs.y);
hitValue = bary;
}