. Latest news:
07.07.2009 posted by pq
Pre-randr 1.2 support has been dropped, -2 kLOC change to the DDX. Yay!
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 our 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
See the status matrix for functionality supported on each chipset. We also keep a TODO list.
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). Enable the KMS feature, use dual-head, try tv-out. Any encountered problems should be found in the bugzilla or the notes here below. If not, submit a report, please. Accelerated OpenGL, although progressing, is not yet supported. If problems are found, you may be requested to provide REnouveauDumps or MMIO traces.
Also, specific testing requests may be found in the TestersWanted page.
Some GPUs integrated onto the motherboard do not function with nouveau for some unknown reason. These include the GeForce 8200/8300 and probably the 9400 as well. All other 8000/9000 series chipsets should be able to function, assuming someone bothers to extract some microcode from an mmio-trace in case this is not done already. The problematic GPUs identify as NVIDIA NVAx in the Xorg log, with x a hexadecimal digit. If you have any NVAx card, you need to use KMS. Integrated nforce1 and nforce2 graphics probably do not work, either.
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. See the current status of Gallium3D on each chipset.
If you have nVidia hardware you don't need, donating it could be helpful! See HardwareDonations.
For developers and advanced users, we have instructions on compiling and using nouveau.
News
07.07.2009 posted by pq
Pre-randr 1.2 support has been dropped, -2 kLOC change to the DDX. Yay!
30.06.2009 posted by pq
Nouveau has moved the DRM kernel code into a kernel tree, the DRM.git linux-core is abandoned.
20.03.2009 posted by KoalaBR
With some status update for FreeBSD, FOSDEM and much much more: TiNDC #43
21.01.2009 posted by KoalaBR
Continuing the coverage from November up until last week, here is TiNDC #42
14.11.2008 posted by KoalaBR
After a long hiatus KoalaBR is back with TiNDC #41. The TiNDC covers everything from June, 1st up until October, 30th.
Bugs
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.
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).
DriProject There is information for nouveau DRI developers here.
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
GalliumHowto in case you are brave enough. Please don't come and complain if it doesn't work for you.
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
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
Gallium3D - where Mesa is going
NouveauDemo a test suite

