problematic trait of mine: i actually like the Linux NVIDIA graphics driver. it's always worked really well for me, it's fast, it's got good compatibility with games i run under wine, it handled render offload, hotplug, and hot-unplug of GPUs (less so the latter but to an extent) about as well as you can do with Xorg
nvidia.ko is one of the most singularly reviled things in the broader Linux sphere, maybe even more so than systemd, and honestly i don't think it deserves that level of hate
people don't like that NVIDIA management chose to allocate resources in such a way that they ship a copy of their Windows graphics stack entirely parallel to any community efforts on Linux, and that's a fair thing to disagree with, but it's hard to argue with the utility of having basically the same codebase (except for the HAL) on both platforms because it means that if a game works on Windows it will probably work under wine too

@whitequark I like NVidia because they actually support Linux in a clearly tangible way.

And have for a *long* time

@whitequark To be honest, while everyone complains about Nvidia drivers on Linux, they've always worked perfectly and with good performance for me. Having my games library Just Work is worth a fair bit of ugliness under the hood to me.
@whitequark but the performance has been lower on Linux than on Windows, at least on benchmarks I saw last year.
@whitequark I think systemd absolutely does, nvidia.ko is..... fine? at least nvidia.ko isn't trying to replace your whole OS
@whitequark hater opinion: i feel like most of the hate these days is simply because wayland folks refused to work with nvidia and so the wayland desktop was broken for years.
@dotstdy something like that yeah
@whitequark you could argue that eventually it worked, but oh my what a painful and drawn out process. which i suppose is not exactly a unique problem in the area...

@dotstdy @whitequark well yes and no, NVIDIA were invited to the table, the rest of vendors and community decided on an approach for Wayland that was fine for all of them, then NVIDIA refused to work with the rest and do their own thing instead (EGLStreams, that works only with their driver, is nonstandard, and with many limitations). Then of course because everybody else took the common approach, and they've been playing catchup.

The initial refusal to add proper DRM/KMS modesetting to their driver was what made NVIDIA diverge, and that was way before Wayland, and already then it was clear that this would be the way forward for Linux GPU drivers more than 15 years ago.

“Wayland folks didn't want to work with NVIDIA” is an urban legend.

@aperezdc @whitequark it's not possible for nvidia to use drm apis without rewriting their kernel driver as a gpl module. So no. "Wayland" writ large did not consider that a constraint worth designing around.

@dotstdy @whitequark only that this claim is also wrong, recent versions of the NVIDIA Linux driver can do DRM/KMS modeset, see https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting — and this is not only useful for Wayland; for example any device where there isn't a VGA text console can have an emulated console using graphics modes through the generic DRM framebuffer driver.

Again, the right answer is: NVIDIA wanted to do their own thing instead of having to agree with others, and in the end they're having to play catchup because nobody else adopted their approach. You may like it or not, but that's the facts.

NVIDIA - ArchWiki

@aperezdc what do you mean "recent"? :) https://github.com/aritger/eglstreams-kms-example (the issue wasn't so much kms as the entire rest of the owl)

As pointed out in the top of the thread, one virtue of the nv approach is their driver has ~feature parity with the more important (to nv and customers) windows driver. Anything which requires substantially changing the architecture is introducing fragmentation for their internal development, and in any case will take a lot of time to achieve politically + technically.

GitHub - aritger/eglstreams-kms-example: Example of using EGLStreams + DRM KMS

Example of using EGLStreams + DRM KMS. Contribute to aritger/eglstreams-kms-example development by creating an account on GitHub.

GitHub
@aperezdc it's totally possible to say, well fuck em they can do it our way or not at all, but I think it's a bit weird to then claim that it's all their fault they didn't prioritize your architecture needs over everything their primary customers cared about. And since the pivot takes time it will invariably introduce usability bumps which people will get upset about (regardless of who users ultimately blame)
@aperezdc I don't really think it matters much either way API wise. But Nvidia presented options which were short term achievable with their tech stack, and implemented them, and the response was very negative. Linux wants to use the drm apis as a moat against the thing Nvidia was specifically trying to do, so their only option was to re-architect their driver, and it turns out that's a long painful process, which leads to negative sentiment from people who want their computers to work.

it's not possible for novideo to use DRM APIs without releasing their driver under GPL2

oh yea @dotstdy and whose fault is that?

cc: @aperezdc & @whitequark

@whitequark new metaphor for my moral compromise with macOS: it’s like nvidia.ko, but bigger
@glyph hahaha yeah I can see that
@whitequark yeah it’s kinda funny but not really a joke
@whitequark My one and only gripe about it is the amount of grief it gave me on my W520 (sandy bridge i7 and GF108 Quadro 1000M) first with primus/bumblebee but that eventually worked well, then dropping support so I'd end up stuck on a pretty old Xorg. The intel driver worked fine the whole time. I realize this is a silly complaint.
@whitequark
I hate that the next big upgrade will probably obsolete the gpus in my current machines and I have no recourse except to give up 3D acceleration.
@kirtai does the old driver branch no longer compile?
@whitequark
They stop being supported after a while.
My current GPUs are only supported by the "legacy" drivers.
@kirtai yeah, but the legacy drivers still work, right?
@whitequark Yeah, strong agreement. It's always worked and performed well for me. I don't love it but it gets the job done in a way that so many other GPU drivers haven't for me over the years.
BEEN SAYING THIS ITS FINE AND WORKS
@whitequark imho 90% of the issues are distros being terrible at packaging and setting stable kernel args, and 10% is whatever the hell laptops keep doing with iGPU-dGPU combos
@whitequark I've had a good experience with the Linux Nvidia driver too.

Try setting up HW raytracing in blender with Intel or AMD.

@whitequark

It’s been ages since I owned an NVIDIA card, do they still ship drivers for FreeBSD and Solaris?

They used to develop their X11 drivers on FreeBSD and port to Linux to make sure they weren’t derived works of the Linux kernel, but they stopped that 10-15 years ago when their lawyers were confident that their GPL loopholes were solid.

@david_chisnall @whitequark

Old drivers still ship with FOSS shims to compile against illumos aaand the open nvidia drivers should have FreeBSD support if not its a 1k line OS abstraction C file in the driver to make.

@david_chisnall @whitequark
#FreeBSD still has #NVIDIA #GPU driver ports maintained under the NVIDIA umbrella of x11 group maintainers (ashafer@, danfe@, kbowling@ and me).
There are:
x11/nvidia-kmod{-304|-340|-390|-470|-580|-devel}
x11/nvidia-driver{-304|-340|-390|-470|-580|-devel}
graphics/nvidia-drm-{510|515|61|66|latest}-kmod{-580|-devel}
x11/linux-nvidia-libs{-304|-340|-390|-470|-580|-devel}
as driver and library parts and
graphics/eglexternalplatform
graphics/egl-wayland
graphics/egl-wayland2
graphics/egl-x11
as support libraries / build helper provided by NVIDIA.

Note that -devel variants are for whichever newer of New Feature Branch (NFB) or Production Branch (PB) of drivers, not for Beta drivers. Released Beta is the trigger for me to start investigating for preparing upcoming NFB and/or PB.

You can see
https://www.nvidia.com/en-us/drivers/unix/
that FreeBSD and #Solaris is still entitled as supported platforms.

Unix Drivers | NVIDIA

Unix Drivers