Skip to main content

The sorry state of ATI drivers in Linux

Subtitle: broken by impress.js

I've been using Linux as the primary OS on all my laptops since a loooong time ago and until recently I always chose computers fitted with nvidia graphics over any other brand because their drivers probably have the best quality and performance.

My last (and current) laptop, an HP ProBook, came with ATI graphics, but since in the last years ATI seemed to have caught up, I decided to give it a try.
For over two yeas the laptop performed extremely well with Ubuntu 10.04 LTS as everything worked right out of the box with no customization whatsoever. Suspend/resume worked, performance was great and boot time pretty good too (for a conventional hard drive at 7200rpm, at least). The problems came with the upgrade to Ubuntu 12.04.

The first one was an overheating issue: the laptop (especially the bottom, but it could be felt on the top too) would simply become so hot that I would feel uncomfortable at resting the palm of the hand over it. Luckily that was fixed (but it took several weeks of googling) by adding this boot option:


After that I started getting random lock ups on shutdown. The issue is far too common with ATI cards, if you just take the time to google it. That I was never able to really fix it and decided that for a while I would just put up with it as, after all, it dit not occur frequently.

Then, this month, I started putting together a presentation for an upcoming talk and decided that I would write it with impress.js (btw, I believe that HTML will rule the world AND I just couldn't wait to ditch yet another Office application).

rendering artifacts on Chrome with ATI drivers: note the cut off
letters and the broken rotation effect on the bottom right.
As you might know impress.js pushes browsers to the limits by making heavy use of animation, transitions and all sort of cool HTML5 and CSS3 features. Unfortunately impress.js broke Google Chrome.
I had already experienced rendering artifacts with Google Chrome on other apps but thought that perhaps it was a problem with a specific Chrome version. Until I googled it and found this.

The solution is, in theory, pretty simple: upgrade your ATI drivers. Which I did, just to find out that my card (a Radeon HD 43xx) is no more supported and driver updates stop just short of fixing this issue. Annoying huh? Luckily Firefox still works so I could keep working on my presentation nonetheless.

Today I decided that I would fix the issue once and for all and decided to play with Chrome options to see if I could find a lucky charm to make Chrome behave. The option that (almost) fixed Chrome is the following:


broken 3D composition: the camera
should have rotated by almost 90° to
show the slide
Unfortunately this options breaks the rendering of 3D compositions, see picture on the left.

I was baffled. And annoyed. And decide to try my last card: the opens source radeon drivers. One more reboot later I was running radeon drivers and hesitantly opened Google Chrome.

3D performance is as bad as it gets (60 fps on glxgears versus 2000 with firegl!) but at least I could browse the web and view my presentation with Chrome again.

I played through the presentation, looking carefully for artifacts and when I reached the 3D-transformed was still broken.


I will be keeping the radeon drivers, just to avoid the hard lockups on shutdown. Chrome rendering has improved, even if it's not perfect.

Performance wise, the readeon drivers still allow me to run Unity 3D, but I am thinking about switching to XFCE. Surely in the future I will not buy computers with AMD/ATI cards anymore.


Popular posts from this blog

Indexing Apache access logs with ELK (Elasticsearch+Logstash+Kibana)

Who said that grepping Apache logs has to be boring?

The truth is that, as Enteprise applications move to the browser too, Apache access logs are a gold mine, it does not matter what your role is: developer, support or sysadmin. If you are not mining them you are most likely missing out a ton of information and, probably, making the wrong decisions.
ELK (Elasticsearch, Logstash, Kibana) is a terrific, Open Source stack for visually analyzing Apache (or nginx) logs (but also any other timestamped data).

From 0 to ZFS replication in 5m with syncoid

The ZFS filesystem has many features that once you try them you can never go back. One of the lesser known is probably the support for replicating a zfs filesystem by sending the changes over the network with zfs send/receive.
Technically the filesystem changes don't even need to be sent over a network: you could as well dump them on a removable disk, then receive  from the same removable disk.

A not so short guide to ZFS on Linux

Updated Oct 16 2013: shadow copies, memory settings and links for further learning.
Updated Nov 15 2013: shadow copies example, samba tuning.

Unless you've been living under a rock you should have by now heard many stories about how awesome ZFS is and the many ways it can help with saving your bacon.

The downside is that ZFS is not available (natively) for Linux because the CDDL license under which it is released is incompatible with the GPL. Assuming you are not interested in converting to one of the many Illumos distributions or FreeBSD this guide might serve you as a starting point if you are attracted  by ZFS features but are reluctant to try it out on production systems.

Basically in this post I note down both the tought process and the actual commands for implementing a fileserver for a small office. The fileserver will run as a virtual machine in a large ESXi host and use ZFS as the filesystem for shared data.