Hard numbers in the Wayland vs. X11 input latency discussion

mort.coffee

479 points

todsacerdoti

19 hours ago


373 comments

ChuckMcM 17 hours ago

This is excellent. Too often people guess at things when they could be more empirical about them. Ever since I learned the scientific method (I think 3rd or 4th grade) I was all about the 'let's design an experiment' :-).

Let me state up front that I have no idea why Wayland would have this additional latency. That said, having been active in the computer community at the 'birth' of X11 (yes I'm that old) I can tell you that there was, especially early on, a constant whine about screen latency. Whether it was cursor response or xterm scrolling. When "workstations" became a thing, they sometimes had explicit display hardware for just the mouse because that would cut out the latency of rendering the mouse in the frame. (not to mention the infamous XOR patent[1])

As a result of all this whinging, the code paths that were between keyboard/mouse input and their effect on the screen, were constantly being evaluated for ways to "speed them up and reduce latency." Wayland, being something relatively "new" compared to X11, has not had this level of scrutiny for as long. I'm looking forward to folks fixing it though.

[1] https://patents.google.com/patent/US4197590

  • arghwhat 16 hours ago

    Display devices (usually part of your GPU) still have "explicit display hardware just for the mouse" in form of cursor planes. Later this has been generalized as overlay planes.

    Planes can be updated and repositioned without redrawing the rest of the screen (the regular screen image is on the primary plane), so moving the cursor is just a case of committing the new plane position.

    The input latency introduced by GNOME's Mutter (the Wayland server used here) is likely simply a matter of their input sampling and commit timing strategy. Different servers have different strategies and priorities there, which can be good and bad.

    Wayland, which is a protocol, is not involved in the process of positioning regular cursors, so this is entirely display server internals and optimization. What happens on the protocol level is allowing clients to set the cursor image, and telling clients where the cursor is.

    • smallmancontrov 15 hours ago

      Protocols can bake in unfortunate performance implications simply by virtue of defining an interface that doesn't fit the shape needed for good performance. Furthermore, this tends to happen "by default" unless there is a strong voice for performance in the design process.

      Hopefully this general concern doesn't apply to Wayland and the "shape" you have described doesn't sound bad, but the devil is in the details.

      • gizmo686 14 hours ago
        9 more

        I don't think the Wayland protocol is actually involved in this. Wayland describes how clients communicate with the compositor. Neither the cursor, nor the mouse are a client, so no where in the path between moving the mouse and the cursor moving on screen is Wayland actually involved.

        The story is different for applications like games that hide the system cursor to display their own. In those cases, the client needs to receive mouse events from the compositor, then redraw the surface appropriately, all of which does go through Wayland.

        • gf000 13 hours ago
          7 more

          According to Asahi Lina, X does async ioctl that can update the cursor even during the scanout of the current frame, while Wayland does atomic, synced updates on everything, cursor involved, which has the benefit of no tearing and the cursor's state is always in sync with the content, but it does add an average of 1 more frame latency (either updates just in time for the next frame), or it will go to the next frame.

          • arghwhat 12 hours ago
            2 more

            This is not what Wayland does, it is what a particular display server with Wayland support decided to do.

            Second, just to be clear, this only discusses mouse cursors on the desktop - not the content of windows, and in particular not games even if they have cursors. Just the white cursor you browse the Web with.

            Anyway, what you refer to is the legacy drm interface that was replaced by the atomic one. The legacy interface is very broken and does not expose new hardware features, but it did indeed handle cursors as its own magical entity.

            The atomic API does support tearing updates, but cursor updates are currently rejected in that path as drivers are not ready for that, and at the same time, current consensus is that tearing is toggled on when a particular fullscreen game demands it, and games composite any cursors in their own render pass so they're unaffected. Drivers will probably support this eventually, but it's not meant to be a general solution.

            The legacy API could let some hardware swap the cursor position mid-scanout, possibly tearing the cursor, but just because the call is made mid-scanout does not mean that the driver or hardware would do it.

            > but it does add an average of 1 more frame latency

            If you commit just in time (display servers aim to commit as late as possible), then the delay between the commit and a tearing update made just before the pixels were pushed is dependent on the cursor position - if the cursor is at the first line shown, it makes no difference, if on the last shown, it'll be almost a frame newer.

            Averaging cursor positions mean half a frame of extra latency, but with a steady sampling rate instead of rolling shutter.

            Proper commit timing is usually the proper solution, and more importantly helps every other aspect of content delivery as well.

            • gf000 4 hours ago

              Sure, it's what Gnome Wayland does, but the Wayland protocol does sort of mandate that every frame should be perfect, and the cursor has to match the underlying content, e.g. if it moves over a text it has to change to denote that it is selectable.

              I do believe it is a useful tradeoff, though.

          • Vilian an hour ago

            Wayland support tearing too, not sure if gnome do but KDE if the application supports, it can draw with tearing for less latency in full screen

          • TapamN 8 hours ago
            3 more

            It seems like it should be possible to do the X async method without tearing.

            When updating the cursor position, check if line being output overlaps with the cursor. If it isn't, it's safe to update the hardware cursor immediately, without tearing. Otherwise, defer updating the cursor until later (vblank would work) to avoid tearing.

            Of course, this assumes it's possible to read what row of the frame buffer is being displayed. I think most hardware would support it, but I could see driver support being poorly tested, or possibly even missing entirely from Linux's video APIs.

            • arghwhat 4 hours ago

              This would have to be done by the kernel driver for you GPU. I kind of doubt that it's possible (you're not really scanning out lines anymore with things like Display Stream Compression, partial panel self refresh and weird buffer formats), and doubt even more that kernel devs would consider it worth the maintenance burden...

            • bandrami 2 hours ago

              I mean at some point it's a fundamental choice though, right? You can either have sync problems or lag problems and there's a threshold past which improving one makes the other worse. (This is true in audio, at least, and while I don't know video that well I can't see why it would be different.)

        • yxhuvud 3 hours ago

          Well there are opportunities to do the wrong thing though, like sending an event to the client every time it get an update. Which means that high poll rate mice would DDOS less efficient clients. This used to be a problem in Mutter, but that particular issue was fixed.

      • jchw 14 hours ago

        Yeah, Wayland isn't designed in such a way that would require any additional latency on cursor updates. The Wayland protocols almost entirely regard how applications talk to the compositor, and don't really specify how the compositor handles input or output directly. So the pipeline from mouse input coming from evdev devices and then eventually going to DRM planes doesn't actually involve Wayland.

    • wmanley 13 hours ago

      Software works best when the developers take responsibility for solving user's problems.

      > Wayland, which is a protocol

      This is wayland's biggest weakness. The effect is diffusion of responsibility.

      • wmf 12 hours ago
        9 more

        You're kind of getting tripped up on terminology. The OP didn't measure Wayland; they measured GNOME Shell which does take responsibility for its performance. Also, I'm not aware of any latency-related mistakes in Wayland/Weston (given its goal of tear-free compositing).

        • wmanley 10 hours ago
          8 more

          > You're kind of getting tripped up on terminology.

          I'm not. My comment doesn't address the latency of gnome shell. I understand the boring technical distinctions between wayland and wayland client libraries and wayland display servers and gnome shell and mutter and sway, blah blah blah. Much like I understand that Linux is a kernel. That it is inspired by UNIX, but it is technically not a UNIX. I also understand that if someone describes themselves as a Linux user they probably don't just mean that they have a Android phone or that the display controller in their dishwasher or wireless access point happens to include Linux the kernel.

          The "well acksually wayland is just the name of the protocol" that emerges whenever a problem is brought up is a symptom of the underlying problem with wayland the system. The confusion that gives rise to these deflections is also a symptom of that problem.

          By Conway's law systems end up resembling the organisations that produce them. In this way the design of wayland the system seems to be designed by people who don't want to work together. I can see a parallel with microservice architecture.

          • WhyNotHugo 7 hours ago
            7 more

            The distinction between protocol and implementation IS significant here.

            Imagine comparing HTTP1.1 vs HTTP3. These are protocols, but in practice one compares implementations. I can pick curl for http1.1, but Python for http3, and http3 would very likely measures as slower.

            Is that the protocols fault?

            • sshine 6 hours ago
              4 more

              >> ”well acksually wayland is just the name of the protocol" […] is a symptom of the underlying problem

              > well acksually

              It’s not the protocol’s fault, but the system and organisation that brought it.

              • bandrami 2 hours ago
                3 more

                Which brings up the other problem that Wayland introduced, that instead of one incredibly old inscrutable software stack doing these things there are now five (and counting!) new and insufficiently tested software stacks doing these things in slightly different ways.

                • jorvi 14 minutes ago
                  2 more

                  It would have been nice if KDE and Valve could (would?) work together to reimplement KWin's features on top of wlroots. That would have basically made Gnome the sole holdout, and I imagine they'd eventually have switched to the extended wlroots as well, or at least forked it.

                  • bandrami 9 minutes ago

                    There's also EFL and one other I'm forgetting at the moment, but yeah.

            • cwillu 6 hours ago
              2 more

              All this proves is that it's possible for a protocol to not be the determining factor; which says nothing about whether it's possible that it _is_ a determining factor.

              • WhyNotHugo 6 hours ago

                You’re quite right. We’d need similar benchmarks done with other compositors.

                I very much doubt that Wayland makes a difference for this test; Wayland is for IPC between the client and server. Moving the cursor around is done by the server, without needing to talk to the client.

      • arghwhat 4 hours ago

        Is it a weakness of the web that HTTP is just a protocol specification?

        The "problem" with this in Wayland is that before people 'ran Xorg with GNOME on top", now they just run GNOME the same way they run Chrome or Firefox to use HTTP - it will take time for people to get used to this.

      • guappa 5 hours ago
        3 more

        It's the biggest strength!

        Every time someone complains about wayland there's someone informing you how it achtually it isn't.

        • tankenmate 4 hours ago

          Your biggest strength is also your biggest weakness.

          The organisation of Wayland sounds great, but it is very hard to share optimised code between compositors since key parts that affect performance (in this case latency) are largely developed outside of any shared library code.

          The "organisation" of Wayland reminds me of the UNIX wars; this is going to get worse before it gets better.

          SVR4 Wayland anyone?

          xref the time it has taken the Rust rewrite of the GNU coreutils and arguably coreutils is a much easier problem.

        • genewitch 4 hours ago

          See also AI discussions and holding a telephone incorrectly, also do we not own phones

      • sho_hn 9 hours ago
        4 more

        It's no different from X11, which is also a protocol/spec with many implementations.

        • Vilian an hour ago

          The difference is that x11 was SK bag that you required a tons of plugins to have a working system(xorg) and no one could reliable maintain that mess of codes and plugins where every change could break another

        • josefx 4 hours ago

          If there is no difference then how does the official reference implementation of Wayland, that nearly everyone uses daily, handle it? /s

    • redmajor12 4 hours ago

      Wayland as a just protocol... Isn't that the same argument they used when it shipped without copy/paste or a screensaver?

      • arghwhat 4 hours ago
        2 more

        It's not an "argument", it's just a description of what Wayland is. But no, the correct protocol has had copy-paste since day one, and I dont remember there being issues with screensavers.

        In the metaphor of a web server and a web browser, Wayland would be the HTTP specification. What you're usually interested in is what server you're running, e.g. GNOME's Mutter, KDE's Kwin, sway, niri, or what client you're running, e.g. Gtk4, Qt6, etc.

        • Vilian 40 minutes ago

          Wayland don't support screensaver and clipboard is managed by portals no?, idk why the complain tho, no one uses screensaver and clipboard being managed by a portal dsounds more logical than creating a protocol for that

  • flohofwoe 2 hours ago

    > they sometimes had explicit display hardware for just the mouse because that would cut out the latency

    That's still the case. The mouse cursor is rendered with a sprite/overlay independent from the window composer swapchain, otherwise the lag would be very noticeable (at 60Hz at least). The trickery starts when dragging windows or icons around, because that makes the swapchain lag visible. Some window composers don't care any longer because a high refresh rate makes the lag not as visible (eg macOS) others (eg Windows I think) switch to a software mouse cursor while dragging.

  • dralley 17 hours ago

    GNOME has unredirection support, so I don't think this test is applicable to actual in-game performance.

    A fullscreen app ought to be taking a fast path through / around the compositor.

    • eqvinox 2 hours ago

      This isn't about in-game performance, this is about the desktop feeling sluggish.

  • p_l 15 hours ago

    Hardware cursor is still a thing to this day on pretty much all platforms.

    • thayne 11 hours ago

      On sway, if you use the proprietary Nvidia drivers, it is often necessary to disable hardware cursors. I wonder if there is something similar happening here. Maybe wayland gnome doesn't use hardware cursors?

  • pengaru 5 hours ago

    Once upon a time XFree86 and Xorg updated the pointer directly in a SIGIO handler. But that's ancient history at this point, and nowadays I wouldn't expect Wayland and Xorg to have a hugely different situation in this area.

    IIRC it all started going downhill in Xorg when glamour appeared. After the cursor rendering path wasn't async-safe for execution from the signal handler (which something opengl-backed certainly wouldn't be), the latency was worse.

    I remember when even if your Linux box was thrashing your mouse pointer would stay responsive, and that was a reliable indicator of if the kernel was hung or not. If the pointer prematurely became unresponsive, it was because you were on an IDE/PATA host and needed to enable unmask irq w/hdparm. An unresponsive pointer in XFree86 was that useful of a signal that something was wrong or misconfigured... ah, the good old days.

  • gf000 13 hours ago
    • eqvinox 2 hours ago

      I'm not sure where this absolute "tearing is bad" and "correctness" mentality comes from. To me, the "correct" thing specifically for the mouse cursor is to minimize input lag. Avoiding tearing is for content. A moving cursor is in various places along the screen anyway, which will include biological "afterglow" in one's eyes and therefore there's going to be some ghosted perception of the cursor anyway. Tearing the cursor just adds another ghost. And at the same time, this ghosting is the reason keeping cursor input lag to a minimum is so important, to keep the brain's hand-eye coordination in sync with the laggy display.

    • ChuckMcM 12 hours ago

      That is a great comment and everyone should read it. It also demonstrates a common truism that system goals dictate performance.

    • hulitu 4 hours ago

      Tl;dr: X bad and tears but Wayland with 1.5 frame latency (or more) good. Now, if you have a monitor (or TV) with 30i refresh rate, you're screwed.

      • Vilian 34 minutes ago

        1.5 is the worse case, and implementation specific

  • paulryanrogers 7 hours ago

    Reminds me of how we used 'dir' command to test computer speed by watching how fast it would scroll by.

    • redmajor12 4 hours ago

      Or later, seeing how long it took to load /usr/bin in a filemanager.

  • AtlasBarfed 16 hours ago

    How old is Wayland?

    I'll be reading a dream of spring in my grave at this rate.

    I understand I'm complaining about free things, but this is a forced change for the worse for so long. Wayland adoption should have been predicated on a near universal superiority in all input and display requirements.

    Intel and AMD and Nvidia and Arm makers should be all in on a viable desktop Linux as a consortium. Governments should be doing the same because a secure Linux desktop is actually possible. It is the fastest path to showcasing their CPUs and 3d bling, advanced vector /computer hardware.

    Wayland simply came at a time to further the delay of the Linux desktop, at a time when Windows was attempting to kill Windows with its horrid tiles and Apple staunchly refused a half billion in extra market cap by offering osx on general x86.

    • Vilian 30 minutes ago

      >How old is Wayland?

      This argument don't make sense because Wayland started as a hobby and not to replace x11, was after it got traction, other people/companies started contributing that it matter

    • dralley 16 hours ago

      Wayland is a protocol. The problems people complain about are generally implementation details specific to GNOME or KDE or (in general) one particular implementation.

      There's rarely any such thing as "universal superiority", usually you're making a tradeoff. In the case of X vs Wayland it's usually latency vs. tearing. Personally I'm happy with Wayland because there was a time when watching certain videos with certain media players on Linux was incredibly painful because of how blatant and obtrusive the tearing was. Watching the same video under Wayland worked fine.

      Early automobiles didn't have "universal superiority" to horses, but that wasn't an inhibitor to adoption.

      • o11c 15 hours ago
        14 more

        "Wayland is a protocol" is exactly the problem. Protocols suck; they just mean multiplying the possibility of bugs. A standard implementation is far more valuable any day.

        With X11, it was simple: everybody used Xfree86 (or eventually the Xorg fork, but forks are not reimplementations) and libX11 (later libxcb was shimmed underneath with careful planning). The WM was bespoke, but it was small, nonintrusive, and out of the critical path, so bugs in it were neither numerous nor disastrous.

        But today, with Wayland, there is no plan. And there is no limit to the bugs, which must get patched time and time again every time they are implemented.

        • dralley 15 hours ago
          12 more

          X had garbage handling of multiple monitors and especially multiple monitors with different DPIs, and there was "no plan" to deal with that either. Nobody wanted to work on the X codebase anymore. The architecture bore no resemblance to the way any other part of the desktop stack (or hardware) works.

          • AshamedCaptain 15 hours ago
            9 more

            Most of the garbage aspect is because toolkits refuse to support multiple monitors on DPI with X11 with the argument that "Wayland is just around the corner", for decades now.

            For example Qt does per-monitor DPI just fine on X11; it's just that the way to specify/override the DPI values just sucks (an environment variable).

            This stupid decision is going to chase us until the end of times since Xwayland will have no standardized way to tell its clients about per-display DPI.

            • ChocolateGod 12 hours ago
              8 more

              It's not useful if you have to specify a scaling factor before the application has started, when the application can move monitors.

              This is something feasible on Wayland, X draws one large wide screen display.

              • bluGill 9 hours ago
                2 more

                X could do seveal different screens I did have this working once. However then moving an application to a different display was impossible (an app could do it but it was a lot of work so nobody bothered). I few cad programs supported two streens but they were seperate and the two didn't meet.

                Most people want to drag windown between screens and sometimes even split down the middle. One large display supports that much easier so that is what everyone switched to in the late 1990

                • robinsonb5 2 hours ago

                  I was using it that way until about 2020. (Mint 13 MATE supported, but it seems that capability was lost somewhere along the line. Shame, because I have a dual monitor setup where the second monitor is often displaying the picture from a different device, so in that situation I absolutely cannot have applications deciding to open on the busy-elsewhere screen. I miss being able to set a movie running on one monitor and have it not disappear if I flipped virtual desktops on the other!)

              • p_l 9 hours ago
                3 more

                X11 used to provide separate displays, but at some point due to hardware changes (and quite probably due to prominence of intel hardware, actually) it was changed to merged framebuffer with virtual cut out displays.

                In a way, Wayland in this case developed a solution for issue its creators brought into this world first

                • goosedragons 9 hours ago
                  2 more

                  It can still provide seperate displays. The problem is you couldn't do something like drag a window from display 1 to 2°. IIRC it's also annoying to launch two instances of a program on both displays. The hacky merged framebuffer thing is a workaround to these problems. But you can have independent DPIs on each display.

                  ° For most programs.

                  • robinsonb5 2 hours ago

                    Yeah there were certainly tradeoffs. It's much harder to use separate displays now, though - last time I tried, I could address the two displays individually (":0.0" and ":0.1") if I launched X on its own, but something (maybe the display manager?) was merging them into a single virtual display (":0") as soon as I tried to use an actual desktop environment. (This was was Mint 20, MATE edition, a few years ago - I gave up and reverted to a single-monitor setup at that point.)

              • AshamedCaptain 10 hours ago

                Yes. It just proves that all you needed is a better way to specify the per-monitor DPI, one that can be updated afterwards, or even set by the WM on windows.

              • hulitu 3 hours ago

                > It's not useful if you have to specify a scaling factor before the application has started, when the application can move monitors.

                Windows does this. Try to use in Windows 2 monitors with 2 different scalling factors. It is hit or miss. 100 and 150 works. 100 and 125 doesn't.

          • hulitu 3 hours ago
            2 more

            >Nobody wanted to work on the X codebase anymore.

            That, i think, is the main issue. Nobody wants to work with GTK1, or GTK2, or GTK3 anymore. Nobody wants to work with QT1, or QT2, or QT3 or QT4 anymore. Everybody wants the new shiny toy. Over and over again.

            It is CADT all over. Earlier X was developed by an industry consortium. Now Wayland is a monopoly pushed by RedHat.

            • raverbashing 2 hours ago

              > Now Wayland is a monopoly pushed by RedHat.

              Pushed but still it seems it flails and takes too long to do the basic stuff

        • sweeter 15 hours ago

          Software has bugs and water is wet. Wait til you hear about HTTP, TCP, UDP, IP torrents, etc... and "simple" is not really a term I would designate to X11. I mean, its fine, but even just the ecosystem surrounding X is convoluted, outdated and absurd. Things like xinit, startx, .Xauthority, xresources, xhost etc... are all a mess.

      • bawolff 16 hours ago
        11 more

        > Wayland is a protocol. The problems people complain about are generally implementation details specific to GNOME or KDE or (in general) one particular implementation.

        I feel like at some point this is a cop-out. Wayland is a protocol but its also a "system" involving many components. If the product as a whole doesn't work well then its still a failure regardless of which component's fault it is.

        Its a little like responding to someone saying we haven't reached the year of linux on the desktop by saying: well actually linux is just the kernel and its been ready for the desktop for ages. Technically true but also missing the point.

        • washadjeffmad 15 hours ago
          6 more

          Wayland. Solving yesterday's problems, tomorrow.

          • bluGill 9 hours ago
            5 more

            unlike x which couldn't solve yesterdays problems.

            • Qwertious 9 hours ago
              4 more

              X is fine, most of the problems people bring up are niche and minor. Meanwhile, Wayland induces problems of its own, like breaking all sorts of accessibility systems and multi-window X applications with no solution in sight.

              • kubav027 9 minutes ago

                To be fair this wayland issue is also niche. Author of the linked article wrote that this is reported by really small percentage of users most of the people do not notice it.

              • throwaway2037 2 hours ago
                2 more

                    > multi-window X applications
                
                I believe you. Can you share an example? To be clear, I'm pretty sure this can be done with Gtk and Qt, but maybe you are talking about older apps written directly in Xlib or Xt?
                • aragilar 25 minutes ago

                  It's not the toolkit (as they work on X11 and other OSes with the existing toolkits), it's Wayland that's the issue (there are a series of Wayland protocols to implement this, but they are being blocked).

        • WhyNotHugo 7 hours ago

          The key detail in the “Wayland is a protocol” is that there are several other implementations, some of them extremely mature. The implementation being tested here isn’t exactly know to be a good one.

          If there were a single Wayland implementation in existence, I’d agree with your sentiment.

        • sweeter 15 hours ago
          3 more

          What components? Wayland is literally an XML protocol that turns an XML file into a method of communication. libwayland-server and libwayland-client only handle communication and the internal event loop. Its completely up to the developer to write the implementations of these functions and register them in the server.

          Then a client is going to query the server and ask request to do stuff via a unix socket. In fact, you don't even need libwayland, you can raw dog it over sockets manually. The idea is that there are standard protocols that can be queried and used,and you can implement this in any environment you want to. You could write the "frontend" in html and JS and run a wayland compositor on the web (which has been done [1]), you could do it with text or anything really, most people use some graphics stack.

          [1] https://github.com/udevbe/greenfield

          • thayne 11 hours ago

            The components are:

            - the compositor, of which there are multiple implementations (gnome, kde, all the wlroots compositors)

            - the client, which often uses one of several toolkits (gtk, qt, several smaller frameworks, or even directly using the protocol)

            - the wayland protocol (or rather protocols, because there are several extensions) itself

            - other specifications and side channels for communication, in particular dbus.

            Many issues (although I don't think the one in OP) are due to the protocol being underspecified, and so the client and compositor disagree about some semantics, or doesn't even have a standard way to accomplish something across all compositors.

          • ahartmetz 14 hours ago

            Nit: Wayland isn't an XML protocol. The "calls" and their arguments are described in XML, but the data is transmitted in a fairly simple binary encoding.

      • bpfrh 16 hours ago
        11 more

        I mean most of the things are the fault of a badly designed or non existent protocols:

        -Problems with non western input systems

        -Accessibility

        -Remote control(took around 2 years to be stable I think?)

        -Bad color management

        Then there's the things that did work in x11 but not in wayland:

        -Bad support for keymapping(the input library says keymapping should be implemented by the compositor, gnome says not in scope, so we have a regression)

        -bad nvidia support for the first two years? three years?

        While these things are compositor/hw vendor faults, the rush to use wayland and nearly every distro making it as default, forced major regressions and wayland kinda promised to improve the x11 based experience.

        • tuna74 16 hours ago
          5 more

          I have run Wayland since it was available for testing on Fedora Workstation and I have had zero problems inputting Japanese and Chinese.

          With regards to accessibility, what problems have you had exactly?

          • bashkiddie 4 hours ago

            > I have had zero problems inputting Japanese and Chinese.

            That may be fine.

            Neo2 does not work. Neo has 3 modifier keys, Gnome/Mutter/Wayland/Whatever does only support two. Neo2 has a compose key, Wayland does not honor it.

            https://neo-layout.org/

            I use mod4 for navigation (arrow keys, site up) and compose for Slavish (read Polish) input (źżąę)

          • ChocolateGod 12 hours ago

            > With regards to accessibility, what problems have you had exactly?

            Fedora shipped a broken screen reader for 8 years.

          • thayne 10 hours ago

            I think that gnome has had built-in IME, but at least for a long time, it wasn't possible to use a third party system with gnome, or use gnome's with other compositors. And I'm pretty sure the situation was the same for sreen readers and on-screen keyboards. The wlroots project created their own protocols to support external applications to provide such features, since that is out of scope for a compositor like sway, but there are still missing pieces.

        • prmoustache 14 hours ago

          > the rush to use wayland and nearly every distro making it as default,

          Which rush? It has been done by only a small fraction of distros like Fedora, after years of development of the first wayland compositors. Fedora main purpose has always been to implement bleeding edge tech stuff early so that bugs get found and fixed before people using more stable distros have to suffer from it.

          Nobody has been forced in any regression and x11 has continued to be available until now and there is no sign that the most conservative distros will drop x11 support anytime soon.

        • AtlasBarfed 16 hours ago
          3 more

          Yes, and to the parents point it was a CHANGE in protocol.

          I get there was cruft in x. But the moment selected was a barrier to Linux desktop adoption precisely when the greatest opportunity in decades was present.

          And the desktop was reimplemented.

          Now in this period kde and gnome both decided to do rewrites, Ubuntu did their own desktop, got it up to snuff, and abandoned it. The lunacy wasn't just Wayland.

          If we are complaining the gnome compositor sucks... I mean , should that be the goddamn reference implementation? What percent of desktops are gnome, 80% at least? If the gnome composting ready for primetime, then Wayland isn't ready for primetime.

          • vincent-manis 16 hours ago
            2 more

            >If the gnome composting ready for primetime, then Wayland isn't ready for primetime.

            I use Sway, which uses a different compos[i]tor than Gnome. I would like to see similar results for wlroots, Sway's compositor, though I'm not actually interested enough to do the experiment (I guess that would be comparing Sway with i3). Cursor lag in Sway is not enough to bother me. I have on occasion used Gnome on the same machine(s), and never been bothered by lag.

            As others have pointed out, Wayland is a protocol, not a compositor.

            • tankenmate 4 hours ago

              "As others have pointed out, Wayland is a protocol, not a compositor."

              But the Wayland protocol requires a compositor, so here we are.

        • jokethrowaway 2 hours ago

          Nvidia support is still poor (at least on latest cards), I'm forced to use X or I get tons of glitches. I need the proprietary drivers for machine learning.

          Not that I mind particularly, X is fine and everything works as expected. I can even have the integrated (amd gpu) take care of the desktop while the Nvidia gpu does machine learning (I need all the vram I can get, the desktop alone would be 100-150mb of vram) - then I start a game on steam and the nvidia gpu gets used.

          Funnily enough I had wayland enabled by default when I installed the system and I didn't understand why I was getting random freeze and artifacts for weeks. Then I realized I was not using X11

      • hulitu 4 hours ago

        > there was a time when watching certain videos with certain media players on Linux was incredibly painful because of how blatant and obtrusive the tearing was

        It was because of the crap LCD monitors (5 to 20 ms GtG) and how they are driven. The problem persists today. The (Wayland) solution was to render and display a complete frame at a time without taking into account the timings involved in hardware (you always have a good static image, but you have to wait).

        I tried Tails (comes with some Wayland compositor) on a laptop. The GUI performance was terrible with only a Tor browser open and one tab.

        If you do not care about hardware, you will, sooner or later, run into problems. Not everybody has your shiny 240 Hz monitor.

    • Cthulhu_ 16 hours ago

      > How old is Wayland?

      About 16 years old, for comparison, X is 40.

      • hulitu 3 hours ago

        Hm, X works fine since 20 years. Wayland is still a protocol after 16. /s

    • BrenBarn 12 hours ago

      > Wayland adoption should have been predicated on a near universal superiority in all input and display requirements.

      Totally agree. The people saying "Wayland is a protocol" miss the point. Wayland is a protocol, but Wayland adoption means implementing stuff that uses that protocol, and then pushing it onto users.

      Measure twice, cut once. Look before you leap. All that kind of thing. Get it working FIRST, then release it.

      • bluGill 9 hours ago
        3 more

        You have to releaseethings like this in parts because it needs too many external people to do things to make it useful. Managing those parts is something nobody has figured out and so people live you end up using it before it is ready for your use and then complaining.

        • BrenBarn 5 hours ago

          When I say "release" I mean "release to users". You can release stuff to other developers, no problem. But it should all come with large warnings saying "This is not for daily use". The failure is when distros like Fedora start not only shipping it, but then saying they're going to drop the working alternative before Wayland is actually ready to do everything that X does.

          (Also, I don't use Wayland. I mean I tried it out but don't see any real benefit so I don't use it regularly.)

        • hulitu an hour ago

          > You have to releaseethings like this in parts because it needs too many external people to do things to make it useful.

          30 years ago X came with a server and some clients. Why it is so hard to do this, for wayland, today ?

    • prmoustache 14 hours ago

      >but this is a forced change for the worse for so long

      Can you explain who is forced to do what in that context?

      • bashkiddie 4 hours ago

        AMD states that bugs only get fixed for Wayland.

        Coincidentally I have got a graphics driver that likes crashing on OpenGL (AMD Ryzen 7 7840U w/ Radeon 780M Graphics)

    • n144q 16 hours ago

      > Wayland simply came at a time to further the delay of the Linux desktop

      I can't tell if you are serious or not.

    • bsder 8 hours ago

      > I understand I'm complaining about free things, but this is a forced change for the worse for so long.

      Then write code.

      Asahi Lina has demonstrated that a single person can write the appropriate shims to make things work.

      Vulkan being effectively universally available on all the Linux graphics cards means that you have the hardest layer of abstraction to the GPU taken care of.

      A single or small number of people could write a layer that sits above Wayland and X11 and does it right. However, no one has.

    • yencabulator 15 hours ago

      You're arguing against Wayland, but for a more secure Linux desktop? I recommend you spend more time getting to know the X11 protocol then, because it has plenty of design decisions that simply cannot be secured. The same people who used to develop XFree86 designed Wayland to fix things that could not be fixed in the scope of X11.

      • wmanley 13 hours ago
        8 more

        > the X11 protocol [...] has plenty of design decisions that simply cannot be secured.

        I've been hearing this for over a decade now. I don't get it. Just because xorg currently makes different clients aware of each other and broadcasts keypresses and mouse movements to all clients and allows screen capturing doesn't mean it has to. You could essentially give every application the impression that they are the only thing running.

        It might seem difficult to implement, but compare it to the effort that has gone into wayland across the whole ecosystem. Maybe that was the point - motivating people to work on X was too difficult, and the wayland approach manages to diffuse the work out to more people.

        I was really bullish on Wayland 10 years ago. Not so much any more. In retrospect it seems like a failure in technical leadership.

        • uecker 12 hours ago
          2 more

          X always had the capability to isolate clients, but it is not used it would need some work which nobody does because of Wayland.

          • welterde 22 minutes ago

            Some aspects of the client isolation are used by default when doing X11 forwarding via SSH. A remote keylogger will not work for instance.

        • yencabulator 12 hours ago
          4 more

          It'll be challenging to even figure out which one of the things connecting to $DISPLAY is the real window manager. Good luck on your lonely[1] journey!

          [1]: The people who actually developed Xorg are now working on various Wayland-related things.

          • wmanley 11 hours ago
            3 more

            > It'll be challenging to even figure out which one of the things connecting to $DISPLAY is the real window manager.

            I suspect it would be less challenging than writing a whole new wayland server.

            Off the top of my head, I'd use a separate abstract domain socket for the window manager including some UUID, and then pass that to the window manager when launching it.

            You could create these sockets on demand - one for each security context. On linux typically a different security contexts will either have different UIDs - in which case filesystem permissions would be sufficient - or they have different mount namespaces - in which case you make different sockets visible in different namespaces.

            For SSH forwarding you could have SSH ask the X server for a new socket for forwarding purposes - so remote clients can't snoop on local clients.

            > Good luck on your lonely[1] journey! > > [1]: The people who actually developed Xorg are now working on various Wayland-related things.

            This is what I mean by a failure of technical leadership.

            • welterde 12 minutes ago

              > For SSH forwarding you could have SSH ask the X server for a new socket for forwarding purposes - so remote clients can't snoop on local clients.

              SSH pretty much already does this. Per default (using -X) X11 forwarding is in untrusted mode, which makes certain unsafe X11 extensions unavailable. So remote clients already cannot snoop the whole keyboard input.

            • tankenmate 4 hours ago

              "You could create these sockets on demand - one for each security context. On linux typically a different security contexts will either have different UIDs - in which case filesystem permissions would be sufficient - or they have different mount namespaces - in which case you make different sockets visible in different namespaces."

              This is reminiscent of how Trusted Solaris[0] implements Mandatory Access Control (MAC) a la Orange Book[1].

              [0] https://www.oracle.com/technetwork/server-storage/solaris10/... [1] https://public.milcyber.org/activities/magazine/articles/202...

  • giantrobot 14 hours ago

    > Wayland, being something relatively "new" compared to X11, has not had this level of scrutiny for as long. I'm looking forward to folks fixing it though.

    Part of the problem will doubtless be the USB (and Bluetooth) stacks including the device hardware and firmware. When keyboards and mice were serial devices with their own interrupt making the code path fast was achievable. I'm not so confident that modern peripheral stacks can be made to run with the same priority. It becomes even more challenging for devices sitting on a bus with multiple device classes or multiple protocols between the device and driver (USB -> Bluetooth -> Mouse).

    I hope devices can be sped up but we're a long way from a keypress triggering an interrupt and being handled in tens of milliseconds[0].

    [0] https://danluu.com/input-lag/

    • ndiddy 12 hours ago

      The article you're commenting on is about someone running X11 and Wayland on the same computer with the same mouse and experiencing higher input latency on Wayland. I don't think differences between serial and USB mice are relevant here.

    • ChuckMcM 13 hours ago

      As a systems I guy I completely agree with this. One of the things that was interesting about X11 is that it draws an API "wall" around the stuff involved in presentation. Many folks don't remember this but we had X "terminals" which was a computer system that did nothing else except render the screen and handle the input.

      In that compartmentalization there was nothing else competing for attention. You didn't get USB bus contention because there was just the one mouse, ever, on the line between the user and the X11 server in the X terminal.

    • Permik 9 hours ago

      USB devices today are dummy fast, USB 3.1 signals at 10 GHz. You just need to check the USB queue more often :D

      Alternatively you move straight up to USB 4, where we get pci-e interrupts again! :)

      • hulitu an hour ago

        > USB devices today are dummy fast,

        In theory, yes. Not so, in practice.

        > USB 3.1 signals at 10 GHz.

        Yes but a mouse works at 12 MHz.

sxp 18 hours ago

For anyone who uses ffmpeg for this type of per frame analysis, `ffmpeg -skip_frame nokey -i file -vsync 0 -frame_pts true out%d.png` will get the "presentation time" of each frame in the video. That's more precise than just dumping frames and calculating timestamps. You can also do something similar in a web browser by playing a <video> and using `requestVideoFrameCallback()`. Though, you might need to set `.playbackRate` to a low value if the computer can't decode all the frames fast enough.

> With my 144Hz screen,....Wayland, on average, has roughly 6.5ms more cursor latency than X11 on my system...Interestingly, the difference is very close to 1 full screen refresh. I don't know whether or not that's a coincidence.

The fact that the latency is almost 1/144th of a second means that it might become 1/60th of a second on standard 60Hz monitors. This is hard to notice consciously without training, but most people can "feel" the difference even if they can't explain it.

  • mlyle 17 hours ago

    > The fact that the latency is almost 1/144th of a second means that it might become 1/60th of a second on standard 60Hz monitors.

    My guess: the "true" numbers are close to 2.5 (half a frame of random phase of when the mouse is touched vs. refresh, plus 2 frames to move cursor) and 3.5. If you throw out the low outlier from each set you get pretty close to that.

    (of course, the 125Hz mouse poll rate is another confound for many users, but this guy used a 1KHz mouse).

    > This is hard to notice consciously without training, but most people can "feel" the difference even if they can't explain it.

    Yah. 7ms difference is not bad vs 16.6ms is starting to be a lot.

    IMO, we should be putting in effort on computers to reach 1.6 frames of latency -- half a frame of random phase, plus one frame, plus a little bit of processing time.

    • mananaysiempre 16 hours ago

      To have a compositor not introduce a frame of latency more or less requires it to race the beam, which has definitely been suggested[1], but you can see how it’d be difficult, and so far no operating systems have tried as far as I know. And as for good frame pacing support in UI toolkits (and not just game engines), well, one can dream. Until both of these are in place, 2.5±0.5 seems to be the hard limit, the question here is more where the Mutter is losing another frame (which even the greats tell us[2] is not hard to do by accident).

      [1] https://raphlinus.github.io/ui/graphics/2020/09/13/composito...

      [2] http://number-none.com/blow/john_carmack_on_inlined_code.htm...

      • amluto 14 hours ago

        I’ve read these arguments quite a few times and always found them a bit questionable. Sure, if everything is driven by the vblank time (or any other clock that counts in frames), it makes sense. But that’s a silly approach! There is nothing whatsoever special about allocating one full frame interval to the compositor to composite a frame — if it takes 16ms to composite reliably, it will take 16ms to composite reliably at 30Hz or 60Hz or 144Hz. So shouldn’t the system clock itself on a time basis, not a frame basis?

        Put another way, a system fast enough to composite at 144Hz should be able to composite at 60Hz while only allocating 1/144 seconds to the compositor, which would require offsetting the presentation times as seen by the compositor’s clients by some fraction of a frame time, which doesn’t actually seem that bad.

        It gets even better if variable refresh rate / frame timing works well, because then frames don’t drop even if some fraction of compositing operations are a bit too slow.

        I assume I’m missing some reason why this isn’t done.

  • goalieca 17 hours ago

    I found low latency terminals make a big improvement to even simple tasks like typing.

    • XorNot 14 hours ago

      I was pretty shocked by the eyestrain difference I felt going from 30hz to 60hz with a 4K monitor while only doing coding tasks (i.e. text and mouse, no real graphics or animations).

    • daef 17 hours ago

      what would you count as low latency terminal?

      • layer8 17 hours ago
        4 more

        See https://beuke.org/terminal-latency/. Single-digit milliseconds I’d say. These numbers are minus the keyboard and display latency.

        • chupasaurus 2 hours ago

          Some of those include display latency (e.g. Konsole) because you can't throw lazy rendering out of some terminals.

        • rustc 16 hours ago
          2 more

          Has anyone run this test on Ghostty?

          • _emacsomancer_ 11 hours ago

            I get a "Cannot detect the reference pattern" error when I try with Ghostty with Typometer.

  • rcxdude 17 hours ago

    It's almost certainly because of one extra frame of buffering between the mouse move and the screen. Vsync can cause this, but it should be possible to get vsync with just double buffering.

jchw 18 hours ago

Note that the results will differ between compositors, different GPUs, and different configurations. This is somewhat less the case with X11 since there is only one X server implementation (that Linux desktop systems use, anyhow.)

I think there may still be the issue that many compositor/GPU combinations don't get hardware cursor planes, which would definitely cause a latency discrepancy like this.

Cthulhu_ 16 hours ago

TIL Wayland is 16 years old already; in a few years (I can't math) it'll be as old as X was when Wayland came out, but it seems it's still considered mediocre or not as good as X was.

  • jzb 13 hours ago

    Initial release of X was June 1984, and Wayland was first released in 2008 -- so it won't be until 2032 that Wayland is the same age. When people complain about Wayland being mediocre or "as good as X was" what they often mean is "Wayland doesn't support $very_specific_feature" or "my video card vendor's proprietary drivers aren't well-tested with Wayland and it makes me sad".

    Approximately 99.999% of those complaints are uttered by people who 1) are not doing the work, 2) are not interested or capable of doing the work, and 3) do not understand or refuse to acknowledge that the Wayland and X developers are _mostly the same folks_ and they _do not want to work on X11 anymore_.

    I don't really have a stake in this argument, except I'm bone-tired of seeing people whine about Wayland when they're using software somebody else gave them for free. There are enough Wayland whiners that, by now, they could've banded together and started maintaining / improving X and (if their complaints and theories were correct) left Wayland behind.

    Strangely -- even though X is open source and eminently forkable (we know this, because XFree86 -> X.org) it gathers dust and none of its proponents are doing anything towards its upkeep.

    When someone shows up with "Wayland isn't as good as X, so here is my modernized fork of X anyone can use" -- I'll be quite interested.

    • piotr-yuxuan 25 minutes ago

      I enjoy reading the whinging around Wayland by people who feel so entitled and so outraged. Every time they never fail to remind me of a previous coworker who was always using the same tactics: « this breaks my existing workflow, I will not adapt, I am all for trying new things but only if they are very exactly equal to what I already know and then what's the point, this is not how I have always worked the past ten years and I will not bulge ».

      Not talking about the technical points of the whole X/Wayland considerations here, but a group of people in such debate is always as vocal as they'll do nothing and put unreasonably high expectations on other people to listen to them and have no choice but to agree. The fact that X.org's core team initiated Wayland and stopped X.org development is disregarded: these people Will Be Right against literally everything, they can't be reasoned.

      My previous coworker was fired for gross incompetence in the end yet he never acknowledged anything wrong. He always knew better than literally the whole world that bash scripts run manually where superior to Terraform for the whole company's infrastructure. Yes, he was that stupid. I guess this is why he ended lying like hell on his LinkedIn profile, concealing he had had four employers in four years.

      Seeing technical debates with such poor quality is worrying. If people with quantitative minds fail to entertain a fact-based discussion, how can we expect our political life to acknowledge there is only one reality and stop lying?

      Before you voice your outrage, here are some facts that won't dis-exist just because you disagree with them:

      - https://www.phoronix.com/review/x_wayland_situation

      - https://ajaxnwnk.blogspot.com/2020/10/on-abandoning-x-server...

    • lmm 10 hours ago

      > There are enough Wayland whiners that, by now, they could've banded together and started maintaining / improving X and (if their complaints and theories were correct) left Wayland behind.

      They already have. X is already more full-featured and stable than Wayland (yes it is missing certain niche features that Wayland has). Sometimes the most important thing you can do with a piece of software is not screw around with it.

      • braiamp 10 hours ago
        3 more

        And yet, X is as flawed as it can be. There's a problem with global shortcuts, that Xorg only fires an event on keyup/key release, rather than on first match on keypress. That is a protocol limitation, and fixing it means breaking a bunch of stuff. The complains about wayland are of that nature, but at least they are fixable.

        • goosedragons 9 hours ago

          Are they fixable? One of my beefs with Wayland is that every compositor handles things differently. How GNOME's does some setting is different from how KDE's is different from Sway's. There's no guarantee they've even implemented the setting either. In X11 you can always globally configure something for any WM the same way. Wayland by design you can't. It's not fixable. I think it was a really poor decision to do a protocol and just made an OS where things are often too fragmented even more fragmented.

        • lmm 5 hours ago

          > The complains about wayland are of that nature, but at least they are fixable.

          Eh maybe. Ultimately you can never be sure something is possible without doing it.

          I'm pragmatic here, if and when Wayland offers me a better experience than X then I'll use it. I just resent distros etc. pushing me towards it when it's currently a downgrade.

    • arp242 12 hours ago

      The core Wayland and X.org don't exist in a vacuum. I have written a lot of code over the years that works only on X, as have many others. I have not directly contributed to the X.org server, but have to the "wider X ecosystem". I will have to rewrite some of that. This is the case for many people.

      • jzb 8 hours ago
        3 more

        "I have not directly contributed to the X.org server, but have to the "wider X ecosystem". I will have to rewrite some of that. This is the case for many people."

        This is a fair point, but the quality of Wayland isn't really at issue for this -- Wayland could be much better than X by all accounts and it would still require you to rewrite software for it. (Assuming XWayland doesn't suit your needs, anyway.)

        • robinsonb5 2 hours ago

          Yes, but motivation and enthusiasm are important when it comes to spare time projects done by hobbyists.

          You're far more likely to get people to expend the requisite time and effort if it's indisputable that the end result will be worth it.

        • throwaway2037 2 hours ago

              > it would still require you to rewrite software for it
          
          As I understand, most complex apps in the 2020s are using something like Gtk or Qt. These already have Wayland rendering backends. (I assume other widget toolkits have done the same.) Unless your GUI directly uses Xt or Xlib, I don't think that any rewrite is required. Do I misunderstand your point?
    • yjftsjthsd-h 10 hours ago

      > When people complain about Wayland being mediocre or "as good as X was" what they often mean is "Wayland doesn't support $very_specific_feature" or "my video card vendor's proprietary drivers aren't well-tested with Wayland and it makes me sad".

      ...Yes? Wayland being a regression in terms of features and bugginess is kinda a sticking point.

      > Approximately 99.999% of those complaints are uttered by people who 1) are not doing the work, 2) are not interested or capable of doing the work, and 3) do not understand or refuse to acknowledge that the Wayland and X developers are _mostly the same folks_ and they _do not want to work on X11 anymore_.

      If X works for someone and Wayland doesn't, none of that matters. It doesn't matter how much you insult X users, it won't make their usecases invalid or make Wayland good enough.

      > I don't really have a stake in this argument, except I'm bone-tired of seeing people whine about Wayland when they're using software somebody else gave them for free.

      It cuts both ways: Users aren't entitled to free work, and developers aren't entitled to their work being well-regarded. Giving software away for free has never meant that people can't point out its problems.

      • bluGill 9 hours ago
        7 more

        X also isn't wrking for some. If you care about tearing for instance x doesn't work.

        • bandrami 2 hours ago
          3 more

          From my standpoint as a software packager I have trouble believing that upending the entire video ecosystem on Linux was worth fixing this alleged "tearing" problem which is the main thing people bring up as the reason we all spent a decade doing this. (Along with some honestly fantastical worries about screen scraping -- the answer for that is open source.)

          Honestly Wim did this right on the audio side. If it was so important to bring what Wayland has brought someone should have written a display server that talked to display clients just like the old server did and upgraded gracefully if the client had the new capabilities. You didn't even have to recompile software to use pipewire, let alone rewrite it.

          • LtWorf 26 minutes ago
            2 more

            The real reason wayland was done is to put proprietary applications on the desktop. That's it.

            • bandrami 18 minutes ago

              Which is ironic since it's the proprietary stuff I have to use that is least likely to work on Wayland at this point...

        • Ballas 6 hours ago
          2 more

          I haven't seen any tearing in X in at least 5 years - with nvidia, nouveau and intel drivers. I don't think I'm doing anything special to achieve this, so your comment seems like a strange assertion to me?

          I agree that X11 has some faults, and I really want Wayland to work, but everytime I try it, something ends up being broken.

          • usr1106 4 hours ago

            I do see heavy tearing when watching videos under i3 on Ubuntu LTS and a 60 Hz monitor. So what? I just don't care. Tearing in videos does not hinder me from getting my work done. Watching videos is just wasting time most of the cases anyway.

        • yjftsjthsd-h 8 hours ago

          True; also various scaling problems, and its security situation. We're in an unfortunate situation where no option has everything. If you want to say "Wayland is better for what I need", or "Xorg is better for what I need", or even "Arcan is better for what I need", then that is 100% legitimate. I'm also cool with "the current problems with (X|Wayland|Arcan) are..." because that's constructive and useful for trying to improve them. It's only pretending that one doesn't have faults or insulting its users/proponents that I mind.

      • FooBarWidget 2 hours ago

        > It cuts both ways: Users aren't entitled to free work, and developers aren't entitled to their work being well-regarded. Giving software away for free has never meant that people can't point out its problems.

        While true, this statement is also useless. On a meta level, what you're essentially saying is that users' rights to feel resentful, is more valuable than achieving an outcome.

  • OvbiousError an hour ago

    I'm getting much higher framerates in Civ VI on linux since I switched to Wayland, so there is that. For the rest it just works for me, use it both professionally and privately.

  • craftkiller 15 hours ago

    > 16 years old [...] in a few years [...] it'll be as old as X was when Wayland came out

    Lol no. X is from 1984: https://www.talisman.org/x-debut.shtml

    That means Wayland is only 66% the age of X when Wayland came out, or you'd need 50% more of Wayland's life before its as old as X was.

  • tannhaeuser 14 hours ago

    Another way to look at these figures is that in a few years a Wayland successor is due, born out of the same motivation as Wayland ie. lack of people with a desire to maintain legacy software. My expectation is that browser frontend stacks will eat the desktop completely at that point; it's not like there weren't many new desktop apps on Linux anyway.

  • tmtvl 15 hours ago

    If X is 40 and Wayland is 16,that means a difference of 24 years. Hence Wayland compositors have 8 years to work out the kinks. I am currently using Wayland via Plasma 6 and it works well enough but I don't have special needs, so I don't know how well... say... screen readers work.

    • DonHopkins 13 hours ago

      That means in two more years it will be legal for X11 and Wayland to have a baby!

      • josefx 4 hours ago

        We can call it V to signify another step backwards and make it the default, people can just use the terminal until the first implementation crops up.

      • guappa 5 hours ago

        Maybe like we did we pulseaudio (throw it away and make pipewire) needs to be done with wayland.

  • ein0p 3 hours ago

    16 years old and there's still video tearing in the browsers. I try it with every Ubuntu LTS release, and then switch back to X in a few days. It solves problems I just don't have.

  • 3abiton 12 hours ago

    > but it seems it's still considered mediocre or not as good as X was.

    Because there was a big fracture and doubt in the community support for Wayland, not to mention alternatives like mir popping up and diverting resources.

    • bluGill 9 hours ago

      A lot of things liked mir happened over the years and didn't go anywhere. Most tried to fix problems with x that the x developers said were not the real problems. When wayland came it was supported by people who knew the real problems with x. They have also proven to keep working - no surprise at they had a history of working on x.

      • guappa 5 hours ago

        They "claimed" to know the real problems with X. But the fact that wayland is still lacking features shows otherwise.

  • dist-epoch 13 hours ago

    Wayland came out at the same time as the Windows compositor in Vista. Let's be generous and consider the next Windows version, 7, as having a "good/stable" compositor. So Wayland is 13 years behind Windows.

  • gf000 13 hours ago

    Based on what exactly? On a single frame difference, which is easily explained by the fundamental point of Wayland: no tearing? It's simply that X puts the cursor asynchronously, potentially tearing it, while Wayland always renders a correct frame, but the mouse movements' result has to wait for the very next frame.

    That's literally it.

SaintSeiya 16 hours ago

Why this does not surprise me? every attempt to rewrite a working solution to make it more "modern, easy to maintain and future proof" rarely do so. It always end up slower, with more latency and lifted by faster hardware, not by faster software. Every 20 years a new generation comes weaker, pampered with the abtsractions of the previous generations who did the grunt work for them. After 3 generations of software developers all we have is library/framework callers and nobody really knows about performance and optimization.

  • kombine 16 hours ago

    This is not my experience. When I upgraded several of my computers to KDE 6 switching to Wayland, overall responsiveness and snappiness of the system increased very visibly. There are still features that Wayland lacks compared to X11, but I am willing to compromise in favor of its other benefits.

    • dvdkon 14 hours ago

      Same here, switching from i3 to sway resulted in a noticeably more responsive experience on my aging hardware. Of course, this is just an anecdote, and I could probably get the same results on X with some fiddling, but I do think the value of simpler and more modern systems is demonstrated here.

      • WhyNotHugo 7 hours ago

        I’d be interested in seeing similar benchmarks done on x11+i3 vs sway.

        There’s nothing Wayland-specific that would introduce this latency, so I wonder if wlroots/sway have any additions lag.

    • guappa 5 hours ago

      ????

      After upgrading to plasma6 from 5, all the desktop animations have started stuttering. Probably your hardware is too new.

    • mtlmtlmtlmtl 15 hours ago

      On the other hand, I just did a fresh install of Artix Linux. Installed KDE just to have something functional while I get my tiling setup working. Boot into Plasma(Wayland) and it utterly shits itself, turning my main monitor on and off repeatedly until it finally crashes. So I pick Plasma(X11) instead and that just works.

      In fact, in almost 2 decades of using Linux every day, I can't remember X doing anything similar. It's always just worked.

      • gf000 13 hours ago
        5 more

        > In fact, in almost 2 decades of using Linux every day, I can't remember X doing anything similar. It's always just worked.

        Well, we have very different memories then. Sure, X worked reliably once configured. But configuring it was a marathon in hell, as per by my memory, and all the litany of forum posts crying out for help all across the internet. Like, I have at one point had to rescue an install by changing back the config file without a screen at all!

        • mtlmtlmtlmtl 3 hours ago

          I mean, I've certainly had issues with X before, back when you had to configure it. But they were usually initial issues while figuring out the right configuration. And if you had a GPU where the choice was between shitty proprietary blob drivers and woefully incomplete open ones, you might have a bad experience regardless of what you put in the config. But that's not really Xorg's fault. It can't magically make shitty drivers good. With decent drivers, once configured, it was rock solid, and has been for as long as I've been using Linux. And for a long time the configuration has been addressed; it now figures that stuff out on its own the vast majority of the time, unless you have really specific needs, in which case I bet Wayland compositors don't fare any better.

          I also fundamentally disagree with the idea that X "does too much", which is often cited in favour of Wayland. The fact that X encompasses everything about how I interact with my computer is one of the things I love about it. I might switch WMs and DEs, but my xmodmap, xresources etc remain the same.

        • uecker 12 hours ago

          I remember this too, but it was a really long time ago.

        • guappa 4 hours ago
          2 more

          That was like over 10 years ago… It has been a long time since Xorg required configuring.

          • usr1106 4 hours ago

            Yes. Grandparent talked about 20 years ago. 15 years ago Ubuntu required no configuration at all if you had a graphics card that worked (most newer ones did, Nvidia was a nightmare).

  • prmoustache 14 hours ago

    Old computers had less latency, but otoh on many OSes a single app crashing meant the whole OS was irresponsive and you had to reboot the whole system.

    • Avamander 13 hours ago

      Less latency matters little if it's just to wait behind some other operation like disk IO or network.

