From 8e9fd82e8e799977c783e038bdb6c3ec853a0fd5 Mon Sep 17 00:00:00 2001 From: smill Date: Tue, 29 Sep 2026 21:14:30 -0400 Subject: [PATCH] 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. --- README.md | 7 ++++--- benchmarks.txt | 6 ++++-- run-benchmarks.sh | 10 ++++++++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5703a79..1b023df 100644 --- a/README.md +++ b/README.md @@ -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/-.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 diff --git a/benchmarks.txt b/benchmarks.txt index 7e47746..e0747a0 100644 --- a/benchmarks.txt +++ b/benchmarks.txt @@ -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 diff --git a/run-benchmarks.sh b/run-benchmarks.sh index 85588bf..063213f 100755 --- a/run-benchmarks.sh +++ b/run-benchmarks.sh @@ -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 '~/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'