In late August we started asking our readers for any questions they had for NVIDIA about Linux and this graphics company's support of open-source operating systems. Twelve pages worth of questions were accumulated and we finally have the answers to a majority of them. NVIDIA's Andy Ritger, who leads the user-space side of the NVIDIA UNIX Graphics Driver team for workstation, desktop, and notebook GPUs, answered these questions. With that said, there are some great, in-depth technical answers and not the usual marketing speak found in many interviews. While Linux is our focus, Andy's team and his answers for the most part apply equally to NVIDIA drivers on Solaris and FreeBSD platforms too. There are many questions that range from the status of new features in their proprietary graphics driver to why it is unlikely there will be any official open-source support from NVIDIA to download percentages of their Linux driver.
Some of the particularly interesting answers include how the managerial view of Linux at NVIDIA has changed over the years, how greater than 90% of the driver's source code is shared between Windows and UNIX platforms, the actual percentage of the Linux driver downloads from the NVIDIA web-site, how an open-source strategy similar to that of AMD's may be technically possible at NVIDIA but is very unlikely, whether gaming on Linux will become viable for commercial game publishers, how the Nouveau developers are doing "a really incredible job so far", what's coming in the next twelve months to their Linux driver, motives behind creating VDPAU, and the biggest challenges with distributing a proprietary Linux driver. Among the "not yet here" features talked about include RandR 1.2, kernel mode-setting, ESA, GPU-accelerated PhysX support, revamping the NVIDIA Linux installer, and PerfKit/PerfHUD.
Many thanks go out to Andy Ritger for taking the time to answer these questions as well as to NVIDIA's Technical Marketing Manager, Sean Kilbride, for supporting this Q&A. On this page and the following pages are Andy's answers, listed in no particular order.
Q: How does the driver team ascribe priority to what will be developed in each release?
Priority is determined through a combination of:
a) OEM customer-reported issues,
b) Input from our workstation marketing group,
c) New GPUs scheduled to be released, and
d) Hot issues as reported by NVIDIA Linux users through direct user feedback and via various Linux user forums.
Q: What code management does NVIDIA use and are team members allowed to keep private branches in order to target specific issues (like new kernel or X.Org support)?
We use Perforce for source control. Large new features are generally implemented in development branches, and then that code is promoted to our main line of code once it passes an internal quality bar. Release branches are then created off the main line of code.
For miscellaneous hacking or experimentation, we'll generally use private branches in Perforce. Occasionally, individual engineers might track private changes using quilt or git before submitting their changes to Perforce.
Q: Which text editors or IDEs do NVIDIA Linux developers use?
Most of the engineers on the Linux driver team use emacs and/or vim for their day-to-day development work.