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.
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.