22 December, 2011

My experiences with ATI graphic card drivers on Ubuntu

From the very beginning of Linux, users had problems with its device drivers. Why is this problem so common? Because Linux is Open Source and hardware manufacturers usually have to invest their own funds in developing drivers that are compatible with it. On the other hand: Microsoft (Windows) and Apple (MacOS) usually pay big bucks to produce drivers and to keep them updated. That practically means that OS vendors finance hardware vendors themselves to develop drivers. Logical assumption is: Why to finance driver development for OS (Linux) that is not widely used (yet), when other OSs with more market share gives you money for driver development.
In graphic card driver world for Linux, this problem is so evident that most computer experts advice beginners to stay away from 3D and other cool stuff until they master basics of Linux. In this post I will try to summarize some of my experiences and thoughts about it. 

Where I come from, we have a saying for something that is damn too difficult that goes: "I gave birth to a bear until I figured it out!". I am certainly a mother to a giant dancing gypsy bear when I managed to install and configure ATI drivers on old Ubuntu 7.xx. It took me whole month of searching, asking questions and reading many Linux technical papers until I finally got drivers installed and enabled 3D hardware acceleration. By the time I did this, I forgot why the heck I wanted 3D in the first place.
Ask yourself a simple question: If I am beginner in Linux, do I really need to kill myself (and lose interest in Linux) to enable 3D support? Truth to be told: today's scene of graphical drivers and Linux kernels are much much friendlier then before, so installing graphics drivers now is not such a bummer, but be on guard! I might mentioned this in my earlier posts so don't throw a brick on me if I am repeating myself: If you want to play Windows 3D games on your Ubuntu, use goddamn Windows!! Windows have (regrettably) much better support on this field. Unless you posses fairly good knowledge (not an expert) of Linux or a true masochist that enjoys putting nails under his own fingernails, don't bother so much about this. Do I have to mention that you can damage your system if something don't go as expected? And yes, I don't take any responsibility for any damage caused by reading this article or any possible lost of your (or any other) life. You have been warned!
First of all: ATI sucks on making drivers. Yes, they might be cheaper then nVidia, but their driver development department sucks. When ATI reappeared with its Radeon series as competition to nVidia their drivers sucked (sorry for the 's' word but they really s*****). As time passed, lots of driver issues were fixed and ATI became solid graphic card manufacturer, alongside nVidia and Intel. However, even in Windows, I have to keep old drivers since some games works only with out-dated drivers. This brings  the unnecessary hassle of uninstalling, purging and installing the (again) drivers. Try to explain this to someone who is only into computer games and he/she will rush to the nearest store to buy a crappy XBox/Playstation/Nintendo...
In Linux/Ubuntu things tend to be more complicated, but looks to me that ATI is doing as much as it can to make drivers more and more friendlier and stable. Also, ATI made their graphic cards architecture available to public, so that everyone can make drivers on their own. It is an action that really really deserves credit, but it will take some time until open-source community do something really usable. Open-source drivers are under development. They provide good support, but it still doesn't matches speed of proprietary driver by ATI.
There are two types of ATI drivers: Open-source and proprietary drivers. Open-source drivers are usually bundled with your Linux distro (newer Ubuntu comes with it) and it should be enabled by default if Linux installation recognizes your card. Newer distros are getting better and better at recognizing your card and installing and configuring driver. It is, perhaps, the best one for absolute beginners for the time being. It provides you with limited graphical effects and poor to average performance, but it offers stability!! Yes, open-source driver is stable and will keep running without crashing (often)... You might need to tweak driver a bit to provide certain features, but if you posses THAT knowledge, then you should try to tame the proprietary driver.
ATI Proprietary driver is a story for itself. Again, I must note that ATI had done a tremendous work to make drivers more and more usable and easier to install, but it is away from done. Installing is done through their sh script and you must use gksudo command to execute it. It is crucial to use gksudo NOT sudo, a small detail that almost forced me to cut my long curly hair to "prisoner term" style. I will write some guide about these technical stuff in some future post, but I really wanted to mention this "little" pebble that caused so much pain. Driver, itself provides nice graphical utility amdcccle (run it also as gksudo) to set some common settings. Don't give you much possibility though, but some basic stuff is here. You can finally fix desktop screen tearing with few easy clicks.
However, driver is a bit unstable. It will crash sometimes, but driver tends to recover automatically. Seems that ATI programmers saw that developing recovery system is a better solution then fixing driver itself (or someone is in love with try/catch statements). When used in conjunction with compiz effects, window decorations (title, border, minimize/maximize boxes) sometimes disappear and you will need to restart compiz. This problem was very common (5,6 times per week), but seems to me that it is gone. Guess that newer version of compiz or ATI proprietary driver fixed this. When you update linux kernel, driver sometimes (but not always) malfunctions and driver reinstallation is required. Usually, Ubuntu upgrade center is set to automatically download newer kernel so you might not even notice change until it is too late. This always happens when I have tons of work to do and can nicely take your precious time (Murphy, I am looking at you). Reinstalling driver is another thing. Yet, another irritation, but not so critical, is that ATI driver flashes screen to black for few seconds when you disable screensaver ?!?!?!?! Connection? Most video players disable screensaver during movie playback and screen ALWAYS flashes for few seconds. We thought that this was problem related with video players, but it was proprietary driver after all. To make matter worse, bug is darn old (about two years) and there is a still open issue on ATI bug tracker...
Why then to use this driver? Well for 3D acceleration of course! It has much much better performance in 3D then open-source one (if you can say that open-source gives 'any' 3D) and makes your desktop run smoothly. Also, you can do many fancy effects with your desktop to make it more Apple-like and you can play 3D accelerated games. Warcraft 3 and Dota works fine under Wine emulation, but I mention earlier: if you are into the games, use MS Windows and save yourself the trouble.

At the end, I will give you a quick summary about ATI on Linux. Good news is that ATI cards WORK on Linux (Ubuntu in my case). Bad news is that you need to juggle with user-unfriendly drivers. Open-source driver is the best choice if you are: a beginner in Linux that don't care about REALLY poor performance (especially in 3D!), graphically insensitive or have terrible sense to stick with default settings and never make any changes to make system appeal to your customization.  Many people prefer defaults these days, but seriously people: Where did your imagination go? Proprietary ATI driver is for advanced users and those who wants to squeeze the maximum from their machine. It provides, at the moment, best performance for ATI cards and supports 3D acceleration. However, installation, maintenance and stability remain the big issue with these drivers, but it really pays at the end and you might learn something useful about computers. Still: if you are into the games, stick with Windows, but I encourage you to explore and experiment with Wine. Many people have written success stories about running modern windows games on Linux, so google for them.
Here is a screenshot of my desktop and finally, an opportunity to see glamHACKER's author workspace :D


Being an optimist, I believe that drivers will became better and better as time passes. Even now, drastic changes can be seen on proprietary and open-source drivers. Perhaps in very near future, installation, stability and performance of graphical drivers will be in class with Windows' drivers.
I have (limited) patience. How about you? :)

No comments:

Post a Comment