adeon 7 hours ago

I used to be a NetHack speedrunner. Pressing the keys real fast. All of it in terminals. I had the fastest run for almost 10 years. Input lag was a thing I thought sometimes. Everything below is based on pure gut feelings because I never measured any of it.

I've long wondered why some terminals and operating systems felt like they were pretty laggy. In the sense that if I press my character to move, how long until they actually move?

iTerm2 on MacOS is worst offender. But I can't tell if it's iTerm2 or MacOS itself. I remember trying other terminals on Mac, and it was mostly the same. iTerm2 itself also had bunch of rendering options, but I couldn't get them to do anything I could actually feel affected input lag. One thought I had was: maybe iTerm2 added 1 frame lateness, and MacOS itself added another? But that would be ~30ms on a 60fps monitor which I can easily already tell on a server-connection NetHack.

I also have no idea if measuring "N frames late" is actually a sensible way to think about this. I assume computers know when a key is pressed at a higher frequency?

Linux xterm and rxvt were the fastest that I remember, on X11 (I've never used Wayland like in the article, well not for NetHack anyway).

I have no idea how compositors work on any of these operating systems or X11/Wayland to say anything smart about them or why they would be slower or faster.

Reading the article...I realized I have that same iPhone 15 Pro with 240fps recording. I could replicate that experiment, but testing out terminals on various operating systems instead I used to play on. So I could now test if my gut feeling was right all along or not. or maybe it lied to me all these years.

I wrote the idea in the article down on my notes, maybe when I'm bored enough I'll try it :) and I can stop saying propaganda about iTerm2 being slow if it turns out I was completely wrong. Maybe I have easier time because all my NetHack days were 60fps, so I have more leeway in measurements.

