There has been quite some discussion about Free and closed drivers and documentation
of hardware lately. Kernel
developers demand open drivers, docs and development
processes, NVidia refuses to open
their drivers, arguing that the technical quality
is not a problem, and that the driver contains intellectual property they wish
to protect. Now ATI/AMD has shown that the intellectual property argument is at least not
universally applicable to graphics hardware vendors. Let’s also clear up a misconception about
the technical quality of nvidia.ko: The NVidia driver is the single component in a KDE4 /
Free Operating system stack causing us most of the hard-to-solve problems. In other
words, nvidia.ko has grave technical shortcomings.
The most considerate article in my opinion is James Bottomley’s essay on
“Linux Graphics, an essay about
. James puts NVidia’s position into the context of Free Software developers
and Linux kernel developers more specifically. I’d like to reiterate some of his points and
provide additional insight into how this looks like from the point of view of a KDE developer.
With NVidia just confirming that they won’t open up their process, this sadly appears necessary.
Let me start with some problems of NVidia’s closed driver model:
- With an unclear licensing situation of those blobs, most distributors don’t dare
shipping nvidia.ko in their default install, spoiling the out of the box user experience
that Linux is able to deliver otherwise.
- Performance and stability problems as we see them with KDE4 (and apparently
Cairo-based rendering as well) spoil the user experience even more (see below).
- Triaging bugs caused by those issues is hard to do and takes a lot of our precious time.
Even worse, NVidia doesn’t seem to have the process in place to listen to those reports.
nvforums seems to be the only way to reach NVidia people, it’s hard to tell where to go
with specific questions or technical issues. As a result, interchange between Free Software
people and NVidia engineers leaves much to be desired
- Users suffering from those problems will likely just blame Linux and try to not burn
their fingers on Free Desktop systems anymore, let alone recommend it to others.
- Not being able to help users with their problems caused by nvidia.ko is very
frustrating, both for users who end up with a screwed system and developers not being able to
help those users and still getting all the bad press.
Let’s not forget to pin down at least some of the technical problems as detailed as possible.
Two of the most annoying problems I am myself able to reproduce:
- Temporary screen
lockups. Suffering from this myself, I’ve done some research on the web. There were
suggestions around that NVidia locks the system for some seconds when switching between
powerstates. Disabling powermanagement through a kernel module parameter should have done the
trick, it didn’t do it here. Besides that, I would not feel comfortable with that, having a
passively cooled video card and at least trying to not burn too much energy these days. Global
climate change and local one (it’s already quite hot in this room) getting in the way.
- Bad windows resizing performance.
Resizing a transparent konsole window takes approximately 5 seconds here. It’s slightly better
with a non-transparent mode (and other applications), but still far worse than on my ATI card,
and also far worse than in KDE3. Switching virtual desktops here (composited or not) takes
some seconds, just enough to break my flow of working.
(I’ve run into those problems with various different kernels, tried Ubuntu’s last couple of
release, same problems on OpenSuse). Currently, I’m now using the 177.13 driver, but I had the same
problems with older versions as well. According to some, a lot of those problems have
to do with the fact that NVidia drivers do not make use of the existing infrastructure in X
(XRender, XAA, EXA) and Qt uses those quite heavily, if available (Qt4 much more than Qt3
apparently). Now imagine someone wanted to merge a driver upstream which works around those
acceleration infrastructures. No way upstream developers accept it, and rightfully so. Why?
Well, check out the above list of problems. The conclusion here would be that NVidia not only doesn’t
play by the rule of the game regarding licenses (it’s still highly doubtful if nvidia.ko
has legal problems), or by the development process (no docs, no sources), they also just
write technically bad code (lacking support for those acceleration techniques, kernel oops
statistics from James’ essay).
Reading comments of users over the Internet, there seem to be two patterns in the responses:
- “My system works, so I don’t understand those complaining about their Freedom. It’s
more important that it works than that it’s free.“
- “It doesn’t work, Linux sucks, I’ll stick with Windows.“
Both reactions show the problem from a very individual point of view — which is fair enough.
However, both opinions do not take into account the problems we, as Free Desktop developers
run into. We have to waste a lot of time and end up frustrated because we’re not able to
support our product as good as we would like to.
I can only guess about the reasons behind NVidia still being bone-headed as they are and
not moving a bit. James brings up that they simply do not have the resources to support their
product properly in a Free Software ecosystem. That seems the most logical explanation to me.
Now resources in a company like NVidia have a lot to do with priorities, in turn, those
priorities are often
a function of market share. In this light, we end up with a self-fulfilling prophecy. Market
share is kept low by Nvidia’s poor support for the Free Desktop, which in turn makes them
keep resources low for supporting those systems.
So how can we solve this problem of not being able to support our users properly? There are
in fact a number of ways:
- NVidia’s engineers could be more approachable to us.
- Nvidia’s engineers could pay more attention to the world outside their forums and
actively engage with relevant developers to solve problems
- We could recommend hardware from other vendors. Less nvidia cards around make for
a smaller group of people running into those problems. Voting with your purse makes yourself
a happier user and might, maybe, in the far-away future have people over at Nvidia read the
writing on the wall.
As a Free Software developer, user and advocate, I feel screwed by NVidia, and as a customer,
even more so. I would recommend not buying NVidia hardware at this point. For both political
reasons, and for practical ones: Pretty much all other graphics cards around there work better
with KDE4 than those requiring nvidia.ko.