. Latest news:
30.06.2009 posted by pq
Nouveau has moved the DRM kernel code into a kernel tree, the DRM.git linux-core is abandoned.
Nouveau : Open Source 3D acceleration for nVidia cards
About Nouveau
This is the homepage of nouveau, a project which aims at producing Open Source 3D 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.
If you want to help development, there are two main resources: the IRC channel and Mailing lists.
Most development talk occurs in the freenode irc channel #nouveau, so we keep logs of it, both in the form of raw logs and as edited summaries, the so called 'TiNDC's, or The irregular Nouveau Development Companions. You can find them both in the IrcChatLogs page.
We use several mailing lists: the nouveau list is where bug reports and a little of development talk takes place, and the cvs commits list registers changes to the doc, rules-ng and renouveau modules. Also dri-devel and mesa3d-dev are important lists, see the descriptions at the DRI mailing lists page, 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
Some gpu's integrated onto the motherboard do not function with nouveau for unknown reason, they include the geforce 8200/8300 and probably some 9400 as well. All other 8000/9000 series should be able to function, assuming someone bothers to extract some microcode from a mmio-trace in case this is not done already. The problematic gpu's identify as NVIDIA NVAx in the xorg log, with x a hexidecimal number,
2D-support is in fairly good shape with EXA acceleration, Xv and Randr12 (think of dual-head, rotations, etc.). Randr12 should work for all cards up to, and including, Geforce 9000 series, although some issues with Geforce 8/9 laptops may still exist, for such issues bug reports should be submitted. Randr12 is now the default. Any 3D functionality that might exist is still unsupported, do not ask for instructions to try it. Also, VT switching while X is running is considered lucky. We keep a status matrix and a TODO list.
Users can aid in development by providing REnouveau dumps and MMIO traces. REnouveauDumps are currently only useful for recent cards (9000 & GTX series). MMIO traces are more useful nowadays and we need them for all cards. Visit MmioTrace for instructions. If you have nVidia hardware you don't need, donating it could be helpful! Propose your card on the IRC channel and see if a developer wants it.
For developers and advanced user we have instructions on Howto compile and use nouveau.
Randr12 is a part of the main development. Some notes about NV50 can be found there, if you know anything, please add it there.
Specific testing requests can be found in the TestersWanted page. Check it out!
News
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.
30.10.2008 posted by pq
TiNDC #40 is here
Bugs
We use the freedesktop.org Bugzilla. Nouveau (2D driver) is under Product xorg, Component Driver/nouveau. The 3D driver is under Product Mesa, Component Drivers/DRI/nouveau, but please do not submit bugs on 3D support yet.
We do have a mailing list where you can send in bug reports, ask questions, discuss patches or what ever is related to nouveau and its tools. You can find it here: http://lists.freedesktop.org/mailman/listinfo/nouveau
Feel free to search and submit bugs about 2D 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 bugs, especially plaintext 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 would make life a little easier for people reading bug reports.
Links to current source code repositories
The current code is in upstream git trees by freedesktop.org.
DDX git (2D driver) holds the accelerated Nouveau Xorg driver, which was forked from the "nv" driver a long time ago.
To grab this, use git clone git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau
DRM git (User space libraries) holds libdrm (and e.g. libdrm_nouveau).
To grab this, use git clone git://anongit.freedesktop.org/git/mesa/drm
DrmProject There is more detailed technical information about the DRM project here.
Nouveau kernel tree (DRM modules) for public development, not for upstreaming. Build instructions: InstallDRM.
Mesa master is the place of the 3D driver development (unsupported).
To grab this, use git clone git://anongit.freedesktop.org/git/mesa/mesa
DriProject There is information for nouveau DRI developers here.
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

