PenguinBurner / contributor field guide
Auto-UV, from scan to save.
A short cookbook for the updated algorithm, the edge cases fixed in PR #72, and recorded three-tier verification on an RTX 5080.
PR #72Loading recorded results…6 September 2026
RTX 5080 · recovery verification
Verification of the recovery changes is pending. The measurements below remain the earlier recorded smoothing run.
The saved anchor is a curve setting; Q2RTX mean MHz is measured under load. Final FPS/W is Q2RTX FPS divided by measured watts. Settings differ from the historical run below, so these short final checks do not establish a performance gain.
Each tier measures its own stock-curve baseline at its power and memory settings, so changes against those scan baselines cannot rank profiles. The Profiles table keeps FPS and other metrics absolute. Only power shows a percentage against the matching GPU’s factory power limit, green below that limit: this is a cap comparison, not measured savings against a stock benchmark. If the GPU’s factory limit is unavailable, the table shows watts alone.
Why tiers choose different points. Efficiency ranks eligible passes by raw measured FPS/W, without a 1% threshold. Balanced normally adopts a lower voltage after a
>1% temperature-normalized FPS/W gain; a passing lower point can remain unselected. A confirmed wall can retain a non-losing current point. Performance descent has no FPS/W wall; its AutoOC favors measured Q2RTX clock.
Descent rules ·
AutoOC scoring.
Recovery build and run evidence
RTX 5080 · current recovery curves
Exact saved curves from the recovery run above, over their full voltage range. Every view uses 0–3250 MHz. Straight lines join the native points; the chart adds no smoothing.
Move over the plot for exact curve points.
Saved MHz is a curve anchor, not a promise of loaded MHz; compare it with the measured Q2RTX clock in the receipt. Final checks confirm the recorded scan/save path, not long-term stability in games or every intermediate V/F point. The historical smoothing comparison remains separate below.
Error recovery only
A failed candidate can leave safer options. Follow the highlighted arrow back to see the automatic retry. Setup and persistence failures have a separate stop boundary; completed profiles are kept.
Reject → retreat → retry, or stop with a defined result
Search failures and final-verification failures
Search recovery: flattened baseline: up to ten probes; custom lower clock: continue remaining planned steps; AutoOC UNSAFE: at most one lower-clock backoff at the allowed voltage ceiling, then end the climb. Voltage descent stops and keeps eligible passing history.
Final retry: use an exact curve that already passed a probe. Try lower MHz, including at the same voltage, or higher voltage without raising MHz. Failed pairs cannot repeat; the finite pool ends the loop.
Hard boundary: a lost backend must recover enough to reset, apply and read back the next candidate. If it cannot, stop probing and return completed adaptive profiles if any. A user stop exits without automatic retry.
A usable stock measurement is required before flattened-baseline retreat; a failed stock reference can prevent any result. Candidate crash markers exclude baseline/discovery. User cancellation keeps files already saved but does not imply a successful return. Full phase bounds and the single-tier stop exception are documented below.
The complete algorithm
Read top to bottom; follow the arrows back to see what repeats. Blue prepares the GPU, green carries passing evidence, amber retries or skips, and red stops further probing. The five blocks separate the loops from their shared exit rules.
01 One request → bounded searches → saved tiers
Lifecycle · visible next-tier loop
Reuse: baseline power, memory and tail must match. Performance can reuse Balanced descent only with matching policy and baseline evidence within 10 mV / 15 MHz.
No model table: the finite voltage sweep still works; table-only clock work is skipped. Missing editable V/F support or a failed first baseline can prevent any new profile.
Saved recovery: a selected checkpoint can bypass fresh baseline/descent. Final retries use the history available to that resumed search; they do not import every older saved record.
Owner: tier orchestration and shared final retries. Every completed tier is saved immediately. An ordinary later-tier error continues to the next tier; an unusable backend stops probing and returns already completed adaptive profiles.
02 Baseline recovery: lower the clock, at most ten probes
Same voltage and tail · 15 MHz retreat
Start with stock: a failed stock reference stops baseline preparation. A passing stock measurement supplies the initial flattened target; it is not relabeled as a passing flattened curve.
After rejection: lower the flattened clock by 15 MHz. Reload the blacklist before each attempt and jump below a blocked clock band. Ten probes is the total bound, including the first.
Exit: keep the first passing exact curve. Exhaustion or a voltage-wide block ends baseline preparation. Critical errors and user stops do not trigger another attempt.
Owners: baseline selection and retreat · probe/reset/readback path. Baseline probes use Q2RTX only; the final profile still requires its long Q2RTX + CUDA check.
03 Voltage descent: each next probe moves down
One sweep · finite editable bins
Efficiency: descend once toward the floor, then rank eligible passing curves by measured FPS/W. Equal scores favor measured MHz, lower power, then the earlier result.
Balanced: a confirmed, temperature-normalized FPS/W wall can end descent after the required voltage drop. Keep the better passing point. Performance has no FPS/W descent wall.
Stop this sweep: no lower legal bin, floor reached, cached unsafe pair, candidate rejection or Balanced’s wall. A legal starting point remains available when no first step exists.
Owners: shared sweep · next lower bin · FPS/W policy.
04 Clock targets: keep trying lower steps; back off after instability
Lower a custom clock target
Up to ten planned steps · proven sweep voltage
Raise clocks or reclaim a target
Finite rungs · fixed voltage ceiling
Lower custom MHz: continue through at most ten planned lower steps, including after a rejected intermediate step. Skip cached pairs. Keep the proven sweep voltage and apply the custom selection limits.
Fresh or cached UNSAFE: try at most one backoff at the highest allowed ladder voltage using an earlier passing clock, if the pair is allowed. Then end the climb and filter all passing evidence again.
Other outcomes: a recoverable rejection can retry the same MHz at finite higher voltages. Critical errors stop probing. A measured power wall stops increasing the requested clock.
Owners: custom targets · finite ladder · OC backoff and scoring. No clock work or no model endpoint continues to final selection. A power-wall stop requires over 22.5 MHz shortfall plus measured power-limit or hardware-brake evidence. Selection rechecks the blacklist and any custom limits; a target with no eligible passing curve fails that tier.
05 Final verification: retry automatically, save, or take a defined exit
Exact tested plans · no repeated failed voltage/MHz pair
Next candidate: lower MHz, including at the same voltage, or higher voltage without raising MHz. Filter the available tested history by the fresh blacklist, failed pairs and custom limits. No new retry dialog.
Comparable reference: a custom lower-clock retry uses its own passing measurement for FPS/load checks. Other final checks use the passing tier baseline. The failed higher target is not the new reference.
Partial success: ordinary exhaustion skips an adaptive tier. Critical, backend or persistence errors stop further probing; completed adaptive profiles are returned when available. Zero completed profiles reports the error.
Owners: automatic retry and partial-result boundary · final verification and saving. The shared retry path serves fresh single-tier, adaptive and resumed scans, using each path’s available history.
What happens when work stops?
Candidate instability ≠ an unusable backend. Evidenced Xid/device-loss, process crashes, CUDA verification/kernel failures and confirmed hangs reject the point as UNSAFE. The next candidate must still pass reset/apply/readback. Missing game data, initialization/allocation failures, missing or invalid measurement evidence and unexplained fatal results remain critical.
Decision rules.
Checkpoint ≠ final verification. Passing flattened baselines and accepted descent selections are written durably. Some other passes remain in history until selection. Only a successful final soak and save produce a final verified profile; an unsafe point cannot be revived merely because it passed earlier. A backend-close warning during cleanup does not replace a completed result or promote an unverified point.
Crash evidence survives the failure. Candidate phases, including adaptive tiers, write in-flight markers. Observed crashes are recorded before post-probe power readback; a failed blacklist write stops probing and retains the marker. A later run accepts recognized probing markers with positive whole-number voltage/MHz, including shallow steps and reduced clocks. Clean stops remove markers; baseline/discovery remain excluded. An abrupt ending alone does not prove its cause.
Probe persistence ·
marker recovery.
Finite bounds: ≤3 tiers · ≤10 flattened-baseline probes · strictly lower voltage bins · ≤10 custom down-clock steps · ≤10 main OC rungs plus finite voltage retries · one backoff after an unsafe result · at most one hang-confirmation re-probe · final retries exclude every failed pair. Default final durations: 60 / 180 / 300 seconds for Efficiency / Balanced / Performance, unless explicitly overridden.
Targets are curve anchors. Two rising tail bins add nominal 30 MHz of boost headroom. Requested mV/MHz can differ from loaded telemetry; power limiting can lower clock. Neither the anchor nor the tail is a hard voltage lock.
What changed
- Same Advanced control order in all tiers: voltage, core MHz, memory offset, power limit.
- Custom MHz bounds: Efficiency −15% to Balanced; Balanced from Efficiency to Performance; Performance up to +5%.
- Removed clock-loss percentage gates. Workload failures, lost load, FPS regressions, and readback errors still reject candidates.
- Exact tested curves survive selection and saving; matching tier baselines and descents can be reused.
- Unknown GPUs use hardware bounds and a baseline-derived voltage floor; missing table targets preserve the passing undervolt.
Recovery fixes
- Expected candidate crashes blacklist and back off; setup and observation failures still stop probing.
- Failed flattened baselines can retreat through a bounded lower-clock loop.
- Custom lower-clock steps continue after intermediate rejection.
- Final checks automatically retry eligible tested curves, including lower clocks at the same voltage.
- Fresh blacklist checks prevent later crashes from reviving earlier passing points inside the unsafe band.
- Completed adaptive tiers survive later backend failures; failed blacklist writes retain the crash marker.
RTX 5080 · historical smoothing verification
Quick verification only: each tier used 10 seconds of final testing: 8 seconds Q2RTX + 2 seconds CUDA. Search probes kept their normal duration. This verifies the scan/save path, not long-term game stability or every intermediate V/F point.
RTX 5080 · historical before/after smoothing
Original final-probe curves from 5 September versus the historical smoothed run above. Every tier uses the same 0–3250 MHz axis. Straight lines join the recorded points; the chart adds no visual smoothing. All tiers overlays the final smoothed curves; choose a tier to compare it with the pre-smoothing curve. The newer recovery run above uses different custom targets and memory/power settings; it is not part of this geometry comparison.
Move over the plot for exact curve points.
Historical anchors and settings differ: the old tiers used 2 / 4 / 4 tail bins and their power-cap writes were skipped. This compares recorded geometry, not an isolated smoothing effect or a controlled FPS/W gain. Original historical final-profile files are unavailable; their final-probe curves match the surviving checkpoints, and the log records successful final checks and saves.
Historical verification evidence
Maintainer rules and limits
Keep search steps finite and monotonic; preserve passing checkpoints when improvement stops. Critical setup/measurement errors and an unusable backend end further probing; evidenced candidate instability takes the bounded fallback path. Never call an untested fallback stable, rebuild a selected curve, bypass the daemon for GPU writes, or silently exceed a custom target.
No table entry is required for a finite voltage sweep: the fallback floor is 10% below loaded baseline voltage. An unknown GPU may still lack required driver access or fail baseline validation; report that reason rather than promising a verified profile.