I've skipped trying FreeSync and G-Sync because I have a LCDs fully compatible with Emudrivers, so I get perfect sync and no tearing anyway (although at an additional CPU time cost compared to the commercial variable refresh solutions, of course, since I also use frame_delay) but I could read many people around who own a proper commercial variable refresh setup...complaining, no matter which build they use.
My uneducted understanding is that you basically need to activate Free/Gsync on both your GPU and compatible monitor, then turn all of MAME's sync options off, then start playing and that should work perfect.
What you read around though is people saying they can't manage to get it right, they either get wrong refresh speeds, or tearing, or no tearing but intermittent frame hiccups.
So some intervene telling them they need vsync (which option? they don't tell) and that sounds counter-intuitive.
Dunno, my hardware and Groovy/Emudriver made acquiring a Free/Gsync monitor unnecessary, anyway maybe some day I'll get one and experience commercial variable refresh myself, using whatever build.