Instead of having control over specific threads, thread pinning puts the
EE/VU/GS threads on the most performant cores, then the software threads
on the remaining cores, but only if they're in the same cluster.
This way we don't end up pinning across clusters with different
performance characteristics, which would harm instead of help software
renderer performance.
Also unpins on shutdown, that way we don't keep CPU cores awake.
All games use mailbox/triple buffering. Except when you enable sync to
host refresh, in which case FIFO/double buffering is used.
This means vsync enabled will ever tear, but at the same time, never
drop to 30fps on a missed frame due to frame rate differences.
To have the "best of both worlds", you should enable vsync and sync to
host refresh. Previously, this resulted in additional input lag, since
the host vsync would drive the EE frame timing. Now, this behaviour is
disabled by default, unless you enable "Use Host VSync Timing".
Move files from Frontend directory to pcsx2 and/or subdirectories.
Get rid of double GS init.
Combine HostSettings and Host.
Combine Frontend/Achievements.h and Achievements.h.
- Adding the actual corrections from #8048 that were not added by #8119.
- Fixing typos and missing ending periods.
- Unifying the writing of certain terms:
- Memory Card uppercased following Sony's writing (taken from PS2 manual).
- gamefixes/game fixes -> game fixes
- fast forward/fastforward/fast-forward -> fast-forward (taken from Oxford)
- slowmotion/slow motion/slow-motion -> slow-motion (following the same convention as before, as I could not find this in Oxford's)
- framebuffer/frame buffer -> framebuffer
- Xbox name properly uppercased (for Controller settings)
- Correcting RA's Rich Presence to separate it from Discord's Rich Presence (after discussions in the Translations channel).
- Unification of option names in the option area and the hint area.
- Adding a fix for the (currently broken) Stretch Height/Vertical Stretch tooltip.
Lowering 100 ms audio latency to 60 ms.
Makes 100 mixing latency with 20 output latency (120) into a new default of 80 ms which is 50% lower but still is enough headroom as 40 ms even for less capable machines is too high.
Adding tooltip for Affinity Control
Changing tooltip for Cycle Skip from None to Disabled as that is a valid option.
Qt has a leftover from the old SPU2-X values which is 3000 ms (3 seconds) latency meaning that if an user sets it to the max it will do something like this: Videoframe ~150 / 180 happens and it makes the first sound after 3 seconds for the first videoframe which is far too long. Also changed 1% speed as it messed with the GSdump player and too stuttery to be usable in other usecases.
The main window will now correctly display the full Toolbar. Interface Settings will not go out of bounds. The OSD message for cheats and patches has been changed and the overall timing of the static (not dynamic) OSD messages are now 5 seconds instead of 10 seconds which is pretty long. Tested on 1920 x 1080 + 2560 x 1080 on 125% and 150% DPI scaling.