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 Articles & Reviews
  1. Radeon Linux Benchmarks: Catalyst 15.3 Beta vs. Linux 4.0 + Mesa 10.6-devel
  2. Trying Out The Modern Linux Desktops With 4 Monitors + AMD/NVIDIA Graphics
  3. Turning A Basement Into A Big Linux Server Room
  4. NVIDIA's $1000+ GeForce GTX TITAN X Delivers Maximum Linux Performance
  5. OS X 10.10 vs. Ubuntu 15.04 vs. Fedora 21 Tests: Linux Sweeps The Board
  6. The New Place Where Linux Code Is Constantly Being Benchmarked
Latest Linux News
  1. Debian 8.0 Jessie Gets A Release Date
  2. Firefox 37 Coming Today With Heartbeat, HTTPS Bing
  3. OpenIndiana 2015.03 Updates Its Solaris/Illumos Environment
  4. GNOME 3.16 SDK Runtime Now Available
  5. Initial Intel Braxton Support Might Come To Linux 4.1
  6. Why KDE's KWin Doesn't Integrate Weston/QtCompositor For Wayland Support
  7. Clang Now Supports Targeting The NaCl OS
  8. PC-BSD Updates Its Lumina Desktop (v0.8.3)
  9. Fedora 22 Alpha Now Available For AArch64 & PowerPC64
  10. Systemd Developers Did NOT Fork The Linux Kernel
Most Viewed News This Week
  1. The Big Features Of The Linux 4.0 Kernel
  2. Improved OpenCL Support For Blender's Cycles Renderer
  3. Open-Source Driver Fans Will Love NVIDIA's New OpenGL Demo
  4. Allwinner Continues Jerking Around The Open-Source Community
  5. GNOME 3.16 Released: It's Their Best Release Yet
  6. Ubuntu 15.04 Final Beta Released
  7. Nuclide: Facebook's New Unified IDE
  8. LibreOffice Online: A Cloud Version Of LibreOffice