I'm not active in NetHack playing anymore, although I sometimes play it as a comfort game.

mikenew 18 hours ago

I get major lag spikes when the gpu is under heavy load (like doing Stable Diffusion inference or something). TBF I haven't A/B tested with X11, but I don't ever remember it being like that. An extra frame of latency isn't great on it's own, but the occasional spikes in lag are really irritating.

  • cma 17 hours ago

    May still happen especially if it is thrashing vram in and out of system memory or something, but have you tried lowering priority of the stable diffusion process?

    • cloudwalk9 9 hours ago

      I can also attest to horrific lagspikes on an Optimus laptop even if Intel is driving the desktop. Memory pressure is definitely the problem here. Lagspikes actually lessened when I switched to Wayland Gnome. I think they lessened further with PREEMPT_RT on kernel 6.12. Nvidia requires an environment variable to build on real time kernels but it plays surprisingly nice as of driver 570. But if you have this config, you need at least 11th gen Intel iGPU or AMD APU, because i915 does not build for real-time kernels. Only the Xe driver works and only if you force_probe the ID if it's Tiger Lake.

      ...Which I don't get because the Xe driver is said to explicitly support, at minimum, Tiger Lake. I played Minecraft on the iGPU with Xe and it was perfectly fine. It... drew 3D graphics at expected framerates.

