View on GitHub

simple-nvidia-undervolt

Command-line NVIDIA GPU undervolting for Windows — a lightweight MSI Afterburner alternative. Caps voltage by flattening the V/F curve, no background process. Tested on RTX 5090 (Blackwell).

End-to-end tests (real GPU writes)

xUnit tests that exercise the real built executable (src/bin/simple-nvidia-undervolt.exe) against the actual driver and Task Scheduler: the action always goes through the exe, and the result is verified with direct library calls (reading the GPU via NVAPI, inspecting files, or querying Task Scheduler). They are a separate project from tests/ (pure logic, no GPU) so the unit tests stay fast and hardware-free.

⚠️ These change live GPU tuning and touch Task Scheduler / %LOCALAPPDATA%. A collection fixture snapshots the current core V/F curve deltas, memory offset and voltage boost and restores them when the run finishes; the persistence test backs up and restores any existing logon-task registration. Run them deliberately.

Running

From an Administrator shell:

dotnet test e2e

Each test is skipped (not failed) unless the host is elevated and an NVIDIA GPU is present, so running without admin — or as part of a wider dotnet test — does nothing.

The persistence test mutates the real nvidia-simple-undervolt logon task and %LOCALAPPDATA% install, but backs both up and restores them when it finishes.

What runs

All actions are driven through the exe; assertions read back directly.