Nvidia releasing its Linux graphics driver as open source is already bearing fruit for alternative operating systems.
As many people already knows, Nvidia published their kernel driver under MIT license: GitHub – NVIDIA/open-gpu-kernel-modules: NVIDIA Linux open GPU kernel module source (I will call it NVRM). This driver is very portable and its platform-independent part can be compiled for Haiku with minor effort (but it need to implement OS-specific binding code to be actually useful). This is very valuable for Haiku because Linux kernel GPU drivers are very hard to port and it heavily depends on Linux kernel internals. Unfortunately userland OpenGL/Vulkan driver source code is not published. But as part of Mesa 3D project, new Vulkan driver “NVK” is being developed and is functional already. Mesa NVK driver is using Nouveau as kernel driver, so it can’t be directly used with NVRM kernel driver. NVK source code provides platform abstraction that allows to implement support of other kernel drivers such as NVRM.
I finally managed to make initial port NVRM kernel driver to Haiku and added initial NVRM API support to Mesa NVK Vulkan driver, so NVRM and NVK can work together. Some simple Vulkan tests are working.
↫ X512 on the Haiku forums
Incredibly impressive, and a huge milestone for the Haiku operating system. It supports any Nvidia GPU from the Turing architecture, which I think means Nvidia RTX 20xx and newer, since they have a required microcontroller older GPUs do not have. Of course, this is an early port and a lot of work remains to be done, but it could lead to huge things for Haiku.
This was on the bingo card ever since linux merged nvidia’s ABI. Now that nvidia drivers have a stable ABI on linux, it opens up the opportunity for other operating systems to implement the ABI as well.
This is conceptually quite similar to linux supporting windows NDIS interfaces for network cards.
https://wiki.debian.org/NdisWrapper
I think you are confused. Linux did not merge NVIDIA’s ABI. Linux added the firmware to linux-firmware so that their own, completely independent driver can use it. NDIS wrapper is even far more unrelated, as NDIS wrapper would load binary blobs into the kernel. Even the NVIDIA kernel module is fully open source, which is why Haiku can use it.
js,
They literally did though, the code that got merged is nothing but a shim between the hardware and the actual drivers that are in userspace. Prior to merging an ABI the nvidia drivers would break on a fairly regular basis.
This was a good thing for stability but was bad for anyone who thought it meant the actual drivers would be FOSS.
The ABI provides an interface between the driver and the kernel. Having a stable ABI means other operating systems can implement it.
Yeah. The GSP (GPU System Processor).
Basically, nVidia cut the Gordian knot of GPL license compatibility by running all the code they didn’t want to open-source on the GPU instead of inside the Linux kernel so it’ll be on the far side of an IPC boundary and legal for the same reason that tools like Ark and File Roller can invoke UnRAR as a subprocess.
I had no idea of this, thank you my friend. I no longer own any nvidia cards, my latest one is a 980ti and a MXM Quadro M2200m (i have a collection of older ones of course as i am a board hoarder)
I have a hard time to believe this chip abstraction can be legal in all areas where they are sold. But then again a such a complex court case would take almost unlimited time until there is a verdict (except in dactatorships like DPRK or PRC, where they can just force whatever they want)
It’s legal for the same reason that it’s legal for a closed-source web browser to connect to a GPLed web server and vice-versa.
Stallman has historically complained about closed-source firmware, and called for people to reject hardware which uses it, but it is compatible with GPLed system software and applications.
Hell, if it were illegal, then it’d be illegal to run GPLed software on x86, since the signature-verified firmware blobs Intel and AMD use for things like opting out of having the Intel Management Engine constantly reset the CPU are closed-source.
(Yeah, we’re back to 10NES dynamics.)
Yes, this is correct.
Basically it is a separate computer, and the “driver” talks to it with a networking protocol. (Even though everything is physically in the same location).
To be fair, this is a massive step forward compared to before, where they did not even allow running proper 2D desktop with their GPUs (they would lock down clocks if you did not have a signed driver. So it ran at ~10% speeds).
It’s a shame that X512 seems to have spearheaded this project. He has a reputation for creating some groundbreaking ports, and not maintaining them. He’s also the guy who developed the now-broken WINE port a year or so ago, as well as the FireFox/IceWeazel port. He is also porting Haiku to RISCV
As great as this port is, i have zero confidence it will be maintained and kept up-to-date. I also highly doubt it will be merged into the main Haiku tree. Enjoy it whilst it still works, because history implies it won’t in a years time.
Right. And what software on Haiku will benefit from NVidia hardware assist? The last time I checked there was virtually zero Haiku native applications in development.
well, how about every app that’s been ported to it and would benefit from hardware acceleration.
no to mention potential to run some compute tasks. (maybe).
At the moment.
Like any OS, there’s a massive chicken-and-egg problem.
Non-native ports sidestep this in favour of complacency. Yes, ports are a quick and easy way to get large amounts of real, useful software available for a platform, but then again, that software “already exists” and there’s little reason to develop native software to replace it.
I imagine if and when Haiku finally breaks out into large scale adoption (relative to Linux, lets say), more native ports will eventually appear.
There is of course another method to making “haiku native” programs more appealing, and that is to develop the Be API into cross platform toolkit. If it’s possible to run Haiku software on Windows and Linux, much like Wine lets you run Windows software on non-Windows OSes, then it opens up the potential install base of Haiku apps to a wider audience.
Of course, any such project is a monumental task, but i’m certain it would help drive Haiku native software adoption, even if it is to the detriment of Haiku adoption itself.
Chicken and egg problem again, why would i need to install Haiku if the programs run on my current OS?
Turing (TU) are the GTX 16xx and RTX 20xx series, announced in 2018 and released in 2019
i bet there is some marketing guy about to notice that there is “AI” in “Haiku”