From cac7baa03a09ebe93fdcb8b57bf882af7b3adc9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Mockers?= Date: Sun, 18 Jan 2026 02:31:54 +0100 Subject: [PATCH 1/4] don't keep params in graph name --- src/bin/reports.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bin/reports.rs b/src/bin/reports.rs index 4d285e0c2..e400bd302 100644 --- a/src/bin/reports.rs +++ b/src/bin/reports.rs @@ -311,8 +311,9 @@ fn setup_runtime(kind: &str, stats: &[Stats], cache_id: &str) -> Vec<(String, f6 serde_json::to_writer( std::fs::File::create(format!( - "data/{}_{}{cache_id}.json", - stress_test.0, stress_test.1 + "data/{}{}{cache_id}.json", + stress_test.0, + stress_test.1.replace("params", ""), )) .unwrap(), &values, @@ -349,7 +350,7 @@ fn setup_runtime(kind: &str, stats: &[Stats], cache_id: &str) -> Vec<(String, f6 with_z_scores .into_iter() - .map(|(name, params, z_score)| (format!("{name}_{params}"), z_score)) + .map(|(name, params, z_score)| (format!("{name}{}", params.replace("params", "")), z_score)) .collect() } From d5ec217db5d56445993a43959dee913f67d532b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Mockers?= Date: Sun, 18 Jan 2026 02:32:33 +0100 Subject: [PATCH 2/4] display frame time from mangohud if available --- src/bin/reports.rs | 8 + templates/stress-tests.html | 824 +++++++++++++++++++----------------- 2 files changed, 437 insertions(+), 395 deletions(-) diff --git a/src/bin/reports.rs b/src/bin/reports.rs index e400bd302..804ec602e 100644 --- a/src/bin/reports.rs +++ b/src/bin/reports.rs @@ -235,6 +235,7 @@ fn setup_runtime(kind: &str, stats: &[Stats], cache_id: &str) -> Vec<(String, f6 timestamp: u128, commit: String, frame_time: u64, + frame_time_mangohud: Option, cpu: u64, gpu: u64, } @@ -285,6 +286,13 @@ fn setup_runtime(kind: &str, stats: &[Stats], cache_id: &str) -> Vec<(String, f6 .cloned() .unwrap() as f64)) as u64, + frame_time_mangohud: stat + .metrics + .get(&format!( + "{kind}.{}.{}.frame_time.mean", + stress_test.0, stress_test.1 + )) + .cloned(), cpu: stat .metrics .get(&format!( diff --git a/templates/stress-tests.html b/templates/stress-tests.html index e21c41f6f..d3568696a 100644 --- a/templates/stress-tests.html +++ b/templates/stress-tests.html @@ -249,439 +249,473 @@ From 94a0f627951a677d806442a24f3c66027ea42081 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Mockers?= Date: Sun, 18 Jan 2026 02:36:57 +0100 Subject: [PATCH 3/4] alphabetical sort --- src/bin/reports.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/reports.rs b/src/bin/reports.rs index 804ec602e..a49446002 100644 --- a/src/bin/reports.rs +++ b/src/bin/reports.rs @@ -88,6 +88,7 @@ fn main() -> Result<(), Box> { let mut runtime = stress_tests; runtime.extend(large_scenes); + runtime.sort_by(|a, b| a.0.cmp(&b.0)); let stress_tests_alpha = runtime .iter() .map(|(name, _)| name.clone()) From 896268858add7d99402f182140bc42448dc2f26d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Mockers?= Date: Sat, 21 Feb 2026 11:55:08 +0100 Subject: [PATCH 4/4] use frame time from mangohud if available for the whole period --- src/bin/reports.rs | 16 +++++++++++++++- templates/stress-tests.html | 31 +------------------------------ 2 files changed, 16 insertions(+), 31 deletions(-) diff --git a/src/bin/reports.rs b/src/bin/reports.rs index a49446002..e3d684824 100644 --- a/src/bin/reports.rs +++ b/src/bin/reports.rs @@ -257,7 +257,7 @@ fn setup_runtime(kind: &str, stats: &[Stats], cache_id: &str) -> Vec<(String, f6 let with_z_scores = stress_tests .into_iter() .flat_map(|stress_test| { - let values = stats + let mut values = stats .iter() .filter(|stat| { (chrono::Utc::now() @@ -318,6 +318,20 @@ fn setup_runtime(kind: &str, stats: &[Stats], cache_id: &str) -> Vec<(String, f6 return None; } + // frame time from mangohud is available for all commits, use it instead + if values.iter().all(|v| v.frame_time_mangohud.is_some()) { + values.iter_mut().for_each(|v| { + v.frame_time = v.frame_time_mangohud.unwrap(); + v.frame_time_mangohud = None; + }); + } else { + // TODO: once this log doesn't happen, cleanup frame time computation + println!( + "Using old frame time for {} {}", + stress_test.0, stress_test.1 + ); + } + serde_json::to_writer( std::fs::File::create(format!( "data/{}{}{cache_id}.json", diff --git a/templates/stress-tests.html b/templates/stress-tests.html index d3568696a..9ce6e1769 100644 --- a/templates/stress-tests.html +++ b/templates/stress-tests.html @@ -293,31 +293,7 @@ ], layer: [ - {layer:[{ - mark: { - type: "circle", - color: "red", - }, - encoding: { - x: { - title: "", - field: "timestamp", - type: "temporal", - scale: {domain: {selection: "between"}}, - }, - y: { - field: "frame_time_mangohud", - type: "quantitative", - scale: { - zero: { expr: "has_zero" }, - }, - axis: { - formatType: "duration", - }, - title: "Frame Time", - }, - } - }, + {layer:[ { mark: { type: "circle", @@ -346,11 +322,6 @@ formatType: "duration", title: "Duration", }, - { - field: "frame_time_mangohud", - formatType: "duration", - title: "Frame Time MangoHud", - }, { field: "cpu", formatType: "percent",