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 Benchmarking Platform
Phoromatic Test Orchestration

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 News
  1. Yet Another OpenGL 4.5 Extension Is Nearing Completion In Mesa
  2. Xfce's Power Manager Is Finally Ported To GTK3
  3. The CompuLab Fitlet Is A Neat Little Linux PC With AMD SoC
  4. AMD & Others Are Working On The LLVM SPIR-V Converter
  5. Linux 4.1-rc5 Kernel Released
  6. Mesa 10.5.6 Brings Fixes All Over The Place
  7. NVIDIA's Proprietary Driver Is Moving Closer With Kernel Mode-Setting
  8. The Latest Linux Kernel Git Code Fixes The EXT4 RAID0 Corruption Problem
  9. Features Added To Mesa 10.6 For Open-Source GPU Drivers
  10. Ubuntu's LXD vs. KVM For The Linux Cloud
Latest Articles & Reviews
  1. Opening The Gates To Our Daily Open-Source Linux Benchmark Results
  2. The Latest Features For Linux Performance Management + Benchmark Monitoring
  3. Noctua NH-U12DX i4 + NF-F12
  4. Btrfs RAID 0/1 Benchmarks On The Linux 4.1 Kernel
Most Viewed News This Week
  1. The Linux 4.0 Kernel Currently Has An EXT4 Corruption Issue
  2. The Linux 4.0 EXT4 RAID Corruption Bug Has Been Uncovered
  3. Microsoft Open-Sources The Windows Communication Foundation
  4. NVIDIA's Proprietary Driver Is Moving Closer With Kernel Mode-Setting
  5. Systemd 220 Has Finally Been Released
  6. Another HTTPS Vulnerability Rattles The Internet
  7. LibreOffice 5.0 Beta 1 Released
  8. LibreOffice 5.0 Open-Source Office Suite Has Been Branched