Skip to content

Latest commit

 

History

History
44 lines (38 loc) · 2.36 KB

benchmarks.md

File metadata and controls

44 lines (38 loc) · 2.36 KB

benchmarks

The scripts cover separate workloads:

./scripts/benchmark-wallpapers.sh [image ...]
./scripts/benchmark-video.sh [video]

Both benchmarks use dynamic FFmpeg by default. To require static linkage, set BENCHMARK_FFMPEG_LINKAGE=static; prepare the toolchain with scripts/install-static-ffmpeg.sh before building. Each script verifies the selected linkage and records it in the report. The wallpaper script also needs a live wayland session, hyperfine, and awww. It starts isolated Wallr and awww daemons with temporary state. Its switching rounds reset both daemons to another image before each timed request, so they measure a real switch rather than repeated no-op requests. The display is given 750 ms to settle before timing each switch, avoiding a benchmark-only burst of outstanding compositor buffers. The initial memory baseline is sampled after both daemons show the same image for five seconds. It reports command submission latency, daemon memory, and one-second process cpu samples. The report includes the RSS change from the settled baseline to show memory retained by the workload. Submission latency does not measure when the new image becomes visible. Set WALLR_BIN and WALLR_DAEMON_BIN to choose the binaries; use BENCHMARK_REPORT to choose the report path. The script creates temporary wallpaper layers during the run and removes its daemons afterward. Systems without FFmpeg development libraries can use the static helper and point both override variables at the same verified static release build. The default report path is benchmarks/wallr-vs-awww.md, so each run replaces the previous report; set BENCHMARK_REPORT only when a separate report is needed.

Dynamic builds use the default Cargo features. Static builds add --features static-ffmpeg. The linkage variable selects and verifies the video probe build; for wallpaper benchmarks it verifies the already-built daemon. Official release binaries remain statically linked.

The video script runs video_probe with software, VAAPI, and NVDEC. It measures decoding, not compositor presentation, gpu rendering, or multi-monitor playback. Hardware results require a matching device and driver.

Keep results with the host, compositor, gpu, driver, display layout, media, and software versions. Measurements from different machines are not directly comparable. One run does not establish a universal winner.