{"id":1242,"date":"2008-06-25T18:05:47","date_gmt":"2008-06-25T16:05:47","guid":{"rendered":"http:\/\/vizZzion.org\/blog\/2008\/06\/how-nvidia-impedes-free-desktop-adoption\/"},"modified":"2008-06-25T18:05:47","modified_gmt":"2008-06-25T16:05:47","slug":"how-nvidia-impedes-free-desktop-adoption","status":"publish","type":"post","link":"https:\/\/vizZzion.org\/blog\/2008\/06\/how-nvidia-impedes-free-desktop-adoption\/","title":{"rendered":"How NVidia impedes Free Desktop adoption."},"content":{"rendered":"<p>There has been quite some discussion about Free and closed drivers and documentation<br \/>\nof hardware lately. <a href=\"http:\/\/www.linuxfoundation.org\/en\/Kernel_Driver_Statement\">Kernel<br \/>\ndevelopers demand<\/a> open drivers, docs and development<br \/>\nprocesses, NVidia <a href=\"http:\/\/blogs.zdnet.com\/open-source\/?p=2588\">refuses<\/a> to open<br \/>\ntheir drivers, arguing that the technical quality<br \/>\nis not a problem, and that the driver contains intellectual property they wish<br \/>\nto protect. Now ATI\/AMD has shown that the intellectual property argument is at least not<br \/>\nuniversally applicable to graphics hardware vendors. Let&#8217;s also clear up a misconception about<br \/>\nthe technical quality of nvidia.ko: <strong>The NVidia driver is the single component in a KDE4 \/<br \/>\nFree Operating system stack causing us most of the hard-to-solve problems. In other<br \/>\nwords, nvidia.ko has grave technical shortcomings.<\/strong><\/p>\n<p \/>\nThe most considerate article in my opinion is James Bottomley&#8217;s essay on<br \/>\n<a href=\"https:\/\/www.linuxfoundation.org\/en\/Linux_Graphics_Essay\">&#8220;Linux Graphics, an essay about<br \/>\nthree drivers&#8221;<\/a>. James puts NVidia&#8217;s position into the context of Free Software developers<br \/>\nand Linux kernel developers more specifically. I&#8217;d like to reiterate some of his points and<br \/>\nprovide additional insight into how this looks like from the point of view of a KDE developer.<br \/>\nWith NVidia just confirming that they won&#8217;t open up their process, this sadly appears necessary.<br \/>\nLet me start with some problems of NVidia&#8217;s closed driver model:<\/p>\n<ul>\n<li>With an unclear licensing situation of those blobs, most distributors don&#8217;t dare<br \/>\n    shipping nvidia.ko in their default install, spoiling the out of the box user experience<br \/>\n    that Linux is able to deliver otherwise.<\/li>\n<li>Performance and stability problems as we see them with KDE4 (and apparently<br \/>\n    Cairo-based rendering as well) spoil the user experience even more (see below).<\/li>\n<li>Triaging bugs caused by those issues is hard to do and takes a lot of our precious time.<br \/>\n    Even worse, NVidia doesn&#8217;t seem to have the process in place to listen to those reports.<br \/>\n    nvforums seems to be the only way to reach NVidia people, it&#8217;s hard to tell where to go<br \/>\n    with specific questions or technical issues. As a result, interchange between Free Software<br \/>\n    people and NVidia engineers leaves much to be desired<\/li>\n<li>Users suffering from those problems will likely just blame Linux and try to not burn<br \/>\n    their fingers on Free Desktop systems anymore, let alone recommend it to others.<\/li>\n<li>Not being able to help users with their problems caused by nvidia.ko is very<br \/>\n    frustrating, both for users who end up with a screwed system and developers not being able to<br \/>\n    help those users and still getting all the bad press.<\/li>\n<\/ul>\n<p>Let&#8217;s not forget to pin down at least some of the technical problems as detailed as possible.<br \/>\nTwo of the most annoying problems I am myself able to reproduce:<\/p>\n<ul>\n<li><a href=\"http:\/\/lists.kde.org\/?l=kde-core-devel&#038;m=121224059101922&#038;w=2\">Temporary screen<br \/>\n    lockups<\/a>. Suffering from this myself, I&#8217;ve done some research on the web. There were<br \/>\n    suggestions around that NVidia locks the system for some seconds when switching between<br \/>\n    powerstates. Disabling powermanagement through a kernel module parameter should have done the<br \/>\n    trick, it didn&#8217;t do it here. Besides that, I would not feel comfortable with that, having a<br \/>\n    passively cooled video card and at least trying to not burn too much energy these days. Global<br \/>\n    climate change and local one (it&#8217;s already quite hot in this room) getting in the way.<\/li>\n<li><a href=\"http:\/\/bugs.kde.org\/show_bug.cgi?id=160467\">Bad windows resizing performance<\/a>.<br \/>\n    Resizing a transparent konsole window takes approximately 5 seconds here. It&#8217;s slightly better<br \/>\n    with a non-transparent mode (and other applications), but still far worse than on my ATI card,<br \/>\n    and also far worse than in KDE3. Switching virtual desktops here (composited or not) takes<br \/>\n    some seconds, just enough to break my flow of working.<\/li>\n<\/ul>\n<p>(I&#8217;ve run into those problems with various different kernels, tried Ubuntu&#8217;s last couple of<br \/>\nrelease, same problems on OpenSuse). Currently, I&#8217;m now using the 177.13 driver, but I had the same<br \/>\nproblems with older versions as well. According to some, a lot of those problems have<br \/>\nto do with the fact that NVidia drivers do not make use of the existing infrastructure in X<br \/>\n(XRender, XAA, EXA) and Qt uses those quite heavily, if available (Qt4 much more than Qt3<br \/>\napparently). Now imagine someone wanted to merge a driver upstream which works around those<br \/>\nacceleration infrastructures. No way upstream developers accept it, and rightfully so. Why?<br \/>\nWell, check out the above list of problems. The conclusion here would be that NVidia not only doesn&#8217;t<br \/>\nplay by the rule of the game regarding licenses (it&#8217;s still highly doubtful if nvidia.ko<br \/>\nhas legal problems), or by the development process (no docs, no sources), they also just<br \/>\nwrite technically bad code (lacking support for those acceleration techniques, kernel oops<br \/>\nstatistics from James&#8217; essay).<\/p>\n<p \/>\n<p>Reading comments of users over the Internet, there seem to be two patterns in the responses:<\/p>\n<ul>\n<li>&#8220;<em>My system works, so I don&#8217;t understand those complaining about their Freedom. It&#8217;s<br \/>\n    more important that it works than that it&#8217;s free.<\/em>&#8220;<\/li>\n<li>&#8220;<em>It doesn&#8217;t work, Linux sucks, I&#8217;ll stick with Windows.<\/em>&#8220;<\/li>\n<\/ul>\n<p>Both reactions show the problem from a very individual point of view &#8212; which is fair enough.<br \/>\nHowever, both opinions do not take into account the problems we, as Free Desktop developers<br \/>\nrun into. We have to waste a lot of time and end up frustrated because we&#8217;re not able to<br \/>\nsupport our product as good as we would like to.<\/p>\n<p \/>\nI can only guess about the reasons behind NVidia still being bone-headed as they are and<br \/>\nnot moving a bit. James brings up that they simply do not have the resources to support their<br \/>\nproduct properly in a Free Software ecosystem. That seems the most logical explanation to me.<br \/>\nNow resources in a company like NVidia have a lot to do with priorities, in turn, those<br \/>\npriorities are often<br \/>\na function of market share. In this light, we end up with a self-fulfilling prophecy. Market<br \/>\nshare is kept low by Nvidia&#8217;s poor support for the Free Desktop, which in turn makes them<br \/>\nkeep resources low for supporting those systems.<\/p>\n<p \/>\nSo how can we solve this problem of not being able to support our users properly? There are<br \/>\nin fact a number of ways:<\/p>\n<ul>\n<li>NVidia&#8217;s engineers could be more approachable to us.<\/li>\n<li>Nvidia&#8217;s engineers could pay more attention to the world outside their forums and<br \/>\n    actively engage with relevant developers to solve problems<\/li>\n<li>We could recommend hardware from other vendors. Less nvidia cards around make for<br \/>\n    a smaller group of people running into those problems. Voting with your purse makes yourself<br \/>\n    a happier user and might, maybe, in the far-away future have people over at Nvidia read the<br \/>\n    writing on the wall.<\/li>\n<\/ul>\n<p \/>\nAs a Free Software developer, user and advocate, I feel screwed by NVidia, and as a customer,<br \/>\neven more so. I would recommend not buying NVidia hardware at this point. For both political<br \/>\nreasons, and for practical ones: Pretty much all other graphics cards around there work better<br \/>\nwith KDE4 than those requiring nvidia.ko.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&hellip; <a class=\"more-link\" href=\"https:\/\/vizZzion.org\/blog\/2008\/06\/how-nvidia-impedes-free-desktop-adoption\/\">Continue reading <span class=\"screen-reader-text\">How NVidia impedes Free Desktop adoption.<\/span> <span class=\"meta-nav\" aria-hidden=\"true\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-1242","post","type-post","status-publish","format-standard","hentry","category-kde"],"_links":{"self":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts\/1242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/comments?post=1242"}],"version-history":[{"count":0,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/posts\/1242\/revisions"}],"wp:attachment":[{"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/media?parent=1242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/categories?post=1242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vizZzion.org\/blog\/wp-json\/wp\/v2\/tags?post=1242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}