sapiogram 18 hours ago

Beautiful work. Could it be worth repeating the experiment with the monitor running at a very low refresh rate, i.e. 30hz? If Wayland is always a frame slower than X11, it should be much easier to observe.

kelseyfrog 17 hours ago

> I don't have the statistics expertise necessary to properly analyze whether this difference is statistically significant or not,

The two sample t-test statistic is -4.74 with a p-value of 4.20e-05.

  • pwr22 17 hours ago

    and that means?

    • jampekka 17 hours ago

      That there's a probability of 4.20e-05 that the observed difference of that large would happen by chance due to observation noise if there would be no real difference (given your assumptions about the data generating process holds).

      • tstenner 5 hours ago
        2 more

        The normality assumption is a large stretch, especially since there an absolute lower limit near the observation and a somewhat discrete distribution, so a t-test isn't appropriate. But then again it looks significant, so there's no real need for a test

        • jampekka 4 hours ago

          Something like Mann-Whitney U would be safer. But it's indeed quite obvious from the samples that the difference is robust.

    • pjdesno 6 hours ago

      In a lot of fields, p=0.05 is good enough to publish. p=0.0001 means it's really f*ing unlikely that the difference in means is due to random chance.

    • lmm 10 hours ago

      Evidence more than strong enough to be published in most fields. Not quite strong enough to qualify as "discovery" in high-energy physics.

    • kelseyfrog 17 hours ago

      Depends on your alpha ;) . But it's significant.

      • viraptor 15 hours ago

        That really does not answer the question.

tapoxi 18 hours ago

This is probably compositor specific, so I wonder if this is a mutter issue or if it can be replicated in kwin.

  • ChocolateGod 12 hours ago

    Mutter has one of the laggiest Wayland implementations imho.

mattbee 15 hours ago

I've used https://isitsnappy.com/ on the iPhone to do these kinds of measurements pretty quickly, to substantiate why I sucked at Steam Deck rhythm games when connected to a TV.

(I do not suck, my setup had 100ms lag)

  • abhinavk 15 hours ago

    Great app. I hope next iPhones have improved slow-motion camera modes. 1000fps will be a long shot but maybe 480/500fps.

  • davet91 15 hours ago

    What was the issue with your setup? TV not in game mode?

    • mattbee 14 hours ago

      Never got to the bottom of it. TV was set to game mode, I tried various scaler settings on the deck itself, couldn't get it below about 90-100ms. I've tried on two TVs.

      You can learn to play Space Channel 5 by tapping 100ms ahead of the beat. But I worried that if I succeeded too much, I'd end up doing everything that way: jumping red lights, taking espresso shots while they were still being poured etc.

phendrenad2 11 hours ago

I don't like the design of Wayland at all, so it'll take a lot more than performance analytics to get me to switch. I think that one of the core issues in Linux is nothing is ever consolidated, only moved toward more fragmentation. Wayland had the opportunity to consolidate, but instead to not fix fragmentation (each app is responsible for drawing its own window borders) and introduce more (multiple compositors each with their own quirks and non-standard APIs)

fx1994 2 hours ago

Huh, that is one of the things why I never liked Linux Desktop at all. Switching from Windows to Linux Desktop feels... weird, laggy. People told me I was the problem, but it seems there are more people who noticed this lag. Maybe someone can fix this :)

perihelions 15 hours ago

For those of you who are application developers on Linux/Wayland, do you use any other methods for benchmarking true latencies between input events and screen? Less heroic than the high-speed camera method. I'm embarrassed I've still never figured this out properly.

  • freehorse 14 hours ago

    A photocell is I think the standard (or at least "the standard" in psychophysics applications I have also used). You need, though, to make sure your event causes a change that a simple photocell would detect (eg you have a corner of your screen or application window having a small square that turns from black to white and vice versa). You can connect that to an arduino or whatever you can use to get both signals in some low latency way (one from user interaction or whatever causes the event, and one from the event itself with that light intensity change). There are also photocells with a higher granularity for luminosity changes than just light/dark, so maybe you do not need to have the black/white square thing, just something that causes enough luminosity change to be detected. This should, in principle, give you very accurate timings if you can also get the event initiator somehow with low latency (or you can do stuff like simulate an event periodically and look for skipped frames/variance in the screen presentation rather than latency).

  • dsissitka 9 hours ago

    You might like Typometer. I believe it was created by a JetBrains developer to improve input latency in IDEA.

    > Typometer works by generating OS input events and using screen capture to measure the delay between a keystroke and a corresponding screen update. Hence, the measurement encompasses all the constituents of processing latency (i. e. OS queue, VM, editor, GPU pipeline, buffering, window manager and possible V-Sync).

    https://pavelfatin.com/typing-with-pleasure/

hirako2000 18 hours ago

Was Wayland not architected to fix latency issues?

I also find Wayland more laggy and more buggy without concrete evidence of course.

