xserver-xorg-video-nouveau: Changes to 'debian-unstable'
ChangeLog | 47
debian/README.Debian | 29
debian/changelog | 8
debian/control | 11
debian/copyright | 18
debian/rules | 4
src/drmmode_display.c | 1
src/hwdefs/nv01_2d.xml.h | 1416 ++++++
src/hwdefs/nv10_3d.xml.h | 1637 +++++++
src/hwdefs/nv30-40_3d.xml.h | 2052 +++++++++
src/hwdefs/nv50_2d.xml.h | 434 ++
src/hwdefs/nv50_3d.xml.h | 2127 ++++++++++
src/hwdefs/nv50_defs.xml.h | 155
src/hwdefs/nv50_texture.h | 166
src/hwdefs/nv_3ddefs.xml.h | 93
src/hwdefs/nv_m2mf.xml.h | 174
src/hwdefs/nv_object.xml.h | 295 +
src/hwdefs/nvc0_3d.xml.h | 1867 +++++++++
src/hwdefs/nvc0_m2mf.xml.h | 178
src/nouveau_class.h | 9084 --------------------------------------------
src/nouveau_dri2.c | 10
src/nouveau_exa.c | 28
src/nouveau_xv.c | 23
src/nv04_exa.c | 57
src/nv04_xv_blit.c | 34
src/nv10_exa.c | 205
src/nv30_exa.c | 192
src/nv30_shaders.c | 32
src/nv30_xv_tex.c | 118
src/nv40_exa.c | 181
src/nv40_xv_tex.c | 110
src/nv50_accel.c | 141
src/nv50_accel.h | 14
src/nv50_defs.xml.h | 144
src/nv50_exa.c | 101
src/nv50_texture.h | 166
src/nv50_xv.c | 69
src/nv_3ddefs.xml.h | 93
src/nv_accel_common.c | 146
src/nv_driver.c | 5
src/nv_include.h | 1
src/nv_object.xml.h | 246 -
src/nvc0_3d.xml.h | 1093 -----
src/nvc0_accel.c | 18
src/nvc0_accel.h | 7
src/nvc0_exa.c | 39
src/nvc0_m2mf.xml.h | 138
src/nvc0_xv.c | 9
48 files changed, 11459 insertions(+), 11757 deletions(-)
New commits:
commit fc9b04d9ab613925408494f6df7d5d96b7745582
Author: Sven Joachim <svenjoac@gmx.de>
Date: Thu Dec 1 19:51:56 2011 +0100
Add bug closure for #585651
Commit 9fa0c6c74d0b9f7d66ebe3c99184eaa13abeb1a0 changes the default
color depth to 16bpp for cards with <= 16 MiB of VRAM. Together with
a kernel patch that limits the framebuffer's color depth to 8bpp on
those cards, this should solve the problem of insufficient memory for
high resolutions.
diff --git a/debian/changelog b/debian/changelog
index e4e4f71..b628101 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
xserver-xorg-video-nouveau (1:0.0.16+git20111201+b5534a1-1) UNRELEASED; urgency=low
* New upstream snapshot.
+ - Default color depth is now 16bpp for low memory cards, so it should
+ be possible to use high resolutions with them (Closes: #585651).
* Bump Standards-Version to 3.9.2, no changes needed.
* Don't claim that the driver is experimental in the description.
* Recommend libmesa-gl1-dri (>= 7.11.1) for the 3D drivers.
commit eb9ba8fcacb3b56c76ada1d556bf0a2256267951
Author: Sven Joachim <svenjoac@gmx.de>
Date: Thu Dec 1 16:19:39 2011 +0100
Update debian/copyright
Remove people and entities for which grepping in the tree
revealed nothing. Add some other contributors based on the
attributions in the source files.
diff --git a/debian/changelog b/debian/changelog
index 925fc18..e4e4f71 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -10,6 +10,7 @@ xserver-xorg-video-nouveau (1:0.0.16+git20111201+b5534a1-1) UNRELEASED; urgency=
- Linux 3.1 includes free firmware for some Fermi cards.
- Drop section about lack of DRI and 3D support.
* Use dpkg-buildflags to set compiler flags.
+ * Update debian/copyright.
-- Sven Joachim <svenjoac@gmx.de> Sat, 10 Sep 2011 14:23:00 +0200
diff --git a/debian/copyright b/debian/copyright
index 7966839..e7a8af2 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -9,25 +9,21 @@ License:
Copyright © 1993-2007 NVIDIA, Corporation
Copyright © 1994 X Consortium
Copyright © 1996-1997 David J. McKay
- Copyright © 1996 Stephen Early
- Copyright © 1997 Mark Eichin
- Copyright © 1998-2005, 2007 Branden Robinson
- Copyright © 1999 The XFree86 Project Inc.
+ Copyright © 1999 Mark Vojkovich
Copyright © 2005-2006 Erik Waling
Copyright © 2005 Adam Jackson
- Copyright © 2005 David Nusinow
- Copyright © 2005 Eugene Konev
Copyright © 2005 Sun Microsystems, Inc.
- Copyright © 2006 Stephane Marchesin
- Copyright © 2006 Dave Airlie
- Copyright © 2007, 2008 Maarten Maathui
+ Copyright © 2007-2008 Maarten Maathuis
+ Copyright © 2007, 2008 Stephane Marchesin
Copyright © 2007-2008 Stuart Bennett
Copyright © 2007 Arthur Huillet
Copyright © 2007 Jeremy Kolb
Copyright © 2007 Patrice Mandin
- Copyright © 2007 Ben Skeggs
+ Copyright © 2007, 2008 Ben Skeggs
Copyright © 2007 Peter Winters
- Copyright © 2007 Nouveau Project
+ Copyright © 2007, 2009 Nouveau Project
+ Copyright © 2007, 2009 Red Hat, Inc.
+ Copyright © 2009 Francisco Jerez
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
commit 80a870c650f62ccade8a0e72761c1a88023179ae
Author: Sven Joachim <svenjoac@gmx.de>
Date: Thu Dec 1 16:19:11 2011 +0100
Set compiler flags with dpkg-buildflags
Also export them, since neither dh nor dpkg-buildpackage do this by
default any longer, unless debhelper compatibility level is >= 9.
This means that DEB_BUILD_OPTIONS=noopt would no longer have any
effect.
diff --git a/debian/changelog b/debian/changelog
index 1e2c308..925fc18 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,7 @@ xserver-xorg-video-nouveau (1:0.0.16+git20111201+b5534a1-1) UNRELEASED; urgency=
alternative with "update-alternatives --config glx".
- Linux 3.1 includes free firmware for some Fermi cards.
- Drop section about lack of DRI and 3D support.
+ * Use dpkg-buildflags to set compiler flags.
-- Sven Joachim <svenjoac@gmx.de> Sat, 10 Sep 2011 14:23:00 +0200
diff --git a/debian/rules b/debian/rules
index 9a8530b..de4cc9c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,5 +1,9 @@
#!/usr/bin/make -f
+export CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
+export CFLAGS := $(shell dpkg-buildflags --get CFLAGS)
+export LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
+
# Needed to find ChangeLog:
override_dh_auto_configure:
dh_auto_configure -- CURDIR="$(CURDIR)"
commit 4c6f9f5b46d1032b71cfd830f69efe27e28c0b81
Author: Sven Joachim <svenjoac@gmx.de>
Date: Thu Dec 1 16:18:38 2011 +0100
README.Debian: Linux 3.1 is already available
diff --git a/debian/README.Debian b/debian/README.Debian
index d2ddc3a..870e6c6 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -10,10 +10,11 @@ nouveau module altogether or contain an incompatible version. If you
build your own kernel, you have to enable the module under Drivers ->
Staging drivers.
-Fermi cards (GeForce 4xx/5xx series, NVC0 in Nouveau terminology)
+Some Fermi cards (GeForce 4xx/5xx series, NVC0 in Nouveau terminology)
currently need non-free and not readily available firmware to provide
-any acceleration, though this will change starting with Linux 3.1.
-Please check the status at
+any acceleration. Starting with Linux 3.1, the Linux kernel includes
+free firmware for some of these cards, but not all of them are
+supported yet. Please check the status at
http://nouveau.freedesktop.org/wiki/InstallDRM#Firmware.
commit 2d067529ac10f61772ef3b607fb0b02cb5039d57
Author: Sven Joachim <svenjoac@gmx.de>
Date: Thu Dec 1 16:18:02 2011 +0100
Stop claiming that we don't provide 3D drivers
Recommend a libgl1-mesa-dri version that includes these drivers, and
update the package description and README.Debian accordingly.
diff --git a/debian/README.Debian b/debian/README.Debian
index 8b4c729..d2ddc3a 100644
--- a/debian/README.Debian
+++ b/debian/README.Debian
@@ -46,25 +46,7 @@ xserver-xorg-core and libgl1-mesa-glx packages. In either case,
restarting X is also necessary.
A simple OpenGL test program is glxgears, contained in the mesa-utils
-package. Note that OpenGL with nouveau will not be much fun, see the
-next section.
-
-
-(Lack of) DRI and 3D support
-============================
-
-DRI and 3D support is immature and not enabled, you will likely see
-messages like these in /var/log/Xorg.log:
-
-(EE) AIGLX error: dlopen of /usr/lib/dri/nouveau_dri.so failed
-(/usr/lib/dri/nouveau_dri.so: cannot open shared object file: No such
-file or directory)
-(EE) AIGLX: reverting to software rendering
-
-Software rendering means that OpenGL applications and games will run
-very slowly and often be unusable. In particular, you probably need
-to deactivate Compiz. Some programs may be configured to use XRender
-instead of OpenGL which should drastically improve their performance.
+package.
Further information
@@ -78,4 +60,4 @@ http://nouveau.freedesktop.org/wiki/FAQ
http://nouveau.freedesktop.org/wiki/TroubleShooting
http://nouveau.freedesktop.org/wiki/KernelModeSetting
- -- Sven Joachim <svenjoac@gmx.de>, Sat, 10 Sep 2011 17:46:55 +0200
+ -- Sven Joachim <svenjoac@gmx.de>, Thu, 1 Dec 2011 16:17:41 +0100
diff --git a/debian/changelog b/debian/changelog
index cdf2817..1e2c308 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,10 +3,12 @@ xserver-xorg-video-nouveau (1:0.0.16+git20111201+b5534a1-1) UNRELEASED; urgency=
* New upstream snapshot.
* Bump Standards-Version to 3.9.2, no changes needed.
* Don't claim that the driver is experimental in the description.
+ * Recommend libmesa-gl1-dri (>= 7.11.1) for the 3D drivers.
* Update README.Debian:
- No need to uninstall nvidia-glx anymore, you can select the mesa
alternative with "update-alternatives --config glx".
- Linux 3.1 includes free firmware for some Fermi cards.
+ - Drop section about lack of DRI and 3D support.
-- Sven Joachim <svenjoac@gmx.de> Sat, 10 Sep 2011 14:23:00 +0200
diff --git a/debian/control b/debian/control
index f63abe2..c4f3a94 100644
--- a/debian/control
+++ b/debian/control
@@ -34,14 +34,14 @@ Depends:
${shlibs:Depends},
${misc:Depends},
${xviddriver:Depends},
+Recommends: libgl1-mesa-dri (>= 7.11.1)
Provides: ${xviddriver:Provides}
Description: X.Org X server -- Nouveau display driver
This driver for the X.Org X server (see xserver-xorg for a further description)
provides support for NVIDIA Riva, TNT, GeForce, and Quadro cards.
.
- Although the nouveau project aims to provide full 3D support it is not yet
- complete, and these packages do not include any 3D support.
- Users requiring 3D support should use the non-free "nvidia" driver.
+ This package provides 2D support including EXA acceleration, Xv and
+ RandR. 3D functionality is provided by the libgl1-mesa-dri package.
.
This package is built from the FreeDesktop.org xf86-video-nouveau driver.
@@ -56,8 +56,7 @@ Description: X.Org X server -- Nouveau display driver (debug symbols)
This driver for the X.Org X server (see xserver-xorg for a further description)
provides support for NVIDIA Riva, TNT, GeForce, and Quadro cards.
.
- Although the nouveau project aims to provide full 3D support it is not yet
- complete, and these packages do not include any 3D support.
- Users requiring 3D support should use the non-free "nvidia" driver.
+ This package provides 2D support including EXA acceleration, Xv and
+ RandR. 3D functionality is provided by the libgl1-mesa-dri package.
.
This package provides debugging symbols for this Xorg X driver.
commit 908d088c2b2d54458e615414c8b3f602d5a23cd3
Author: Sven Joachim <svenjoac@gmx.de>
Date: Thu Dec 1 16:13:25 2011 +0100
New upstream snapshot
diff --git a/ChangeLog b/ChangeLog
index 69ce90c..2a5e32e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,50 @@
+commit b5534a15a5f5e1c3bd6c92e3ed8391ff628c09bb
+Author: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date: Wed Nov 30 18:56:54 2011 +0100
+
+ fix typo in conversion to rnn headers
+
+commit 5975ce34a12d1943b2852d0f5fbe09358754c2ad
+Author: Ben Skeggs <bskeggs@redhat.com>
+Date: Wed Nov 30 17:40:02 2011 +1000
+
+ convert entire ddx to rnn headers
+
+commit 9fa0c6c74d0b9f7d66ebe3c99184eaa13abeb1a0
+Author: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date: Sun Nov 6 20:32:10 2011 +0100
+
+ Default to 16bpp for low memory cards.
+
+commit 5aa30ae6554c957609929ef29d1b27c89e9a7f06
+Author: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date: Sun Nov 6 20:32:09 2011 +0100
+
+ nv50/exa: wait for enough space for at least one composite operation
+
+commit 3d54426c4833a7e058e50624452f89139921e64b
+Author: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date: Sun Nov 6 20:32:08 2011 +0100
+
+ add missing return in nv50_accel_init failure path
+
+commit d575a28a5020ff083836d3d1cf50018a99f49c9f
+Author: Maarten Lankhorst <m.b.lankhorst@gmail.com>
+Date: Sat Oct 8 10:33:20 2011 +0200
+
+ dri2: Add vdpau driver name entry
+
+ libvdpau has a driver loading mechanism that looks for a dri2 driver
+ first before falling back to nvidia, so lets use that.
+
+commit 656cfe3bdb8b487827b710a0cea35ae1bcd5044e
+Author: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date: Sat Sep 10 23:14:53 2011 +0200
+
+ xv: support AI44/IA44
+
+ It's needed for osd in mplayer's xvmc output.
+
commit 169512fbe91f0671a90dfee5e280357f0a4ef701
Author: Maxim Levitsky <maximlevitsky@gmail.com>
Date: Tue Aug 23 13:10:59 2011 +0200
diff --git a/debian/changelog b/debian/changelog
index 99ec81c..cdf2817 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-video-nouveau (1:0.0.16+git20110823+169512f-1) unstable; urgency=low
+xserver-xorg-video-nouveau (1:0.0.16+git20111201+b5534a1-1) UNRELEASED; urgency=low
* New upstream snapshot.
* Bump Standards-Version to 3.9.2, no changes needed.
commit b5534a15a5f5e1c3bd6c92e3ed8391ff628c09bb
Author: Marcin Slusarz <marcin.slusarz@gmail.com>
Date: Wed Nov 30 18:56:54 2011 +0100
fix typo in conversion to rnn headers
diff --git a/src/nv40_exa.c b/src/nv40_exa.c
index be479a7..258f5cf 100644
--- a/src/nv40_exa.c
+++ b/src/nv40_exa.c
@@ -603,7 +603,7 @@ NV40EXADoneComposite(PixmapPtr pdPix)
#define NV30_3D_CHIPSET_4X_MASK 0x00000baf
#define NV44TCL_CHIPSET_4X_MASK 0x00005450
Bool
-NVAccelInitNV30_3D(ScrnInfoPtr pScrn)
+NVAccelInitNV40TCL(ScrnInfoPtr pScrn)
{
NVPtr pNv = NVPTR(pScrn);
struct nouveau_channel *chan = pNv->chan;
diff --git a/src/nv50_accel.c b/src/nv50_accel.c
index 2010eb9..98945b6 100644
--- a/src/nv50_accel.c
+++ b/src/nv50_accel.c
@@ -58,7 +58,7 @@ NV50SyncToVBlank(PixmapPtr ppix, BoxPtr box)
}
Bool
-NVAccelInitNV50_3D(ScrnInfoPtr pScrn)
+NVAccelInitNV50TCL(ScrnInfoPtr pScrn)
{
NVPtr pNv = NVPTR(pScrn);
struct nouveau_channel *chan = pNv->chan;
commit 5975ce34a12d1943b2852d0f5fbe09358754c2ad
Author: Ben Skeggs <bskeggs@redhat.com>
Date: Wed Nov 30 17:40:02 2011 +1000
convert entire ddx to rnn headers
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 3afef66..75ef6dd 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -496,7 +496,6 @@ drmmode_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *dat
{
drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
drmmode_ptr drmmode = drmmode_crtc->drmmode;
- NVPtr pNv = NVPTR(crtc->scrn);
if (rotate_pixmap)
FreeScratchPixmapHeader(rotate_pixmap);
diff --git a/src/hwdefs/nv01_2d.xml.h b/src/hwdefs/nv01_2d.xml.h
new file mode 100644
index 0000000..afae00c
--- /dev/null
+++ b/src/hwdefs/nv01_2d.xml.h
@@ -0,0 +1,1416 @@
+#ifndef _HOME_SKEGGSB_GIT_ENVYTOOLS_RNNDB_NV01_2D_XML
+#define _HOME_SKEGGSB_GIT_ENVYTOOLS_RNNDB_NV01_2D_XML
+
+/* Autogenerated file, DO NOT EDIT manually!
+
+This file was generated by the rules-ng-ng headergen tool in this git repository:
+http://0x04.net/cgit/index.cgi/rules-ng-ng
+git clone git://0x04.net/rules-ng-ng
+
+The rules-ng-ng source files this header was generated from are:
+- /home/skeggsb/git/envytools/rnndb/nv_objects.xml ( 794 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/copyright.xml ( 6452 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv_m2mf.xml ( 2696 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv_object.xml ( 12672 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nvchipsets.xml ( 3617 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv_defs.xml ( 4437 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv50_defs.xml ( 5468 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nvc0_m2mf.xml ( 2687 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv01_2d.xml ( 32584 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv04_dvd.xml ( 3000 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv03_3d.xml ( 5209 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv04_3d.xml ( 17759 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv_3ddefs.xml ( 16394 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv10_3d.xml ( 18437 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv20_3d.xml ( 21107 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv30-40_3d.xml ( 31987 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv50_2d.xml ( 11113 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv50_3d.xml ( 65233 bytes, from 2011-11-30 05:49:35)
+- /home/skeggsb/git/envytools/rnndb/nv50_compute.xml ( 14012 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nv84_crypt.xml ( 2071 bytes, from 2011-11-30 05:49:35)
+- /home/skeggsb/git/envytools/rnndb/nv31_mpeg.xml ( 2269 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/nvc0_3d.xml ( 52547 bytes, from 2011-11-30 05:49:35)
+- /home/skeggsb/git/envytools/rnndb/nvc0_compute.xml ( 10865 bytes, from 2011-10-22 08:01:09)
+- /home/skeggsb/git/envytools/rnndb/blob_nvc0_pcopy.xml ( 4516 bytes, from 2011-10-22 08:01:09)
+
+Copyright (C) 2006-2011 by the following authors:
+- Artur Huillet <arthur.huillet@free.fr> (ahuillet)
+- Ben Skeggs (darktama, darktama_)
+- B. R. <koala_br@users.sourceforge.net> (koala_br)
+- Carlos Martin <carlosmn@users.sf.net> (carlosmn)
+- Christoph Bumiller <e0425955@student.tuwien.ac.at> (calim, chrisbmr)
+- Dawid Gajownik <gajownik@users.sf.net> (gajownik)
+- Dmitry Baryshkov
+- Dmitry Eremin-Solenikov <lumag@users.sf.net> (lumag)
+- EdB <edb_@users.sf.net> (edb_)
+- Erik Waling <erikwailing@users.sf.net> (erikwaling)
+- Francisco Jerez <currojerez@riseup.net> (curro)
+- imirkin <imirkin@users.sf.net> (imirkin)
+- jb17bsome <jb17bsome@bellsouth.net> (jb17bsome)
+- Jeremy Kolb <kjeremy@users.sf.net> (kjeremy)
+- Laurent Carlier <lordheavym@gmail.com> (lordheavy)
+- Luca Barbieri <luca@luca-barbieri.com> (lb, lb1)
+- Maarten Maathuis <madman2003@gmail.com> (stillunknown)
+- Marcin Kościelnicki <koriakin@0x04.net> (mwk, koriakin)
+- Mark Carey <mark.carey@gmail.com> (careym)
+- Matthieu Castet <matthieu.castet@parrot.com> (mat-c)
+- nvidiaman <nvidiaman@users.sf.net> (nvidiaman)
+- Patrice Mandin <patmandin@gmail.com> (pmandin, pmdata)
+- Pekka Paalanen <pq@iki.fi> (pq, ppaalanen)
+- Peter Popov <ironpeter@users.sf.net> (ironpeter)
+- Richard Hughes <hughsient@users.sf.net> (hughsient)
+- Rudi Cilibrasi <cilibrar@users.sf.net> (cilibrar)
+- Serge Martin
+- Simon Raffeiner
+- Stephane Loeuillet <leroutier@users.sf.net> (leroutier)
+- Stephane Marchesin <stephane.marchesin@gmail.com> (marcheu)
+- sturmflut <sturmflut@users.sf.net> (sturmflut)
+- Sylvain Munaut <tnt@246tNt.com>
+- Victor Stinner <victor.stinner@haypocalc.com> (haypo)
+- Wladmir van der Laan <laanwj@gmail.com> (miathan6)
+- Younes Manton <younes.m@gmail.com> (ymanton)
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+
+
+#define NV01_BETA_DMA_NOTIFY 0x00000180
+
+#define NV01_BETA_BETA_1D31 0x00000300
+
+
+#define NV04_BETA4_DMA_NOTIFY 0x00000180
+
+#define NV04_BETA4_BETA_FACTOR 0x00000300
+
+
+#define NV01_CHROMA_DMA_NOTIFY 0x00000180
+
+#define NV01_CHROMA_COLOR_FORMAT 0x00000300
+#define NV01_CHROMA_COLOR_FORMAT_A16R5G6B5 0x00000001
+#define NV01_CHROMA_COLOR_FORMAT_X16A1R5G5B5 0x00000002
+#define NV01_CHROMA_COLOR_FORMAT_A8R8G8B8 0x00000003
+
+#define NV01_CHROMA_COLOR 0x00000304
+
+
+#define NV01_PATTERN_DMA_NOTIFY 0x00000180
+
+#define NV01_PATTERN_COLOR_FORMAT 0x00000300
+#define NV01_PATTERN_COLOR_FORMAT_A16R5G6B5 0x00000001
+#define NV01_PATTERN_COLOR_FORMAT_X16A1R5G5B5 0x00000002
+#define NV01_PATTERN_COLOR_FORMAT_A8R8G8B8 0x00000003
+
+#define NV01_PATTERN_MONOCHROME_FORMAT 0x00000304
+#define NV01_PATTERN_MONOCHROME_FORMAT_CGA6 0x00000001
+#define NV01_PATTERN_MONOCHROME_FORMAT_LE 0x00000002
+
+#define NV01_PATTERN_MONOCHROME_SHAPE 0x00000308
+#define NV01_PATTERN_MONOCHROME_SHAPE_8X8 0x00000000
+#define NV01_PATTERN_MONOCHROME_SHAPE_64X1 0x00000001
+#define NV01_PATTERN_MONOCHROME_SHAPE_1X64 0x00000002
+
+#define NV04_PATTERN_PATTERN_SELECT 0x0000030c
+#define NV04_PATTERN_PATTERN_SELECT_MONO 0x00000001
+#define NV04_PATTERN_PATTERN_SELECT_COLOR 0x00000002
+
+#define NV01_PATTERN_MONOCHROME_COLOR(i0) (0x00000310 + 0x4*(i0))
+#define NV01_PATTERN_MONOCHROME_COLOR__ESIZE 0x00000004
+#define NV01_PATTERN_MONOCHROME_COLOR__LEN 0x00000002
+
+#define NV01_PATTERN_MONOCHROME_PATTERN(i0) (0x00000318 + 0x4*(i0))
+#define NV01_PATTERN_MONOCHROME_PATTERN__ESIZE 0x00000004
+#define NV01_PATTERN_MONOCHROME_PATTERN__LEN 0x00000002
+
+#define NV04_PATTERN_PATTERN_Y8(i0) (0x00000400 + 0x4*(i0))
+#define NV04_PATTERN_PATTERN_Y8__ESIZE 0x00000004
+#define NV04_PATTERN_PATTERN_Y8__LEN 0x00000010
+#define NV04_PATTERN_PATTERN_Y8_Y0__MASK 0x000000ff
+#define NV04_PATTERN_PATTERN_Y8_Y0__SHIFT 0
+#define NV04_PATTERN_PATTERN_Y8_Y1__MASK 0x0000ff00
+#define NV04_PATTERN_PATTERN_Y8_Y1__SHIFT 8
+#define NV04_PATTERN_PATTERN_Y8_Y2__MASK 0x00ff0000
+#define NV04_PATTERN_PATTERN_Y8_Y2__SHIFT 16
+#define NV04_PATTERN_PATTERN_Y8_Y3__MASK 0xff000000
+#define NV04_PATTERN_PATTERN_Y8_Y3__SHIFT 24
+
+#define NV04_PATTERN_PATTERN_R5G6B5(i0) (0x00000500 + 0x4*(i0))
+#define NV04_PATTERN_PATTERN_R5G6B5__ESIZE 0x00000004
+#define NV04_PATTERN_PATTERN_R5G6B5__LEN 0x00000020
+#define NV04_PATTERN_PATTERN_R5G6B5_B0__MASK 0x0000001f
+#define NV04_PATTERN_PATTERN_R5G6B5_B0__SHIFT 0
+#define NV04_PATTERN_PATTERN_R5G6B5_G0__MASK 0x000007e0
+#define NV04_PATTERN_PATTERN_R5G6B5_G0__SHIFT 5
+#define NV04_PATTERN_PATTERN_R5G6B5_R0__MASK 0x0000f800
+#define NV04_PATTERN_PATTERN_R5G6B5_R0__SHIFT 11
+#define NV04_PATTERN_PATTERN_R5G6B5_B1__MASK 0x001f0000
+#define NV04_PATTERN_PATTERN_R5G6B5_B1__SHIFT 16
+#define NV04_PATTERN_PATTERN_R5G6B5_G1__MASK 0x07e00000
+#define NV04_PATTERN_PATTERN_R5G6B5_G1__SHIFT 21
+#define NV04_PATTERN_PATTERN_R5G6B5_R1__MASK 0xf8000000
+#define NV04_PATTERN_PATTERN_R5G6B5_R1__SHIFT 27
+
+#define NV04_PATTERN_PATTERN_X1R5G5B5(i0) (0x00000600 + 0x4*(i0))
+#define NV04_PATTERN_PATTERN_X1R5G5B5__ESIZE 0x00000004
+#define NV04_PATTERN_PATTERN_X1R5G5B5__LEN 0x00000020
+#define NV04_PATTERN_PATTERN_X1R5G5B5_B0__MASK 0x0000001f
+#define NV04_PATTERN_PATTERN_X1R5G5B5_B0__SHIFT 0
+#define NV04_PATTERN_PATTERN_X1R5G5B5_G0__MASK 0x000003e0
+#define NV04_PATTERN_PATTERN_X1R5G5B5_G0__SHIFT 5
+#define NV04_PATTERN_PATTERN_X1R5G5B5_R0__MASK 0x00007c00
+#define NV04_PATTERN_PATTERN_X1R5G5B5_R0__SHIFT 10
+#define NV04_PATTERN_PATTERN_X1R5G5B5_B1__MASK 0x001f0000
+#define NV04_PATTERN_PATTERN_X1R5G5B5_B1__SHIFT 16
+#define NV04_PATTERN_PATTERN_X1R5G5B5_G1__MASK 0x03e00000
+#define NV04_PATTERN_PATTERN_X1R5G5B5_G1__SHIFT 21
+#define NV04_PATTERN_PATTERN_X1R5G5B5_R1__MASK 0x7c000000
+#define NV04_PATTERN_PATTERN_X1R5G5B5_R1__SHIFT 26
+
+#define NV04_PATTERN_PATTERN_X8R8G8B8(i0) (0x00000700 + 0x4*(i0))
+#define NV04_PATTERN_PATTERN_X8R8G8B8__ESIZE 0x00000004
+#define NV04_PATTERN_PATTERN_X8R8G8B8__LEN 0x00000040
+#define NV04_PATTERN_PATTERN_X8R8G8B8_B__MASK 0x000000ff
+#define NV04_PATTERN_PATTERN_X8R8G8B8_B__SHIFT 0
+#define NV04_PATTERN_PATTERN_X8R8G8B8_G__MASK 0x0000ff00
+#define NV04_PATTERN_PATTERN_X8R8G8B8_G__SHIFT 8
+#define NV04_PATTERN_PATTERN_X8R8G8B8_R__MASK 0x00ff0000
+#define NV04_PATTERN_PATTERN_X8R8G8B8_R__SHIFT 16
+
+
+#define NV01_CLIP_DMA_NOTIFY 0x00000180
+
+#define NV01_CLIP_POINT 0x00000300
+#define NV01_CLIP_POINT_X__MASK 0x0000ffff
+#define NV01_CLIP_POINT_X__SHIFT 0
+#define NV01_CLIP_POINT_Y__MASK 0xffff0000
+#define NV01_CLIP_POINT_Y__SHIFT 16
+
+#define NV01_CLIP_SIZE 0x00000304
+#define NV01_CLIP_SIZE_W__MASK 0x0000ffff
+#define NV01_CLIP_SIZE_W__SHIFT 0
+#define NV01_CLIP_SIZE_H__MASK 0xffff0000
+#define NV01_CLIP_SIZE_H__SHIFT 16
+
+
+#define NV01_ROP_DMA_NOTIFY 0x00000180
+
+#define NV01_ROP_ROP 0x00000300
+
+
+#define NV04_SURFACE_2D_DMA_NOTIFY 0x00000180
+
+#define NV04_SURFACE_2D_DMA_IMAGE_SOURCE 0x00000184
+
+#define NV04_SURFACE_2D_DMA_IMAGE_DESTIN 0x00000188
+
+
+#define NV50_SURFACE_2D_SRC_LINEAR 0x00000200
+
+#define NV50_SURFACE_2D_SRC_TILE_MODE 0x00000204
+
+#define NV50_SURFACE_2D_SRC_WIDTH 0x00000208
+
+#define NV50_SURFACE_2D_SRC_HEIGHT 0x0000020c
+
+#define NV50_SURFACE_2D_UNK0210 0x00000210
+
+#define NV50_SURFACE_2D_UNK0214 0x00000214
+
+#define NV50_SURFACE_2D_DST_LINEAR 0x00000218
+
+#define NV50_SURFACE_2D_DST_TILE_MODE 0x0000021c
+
+#define NV50_SURFACE_2D_DST_WIDTH 0x00000220
+
+#define NV50_SURFACE_2D_DST_HEIGHT 0x00000224
+
+#define NV50_SURFACE_2D_UNK0228 0x00000228
+
+#define NV50_SURFACE_2D_UNK022C 0x0000022c
+
+#define NV50_SURFACE_2D_OFFSET_SOURCE_HIGH 0x00000230
+
+#define NV50_SURFACE_2D_OFFSET_DESTIN_HIGH 0x00000234
+
+#define NV04_SURFACE_2D_FORMAT 0x00000300
+#define NV04_SURFACE_2D_FORMAT_Y8 0x00000001
+#define NV04_SURFACE_2D_FORMAT_X1R5G5B5_Z1R5G5B5 0x00000002
+#define NV04_SURFACE_2D_FORMAT_X1R5G5B5_X1R5G5B5 0x00000003
+#define NV04_SURFACE_2D_FORMAT_R5G6B5 0x00000004
+#define NV04_SURFACE_2D_FORMAT_Y16 0x00000005
+#define NV04_SURFACE_2D_FORMAT_X8R8G8B8_Z8R8G8B8 0x00000006
+#define NV04_SURFACE_2D_FORMAT_X8R8G8B8_X8R8G8B8 0x00000007
+#define NV04_SURFACE_2D_FORMAT_X1A7R8G8B8_Z1A7R8G8B8 0x00000008
+#define NV04_SURFACE_2D_FORMAT_X1A7R8G8B8_X1A7R8G8B8 0x00000009
+#define NV04_SURFACE_2D_FORMAT_A8R8G8B8 0x0000000a
+#define NV04_SURFACE_2D_FORMAT_Y32 0x0000000b
+
+#define NV04_SURFACE_2D_PITCH 0x00000304
+#define NV04_SURFACE_2D_PITCH_SOURCE__MASK 0x0000ffff
+#define NV04_SURFACE_2D_PITCH_SOURCE__SHIFT 0
+#define NV04_SURFACE_2D_PITCH_DESTIN__MASK 0xffff0000
+#define NV04_SURFACE_2D_PITCH_DESTIN__SHIFT 16
+
+#define NV04_SURFACE_2D_OFFSET_SOURCE 0x00000308
+
+#define NV04_SURFACE_2D_OFFSET_DESTIN 0x0000030c
+
+
+#define NV04_SURFACE_SWZ_DMA_NOTIFY 0x00000180
+
+#define NV04_SURFACE_SWZ_DMA_IMAGE 0x00000184
+
+#define NV04_SURFACE_SWZ_FORMAT 0x00000300
+#define NV04_SURFACE_SWZ_FORMAT_COLOR__MASK 0x000000ff
+#define NV04_SURFACE_SWZ_FORMAT_COLOR__SHIFT 0
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_Y8 0x00000001
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_X1R5G5B5_Z1R5G5B5 0x00000002
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_X1R5G5B5_X1R5G5B5 0x00000003
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_R5G6B5 0x00000004
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_Y16 0x00000005
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_X8R8G8B8_Z8R8G8B8 0x00000006
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_X8R8G8B8_X8R8G8B8 0x00000007
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_X1A7R8G8B8_Z1A7R8G8B8 0x00000008
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_X1A7R8G8B8_X1A7R8G8B8 0x00000009
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_A8R8G8B8 0x0000000a
+#define NV04_SURFACE_SWZ_FORMAT_COLOR_Y32 0x0000000b
+#define NV04_SURFACE_SWZ_FORMAT_BASE_SIZE_U__MASK 0x00ff0000
+#define NV04_SURFACE_SWZ_FORMAT_BASE_SIZE_U__SHIFT 16
+#define NV04_SURFACE_SWZ_FORMAT_BASE_SIZE_V__MASK 0xff000000
+#define NV04_SURFACE_SWZ_FORMAT_BASE_SIZE_V__SHIFT 24
+
+#define NV04_SURFACE_SWZ_OFFSET 0x00000304
+
+
+#define NV01_POINT_PATCH 0x0000010c
+
+#define NV01_POINT_DMA_NOTIFY 0x00000180
+
+#define NV01_POINT_CLIP 0x00000184
+
+#define NV01_POINT_PATTERN 0x00000188
+
+#define NV01_POINT_ROP 0x0000018c
+
+#define NV01_POINT_BETA 0x00000190
+
+#define NV01_POINT_SURFACE_DST 0x00000194
+
+#define NV01_POINT_OPERATION 0x000002fc
+#define NV01_POINT_OPERATION_SRCCOPY_AND 0x00000000
+#define NV01_POINT_OPERATION_ROP_AND 0x00000001
+#define NV01_POINT_OPERATION_BLEND_AND 0x00000002
+#define NV01_POINT_OPERATION_SRCCOPY 0x00000003
+#define NV01_POINT_OPERATION_SRCCOPY_PREMULT 0x00000004
+#define NV01_POINT_OPERATION_BLEND_PREMULT 0x00000005
+
+#define NV01_POINT_COLOR_FORMAT 0x00000300
+#define NV01_POINT_COLOR_FORMAT_X16A8Y8 0x00000001
+#define NV01_POINT_COLOR_FORMAT_X24Y8 0x00000002
+#define NV01_POINT_COLOR_FORMAT_X16A1R5G5B5 0x00000003
+#define NV01_POINT_COLOR_FORMAT_X17R5G5B5 0x00000004
+#define NV01_POINT_COLOR_FORMAT_A8R8G8B8 0x00000005
+#define NV01_POINT_COLOR_FORMAT_X8R8G8B8 0x00000006
+#define NV01_POINT_COLOR_FORMAT_A16Y16 0x00000007
+#define NV01_POINT_COLOR_FORMAT_X16Y16 0x00000008
+
+#define NV01_POINT_COLOR 0x00000304
+
+#define NV01_POINT_POINT(i0) (0x00000400 + 0x4*(i0))
+#define NV01_POINT_POINT__ESIZE 0x00000004
+#define NV01_POINT_POINT__LEN 0x00000020
+#define NV01_POINT_POINT_X__MASK 0x0000ffff
+#define NV01_POINT_POINT_X__SHIFT 0
+#define NV01_POINT_POINT_Y__MASK 0xffff0000
+#define NV01_POINT_POINT_Y__SHIFT 16
+
+#define NV01_POINT_POINT32_X(i0) (0x00000480 + 0x8*(i0))
+#define NV01_POINT_POINT32_X__ESIZE 0x00000008
+#define NV01_POINT_POINT32_X__LEN 0x00000010
+
+#define NV01_POINT_POINT32_Y(i0) (0x00000484 + 0x8*(i0))
+#define NV01_POINT_POINT32_Y__ESIZE 0x00000008
+#define NV01_POINT_POINT32_Y__LEN 0x00000010
+
+#define NV01_POINT_CPOINT_COLOR(i0) (0x00000500 + 0x8*(i0))
+#define NV01_POINT_CPOINT_COLOR__ESIZE 0x00000008
+#define NV01_POINT_CPOINT_COLOR__LEN 0x00000010
+
+#define NV01_POINT_CPOINT_POINT(i0) (0x00000504 + 0x8*(i0))
+#define NV01_POINT_CPOINT_POINT__ESIZE 0x00000008
+#define NV01_POINT_CPOINT_POINT__LEN 0x00000010
+#define NV01_POINT_CPOINT_POINT_X__MASK 0x0000ffff
+#define NV01_POINT_CPOINT_POINT_X__SHIFT 0
+#define NV01_POINT_CPOINT_POINT_Y__MASK 0xffff0000
+#define NV01_POINT_CPOINT_POINT_Y__SHIFT 16
+
+
+#define NV01_LINE_PATCH 0x0000010c
+
+#define NV01_LINE_DMA_NOTIFY 0x00000180
+
+#define NV01_LINE_CLIP 0x00000184
+
+#define NV01_LINE_PATTERN 0x00000188
+
+#define NV04_LIN_PATTERN 0x00000188
+
+#define NV01_LINE_ROP 0x0000018c
+
+#define NV01_LINE_BETA 0x00000190
+
+#define NV01_LINE_SURFACE_DST 0x00000194
+
+
+#define NV04_LIN_BETA4 0x00000194
+
+#define NV04_LIN_SURFACE 0x00000198
+
+#define NV01_LINE_OPERATION 0x000002fc
+#define NV01_LINE_OPERATION_SRCCOPY_AND 0x00000000
+#define NV01_LINE_OPERATION_ROP_AND 0x00000001
+#define NV01_LINE_OPERATION_BLEND_AND 0x00000002
+#define NV01_LINE_OPERATION_SRCCOPY 0x00000003
+#define NV01_LINE_OPERATION_SRCCOPY_PREMULT 0x00000004
+#define NV01_LINE_OPERATION_BLEND_PREMULT 0x00000005
+
+#define NV01_LINE_COLOR_FORMAT 0x00000300
+#define NV01_LINE_COLOR_FORMAT_A16R5G6B5 0x00000001
+#define NV01_LINE_COLOR_FORMAT_X16A1R5G5B5 0x00000002
+#define NV01_LINE_COLOR_FORMAT_A8R8G8B8 0x00000003
+
+#define NV01_LINE_COLOR 0x00000304
+
+#define NV01_LINE_LINE_POINT0(i0) (0x00000400 + 0x8*(i0))
+#define NV01_LINE_LINE_POINT0__ESIZE 0x00000008
+#define NV01_LINE_LINE_POINT0__LEN 0x00000010
+#define NV01_LINE_LINE_POINT0_X__MASK 0x0000ffff
+#define NV01_LINE_LINE_POINT0_X__SHIFT 0
+#define NV01_LINE_LINE_POINT0_Y__MASK 0xffff0000
+#define NV01_LINE_LINE_POINT0_Y__SHIFT 16
+
+#define NV01_LINE_LINE_POINT1(i0) (0x00000404 + 0x8*(i0))
+#define NV01_LINE_LINE_POINT1__ESIZE 0x00000008
+#define NV01_LINE_LINE_POINT1__LEN 0x00000010
+#define NV01_LINE_LINE_POINT1_X__MASK 0x0000ffff
+#define NV01_LINE_LINE_POINT1_X__SHIFT 0
+#define NV01_LINE_LINE_POINT1_Y__MASK 0xffff0000
+#define NV01_LINE_LINE_POINT1_Y__SHIFT 16
+
+#define NV01_LINE_LINE32_POINT0_X(i0) (0x00000480 + 0x10*(i0))
+#define NV01_LINE_LINE32_POINT0_X__ESIZE 0x00000010
+#define NV01_LINE_LINE32_POINT0_X__LEN 0x00000008
+
+#define NV01_LINE_LINE32_POINT0_Y(i0) (0x00000484 + 0x10*(i0))
+#define NV01_LINE_LINE32_POINT0_Y__ESIZE 0x00000010
+#define NV01_LINE_LINE32_POINT0_Y__LEN 0x00000008
+
+#define NV01_LINE_LINE32_POINT1_X(i0) (0x00000488 + 0x10*(i0))
+#define NV01_LINE_LINE32_POINT1_X__ESIZE 0x00000010
+#define NV01_LINE_LINE32_POINT1_X__LEN 0x00000008
+
+#define NV01_LINE_LINE32_POINT1_Y(i0) (0x0000048c + 0x10*(i0))
+#define NV01_LINE_LINE32_POINT1_Y__ESIZE 0x00000010
+#define NV01_LINE_LINE32_POINT1_Y__LEN 0x00000008
+
+#define NV01_LINE_POLYLINE(i0) (0x00000500 + 0x4*(i0))
+#define NV01_LINE_POLYLINE__ESIZE 0x00000004
+#define NV01_LINE_POLYLINE__LEN 0x00000020
+#define NV01_LINE_POLYLINE_X__MASK 0x0000ffff
+#define NV01_LINE_POLYLINE_X__SHIFT 0
+#define NV01_LINE_POLYLINE_Y__MASK 0xffff0000
+#define NV01_LINE_POLYLINE_Y__SHIFT 16
+
+#define NV01_LINE_POLYLINE32_POINT_X(i0) (0x00000580 + 0x8*(i0))
+#define NV01_LINE_POLYLINE32_POINT_X__ESIZE 0x00000008
+#define NV01_LINE_POLYLINE32_POINT_X__LEN 0x00000010
+
+#define NV01_LINE_POLYLINE32_POINT_Y(i0) (0x00000584 + 0x8*(i0))
+#define NV01_LINE_POLYLINE32_POINT_Y__ESIZE 0x00000008
+#define NV01_LINE_POLYLINE32_POINT_Y__LEN 0x00000010
+
+#define NV01_LINE_CPOLYLINE_COLOR(i0) (0x00000600 + 0x8*(i0))
+#define NV01_LINE_CPOLYLINE_COLOR__ESIZE 0x00000008
+#define NV01_LINE_CPOLYLINE_COLOR__LEN 0x00000010
+
+#define NV01_LINE_CPOLYLINE_POINT(i0) (0x00000604 + 0x8*(i0))
+#define NV01_LINE_CPOLYLINE_POINT__ESIZE 0x00000008
+#define NV01_LINE_CPOLYLINE_POINT__LEN 0x00000010
+#define NV01_LINE_CPOLYLINE_POINT_X__MASK 0x0000ffff
+#define NV01_LINE_CPOLYLINE_POINT_X__SHIFT 0
+#define NV01_LINE_CPOLYLINE_POINT_Y__MASK 0xffff0000
+#define NV01_LINE_CPOLYLINE_POINT_Y__SHIFT 16
+
+
+#define NV01_TRI_PATCH 0x0000010c
+
+#define NV01_TRI_DMA_NOTIFY 0x00000180
+
+#define NV01_TRI_CLIP 0x00000184
+
+#define NV01_TRI_PATTERN 0x00000188
+
+#define NV04_TRI_PATTERN 0x00000188
+
+#define NV01_TRI_ROP 0x0000018c
+
+#define NV01_TRI_BETA 0x00000190
+
+#define NV01_TRI_SURFACE_DST 0x00000194
+
+
+#define NV04_TRI_BETA4 0x00000194
+
+#define NV04_TRI_SURFACE 0x00000198
+
+#define NV01_TRI_OPERATION 0x000002fc
+#define NV01_TRI_OPERATION_SRCCOPY_AND 0x00000000
+#define NV01_TRI_OPERATION_ROP_AND 0x00000001
+#define NV01_TRI_OPERATION_BLEND_AND 0x00000002
+#define NV01_TRI_OPERATION_SRCCOPY 0x00000003
+#define NV01_TRI_OPERATION_SRCCOPY_PREMULT 0x00000004
+#define NV01_TRI_OPERATION_BLEND_PREMULT 0x00000005
+
+#define NV01_TRI_COLOR_FORMAT 0x00000300
+#define NV01_TRI_COLOR_FORMAT_A16R5G6B5 0x00000001
+#define NV01_TRI_COLOR_FORMAT_X16A1R5G5B5 0x00000002
+#define NV01_TRI_COLOR_FORMAT_A8R8G8B8 0x00000003
+
+#define NV01_TRI_COLOR 0x00000304
+
+#define NV01_TRI_TRIANGLE_POINT0 0x00000310
+#define NV01_TRI_TRIANGLE_POINT0_X__MASK 0x0000ffff
+#define NV01_TRI_TRIANGLE_POINT0_X__SHIFT 0
+#define NV01_TRI_TRIANGLE_POINT0_Y__MASK 0xffff0000
+#define NV01_TRI_TRIANGLE_POINT0_Y__SHIFT 16
+
+#define NV01_TRI_TRIANGLE_POINT1 0x00000314
+#define NV01_TRI_TRIANGLE_POINT1_X__MASK 0x0000ffff
+#define NV01_TRI_TRIANGLE_POINT1_X__SHIFT 0
+#define NV01_TRI_TRIANGLE_POINT1_Y__MASK 0xffff0000
+#define NV01_TRI_TRIANGLE_POINT1_Y__SHIFT 16
+
+#define NV01_TRI_TRIANGLE_POINT2 0x00000318
+#define NV01_TRI_TRIANGLE_POINT2_X__MASK 0x0000ffff
+#define NV01_TRI_TRIANGLE_POINT2_X__SHIFT 0
+#define NV01_TRI_TRIANGLE_POINT2_Y__MASK 0xffff0000
+#define NV01_TRI_TRIANGLE_POINT2_Y__SHIFT 16
+
+#define NV01_TRI_TRIANGLE32_POINT0_X 0x00000320
+
+#define NV01_TRI_TRIANGLE32_POINT0_Y 0x00000324
+
+#define NV01_TRI_TRIANGLE32_POINT1_X 0x00000328
+
+#define NV01_TRI_TRIANGLE32_POINT1_Y 0x0000032c
+
+#define NV01_TRI_TRIANGLE32_POINT2_X 0x00000330
+
+#define NV01_TRI_TRIANGLE32_POINT2_Y 0x00000334
+
+#define NV01_TRI_TRIMESH(i0) (0x00000400 + 0x4*(i0))
+#define NV01_TRI_TRIMESH__ESIZE 0x00000004
+#define NV01_TRI_TRIMESH__LEN 0x00000020
+#define NV01_TRI_TRIMESH_X__MASK 0x0000ffff
+#define NV01_TRI_TRIMESH_X__SHIFT 0
+#define NV01_TRI_TRIMESH_Y__MASK 0xffff0000
+#define NV01_TRI_TRIMESH_Y__SHIFT 16
+
+#define NV01_TRI_TRIMESH32_POINT_X(i0) (0x00000480 + 0x8*(i0))
+#define NV01_TRI_TRIMESH32_POINT_X__ESIZE 0x00000008
+#define NV01_TRI_TRIMESH32_POINT_X__LEN 0x00000010
+
+#define NV01_TRI_TRIMESH32_POINT_Y(i0) (0x00000484 + 0x8*(i0))
+#define NV01_TRI_TRIMESH32_POINT_Y__ESIZE 0x00000008
+#define NV01_TRI_TRIMESH32_POINT_Y__LEN 0x00000010
+
+#define NV01_TRI_CTRIANGLE_COLOR(i0) (0x00000500 + 0x10*(i0))
+#define NV01_TRI_CTRIANGLE_COLOR__ESIZE 0x00000010
+#define NV01_TRI_CTRIANGLE_COLOR__LEN 0x00000008
+
+#define NV01_TRI_CTRIANGLE_POINT0(i0) (0x00000504 + 0x10*(i0))
+#define NV01_TRI_CTRIANGLE_POINT0__ESIZE 0x00000010
+#define NV01_TRI_CTRIANGLE_POINT0__LEN 0x00000008
+#define NV01_TRI_CTRIANGLE_POINT0_X__MASK 0x0000ffff
+#define NV01_TRI_CTRIANGLE_POINT0_X__SHIFT 0
+#define NV01_TRI_CTRIANGLE_POINT0_Y__MASK 0xffff0000
+#define NV01_TRI_CTRIANGLE_POINT0_Y__SHIFT 16
+
+#define NV01_TRI_CTRIANGLE_POINT1(i0) (0x00000508 + 0x10*(i0))
+#define NV01_TRI_CTRIANGLE_POINT1__ESIZE 0x00000010
+#define NV01_TRI_CTRIANGLE_POINT1__LEN 0x00000008
+#define NV01_TRI_CTRIANGLE_POINT1_X__MASK 0x0000ffff
+#define NV01_TRI_CTRIANGLE_POINT1_X__SHIFT 0
+#define NV01_TRI_CTRIANGLE_POINT1_Y__MASK 0xffff0000
+#define NV01_TRI_CTRIANGLE_POINT1_Y__SHIFT 16
+
+#define NV01_TRI_CTRIANGLE_POINT2(i0) (0x0000050c + 0x10*(i0))
+#define NV01_TRI_CTRIANGLE_POINT2__ESIZE 0x00000010
+#define NV01_TRI_CTRIANGLE_POINT2__LEN 0x00000008
+#define NV01_TRI_CTRIANGLE_POINT2_X__MASK 0x0000ffff
+#define NV01_TRI_CTRIANGLE_POINT2_X__SHIFT 0
+#define NV01_TRI_CTRIANGLE_POINT2_Y__MASK 0xffff0000
+#define NV01_TRI_CTRIANGLE_POINT2_Y__SHIFT 16
+
Reply to: