Announcement

Collapse
No announcement yet.

XWayland 24.1 Planned For Release Next Month With Explicit Sync & Other Features

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

  • #31
    Originally posted by Quackdoc View Post
    Your link is broken for the PDF. but I would very much disagree with flutter + wayland being best practice for embedded. Well flutter at all. Flutter is great don't get me wrong, I
    Fixed link but that was not my personal option that the option from sony the one who does most of the development on Flutter.

    Comment


    • #32
      Originally posted by anda_skoa View Post
      For example when you are in Kmail and create a new IMAP account, the backend service will create another IMAP handler.
      And Kmail will then ask (via D-Bus) that handler process to show its configuration UI.

      That UI appears to the user as a dialog of Kmail, because the two processes have exchanged the information necessary to associate the "foreign" window to be "transient to" Kmail's main window.

      Outside of Qt we have basically all web browsers which launch one process per tab and integrate their buffers into their own UI.
      PCSX2 is not doing any of the above. That kmail configuration ui is window with all it contents provided by one process right. PCSX2 this is not the case parts inside that window can own to different processes.

      Even the web browsers the buffers into their own window. Those buffers still come under the control of the one browser process. You are not looking at this with PCSX2.

      Originally posted by anda_skoa View Post
      I am somewhat curious how they are approaching their "foreign" process integration, but I guess I don't really want to spend that much time understanding a code base I am not used to
      Hello everyone! This is a new attempt to resolve the issues clients designed for stacking window managers are facing when they want to set their own...


      The PCSX2 problem falls straight under 264 merge request problem. There is not really foreign process integration and PCSX2 has it own iPC. PCSX2 is more one application tells another application by it IPC an absolute position and then it puts window/popup at absolute position..... Of course when qt decides to bogus of absolute position in way that works with a most applications this goes totally south with something like PCSX2.

      Originally posted by anda_skoa View Post
      I wonder why they are not using a more common approach then.
      Because PCSX2 like PCSX before it was not a normally constructed program. These are closer to GIMP of old where all different parts of the program are in fact different applications. PCSX2 use to allow third parties to provide applications replacing almost every single bit and modern fork PCSX PCSX-redux still does..

      PCSX2 gui design is absolutely not a common design. Most GUI common designs(over 98%) don't have Button from one process and the pop window that button raised from a different process and requiring perfect alignment between those bits.

      Stuff like PCSX2 when it comes to GUI construction is a true abomination even under X11 it technically using what is called undefined behavior. Yes PCSX2 problems are true corner case like it or not.

      Comment


      • #33
        Originally posted by oiaohm View Post
        That kmail configuration ui is window with all it contents provided by one process right.
        The main configuration UI is a window from the Kmail process itself but configuration UI of backend processes, e.g. IMAP account handler, are not.
        Kmail and the handler process use xdg-foreign to associate their windows such that the handler's window is considered by the compositor as if it where an in-process dialog of Kmail itself.

        They do a very similar trick on X11. I think there it is called setting a "transient for" hint on the handler's window.

        KDE has helper API for both display servers (and might even work beyond Linux) to do that: see the two variants of KWindowSystem::setMainWindow()

        Originally posted by oiaohm View Post
        Even the web browsers the buffers into their own window.
        I see.

        Originally posted by oiaohm View Post
        Hello everyone! This is a new attempt to resolve the issues clients designed for stacking window managers are facing when they want to set their own...


        The PCSX2 problem falls straight under 264 merge request problem.
        Thanks! Will do some reading.

        Originally posted by oiaohm View Post
        PCSX2 gui design is absolutely not a common design. Most GUI common designs(over 98%) don't have Button from one process and the pop window that button raised from a different process and requiring perfect alignment between those bits.
        So the other process' popup should appear adjecent at the main processes button?

        That is pretty easy to do with Wayland, especially in Qt.

        I have recently done that as a demo for a customer who wanted to have the UI of two existing applications integrated in such a way as to appear as one to the user.

        On X11 they try to fake this with specific rules of their window manager, but of course they are still two processes.
        So one application's modal dialog are not modal for the other.

        With Wayland you can simply create a nested compositor, in my case using the Qt Wayland Compositor framework.
        You can then place the surfaces of your clients (main window, dialogs, popups) anywhere in your window as you see fit.
        None of those are even "seen" by the user session's compositor.

        Any top level window you create is associated with your main window, e.g. on top of it and so on.
        Again you can place as many of your clients surfaces into those windows.

        In my demo I even have a switch to toggle, at runtime, between showing my client's windows inline and as the host compositor's windows.
        There is extreme flexibility for this "merging of other processes' UI" that way

        Comment


        • #34
          Originally posted by oiaohm View Post

          using what is called undefined behavior.
          So in the middle of claiming otherwise you just decide to outright state Qt is chock full of bugs,

          hilarious.

          On the plus side, now wayland is taking steps to fix the whole implicit sync folly, maybe they will soon (5 or 6 years i guess) be able to par X11 in not producing frames full of glitches for the majority of users.

          Comment


          • #35
            Originally posted by mSparks View Post
            On the plus side, now wayland is taking steps to fix the whole implicit sync folly, maybe they will soon (5 or 6 years i guess) be able to par X11 in not producing frames full of glitches for the majority of users.
            X11 is implicit sync, too.

            Comment


            • #36
              Originally posted by Hibbelharry View Post

              X11 is implicit sync, too.
              You can tell that is not true, because

              The proprietary NVidia driver doesn't support implicit sync at all

              That whole "wayland not working on nvidia is nvidias fault" nonesense was simply because they (nvidia) weren't willing to invest dev time in a substandard approach to graphics that wayland has been insisting on for the last decade and a half.

              It will take a while to get working, first they need to build the backend, then it needs adopting, then there will be the typical very long tail of bugs to fix.

              Then they will lose most of their developers because this stuff is hard and putting so much effort in to be almost as good as what exists already isn't that attractive a task to wake up to in the morning.

              But at least wayland is slowly making actual progress to fix its problems rather than just play the blame game.
              Last edited by mSparks; 14 April 2024, 06:46 PM.

              Comment


              • #37
                Originally posted by mSparks View Post
                You can tell that is not true, because
                The proprietary NVidia driver doesn't support implicit sync at all
                Right, except that was workarounded. X11 is implicit sync.

                Originally posted by mSparks View Post
                That whole "wayland not working on nvidia is nvidias fault" nonesense was simply because they (nvidia) weren't willing to invest dev time in a substandard approach to graphics that wayland has been insisting on for the last decade and a half.
                Wayland basically just polonged the status quo and doesn't use the 'magic' of nvidias ddx. Together with other shortcomings in nvidias driver that got nvidia users a bad position.

                Originally posted by mSparks View Post
                But at least wayland is slowly making actual progress to fix its problems rather than just play the blame game.
                I guess the blame game didn't end yet...

                Comment


                • #38
                  Originally posted by Hibbelharry View Post

                  Right, except that was workarounded. X11 is implicit sync.
                  X11s entire design is isolated, atomic bytestreams that are not subject to the race conditions that make wayland so unstable, that isn't implicit sync - not even close, it is however what wayland is finally trying to replicate with this new extension.
                  Last edited by mSparks; 14 April 2024, 08:35 PM.

                  Comment


                  • #39
                    Originally posted by mSparks View Post
                    So in the middle of claiming otherwise you just decide to outright state Qt is chock full of bugs,
                    No you need to quote full sentences and read them.

                    Originally posted by oiaohm
                    Stuff like PCSX2 when it comes to GUI construction is a true abomination even under X11 it technically using what is called undefined behavior.
                    This is X11 protocol undefined behavior. X11 protocol does not in fact state that all applications work from the same origin point to start off with. We have got use to that being the case because x.org X11 does but that not in fact written into the X11 protocol. This is only a start of a long list of what PCSX2 and other applications like it depend on to work that are in fact undefined behavior by the X11 protocol. Qt faking origin point on a per application under Wayland is in fact inline with X11 protocol itself.

                    There is a difference between a normal bug and what Qt has done here. Qt is in reality with Wayland just emulating what X11 protocol allows. Some of the competing implementations to x.org X11 like the Haiku x11 implementation have the same behavior as Qtwayland with origin point. Majority of applications don't care if the origin point is unique to them or shared. Qtwayland and Haiku X11 both do unique to application origin point and X11 x.org server does shared origin point and both are technically right by the X11 protocol.

                    Hello everyone! This is a new attempt to resolve the issues clients designed for stacking window managers are facing when they want to set their own...

                    When 264 or something like it merged into Wayland protocol and solves this class of problems this will be defined behavior.

                    This has been part of the process of conversion to Wayland is finding stacks of locations where applications developers have been depending on behaviors not defined in X11 protocol. Yes these undefined areas turn out that no one has really spent attempting to design those areas to be as functional as they should be as well.
                    Last edited by oiaohm; 14 April 2024, 09:57 PM.

                    Comment


                    • #40
                      Originally posted by anda_skoa View Post
                      So the other process' popup should appear adjecent at the main processes button?

                      That is pretty easy to do with Wayland, especially in Qt.

                      I have recently done that as a demo for a customer who wanted to have the UI of two existing applications integrated in such a way as to appear as one to the user.

                      On X11 they try to fake this with specific rules of their window manager, but of course they are still two processes.
                      So one application's modal dialog are not modal for the other.

                      Yes this is like it it.
                      Hello everyone! This is a new attempt to resolve the issues clients designed for stacking window managers are facing when they want to set their own...


                      Will allow the old faking to work. Please note PCSX was not using window manager rules to fake it. Instead using open window at absolute position to fake it. .

                      Originally posted by anda_skoa View Post
                      With Wayland you can simply create a nested compositor, in my case using the Qt Wayland Compositor framework.
                      You can then place the surfaces of your clients (main window, dialogs, popups) anywhere in your window as you see fit.
                      None of those are even "seen" by the user session's compositor.

                      Any top level window you create is associated with your main window, e.g. on top of it and so on.
                      Again you can place as many of your clients surfaces into those windows.

                      In my demo I even have a switch to toggle, at runtime, between showing my client's windows inline and as the host compositor's windows.
                      There is extreme flexibility for this "merging of other processes' UI" that way
                      PCSX2 being a game thing input latency is a thing. Having input pass though to compositors instead of one they class as a problem.
                      Last edited by oiaohm; 14 April 2024, 09:59 PM.

                      Comment

                      Working...
                      X