Graphics hardware and FOSS: Wikis


Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.


From Wikipedia, the free encyclopedia

Free and open source software (FOSS) can be used with a variety of graphics hardware, largely via the X.Org project. There are varying levels of support, ranging from completely working drivers to unsupported hardware. Some manufacturers do not provide open source drivers or technical documentation suitable for independent developers to write accelerated 3D device drivers; support for products from these companies can be limited: they may provide only binary drivers (known as binary blobs) or lack of documentation may leave developers of open source drivers to reverse engineer their products or not support them at all. In the case of binary drivers there are also objections due to free software philosophy, software quality and security concerns.[1]

There is little information on performance of graphics hardware with FOSS drivers. A widely-known source is the site,[2] which collects 3D performance information—specifically glxgears frame rates—submitted by users. On the basis of what it concedes is an inadequate benchmark,[3] the site currently lists ATI's Radeon X800/X850 as recommended for "best 3D performance." Additionally, Phoronix published in early 2008 a benchmark suite which also includes graphics benchmarks using 3D games.


Free software support

In general, the vesa driver supports most graphics cards without acceleration and with reduced display resolution.


The radeon,[4] r128 and atimisc drivers provide 2D and partially 3D acceleration. 2D and Xv acceleration is supported for all chipsets. 3D support exists up to the r7xx GPU family and RS6xx chipsets – that is, from the original Radeon through to the RV690. r6xx/r7xx 3D support is new and not yet available in mainstream GNU/Linux distributions, R600/R700 support currently requires linux-2.6.32 kernel and xf86-video-ati/libdrm/mesa from xorg git.

The radeonhd driver[5] written by Novell, sponsored by ATI,[6] supports r5xx and newer chipsets. 3D support exists for the R5xx and RS6xx families only, although R6xx/7xx 3D support is in development. Note that the radeon and radeonhd drivers use the same drm and mesa (3D) drivers, so 3D support for 6xx/7xx will be similar for both. The development concerning 3D support is expected to be slow.[7] In October 2008, radeonhd was controversially excluded from the X.Org build system.[8]

Feature matrices are available for radeon and radeonhd.

ATI released programming specifications for a number of chipsets and features in 2007, 2008 and 2009.[9][10][11][12][13]

In June 2007, the X.Org developers announced initial support for the AMD R500 graphics card through the avivo driver created by reverse-engineering.[14] With the appearance of the radeonhd driver, this driver was discontinued.[15]


Intel has a long history of producing or commissioning open source drivers for its graphics chips with the notable exception of their latest GMA 500 chip that severely lacks documentation. The driver development is outsourced to Tungsten Graphics. There are currently two versions of the Intel X.Org driver.

The xorg-video-i810 driver supports the i810 and a number of more recent chipsets.[16]

The updated xorg-video-intel driver supports the same hardware, with the recent versions 2.0 and 2.1 adding support for later chips, including the G33, Q33 and Q35.[17] In addition, the xorg-video-intel driver (sometimes known as the "modesetting driver") does not use the video BIOS for switching video modes; as some BIOSes include only a limited range of modes, this provides more reliable access to those supported by Intel video cards.


Matrox provides open source drivers for their chipsets older than the G550; newer chipsets are only supported by a closed source driver.


NVIDIA used to provide documentation for the older RIVA TNT series chipsets and maintains the open source (but partially obfuscated) 2D-only nv driver for X.Org.[18] However, this features neither 3D acceleration nor motion compensation.[19][20]

The nouveau driver project aims to reverse engineer NVIDIA's cards to produce 3D acceleration for X.Org. While still at an early stage of development, the Fedora 11 distribution of Linux has chosen to use Nouveau as the default open-source driver for Nvidia cards.[21][22]


SiS and VIA have both shown limited interest and communication regarding open source drivers; however, both have released source code which has later been integrated into X.Org by FOSS developers.[19] In July 2008, VIA opened up documentation for their products to improve its image within the Linux and open-source communities.[23] Although, so far VIA has failed to work with the open source community to provide documentation and a working DRM driver, leaving expectations for supporting the Linux operating system unfulfilled.[24]


DisplayLink have announced an open source project called libdlo with the goal of bringing support for their USB graphics technology to Linux and other platforms. The code is available under the LGPL license.[25] It has not yet been integrated into an X.Org driver.

Problems with binary drivers

There are a number of objections to binary-only drivers. These may be philosophical, with some feeling that drivers distributed without source code are against the beliefs of the free software movement, or pragmatic copyright, security or reliability concerns. As part of a wider campaign against binary blobs, OpenBSD lead developer Theo de Raadt has pointed out that with a binary driver there is "no way to fix it when it breaks (and it will break)" and that once a product which relies on binary drivers is declared to be end-of-life by the manufacturer, it is effectively "broken."[26] The project has also asserted that binary drivers "hide bugs and workarounds for bugs,"[27] a comment that has been somewhat vindicated by flaws found in binary drivers, including in October 2006 an exploitable bug in NVIDIA's 3D drivers discovered by Rapid7.[28] It is speculated that this bug has existed since 2004, although NVIDIA have denied this, asserting that the issue was only communicated to them in July 2006 and that the 2004 bug was a bug in X.Org, not in NVIDIA's driver.[29] Another problem with binary drivers is that they often don't work with current versions of Open Source software, and almost never support development snapshots of Open Source software - e.g. it is usually not directly possible for a developer to use NVIDIA's or ATI's proprietary drivers with a development snapshot of an X server or a development snapshot of the Linux kernel.

In the Linux kernel development community, Linus Torvalds has made strong statements on the issue of binary-only modules, asserting: "I refuse to even consider tying my hands over some binary-only module", and continuing: "I want people to know that when they use binary-only modules, it's THEIR problem".[30] Another kernel developer, Greg Kroah-Hartman, has commented that a binary-only kernel module does not comply with the kernel's license—the GNU General Public License—it "just violates the GPL due to fun things like derivative works and linking and other stuff."[31]

Writer and computer scientist Peter Gutmann has expressed concerns that the Digital Rights Management scheme in Microsoft's Windows Vista operating system may limit the availability of the documentation required to write open drivers as it "requires that the operational details of the device be kept confidential."[32]

Open hardware projects

Project VGA assembled PCB

The Project VGA aims to create a low budget, open source, VGA compatible video card. All information to create one is available. But at present there seems to be no development. Some data:[33]

  • PCI bus interface (32 bit, 33/66 MHz, 3,3/5V compatible)
  • Xilinx Spartan-3 S400 FPGA (aiming for ~100 MHz)
  • 16 MB SDRAM (aiming for ~166 MHz)
  • Onboard programmer with USB interface
  • Analog (HD15) VGA output connector.

The Open Graphics Project is another aim at creating an open hardware GPU. The project has achieved VGA emulation as of April 2009 with their Open Graphics Device v1 (OGDv1) open hardware prototyping platform.[34]

See also


  1. ^ Linux Weekly News, Aug 14, 2006:, distributors, and proprietary modules
  2. ^ "3D Graphics hardware performance using Free Software drivers (X.Org DRI) [Free3D"].   090501
  3. ^ FAQ: "Is glxgears an accurate measure of 3D performance? No, it sucks in multiple ways."
  4. ^ radeon page in the wiki
  5. ^ radeonhd page in the wiki
  6. ^ Michael Larabel. Radeon vs. RadeonHD Drivers In H1'08
  7. ^ Michael Larabel. No Stable RadeonHD 2D Driver This Year
  8. ^ Michael Larabel. Radeon vs. RadeonHD Fighting Continues
  9. ^ Michael Larabel. "AMD Releases Open-Source R600/700 3D Code". Retrieved 2009-01-01.  
  10. ^ "LWN: AMD to open up graphics specs". Retrieved 2007-09-05.  
  11. ^ Michael Larabel. AMD: GPU Specifications Without NDAs!
  12. ^ David Airlie (2007-09-12). "AMD hand me specs on a CD". Retrieved 2007-09-14.  
  13. ^ Michael Larabel (2008-02-22). "AMD Releases 3D Programming Documentation". Retrieved 2008-03-12.  
  14. ^ Jerome Glisse. "X.Org mailing list: R500 initial driver release announcement". Retrieved 2008-12-16.  
  15. ^ Michael Larabel. The Death Of The R500 Avivo Driver
  16. ^ "i810 man page". Retrieved 2007-02-14.  
  17. ^ Eric Anholt. "X.Org mailing list: xf86-video-intel 2.1.0". Retrieved 2007-07-09.  
  18. ^ nv driver page
  19. ^ a b David M. Airlie (2006-07-19). "Open Source Graphic Drivers—They Don't Kill Kittens" (PDF). Proceedings of the Linux Symposium Volume One. Ottawa, Canada. Retrieved 2007-01-28.  
  20. ^ The nv(4) man page
  21. ^ "Testing Out The Nouveau Driver On Fedora 11".  
  22. ^ nouveau : Open Source 3D acceleration for NVIDIA cards
  23. ^ Larabel, Michael (2008-07-26). "VIA Publishes Three Programming Guides". Phoronix. Retrieved 2008-08-04.  
  24. ^ Larabel, Michael (2009-11-21). "VIA's Linux TODO List... Maybe Look Forward To 2011?". Phoronix. Retrieved 2009-12-30.  
  25. ^ DisplayLink (2009-05-15). "DisplayLink Releases Linux Source Code for its USB Graphics Processors". Press release. Retrieved 2009-05-15.  
  26. ^ Theo de Raadt (2006-12-03). "Open Documentation for Hardware". Presentation slides from OpenCON 2006. Retrieved 2007-02-01.  
  27. ^ "3.9: "Blob!"". OpenBSD. Retrieved 2007-02-12.  
  28. ^ Rapid7 advisory: Buffer Overflow in NVIDIA Binary Graphics Driver For Linux.
  29. ^ Linux - How does the Rapid7 Advisory R7-0025 affect the NVIDIA Unix driver?
  30. ^ Linus Torvalds, kernel mailing list, Feb 7, 1999.
  31. ^ Myths, Lies, and Truths about the Linux kernel by Greg Kroah-Hartman
  32. ^ Peter Gutmann (2006-12-26). A Cost Analysis of Windows Vista Content Protection. Retrieved 2007-01-28.  
  33. ^ "Home of Project VGA, the Low budget, Open source, VGA Compatible video card".   090503
  34. ^ Miller, Timothy (2009-04-21). "VGA emulation is working!". Announcements and News. Open Graphics Project. Retrieved 2009-06-16.  

External links

Got something to say? Make a comment.
Your name
Your email address