It has significantly improved lately though, far more stable than it used to be.

  • itvision 16 hours ago

    > Was Wayland not architected to fix latency issues?

    It was designed to fix tearing issues, not latency issues.

    But then the Wayland designers found out that players often prefer tearing to minimize latency, so the tearing protocol was implemented.

    When a committee of perfectionists, rather than real people or companies, design something, you often get something that is completely unusable by anyone but that committee.

    And that's exactly how it's played out so far. Wayland is still largely incomplete, not to mention it doesn't even have a reference implementation [1], and still doesn't include/describe several essential desktop APIs and features, which results in this protocol not having a ton of universal tools and applications that work across all of its implementations, including but not limited to:

        * Keyboard layout switching and input management
        * Display configuration
        * Clipboard management
        * Tools to manage windows/automate tasks
        * Lots more
    
    It's a damn ugly mess that has led to a lot of fragmentation with no obvious benefit. Currently, only KDE and Gnome have somewhat usable Wayland implementations. If you use anything else? You're SoL.

    1. https://gitlab.freedesktop.org/wayland/wayland/-/issues/233

    • gf000 13 hours ago

      It's almost like you don't want tearing when browsing the web and your documents, but games can take over the precise control of rendering.. because they are games that want to do so?

      How is that bad design?

      • ndiddy 12 hours ago

        The numbers presented in the article (~1 additional frame of latency on Wayland) are from someone using GNOME with the Mutter compositor. This means that neither the X11 or Wayland session has screen tearing. I imagine the X11 input latency numbers would go down by around half a frame on average if the author was using a different window manager without a compositor.

    • tuna74 16 hours ago

      Of the things you list, IMO, maybe the display configuration should be part of the Wayland protocol.

      It might be a better technical design to have the other stuff outside of the display protocol. Just because Xorg implemented something does not mean you have to put it in the Wayland protocol.

      • eschaton 13 hours ago

        Routing of input events to windows has turned out to also be extremely important for a display subsystem in practice. It wasn’t just X11 that did this, it was also the NeXT window server, and Sun’s NeWS, and SGI’s pre-X window system, and the original VAXstation window system on VMS, as well as how both modern macOS and modern iOS and iOS-derived platforms work.

        In any of these cases there may be one or more daemons behind the scenes handling the “raw” input—possibly even in cooperation with kernel-level pre-processing code, to ensure low latencey—but most event delivery to applications is associated with windows, with options to get lower-level access if needed.

        One of the things that helps many of the systems described above with latency is kernel participation, whether by pushing much of the preprocessing of events down to the drivers so there’s little for userspace to do, or by implementing kernel-level zero-copy IPC (e.g. use of Mach messages by NeXT and Apple).

        If human interface IPC happens entirely in userspace and requires multiple context switches to get an event from device to a display change, you’ll wind up with hitches and delays unless there’s some sort of scheduler hinting that ensures each stage in the pipeline runs immediately after the last.

        This is, of course, why there was a lot of desire by Wayland advocates for kernel dbus support, but they went at the problem backwards: “Let’s take DBus, and make it fast by putting it in-kernel,” *without* first trying to make it as fast as possible without kernel support, *and* without trying to figure out the minimal feature set for kernel-level IPC that would be needed to support it (which may not look like DBus).

    • RedShift1 2 hours ago

      As I understand it, the tearing thing (no vsync) was only implemented after Valve pleaded, begged, and sacrificed a small animal to the Wayland developers.

    • phendrenad2 11 hours ago

      > It was designed to fix tearing issues, not latency issues.

      Actually is was designed because the X11 codebase was bad and nobody wanted to work on it.

    • preisschild 2 hours ago

      > Currently, only KDE and Gnome have somewhat usable Wayland implementations. If you use anything else? You're SoL.

      Wlroots exists.

      • itvision 12 minutes ago

        A library exists, correct.

        Good luck using it as your graphics subsystem.

  • bandrami 2 hours ago

    No, to fix tearing issues. Tearing and latency generally exist in a tradeoff relationship.

  • vander_elst 18 hours ago

    Wayland is just a protocol that is probably implemented over and over and each implementation might have issues. It's mostly likely the different implementations having issues.

    • hirako2000 17 hours ago

      Was Wayland not architected to be simpler to implement than the (antique) X11 protocol?

      Not arguing though, you are right it is just issues: Drivers, the Wayland implementations, how some plethora of apps and libraries have been battle tested then optimized, years over years, for X11. Not as much for Wayland display yet.

      • GuB-42 14 hours ago
        2 more

        Wayland is simpler because it does less. And among the things Wayland doesn't do and X does are things that people need. It means these things have to be implemented elsewhere.

        It is a common problem with these "simple" things. The problem is complex, and if you simplify one part, you are just pushing complexity elsewhere, you are not making it disappear. It is sometimes a good thing, but in the case of Wayland, it didn't go well.

        • freehorse 13 hours ago

          There is also the option to make complexity disappear by just convincing people that they should not want to do what they want to do. This was the kind of response to what I needed to do. Then I had to switch back to x11.

          In any case wayland is not bad if you only have pretty basic needs I guess, some basic things look easier to me there from a user perspective, and troubleshooting x11-related issues for a non-technical person is no fun either.

      • mrweasel 17 hours ago
        3 more

        > Was Wayland not architected to be simpler to implement than the (antique) X11 protocol?

        I think it's safe to assume that it is actually simpler, given that we already have multiple Wayland implementations, but still basically just the one X11 server implementation. Can one or more of those implementations shave off one or two milliseconds overs the next 40 years... Probably yes.

        • somat 16 hours ago
          2 more

          Sure, on linux all you really have is xorg, what used to be xfree86, but I have used xsgi, and there are X servers for windows, heck, I have even seen this amazing demo Xserver that ran on the web.

          footnote: there is something wrong with the commonly used web search engines and I am unable to find that X11 web demo, I think they are prioritizing recent content over good content. you would think with how interesting that web demo was it was it would show up right away. but I got nothing, so no links. Anyway it was a deep dive into the intricacies of X11 window painting and the author had ported a limited subset of an X server to javascript in order to provide a live demonstration of the topic. I will keep looking.

          Found it. https://magcius.github.io/xplain/article/x-basics.html

          • hirako2000 9 hours ago

            It's called a SEO driven content vs quality drive content. Unfortunately the engine has has poor sense of taste.

      • KerrAvon 17 hours ago

        Architecture contributes, but all it takes to blow input latency is some inefficient code almost anywhere in the input or rendering pipeline. The Apple IIe didn’t really have very many layers between the keyboard and the CRT. Wayland might have an optimal architecture in theory for latency — I don’t know — and latency could still be ruined by not fully optimizing the other components in the stack.

      • dsp_person 11 hours ago

        I'm impressed how wlroots compiles in under 3 seconds for me

  • mixmastamyk 16 hours ago

    Gnome was fixed a few years ago to remove significant latency it was adding. May have been a factor if you used that as well, but it wasn't wayland specific to my knowledge.

chme 5 hours ago

If you just want to measure user space software input lag, shouldn't it be more accurate if you print out the time when the event arrives in the kernel, and again when the mouse moves within a application window?

cakealert 16 hours ago

Would have been nice to see if the issue is present on wlroots compositors, GNOME rolled their own.

sheepdestroyer 18 hours ago

It would be interesting to have numbers under gamescope instead, Gnome doesn't care much about gamers & power users that mesure latencies.

  • dijit 18 hours ago

    Games don’t depend on a compositor for anything, they draw direct to the framebuffer.

    Anything related to the compositor won’t affect the game, unless it’s in windowed mode, then there can be some strange interactions.

    • talldayo 18 hours ago

      Games don't, but xWayland does.

      • dijit 18 hours ago
        10 more

        I thought we were talking about gamers, xWayland doesn’t affect gamers at all either.

        • mort96 17 hours ago
          9 more

          What do you mean? Most games run on XWayland when you're in a Wayland session, wouldn't input latency caused by XWayland therefore affect gamers who use Wayland?

          • dijit 17 hours ago
            8 more

            Games don’t run via X11, they write direct to the framebuffer using a framework like Vulkan.

            In windowed mode they can be captured, then things get tricky, but in full screen they draw direct to the gpu, vulkan itself is completely headless.

            • sheepdestroyer 17 hours ago
              7 more

              I don't think that's true on modern platforms where the compositor (Mutter in the case of Gnome) is always responsible for presenting the frame.

              Gamescope's direct scanout bypasses this.

              • dijit 17 hours ago
                5 more

                I’ll look into it, but it used to be a choice in the game settings that bypassed the drawing display server entirely, and caused that full screen flicker you might recall when tabbing back to your desktop (and the switchover of rendering control, and subsequent huge performance loss of the running game).

                I wasn’t aware that this changed, but you could be right. Its definitely the same on Windows as it always was, which is the platform I most developed games for.

                • zokier 15 hours ago
                  2 more

                  > Its definitely the same on Windows as it always was, which is the platform I most developed games for.

                  Not really. Most games use "borderless windowed" mode instead of fullscreen exclusive, and even FSE is not true exclusive mode anymore in most cases.

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

                  > When using Fullscreen Optimizations, your game believes that it is running in Fullscreen Exclusive, but behind the scenes, Windows has the game running in borderless windowed mode. When a game is run in borderless windowed mode, the game does not have full control of the display– that overarching control is given back to the Desktop Window Manager (DWM).

                  see also https://learn.microsoft.com/en-us/windows/win32/direct3ddxgi...

                  • ChocolateGod 12 hours ago

                    I think Windows now also supports hardware overlays, so games running in fullscreen Windows can skip the compositor, which reduces the latency in no longer allowing games to directly write to the FB.

                • hackernudes 9 hours ago

                  Doesn't really work like that in Wayland.

                  If an application framebuffer is full screen and in a compatible pixel format the compositor can do "direct scan out" where the compositor sends the framebuffer directly to the crtc instead of compositing first. I know that wlroots supports that. I'm not sure how much performance it saves to be honest.

                  And I'll second that most commercial games do go through XWayland, though it depends on what games you like!

                • BearOso 14 hours ago

                  Most compositors can do direct scanout when they detect a full screen surface. (This is broken right now with Gnome on X11 because of the way window frames are drawn: https://gitlab.gnome.org/GNOME/mutter/-/issues/2794 ) If the game uses the platform cursor then that will reflect the additional latency, but the actual input signals won't be delayed.

sho_hn 9 hours ago

Note that Wayland is a protocol, not an implementation. This testing was done with Gnome's implementation of Wayland, which doesn't mean much for any other Wayland desktop.

a-dub 10 hours ago

i run nvidia/intel/optimus/wayland in optimus/integrated mode on my laptop. i have anecdotally noticed perceptually salient increased response times when:

1) dpi scaling is in use 2) external displays are used via usb-c/displayport 3) the nvidia memory clock has been scaled down by power management

that said there have been fantastic improvements overall to both stability and response times since kde6 and nvidia-open have stabilized and i haven't noticed any of it in a long time now. it really is pretty great these days.

goodburb 16 hours ago

It's much worse with Nvidia 30+ series on Wayland, feels worse than a Bluetooth mouse, using Nouveau eliminates lag for the most part.

colonial 14 hours ago

Funny, I didn't even know this was a debate. I didn't even notice when Fedora switched from X to Wayland by default - maybe because I'm still a 60hz plebian?

I have experienced issues with my mouse input locking up/jumping - especially noticeable when I'm playing a shooter - but I'm pretty sure that's just my poor ancient mouse giving out.

bigbones 18 hours ago

would love to see this test repeated with a non-compositing WM on X11

ray023 17 hours ago

I also have no ideas how it works, but my guess would be that is actually translates exactly like that into games. Why would the mouse on the desktop have a latency that games do not have. Linux does not have a real fullscreen mode like Windows has (that I do not use anymore anyway for faster alt-tabbing). So my guess is, the cursor or mouse input gets into games very much the same way as it gets in the desktop.

  • zamalek 16 hours ago

    Wayland has support for games completely taking over the GPU; notoriously critical for VR support. This is basically the same as Windows exclusive full screen.

    Wine/proton would need to support it, XWayland would need to support it (Wine/Proton are one major step away from native Wayland support: Vulkan), and finally the compositor would need to support it. Gnome is about the worst compositor that you could be testing any of this stuff on, they are comically hostile towards ideas not their own. The chances of this ever working on Gnome are near zero. KDE is pretty good for support, Hyprland seems to be trying to support every under the sun.

    • NekkoDroid 12 hours ago

      > Gnome is about the worst compositor that you could be testing any of this stuff on, they are comically hostile towards ideas not their own. The chances of this ever working on Gnome are near zero.

      GNOME has supported direct scanout for fullscreen apps for a while and drm-lease was implemented not too long ago either.

    • debugnik 13 hours ago

      > notoriously critical for VR support. This is basically the same as Windows exclusive full screen.

      D3D12 dropped support for exclusive fullscreen, and I don't think headsets even go through DXGI but their own swap chain APIs. Why do VR games on Linux need the equivalent from the Wayland compositor?

  • gsich 16 hours ago

    Hardware cursor might be used in games. You notice the difference on Windows if a GPU does not support it, even on the desktop.

okr 12 hours ago

Hm. I am currently using Ubuntu 24.10 and it also has Wayland and gnome as a default, with the nvidia 565 driver. And it is really, really bad. For example, i use chrome and the tabs, man, it takes ages to switch from one tab to another and to get focus in the location bar again.

So much for the whining. I do not know what to do. I could record this behaviour, but it somehow needs to show the timestamp of when i intend a behaviour and the time, that behaviour becomes actualized.

I used to be quick with all the hotkeys but i do make so many mistakes now, because the system is simply not responsive and all my instincts await instant action.

henry700 18 hours ago

