14 ms·
Sway 1.0 is not going to support the Nvidia proprietary driver
- woahhvicky 9y agoThere should probably be a user space layer that abstracts over direct kernel graphics APIs. There’s no reason GPM vs EGLStreams shouldn’t be an implementation detail. Another note, a window manager author shouldn’t have to deal with these sorts of issues. Puts into question the “wayland way.” I guess this is what wlc and wlroots are for but seems like those approaches have flaws given there was a need for wlroots to even exist in the first place.
- ascent12 9y agoGBM already IS a userspace layer than abstracts over driver-specific kernel interfaces. That's the whole point. You also seem to have missed the whole point of wayland's design. There is no separation between "window managers" and "display servers"; there are just "compositors". So naturally it is something that needs to be dealt with. wlc, libweston, wlroots (for which I am an author, responsible for the DRM/GBM code), etc., are designed to make it easier to write compositors and allow for more code reuse. So yes, someone using one of these libraries wouldn't need to deal with these details, but we're actually writing such a library.
- badsectoracula 9y ago> You also seem to have missed the whole point of wayland's design. There is no separation between "window managers" and "display servers"; there are just "compositors". I think the point is that this design is bad.
- digi_owl 9y agoHow about we call this abstraction layer X for the time being?
- shmerl 9y agoKWin developers decided not to play this game either and just ignore EGLStreams[1]. Gnome on the other hand budged and implemented an extra path. The main point that Martin made back then: > Overall we are not thrilled by the prospect of two competing implementations. We do hope that at XDC the discussions will have a positive end and that there will be only one implementation. I don't care which one, I don't care whether one is better as the other. What I care about is only requiring one code path, the possibility to test with free drivers (Mesa) and the support for atomic mode settings. Ideally I would also prefer to not have to adjust existing code. KWin though has the benefit of supporting X11 which Nvidia blob users can rely on. Wayland only compositors are really in a tough spot, until this mess is resolved. 1. https://blog.martin-graesslin.com/blog/2016/09/to-eglstream-or-not/ https://blog.martin-graesslin.com/blog/2016/09/to-eglstream-...
- y_u_no_rust 9y agohere here!
- Jasper_ 9y agoI'm sure you're aware that they started a new open-source project for buffer allocation? gbm has some major design flaws which makes it not that great for most drivers and they have been trying to suggest alternatives. https://lists.freedesktop.org/archives/dri-devel/2016-October/120067.html https://lists.freedesktop.org/archives/dri-devel/2016-Octobe... https://github.com/cubanismo/allocator https://github.com/cubanismo/allocator
- shmerl 9y agoIt's good to see there is some progress to resolve this mess.
- Sir_Cmpwn 9y agoAuthor here. I should probably mention this, I'll add some information. It's not all roses here, either, for what it's worth.
- Jasper_ 9y ago> Edit: It’s worth noting that Nvidia is evidently attempting to find a better path with this new GitHub project. I hope it works out, but they aren’t really cooperating much with anyone to build it - particularly nouveau. It’s more throwing code/blobs over the wall and expecting everyone to change for them. This is far from the truth. This is a piece of code that everybody has wanted for the longest time (surface allocation is far from a solved problem), the solution was discussed with the nouveau developers at XDC2016 and XDC2017. People from ARM and Red Hat have both contributed to the project. https://www.x.org/wiki/Events/XDC2016/Program/jones_unix_device_mem_alloc/ https://www.x.org/wiki/Events/XDC2016/Program/jones_unix_dev... https://www.x.org/wiki/Events/XDC2017/Program/#james_jones https://www.x.org/wiki/Events/XDC2017/Program/#james_jones
- Sir_Cmpwn 9y agoHere's a more recent article to get you up to speed: https://www.phoronix.com/scan.php?page=news_item&px=Nouveau-XDC2017 https://www.phoronix.com/scan.php?page=news_item&px=Nouveau-...
- axiom92 9y agoObligatory Linus rant on Nvidia: https://www.youtube.com/watch?v=IVpOyKCNZYw https://www.youtube.com/watch?v=IVpOyKCNZYw
- nhumrich 9y agoI dont disagree with this article, however its articles with this strong language and "better than you" attitude that gives linux a bad name.
- Sir_Cmpwn 9y agoI'm angrier about this than I would normally be because I have to deal with entitled Nvidia users all the time. If Nvidia was a crappy player and I never heard about it, I wouldn't care, but Nvidia is a crappy player and many of their users act like entitled brats who fill my inbox and IRC channel. This article is as much addressed to them as it is to Nvidia.
- awakeasleep 9y agoSpeaking as someone who is recovering from his own fuckups in this realm, I'm reminded of the buddha quote about how anger hurts the person who is angry rather than what you're angry at. Please don't take this as a criticism of you personally though, I'm just venting and worried about how I'm gonna fix a work relationship that I care about that I damaged because I was angry
- Sir_Cmpwn 9y agoWise words. This is actually rather tempered from my first draft. It may have made sense to temper it more, but I stand by every point I said.
- ktta 9y agoJust a tip. It is best to write something out, sleep on it and then revisit what you wrote the next day with a fresh mind. Hope it helps.
- doesnt_know 9y agoIt's seriously amazing how much you (and many others) give to the floss community. I do the 9-5 developer thing and enjoy it very much, but I would probably lose my shit if I constantly had random strangers emailing me on my personal accounts demanding help. I joke to myself that I would be the worst floss maintainer in the world and immediately reply to every feature request with an hourly charge out rate.
- deleted 9y ago[deleted]
- bitL 9y agoIf I want to play games on Linux in the same quality/speed as on Windows, I have to use NVidia. If I want to do Deep Learning in Linux, I have to use NVidia. If I want to plug 3x 4k monitors on Linux, I have to use NVidia. If you can't come to agreement with them, what am I supposed to do?
- Sir_Cmpwn 9y agoYou just play games at marginally inferior quality. Our new work on Sway also will let you use multiple GPUs without any proprietary interfaces, so you can do 3x 4K on AMD too. Regarding Deep Learning, that's too bad. If you can afford a 3x 4K setup though you can probably afford to have a Nvidia GPU for Deep Learning and an AMD GPU for your desktop. There are compromises you can make, most of them easy. None of this is my problem as the maintainer of Sway.
- falcolas 9y ago> None of this is my problem as the maintainer of Sway So, in short, you're firing your Nvidia users? Sometimes it has to be done, but you'll have to be very clear that you don't want Nvidia users. Passive-aggressive attacks in an indirectly linked blog post against the userbase and Nvidia themselves are not sufficient, you will have to just be explicit about it in your GitHub README.
- Sir_Cmpwn 9y agoWell, I'm firing my Nvidia proprietary driver users. Really, I never "hired" them in the first place. The ones who use nouveau are cool in my book. I don't feel the need to call this out in the README. Also, this article contains pretty forwardly agressive attacks, I think.
- SEJeff 9y agoYour users (those with 4 x 30" monitors like me) will be firing you as well. It isn't my fault that Nvidia makes superior GPUs and writes shit software :)
- yongjik 9y agoFrom TFA: > When people complain to me about the lack of Nvidia support in Sway, I get really pissed off. It is not my fucking problem to support Nvidia, it’s Nvidia’s fucking problem to support me. Even Broadcom, fucking Broadcom, supports the appropriate kernel APIs. And proprietary driver users have the gall to reward Nvidia for their behavior by giving them hundreds of dollars for their GPUs, then come to me and ask me to deal with their bullshit for free. Well, fuck you, too. Nvidia users are shitty consumers and I don’t even want them in my userbase. Choose hardware that supports your software, not the other way around. Now, contrast with [1]: > I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it. [1] https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost-the-api-war/ https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost...
- Sir_Cmpwn 9y agoAuthor here. You know Microsoft engineers were paid 6 figure salaries to work on that, right? I have a Patreon where I make enough money to recoup half of the costs of maintaining these projects.
- jackmott 9y agoCan someone ELI5 why one would want sway vs just using i3?
- yellowapple 9y agoSway uses Wayland, which is shiny and new and fast. i3 uses X11, which is old and crusty and not particularly fast.
- djur 9y agoBut apparently a big difference between X11 and Wayland is that people implementing X11 window managers don't have to go out of their way to support particular graphics hardware. I have never in almost two decades of using X11 on Linux found myself worrying about whether my window manager supported my graphics card.
- pritambaral 9y agoThat's because X11 is a standard, running on a stack of other standards (DRM, KMS, etc.). Wayland is also a standard, that should be running on a stack of other standards (DRM, GBM, etc.), but then Nvidia comes along and goes "Fuck GBM. I'll make my own, incompatible "standard"".
- badsectoracula 9y agoNo, that is because X servers only provide the mechanism (window system, graphics, events, input, etc) but not the policy while providing functionality for the clients to provide that policy themselves. So a window manager can be made with and rely only to functionality provided by X11. On Wayland the "window manager" (compositor) has to provide both the mechanism and the policy.
- taesis 9y agoSway [1] is a tiling Wayland [2] compositor [3], in case anyone was lacking context. [1]: http://swaywm.org/ http://swaywm.org/ [2]: https://en.wikipedia.org/wiki/Wayland_(display_server_protocol) https://en.wikipedia.org/wiki/Wayland_(display_server_protoc... [3]: https://en.wikipedia.org/wiki/Compositing_window_manager https://en.wikipedia.org/wiki/Compositing_window_manager
- djur 9y agoWhy does a window manager developer have to support specific graphics hardware in Wayland? Isn't abstracting away that kind of detail the first responsibility of a windowing system and/or framebuffer manager?
- hawski 9y agoAs GP has written: sway is a compositor not a window manager. Wayland compositors are like X11 server + X11 window manager. They use kernel interfaces directly.
- Santosh83 9y agoWhere Wayland is concerned, the compositor is the Wayland implementation.
- alxlaz 9y agoWayland does not have the "window manager" concept. The compositor (which, for the lack of a better term, well, composites windows) implements the display server protocol as well. It creates and hands off surfaces to the clients, and those clients directly render their contents there. So it's somewhat akin to a window manager + some display server parts. (Note: I have written very little Wayland-related code, and quite some time ago, so do not put too much faith in the explanation below). Managing device-accessible surfaces is very obviously hardware-specific, so it was abstracted behind a number of mechanisms. One of these is the GBM API, which is implemented (classically) by everyone except NVIDIA, and is the API that sway is going to use. NVIDIA's proprietary drivers do not support GBM, and NVIDIA is pushing for its own solution called EGLStream. EGLStream does solve several problems that GBM has, but it seems to me that what makes it most attractive to NVIDIA is that it is theirs (it is an open standard but has only one serious commercial implementation, on a single vendor's devices, so at this point it might as well be closed). If you are curious, there is a wider discussion on the topic here: https://lwn.net/Articles/703749/ https://lwn.net/Articles/703749/ .
- Ericson2314 9y agoYeah NVIDIA's market share makes me sad. AMD seems to have become a much better team player last I checked.
- hornetblack 9y agoThere's also the new external imaage/fence and semaphore support in Vulkan. Which looks like it perform the parts done by gbm without referencing gbm explicitly. Last I checked it was only in a mesa dev version. But it would be a standard hopefully everyone using Vulkan can support
- dogma1138 9y agoDidn’t Vulkan adopt EGL? EGLStreams is a Kronos open standard.
- hornetblack 9y agoNope. You use Vulkan WSI and Swapchain extensions instead of EGL. https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/html/vkspec.html#wsi https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extens...
- eartheaterrr 9y agoIn my early stages of learning to program, I had numerous issues with running Linux desktop on my Nvidia chipped laptop. I remember the frustration very clearly - I hardly slept for ~3 days trying to fix my broken Ubuntu installation and I was unable to continue with my programming exercises. I couldn't afford a new laptop, much less a MacBook, and Windows didn't support bash, nor did Windows have the community support that I needed. My feeling of failure in getting my machine to run was demoralizing, so much so that I considered quitting my pursuit of an IT career. As painful as it was, I managed to get my machine working. But it led me to never trust an Nvidia chip for my Linux desktop ever again. I wish I had documented the insane finagling I had to perform just to get my machine in a workable state. Maybe a year later, I encountered another Nvidia issue on my Ubuntu laptop, and I posted my notes on a blog: http://www.lukeswart.net/2014/05/nvidia-optimus-with-bumblebee-on-linux/ http://www.lukeswart.net/2014/05/nvidia-optimus-with-bumbleb... I wonder how many aspiring computer professionals have quit because of the barrier in getting a Linux desktop to run smoothly. I am indebted to the community members who devote their time and expertise online to help Linux desktop users. Even if they can be a little snarky :-) If someone is learning to program and only has a hand-me-down laptop with an Nvidia gpu, then a Linux desktop may be the only reasonable option. I just hope this can be more accessible. But as the author points out, Nvidia is only making this problem worse.
- danudey 9y agoI worked at a company that exclusively used Linux desktops (we were effectively a team of remote Linux tech support/sysadmins). Every week or two I'd reboot my machine for whatever reason, and it would boot load a minor point release kernel update,and X would fail, and I'd have to go manually recompile the nvidia drivers for my kernel and then I could start X again and then I could get back to work. It was one of those things that would add twenty minutes to your workday for no really good reason other than Dell had shipped nvidia chips. This was made doubly frustrating for a coworker who had a habit of bumping into her computer and hitting the power button with her foot (a giant, easy-to-hit target right in the centre of it). It would reboot and, surprise, go rebuild your kernel module so you can use X, while you're in the middle of helping a hospital get the x-rays of a patient so they can get him into emergency surgery. Personally, I got used to it. I'd reboot intentionally every however often so that I could deal with it on my own terms, but it was such a hassle that I always wished for an AMD or Matrox card so I wouldn't have to deal with their BS.
- kungfooguru 9y agoIt is infuriating that anyone finds this to not be appropriate. Nvidia is the one that sells products and doesn't bother to care enough for their Linux users to work with the community. If you want Nvidia proprietary driver to work with Sway complain to Nvidia for how they've handled their driver for Linux for years. We need more projects to do what Sway and Kwin have done.
- jbeard4 9y agoI bought a Lenovo Thinkpad W520 back in 2012. This laptop has an NVIDIA Optimus chipset, and for 4 years, I attempted to get triple-head support working under Linux (outputting to the laptop screen, and two monitors). Finally, in 2016, I was able to install the NVIDIA proprietary drivers through apt on ubuntu 16.04, and everything worked, including triple-head support. Overall, all the hardware in the laptop is now working perfectly, and has been extremely stable. It took a long time, but I'm glad it's finally working using the proprietary drivers. Unfortunately, I haven't gotten this to work yet using nouveau. I'm currently running Mate and XMonad on X, and I have a feeling it's going to be a few more years before I will be able to run Wayland on this machine.
- finchisko 9y agoI have exactly opposite experience. All my computers used to had ATI cards. I forgot the exact issues I had, but I remember reading all those issue FAQs basically saying buy Nvidia to solve your problem. I was always jealous to Nvidia owners for their Linux support, to then point I actually bought Nvidia. I didn't experienced any problems with Linux since then. I wonder when situation reverted being ATI better? And why I always have to be on the wrong side when choosing graphic card.
- jorams 9y agoThe situation is annoying. Up until recently, when you wanted high performance drivers for Linux you needed an AMD or NVIDIA card with proprietary drivers. The NVIDIA driver was a bit annoying in some ways, but those issues could be worked around. The result was a stable installation with great GPU performance. Meanwhile, the AMD driver was somewhere between unusable and terrible. It updated so slowly that you had to stay on ancient versions of X to even be able to use it. For users of rolling-release distributions, that's simply unworkable, and so they bought NVIDIA. There were also open source drivers, which worked quite well, but they weren't even close in terms of performance. (Intel has always played nicely, and their official GPU drivers are open source and work well. Their performance falls into this same category.) Recently, however, AMD has replaced its proprietary driver with a new, open source, high performance driver. AMD is now a serious choice. Sadly the tables have turned, with NVIDIA holding back progress on Wayland by not cooperating with the community.
- majewsky 9y agoCan confirm. If you have a card that supports the amdgpu driver, then the experience is great. Everything just works, and at competitive speed no less.
- frik 9y agoThanks to the hype and bubble around ICO and digital mining, all the AMD graphic cards are way overpriced.
- dingo_bat 9y ago> Nvidia users are shitty consumers and I don’t even want them in my userbase. Watch out, we have a wannabe Linus over here!
- moonbug22 9y agoJust another reason not to care about the cadt.
- rjbwork 9y agoI'm tired of iNVtel. I'm buying AMD gfx and compute next time. I'm not the power gamer I used to be, and their new stuff is powerful enough, while their cpu's are getting pretty awesome.
- teekert 9y ago"Nvidia module taints kernel" I remember seeing that scroll by on my Gentoo install about 15 years ago. This strange sentence actually got me reading deeply into the what and how of open source. I have been hoping for a nice Nvidia Open source driver since... Until Intel took that away, I'm not a gamer/deep learner so I always opt for Intel integrated graphics nowadays, saves money, hassle and power. I always believed that if AMD/ATI got their S together and made a super nice open source driver they'd make a lot of money! Guess I've always over estimated the Linux users' market share.
- KozmoNau7 9y agoThe current open source AMD driver is supposedly rather nice. I'm seriously considering to replace my ancient GTX460 with a shiny new RX560.
- captainmuon 9y agoWow, so much vitriol. I'm glad I don't like tiling window managers [x]. Sway seems well done, so I would use it and then be annoyed by the maintainer. Wayland, systemd, heck, that they removed ifconfig - these are all changes I understand and welcome from a technical POV, but that lose me as a user. The pinnacle of desktop linux was around 2009, afterwards usability seemed to regress. I'd love to use Linux, but currently I feel more comfortable on Mac or Windows. Doesn't help that leading projects on the linux desktop often have such abrasive developers. ---- [x] I tried them, but I found they are not really for me: - I need something that passes the coworker or girlfriend test: Other people should be able to sit down and use my computer. - Keyboard shortcuts don't actually make me faster. I find personally there is a lot of cognitive load trying to remember the keys to press, even after a lot of practice. I like to offload this to my eyes and arms, and use a mouse to e.g. arrange windows. That is the reason I gave up and now use arrow keys in VIM, and VS Code when possible.