Files
netris-nestri/apps/nesdoctor/Cargo.toml
Wanjohi b055e40546 fix(nesdoctor): the first Windows submission recorded a virtual display adapter
Our first response, and the GPU field is wrong:

  gpu=Parsec%20Virtual%20Display%20Adapter&gpus=2

Parsec installs an indirect display driver, it enumerated first out of
`Win32_VideoController`, and the primary was taken as the first entry -- so the
real card on that machine is gone. `gpus=2` is the only reason we can tell
anything was lost, and it cannot tell us what.

This is not an edge case for this audience. Parsec, Sunshine, Moonlight,
TeamViewer and Splashtop all install one, and a cloud-gaming community is
precisely the population that has one already. A recorded gpu_model is a hard
requirement for a host; a virtual display driver satisfies it in name only.

Three changes.

Adapters are now sorted so real hardware is first, by two keys: whether the
name matches a known software adapter, then whether a vendor could be
identified at all. Order is the only signal the rest of the program has for
which GPU is "the" GPU.

The vendor comes from `AdapterCompatibility` rather than from
pattern-matching the marketing name. An "AMD Radeon" string is easy; an
OEM-rebadged one is not.

And every adapter name is now sent, not only the count. `gpus=2` told us
something had been lost and not what, which is the kind of field that wastes a
response we cannot ask again.

The known-software-adapter list has unit tests, on all platforms -- it is a
list of strings and it will need extending, so it should fail loudly rather
than quietly stop matching.

Version to 0.1.2.

For the record, what that submission got right, because none of it needed
asking: 50% of 165 Steam launch records fall in five hours of twenty-four
(21:00-01:59) against five records across the whole of 07:00-13:59. That is
0017's evening peak, measured, from one person's own files. 140 of the 165
records are titles no longer installed -- restricting the histogram to
installed titles, as review suggested, would have left 25 samples and lost the
shape entirely.
2026-09-02 14:42:51 +03:00

26 lines
831 B
TOML

[package]
name = "nesdoctor"
version = "0.1.2"
edition.workspace = true
license.workspace = true
repository.workspace = true
[[bin]]
name = "nesdoctor"
path = "src/main.rs"
# Dependencies are deliberately few. This binary is handed to strangers and
# asked to be trusted with a look at their machine, so the dependency tree is
# part of the interface: a reviewer has to be able to read all of it. Anything
# that can be done with `std` is done with `std` -- the VDF parser and every
# platform probe shell out or read files rather than pulling a crate.
[dependencies]
anyhow.workspace = true
clap.workspace = true
serde.workspace = true
serde_json.workspace = true
# The one non-trivial dependency, and only for the throughput half of the
# network test. rustls rather than native-tls so there is no OpenSSL to find.
ureq = "3"