Skip to content

ThreadPilot v1.7.3

Choose a tag to compare

@github-actions github-actions released this 26 Aug 21:44
· 4 commits to main since this release

This release started from a single user report: a CPU assignment was applied, saved as a rule, and on the next launch of the game nothing seemed to happen. The rule was being applied β€” in a mode that changes nothing you can see. Pulling that thread turned up a family of related problems, and they are all fixed here.

If you had a rule that seemed to do nothing

Your saved rules are migrated automatically the first time you launch 1.7.3.

Windows offers two ways to steer a process onto specific CPUs: a real affinity mask, which is a hard constraint and is visible in Task Manager, and CPU Sets, which are only a scheduling hint and leave the affinity mask untouched. The old "ThreadPilot automatic" mode used CPU Sets. Version 1.7.1 changed the default to Affinity Mask, and 1.7.2 moved existing profiles over β€” but rules already saved kept the mode they were captured with, forever. So a rule saved before 1.7.1 kept applying an invisible hint on every process start, indistinguishable from a rule that never ran.

Those rules are now moved once, automatically. If you had a rule that "did nothing", it should simply start working. Rules where you deliberately chose CPU Sets or Ideal Processor are left exactly as they are.

Saved rules are no longer invisible

Rules saved from the Process tab context menu had no interface at all β€” you could create them and nothing else. The Rules page now has a Saved process rules tab that lists them, spells out what each one applies, and lets you edit, disable or delete them. It also says plainly how they differ from the power plan rules next to them, which are a separate system.

Two related fixes:

  • "Apply CPU assignment and save as rule" no longer silently drops your memory and I/O priority from a rule that already had them.
  • Saving a rule for a process now records the settings that are actually on it, rather than partially overwriting what you saved a minute earlier.

Buttons that did nothing, or lied

  • "+ Custom" in the affinity picker did nothing at all β€” it looked for a UI element that has not existed for several versions. It now opens the CPU Masks page, which is what its tooltip always promised.
  • Clearing CPU Sets left the core chips showing the assignment that had just been removed, so a rule saved right after captured the wrong cores.
  • Successful actions left no trace. Applying an assignment or a priority set a confirmation and then wiped it before you could read it, while failures stayed on screen. Confirmations now stay up and fade on their own β€” for CPU priority, memory priority, I/O priority and registry enforcement too, not just affinity.

System Tweaks

  • Ethernet power saving and interrupt moderation reported themselves unavailable with a raw Windows error on many machines. A single network adapter the app could not read β€” VPN and vendor virtual adapters ship with tighter permissions β€” aborted the entire scan, even when every real Ethernet adapter was readable. They are detected properly now.
  • Memory Integrity (HVCI) read only one registry location, which several Windows builds leave empty, and reported "not exposed by Windows". It now reads where the running state actually lives.
  • Those failures used to display a raw framework message. Errors go to the log; the card gets a sentence you can act on.
  • Three buttons on that page were unreadable in dark theme β€” near-white text on near-white chrome. Fixed.

Windows and masks

  • Restoring a maximised window left it filling the screen, so it had to be dragged back by a border. It now returns to the exact size and position it had before, on the monitor it was on.
  • Custom CPU masks drawn on a different CPU used to keep selecting the old cores under a name that no longer described them. The Masks page now names the ones that need a look. Built-in masks are re-derived automatically; the ones you drew are yours, so ThreadPilot asks instead of redrawing them.

Notes

Rules are applied by ThreadPilot while it is running, including when it sits in the tray β€” closing the window keeps it working. Quitting from the tray stops it, and restores what it changed, which is what the "Reset process changes on exit" setting controls.

No configuration is lost by updating, and nothing needs to be re-created by hand.


Download: ThreadPilot_v1.7.3_Setup.exe (installer) or ThreadPilot_v1.7.3_Portable.zip (portable). Verify with SHA256SUMS.txt.

Full changelog: v1.7.2...v1.7.3 Β· #55