4 ms·
No. It's already basically feature-complete as compared to which parts of X11 are actually used these days[1]. X11 is burdened by absurdly obsolete extensions l
by lomnakkus 10y ago
No. It's already basically feature-complete as compared to which parts of X11 are actually used these days[1]. X11 is burdened by absurdly obsolete extensions like drawing stippled lines, a font server, etc. See the talk by Daniel Stone[2] if you're interested in the kind of crud that's been cleared out. It's basically the kind of stuff that we will never go back to wanting in any type of server process. The trade-off between bandwidth and latency has changed fundamentally in basically all areas of computing, but especially anything to do with graphics.
[1] Alright, there might be a few bits and bobs that are missing, but nothing major as witnessed by the very article under discussion.
[2] https://www.youtube.com/watch?v=RIctzAQOe44 https://www.youtube.com/watch?v=RIctzAQOe44
- digi_owl 10y agoWho gets to declare those things "crud"? I am sure that if you poke around you will find someone still relying on those features being present daily.
- bonzini 10y agoxterm and rxvt do.
- mgbmtl 10y agoYou can usually tell by the very few people willing to maintain the code/feature. Some of it has layers upon layers of duct tape.
- bitwize 10y agoDaniel Stone does. Maybe you get a say in it when you've spent as much time on the Linux graphics stack as Daniel Stone has. Seriously, when's the last time you wrote a program that relied on the ability of the display server to draw stippled lines?
- nitrogen 10y agoWhat's so bad about stippled lines? They sound useful for so-called "real work" applications for drawing grids and graphs and marching ants.
- lomnakkus 10y agoIt's not that stippled line are bad per se. It's just that they shouldn't be baked into a protocol that goes "over the wire" (so to speak). It's much faster if the program just gets a bitmap to draw on and draw the stippled line itself. It's important to note here that "itself" could mean that you just call a (Qt/Gtk/SDL/whatever) library function to do it. There's no conceivable reason (these days) that you'd want to send a "draw a stippled line from point a to point b" command to an X server or graphics card.
- nitrogen 10y agoI haven't done much 2D drawing recently. My intuition is that sending a batch of line/polygon/stipple/fill commands to a GPU would be more efficient than occupying a CPU and then using a bunch of memory bandwidth to transfer a bitmap. But on modern systems, software rendering to a bitmap in RAM is more efficient than sending a command to a GPU (which probably lacks dedicated 2D hardware)?
- lomnakkus 10y agoRAM/DMA transfer is absurdly fast these days. (And "as a compositor" you'll have to do it anyway at 60fps, regardless.)
- TD-Linux 10y agoGPU drawing can still be faster than on the CPU, and you can do that with Wayland, by directly opening the DRM device (/dev/dri/render*) and sending the rendering commands directly to the GPU. This is how Mesa implements OpenGL on both X and Wayland. The X way requires you to send XRender commands to the X server first, and then it sends them to the GPU. This was already too slow (hence the already existing bypass for OpenGL) and Wayland just extends that idea to all rendering.
- ibotty 10y ago> Seriously, when's the last time you wrote a program that relied on the ability of the display server to draw stippled lines? or someone?
- stinkytaco 10y agoThen they can implement stippled lines in their application. It seems absurd to expect X to support rarely used extensions simply because "someone" might use them. It's not like stippled lines are no longer allowed on the Linux desktop, you just can't hook into the desktop compositor to get them.
- lomnakkus 10y agoThe X.org developers decided. The person who started Wayland was an X.org developer, and IIUC many who joined the effort are/were X.org developers, etc. > I am sure that if you poke around you will find someone still relying on those features being present daily. Not really. Many of these things have been broken in X.org for years and years... because nobody used them! (Again, see the talk.) There's also the whole abysmal security record of X11[1], due in large part to the huge API and the fact that all serialization/deserialization of requests is hand-coded (by necessity). [1] https://www.youtube.com/watch?v=2l7ixRE3OCw https://www.youtube.com/watch?v=2l7ixRE3OCw