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 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 |
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.
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]
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]
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]
|
||||||||||||||||||||||||||
|
|