diff --git a/core/dr-inference-engine/src/probe.rs b/core/dr-inference-engine/src/probe.rs index 8770dcf..0338a85 100644 --- a/core/dr-inference-engine/src/probe.rs +++ b/core/dr-inference-engine/src/probe.rs @@ -166,7 +166,16 @@ pub fn run(runtime: Runtime) { } if cache.rung.is_none() { cache.rung = Some(Rung::Cpu); - cache.reason = match cache.failed.first() { + // The rung that tried and lost, not the first one the runtime was + // never built with: "WebGPU 150 ms, slower than the CPU" says why + // this device is on the CPU, "TensorRT not enabled" does not. + let tried = cache + .failed + .iter() + .rev() + .find(|(_, why)| !why.contains("in this build")) + .or(cache.failed.first()); + cache.reason = match tried { Some((r, why)) => format!("{} {}", r.label(), first_line(why)), None => "the only rung on this platform".into(), };