Open-source video drivers that run games as fast and stable as proprietary ones (ATI)

Ever since I had Linux on my dual-boot machine, the biggest and most horrifying nightmare was finding a video driver that worked with the ATI cards I’ve had over the years. By working I’m referring to running any 3D game at the same performance as the proprietary driver on Windows. At the moment, I’m trapped between a right and a wrong with this issue, and would like some clarification about which driver I could use.

I currently use the proprietary ATI driver distributed in the gecko repository. From a technical point of view, this driver is just perfect. All 3D games work well (both native Linux ones as well as modern Windows games on WINE) while performance is either as good or better than in Windows. There has also not been a single crash with any game (except the vid_restart command in the darkplaces / Xonotic engine) and rarely are there any visual artifacts visible.

The open-source radeon driver (included and active by default with openSUSE) works well for desktop effects and playing videos, but are completely unusable for any 3D game. I tried them again today and the results were disastrous. Only some native Linux games would even run stably, while others would crash the system and leave me stuck with a black screen. Games that did start were also unplayable due to performance, which was almost 4 times lower than the proprietary driver. WINE gaming was out of the question, as Windows games would either not start (WINE crashed with an error message) or have corrupt and outright broken graphics.

The solution is of course sticking with the proprietary driver. But part of why I moved from Windows to Linux is to get rid of proprietary dependencies for running my system and doing everyday tasks. It makes me uncomfortable that in an open-source operating system, in order to play open-source video games (excluding WINE’s) I need a proprietary driver. That is why I tried the other driver, but as my results have shown it makes gaming impossible. Long story short, I want an open-source driver that is as stable and fast as the proprietary one. My question is, is there or will there be such a thing?

I read somewhere that in the open-source one you can enable experimental features for hardware acceleration. But since no one on IRC could explain how to do that and any change I’ve done to Xorg caused the system to stop booting (thank god for failsafe mode) I could not try this… plus that I doubt it would make WINE games work too. I’m curious if there is any open-source video driver in development, which will work with all 3D games and have no crashes or lower performance. For ATI in my case… but I’m sure Nvidia and Intel users would also like this. Any plans for such a driver, or is anything known about one coming anytime soon? Also instructions on how to configure the existing one for gaming and what results that yields?

”Long story short, I want an open-source driver that is as stable and fast as the proprietary one. My question is, is there or will there be such a thing?”
AMD and Intel are closer to the open source communities but Nvidia is a different story. Nvidia knows that they own the best video drivers for linux and no matter how may times Torvalds ”flips them” and says ”f*** you Nvidia”, their driver will remain closed source.

Now, coming back to your wish list, you could try and contact the kernel developers and give them your feedback about this. If you have any skills in developing you can try and give them a hand by developing or testing. Check The Linux Kernel Archives and scroll down the page for some contact options.

Ironically, one of the reasons I stuck with ATI over the years were rumors that “they’re closer to open-source than Nvidia”. Glad I was right :stuck_out_tongue: Some years ago I actually read an article titled “AMD open-sources their driver”. Seems the proprietary driver is still closed-sourced though, but I’m hoping this might change. If they ever open-source their currently proprietary driver, that would be fantastic… though I doubt even AMD will be that nice to open-source. Still, I see no advantage in any company not freeing their drivers. Since both ATI / Nvidia / Intel make money off selling the physical video cards, not the driver software… so it shouldn’t affect them that their drivers are better than ours or the other way around.

Sadly I have minimal skills in development, and helping out with a driver is surely not an option (I’m learning C++ though). Feedback… well I mentioned my experiencewith the default radeon driver in the first post, not sure where else to post about it. Why the kernel developers BTW? I thought the driver is a different story, and I should mention it to those who develop x11-radeonhd (unless it’s the same team).

For now, I’m still curious if there’s any rumors or news either about when / if AMD might open-source their proprietary driver for real. Or when the current FOSS driver will become fully compatible with all 3D games and run them as fast.

On 2012-09-23 11:46, MirceaKitsune wrote:
> Still, I see no advantage in any company not freeing their drivers.
> Since both ATI / Nvidia / Intel make money off selling the physical
> video cards, not the driver software… so it shouldn’t affect them that
> their drivers are better than ours or the other way around.

There is from their point of view.

Like revealing to their competitors how they do things.


Cheers / Saludos,

Carlos E. R.
(from 12.1 x86_64 “Asparagus” at Telcontar)

Ah, ok. Wasn’t sure if there’s anything secret in those drivers, since it’s pretty much just the software for how their cards work (and besides, I think an expert can de-compile them and obtain the obfuscated source code). Wonder if it’s the case for ATI as well. They could release part of the driver that they aren’t afraid to show… like basic hardware acceleration and communication with the device, but not specific creations like the Catalyst AI or Crossfire. Won’t happen anytime soon most likely, so I keep hope in an alternate driver working till then.

