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. Linux 4.2 Bringing Support For ARCv2, HS38 CPU Cores
  2. Libdrm 2.4.62 Is An Important Update For Open-Source GPU Drivers
  3. The State of Unity 3D Game Engine, Editor On Linux
  4. ZFS On Linux 0.6.4.2 Brings Linux 4.1 Support, Fixes
  5. Old Net Burst Tests, Ubuntu Phone & Assembly x86 Were Popular Topics Last Month
  6. Qt 5.5 Officially Released
  7. Global Shortcuts In KDE Plasma Under Wayland
  8. LLVMpipe FP64 Support Knocks Off Some GL4 Extensions
  9. Dell Gets An Airplane Mode Switch Driver In Linux 4.2
  10. I Gave Up Waiting On The Water-Cooled Radeon R9 Fury X
Latest Articles & Reviews
  1. How KDE VDG Is Trying To Make Open-Source Software Beautiful
  2. Attempting To Try Out BCache On The Linux 4.1 Kernel
  3. CompuLab's Fitlet Is A Very Tiny, Fanless, Linux PC With AMD A10 Micro
  4. AMD A10-7870K Godavari: RadeonSI Gallium3D vs. Catalyst Linux Drivers
Most Viewed News This Week
  1. Kubuntu 15.10 Could Be The End Of The Road
  2. NVIDIA Starts Supplying Open-Source Hardware Reference Headers
  3. KDBUS Won't Be Pushed Until The Linux 4.3 Kernel
  4. The Staging Pull For Linux 4.2: "Big, Really Big"
  5. The State & Complications Of Porting The Unity Editor To Linux
  6. Latest Rumor Pegs Microsoft Wanting To Buy AMD
  7. SteamOS "Brewmaster" Is Valve's New Debian 8.1 Based Version
  8. Jonathan Riddell Steps Down From The Kubuntu Council