Interview: Andy Ritger, Nvidia


Proprietary graphics drivers - binary blight or necessary evil? Chris Thornett interviews Andy Ritger, the guardian of Nvidia’s Linux Graphics Driver.

Linux Format: What are the challenges of supplying Linux drivers for your graphics cards?

Andy Ritger: On Linux, we stress the system in ways that very few others do. This can expose latent bugs in the kernel or elsewhere. But overall, Linux is a great, flexible, development platform.

One specific challenge stems from distribution model; because we leverage our graphics driver code base across many different operating systems, we maintain our driver code base out-of-tree relative to the Linux kernel. Even setting aside licensing, this has some pros and cons:

  1. Our driver code base runs across a wide spectrum of Linux distributions … though it is inconsistent with the Linux model of deploying new hardware support through upgrading your kernel.

  2. We [also] have to make conscious decisions about what kernel features we use, and whether those features are available everywhere our customers expect them to be.

  3. Our driver is out of tree and our user-space components are deployed in lock-step with our kernel components, so we have flexibility to revise the interface between our driver components more easily.

LXF: Are there any developments in recent years that have made supporting Linux more viable?

AR: It isn’t so much about developments in technologies that makes supporting Linux more practical, it’s more about the increased market interest in Linux that has unlocked some chicken-and-egg logjams; improvements for Nvidia OpenGL developer tools and added bandwidth in driver engineers for driver development are enabled by increased market demand.

Linux for gaming is growing, and quickly … Most recently, we have been working closely with Valve on the SteamOS – our engineers combined have focused efforts on improving driver performance for OpenGL; optimising performance on Nvidia GPUs, porting Valve’s content library to SteamOS; and tuning SteamOS to lower latency, or lag, between the controller and onscreen action.

LXF: Would you say you’ve increased your Linux support in recent years?

AR: Over the past couple of years, we have worked diligently towards giving our GeForce customers the best possible Linux-based PC gaming experience, and we believe that the world’s biggest open-source operating system has enormous potential. Some specific examples of our recent support includes:

  • Multi-threaded performance optimisations within the OpenGL driver. With these optimisations, we have seen some amazing results of up to a 2x increase in some games.

  • Per-application configurability, so that we can do more application-specific tuning, where appropriate.

  • OpenGL extensions to aid in migrating Direct3D applications to OpenGL. Some examples: GL_ARB_provoking_vertex and GL_ARB_fragment_coord_conventions.

  • Leverage of the OpenGL driver code base for Nvidia GPUs across Windows, OSX, and Linux. As a result, a lot of general consumer graphics performance tuning is already done in the Nvidia Linux OpenGL driver.

  • As the Linux desktop ecosystem evolves and EGL/GLES becomes a standard part of the runtime environment, it becomes simpler to port iOS/Android applications to desktop Linux. We provide GLES compatibility profiles through our OpenGL driver today, and EGL support is enabled in our 331.xx driver release series.

  • Support for OpenGL 4.4

  • HDMI 4K support

We’re also working to define a new Linux OpenGL ABI that will make it easier for OpenGL vendors to install their driver without colliding with other installations on the system.

Note: Ritger offers a good explanation of this at XDC2013

We’re also very active in the Khronos EGL working group, helping drive EGL to be something really compelling on desktop Linux systems. [Note: EGL aims to create an official cross-platform standard to either replace or abstract around the different windowing APIs, such as WGL in Windows, GLX on Linux and Apple’s Core GL.]

LXF: Can you imagine a time where you could release drivers that can be modified by the community?

AR: Nothing is impossible, but I think a more realistic path is for us to enable the nouveau development community to continue to improve the nouveau driver for Nvidia GPUs. We’ve started taking baby-steps in that direction, but are working towards being able to provide more meaningful assistance to Nouveau over time.

LXF: How do you view open source drivers?

AR: Our drivers have IP in them that we do not wish to share. We will continue to develop our own Linux drivers, with a quality that is unrivalled.

However, there is a place for both Nouveau and Nvidia’s proprietary driver: Nouveau for an out-of-the-box experience when an Nvidia customer installs a new Linux OS [and] Nvidia’s proprietary driver provides Nvidia customers with the best possible performance and feature set from our leveraged cross-platform driver code. base.

You should follow us on or Twitter

Your comments

Username:   Password: