tepples wrote:
Why does vsync require fullscreen in principle?
Waiting for a vsync isn't good use of time or power for programs that don't need it. It shouldn't be the default for the majority of programs. It also allows a lot more flexibility with how applications develop their GUI code.
Really, the need for vertical synchronization is limited to a few types of applications. Games and video are the primary ones. Neither is well suited to multitasking with other applications that also need vsync (though feel free to insist that it's essential that you watch videos with vsync while also playing a game). It seems somewhat reasonable to me to demand that if you want control over the refresh rate you should take over the screen.
tepples wrote:
Why can't a compositing window manager provide vsync to all windows that it manages? Or is it only a limit of the existing popular compositing window managers?
It's not impossible, it just requires that vsync be higher than other priorities when you design your API. It doesn't come without a cost, and I think proritizing this would be detrimental to performance overall. Needs of the few, you know?