The AMDGPU Additions for Linux 4.7 Are Enormous
phoronix.com
phoronix.com
In my own experience, the gaming problem is almost solved when you have Nvidia Hardware with proprietary drivers, but AND and Intel drivers are really behind in that space. Hopefully, with Vulkan gaining market shares, we shouldn't have driver problems in the future (but I don't expect this future to come soon, maybe 2 years or so).
I recently saw someone get better benchmark (Futuremark) results with Win10 running in a VM on Linux than native Win10.
I haven't tried this personally yet, but I do intend to.
It was apparently a hassle in the past, but the bypasses are basically built in to the tools now. Nvidia is calling the blocking behavior a "bug", but the have no intention to act on it.
The first is that it's pure, unsubstantiated, guesswork. You'll spend countless hours changing obscure undocumented parameters hoping that things will work. I tried, and it's not a fun thing to do, because you don't learn anything substantial.
Second, this type of operations have a sky-high level of brag factor. People will tell on their blogs/posts that they succeeded in "making XXX work and that it's stable", but they don't tell you that their computer explodes (so to speak) two minutes after they start XXX. Again, I know because I've worked on similar things, and the patterns are the same.
You may be lucky, but if you aren't, it's a lot of time wasted (it always looks like the "final solution" is behind the corner!).
I went for it, and it actually ended being significantly easier and better performing than I expected. I did have to take a few days and learn a bit about qemu, but I'd expect that much.
I will say that older motherboard (perhaps some new ones too) might not have firmware that fully support what's being done here. It's hard to say which, but you can see what people have had success with if you search around (Asus z170a works for me).
This is a little light on details but is a good resource for the steps involved: https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVM...
If this were Slashdot we couldn't even have the discussion without being swamped by fanboys claiming completely false things about Linux gaming. I've been trying over and over again for about 15 years playing all different types of games on different types of hardware and roughly speaking I would say an average of 20-50% performance hit on 3D rendered games but it is getting much MUCH better.
It does work but I didn't spend the, honestly, stupid amount of money on my home PC to have it perform worse than it can just based on the software I choose.
There's a billion reasons why this is the case so saying one specific thing or manufacturer is going to fix it but AMD pushing support is a wonderful thing. I can't wait until I can finally get rid of Windows completely.
Really what I would love is a gaming focused Linux distro that actually works.
I think SteamOS was supposed to be that distro, but at some point it just kind of... ran out of steam?
I really hope that SteamOS continues and sees wide adoption, but I also agree from my experience mining btc on Linux years ago that drivers need to improve, as does the hack factor. As a sysadmin then, I struggled for hours to get the AMD + OpenCL stuff working right. Not sure if it's better now, but no way would the mainstream accept that type of experience to play games.
Or are you wishing that you wouldn't have to have a separate gaming rig if only games ran well on Linux? Then you could ditch the laptop and you wouldn't need 2 computers at home?
There's a lot of talk about complexity and dead end edge cases, however, having now done it, I can honestly say it was significantly easier than I was expecting and absolutely stable and fast thus far. I can't speak to edge cases (conversely, I can vouch for the Asus z170-* motherboard line), but my impression was that there is less and less of them as motherboard BIOSs advance.
It seems to be an area where things are developing fast. You'll find a lot of out-of-date resources telling you things like, for example, most nvida cards will not work or require effort to get working. The reality now is that it just requires a single argument in qemu to bypass the nvidia issue.
In my opinion, it's a significantly better solution than dual booting and basically indistinguishable from normal Windows performance-wise for gaming.
Link you might want to check out: https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVM...
Not everyone can afford several high-end GPUs, so it'd be really nice to use it on host OS up until the moment you run gaming VM, and then switch host to lower/embedded GPU.
The idea of getting another high end card seems pretty absurd when you're putting windows in a VM specifically to deal with those situations. I recognize some people have special use cases, but they're just that, special use cases.
Really, overall, I don't consider it to be too bad of a trade off for what you get.
DRM is a really unfortunate acronym here. It took me a while to figure out it refers to direct rendering manager.
It seems like there are many layers, and there aren't many good references that really explain it "from the beginning".
https://en.wikipedia.org/wiki/Direct_Rendering_Infrastructur...
I think the basic way to understand it all is that the decision was made to pull more of the graphics stack into the Linux kernel, and this has enabled thinner abstractions to be built on top for various purposes. For example, Wayland makes use of the underlying DRI infrastructure.
There are different ways to create GPU drivers for Linux. In order to make use of DRI, the GPU has to have a DRM driver. This DRM driver is specific to the GPU hardware.
The DRM is the interface that software can work with to make calls to the GPU. You could think of DRM as a way to have a standard interface for GPU calls, so other software will speak to this DRM layer, but the DRM driver will speak to the hardware, which is why the DRM driver needs to be device specific.
The DRM driver is the part of the GPU driver that sits in the kernel, there will also be a userland part of the GPU driver. I believe the part of the driver that gets used will depend on what the software is targetting. Wayland will target the kernel side, but games would work with the userland side.
These images from Wikipedia may help visualise what DRM is doing. Without DRM: https://en.wikipedia.org/wiki/Direct_Rendering_Manager#/medi...
With DRM: https://en.wikipedia.org/wiki/Direct_Rendering_Manager#/medi...
As a side note, it's possible for GPU vendors to create more generic GPU drivers by using Gallium3D. This also creates drivers that work with DRI, but GPU drivers don't need to use Gallium3D to use DRI. I would suggest thinking of Gallium3D as a set of reusable GPU driver components, you could code a driver using these reusable components, or you could code something bespoke.
https://en.wikipedia.org/wiki/Gallium3D
In terms of Wayland in particular, you may be interested in this:
https://wayland.freedesktop.org/architecture.html
Does this help?
In terms of Wayland, I would suspect that it isn't necessary to have anything vendor specific, the whole point of targeting an abstraction layer like the DRI is to eliminate the need to cater for differences in devices.
EGL is sort of a cross-platform spec for window managers to work with graphics cards.
It seems like AMD is really trying to do well by the open source community. I do realize that this isn't out of the kindness of their heart, but rather the fact that they're the underdog, but still, it's good for the community.
I really think things are going to turn in their favor within the next 2 years (at least in the graphical side of things).
Every single one of the major game consoles are using AMD chips, and consoles are usually first priority for game developers. I am guessing this could have some advantages when it comes time to do a PC port.
Also, with the new APIs such as Vulkan and DX12, the amount of optimization "games" you can play inside the driver is reduced since they are apparently much closer to the hardware. This could wash away some of the lead that NVidia has (as is proven by many recent DX12 benchmarks).
Finally, I think the recent rise in popularity of Apple computers (last 5 years or so) could be a good thing for Linux gaming since they will both rely on the Vulkan/OpenGL APIs which could give more incentive for developers to do the port.
Apple haven't included any real OpenGL updates in years, and have meanwhile released Metal, their own cross platform (OS X / iOS) abstraction layer.
Wouldn't get your hopes up expecting Vulkan support from Apple.
I just got a new computer and had to wrestle with PCI-E/graphics issues for the whole week but I got them solved now and it wasn't actually the Radeon driver as I originally suspected but rather Intel again (as I understand it).
I've seen so much instability from catalyst+southern islands and I'm hoping the issues are driver related and Linus' Law will result in a higher quality computation stack.
what could possibly go wrong ...