> I’m referring to running any
> 3D game at the same performance as the proprietary driver on Windows.

my simple minded, simple solution:

keep the games on the game system/machine…
and the important stuff on the secure system/machine…

and, if you need to use something which is done best on a Mac, an
Android, a WindowsPhone or a Spark or a SUN or an IBM Mainframe, then
use the right system for those needs too…

we are still a long long way off from having one machine and one system
to do all or mankind needs/wants from computers…


dd

Well, I’m not a driver developer but I do keep an eye on the phoronix forums where the devs do hang around and my impression is that we’re deep in the transitional stage right now.

One very important thing to know is that the Catalyst driver will never be opensourced because of their having used other people’s IP inside of the code among other issues. They apparently had considered looking at doing so but came to the realization that it was impossible, and better to develop a new driver. Thus we had radeonhd and then the radeon driver.

Another thing you need to understand is that AMD’s main focus with the catalyst drivers is not the home user market but the workstation market. This means that they have to deliver a certain level of features and performance for workstation users, they can’t just immediately switch whole heartedly to a new driver and say “we’re going to develop this new driver now, It’s going to be better in the long term but they’re not going to be very good in the short term”. This of course means that they can’t just shift over their entire linux driver team to the radeon driver until it’s good enough for workstation users.

However I do believe that they’re going to make the switch and even potentially switch everything over to the radeon driver, and this is supported by the fact that they’ve decided to use the radeon driver for window’s embedded edition. So while not ready for workstation users AMD does apparently consider it ready for embedded users.

Now they’re definitely getting closer to that point. They no longer have a backlog of cards to enable support for and from what I’ve heard in the forums either Radeon HD 8xxx or 9xxx series will have launch time support with both driver development teams, this is a big milestone and means that they’ll get to learn about the same hardware quirks of the series while it’s happening rather than having to pick up the pieces after the fact.

Ultimately though the current status from what I’ve seen of benchmarks is that Radeon is faster than Catalyst at 2D work, and 30-50% the speed of it at 3D work. However radeon is still very much so incomplete, and my personal guess based upon those forums is we’re looking at 3-5 years before Radeon will be comparable/better than catalyst.

LukeWolf: Thanks for that info, very helpful. Yeah… it sucks when a closed-source project uses code from other people, in time those people disappear, then when the lead developer considers open-sourcing it he realizes he’d have to ask contributors that are gone. I’m guessing AMD either can’t contact everyone who’s work is in the Catalyst driver, or some of them disagree with opening the source… or have they not tried at all and found it too difficult to bother?

Also, I didn’t know the radeon driver (the one included with OpenSuse) is developed by AMD too, and they already included it on some machines by default. I thought the Linux community is doing it so people who use Linux have a video driver that works. If they’re directly involved in helping with an open-source driver for an open-source OS, AMD is pretty cool… glad I’m sticking with them :slight_smile: Are they really considering a full driver switch once the radeon one would be ready?

Anyway, “the 3D part not being ready yet” is my exact problem with this driver. I play many games… both Windows ones via WINE as well as modern and high-quality open-source 3D games (yeah, there are a few like Xonotic or StuntRally). I’m actually trying to develop my own OGRE engine project. 3-5 years sounds like a lot too :’( Will it really take that long to implement even basic hardware acceleration, and especially compatibility with all games? It would be nice to at least know I have a fallback driver that works at 75% the performance of the proprietary one. And especially that’s as stable as the proprietary… since games not starting up at all or even crashing the system is worse than them being three times slower. Really hope there will be more good news about this soon.

Well RadeonHD was actually deprecated a few years back with Radeon having come out, but they’ve got a small team from AMD I believe there’s a dev that works at Red Hat and a number of community devs working on it. AMD has been releasing Hardware documentation and doing the vast majority of the coding.

As far as if they’re really considering a full switch, well they never directly say so but if you read between the lines at what they’ve said and done the implication is is that that’s what they’re going to be doing… slowly easing off on catalyst and transferring that over onto radeon.

What I’m talking about with 3-5 years is the timeframe in which I believe it’ll take for radeon to be as performant for Catalyst and to replace it at least on linux. The reason for this is that there’s a lot of work still to do for instance while there is openGL support it’s currently at version 3.0 however most of the work required to support the 3.x series is done but 4.x is essentially untouched. Also it’s slow: 30-50% of the Catalyst driver in terms of openGL performance, mostly because there’s a lot of work left to do such as a proper shader compiler and of course there’s stuff they need to do like get power management properly working, openCL and the UVD.

The problem basically comes down to that there’s quite a lot of work that needs to be done and it’s going to take a few years to catch up. Thankfully they only have to catch up once.

Also what kind of game are you planning on making out of curiosity?

Something with smooth voxel terrains (marching cubes) and more interesting stuff. Pretty crazy considering I’m a C++ beginner and barely manage to understand the structure of CPP codes, but still trying :stuck_out_tongue: