Announcement

Collapse
No announcement yet.

KDE's Nate Graham On X11 Being A Bad Platform & The Wayland Future

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #61
    Originally posted by browseria View Post

    This is the second time you've said this, and I don't understand, specifically what critical system functionality are Wayland applications expected to maintain? I have written several Wayland applications that I have maintained over years, through the GTK3 -> GTK4 transition, but I can't think of any code that matches this description...
    There is an excellent article on Wayland vs. X by Wikipedia at https://en.wikipedia.org/wiki/Wayland_(protocol).

    Pay special attention to the "Rendering model" section which explains the responsibilities of a Wayland client, and the multitude of ways those demands can be met. Here is the first paragraph:

    "The Wayland protocol does not include a rendering API. Instead, Wayland follows a direct rendering model, in which the client must render the window contents to a buffer shareable with the compositor. For that purpose, the client can choose to do all the rendering by itself, use a rendering library like Cairo or OpenGL, or rely on the rendering engine of high-level widget libraries with Wayland support, such as Qt or GTK. The client can also optionally use other specialized libraries to perform specific tasks, such as Freetype for font rendering."

    Of course this would be bad enough, but now add to that the fact that Wayland has a plethora of incompatible implementations that require different client implementations, and a clear picture of the hot mess that is Wayland emerges.
    Last edited by muncrief; 27 December 2023, 02:39 PM.

    Comment


    • #62
      Originally posted by muncrief View Post

      There is an excellent article on Wayland vs. X by Wikipedia at https://en.wikipedia.org/wiki/Wayland_(protocol).

      Pay special attention to the "Rendering model" section which explains the responsibilities of a Wayland client, and the multitude of ways those demands can be met. Here is the first paragraph:

      "The Wayland protocol does not include a rendering API. Instead, Wayland follows a direct rendering model, in which the client must render the window contents to a buffer shareable with the compositor. For that purpose, the client can choose to do all the rendering by itself, use a rendering library like Cairo or OpenGL, or rely on the rendering engine of high-level widget libraries with Wayland support, such as Qt or GTK. The client can also optionally use other specialized libraries to perform specific tasks, such as Freetype for font rendering."

      Of course this would be bad enough,
      This rendering model was chosen because that is exactly how we have been using X11 for some 20 years. There is nothing bad about it.

      but now add to that the fact that Wayland has a plethora of incompatible implementations that require different client implementations, and a clear picture of the hot mess that is Wayland emerges.
      What are you talking about? There is exactly *one* Wayland protocol specification that everybody has to implement. At the moment I am not aware of any Wayland programs that would require some specific Wayland compositors to work properly. The situation gets worse when some protocol *extensions* are required to provide good user experience (such as video players relying on presentation-time to render the next frame with accurate timing). A lack of extension support by a compositor does not make it an "incompatible implementation" and clients should be able to deal with it. OpenGL, Vulkan or even X11 use the same concept.

      Comment


      • #63
        Originally posted by muncrief View Post
        Pay special attention to the "Rendering model" section which explains the responsibilities of a Wayland client, and the multitude of ways those demands can be met. Here is the first paragraph:

        "The Wayland protocol does not include a rendering API. Instead, Wayland follows a direct rendering model, in which the client must render the window contents to a buffer shareable with the compositor. For that purpose, the client can choose to do all the rendering by itself, use a rendering library like Cairo or OpenGL, or rely on the rendering engine of high-level widget libraries with Wayland support, such as Qt or GTK. The client can also optionally use other specialized libraries to perform specific tasks, such as Freetype for font rendering."

        Of course this would be bad enough, but now add to that the fact that Wayland has a plethora of incompatible implementations that require different client implementations, and a clear picture of the hot mess that is Wayland emerges.
        If that is your argument, then you have NEVER coded anything for X. Although X11 has drawing primitives, they are "80's state of the art", and that is the reason why nobody use them today, using instead Cairo or OpenGL: they lack antialiasing, are quite crude and limited... So what they really did in Wayland was to remove a piece of code that nobody used. The same for fonts: nobody is using the X font server anymore since years, all programs use Freetype for the same reason that they use Cairo or OpenGL: because it is more flexible to do the rendering in the application and just send the complete rendered frame to the X server (even more: some things like true WYSIWYG is impossible with the X font rendering system; the X font server would need to send so much info about the font to the client that any advantage of server-side rendering would be lost). In fact, server-side font rendering is considered obsolete https://en.wikipedia.org/wiki/X_Font_Server

        Comment


        • #64
          Originally posted by DrYak View Post
          And as usual, most of the thread will consist on people who missed that:
          • most of the modern GUI software doesn't actually use core X11 protocol (e
            g.: nobody uses drawing primitives), instead it uses a few after-the-fact haphazardly bolted on hackish extensions (compositing, etc.). Wayland is mery a from scratch reimplementation of the features from those X11 extensions that modern GUI actually use
          • wayland is developed by the actual Xorg devs, i.e. the people best situated to know that most of classic X11 doesn't make sens anymore nowadays.


          But I am looking forward to the systemd-wayland jokes.
          Nobody uses drawing primitives, yet somebody does use the following:

          - Functions to query window status, mouse position and all
          - Hotkeys
          - Automation (xdotool)

          Comment


          • #65
            The way I see it, the real issue is that X11 is not just a display system but a whole workspace environment. By the time Wayland started to replace X11, there were so many programs doing things the X11-way and so many people who learned to rely on that. This is something that Wayland designers seriously underestimated. People were similarly outraged with Pulseaudio or systemd. Wayland is fighting a particularly difficult fight because it sits in a place where affects user/computer interaction in almost every aspect.

            Comment


            • #66
              If wayland is so much modern and so much better then x11, then where is HDR support for wayland? From ordinary linux users perspective x11 is miles ahead of wayland. For such user wayland is unusable and that's after 15 years of development. It's simply waste of developers times and resources. It's like reactos (open source windows). No one is gonna use it for anything other then running it so that some tech guy/gal said "yeah cool"
              Same thing is going on for linux on apple silicon. By the time it's usable on that hardware we will already have great arm chipsets in PC world too. Also there is literally 0 chance of linux being optimized on apple silicon like mac os is. It's too locked down and hardware is specifically designed to run mac os, not linux.

              Comment


              • #67
                Jesus, it's 100% guaranteed that every psychopath in the Linux community will develop a beard of pavlovian foam the instant Wayland is mentioned. Get a fucking life.

                Comment


                • #68
                  Originally posted by mrg666 View Post

                  I just tried with Amazon Prime Video and Youtube using Chrome on Plasma 5.27.10. When the video is full screen, the cursor disappears. It seems Kwin has it implemented and the problem is the application, if the cursor do not disappear.
                  I mean disappearing after inactivity, e.g. while typing, which is why I mentioned unclutter. Sorry if that wasn't clear enough. KWin does *not* have that implemented, as it was rejected twice by the devs. I launched a bounty now, let's see if that helps convince them.

                  Comment


                  • #69
                    Originally posted by t1r0nama View Post
                    If wayland is so much modern and so much better then x11, then where is HDR support for wayland?
                    Alright, and where is HDR support for X11?

                    Let me provide you with the answer: for Wayland, HDR support is down the road; for X11, HDR support is out of the question.

                    Originally posted by t1r0nama View Post
                    Also there is literally 0 chance of linux being optimized on apple silicon like mac os is. It's too locked down and hardware is specifically designed to run mac os, not linux.
                    Exactly. So what's the point of complaining about it as if it were Linux's fault? The blame is on Apple for locking down its ecosystem and hindering third-party attempts at implementing proper Linux support, instead of providing drivers and support themselves; not on Linux.

                    The exact same goes for Wayland and Nvidia: it's Nvidia's fault for not providing proper Wayland support, and the Linux ecosystem is not to blame if they've finally decided to move things forward instead of sitting endlessly around and waiting for Nvidia to move their a$$es.

                    And Nvidia is actually worse than Apple because Apple may be many things, but unlike Nvidia they at least don't pretend that they want to provide support for Linux.​

                    Originally posted by Vistaus View Post

                    I mean disappearing after inactivity, e.g. while typing, which is why I mentioned unclutter. Sorry if that wasn't clear enough. KWin does *not* have that implemented, as it was rejected twice by the devs. I launched a bounty now, let's see if that helps convince them.
                    I just tried it with Kate and it worked, but it doesn't work with e.g. LibreOffice, so maybe they've only implemented it for KDE/Qt apps?​
                    Last edited by Nocifer; 27 December 2023, 05:34 PM.

                    Comment


                    • #70
                      I have been using exclusively wayland via sway for 4 years now and I have zero issues and nothing that doesn't work.

                      Comment

                      Working...
                      X