HOME

TheInfoList



OR:

nouveau () is a free and open-source graphics device driver for
Nvidia Nvidia Corporation ( ) is an American multinational corporation and technology company headquartered in Santa Clara, California, and incorporated in Delaware. Founded in 1993 by Jensen Huang (president and CEO), Chris Malachowsky, and Curti ...
video card A graphics card (also called a video card, display card, graphics accelerator, graphics adapter, VGA card/VGA, video adapter, display adapter, or colloquially GPU) is a computer expansion card that generates a feed of graphics output to a displa ...
s and the Tegra family of
SoCs SOCS (suppressor of cytokine signaling proteins) refers to a family of genes involved in inhibiting the JAK-STAT signaling pathway. Genes * CISH (gene), CISH * SOCS1 * SOCS2 * SOCS3 * SOCS4 * SOCS5 * SOCS6 * SOCS7 Structure All SOCS have certai ...
written by independent software engineers, with minor help from Nvidia employees. The project's goal is to create an open source driver by
reverse engineering Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompl ...
Nvidia's proprietary
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
drivers. It is managed by the X.Org Foundation, hosted by freedesktop.org, and is distributed as part of
Mesa 3D Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open-source software, open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware ...
. The project was initially based on the 2D-only free and open-source "nv" driver, which
Red Hat Red Hat, Inc. (formerly Red Hat Software, Inc.) is an American software company that provides open source software products to enterprises and is a subsidiary of IBM. Founded in 1993, Red Hat has its corporate headquarters in Raleigh, North ...
developer Matthew Garrett and others claim had been obfuscated. nouveau is licensed under the
MIT License The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility. Unl ...
. The name of the project comes from the French word ''nouveau'', meaning ''new''. It was suggested by the original author, Stéphane Marchesin, after his
IRC IRC (Internet Relay Chat) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called '' channels'', but also allows one-on-one communication via private messages as well as chat ...
client's
French-language French ( or ) is a Romance language of the Indo-European family. Like all other Romance languages, it descended from the Vulgar Latin of the Roman Empire. French evolved from Northern Old Gallo-Romance, a descendant of the Latin spoken in ...
autocorrect Autocorrection, also known as text replacement, replace-as-you-type, text expander or simply autocorrect, is an automatic data validation function commonly found in word processors and text editing interfaces for smartphones and tablet computer ...
system offered the word " nouveau" as a correction for the letters "nv".


Software architecture

nouveau is a Gallium3D-style device driver and works on top of the
Direct Rendering Infrastructure The Direct Rendering Infrastructure (DRI) is the framework comprising the modern Linux graphics stack which allows unprivileged user-space programs to issue commands to graphics hardware without conflicting with other programs. The main use ...
(DRI). It is composed of the two Kernel-components DRM & KMS driver, and the user-space components libDRM, and
Mesa 3D Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open-source software, open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware ...
. nouveau intends to support all Nvidia microarchitectures: Tesla, Fermi,
Kepler Johannes Kepler (27 December 1571 – 15 November 1630) was a German astronomer, mathematician, astrologer, natural philosopher and writer on music. He is a key figure in the 17th-century Scientific Revolution, best known for his laws of p ...
,
Maxwell Maxwell may refer to: People * Maxwell (surname), including a list of people and fictional characters with the name ** James Clerk Maxwell, mathematician and physicist * Justice Maxwell (disambiguation) * Maxwell baronets, in the Baronetage of N ...
, in Version 1.0.13 support of Pascal and in Version 1.0.15 support of Volta. Version 1.0.16 adds support for Turing.


Re-clocking

For technical reasons Nvidia GPUs all boot with a low frequency (called "clock"). The device driver has to set a higher frequency after booting. Due to lack of documentation of GPU, nouveau lacked this capability from the beginning on. The result was/is a major loss in performance, as proven by benchmarks which compared the performance of Nvidia proprietary device driver with nouveau's. In June 2014, a breakthrough was finally achieved and initial re-clocking support was added to nouveau. With Version 1.0.14 Pascal support is at the level of Maxwell 2. With version 1.0.15 there is a patch for GTX 970 with 4GB and accelerations of Pascal to Maxwell 2 Level.


Tools

