Graphics hardware and FOSS
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 (knows as binary blobs) or lack of documentation may force developers of open source drivers to reverse engineer their products. 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 free3d.org 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.
Contents |
[edit] Manufacturer support
- ATI/AMD: X.Org fully supports the Radeon R100 and Radeon R200 cards. Radeon R300 cards are supported by a new reverse engineered driver under development.[4] In June 2007, the X.Org developers announced initial support for the AMD R500 graphics card. The work was done independently by reverse-engineering.[5] In September 2007, an AMD representative said the company will make specifications and a skeleton reference driver available for the R500 and later devices; a free software 2D driver is expected by the end of the year.[6] On 2007-09-12, two initial interface documents about AMD's 2D hardware were released and are available from the X.Org website.[7] On 2008-02-22, documentation on the R300 through R500 series 3D hardware was released.[8]
- Intel has a long history of producing or commissioning open source drivers for its graphics chips. The driver development is outsourced to Tungsten Graphics. There are currently two versions of the Intel X.Org driver: xorg-video-i810 and xorg-video-intel. The xorg-video-i810 driver supports the i810 and a number of more recent chipsets;[9] 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.[10] 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 supports the open source (but obfuscated) 2D-only "nv" driver for X.Org. However, this features neither 3D acceleration nor motion compensation due to the lack of hardware documentation.[11][12] The nouveau project aims to reverse engineer NVIDIA's cards to produce 3D acceleration for X.Org, but is still at an early stage of development.[13] It is included in Fedora 7.[14]
- 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.[11]
[edit] 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 end-of-lifed by the manufacturer, it is effectively "broken."[15] The project has also asserted that binary drivers "hide bugs and workarounds for bugs,"[16] 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.[17] 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.[18] 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 possible for a developer to use NVIDIA's or ATI's proprietary drivers with a development snapshot of an X server.
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".[19] 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."[20]
Writer and computer scientist Peter Gutmann has expressed concerns that the Digital Rights Management copy prevention 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."[21]
[edit] See also
[edit] References
- ^ Linux Weekly News, Aug 14, 2006: X.org, distributors, and proprietary modules
- ^ free3d.org
- ^ FAQ: "Is glxgears an accurate measure of 3D performance? No, it sucks in multiple ways."
- ^ DRI Wiki - R300
- ^ Jerome Glisse. X.Org mailing list: R500 initial driver release announcement. Retrieved on 2007-06-12.
- ^ LWN: AMD to open up graphics specs. Retrieved on 2007-09-05.
- ^ David Airlie. "AMD hand me specs on a CD", 2007-09-12. Retrieved on 2007-09-14.
- ^ Michael Larabel. "AMD Releases 3D Programming Documentation", 2008-02-22. Retrieved on 2008-03-12.
- ^ i810 man page. Retrieved on 2007-02-14.
- ^ Eric Anholt. X.Org mailing list: xf86-video-intel 2.1.0. Retrieved on 2007-07-09.
- ^ 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. Retrieved on 2007-01-28.
- ^ The nv(4) man page
- ^ nouveau : Open Source 3D acceleration for NVIDIA cards
- ^ Fedora 7
- ^ Theo de Raadt (2006-12-03). Open Documentation for Hardware. Presentation slides from OpenCON 2006. Retrieved on 2007-02-01.
- ^ 3.9: "Blob!". OpenBSD. Retrieved on 2007-02-12.
- ^ Rapid7 advisory: Buffer Overflow in NVIDIA Binary Graphics Driver For Linux.
- ^ Linux - How does the Rapid7 Advisory R7-0025 affect the NVIDIA Unix driver?
- ^ Linus Torvalds, kernel mailing list, Feb 7, 1999.
- ^ Myths, Lies, and Truths about the Linux kernel by Greg Kroah-Hartman
- ^ Peter Gutmann (2006-12-26). "A Cost Analysis of Windows Vista Content Protection". Retrieved on 2007-01-28.
[edit] External links
- List of video cards supported by free software at the Free Software Foundation's hardware database
- Linux graphics drivers from Intel
- The NVIDIA Unix page
- ATI open gpu site
- VIA announces development of free software graphics drivers