https://ajaxnwnk.blogspot.com/2020/10/on-abandoning-x-server.html deleted code is tested code 28 October, 2020 on abandoning the X server There's been some recent discussion about whether the X server is abandonware. As the person arguably most responsible for its care and feeding over the last 15 years or so, I feel like I have something to say about that. The thing about being the maintainer of a public-facing project for nearly the whole of your professional career is it's difficult to separate your own story from the project. So I'm not going to try to be dispassionate, here. I started working on X precisely because free software had given me options and capabilities that really matter, and I feel privileged to be able to give that back. I can't talk about that without caring about it. So here's the thing: X works extremely well for what it is, but what it is is deeply flawed. There's no shame in that, it's 33 years old and still relevant, I wish more software worked so well on that kind of timeframe. But using it to drive your display hardware and multiplex your input devices is choosing to make your life worse. It is, however, uniquely well suited to a very long life as an application compatibility layer. Though the code happens to implement an unfortunate specification, the code itself is quite well structured, easy to hack on, and not far off from being easily embeddable. The issue, then, is how to get there. And I don't have any real desire to get there while still pretending that the xfree86 hardware-backed server code is a real thing. Sorry, I guess, but I've worked on xfree86-derived servers for very nearly as long as XFree86-the-project existed, and I am completely burnt out on that on its own merits, let alone doing that and also being release manager and reviewer of last resort. You can only apply so much thrust to the pig before you question why you're trying to make it fly at all. So, is Xorg abandoned? To the extent that that means using it to actually control the display, and not just keep X apps running, I'd say yes. But xserver is more than xfree86. Xwayland, Xwin, Xephyr, Xvnc, Xvfb: these are projects with real value that we should not give up. A better way to say it is that we can finally abandon xfree86. And if that sounds like a world you'd like to see, please, come talk to us, let's make it happen. I'd be absolutely thrilled to see someone take this on, and I'm happy to be your guide through the server internals. at 28 October # Email ThisBlogThis!Share to TwitterShare to FacebookShare to Pinterest Labels: fedoraplanet, X11 8 comments: [zFd] shenlebantongying said... Thanks for maintaining xorg for so many years :D 28 October, 2020 12:40 [icon_delet] [zFd] Peter said... (y) 28 October, 2020 12:45 [icon_delet] [zFd] Unknown said... I'd honestly love to see a Wayland compositor that meets my needs. Heck, I've been eagerly awaiting Wayland's ability to forcibly prevent games from getting fullscreening so wrong that it tricks the WM into squashing all my windows into a single monitor, and I chimed in to encourage that specs call for the screensaver to take events on gamepads into account so every game doesn't need to suppress the screensaver... but I'm still waiting for that compositor to exist: 1. A session recovery protocol as a successor to re-launching my WM/compositor with `--replace` every couple of weeks to flush out buggy behaviour without nuking what I'm in the middle of working on. (I can stay logged into a single desktop session on X.org for months this way and I've never seen a compositor last more than two weeks without breaking. That's why I turn off compositing in KWin.) 2. Forced server-side window decorations. (Sorry, GNOME. I don't agree that we should value the ability for applications to arbitrarily reinvent common UI functionality that really should be privileged in the first place.) 3. Compatibility with nVidia hardware. (I don't want to buy a new GPU just for Wayland, and, from what I've read, AMD's drivers still don't give the stability and uptime I've come to expect from nVidia's drivers over the last ~17 years.) 4. Extension APIs to implement things like my QuickTile window-tiling helper without putting a bunch of gunk on the main thread and janking up my rendering. (Where are those mechanisms for privileged APIs that were promised in the Wayland concept docs?) 5. Doesn't require me to buy beefy new hardware just to drive a heavier desktop. (I intentionally run a mix of LXDE and KDE components chosen to be lightweight, so I can dedicate more resources to actual work.) 28 October, 2020 13:06 [icon_delet] [bla] [bsp] Bad Sector said... > So, is Xorg abandoned? To the extent that that means using it to actually control the display, and not just keep X apps running, I'd say yes. I might be reading this wrong (though i think that quote is very explicit), but does that mean that you are not interested in maintaining the X server as anything else than a compatibility over Wayland? If people find issues with the X server as a standalone server (ie. using it to "actually control the display") and submit fixes, are these going to be integrated into the code and be part of a release (which seems to be taking a while)? Or the only way forward for those who want to keep using the X server like they always did is to fork it? 28 October, 2020 13:14 [icon_delet] [zFd] mattl said... What's the status of Xeyes? I've been trying to get a version that winks at the user for a while but to no avail. 28 October, 2020 13:40 [icon_delet] [zFd] adam jackson said... @Unknown Those are all valid criticisms of many of the existing wayland servers. I'm of the opinion that keeping xfree86 alive as a viable alternative since wayland started getting real traction in 2010ish is part of the reason those are still issues, time and effort that could have gone into wayland has been diverted into xfree86. @BadSector My preferred path forward there is to fork the server upstream. The xfree86 code would continue to exist, either as an LTS branch or as a separate project, but it would not see new feature development. With my red hat on, I'm already on the hook for supporting the xfree86 code until RHEL8 goes EOL anyway, so I'm probably going to be writing and reviewing bugfixes there no matter what I do. If someone wanted to actively drive xfree86 development going forward, great, awesome, please step forward. Given the near-total lack of anybody expressing interest in that since I stepped down as release manager ~18 months ago, I'm not sure such a person exists, but maybe predictable stagnation is what xfree86 ought to be at this point. 28 October, 2020 13:46 [icon_delet] [bla] [bsp] Bad Sector said... @adam jackson: I guess with the "fork the server upstream" you mean creating a new project with the existing X server code that also provides an X server and is still under the X.org umbrella... but then why make it a separate fork/project? If as things are right now the X server isn't going to gain any new functionality and features, then why not add that new functionality and features to it? And if it *is* going to get any new functionality and features (just not related to it driving the screen, input, etc) then why duplicate effort between the current X server and its fork? Of course all these assume that there are people interested in working on the X server (or actually, any X server) and haven't stepped forward so far, but i'm not as willing to think that there aren't such people and i think it is more likely that the current X server works fine for most people who'd also be able to contribute to it so they do not feel the need to help at the moment - but might do so if things start to break down and/or new features of their hardware aren't properly supported. 28 October, 2020 14:30 [icon_delet] [zFd] Spacial said... Thank you Adam for all these years. 28 October, 2020 15:53 [icon_delet] Post a Comment Older Post Home Subscribe to: Post Comments (Atom) popular posts * on abandoning the X server * worse is better: making late buffer swaps tear # Search [ ] [Search] # * Home # About Me adam jackson low-level graphics and operating system hacker, for red hat and recreationally. making the world better negative one line at a time. View my complete profile # Topics * GLX * Vulkan * X11 # Blog Archive * October 2020 (1) * September 2020 (1) # Awesome Inc. theme. Powered by Blogger. #