Unlike
AMD Advanced Micro Devices, Inc. (AMD) is an American multinational corporation and technology company headquartered in Santa Clara, California and maintains significant operations in Austin, Texas. AMD is a hardware and fabless company that de ...
, Nvidia provides no documentation about their GPUs. The developers of nouveau have been forced to use clean-room
reverse engineering Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompl ...
to obtain the necessary data to enable them to write nouveau. The project uses several custom-made programs for its reverse engineering, such as MmioTrace (Memory Mapped I/O Trace), REnouveau and Valgrind MMT.


REnouveau

REnouveau (Reverse Engineering for nouveau) is a program licensed under the
GNU GPL The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
(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 Electronic mail (usually shortened to email; alternatively hyphenated e-mail) is a method of transmitting and receiving Digital media, digital messages using electronics, electronic devices over a computer network. It was conceived in the ...
, after which it is automatically transferred to the project's FTP servers for the developers to analyze. Currently REnouveau has been mostly superseded by Valgrind-MMT.


Supported interfaces

Only the kernel has direct access to the hardware, including the graphics card. End-user software accesses it through various
interfaces Interface or interfacing may refer to: Academic journals * ''Interface'' (journal), by the Electrochemical Society * '' Interface, Journal of Applied Linguistics'', now merged with ''ITL International Journal of Applied Linguistics'' * '' Inter ...
, that are specific to the task. nouveau is being written as a Gallium3D-type of device driver, which means that it shares large amounts of code with other Gallium3D drivers. Most of this shared core is being mainlined in
Mesa 3D Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open-source software, open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware ...
and then distributed as such by the various
Linux distribution A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro—if distributed on its own—is oft ...
s.


Rendering APIs

Mesa 3D Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open-source software, open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware ...
and the drivers it includes, supports multiple rendering interfaces, all designed to give user-space programs, such as e.g.
video games A video game or computer game is an electronic game that involves interaction with a user interface or input device (such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device) to generate visual fe ...
or CAD software, access to the correspondent SIP blocks.


Direct3D

A free and open-source implementation of
Direct3D Direct3D is a graphics application programming interface (API) for Microsoft Windows. Part of DirectX, Direct3D is used to render three-dimensional graphics in applications where performance is important, such as games. Direct3D uses hardware ...
version 9 has been mainlined into Mesa 3D. It can be used with nouveau; however, since any software that is using Direct3D is programmed for Windows this software can only be used together with
Wine Wine is an alcoholic drink made from Fermentation in winemaking, fermented fruit. Yeast in winemaking, Yeast consumes the sugar in the fruit and converts it to ethanol and carbon dioxide, releasing heat in the process. Wine is most often made f ...
on Linux.


OpenGL

The rendering interface
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
is being developed by the
Khronos Group The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computat ...
. Implementations of this API are part of Nvidia's drivers and AMD's proprietary "Catalyst". Another implementation is being written by free software enthusiasts, such as Brian Paul or Intel and coordinated in Mesa 3D. Being a Gallium3D-type of driver, nouveau needs only minor adaptations to work with this implementation.


Vulkan

, Nouveau has some Vulkan API support through the experimental NVK driver.


Video acceleration

Mesa 3D supports multiple interfaces, all designed to give user-space programs, such as e.g.
GStreamer GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
or HandBrake, access to the correspondent SIP blocks. It is also possible to use the IC designed for rendering calculations for this purpose, though this approach consumes much more electrical power compared to utilizing the PureVideo SIP block. nouveau supports PureVideo and provides access to it through VDPAU and partly through XvMC. nouveau does not support Nvidia NVENC.


Computing APIs


OpenCL

In
Mesa A mesa is an isolated, flat-topped elevation, ridge, or hill, bounded from all sides by steep escarpments and standing distinctly above a surrounding plain. Mesas consist of flat-lying soft sedimentary rocks, such as shales, capped by a ...
GalliumCompute is also the main project for Nvidia, but only AMD part is near beta for OpenCL 1.0, 1.1, and 1.2.


CUDA

nouveau does not support
CUDA In computing, CUDA (Compute Unified Device Architecture) is a proprietary parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for accelerated gene ...
. With the project Coriander, conversion of CUDA Code in OpenCL 1.2 is possible.


GPU System processor


Nvidia FALCON

Around the year 2006 Nvidia introduced FALCON (FAst Logic CONtroller) to their GPUs.


NV-RISCV

At the 4th
RISC-V RISC-V (pronounced "risk-five") is an open standard instruction set architecture (ISA) based on established reduced instruction set computer (RISC) principles. The project commenced in 2010 at the University of California, Berkeley. It transfer ...
Workshop in July 2016 Nvidia employees introduced their plans to replace FALCON with a new proprietary custom design based on the RISC-V instruction set.


History

nouveau was started in 2005 by Stéphane Marchesin as a series of patches upon the "nv" driver, and officially announced in February 2006 at a FOSDEM event. The first live demo of nouveau was at Linux.conf.au 2007. In 2010 nouveau was accepted in the 2.6.33 version of
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
as an experimental driver. On 26 March 2012, the nouveau driver was marked as stable and promoted from the staging area of Linux 3.4. nouveau gained a major internal architecture overhaul in Linux 3.7. nouveau originally used the
Direct Rendering Infrastructure The Direct Rendering Infrastructure (DRI) is the framework comprising the modern Linux graphics stack which allows unprivileged user-space programs to issue commands to graphics hardware without conflicting with other programs. The main use ...
(DRI) of
Mesa 3D Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open-source software, open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware ...
for rendering
3D computer graphics 3D computer graphics, sometimes called Computer-generated imagery, CGI, 3D-CGI or three-dimensional Computer-generated imagery, computer graphics, are graphics that use a three-dimensional representation of geometric data (often Cartesian coor ...
, which allows to accelerate 3D drawing using the
graphics processing unit A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
(GPU) directly from the 3D application; but in February 2008 the work on DRI support ceased and moved on to the new Gallium3D. On 23 September 2013, Nvidia publicly announced that they would release some documentation about their GPUs with the intent to address areas that impact the out-of-the-box usability of Nvidia GPUs with nouveau. As of 31 January 2014, Nvidia's Alexandre Courbot committed an extensive patch set which add initial support for the GK20A ( Tegra K1) to nouveau. As of 9 July 2016, Red Hat employee Ben Skeggs committed a patch which adds support for the Pascal-based GP104 chip found on GeForce GTX 1070 and GeForce GTX 1080-branded graphics cards to the Linux kernel. Status of 2016 and Future work were introduced in XDC2016. Status of new efforts in OpenCL are shown on FOSDEM. In 2019 Nvidia made some documentation about their Kepler, Maxwell, Pascal and Volta chipsets available. In 2024, lead engineer Ben Skeggs is hired by Nvidia, to continue working on the open source driver.


Adoption

The nouveau driver and its 3D counterpart in
Mesa A mesa is an isolated, flat-topped elevation, ridge, or hill, bounded from all sides by steep escarpments and standing distinctly above a surrounding plain. Mesas consist of flat-lying soft sedimentary rocks, such as shales, capped by a ...
have been used as the default open-source driver for Nvidia cards in many
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
distributions, including Fedora 11,
openSUSE openSUSE () is a free and open-source software, free and open-source Linux distribution developed by the openSUSE project. It is offered in two main variations: ''Tumbleweed'', an upstream rolling release distribution, and ''Leap'', a stable r ...
11.3,
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed primarily of free and open-source software. Developed by the British company Canonical (company), Canonical and a community of contributors under a Meritocracy, meritocratic gover ...
10.04, and
Debian Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
.
Compiz Compiz () is a compositing window manager for the X Window System, using 3D graphics hardware to create fast compositing desktop effects for window management. Effects, such as a minimization animation or a cube workspace, are implemented as loa ...
recommended in 2010 nouveau over the Nvidia proprietary driver. In June 2014, Codethink reported to run Wayland-based
Weston Weston may refer to: Places Australia * Weston, Australian Capital Territory, a suburb of Canberra * Weston, New South Wales * Weston Creek, a residential district of Canberra * Weston Park, Canberra, a park Canada * Weston, Nova Scotia * W ...
compositor with
Linux kernel The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
3.15, making use of EGL and a "100% open-source graphics driver stack" on a Tegra K1. In October 2016,
NetBSD NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
added experimental nouveau support in
NetBSD NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
7.


See also

* Free and open-source graphics device driver * Comparison of Nvidia graphics processing units * Fastra II * VESA BIOS Extensions


References


External links


Official website
{{DEFAULTSORT:Nouveau (Graphics) 3D graphics software Direct Rendering Infrastructure Free device drivers Free software programmed in C Freedesktop.org Linux drivers Nvidia software Software using the MIT license