Nouveau (graphics)
Encyclopedia
In computing
, nouveau is a software project aiming to develop free software
drivers
for Nvidia
graphics cards
, by reverse engineering
Nvidia's current proprietary
drivers for Linux
. This project by X.Org Foundation
and freedesktop.org
was initially based on the obfuscated
2D-only free
and open-source
"nv" driver. The name of the project refers to the fact that "nouveau" means "new" in French.
The name was suggested by the original author's IRC client's French autoreplace feature which suggested the word "nouveau" when he typed "nv".
Like most other 3D graphics drivers for X.Org
, nouveau is implemented as a module
and is licensed under the MIT license
. It originally used the Direct Rendering Infrastructure
(DRI) of Mesa 3D for rendering 3D computer graphics
, which allows to accelerate 3D drawing using the graphics processing unit
(GPU) directly from the 3D application; but in February 2008 the work on DRI support ceased and moved on to the new Gallium3D
.
11 and openSUSE
11.3 distributions of Linux
. It is included in the repository of Ubuntu
9.04 and made default in Ubuntu 10.04.
It is also included in Debian
. The drivers included in these operating systems, however, do not allow hardware acceleration of 3D operations.
On 10 December 2009 nouveau was accepted in the 2.6.33 version of Linux kernel
as a staging driver.
Fedora 13 (May 2010) allows installing the mesa-dri-drivers-experimental package, which activates experimental hardware acceleration for 3d graphics, which was not activated without this package.
3D acceleration is included in the Ubuntu 10.10 archives in the libgl1-mesa-dri-experimental package. It is being considered for default installation in Ubuntu 11.04 for improved Unity support.
Compiz
recommends nouveau over the Nvidia proprietary driver.
(using SDL
) that collects data for most of nouveau's reverse engineering work. Users with the proprietary NVIDIA drivers can help the development of nouveau by providing information about the hardware of their NVIDIA cards through REnouveau. REnouveau works by copying the current graphics card MMIO
register space, drawing some graphics and taking another copy of the MMIO, and outputting the difference to a text file. It runs about six dozen
different tests which the user of the computer then makes a tar
.bz2
archive of and submits by e-mail
, after which it is automatically transferred to the project's FTP servers for the developers to analyze.
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...
, nouveau is a software project aiming to develop free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
drivers
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
for Nvidia
NVIDIA
Nvidia is an American global technology company based in Santa Clara, California. Nvidia is best known for its graphics processors . Nvidia and chief rival AMD Graphics Techonologies have dominated the high performance GPU market, pushing other manufacturers to smaller, niche roles...
graphics cards
Video card
A video card, Graphics Card, or Graphics adapter is an expansion card which generates output images to a display. Most video cards offer various functions such as accelerated rendering of 3D scenes and 2D graphics, MPEG-2/MPEG-4 decoding, TV output, or the ability to connect multiple monitors...
, by reverse engineering
Reverse engineering
Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation...
Nvidia's current proprietary
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...
drivers for Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
. This project by X.Org Foundation
X.Org Foundation
The X.Org Foundation is the organization holding the stewardship for the development of the X Window System. It was founded on 22 January 2004....
and freedesktop.org
Freedesktop.org
freedesktop.org is a project to work on interoperability and shared base technology for free software desktop environments for the X Window System on Linux and other Unix-like operating systems. It was founded by Havoc Pennington from Red Hat in March 2000.The organisation focuses on the user....
was initially based on the obfuscated
Obfuscated code
Obfuscated code is source or machine code that has been made difficult to understand for humans. Programmers may deliberately obfuscate code to conceal its purpose or its logic to prevent tampering, deter reverse engineering, or as a puzzle or recreational challenge for someone reading the source...
2D-only free
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
and open-source
Open-source software
Open-source software is computer software that is available in source code form: the source code and certain other rights normally reserved for copyright holders are provided under a software license that permits users to study, change, improve and at times also to distribute the software.Open...
"nv" driver. The name of the project refers to the fact that "nouveau" means "new" in French.
The name was suggested by the original author's IRC client's French autoreplace feature which suggested the word "nouveau" when he typed "nv".
Like most other 3D graphics drivers for X.Org
X.Org
X.Org refers to several things related to the X Window System:* X.Org, the organisation in charge of X standards from 1999 * The X.Org Foundation, a community-based foundation which took over X stewardship in 2004...
, nouveau is implemented as a module
Modular programming
Modular programming is a software design technique that increases the extent to which software is composed of separate, interchangeable components called modules by breaking down program functions into modules, each of which accomplishes one function and contains everything necessary to accomplish...
and is licensed under the MIT license
MIT License
The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...
. It originally used the Direct Rendering Infrastructure
Direct Rendering Infrastructure
In computing, the Direct Rendering Infrastructure is an interface and a free software implementation used in the X Window System to securely allow user applications to access the video hardware without requiring data to be passed through the X server. Its primary application is to provide...
(DRI) of Mesa 3D for rendering 3D computer graphics
3D computer graphics
3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...
, which allows to accelerate 3D drawing using the graphics processing unit
Graphics processing unit
A graphics processing unit or GPU is a specialized circuit designed to rapidly manipulate and alter memory in such a way so as to accelerate the building of images in a frame buffer intended for output to a display...
(GPU) directly from the 3D application; but in February 2008 the work on DRI support ceased and moved on to the new Gallium3D
Gallium3D
Gallium3D is a free software library for 3D graphics device drivers being developed by VMware, after they acquired Tungsten Graphics – the original authors....
.
Adoption
The nouveau driver has been used as the default open-source driver for Nvidia cards in the FedoraFedora (operating system)
Fedora is a RPM-based, general purpose collection of software, including an operating system based on the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat...
11 and openSUSE
OpenSUSE
openSUSE is a general purpose operating system built on top of the Linux kernel, developed by the community-supported openSUSE Project and sponsored by SUSE...
11.3 distributions of Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
. It is included in the repository of Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...
9.04 and made default in Ubuntu 10.04.
It is also included in Debian
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...
. The drivers included in these operating systems, however, do not allow hardware acceleration of 3D operations.
On 10 December 2009 nouveau was accepted in the 2.6.33 version of Linux kernel
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
as a staging driver.
Fedora 13 (May 2010) allows installing the mesa-dri-drivers-experimental package, which activates experimental hardware acceleration for 3d graphics, which was not activated without this package.
3D acceleration is included in the Ubuntu 10.10 archives in the libgl1-mesa-dri-experimental package. It is being considered for default installation in Ubuntu 11.04 for improved Unity support.
Compiz
Compiz
Compiz is one of the first compositing window managers for the X Window System that uses 3D graphics hardware to create fast compositing desktop effects for window management. The effects, such as a minimization effect and a cube workspace are implemented as loadable plugins...
recommends nouveau over the Nvidia proprietary driver.
Tools
The project uses several custom-made programs for its reverse engineering, such as MmioTrace (Memory Mapped I/O Trace) and REnouveau.REnouveau
REnouveau (Reverse Engineering for nouveau) is a program licensed under the GNU GPLGNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
(using SDL
Simple DirectMedia Layer
Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....
) that collects data for most of nouveau's reverse engineering work. Users with the proprietary NVIDIA drivers can help the development of nouveau by providing information about the hardware of their NVIDIA cards through REnouveau. REnouveau works by copying the current graphics card MMIO
Memory-mapped I/O
Memory-mapped I/O and port I/O are two complementary methods of performing input/output between the CPU and peripheral devices in a computer...
register space, drawing some graphics and taking another copy of the MMIO, and outputting the difference to a text file. It runs about six dozen
Dozen
A dozen is a grouping of approximately twelve. The dozen may be one of the earliest primitive groupings, perhaps because there are approximately a dozen cycles of the moon or months in a cycle of the sun or year...
different tests which the user of the computer then makes a tar
Tar (file format)
In computing, tar is both a file format and the name of a program used to handle such files...
.bz2
Bzip2
bzip2 is a free and open source implementation of the Burrows–Wheeler algorithm. It is developed and maintained by Julian Seward. Seward made the first public release of bzip2, version 0.15, in July 1996.-Compression efficiency:...
archive of and submits by e-mail
E-mail
Electronic mail, commonly known as email or e-mail, is a method of exchanging digital messages from an author to one or more recipients. Modern email operates across the Internet or other computer networks. Some early email systems required that the author and the recipient both be online at the...
, after which it is automatically transferred to the project's FTP servers for the developers to analyze.