Mandatory Disclaimer: I'm not complaining about the drivers.
Some have suggested that the Windows 10 drivers should be open source so I'm interested in knowing what would actually be required for this to be possible? I'm not complaining about the state of the drivers, I'm more interested in the logistics of it, because if I understand correctly AMD's drivers are open source on Linux so what would need to happen on AMD's part for this to be possible on Windows? Also Pros/Cons.
AMD would need to make sure they're not using third party code that is not redistributable, then run a legal audit, then publish the code. Alternatively, someone takes the hardware specification documents AMD already publishes and/or the Linux driver and writes a Windows one from scratch.
i would really love to attempt to hack on Radeon GPU driver specifically to decouple all the workaround for specific games - i have a strong feeling that most of the bugs and performance issues we're experiencing are caused by mangled workarounds.
Videos
While it may be possible to develop such Open Source drivers for Windows on a technical level, economic and social realities mean that such a project would not get traction.
First, let's think about why there are Open Source graphics drivers for Linux.
Part of that is the culture, with a sub-group of Linux developers and users insisting on Software Freedom, even if this means avoiding more convenient and more feature-rich proprietary software.
More importantly, the Linux Kernel does not offer a stable interface for drivers. If drivers are upstreamed into the Linux Kernel, they will be maintained there, reducing the needed development effort. GPL-compatible Open Source drivers also get full access to all Kernel functionality. In contrast, externally maintained drivers might break with every Kernel update, and proprietary drivers only get access to a small subset of Kernel functionality.
Having graphics drivers included in the Linux Kernel is a competitive advantage for some companies (e.g. Intel, AMD). For customers of that hardware, “it just works”. Thus, their official driver is the Open Source driver. In contrast, customers of Nvidia hardware have to make do with the limited third party Open Source Noveau driver, or have to download and install the official proprietary Nvidia driver, which is sometimes less stable. It could be that Nvidia believes that their products are so attractive on their own (e.g. due to CUDA support) that Linux customers will jump through extra hoops to use them.
On Windows, all of this is different.
- Windows users tend to consider Software Freedom less important.
- Windows offers more stable interfaces for drivers, making it feasible to maintain third party proprietary drivers that remain compatible with a wide range of Windows versions.
- There is no competitive advantage to be had for graphics card manufacturers to Open Source their Windows drivers.
So given that satisfactory proprietary graphics drivers for Windows exist, and that Windows users generally don't prioritize Software Freedom, it would be very difficult for an Open Source Windows graphics driver project to attract users, let alone more developers. Note that the Open Source Linux drivers for Intel and AMD chips are developed mainly by Intel and AMD themselves. For Windows drivers, you'd be competing against the Intel/AMD/Nvidia teams that are better funded and have better knowledge of the system.
You would need to understand the hardware.
Nvidia and AMD and Intel don't publish much information about how their hardware works. It's all kept secret. The open-source drivers are based on reverse-engineering the official drivers, and experimentation, which are very difficult and slow processes.
This is also why the open-source drivers aren't very good.
P.S. Nvidia recently started "open-sourcing" its drivers, but the way they did that is that the driver now runs on the GPU itself, as closed source, and the open-source part simply connects the application to the closed-source driver running on the GPU.
I had nvidia open source driver, it sucked so badly. Fans working full force on idle, which was not neccessary for that card(GTX1060). So they said amd is better in that regard. And I love open source drivers. Is this true?
Yes, they are good. The open source AMD driver maintained in the kernel tree is the primary driver developed and supported by AMD. They also have a proprietary driver, but it’s really only needed for OpenCL support (GPU compute).
NVIDIA’s proprietary driver is the only driver they support. The open source one is entirely community developed and maintained, so it will never be as functional as the proprietary one.
In short, yes, they are good.
Hi! Today's post about the open source drivers for the upcoming Navi GPUs got me wondering about Linux and AMD GPUs, and would like to discuss it a bit with people who know more about this than I do.
so my first question is how do AMD drivers work on Linux? Supported from day 1, or is it a community thing that takes a while? And how do AMD GPUs perform compared to their NVidia counterparts on Linux, since NVidias drivers are not open source.
I always wondered why they don't do it on windows when they do on linux. It's for legal reasons because they use any third party software in it or is something else?
I'm taking about GPU's Windows especially, don't know about Linux
They do , Opensource drivers are developed on linux , amd even contributes to it. You could in theory port the radeonsi graphics driver over to windows, though that would be mostly pointless for the given the amount of work required to make it work since amd already offers maintained drivers for windows.
tldr; Its possible, the majority of the code already exists, but its not worth porting it to windows since amd already offers better drivers.
edit:https://linux.slashdot.org/story/11/10/13/2057213/amd-ports-open-source-linux-gpu-driver-to-windows aparently amd has already done this before for windows embedded. The final driver code is not open source however.
Since AMD are so nice and makes open source drivers for Linux you can look at them when building you open source Windows driver! And it's not even obfuscated, here you have all the Vega registers with names for example: https://cgit.freedesktop.org/~mareko/mesa/diff/src/amd/addrlib/gfx9/chip/gfx9_enum.h?h=vega10&id=63d60f9399880c7273b18f5ac57419d216908188
(This was one of the more misinformed posts I've seen here..)