Slashdot Mirror


KDE and Canonical Developers Disagree Over Display Server

sfcrazy (1542989) writes "Robert Ancell, a Canonical software engineer, wrote a blog titled 'Why the display server doesn't matter', arguing that: 'Display servers are the component in the display stack that seems to hog a lot of the limelight. I think this is a bit of a mistake, as it’s actually probably the least important component, at least to a user.' KDE developers, who do have long experience with Qt (something Canonical is moving towards for its mobile ambitions), have refuted Bob's claims and said that display server does matter."

38 of 202 comments (clear)

  1. logic by Anonymous Coward · · Score: 5, Insightful

    If they don't matter, why mir?

    1. Re:logic by batkiwi · · Score: 3, Insightful

      They're saying that it doesn't matter to an app developer if you're using a middleware framework, as most developers do, because the eventual output on the display will be the same.

      The reasons for introducing mir are performance, ability to run on low footprint devices, and cross device compatability.

      So their point is that X11 vs wayland vs mir vs framebuffer vs blakjsrelhasifdj doesn't matter to a developer using the full QT stack. Their write their app to QT, and then developers on QT write the backend to talk to whatever the end user is using. It's more work for QT/other frameworks, but "should" be "no" more work for an app developer.

  2. Personal blog by Severus+Snape · · Score: 2, Informative

    NOTHING to do with Canonical at all. Yay for the let's all hate Canonical bandwagon.

    1. Re:Personal blog by sfcrazy · · Score: 4, Insightful

      He is a Canonical developer and its not a post about his family cat.

    2. Re:Personal blog by Bill,+Shooter+of+Bul · · Score: 2

      They are terrified, because it would mean more work for them and less advancement of the linux graphics stack. Having three display servers ( Xorg, Wayland, Mir) increases the amount of code paths everything and everyone has to deal with.

      Its not trivial as Robert suggested, and more importantly, it doesn't increase Robert's workload.

      If there is one thing that's really annoying, its someone telling you how easy your really difficult job is. So I understand the frustration apparent in the kde blogs.

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
    3. Re:Personal blog by geek · · Score: 2

      They are terrified, because it would mean more work for them and less advancement of the linux graphics stack. Having three display servers ( Xorg, Wayland, Mir) increases the amount of code paths everything and everyone has to deal with.

      No it doesn't. No one but Canonical will be supporting Mir and Xorg will go away. Leaving Wayland for the adults. No one besides Canonical gives two shits about Mir and once Wayland is stable enough for primary use people will switch to it faster than they did to systemd.

  3. Bollocks by drinkypoo · · Score: 3, Insightful

    The display server is hugely important. The fact that the user doesn't know they're using it is irrelevant, because they're using it at all times.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  4. Re:Of course it matters by houstonbofh · · Score: 5, Funny

    Hey! No need to bring systemd into this...

  5. Shh... by GameMaster · · Score: 3, Insightful

    You heard the man, it's not important. Now stop talking about it! That way Canonical can more easily save face when they cancel their failed cluster-fuck of a display server and switch back to Wayland...

    --

    Rules of Conduct:
    #1 - The DM is always right.
    #2 - If the DM is wrong, see rule #1
    1. Re:Shh... by squiggleslash · · Score: 2, Insightful

      X.org, not Wayland. Wayland is still under development. Wayland devs must be elated that Mir has made the debate "Wayland vs Mir" rather than "Tried, trusted, works, and feature complete X.org vs Wayland."

      --
      You are not alone. This is not normal. None of this is normal.
    2. Re:Shh... by JDG1980 · · Score: 5, Insightful

      X.org, not Wayland. Wayland is still under development. Wayland devs must be elated that Mir has made the debate "Wayland vs Mir" rather than "Tried, trusted, works, and feature complete X.org vs Wayland."

      X.org is not "feature complete" in any meaningful sense. It is incapable of doing the kind of GPU-accelerated, alpha-blended compositing that is expected on a modern user interface. Sure, you can get around most of this by ignoring all the X11 primitives and using X.org to blit bitmaps for everything, with all the real work done by other toolkits. But in that case, it's those other toolkits doing the heavy lifting, and X.org is just a vestigal wart taking up system resources unnecessarily.

    3. Re:Shh... by Eravnrekaree · · Score: 4, Informative

      This is all wrong. X has something called GLX which allows you to do hardware accelerated OpenGL graphics. GLX allows OpenGL commands to be sent over the X protocol connection. X protocol is sent over Unix Domain Sockets when both client and server are on the same system, this uses shared memory so it is very fast, there is no latency of network transparency when X is used locally in this manner. MIT SHM also supports forms of shared memory for transmission of image data. Only when Applications when they are being used over a network, do they need to fall back to send data over TCP/IP. Given this, the benefits of having network transparency are many, but there is no downside because where an application is run locally, it can use the Unix domain sockets, the MIT SHM and DRI.

      X has also had DRI for years which has allowed an X application direct access to video hardware.

      As for support for traditional X graphics primatives, these have no negative impact on the performance of applications which do not use them and use a GLX or DRI channel instead. Its not as if hardware accelerated DRI commands have to pass through XDrawCircle, so the existance of XDrawCircle does not impact a DRI operation in any significant way. The amount of memory that this code consumes is insignificant, especially when compared to the amount used by Firefox. Maybe back in 1984 a few kilobytes was a lot of RAM, that is when many of these misconceptions started, but the fact is, these issues were generally found with any GUI that would run on 1980s hardware. People are just mindlessly repeating some myth started in the 1980s which has little relevance today. Today, X uses far less memory than Windows 8 does and the traditional graphics commands consume an insignificant amount that is not worth being worried about, and which is needed to support the multitude of X applications that still use them.

    4. Re:Shh... by BitZtream · · Score: 4, Insightful

      Today, X uses far less memory than Windows 8

      Nice, you just compared a single process on one OS to the entire OS and its subprocesses of another. Totally fair.

      How about you compare X to the Win32 Desktop Window Manager instead? Which is a lot closer, though still not exact since Windows has this mentality that GUI in the kernel is a good idea.

      My point however is that your comparison is not really a comparison.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    5. Re:Shh... by Eravnrekaree · · Score: 2

      I also forgot to mention X has had the X Composition Extension and X Render Extension which have allowed for alpha blending operations for quite some time. Your information is a bit out of date.

  6. Just one question... by Dcnjoe60 · · Score: 3, Insightful

    Just one question. If the display server is of such minimal importance in the big scheme of things, then why did Canonical develop their own?

  7. So why did Apple and Google toss it? by timeOday · · Score: 4, Interesting

    The most significant transition of a unix-style OS to the desktop is OSX. The most significant transition of a unix-style OS to handhelds is Android. X was left behind both times. Why did they re-invent the wheel if there was no need to do so?

    1. Re:So why did Apple and Google toss it? by Anonymous Coward · · Score: 3, Insightful

      Not only that, but each example (NeXT/OSX and Android) are undeniable success stories.

      X11 has severe limitations, like a cramped network abstraction layer that can't share windows or desktops with multiple people. Supposedly the NX server gets around this, but the X11 people haven't shown any interest in adopting the NX features.

      People need displays that look like they computer is operating smoothly (instead of barfing text-mode logs here and there when transitioning between users, runlevels, etc).

      People need to share their windows (efficiently, not with VNC) for teleconferencing.

      Both OS X and Windows achieved these by focusing on the display server. So, as much as I respect Canonical's work, I think this blogger/dev is somewhat clueless.

    2. Re:So why did Apple and Google toss it? by Uecker · · Score: 3, Interesting

      And both are now incompatible ecosystems. Do we want to repeat this nonsense?

    3. Re:So why did Apple and Google toss it? by garyebickford · · Score: 3, Interesting

      WRT to OSX, there is history. Back in the days of NeXT, Jobs & co. decided to use Display Postscript for a variety of reasons. A few of the reasons: X back then was huge, ungainly and a total beast to work with using the limited memory and cycles available (The NeXTstation used a 25MHz 68000); their team were not ever going to be able to morph X into an object-oriented platform, which NeXT definitely was; Display Postscript was Adobe's new Hotness; the NeXT folks could write drivers for DP that worked with the Texas Instruments signal processor (TM-9900? I forget), which was truly amazingly fast at screen manipulation; and the X architecture didn't fit well with either Display Postscript or the TM-9900.

      In 2001 I had a NeXTstation that I added some memory and a bigger disk to. The machine was by then more than 10 years old. For normal workstation duties, it was faster than my brand new desktop machine due entirely to the display architecture. But compiling almost anything on that 25MHz CPU was an overnight task - I had one compile that ran three days.

      --
      It's easier to be a result of the past, but more fun to be a cause of the future! http://www.spacefinancegroup.com/
    4. Re:So why did Apple and Google toss it? by Eravnrekaree · · Score: 2

      Its the not made here syndrome, plus the fact that Google and Apple want to create a fleet of applications that are totally incompatable with other platforms in order to create user lock in to their respective platforms. Obviously, business and political reasons and nothing to do with technical issues. X would have been a fine display platform for either but, then the platforms would be compatable with mainstream Linux distros and you would have portable applications so your users wouldnt be locked into your OS.

  8. He's Right by Luthair · · Score: 3, Insightful

    The canonical developer said that users don't care which I think is pretty accurate. The majority of users won't care as long as applications run and are responsive.

  9. Re:How are these things related? by DarkOx · · Score: 2

    Because the tool boxes (QT, GTK, and others) don't provide a complete abstraction layer, at least not when your project gets to the point of doing anything 'fancy' if all your application does is display some forms fine, but more complex stuff, window managers, media players with odd shapes and over lays etc; you have to interact with the display server directly or its APIs anyway.

    More display servers more code paths and its not easy for one developer to test all that, sure they can have a bunch of VMs but now he has to know how work with multiple systems etc. It would be PITA. Its going to be bad enough for some with just X and Wayland to support.

    My guess is many won't end up supporting multiple display servers and if there are to many it will just fragment the Linux desktop worse than even in the bad old days.

    --
    Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
  10. Re:oh good by jones_supa · · Score: 4, Interesting

    Too easy to downmod you.
    From your comment about a shitty UI one can only conclude you have never used KDE.
    Although better graphics would be nice calling them amateurish is rather silly.

    I actually see KDE as the best Linux desktop right now: fast, feature-rich and stable. However I recently watched an interesting criticism piece regarding some funky and misleading behavior of this desktop environment. The user experience could be improved.

  11. Re:oh good by David_Hart · · Score: 3, Interesting

    Because Metro sure knocked the socks off of everything...

    It points to a new direction; you know one where UI designers cut the tops off their skulls, take an ice cream scooper and remove about two thirds of the brains, put the top of the skull back on.

    Metro UI concepts are actually showing up in more and more places. The biggest problem with it was that Microsoft, in their wisdom, tried to force a touchscreen interface on desktop users. The interface itself isn't the problem, the lack of choice for the primary user was...

  12. Re:oh good by hawguy · · Score: 4, Insightful

    Although better graphics would be nice calling them amateurish is rather silly.

    Why? The KDE desktop looks like the state-of-the-art from say 1993. If I wanted my desktop to look like Xaw3d, I'd just fall through a time warp and go back there. At least the music was better.

    I'm pretty happy with my KDE desktop, but I use it as a tool to get work done, not because it looks pretty.

    I bought a hammer from the hardware store that looks almost exactly like the 1920's era hammer my great grandfather used (though the handle is fiberglass instead of wood), but it works well and gets the job done. Just because a desktop "looks" old doesn't make it useless. I tried Unity and Windows Metro and found them to be much less usable for my developer/operations tasks.

  13. Re:oh good by Tough+Love · · Score: 5, Insightful

    KDE 4 is great except for Akonadi, which killed Kmail.

    --
    When all you have is a hammer, every problem starts to look like a thumb.
  14. wayland, systemd by bzipitidoo · · Score: 5, Interesting

    Figured systemd would get dragged into this.

    One of the biggest problems with systemd is simply documentation. System administrators have a lot of learning invested in SysV and BSD, and systemd changes nearly everything. Changing everything may be okay, may be good, but to do it without explanation is bad no matter how good the changes. I'd like to see some succinct explanation, with data and analysis to back it up. Likely there is such an explanation, and I just don't know about it. But the official systemd site doesn't seem to have much, I'd also like to see a list with common system admin commands on one side, and systemd equivalents on the other, like this one but with more. For example, to look at the system log, "less /var/log/syslog" might be one way, and in systemd, it is "journalctl". To restart networking it might be "/etc/rc.d/net restart", and in systemd it's "systemctl restart network.service". Or maybe the adapter is wrongly configured, DHCP didn't work or received the wrong info, in which case it may be something like "ifconfig eth0 down" followed by an "up" with corrected IP addresses and gateway info.

    When information is not available, it looks suspicious. How can we judge if systemd is ready for production? Is well designed? And that the designers aren't trying to hide problems, aren't letting their egos blind them to problems? To be brusquely told that we shouldn't judge it we should just accept it and indeed ought to stop whining and complaining and be grateful someone is generously spending their free time on this problem, because we haven't invested the time to really learn it ourselves and don't know what we're talking about, doesn't sit well with me.

    Same goes for Wayland and MIR. Improving X sounds like a fine idea. But these arguments the different camps are having-- get some solid data, and let's see some resolution. Otherwise, they're just guessing and flinging mud. Makes great copy, but I'd rather see the differences carefully examined and decisions made, not more shouting.

    --
    Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
  15. Re:oh good by denmarkw00t · · Score: 2

    Windows 7 sure has a better working and cleaner UI

    Eh, maybe? If I turn off all the Aero or whatever and make it look like 9x, I can live with that. The translucent borders, Big Button start menu and "pins," the god-awful switcher...7 is probably my only choice for Windows moving forward, if I have to have it, but it won't look like it does after a fresh install for very long.

  16. Re:oh good by Megol · · Score: 2

    Compared to the Win32 API the GEOS one looks clean and nice. I mean the 8 bit GEOS BTW.

  17. Re:How are these things related? by slack_justyb · · Score: 5, Informative

    The whole point about all of this, X/Wayland/MIR, is getting closer to the video card without having to yank one's hair out whilst doing it. Why would one need a little close interaction with the bare metal? If you've ever used Linux and saw tearing while moving windows around, then you've hit on one of the points for why closer to metal is a bit more ideal.

    With that said, let's not fool ourselves and think, "OMG, they just want access to the direct buffers!" That wouldn't be correct. However, developers want to have an ensured level of functionality with their applications visual appearance. If the app shows whited out menus for half a second, blink, and then there is your menu options, then there is something very wrong.

    It was pretty clear that with X, politically speaking, that developers couldn't fix a lot of the problems due to legacy and the foaming at the mouth hordes that would call said developer out for ruining their precious X. You can already see those hordes from all the "take X and my network transparency from my cold dead hands" comments. It is to a degree those people, and a few other reasons, that provided the impetus for Wayland. You just cannot fix X the way it should be fixed.

    Toolkits understand that display servers and pretty much the whole display stack in general suck. Granted there is a few moments of awesome, but they are largely out weighted by the suck factor, usually when you code an application, you'll note that sometimes you'll gravitate to the "winning" parts of the toolkit being used versus the pure suck ones. Qt has a multitude for all the OSes/Display Servers it supports. Be that Windows, Mac, X11, and so on. Likewise for GTK+ but to a lesser extent, but that is what make GTK+ a pretty cool toolkit. Because let's face it, no display stack is perfect in delivering every single developer's wish to the monitor. Likewise, no toolkit is perfect either. The GNOME and KDE people know this, they write specific code to get around some of the "weirdness" that comes with GTK+ or Qt. Obviously, that task is made slightly easier with Wayland and the way it allows a developer to send specifics to the display stack or even to the metal itself.

    Projects like KDE and GNOME have to write window managers and a lot of times those window managers have to get around some of the most sucktacular parts of the underlying display server. However, once those parts are isolated, the bulk of the work left is done in the toolkit. So display servers matter a bit to the desktop environments because they need to find all of the pitfalls of using said display server and work around them. Sometimes, it can be as simple as a patch to the toolkit or the display server upstream. Sometimes it can be as painful as a kludge that looks like it was the dream of a madman, all depends on how much upstream a patch is needed to be effective and how effective it would be for other projects all around.

    That leads into the problem with MIR. MIR seems pretty gravitated to its own means. If KDE has a problem with MIR that can be easily fixed with a patch to MIR or horribly fixed by a kludge in KDE's code base, it currently seems that the MIR team wouldn't be as happy go lucky to accept the patch if it meant that could potentially delay Ubuntu or break some future unknown to anyone else outside of MIR feature. Additionally, you have the duplicated work argument as well, which I think honestly holds a bit of water. I fondly remember the debates of aRts and Tomboy. While I think it's awesome that Ubuntu is developing their own display server, I pepper that thought with, "don't be surprised if everyone finds this whole endeavor a fools errand."

    I think the NIH argument gets tossed around way too much, like its FOSS McCarthyism. Every team has their own goals and by their very nature, that would classify them as NIH heretics. Canonical's idea is this mobile/desktop nexus of funafication, MIR helps them drive that in a way that is better suited to them. That being said

  18. Re:I've been using Wayland and systemd for nearly by Golthur · · Score: 3, Insightful

    My main issue with systemd is that it is monolithic; it violates the fundamental Unix philosophy in a most egregious way, and whenever anyone comments on this, we are (to quote the GP) "brusquely told that we shouldn't judge it we should just accept it and indeed ought to stop whining and complaining and be grateful someone is generously spending their free time on this problem, because we haven't invested the time to really learn it ourselves and don't know what we're talking about".

    We used to have separate, replaceable systems for each aspect of systemd - e.g. if you didn't like syslog, there was syslog-ng, or metalog, or rsyslog; each different and meant for a different purpose. Now, it's "all or nothing" - except that it's becoming progressively more difficult to opt for "nothing" because it's integrating itself into fundamental bits like the kernel and udev.

    --
    Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
  19. Re:oh good by GumphMaster · · Score: 2

    Good luck extracting a nail with your nail gun Mr. Professional.

    --
    Patent litigation: A doctrine of Mutually Assured Destruction... in which everyone seems willing to push the button
  20. Re:How are these things related? by Uecker · · Score: 2

    You: "You just cannot fix X the way it should be fixed."
    Reality: "... It's entirely possible to incorporate the buffer exchange and update models that Wayland is built on into X..." (Wayland FAQ)

    And now?

  21. Display server does matter by Eravnrekaree · · Score: 4, Interesting

    Obviously, display server does matter to users. If users cannot use a whole set of applications because they are not compatable with Distro Xs display server, that is a problem for users. This can be addressed by distros standardizing around display servers that uses the same protocol. Its also possible, but more complex, is if distros using different display protocols support each others display protocols by running a copy of a rootless display server that supports the others display protocol. Relying on widget sets to support all display protocols is too unreliable as we are bound to end up with widget sets which do not support some display protocols. Needless to say, it is best to have a single standard, it would have been easiest and best if Canonical had gone with Wayland and actually worked with Wayland to address whatever needs they had.

    Its also true a new display protocol wasnt really necessary. The issue with X was the lack of vertical syncronisation. X already has DRI, Xrender, Xcomposite, MIT SHM, and so on for other purposes. An X extension could have been created to allow a way for an application to get the timing of the display, the milliseconds between refreshes, the time of the next refresh, etc.. X applications could then use this timing information, starting its graphics operations just after the last refresh, X applications could then use an X command to place its finished graphics pixmap for a window into a "current completed buffer" for the window, allowing for double buffering to be used. This could be either a command to provide the memory address, or a shared memory location where the address would be placed. All of the current completed buffers for all windows are then composited in the server to generate the master video buffer for drawing to screen. There is a critical section during which the assembly of the master video buffer would occur, any current completed buffer swap by an application during that time by an application would have to be deferred for the next refresh cycle. A new XSetCompletedBuffer could be created which would provide a pointer to a pixmap, this is somewhat similar to XPutPixmap or setting the background of an X Window, but provided that XPutPixmap might do a memory copy it may not be appropriate, since the point is to provide a pointer to the pixmap that the X server would use in the next screen redraw. Said pixmaps would be used as drawables for opengl operations, traditional X primatives, and such. This scheme would work with all of the existing X drawing methods. the pixmaps are of course transferred using MIT SHM, its also possible to use GLX to do rendering server side, for use of x clients over the network, GLX is preferable, otherwise the entire pixmap for the window would have to be sent over the network. The GLX implementation already allows GL graphics to be rendered into a shared memory pixmap. Currently however, some drivers do not support GL rendering into a pixmap, only a pbuffer, which is not available in client memory at all, however, the DRI/GEM stuff is supposed to fix this and the X server should be updated to support GLX drawing to a pixmap with all such DRI drivers.

    Another issue is window position and visibility in how it relates to vertical synchronization. Simplistically the refresh cycle can be broken into an application render period and a master render period. If the X server has a whole pixmap buffer of a window, it grabs at a snapshot of the display window visibility/position state the beginning of the master rendering period and uses that to generate the final master pixmap by copying visible regions of windows into the master buffer.

    It can be a good idea to allow the option for applications to only render areas of their windows that are visible, this saves on CPU resources and also avoid needless rasterization of offscreen vector data. In order to do this, applications would need to access visibility data at the beginning of the application render period. Applications would then have to, instead of providing a single

  22. Re:oh good by Teun · · Score: 4, Insightful
    I can't really name any other desktop with a versatility and usefulness better than KDE.

    Sure a DE is an acquired taste but it does have to be functional without being ugly.
    Nor is there outside the commercial offerings any DE with such a well integrated package of applications.

    That doesn't mean I don't see the attractivity of something like Enlightenment but compared to KDE it is seriously limited, both in options and looks.

    --
    "The likes of Facebook and WhatsApp are free to those whose privacy is of zero value."
  23. Re:oh good by AntiSol · · Score: 2

    Or maybe he's somebody who:
    * cares about real-estate on his screen and the density of information displayed vs shininess. Those borders and "modern" task bar are huge!
    * is interested in having a UI that responds in a timely manner rather than having pretty but utterly useless animations that make him wait half a second every time he clicks on something.
    * wants to use less memory for caching pretty animations and more for the programs he's running
    * wants his processor to be working on the task he has assigned it rather than showing him shiny animations
    * feels like it's more important to make something stable than pretty
    * feels like it's more important to make something efficient than pretty
    * feels like it's more important to make something compatible than pretty

  24. Re: How are these things related? by Anonymous Coward · · Score: 2, Funny

    This is all horseshit anyway. Any decent windowing system would be implemented with ncurses.

  25. Re:oh good by brockmcnuggets · · Score: 2

    I had not used KDE in some time and worked with it recently. I was amazingly disappointed. Here are some of the things I found: http://www.youtube.com/watch?v... I was stunned at how bad it was and have been actively adding bug reports to let the developers know. There are literally dozens that I show though. It is pretty inexcusable.