# Render gate: exactness and performance, build against build The render gate measures a **candidate** viewer build against a **baseline** build on the machine it runs on, and fails when the candidate renders differently than its commit says it should, or renders slower. It is an opt-in tool for changes to the render path (shaders, materials, the frame loop, view-dependent CPU logic), not a CI gate: CI has no GPU, and the answer it gives is only meaningful on real hardware. ```bash make render-gate BASE=origin/main CAND=HEAD # exactness, IDENTICAL class make render-gate BASE=HEAD~1 CAND=HEAD CLASS=ULP # a math-moving commit make render-gate BASE=HEAD~1 CAND=HEAD INTENDED=env_splats # declared intended change make render-gate BASE=origin/main CAND=HEAD SUITE=perf # performance only make render-gate BASE=HEAD CAND=WORKTREE ONLY=mixed # uncommitted work, one case ``` The script behind it is `packages/luxar-viewer/scripts/render-gate/run-gate.mjs` (pass extra flags with `GATE_ARGS=`, e.g. `GATE_ARGS="--backends webgl --dsf 1"`). Reports land in `delme/gate/