but what is autosync doing that mainline can not now? Sorry for my ignorance I'm just refreshing my knowledge. From memory it used to be related to audio and video tearing.
From
here:- New option -autosync:
* With -autosync enabled, -syncrefresh will be activated automatically if the refresh difference is below -syncrefresh_tolerance. If the refresh difference is greater than -syncrefresh_tolerance, -triplebuffer (multithreaded blitting) will be activated for Windows builds, while -nosyncrefresh will be used for SDL builds.
* With -autosync disabled, -syncrefresh (and -triplebuffer for Windows builds) will be configured manually, either from command line or ini files.
Basically, autosync options automates the use of syncrefresh where it's required. Ideally syncrefresh should be enabled for all games, but there are some common suboptimal use cases where there's a non-solvable mismatch between game's and screen's refresh (LCDs, vector games, vertical games on horizontal monitor, etc.) that require syncrefresh to be disabled, that's what autosync does.
By turning autosync off, you're preventing GM from using syncrefresh, making GM pointless (unless you're enabling syncrefresh manually, that's not the case).
GM requires syncrefresh on, period. If that causes poor performance it can be caused by a system that's too weak for what you intend to emulate or that it's not working correctly (drivers, system clock, etc.).