Has implications for competitive FPS gaming on modern Linux — one more problem to fix. For example "The Finals" allows Linux players, but imagine having this much input delay and having to revert to classic x11 to play games, lol.

  • riskable 18 hours ago

    It's actually just cursor latency specific to the windowed environment you're running. From what I've experienced (with a 4060 Ti) it doesn't seem to impact FPS games at all.

    I haven't tried any games that use a cursor with Wayland yet so I don't know if it would have an impact there.

    I think it has to do with whether or not the game in question is reading the mouse device directly (e.g. through SSL) or via the compositor. If it's reading the device directly it stands to reason that there would be less latency.

  • janice1999 17 hours ago

    > Has implications for competitive FPS gaming

    That has not been proven in the article. Input handling follows different paths for full screen games.

  • sundarurfriend 17 hours ago

    > having to revert to classic x11 to play games, lol.

    It would be more of a problem the other way around, if we had to resort to Wayland to get low latency. I think most of us using Linux for gaming and casual stuff are happy to stick to X11 for now and the foreseeable future. It has good support in software, its failure modes are well-documented, and it doesn't add one more layer to the pile of complexity that desktop linux already is; at least, not one us users have to consciously keep in mind as a common source of issues.

    • gf000 12 hours ago

      If anything, Wayland removes a layer. Replaces the insanely huge monolith with binary blobs with bog-standard Linux kernel APIs.

  • dralley 18 hours ago

    As I type this, I'm playing "the finals" on Linux via Proton on Wayland. I won't pretend I'm any kind of competitive gamer type, but it's perfectly fine and I don't feel like I'm being held back by input lag. So this is very much a niche issue to have.

  • dietr1ch 13 hours ago

    On CS2 Wayland gave a major performance boost, but it's being held back by a regression since a change in device input layer.

    https://github.com/ValveSoftware/csgo-osx-linux/issues/3856

    From outside it's hard to tell if it's truly protocol differences or just the age of the implementations on X11, but when Wayland came out every project has claimed improvements over the old X11 stack. Also, from the early Wayland days presentations bashed the protocol as something that couldn't be fixed without a rework that was not going to happen due to the dead weight of backwards compatibility and awful older hardware.

    As a user applications running on Wayland have consistently improved on how nice things feel if you don't miss your latency deadlines. It's easy to perceive on apps, and straight out obvious in games.

  • Novosell 12 hours ago

    I got to diamond in Apex Legends on Linux using Wayland on KDE Plasma. Didn't feel any noticeable difference between wayland, x and windows in my Apex playing.

  • talldayo 18 hours ago

    "Competitive FPS gaming" stops allowing anything besides fresh Windows installs after a certain point. It's a diminutive distinction, like pointing out that emulating GameCube games won't let Smash Melee players fight competitively; nobody playing on either side actually cares.

  • rez9x 18 hours ago

    I have trouble believing that 6.5ms in increased latency would be perceptible to any more than a fraction of a percent of the most elite gamers. Most the people claiming that this level of difference is impacting their gameplay are victims of confirmation bias.

    • tolciho 17 hours ago

      David Eagleman has done some work with drummers. Granted the audio system might be a bit more accurate than the visual, or maybe drummers are just weird. On the other hand, vim taking 30 milliseconds to start (ugh) and having sluggish cursor motions is why I'm on vi now. Haven't tried Wayland. Maybe in some number of years once it's more portable and more developed? (And how many years has it already been out?)

      > “I was working with Larry Mullen, Jr., on one of the U2 albums,” Eno told me. “ ‘All That You Don’t Leave Behind,’ or whatever it’s called.” Mullen was playing drums over a recording of the band and a click track—a computer-generated beat that was meant to keep all the overdubbed parts in synch. In this case, however, Mullen thought that the click track was slightly off: it was a fraction of a beat behind the rest of the band. “I said, ‘No, that can’t be so, Larry,’ ” Eno recalled. “ ‘We’ve all worked to that track, so it must be right.’ But he said, ‘Sorry, I just can’t play to it.’ ”

      > Eno eventually adjusted the click to Mullen’s satisfaction, but he was just humoring him. It was only later, after the drummer had left, that Eno checked the original track again and realized that Mullen was right: the click was off by six milliseconds. “The thing is,” Eno told me, “when we were adjusting it I once had it two milliseconds to the wrong side of the beat, and he said, ‘No, you’ve got to come back a bit.’ Which I think is absolutely staggering.”

    • Strilanc 18 hours ago

      It doesn't need to be perceptible to cause a difference in a game.

      Suppose two players notice each other at the same time (e.g. as would naturally happen when walking around a corner in a shooter), first to shoot wins, and their total latencies are identical Gaussians with a standard deviation of 100ms. Then a 6.5ms reduction in latency is worth an additional 2.5% chance of winning the trade. Maybe you won't notice this on a moment by moment basis, but take statistics and its impact should be measurable.

      In ELO terms a 2.5% gain in win rate is around a 10 point increase (simplifying by assuming that single Gaussian is the entire game). That's small, but if you were a hardcore player and all it took to raise your ELO by 10 points was using a better monitor/mouse/OS... why not? Doing that is cheap compared to the time investment required to improve your ELO another 10 points with practice (unless you're just starting).

      Also, I think you'd be surprised what people can perceive in a context where they are practiced. Speed runners hit frame perfect tricks in 60FPS games. That's not reaction time but it does intimately involve consistent control latency between practice and execution.

      • pests 16 hours ago
        2 more

        Slightly off topic…

        > Suppose two players notice each other at the same time (e.g. as would naturally happen when walking around a corner in a shooter)

        This is not true for third person games. Depending on a left sided or right sided peek and your angle or approach, players see asymmetrically.

        For example, Fortnite is a right side peek game. Peeking right is safer than peeking left as less of your body is exposed before your camera turns the corner.

        I believe distance also plays a part in the angles.

        • Strilanc 16 hours ago

          Yeah, network latency and client side prediction and accuracy will also play huge roles. The actual distributions will be very complex, but in general reacting faster is going to be better.

      • wink 16 hours ago

        Do people not play deathmatches on LAN parties anymore these days? 2.5 is huge if the game lasts long enough that someone would be leading with 200. ;)

    • AnthonBerg 15 hours ago

      Those sorts of latencies actually are noticeable! As an example, 6.5ms latency between a virtual instrument and its UI is definitely noticeable.

      I didn’t think it was. But it is. I promise!

      It’s not necessarily a reaction-time game-winning thing. It’s a feel.

      With virtual instruments, my experience is that when you get down to ~3ms you don’t notice the latency anymore… but!, when you go below 3ms, it starts feeling more physically real.

    • bandrami an hour ago

      Now download Mixxx and try DJing and using the waveforms for cueing

    • Hikikomori 17 hours ago

      About the difference between 60hz and 120hz monitor, instantly noticeable just by moving the mouse in windows (just by looking at the distance cursor updates as it moves). Would you argue that all gaming monitors are placebo?

      • layer8 17 hours ago

        Just to nitpick, that difference is still above 6.5 ms.

      • bigstrat2003 16 hours ago
        4 more

        I actually would. Gaming monitors are the equivalent of fancy audiophile gear. It's a way to fleece people by making them think they can perceive a difference that isn't really there.

        • sapiogram 16 hours ago

          But the difference between 60hz and 120hz is instantly noticeable in a blind test, without even opening a game. That's by definition not placebo.

        • Hikikomori 15 hours ago

          Guess you think all speakers are the same.

    • xyst 18 hours ago

      You may think 6.5 ms of input latency is imperceptible. But combine it with the rest of the stack (monitor refresh rate, local network latency, RTT between client and server, time for server to register input from client and calculate “winner”), and it becomes the diff between an L and W. In the case of pros, the diff between a multimillion dollar cash prize and nil.

    • cma 17 hours ago

      There are noticability thresholds where this could push it over. For fighting games if you have the reactions to whiff punish N frame recovery moves this may push you to only being able to punish N+1 recovery moves and really impact your ranking. This is a little over 1/3rd of a 60hz frame.

Grieverheart 5 hours ago

Isn’t 3 frames of latency already way too much? I would say they are both too slow!

soganess 16 hours ago

Great work, I hope the gnome/wayland devs appreciate it.

I wonder if there is an issue with high frame rate support in Gnome (or possibly wayland?). It seems like they are actively still working on it:

https://9to5linux.com/gnome-47-3-improves-frame-rate-for-mon...

  • PeakKS 15 hours ago

    No, that article is about copying frames between gpus

superkuh 18 hours ago

The various wayland compositors all have huge problems with keyboards, mice, and other input devices because the wayland spec and reference implementation(s) chose not to support such things. So each wayland compositor picks a different solution. Popular ones are libei and libinput but often there's just no support for "advanced" mouse/keyboard inputs at all (looking at you, weston). And you can never tell if a particular piece of linux software will work on any given wayland. The fragmentation is terrible. On X with the strong X11 reference that actually implements everything you can be sure something that works on one will work on another.

Hell, it's been 12 years and not a single wayland compositor supports screen readers for the visually disabled yet. They are toys.

  • Hizonner 17 hours ago

    I'm told they left out color calibration support, too (as I read it, there's no way for calibration apps to control, or even know, what compensation is applied when they're trying to measure things). Oh, and client side window decorations still around, giving up on the chance to fix an ancient security hole.

    So no good for games, no good for professional graphics, no good if you don't see well... basically no good if you're any different from the people who hacked it together.

    But, hey, with any luck they cut down on the screen tearing that I've never noticed.

    • jeroenhd 16 hours ago

      It's unfortunate that colour calibration took a while to be fully implemented (xx-color-management-v4 landed on most compositors half a year ago I think, though LTS distros may need to wait longer to get it).

      That being said, thanks to Nvidia I never got colour calibration to work right in X11 either, so I have no horse in this race. Would be cool to finally get HDR working for the first time, but I don't know if that'll ever happen on Linux with Nvidia hardware. Guess I should keep dual booting for HDR content until either Windows 10 dies off or I get new hardware.

      I do actually notice the lack of tearing in Wayland, especially under heavy load. Used to annoy me to no end to see my windows tear when just dragging them across a 1080p screen. I don't know if it was an Intel driver bug (I tried all the config settings) or something X11 specific, but Wayland did finally fix the tearing issues I had.

      I haven't noticed any problems with colours in either Gnome or Gamescope (except for the lack of HDR, of course, but that's also true on X11) so whatever is causing issues for you seems to be DE specific. Looks like we both have issues other people never encountered, that's what makes graphics stacks so impossible to debug and code for.

    • gf000 12 hours ago

      Wayland is an extensible protocol. The core is literally just "here a buffer", but it has several extension in various phases that can greatly extend its capabilities. This way, a Wayland compositor can be used as a kiosk screen for a single program, or be a full-blown compositor+window manager, all relying on standard Linux interfaces for the display part.

      Color calibration can absolutely be retrofitted into this (versioned) protocol, and there is work ongoing.

    • KerrAvon 17 hours ago

      FWIW, I don’t think they left it out so much as haven’t spent the time to build it. It’s not like they’re pulling implementations off the shelf.

    • mariusor 17 hours ago

      > basically no good if you're any different from the people who hacked it together.

      Why would you expect it any different? How can one implement things that they have no need or no hardware for? The entitlement is a bit jarring.

      Also I think they merged something last year: https://github.com/swaywm/sway/pull/7681

      • Hizonner 17 hours ago
        3 more

        If you control what goes into a distribution, you can not drop support for stuff that's working and already implements those needs in favor of whatever you pull out of your butt.

        • mariusor 4 hours ago

          What was the "stuff that's already implemented"? Xorg? Which distribution has dropped Xorg?

        • tuna74 15 hours ago

          You can do whatever you want if you control a distribution. Use something else if you don't like it.

  • bsnnkv 18 hours ago

    This is why I ultimately ended up on Windows after switching from macOS and focusing my free time development work on improving the power user/developer experience on Windows with a tiling window manager ecosystem.[1]

    One of the really cool things that has come out of this is seeing how people are adding accessibility workflows on top of the ecosystem. There is one person who controls their entire desktop via the tiling window manager using voice control![2]

    [1]: https://github.com/LGUG2Z/awesome-komorebi

    [2]: https://youtu.be/fiPJLmhnnXM

    • BearOso 14 hours ago

      Windows has added several things with the newer WDDMs to help alleviate compositor problems: flip model, overlays, etc. They've definitely identified the problem areas and are trying to correct them. It's been quite the turnaround since Vista.

  • mariusor 17 hours ago

    > there's just no support for "advanced" mouse/keyboard inputs at all

    It feels like you're probably blaming the wrong people here. You should look at the companies that make this peripherals that don't also offer you linux drivers.

    • KerrAvon 17 hours ago

      You say this, but have you seen the quality of the drivers they produce on platforms they ostensibly support? You do not want vendor mouse/keyboard software on any platform. Instead, improve the USB class drivers so that you don’t need third-party drivers.

      • jeroenhd 16 hours ago
        2 more

        I agree with you on general drivers, but what generic devices does Linux still lack? Controller HID support seems pretty universal, as do all manners of touch screens/touch pads, drawing tablets, and just about anything resembling a keyboard.

        The only hardware I know for sure is lacking is stuff like Stream Decks, but that kind of hardware is difficult to generalise for.

        Plus, most working hardware that doesn't fit a standard HID protocol already has drivers in the Linux kernel written by manufacturers.

  • tuna74 16 hours ago

    What is lacking when you are using Orca on Gnome with wayland?

snvzz 2 hours ago

Mouse is moved. Preemption happens. Hardware cursor is repositioned.

The Amiga could do it in 1985. Linux has realtime scheduler classes (i.e. SCHED_FIFO and SCHED_RR). These days, even PREEMPT_RT.

Some Wayland composers are already leveraging hardware cursors when possible.

Why is it so hard? What's stopping them from accomplishing this?

rezmason 14 hours ago

This reminds me of the early work of the structuralists in psychology. Measuring the time it takes for a person (or in this case Wayland) to react to a sensation.

whatever1 17 hours ago

Can’t we port whatever android uses? Clearly the community cannot execute GUI related things at the level that a focused company can.

Possibly because the best contributors don’t care about GUI anyway.

  • itvision 16 hours ago

    Surface Flinger currently doesn't support well or at all multi-monitor configurations which are essential for the PC user.

    Otherwise, it's actually far more advanced than Wayland, and it had essential modern features implemented years ago, including HDR, VRR, and others.

    Why hasn't it been ported to Linux? Probably NiH, probably it's Google's child.

    • dTal 16 hours ago

      Ported to Linux? It runs on Linux. What exactly would need porting?

      What would be required to make surfaceflinger a practical Linux desktop compositor is merely some translation layer, equivalent to XWayland, that supports hardware acceleration. Such things have been written, but not open source and they never got traction.

      The idea has been toyed with for over a decade: https://news.ycombinator.com/item?id=5317638

      • yjftsjthsd-h 10 hours ago

        > Ported to Linux? It runs on Linux. What exactly would need porting?

        It runs on Android/Linux, not GNU/Linux. I would be surprised if there wasn't at least a bit of work needed to handle things like bionic vs glibc, and you'd really want it to act "normal" by being installed to FHS paths instead of Android's weird filesystem layout. All doable, I expect, but it would be a port.

  • tuna74 15 hours ago

    Just do it!

shmerl 15 hours ago

> GNOME Wayland session

I wouldn't use that. Try KDE if you want a decent gaming experience. Gnome was very slow in even implementing something like adaptive sync, so they hardly are prioritizing latency issues for the end user.

