gpu: run a single representative scene per tool by default

glmark2 (terrain) and vkmark (texture) now each run one ~10s scene instead of
the full multi-scene sweep, cutting the headed part to about a minute. Scene
seconds and the vkmark scene are tunable via GLMARK2_DURATION, VKMARK_DURATION
and VKMARK_BENCH.
This commit is contained in:
smill 2026-09-29 21:14:30 -04:00
commit 8e9fd82e8e
3 changed files with 16 additions and 7 deletions

View file

@ -240,12 +240,12 @@ Headless part (`~25-30 min` per pass):
| 9 | `systemd-analyze` | <1 min | informational |
| + | PTS short core (`RUN_PTS=1`) | +30-45 min | kernel build, c-ray, stream |
Headed part (`~4-5 min` per pass):
Headed part (`~1 min` per pass):
| # | Step | ~Time | Notes |
|---|------|-------|-------|
| 1 | `glmark2` | ~1-2 min | pinned to the dGPU |
| 2 | `vkmark` | ~2-3 min | pinned to the dGPU |
| 1 | `glmark2` (terrain, 10 s) | ~15 s | pinned to the dGPU |
| 2 | `vkmark` (texture, 10 s) | ~15 s | pinned to the dGPU |
Every step writes its own `results/<name>-<tag>.txt/json`.
@ -256,6 +256,7 @@ RUN_APPS=0 ./run-benchmarks.sh before headless # skip the app workloads
CORPUS=/path ./run-benchmarks.sh before headless # app corpus cache location
GOVERNOR=powersave ./run-benchmarks.sh after headless # pin a governor (see §7)
RUN_GPU=0 ./run-benchmarks.sh before # skip GPU tests in 'all' mode
GLMARK2_DURATION=10 VKMARK_BENCH=shading ./run-benchmarks.sh before headed # GPU scenes
TOOLS=/path ./run-benchmarks.sh before headless # custom tools dir
GPU_PCI=0000:03:00.0 ./run-benchmarks.sh before headed # force a GPU
FIOFILE=/data/fio.bin ./run-benchmarks.sh before headless # fio scratch file

View file

@ -158,8 +158,10 @@
# (from /sys/class/drm: the dGPU is the card with no connected connector)
glxinfo -B | tee glxinfo-$TAG.txt
vulkaninfo --summary | tee vulkan-$TAG.txt
glmark2 -b :duration=30 2>&1 | tail -25 | tee glmark2-$TAG.txt
vkmark --duration 60 2>&1 | tail -30 | tee vkmark-$TAG.txt
# One representative scene each (fast, comparable); tune with GLMARK2_DURATION,
# VKMARK_DURATION and VKMARK_BENCH (texture|shading|vertex).
glmark2 -b terrain:duration=10 2>&1 | tail -25 | tee glmark2-$TAG.txt
vkmark -b texture:duration=10 2>&1 | tail -30 | tee vkmark-$TAG.txt
phoronix-test-suite benchmark pts/vkmark # if available in cache
# Confirm which GPU rendered: grep -i 'device\|renderer' glxinfo-$TAG.txt

View file

@ -39,6 +39,9 @@
# CORPUS_URL=... base URL the sample corpora are fetched from
# GOVERNOR=powersave CPU governor to pin (default performance); an explicit
# value is appended to the tag, e.g. after-powersave-headless
# GLMARK2_DURATION=10 seconds for the glmark2 scene (headed part)
# VKMARK_DURATION=10 seconds for the vkmark scene (headed part)
# VKMARK_BENCH=texture vkmark scene to run (e.g. texture, shading, vertex)
#
# Run the headless part with a TTY so sudo can prompt for power logging:
# ssh -t <target> '~/basic-benchmark/run-benchmarks.sh before headless'
@ -817,16 +820,19 @@ run_headless() {
run_headed() {
section "GPU: glmark2 / vkmark (pinned to ${GPU_PCI:-default})"
# One representative scene each by default (fast, comparable). Override the
# scene/options with GLMARK2_BENCH / VKMARK_BENCH, or the seconds with
# GLMARK2_DURATION / VKMARK_DURATION.
phase "glmark2"
if have glmark2; then
glmark2 -b :duration=30 2>&1 | tail -25 | tee "glmark2-$TAG.txt"
glmark2 -b "terrain:duration=${GLMARK2_DURATION:-10}" 2>&1 | tail -25 | tee "glmark2-$TAG.txt"
reg_score "glmark2" "$(gpu_score glmark2 "glmark2-$TAG.txt")"
else
printf 'skip (glmark2 missing) — sudo dnf install -y glmark2\n'
fi
phase "vkmark"
if have vkmark; then
vkmark -b :duration=60 2>&1 | tail -30 | tee "vkmark-$TAG.txt"
vkmark -b "${VKMARK_BENCH:-texture}:duration=${VKMARK_DURATION:-10}" 2>&1 | tail -30 | tee "vkmark-$TAG.txt"
reg_score "vkmark" "$(gpu_score vkmark "vkmark-$TAG.txt")"
else
printf 'skip (vkmark missing) — sudo dnf install -y vkmark\n'