. Latest news:
16.2.2010 posted by xavier+pq
Bump of the userspace interface to 0.0.16.
libdrm and nouveau drm have to be updated together for nouveau to keep working. The kernel.org version will not work with the current git user space for some time. See the kernel commit log for more information.
Nouveau : Accelerated Open Source driver for nVidia cards
About Nouveau
The nouveau project aims to build high-quality, open source drivers for nVidia cards. “Nouveau” [nuvo] is the French word for “new”.
If you have questions or problems, please have a look at pages TroubleShooting and FAQ before contacting us.
Most development talk occurs in the #nouveau IRC channel on freenode. Raw logs and edited summaries (the so-called TiNDCs, or The irregular Nouveau Development Companions) can be found on the IRC chat logs page.
We also use several mailing lists: bug reports and some development talk take place on the nouveau list, and changes to nVidia’s nv driver and Nouveau’s development tools (e.g., rules-ng and renouveau) and hardware documentation are reported to the CVS commits list. The dri-devel and mesa3d-dev lists are also important; see DRI mailing lists for their descriptions, and please notice the difference between end-user support lists and developer lists.
We are also interested in what is said about the project, so links are collected in the page InThePress.
Current Status
Quick overview :
KernelModeSetting (KMS) is mandatory
- Suspend and resume is working for many chips
2-D support is in fairly good shape with EXA acceleration, Xv and Randr12 (dual-head, rotations, etc.).
Any 3-D functionality that might exist is still unsupported. Do not ask for instructions to try it. But you can read GalliumHowto in case you are brave enough.
See the status matrix for functionality supported on each chipset.
Users can help the development by installing Nouveau and trying to use it for regular desktop activities including web surfing, watching videos, 2D games (not using OpenGL). Use dual-head, try tv-out. Any encountered problems should be found in the bugzilla or in this wiki. If not, submit a report, please. Accelerated OpenGL, although progressing, is not yet supported.
Also, specific testing requests may be found in the TestersWanted page.
If you have nVidia hardware you don't need, donating it could be helpful! See HardwareDonations.
Installing
For developers and advanced users, we have instructions on compiling and using nouveau.
If you have questions or problems, please have a look at pages TroubleShooting and FAQ before contacting us.
News
16.2.2010 posted by xavier+pq
Bump of the userspace interface to 0.0.16.
libdrm and nouveau drm have to be updated together for nouveau to keep working. The kernel.org version will not work with the current git user space for some time. See the kernel commit log for more information.
11.1.2010 posted by pq
Nouveau drops UMS support, huge clean-up in DDX.
Roughly 15k lines were deleted from the DDX when the user mode-setting, DRI1 support (DRI2 is still there), and non-driver-pixmaps support were removed. From now on, the only option is to use kernel mode-setting (KMS).
12.12.2009 posted by pq+ahuillet
Nouveau pulled into staging
Nouveau DRM code has been pulled into staging and will be in 2.6.33. Ctxprogs are not included, so Nouveau firmware needs to be installed separately. Note that being in staging does not prevent us from breaking the ABI in the future, should the need arise. This is not considered as an official release.
Bugs
First, have you gone through the basic questions of TroubleShooting? Yes? Good.
We use FreeDesktop Bugzilla. Bugs in the 2-D driver are filed under product “xorg”, component “Driver/nouveau” (statistics). Bugs in the 3-D driver are under product “Mesa”, component “Drivers/DRI/nouveau”, but please do not submit bugs on the 3-D support yet. Feel free to search and submit bugs about 2-D implementation, please search the bugzilla before submitting new bugs. If you are not sure your bug is a manifestation of an existing bug report, do open a new bug.
Please, do not compress files you attach to bug reports, especially plain text files such as logs, unless the file is so huge bugzilla refuses to take it. Gzipping files makes taking a quick look impossible. Also, make sure the mime-type of text files really is set to text/plain, and not e.g. application/octet-stream. This makes life a little easier for people reading bug reports.
We also have a mailing list where you can send in bug reports, ask questions, discuss patches or whatever is related to nouveau and its tools.
When you ask about or report a problem, always provide a complete, unfiltered, untrimmed kernel log from boot up to the problem, and a complete X log if the problem manifests with X.
Source code repositories
The current code is in git trees on freedesktop.org.
DDX git (2D driver) holds the accelerated Nouveau Xorg driver.
This was forked from nVidia’s nv driver a long time ago.
Git address: git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau
DRM git (DRM userspace libraries) holds libdrm and libdrm_nouveau.
These provide a userspace interface for the kernel’s direct rendering manager.
Git address: git://anongit.freedesktop.org/git/mesa/drm
Nouveau kernel tree (DRM modules) holds the latest nouveau kernel driver.
for public development, not for upstreaming. See the original discussion.
Git address: git://anongit.freedesktop.org/git/nouveau/linux-2.6
Shortcut to the code in git.
Mesa master is the place for 3D driver development (unsupported).
Git address: git://anongit.freedesktop.org/git/mesa/mesa
Tools
Tools that help the driver writing process
REnouveau (view CVS) dumps the modifications in the command fifo and user-mapped registers when a process emits rendering commands. Read this page to learn how to submit dumps.
A modified nvclock this nvclock is modified in order to be able to read/write all the nVidia registers.
MmioTrace to trace memory mapped I/O access within kernel. It can be used to record how a driver module uses MMIO reads and writes, for reverse engineering and debugging.
RulesNG is a hardware register description database format.
Nvtrace is a variant of valgrind-mmt that aims to intercept all traffic to the driver
All our tools and scripts in CVS (e.g. crashdump and createdump) can be found here.
Debugging tools
OProfile is a useful statistical profiler, for a system wide performance overview.
Documentation/Available source code
Introduction and API docs
IntroductoryCourse - selected links and documents as a course material
CtxInit - How to create a new context init
How to build and install a full graphics stack from git without overwriting your distribution provided X.
Presentations
Video Hardware docs
Other nVidia drivers
Misc
TroubleShooting - when you have a problem using Nouveau
FAQ - frequently asked questions, excluding troubleshooting
mostly outdated ToDo
NvHardwareDocs all documented nv registers, hardware protocols, articles, and miscellaneous hardware info about nv vid cards
Games - how games use graphics
List of all CodeNames for NVIDIA cards
openChrome Project - open source device drivers for VIA S3 (has updated XvMC with MPEG-4 acceleration support)
intellinuxgraphics.org open source Linux Graphics Device Drivers from Intel (with XvMC for MPEG-2 acceleration support)
R300 DRI (Direct Rendering Infrastructure) - open source device drivers development for AMD/ATI R300 chipset
NouveauDemo a test suite