47 lines
1.1 KiB
Markdown

# Sand Benchmarks
This project measures both the dense reference backend and the experimental chunk backend.
## Modes
- `dense-baseline`
- `chunk-baseline`
- `app-sized`
- `snapshot-scenes`
## Main workloads
- `empty`
- `sparse_rain`
- `dense_pile`
- `gas_pocket`
- `tool_stress`
- app-sized `sand_fill`
- app-sized `mixed_pile`
- app-sized `paint_stress`
## Metrics
- average `Step` time
- average `BuildRgbaFrame` time
- app-sized FPS-equivalent comparison numbers
- chunk workload counters (`loaded`, `active`, `stepped`, `dirty`, `field_cells`)
- estimated storage footprint
## Run
```powershell
dotnet run --project Sand.Benchmarks/Sand.Benchmarks.csproj -c Release -- --mode app-sized
```
```powershell
dotnet run --project Sand.Benchmarks/Sand.Benchmarks.csproj -c Release -- --mode snapshot-scenes
```
## Promotion gate
- sparse step speedup must be `>= 25%`
- sparse memory reduction at `1024x1024+` must be `>= 40%`
- dense `512x512` regression must stay within `10%`
- deterministic snapshots must be reviewed after `120` and `300` steps before storage promotion