I.e. Gnome's problems ≠ Wayland problems in the broader sense. Conflating the two is wrong.

  • sprash 14 hours ago

    Wayland lacks a strong reference implementation. The resulting fragmentation in the ecosystem turns the most popular compositors into de-facto standards every application developer will have to use as a reference.

    This means Gnome's problems = Wayland problems.

    Furthermore, the latency issues with Wayland are inherent. Compositors will always have worse latency than writing directly to the front buffer.

    • ChocolateGod 12 hours ago

      > Compositors will always have worse latency than writing directly to the front buffer.

      This is not really true, if a full screen application is detected, the compositor can tell the GPU to instead just display the contents of the applications buffer, skipping the compositor.

      IIRC this is broken on Xwayland GNOME.

    • bandrami an hour ago

      > Compositors will always have worse latency than writing directly to the front buffer.

      I mean... in the sense that "ALSA has to be faster than Jack ultimately", I guess; that fact may not be useful for a given setup

    • shmerl 13 hours ago

      The kind of issues referenced in the article are not related to compositors being compositors though, but to bad implementations.

      Gnome is big, but it's not the most popular DE out there, so it can't be treated even as a de-facto standard in the Wayland world. Some things might be treated that way, but they are lower level (let's say Pipewire, libinput etc.).

      And regardless, it can't be used an example that blames Wayland for Gnome's issues, unless literally every single compositor has this problem and the real reason is Wayland's inherent limitations. There are such limitations in general indeed due to Wayland still evolving, but this isn't one of them.

light_hue_1 15 hours ago

Wayland has just been a disaster for the open source desktop. It's absorbed all of the effort into something horrifically subpar while breaking compatibility with the past.

Accessibly is far worse to the point of embarrassment. Latency is worse. Compatibility is gone. Everyone in the ecosystem needs to do more work to end up with fewer features for end users.

This is the opposite of systemd in every way. Systemd upset a lot of people because it was entirely user focused and didn't care about the beauty of the architecture. Wayland is only obsessed with how nice their apis are, not what the end user experience is.

Let's end this disaster. It's been 16 years. It's almost old enough to vote. When will we accept it has failed?

  • tuna74 14 hours ago

    "Let's end this disaster. It's been 16 years. It's almost old enough to vote. When will we accept it has failed?"

    Use what you think is better then.

  • prmoustache 14 hours ago

    x11 failed in other areas, and earlier.

    So what is your proposal, starting again from a blank sheet?

    I don't think it will help.

    • Gormo 14 hours ago

      > x11 failed in other areas, and earlier.

      Still works great for me!

      • prmoustache 13 hours ago

        as do wayland for the majority of its users.

        Fine, we are all happy then.

  • hacker_homie 14 hours ago

    I mean X11 was a pile of hacks, it became an unmaintainable pile of hacks. I think reduced scope was a good call, writing a display server is a hard problem. A lot projects started and failed to replace X11.

    If you feel this way I recommend watching this talk by Daniel Stone from linux.conf.au 2013, The Real Story Behind Wayland and X https://www.youtube.com/watch?v=RIctzAQOe44

    • uecker 12 hours ago

      People believing this old propaganda is what brought us into this mess.

      • ChocolateGod 12 hours ago

        Just because you don't agree with it (which is weird given the guy is a big X/Wayland maintainer), doesn't make it propaganda.

        X sucks for how graphics work in the 21st century, there's a big reason Google didn't use it for Android and instead made something that's actually more akin to the Wayland model .

sweeter 15 hours ago

Its very interesting, but I would love to see other Wayland implementations other than GNOME's. Its kind of hard to tell if its the GNOME specific implementation or if this is going to be a trend across KDE X vs KDE wayland and specific window managers like sway -> i3 and hyprland etc... But still a really cool blog post.

bitwize 16 hours ago

Composited desktops have their drawbacks. With a display system like X11 or old-school GDI-based Windows, draws to the display are next to immediate, whereas with composited desktops, everybody has to draw to a back buffer, then the back buffers have to be composited together on the final display, adding at least one frame of latency. Mouse cursors have been a hardware sprite since the 90s, but Wayland compositors may favor using the GPU to draw a soft cursor.

It'd be interesting to see a compositor that can speak Wayland, yet performs immediate, region-clipped draws of all windows like X11 conventionally does.

guerrilla 17 hours ago

I knew it! And when it does stall it takes way longer than X11.

Asooka 12 hours ago

Why is there latency beyond a single frame at all?? I did a very quick replica of the camera frame counting on Windows with a 144Hz display and it's definitely below the camera's 60FPS, i.e. the cursor moves on the same frame that the mouse moves. Moving a window also has 0 lag in that test.

BearOso 18 hours ago

This boils down to software cursor vs hardware cursor.

  • mort96 17 hours ago

    I'm pretty sure this is incorrect? I half-remember having cursor rendering bugs on GNOME Wayland with NVidia ages ago which I had to disable something h hardware cursor related to fix. But I don't know if that's what you're talking about or not. Could you link to a source which says that Mutter doesn't make use of hardware cursor?

    (Hi, author here by the way! ... Don't worry, that disabling hardware cursors thing was at least one OS re-install ago)

    • BearOso 17 hours ago

      Yes, it should use hardware cursor by default on most hardware. But I don't think that RPi's VideoCore (in the linked article) supports hardware cursor or multiple planes. The difference between X11 and Wayland might then be that the cursor isn't vsynced as part of the composite process on X11, where it is on Wayland.

      Mutter definitely throttles cursor updates on Wayland, too, which will contribute slightly to latency even with a hardware cursor. In general, with Wayland, the compositor is responsible for cursor updates, and I'm not sure which other ones throttle. But that would be where the difference comes from when using hardware cursors.

      • dividuum 16 hours ago
        2 more

        Pis VideoCore has like 48 planes split up between writeback and HDMI output CRTCs. There’s one explicit Cursor plane per CRTC.

        • BearOso 14 hours ago

          Thanks, I didn't know this.

          I think the difference mort96 is seeing is the cursor update throttling. If it updates at the same rate of the refresh rate then it's a crapshoot where in that interval it hits relative to vsync, with a worst case additional latency of the frame rate. X11 updates the cursor whenever it moves, so on scanout it's always where you expect it to be, even if the motion was almost immediately before vsync.

          I should mention that in the past there's been problematic interactions on amdgpu with atomic updates of the cursor and display planes. This resulted in either one being starved from changing, causing stuttering in one or the other depending how it was handled. IIRC, that's why the throttle is there. You could try MUTTER_DEBUG_ENABLE_ATOMIC_KMS=0 to see if they only added the throttle to the atomic code path.

    • mariusor 17 hours ago

      I wonder if the latency is due to the compositor receiving a damage event for the area of the cursor, thus being a frame late to render. But probably that wouldn't be an issue with hardware cursors.

  • itvision 16 hours ago

    This assumption is incorrect.

    • BearOso 14 hours ago

      Thanks, I think you're right.

  • hacker_homie 14 hours ago

    I think you mean, The display server cursor (we can draw directly to the frame buffer) vs The Compositor Cursor (this involves and extra copy)

    It's all software.

sylware 17 hours ago

Only one wayland compositor and then it is all wayland compositors???

markhahn 12 hours ago

honestly, I still don't get the point of wayland.

  • sam_lowry_ 8 hours ago

    Kill all the fun in writing window managers?

mixmastamyk 17 hours ago

Looked up the mouse to see how fast it updates and read that it is wireless. Kind of disappointing and might explain some of the variance. Although if X11 is consistently faster the test should still have some validity.

Would like to see a test with gnome and the wireless mouse removed from the equation.

  • IshKebab 16 hours ago

    Yeah testing this with a wireless mouse is dumb. The proper way is to use an Arduino or similar as a USB mouse, and connect a photodiode to it too.

    USB mice update at 1 kHz.

    • viraptor 15 hours ago

      It depends on the model. Wireless mice don't have to be slower than wired. But even then, for this test it's irrelevant. It's the same mouse in both scenarios, and we only care about the difference. Even if a wired mouse stripped X ms on both sides, the result would be the same.

      • IshKebab 14 hours ago
        2 more

        It does matter because the latency of a wireless mouse isn't necessarily consistent, so it adds noise into an already very high noise set-up.

        • viraptor 14 hours ago

          That's only a problem if the noise of wireless is higher than the signal (measured delay difference). And we can see from the data it isn't. Unless you're claiming it can be consistently different by ~5ms between those two tests... but that's very unlikely. Like, "you should demonstrate it" unlikely.

sprash 15 hours ago

It should be easy to create something better than X11. And if not pour more resources into X11 developement. Wayland on the other hand is a complete failure on all fronts. It should be abandoned ASAP.

  • PeakKS 15 hours ago

    Well it's already better than X11, so task accomplished.

    • sprash 15 hours ago

      What exactly is better? I can't even think of a single thing.

      It has worse performance on almost all metrics. Heavy fragmentation. Very limited and incomplete API measured in functionality but still extremely complicated to work with as developer. Extremely slow development. The only thing that it has over X11 is better funding (for whatever reason).

      • mixedCase 14 hours ago
        4 more

        Are we really pretending multi-monitor on X is not an absolutely shit show? Try mixed DPI and VRR in one of the monitors and see how you get that working well.

        • Gormo 14 hours ago
          2 more

          I have zero issues with multiple monitors, with mixed DPIs and refresh rates, and different scaling factors on each display, using XFCE under Xorg.

          • amaranth 10 hours ago

            Now drag a window from one monitor to the other. The choice on X is to have both monitors run with the same specs (well, not for everything but yeah) or to have two completely separate screens at the X level which means they're isolated from each other and you can't move thing between them.

        • sprash 14 hours ago

          The VRR issue can be solved with a simple patch that never got merged into mainline (no idea why). Hence it's not inherently a X11 problem and honestly also a rather niche problem compared to the humongous deficits Wayland brings.

          Mixed DPI works perfectly fine on X11 if the toolkit supports it. The xrandr protocol provides all the necessary dpi information. GNOME simply chose not to support it on X11.

PeakKS 16 hours ago

This is pretty bad methodology for someone to call it "Hard numbers"

  • sapiogram 16 hours ago

    If you're unhappy about their methodology, you're welcome to write productively about your specific gripes.

  • jay_kyburz 16 hours ago

    Yes, I was expecting some software that listens directly to the mouse input, and watches a pixel on the screen. Messing around with cameras and counting frames introduces a whole bunch of other variables like the quality of the monitor and mouse and phone used for recording.

    • ggreer 15 hours ago

      The camera, mouse, and monitor all stayed the same for the tests, but there was a significant difference in latency. Out of the 16 times the experiment was run, only once did Wayland have lower latency. It would be an amazing coincidence if the monitor, mouse, and/or camera were the reason for this.

      Figuring out why there's increased latency is a job for software tooling, but I think this guy's experiment is one of the best ways to measure what users care about: The time it takes for an input (such as mouse movement) to result in a change (such as cursor movement).

      Note that this doesn't mean that the Wayland protocol itself is the reason for the higher latency. It may be Gnome's implementation (testing with a wlroots compositor might shed light on this). It may be differences in default configuration options. It may be that Wayland and X11 start up different services, and the Wayland helper processes increase load on the machine. But I seriously doubt the reason for the difference in latency was because the same hardware was used throughout the experiment.

    • mort96 3 hours ago

      I got results with a P-value of under 0.001. That should be enough to demonstrate that there's a real difference.

      Using a camera allows the methodology to he identical between Wayland and X, while I don't know how to listen for mouse movements from software in a way that wouldn't introduce its own problems. What if the photons are emitted from the screen after the same number of milliseconds across X and Wayland, but Mutter is a few milliseconds slower about notifying my measurement application? Conversely, what if Mutter has more real latency than X, but the latency is introduced after the stage where my measurement application sits?

      The variables you mention are identical between the Wayland test and the X test. It is admittedly a challenge for reproducibility, but doesn't affect these results.

    • viraptor 15 hours ago

      The mouse and monitor don't matter here. Unless their delay completely dominates the timing (it doesn't here) they can be ignored because the setup is constant been the tests. We're interested in the difference, not the absolute numbers.

    • tuna74 15 hours ago

      How would you "watch a pixel on the screen" in pure software. You need a camera and an input device in the loop.

      • jay_kyburz 15 hours ago
        2 more

        Is it not possible to simply query the frame buffer right before its sent down the HDMI cable. What color is pixel 0,0?

        • tuna74 14 hours ago

          Maybe you could do that by hacking the driver in a Linux system? I don't know actually.

    • lolc 15 hours ago

      The chosen protocol works fine to answer the question. Overall latency is what counts.

t3rra 17 hours ago

Answer: DLSS 4

  • itvision 16 hours ago

    Answer to what?

    DLSS was designed to solve performance issues, not architecture problems and poor design.

    And you absolutely wouldn't want your fonts or UI to be upscaled by it. You will hate every second of your experience.

    • t3rra 13 hours ago

      It was a joke. Why are you so serious? Did you have a bad day?

  • soganess 16 hours ago

    My response assumes that you are talking about the "frame warping" feature of Reflex 2 (saying DLSS 4 was misquoting Nvidia's PR jumble) not simply frame-gen/MFG or upscaling. MFG, while producing even more interpolated frames, does not improve latency and will probably make it worse. I suppose an argument could be made for upscaling in a roundabout may (lower internal resolution = more frames = faster response time) but that would be more true for DLSS 3 as it has a lower GPU overhead than the transformer-based DLSS 4

    Anyways, even if it were the case that graphic stack produces a response to the input by warping the frame during interpolation / before rendering, the input that triggers said response would (certius paribus) still go through libinput (and most likely the Wayland compositor) so timing would remain the same. For any features to improve on response time, it would likely have to circumvent one (if not both) libraries.

    • t3rra 13 hours ago

      I know I know. I just made a joke. And I know you cannot get it. Seriously, you two guys are so serious. What is the problem with you?