31 ms·
I would use Wayland, but the most actively-developed tiling window manager, sway, doesn't work with the NVIDIA graphics card I own. And come to think of it, is
by csande17 7y ago
I would use Wayland, but the most actively-developed tiling window manager, sway, doesn't work with the NVIDIA graphics card I own.
And come to think of it, isn't that a really weird problem to have? On X, the compositor (responsible for actually drawing all the windows on the screen) and the window manager (responsible for deciding how to arrange the windows and what their title bars/borders should look like) can be separate components, so I use i3 to arrange my windows and compton to draw them without tearing.
On Wayland, my impression is that the compositor and the window manager have to be built into the same program, so you run into silly situations where you can run GNOME on your graphics card but you can't run a basic tiling window manager. This also makes it a lot harder to create a new window manager, since you also have to write a compositor and test it on every graphics card.
That last issue could be solved with a reusable library that provided basic compositor functionality for window managers. Except every member of the Wayland community has independently had that idea and written their own, each with a different, incompatible interface and support for different graphics cards. So either we need a meta-library that abstracts away all the different libraries, or we need a standard compositor interface like X had.
- dmix 7y agoWhich NVIDIA graphics card do you own? I’m surprised Sway doesn’t support certain graphics cards. I believe the goal of wlroots is to solve this problem: > wlroots provides backends that abstract the underlying display and input hardware https://github.com/swaywm/wlroots https://github.com/swaywm/wlroots
- cwyers 7y agoNvidia's drive doesn't support the GBM API on Linux, and the maintainer of Sway doesn't want to support Nvidia's preferred EGLStreams API.
- Boulth 7y agoSway generally doesn't support NVIDIA, or it's rather NVIDIA that doesn't support common kernel modes that Wayland needs. Details here: https://drewdevault.com/2017/10/26/Fuck-you-nvidia.html https://drewdevault.com/2017/10/26/Fuck-you-nvidia.html
- dmix 7y ago> Every GPU vendor but Nvidia supports these APIs. > About a year ago Nvidia announced “Wayland support” for their proprietary driver. This included KMS and DRM support (years late, I might add), but not GBM support. They shipped something called EGLStreams instead, a concept that had been discussed and shot down by the Linux graphics development community before. That’s pretty damning for Nvidia. I can see why the developer is so upset. Must be tough working on OSS in that type of hardware environment. Looks like AMD is the way to go for desktop Linux boxes going forward. Although it looks like both Dell XPS [1] and System76 [2] is still using NVIDIA. Purism Librem uses the Intel i7’s embedded GPU [3]. I’m curious what the ideal Linux laptop is these days… [1] https://www.dell.com/en-ca/work/shop/cty/pdp/spd/xps-15-9570-laptop/cax15w10p1c1654pcaf https://www.dell.com/en-ca/work/shop/cty/pdp/spd/xps-15-9570... [2] https://system76.com/cart/configure/oryp5 https://system76.com/cart/configure/oryp5 [3] https://shop.puri.sm/shop/librem-15/ https://shop.puri.sm/shop/librem-15/
- djsumdog 7y agoThe ideal Linux laptop is one with just Intel integrated, and no discrete GPU. Honestly, Intel GPUs are decent enough, even if you want to do some mild gaming. Handing two GPUs on a laptop in Linux doesn't have the best support. A lot of the Optimus/Bumblebee stuff is not very well maintained.
- dmix 7y agoTrue, I don't do any laptop gaming. Intel GPU's seem to be sufficient as long as it can easily power a full HiDPI internal monitor + 4k external monitor... which Librem's Intel 620 GPU is listed as supporting but it looks like Librem's 15 v4 only has an HDMI port and not usb-c/displayport, which limits it to 4096x2160@30Hz instead of 4096x2304@60Hz. So I guess you'd have to look at Lenovo, HP etc for top tier.. Sadly my work uses all Macbrook Pros, which are amazing machines), but I'm scared to install Archlinux on them. The Archlinux Macbook wiki pages are 4yrs+ old.
- heftig 7y ago
- rrss 7y agoLast I checked, sway detects if nvidia.ko is loaded (even if the nvidia gpu has no display) and errors out with some message to the effect of "f you for buying nvidia."
- xyzzyz 7y agoI grepped wlroots for "nvidia" and got no hits.
- rrss 7y agohttps://github.com/swaywm/sway/blob/9670ccee683ab985e89eb04302fb998c4161f2d6/sway/main.c#L93 https://github.com/swaywm/sway/blob/9670ccee683ab985e89eb043...
- ddevault 7y agoIf this check were not here, Nvidia would still not work. This serves to reduce our bug report volume. However, by deleting these few lines of code (or specifying the appropriate command line argument), Nvidia could work tomorrow if they shipped GBM support.
- rrss 7y agoIf that check were not there, would intel for display + nvidia for compute work? Better chance than now.
- Sir_Cmpwn 7y agoThe flag is there for you to override if you think you know better. We don't answer questions or provide support for any use-case with the proprietary driver.
- dTal 7y agoRefusing to run if a particular kernel module is loaded (even if you don't touch it at all) is overstepping. You should at least provide an override flag.
- emersion 7y agoNVIDIA doesn't support GBM, which is the standard for buffer allocation. Use nouveau. >The last issue could be solved with a reusable library that provided basic compositor functionality for window managers. This is pretty much what wlroots is.
- chrisseaton 7y ago> NVIDIA doesn't support GBM If Nvidia don't support it, how much of a useful standard can it really be?
- jniedrauer 7y agoIt's an nvidia problem, not a standard problem.
- chrisseaton 7y agoBut I mean what's the point of declaring something to be a standard if the important people weren't interested in implementing and supporting it? Anyone can come up with a standard in isolation. Getting the relevant people on board and able and willing to support it is the useful bit. Did they say they'd support it? If they never said they did it seems unfair to criticise. Are you going to support my graphics standard that I just made up?
- rat9988 7y agoThis is a standard problem. You can't be a standard if the market does't care about you. You are just a specification and guidelines.
- boudin 7y agoIntel and AMD cares about it. If the Linux desktop market would grow, Nvidia would quickly change their mind. Now, this market growing is another question... But for me, nvidia gpu are just not a possibility because they lack good drivers on Linux.
- microcolonel 7y ago> I would use Wayland, but the most actively-developed tiling window manager, sway, doesn't work with the NVIDIA graphics card I own. May I suggest you buy an AMD GPU next time around; not only because they didn't try to impose their "standard" (which virtually nobody other than them implements, as far as I can tell) without implementing the de-facto standard interface, hurting their customers' access to Wayland to this day... but also because AMD will probably be better value next time you're in the market for a GPU. > That last issue could be solved with a reusable library that provided basic compositor functionality for window managers. Sway is based on such a library! (wlroots) However, again, NVIDIA has made it an extra effort to support their GPUs (both in applications and in compositors), and I'm not sure anyone wants to go to extra effort to support a vendor who actively impedes development. By all means, if you want to do NVIDIA's job, be my guest. I think Sir_Cmpwn has a point in not putting in that effort though.
- csande17 7y ago> By all means, if you want to do NVIDIA's job, be my guest. If I wrote an X compositor that supported NVIDIA's proprietary interface, it would work with pretty much every window manager that's ever been written. If I patch wlroots to support NVIDIA, I'll still only be able to use window managers based on wlroots; I won't be able to use ones that spun the Wheel of Incompatible Wayland Compositor Libraries and landed on Weston, swc, Orbment, or whatever GNOME uses instead.
- microcolonel 7y agoThis is why it was so infuriating when NVIDIA refused to implement the stanadrd interface: they made the ecosystem "fragmented" for their users, and the PR cost of that bears on the compositor writers, rather than NVIDIA. Having different compositors at the level they're at allows a lot more interesting innovations to be made, and aside from NVIDIA's tomfoolery, it has not caused significant inconsistency. Everyone uses libinput, almost everyone uses colord, and everyone implements GBM. Wayland is substantially different from X, and the ways in which it is different are good. NVIDIA did the one thing we needed people not to do.
- futureastronaut 7y agoI would love to use Wayland, currently I only use it to watch movies without tearing. Anecdotally, everything feels brittle when using Wayland, applications crash... I really hope it matures.
- danieldk 7y agoWhich video card/driver do you use? I have used Wayland for two years now without any noticeable problems. Before that, bugs in GNOME would often bring the whole graphics stack down. (This is on amdgpu and later intel. I had a lot of problems with nouveau.)
- futureastronaut 7y agoIt's some AMD Radeon with 8G so reasonably beefy. Not sure about the driver, I choose AMD for Linux graphics to not have to think about that I suppose, Nvidia used to be (still is?) a headache on Linux.
- simion314 7y ago>Nvidia used to be (still is?) a headache on Linux. AMD was worse, the Linux driver had like half the performance of the Windows one. So if you were asking who has better Linux drivers for Linux the answer was NVIDIA (for desktops not latops)
- quotemstr 7y agoIndeed. Wayland seems tuned for Red Hat's need to ship a solid desktop that does one thing in one well-supported way. I'm going to miss X's configurability.
- josteink 7y ago> That last issue could be solved with a reusable library that provided basic compositor functionality for window managers. Except every member of the Wayland community has independently had that idea and written their own Actually the opposite is true. Recently everyone is converging on re-using the same compositor library, written by among others sway’s author: wlroots. https://github.com/swaywm/wlroots https://github.com/swaywm/wlroots
- derekdahmer 7y agoSorry for the stupid question but how is it possible that code could support one NVidia graphics card but not another? I understand new cards releasing new features but shouldn’t they at least be backwards compatible via the APIs of the previous generation?
- shmerl 7y agoI recommend you simply to switch to AMD if you are using Linux and want a high end GPU. That's the only way for you to get a usable desktop with modern features. Or wait until Intel will release a new GPU next year, it should work well with upstream too. Nvidia has no interest in making their cards play well with Linux, so just avoid them completely to keep your sanity and don't waste your time trying to work around their mess. Going forward, DE / compositor developers will support Nvidia use case less and less (due to Nvidia market share taking a further dip on Linux and Nvidia still not upstreaming their driver). So save yourself the trouble already today.
- themacguffinman 7y ago> I recommend you simply to switch to AMD if you are using Linux and want a high end GPU. That's the only way for you to get a usable desktop with modern features. This is just not true. Gnome with Wayland is one of the most popular and modern DEs and it supports Nvidia's proprietary drivers today.
- ufo 7y agoNvidia still doesn't work as well as other gpus under wayland, which is why GbOME still uses X by default for NVIDIA
- shmerl 7y agoOP explicitly mentioned Sway (based on wlroots), not Gnome (mutter). Besides, even Gnome can't handle XWayland with Nvidia today. And if you play games, especially in Wine, that's still a requirement. While Gnome developers bent under Nvidia's pressure, other compositor developers aren't interested in accommodating exceptions for blobs and wasting their resources on that. TL;DR: just ditch Nvidia and forget about all their horrors. They really have no place in Linux ecosystem today, because of their refusal to upstream their drivers and because of preventing Nouveau from doing it for them.
- effie 7y agoWell, they don't play as nice as AMD, but they do at least give you working drivers. They do have place for consumers, there are valid use cases for Nvidia on Linux, such as: 1) top performance available on the market; 2) off-the-shelf passive cooled 4K capable cards (GT 1030); 3) (significantly) better performance per watt and less noise for high-end cards. I still prefer AMD for their play-nice attitude with Linux and seemingly better track record on behaviour towards consumers, but Nvidia for the last years have been offering better hardware.
- t0astbread 7y agoMaybe a dumb question but why do people want to use Wayland if it's that horrible?
- IshKebab 7y agoX is horrible in many other ways.
- p_l 7y agoFor a bunch of stupid, hysterical reasons, the Open Source X11 server still has all the warts of early-1990s release. XFree86 used the MIT X.Org core dump to implement open X11 on Linux, but outside of certain new things (DRI, XRender extension) it remained stuck in "world is dumb framebuffers with optional bitter" design. Over time, a lot of useful stuff was broken and supported less and less, then reimplemented in bad way over compositors, instead of having composting Xserver like Xsgi. Security extensions or even basic security tools (private input grab) got waylaid because toolkits didn't implement them (try running GTK3 on hardware without 32bit color GL or on system that defaults to lower bit depth than 32/24). Generally, after letting it get more and more broken, the suggestion for big rewrite arrived. Said suggestion often results in something that resembles "devs first graphic stack", with a lot of basic, important features for daily life relegated to "someone will make an extension for it later" or "use D-bus to implement it elsewhere, and who cares about compatibility".
- roenxi 7y agoX.org is more horrible and also impossible to maintain. It would have been given the boot over a decade ago except for the fact that AMD/then ATI and Nvidia only supported X and video drivers were incorporated into X directly. There was a big push starting in ~2008 where AMD started open sourcing their drivers. Infrastructure started developing in the kernel where it makes sense instead of in X. Now we've reached the point where there are almost two parallel stacks - linux's graphics infrastructure; and Nvidia's. The developers don't have any patience for the one holdout against the new system. It is unfortunate for the people buying Nvidia cards because they are now starting to be labeled as 'using the legacy systems'. Presumably there is some reason why they have no choice in their purchases, but the cost of maintaining systems to work with closed source drivers appears to be too high. My views here aren't exactly current - I've stayed a long way away from Nvidia since ~2009 - but they are probably sill somewhat on target. It is likely that a better designed alternative to Wayland will crop up. It is much easier to compete with than X - there are no drivers that only support Wayland.
- x0x0 7y agoApologies for the dumb question, but I'm looking for a linux desktop soon and some quick googling seems to say yes... but nvidia really doesn't work with wayland?
- noobermin 7y agoI made a comment on this below, X already exists, why can't people live with X/fix X and thus utilize the already existing code vs recreate all the interfaces that X already has?
- gmueckl 7y agoX is a dated mess at this point. Its core architecture assumes a model for drawing graphics that is more than teo decades out of date. There have been extensions - plenty of them - to drag it along and these have added substantial bloat. Also, some extensions where also awfully half-baked, turning the X11 protocol into nightmare to program against. Wayland has some good ideas to modernize the stack based on passing GPU buffers between the compositor and applications, so that applications can use GPU acceleration and actual 21st century graphics technology to the fullest. But the non-graphics part of a desktop GUI are hard (e.g. event routing, clipboard, drag and drop, screenshots/capturing...). Wayland suffers from two things in this regard: first, it needs to catch up to a 30 year headstart thatball other DEs have with implememting that. Second, it is artificially hobbling itself by declaring absolutely trivial information privileged like the screen resolution and absolute coordinates of any window on the screen. This is a list of stumbling blocks and showstoppers that have to be worked around.
- kilburn 7y agoBecause X's developers gave up on it: https://www.phoronix.com/scan.php?page=article&item=x_wayland_situation&num=1 https://www.phoronix.com/scan.php?page=article&item=x_waylan...