Comment by josefx

Comment by josefx 5 days ago

6 replies

It isn't always pure overhead, but also jitter, additional delays and other issues caused by the indirection. Most systems have a way to mostly override the compositor for fullscreen windows and for games and other applications where visible jitter and delays are an issue you want that even on modern hardware.

kllrnohj 4 days ago

> Most systems have a way to mostly override the compositor for fullscreen windows and for games

No, they don't. I don't think Wayland ever supported exclusive fullscreen, MacOS doesn't, and Windows killed it a while back as well (in a Windows 10 update like 5-ish years ago?)

Jitter is a non-issue for things you want vsync'd (like every UI), and for games the modern solution is gsync/freesync which is significantly better than tearing.

  • josefx 4 days ago

    > I don't think Wayland ever supported

    Isn't that true for even the most basic features you expect from a windowing system? X11 may have come with everything and the kitchen sink, Wayland drops all that fun on the implementations.

    GNOME does unredirect on Wayland since 2019: https://www.reddit.com/r/linux/comments/g2g99z/wayland_surfa...

    > Windows killed it

    They replaced it with "Fullscreen Optimisations", which is mostly the same, but more flexible as leaves detection of fullscreen exclusive windows to the window manager.

    https://devblogs.microsoft.com/directx/demystifying-full-scr...

    As far as I can find the update removed the option to turn this of.

    • kllrnohj 3 days ago

      In both the GNOME and Windows "Fullscreen Optimizations" it's the compositor doing an internal optimzation to avoid a copy when it's not necessary. In neither scenario is the system nor applications "overriding" or bypassing the compositor. The compositor still has exclusive ownership of the display. And the application's swapchain is still configured as if it was going through a composition pass (eg, it's probably not double-buffered)

      • josefx 3 days ago

        > it's the compositor doing an internal optimzation to avoid a copy when it's not necessary.

        Yeah, it avoids doing the compositing part of being a compositor. It bypasses the entire pipeline.

    • account42 4 days ago

      "Fullscreen Optimisations" is how X11 has always worked.

      Window's actual exclusive fullscreen always caused tons of issues with Alt+TAB because it was designed for a time when you couldn't fit both a game and the desktop in VRAM.

  • account42 4 days ago

    X11 doesn't have an exclusive fullscreen mode either. [*] It's always has relied on compositors and drivers to detect when fullscreen windows can be unredirected. Some programs chose to implement behavior like minimizing on focus loss or grabbing input that is closer to Windows's exclusive fullscreen mode but the unredirecting of the display pipeline doesn't depend on that.

    [*] Well, there was an extension (can't recall the name right now) but not much used it and support was dropped at some point.