blob: 4652ac162f028dd679b24d3ed820fbc32a21b2ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<meta name="google-translate-customization" content="38b387022ed0f4d4-a4eb7ef5c10c8ae0-g2870fab75904ce51-18"></meta>
<div id="google_translate_element"></div>
<script type="text/javascript" src="/wiki/translate.js"></script>
Quoting [[HonzaHavlicek|HonzaHavlicek]]:
* The nv_demos are small programs used for RE of nvidia commands and registers. They are not drivers and they do not use DRI/Gallium3D. They manually set up objects and write some commands to FIFO. The developer write some code to nv_demo and hopes to achieve some result (triangle, repated texture, scissors..). She will achieve the expected result (mostly) after a few (painfull) hours (days). General principle is to look at the MMIO and renouveau dumps and try to repeat what nvidia blob did. Sometimes it is a single bit, sometimes the whole infrastructure.
* nv04_demo [[http://nouveau.cvs.sourceforge.net/nouveau/nv04_demo/|http://nouveau.cvs.sourceforge.net/nouveau/nv04_demo/]]
* nv10_demo [[http://nouveau.cvs.sourceforge.net/nouveau/nv10_demo/|http://nouveau.cvs.sourceforge.net/nouveau/nv10_demo/]]
* nv20_demo [[http://cgit.freedesktop.org/~pq/nv20_demo/|http://cgit.freedesktop.org/~pq/nv20_demo/]]
* nv30_demo [[http://cgit.freedesktop.org/~jkolb/nv30_demo/|http://cgit.freedesktop.org/~jkolb/nv30_demo/]]
* another nv30_demo [[http://cgit.freedesktop.org/~pmandin/nv30_demo/|http://cgit.freedesktop.org/~pmandin/nv30_demo/]]
* nv40_demo [[http://nouveau.cvs.sourceforge.net/nouveau/nv40_demo/|http://nouveau.cvs.sourceforge.net/nouveau/nv40_demo/]]
## Instructions (nv10_demo in this example)
* [[!format txt """
cvs -d:pserver:anonymous@nouveau.cvs.sourceforge.net:/cvsroot/nouveau login
cvs -z3 -d:pserver:anonymous@nouveau.cvs.sourceforge.net:/cvsroot/nouveau co -P nv10_demo
"""]]
Then enter `nv10_demo` and just run `make`.
The binary requires access to the drm module, run it using root: `sudo ./nouveau_demo`.
|