Repository navigation
fix: refuse runs and the logon apply on a PC with more than one NVIDIA GPU - #65
Merged
Merged
Conversation
…A GPU NVML, NVAPI and DXGI each take their first NVIDIA card, in their own order. With two cards the tuned card and the stress-tested card can differ, and every step then reads as stable. A run now stops before it starts, and apply at logon applies nothing, when NVML counts more than one device. NVML counts NVIDIA devices only, so an integrated Intel or AMD GPU next to one NVIDIA card is not affected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…A GPU Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A balloon holds 255 characters and the refusal is longer, so the link to the issues was cut off. The balloon now only says what happened; a click opens the window, whose log has the whole refusal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The app takes "the first NVIDIA card" three times, from three lists with their own order: NVML device 0 (power limit, telemetry), NVAPI's first physical GPU (offsets, curve) and DXGI's first NVIDIA adapter (stress load, bandwidth). With two NVIDIA cards the card that is tuned and the card that is tested can differ: the tuned card idles, every step reads as stable, and the run saves a tune that was never tested. The read-back does not catch it.
What
several_gpus()insrc/core/boot.hpp: more than one NVML device refuses; 0, 1 or an unknown count (-1) does not. NVML counts NVIDIA devices only, so an Intel or AMD iGPU is not affected (seen on an RTX 5070 next to an AMD Radeon iGPU:GPUs: 1).decide_bootreturnsSeveralGpusat logon, before the strike.docs/development.mdexplains the choice, and what is not refused yet: the Apply button,gao --applyand the watchdog's re-apply.Tests
core_tests 460/460, app_tests 24/24 at this branch (count, logon order, refusal text, balloon length).
On hardware
Not run on a PC with two NVIDIA cards. On the RTX 5070 with a build forced to count two:
boot.loggot the full refusal, the short balloon appeared, the window's log had the full text, and the tune was not applied. A run from the window was refused but showed nothing; that is fixed in the stacked PR on top of this one.🤖 Generated with Claude Code