1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

NVIDIA Developer Talks Openly About Linux Support

Michael Larabel

Published on 20 October 2009
Written by Michael Larabel
Page 2 of 8 - 131 Comments

Q: Is development work done mostly on x86 or x86_64 systems?

It is a mix, based on personal preference. Probably most NVIDIA Linux driver developers use x86 for their development platform. However, we try to focus many of our test machines on x86_64, since that is what most of our OEM customers run.

Q: What applications, tools, and games do the developers use for testing regressions and speed?

For OpenGL, we have an extensive internal test suite that exercises OpenGL rendering paths well. This suite is enhanced by OpenGL driver engineers when new OpenGL extensions are implemented, or when a driver bug is reported that was not previously caught by the test suite. We also run the OpenGL conformance test.

We also use OpenGL applications like Maya, Viewperf, Unigine Tropics, ETQW, Doom 3, and of course the venerable Quake 3. We have various internal targeted test applications for exercising OpenGL Quad-buffered stereo and workstation overlays. We also use Compiz, of course.

And yes, we sometimes use glxgears as a quick sanity check.

For X rendering, we use rendercheck, a subset of xtest, jxrendermark, and a handful of ad-hoc tests written to target whatever driver paths we're currently working on.

Q: How has the managerial view of Linux changed within NVIDIA over the past few years?

I think Linux is as strong as ever in the workstation markets where the NVIDIA Linux team has been primarily focused. I think our Linux driver has been a vehicle for a lot of other new NVIDIA technologies such as CUDA and our virtualization efforts [3]) and Linux on Ion caught a lot of attention.

Internally, the NVIDIA Linux driver team has grown and matured and made many significant contributions to NVIDIA's core code base.

As manager of the NVIDIA Linux Graphics Driver team over the past several years, there is a lot more I'd like us to do, but I'm intensely proud of the team and all that we've accomplished so far.

Q: About what percentage of the driver's code-base is shared between Linux and Windows platforms?

I'd estimate greater than 90% of the Linux driver is cross-platform code. The NVIDIA GPU software development team has made a very conscious effort to architect our driver code base to be cross-platform (for the relevant components). We try to abstract anything that needs to be operating system specific into thin interface layers.

Some examples:

The NVIDIA kernel module is nearly all cross-platform code; the majority of the same code for this component runs on Windows XP, Windows Vista, Windows Win7, MacOSX, Solaris, FreeBSD, and Linux. In fact, the exact same nv-kernel.o binary file can be used on all three of Solaris, FreeBSD, and Linux. The only bits that are Linux-specific are provided as source code in the kernel interface layer of the NVIDIA kernel module.

The NVIDIA OpenGL driver is mostly cross-platform; the only bits that are not cross-platform are abstracted into the window system layer (e.g., GLX, WGL).

The NVIDIA X driver is more UNIX-specific. It shares some code with the NVIDIA display drivers for other operating systems, but due to differences in window systems, it doesn't make sense to share a lot more code here.

The VDPAU driver leverages a lot of the low-level video decoding algorithms from the Windows video driver.

We couldn't provide the Linux product that we do if we didn't leverage so much common cross-platform driver code.

Q: How many people work on the Linux driver at NVIDIA? If you're not able to give out an exact number, what is the relationship between the Windows and Linux driver team sizes?

NVIDIA GPU software is organized with teams focused on developing the core cross-platform driver code base, teams focused on adding new GPU support to the core driver code base, and "solutions teams" focused on leveraging much of that core code and driving it in different markets (e.g., Notebook, Apple, etc). The NVIDIA Linux Graphics Driver Team is one of these solutions teams. With that structure of core, chips, and solutions, it isn't straightforward to compare sizes of the "Linux team" to the "Windows team".

Latest Linux Hardware Reviews
  1. Even With Re-Clocking, Nouveau Remains Behind NVIDIA's Proprietary Linux Driver
  2. The Power Consumption & Efficiency Of Open-Source GPU Drivers
  3. AMD R600g/RadeonSI Performance On Linux 3.16 With Mesa 10.3-devel
  4. Intel Pentium G3258 On Linux
Latest Linux Articles
  1. AMD Catalyst 14.6 Does Slightly Better With APITest OpenGL Tests
  2. Updated Source Engine Benchmarks On The Latest AMD/NVIDIA Linux Drivers
  3. Nouveau vs. Radeon vs. Intel Tests On Linux 3.16, Mesa 10.3-devel
  4. KVM Benchmarks On Ubuntu 14.10
Latest Linux News
  1. SteamOS Beta 126 Better Handles XBMC
  2. Ubuntu 14.10 Alpha 2 Released
  3. KDE 4.14 Release Candidate Ships
  4. Drivers & Drama Dominated Linux Talk In July
  5. Fedora Assembles A Security Team
  6. AMD Launches The A10-7800, The 65 Watt Kaveri
  7. Builder: A New Development IDE Being Built For GNOME
  8. GDB 7.8 Betters Python Scripting, Adds Guile Support
  9. GNOME's GTK+ Is Still Striving For A Scene Graph, Canvas API
  10. Unreal Tournament Looks Great For Team Deathmatch
Latest Forum Discussions
  1. Grand Theft Auto Running On Direct3D Natively On Linux Shows Gallium3D Potential
  2. Updated and Optimized Ubuntu Free Graphics Drivers
  3. Linus Torvalds On GCC 4.9: Pure & Utter Crap
  4. Updated graphics drivers for Ubuntu 12.04 Precise LTS
  5. Debian + radeonsi
  6. AMD Publishes Open-Source Linux HSA Kernel Driver
  7. Open-source drivers on ATI R7 260X
  8. AMD Athlon 5350 APU On Linux