English/Español/Français/Deutsch
Info:
REnouveau stands for Reverse Engineering for nouveau. KoalaBR maintains some (incomplete) documentation. If interest is high enough, it will be folded into CVS.
REnouveau requires the nVidia proprietary driver installed and working.
It is an application that runs small opengl tests and watches the changes in the video card registers. Usage instructions are on the README file. It takes some time to get into, but once you know it, it is simple to read.
This is used to do clean room reverse engineering (this is not in violation with nvidia driver license). We do not disassemble binaries.
If you are not sure about installing and running renouveau, please try KoalaBR's script, which does downloading, compiling, running and zip'ping automatically. You can find it here: http://www.ping.de/sites/koala/script/createdump.sh. Just give execution rights and start it via ./createdump.sh. Then follow the on screen instructions. Please note: Script comes without any warranty, use it on your own risk.
Wanting to do some reverse engineering ?
A shell script parse-dump.sh has been added to the CVS repository, that does all the dirty work of parsing your generated dumps. If everything went the right way, you can dig in the parsed dumps and try to guess what some random command send to your GPU do.
Example of an unknown command (we have no idea what command is at offset 0x1538):
00043538 size 1, subchannel 1 (0xbeef5097),offset 0x1538,increment 00000001 NV54TCL[0x1538/4]
Example of a known command (as you can guess, STENCIL_BACK_MASK is at offset 0x1398):
00043398 size 1, subchannel 1 (0xbeef5097),offset 0x1398,increment 000000ff NV54TCL.STENCIL_BACK_MASK
Download:
CVS is available online: http://nouveau.cvs.sourceforge.net/viewvc/nouveau/renouveau/
Anonymous CVS Access
cvs -z3 -d:pserver:anonymous@nouveau.cvs.sourceforge.net:/cvsroot/nouveau co -P renouveau
Gentoo
See Gentoo ebuilds.
Mandriva
Mandriva package is in the contrib media, just run
urpmi renouveau
Debian and Ubuntu
Debian etch needs packages libsdl1.2-dev, nvidia drivers, libxvmc-dev, libxv-dev for sdl-config command and Xext, XvMCNVIDIA, XvMC, Xv library respectively.
If you are running Ubuntu this command should get you the right packages:
sudo apt-get install build-essential cvs mesa-common-dev libsdl1.2-dev libxvmc-dev nvidia-glx-dev dialog libxml2-dev
Fedora
For Fedora (tested on F9) with livna repository active
yum install dialog SDL-devel libXvMC-devel libxml2-devel xorg-x11-drv-nvidia-devel
then
make XEXT_LDFLAGS="-L/usr/lib/nvidia -L/usr/lib -lXext -lXvMCNVIDIA -lXvMC -lXv"
or, if you're on x86_64
make XEXT_LDFLAGS="-L/usr/lib64/nvidia -L/usr/lib64 -lXext -lXvMCNVIDIA -lXvMC -lXv"
Requirements:
Functional nvidia drivers are needed, very old ones are not likely to work. 6xxx, 7xxx, 8xxx series are likely to work (based on a cvs commit log mentioning 6xxx support and assumption). 3xxx, 4xxx, 5xxx series may requires a 2.4 kernel, and renouveau must be linked against libGL at compile time.
Your video card must have 256MB memory or less. As only 256MB of vram is accessible through the PCI address space for the CPU, we can not dump stuff if your card as more memory, as needed info may reside in non accessible vram space.
Note: If you have driver version 9xxx and your card is PCI-E, renouveau may segfault or hang your machine. In this case, please try 8xxx drivers.
Compile Notes
REnouveau lacks a make install option, for the moment you'll have to manually copy the binary to the right place. main.c needs to be manually modified to do specific tests, please see documentation for more information.
All tests and outputting to multiple files is now enabled by default.
Use and Submission Instructions
Please see REnouveauDumps.

