dri/nouveau: Import headers from rules-ng-ng
authorViktor Novotný <noviktor@seznam.cz>
Mon, 1 Nov 2010 00:26:03 +0000 (01:26 +0100)
committerFrancisco Jerez <currojerez@riseup.net>
Mon, 15 Nov 2010 16:42:06 +0000 (17:42 +0100)
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
src/mesa/drivers/dri/nouveau/nv01_2d.xml.h [new file with mode: 0644]
src/mesa/drivers/dri/nouveau/nv04_3d.xml.h [new file with mode: 0644]
src/mesa/drivers/dri/nouveau/nv10_3d.xml.h [new file with mode: 0644]
src/mesa/drivers/dri/nouveau/nv20_3d.xml.h [new file with mode: 0644]
src/mesa/drivers/dri/nouveau/nv_m2mf.xml.h [new file with mode: 0644]
src/mesa/drivers/dri/nouveau/nv_object.xml.h [new file with mode: 0644]

diff --git a/src/mesa/drivers/dri/nouveau/nv01_2d.xml.h b/src/mesa/drivers/dri/nouveau/nv01_2d.xml.h
new file mode 100644 (file)
index 0000000..3390da0
--- /dev/null
@@ -0,0 +1,1343 @@
+#ifndef NV01_2D_XML
+#define 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:
+- nv01_2d.xml    (  33509 bytes, from 2010-11-13 23:32:57)
+- copyright.xml  (   6452 bytes, from 2010-11-15 15:10:58)
+- nv_defs.xml    (   4437 bytes, from 2010-11-01 00:28:46)
+- nv_object.xml  (  11547 bytes, from 2010-11-13 23:32:57)
+- nvchipsets.xml (   3074 bytes, from 2010-11-13 23:32:57)
+
+Copyright (C) 2006-2010 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_CONTEXT_BETA1_DMA_NOTIFY                          0x00000180
+
+#define NV01_CONTEXT_BETA1_BETA_1D31                           0x00000300
+
+
+#define NV04_BETA_SOLID_DMA_NOTIFY                             0x00000180
+
+#define NV04_BETA_SOLID_BETA_FACTOR                            0x00000300
+
+
+#define NV01_CONTEXT_COLOR_KEY_DMA_NOTIFY                      0x00000180
+
+#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT                    0x00000300
+#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A16R5G6B5          0x00000001
+#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16A1R5G5B5                0x00000002
+#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A8R8G8B8           0x00000003
+
+#define NV01_CONTEXT_COLOR_KEY_COLOR                           0x00000304
+
+
+#define NV01_CONTEXT_PATTERN_DMA_NOTIFY                                0x00000180
+
+#define NV01_CONTEXT_PATTERN_COLOR_FORMAT                      0x00000300
+
+#define NV01_CONTEXT_PATTERN_MONOCHROME_FORMAT                 0x00000304
+
+#define NV01_CONTEXT_PATTERN_SHAPE                             0x00000308
+
+#define NV01_CONTEXT_PATTERN_COLOR(i0)                        (0x00000310 + 0x4*(i0))
+#define NV01_CONTEXT_PATTERN_COLOR__ESIZE                      0x00000004
+#define NV01_CONTEXT_PATTERN_COLOR__LEN                                0x00000002
+
+#define NV01_CONTEXT_PATTERN_PATTERN(i0)                      (0x00000318 + 0x4*(i0))
+#define NV01_CONTEXT_PATTERN_PATTERN__ESIZE                    0x00000004
+#define NV01_CONTEXT_PATTERN_PATTERN__LEN                      0x00000002
+
+
+#define NV01_CONTEXT_CLIP_RECTANGLE_DMA_NOTIFY                 0x00000180
+
+#define NV01_CONTEXT_CLIP_RECTANGLE_POINT                      0x00000300
+#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_X__MASK              0x0000ffff
+#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_X__SHIFT             0
+#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y__MASK              0xffff0000
+#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y__SHIFT             16
+
+#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE                       0x00000304
+#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W__MASK               0x0000ffff
+#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W__SHIFT              0
+#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H__MASK               0xffff0000
+#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H__SHIFT              16
+
+
+#define NV04_CONTEXT_SURFACES_2D_DMA_NOTIFY                    0x00000180
+
+#define NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_SOURCE              0x00000184
+
+#define NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_DESTIN              0x00000188
+
+
+#define NV50_CONTEXT_SURFACES_2D_SRC_LINEAR                    0x00000200
+
+#define NV50_CONTEXT_SURFACES_2D_SRC_TILE_MODE                 0x00000204
+
+#define NV50_CONTEXT_SURFACES_2D_SRC_WIDTH                     0x00000208
+
+#define NV50_CONTEXT_SURFACES_2D_SRC_HEIGHT                    0x0000020c
+
+#define NV50_CONTEXT_SURFACES_2D_UNK0210                       0x00000210
+
+#define NV50_CONTEXT_SURFACES_2D_UNK0214                       0x00000214
+
+#define NV50_CONTEXT_SURFACES_2D_DST_LINEAR                    0x00000218
+
+#define NV50_CONTEXT_SURFACES_2D_DST_TILE_MODE                 0x0000021c
+
+#define NV50_CONTEXT_SURFACES_2D_DST_WIDTH                     0x00000220
+
+#define NV50_CONTEXT_SURFACES_2D_DST_HEIGHT                    0x00000224
+
+#define NV50_CONTEXT_SURFACES_2D_UNK0228                       0x00000228
+
+#define NV50_CONTEXT_SURFACES_2D_UNK022C                       0x0000022c
+
+#define NV50_CONTEXT_SURFACES_2D_OFFSET_SOURCE_HIGH            0x00000230
+
+#define NV50_CONTEXT_SURFACES_2D_OFFSET_DESTIN_HIGH            0x00000234
+
+#define NV04_CONTEXT_SURFACES_2D_FORMAT                                0x00000300
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_Y8                     0x00000001
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1R5G5B5_Z1R5G5B5      0x00000002
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1R5G5B5_X1R5G5B5      0x00000003
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_R5G6B5                 0x00000004
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_Y16                    0x00000005
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_X8R8G8B8_Z8R8G8B8      0x00000006
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_X8R8G8B8_X8R8G8B8      0x00000007
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1A7R8G8B8_Z1A7R8G8B8  0x00000008
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1A7R8G8B8_X1A7R8G8B8  0x00000009
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_A8R8G8B8               0x0000000a
+#define NV04_CONTEXT_SURFACES_2D_FORMAT_Y32                    0x0000000b
+
+#define NV04_CONTEXT_SURFACES_2D_PITCH                         0x00000304
+#define NV04_CONTEXT_SURFACES_2D_PITCH_SOURCE__MASK            0x0000ffff
+#define NV04_CONTEXT_SURFACES_2D_PITCH_SOURCE__SHIFT           0
+#define NV04_CONTEXT_SURFACES_2D_PITCH_DESTIN__MASK            0xffff0000
+#define NV04_CONTEXT_SURFACES_2D_PITCH_DESTIN__SHIFT           16
+
+#define NV04_CONTEXT_SURFACES_2D_OFFSET_SOURCE                 0x00000308
+
+#define NV04_CONTEXT_SURFACES_2D_OFFSET_DESTIN                 0x0000030c
+
+
+#define NV04_SWIZZLED_SURFACE_DMA_NOTIFY                       0x00000180
+
+#define NV04_SWIZZLED_SURFACE_DMA_IMAGE                                0x00000184
+
+#define NV04_SWIZZLED_SURFACE_FORMAT                           0x00000300
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR__MASK               0x000000ff
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR__SHIFT              0
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y8                  0x00000001
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1R5G5B5_Z1R5G5B5   0x00000002
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1R5G5B5_X1R5G5B5   0x00000003
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_R5G6B5              0x00000004
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y16                 0x00000005
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X8R8G8B8_Z8R8G8B8   0x00000006
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X8R8G8B8_X8R8G8B8   0x00000007
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1A7R8G8B8_Z1A7R8G8B8       0x00000008
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1A7R8G8B8_X1A7R8G8B8       0x00000009
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_A8R8G8B8            0x0000000a
+#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y32                 0x0000000b
+#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U__MASK         0x00ff0000
+#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U__SHIFT                16
+#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V__MASK         0xff000000
+#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V__SHIFT                24
+
+#define NV04_SWIZZLED_SURFACE_OFFSET                           0x00000304
+
+
+#define NV03_CONTEXT_ROP_DMA_NOTIFY                            0x00000180
+
+#define NV03_CONTEXT_ROP_ROP                                   0x00000300
+
+
+#define NV04_IMAGE_PATTERN_DMA_NOTIFY                          0x00000180
+
+#define NV04_IMAGE_PATTERN_COLOR_FORMAT                                0x00000300
+#define NV04_IMAGE_PATTERN_COLOR_FORMAT_A16R5G6B5              0x00000001
+#define NV04_IMAGE_PATTERN_COLOR_FORMAT_X16A1R5G5B5            0x00000002
+#define NV04_IMAGE_PATTERN_COLOR_FORMAT_A8R8G8B8               0x00000003
+
+#define NV04_IMAGE_PATTERN_MONOCHROME_FORMAT                   0x00000304
+#define NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_CGA6              0x00000001
+#define NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_LE                        0x00000002
+
+#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE                    0x00000308
+#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_8X8                        0x00000000
+#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_64X1               0x00000001
+#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_1X64               0x00000002
+
+#define NV04_IMAGE_PATTERN_PATTERN_SELECT                      0x0000030c
+#define NV04_IMAGE_PATTERN_PATTERN_SELECT_MONO                 0x00000001
+#define NV04_IMAGE_PATTERN_PATTERN_SELECT_COLOR                        0x00000002
+
+#define NV04_IMAGE_PATTERN_MONOCHROME_COLOR0                   0x00000310
+
+#define NV04_IMAGE_PATTERN_MONOCHROME_COLOR1                   0x00000314
+
+#define NV04_IMAGE_PATTERN_MONOCHROME_PATTERN0                 0x00000318
+
+#define NV04_IMAGE_PATTERN_MONOCHROME_PATTERN1                 0x0000031c
+
+#define NV04_IMAGE_PATTERN_PATTERN_Y8(i0)                     (0x00000400 + 0x4*(i0))
+#define NV04_IMAGE_PATTERN_PATTERN_Y8__ESIZE                   0x00000004
+#define NV04_IMAGE_PATTERN_PATTERN_Y8__LEN                     0x00000010
+#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y0__MASK                 0x000000ff
+#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y0__SHIFT                        0
+#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y1__MASK                 0x0000ff00
+#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y1__SHIFT                        8
+#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y2__MASK                 0x00ff0000
+#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y2__SHIFT                        16
+#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y3__MASK                 0xff000000
+#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y3__SHIFT                        24
+
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5(i0)                 (0x00000500 + 0x4*(i0))
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5__ESIZE               0x00000004
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5__LEN                 0x00000020
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B0__MASK             0x0000001f
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B0__SHIFT            0
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G0__MASK             0x000007e0
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G0__SHIFT            5
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R0__MASK             0x0000f800
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R0__SHIFT            11
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B1__MASK             0x001f0000
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B1__SHIFT            16
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G1__MASK             0x07e00000
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G1__SHIFT            21
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R1__MASK             0xf8000000
+#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R1__SHIFT            27
+
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5(i0)                       (0x00000600 + 0x4*(i0))
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5__ESIZE             0x00000004
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5__LEN               0x00000020
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B0__MASK           0x0000001f
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B0__SHIFT          0
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G0__MASK           0x000003e0
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G0__SHIFT          5
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R0__MASK           0x00007c00
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R0__SHIFT          10
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B1__MASK           0x001f0000
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B1__SHIFT          16
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G1__MASK           0x03e00000
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G1__SHIFT          21
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R1__MASK           0x7c000000
+#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R1__SHIFT          26
+
+#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8(i0)                       (0x00000700 + 0x4*(i0))
+#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8__ESIZE             0x00000004
+#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8__LEN               0x00000040
+#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_B__MASK            0x000000ff
+#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_B__SHIFT           0
+#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_G__MASK            0x0000ff00
+#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_G__SHIFT           8
+#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_R__MASK            0x00ff0000
+#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_R__SHIFT           16
+
+
+#define NV01_RENDER_SOLID_LINE_PATCH                           0x0000010c
+
+#define NV01_RENDER_SOLID_LINE_DMA_NOTIFY                      0x00000180
+
+#define NV01_RENDER_SOLID_LINE_CLIP_RECTANGLE                  0x00000184
+
+#define NV01_RENDER_SOLID_LINE_PATTERN                         0x00000188
+
+#define NV04_RENDER_SOLID_LINE_PATTERN                         0x00000188
+
+#define NV01_RENDER_SOLID_LINE_ROP                             0x0000018c
+
+#define NV01_RENDER_SOLID_LINE_BETA1                           0x00000190
+
+#define NV01_RENDER_SOLID_LINE_SURFACE_DST                     0x00000194
+
+
+#define NV04_RENDER_SOLID_LINE_BETA4                           0x00000194
+
+#define NV04_RENDER_SOLID_LINE_SURFACE                         0x00000198
+
+#define NV01_RENDER_SOLID_LINE_OPERATION                       0x000002fc
+#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_AND           0x00000000
+#define NV01_RENDER_SOLID_LINE_OPERATION_ROP_AND               0x00000001
+#define NV01_RENDER_SOLID_LINE_OPERATION_BLEND_AND             0x00000002
+#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY               0x00000003
+#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_PREMULT       0x00000004
+#define NV01_RENDER_SOLID_LINE_OPERATION_BLEND_PREMULT         0x00000005
+
+#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT                    0x00000300
+#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A16R5G6B5          0x00000001
+#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16A1R5G5B5                0x00000002
+#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A8R8G8B8           0x00000003
+
+#define NV01_RENDER_SOLID_LINE_COLOR                           0x00000304
+
+#define NV01_RENDER_SOLID_LINE_LINE_POINT0(i0)                (0x00000400 + 0x8*(i0))
+#define NV01_RENDER_SOLID_LINE_LINE_POINT0__ESIZE              0x00000008
+#define NV01_RENDER_SOLID_LINE_LINE_POINT0__LEN                        0x00000010
+#define NV01_RENDER_SOLID_LINE_LINE_POINT0_X__MASK             0x0000ffff
+#define NV01_RENDER_SOLID_LINE_LINE_POINT0_X__SHIFT            0
+#define NV01_RENDER_SOLID_LINE_LINE_POINT0_Y__MASK             0xffff0000
+#define NV01_RENDER_SOLID_LINE_LINE_POINT0_Y__SHIFT            16
+
+#define NV01_RENDER_SOLID_LINE_LINE_POINT1(i0)                (0x00000404 + 0x8*(i0))
+#define NV01_RENDER_SOLID_LINE_LINE_POINT1__ESIZE              0x00000008
+#define NV01_RENDER_SOLID_LINE_LINE_POINT1__LEN                        0x00000010
+#define NV01_RENDER_SOLID_LINE_LINE_POINT1_X__MASK             0x0000ffff
+#define NV01_RENDER_SOLID_LINE_LINE_POINT1_X__SHIFT            0
+#define NV01_RENDER_SOLID_LINE_LINE_POINT1_Y__MASK             0xffff0000
+#define NV01_RENDER_SOLID_LINE_LINE_POINT1_Y__SHIFT            16
+
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_X(i0)            (0x00000480 + 0x10*(i0))
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_X__ESIZE          0x00000010
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_X__LEN            0x00000010
+
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y(i0)            (0x00000484 + 0x10*(i0))
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y__ESIZE          0x00000010
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y__LEN            0x00000010
+
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_X(i0)            (0x00000488 + 0x10*(i0))
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_X__ESIZE          0x00000010
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_X__LEN            0x00000010
+
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y(i0)            (0x0000048c + 0x10*(i0))
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y__ESIZE          0x00000010
+#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y__LEN            0x00000010
+
+#define NV01_RENDER_SOLID_LINE_POLYLINE(i0)                   (0x00000500 + 0x4*(i0))
+#define NV01_RENDER_SOLID_LINE_POLYLINE__ESIZE                 0x00000004
+#define NV01_RENDER_SOLID_LINE_POLYLINE__LEN                   0x00000020
+#define NV01_RENDER_SOLID_LINE_POLYLINE_X__MASK                        0x0000ffff
+#define NV01_RENDER_SOLID_LINE_POLYLINE_X__SHIFT               0
+#define NV01_RENDER_SOLID_LINE_POLYLINE_Y__MASK                        0xffff0000
+#define NV01_RENDER_SOLID_LINE_POLYLINE_Y__SHIFT               16
+
+#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X(i0)         (0x00000580 + 0x8*(i0))
+#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X__ESIZE       0x00000008
+#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X__LEN         0x00000010
+
+#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y(i0)         (0x00000584 + 0x8*(i0))
+#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y__ESIZE       0x00000008
+#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y__LEN         0x00000010
+
+#define NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR(i0)            (0x00000600 + 0x8*(i0))
+#define NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR__ESIZE          0x00000008
+#define NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR__LEN            0x00000010
+
+#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT(i0)            (0x00000604 + 0x8*(i0))
+#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT__ESIZE          0x00000008
+#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT__LEN            0x00000010
+#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X__MASK         0x0000ffff
+#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X__SHIFT                0
+#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y__MASK         0xffff0000
+#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y__SHIFT                16
+
+
+#define NV01_RENDER_SOLID_TRIANGLE_PATCH                       0x0000010c
+
+#define NV01_RENDER_SOLID_TRIANGLE_DMA_NOTIFY                  0x00000180
+
+#define NV01_RENDER_SOLID_TRIANGLE_CLIP_RECTANGLE              0x00000184
+
+#define NV01_RENDER_SOLID_TRIANGLE_PATTERN                     0x00000188
+
+#define NV04_RENDER_SOLID_TRIANGLE_PATTERN                     0x00000188
+
+#define NV01_RENDER_SOLID_TRIANGLE_ROP                         0x0000018c
+
+#define NV01_RENDER_SOLID_TRIANGLE_BETA1                       0x00000190
+
+#define NV01_RENDER_SOLID_TRIANGLE_SURFACE_DST                 0x00000194
+
+
+#define NV04_RENDER_SOLID_TRIANGLE_BETA4                       0x00000194
+
+#define NV04_RENDER_SOLID_TRIANGLE_SURFACE                     0x00000198
+
+#define NV01_RENDER_SOLID_TRIANGLE_OPERATION                   0x000002fc
+#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_AND       0x00000000
+#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_ROP_AND           0x00000001
+#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_AND         0x00000002
+#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY           0x00000003
+#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_PREMULT   0x00000004
+#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_PREMULT     0x00000005
+
+#define NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT                        0x00000300
+#define NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT_A16R5G6B5      0x00000001
+#define NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT_X16A1R5G5B5    0x00000002
+#define NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT_A8R8G8B8       0x00000003
+
+#define NV01_RENDER_SOLID_TRIANGLE_COLOR                       0x00000304
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0             0x00000310
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X__MASK     0x0000ffff
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X__SHIFT    0
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y__MASK     0xffff0000
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y__SHIFT    16
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1             0x00000314
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X__MASK     0x0000ffff
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X__SHIFT    0
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y__MASK     0xffff0000
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y__SHIFT    16
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2             0x00000318
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X__MASK     0x0000ffff
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X__SHIFT    0
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y__MASK     0xffff0000
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y__SHIFT    16
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_X         0x00000320
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_Y         0x00000324
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_X         0x00000328
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_Y         0x0000032c
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_X         0x00000330
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_Y         0x00000334
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH(i0)                (0x00000400 + 0x4*(i0))
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH__ESIZE              0x00000004
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH__LEN                        0x00000020
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X__MASK             0x0000ffff
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X__SHIFT            0
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y__MASK             0xffff0000
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y__SHIFT            16
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X(i0)       (0x00000480 + 0x8*(i0))
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X__ESIZE    0x00000008
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X__LEN      0x00000010
+
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y(i0)       (0x00000484 + 0x8*(i0))
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y__ESIZE    0x00000008
+#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y__LEN      0x00000010
+
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR(i0)        (0x00000500 + 0x10*(i0))
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR__ESIZE      0x00000010
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR__LEN                0x00000008
+
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0(i0)               (0x00000504 + 0x10*(i0))
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0__ESIZE     0x00000010
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0__LEN       0x00000008
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X__MASK    0x0000ffff
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X__SHIFT   0
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y__MASK    0xffff0000
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y__SHIFT   16
+
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1(i0)               (0x00000508 + 0x10*(i0))
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1__ESIZE     0x00000010
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1__LEN       0x00000008
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X__MASK    0x0000ffff
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X__SHIFT   0
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y__MASK    0xffff0000
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y__SHIFT   16
+
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2(i0)               (0x0000050c + 0x10*(i0))
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2__ESIZE     0x00000010
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2__LEN       0x00000008
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X__MASK    0x0000ffff
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X__SHIFT   0
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y__MASK    0xffff0000
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y__SHIFT   16
+
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR(i0)         (0x00000580 + 0x8*(i0))
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR__ESIZE       0x00000008
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR__LEN         0x00000010
+
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT(i0)         (0x00000584 + 0x8*(i0))
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT__ESIZE       0x00000008
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT__LEN         0x00000010
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X__MASK      0x0000ffff
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X__SHIFT     0
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y__MASK      0xffff0000
+#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y__SHIFT     16
+
+
+#define NV01_RENDER_SOLID_RECTANGLE_PATCH                      0x0000010c
+
+#define NV01_RENDER_SOLID_RECTANGLE_DMA_NOTIFY                 0x00000180
+
+#define NV01_RENDER_SOLID_RECTANGLE_CLIP_RECTANGLE             0x00000184
+
+#define NV01_RENDER_SOLID_RECTANGLE_PATTERN                    0x00000188
+
+#define NV04_RENDER_SOLID_RECTANGLE_PATTERN                    0x00000188
+
+#define NV01_RENDER_SOLID_RECTANGLE_ROP                                0x0000018c
+
+#define NV01_RENDER_SOLID_RECTANGLE_BETA1                      0x00000190
+
+#define NV01_RENDER_SOLID_RECTANGLE_SURFACE_DST                        0x00000194
+
+
+#define NV04_RENDER_SOLID_RECTANGLE_BETA4                      0x00000194
+
+#define NV04_RENDER_SOLID_RECTANGLE_SURFACE                    0x00000198
+
+#define NV01_RENDER_SOLID_RECTANGLE_OPERATION                  0x000002fc
+#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_AND      0x00000000
+#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_ROP_AND          0x00000001
+#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_AND                0x00000002
+#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY          0x00000003
+#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_PREMULT  0x00000004
+#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_PREMULT    0x00000005
+
+#define NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT               0x00000300
+#define NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT_A16R5G6B5     0x00000001
+#define NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT_X16A1R5G5B5   0x00000002
+#define NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT_A8R8G8B8      0x00000003
+
+#define NV01_RENDER_SOLID_RECTANGLE_COLOR                      0x00000304
+
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT(i0)               (0x00000400 + 0x8*(i0))
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT__ESIZE     0x00000008
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT__LEN       0x00000010
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X__MASK    0x0000ffff
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X__SHIFT   0
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y__MASK    0xffff0000
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y__SHIFT   16
+
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE(i0)        (0x00000404 + 0x8*(i0))
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE__ESIZE      0x00000008
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE__LEN                0x00000010
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W__MASK     0x0000ffff
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W__SHIFT    0
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H__MASK     0xffff0000
+#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H__SHIFT    16
+
+
+#define NV01_IMAGE_BLIT_PATCH                                  0x0000010c
+
+
+#define NV11_IMAGE_BLIT_WAIT_FOR_IDLE                          0x00000108
+
+#define NV11_IMAGE_BLIT_FLIP_SET_READ                          0x00000120
+
+#define NV11_IMAGE_BLIT_FLIP_SET_WRITE                         0x00000124
+
+#define NV11_IMAGE_BLIT_FLIP_MAX                               0x00000128
+
+#define NV11_IMAGE_BLIT_FLIP_INCR_WRITE                                0x0000012c
+
+#define NV11_IMAGE_BLIT_FLIP_WAIT                              0x00000130
+
+#define NV11_IMAGE_BLIT_FLIP_CRTC_INCR_READ                    0x00000134
+
+#define NV01_IMAGE_BLIT_DMA_NOTIFY                             0x00000180
+
+#define NV01_IMAGE_BLIT_COLOR_KEY                              0x00000184
+
+#define NV04_IMAGE_BLIT_COLOR_KEY                              0x00000184
+
+#define NV01_IMAGE_BLIT_CLIP_RECTANGLE                         0x00000188
+
+#define NV01_IMAGE_BLIT_PATTERN                                        0x0000018c
+
+#define NV04_IMAGE_BLIT_PATTERN                                        0x0000018c
+
+#define NV01_IMAGE_BLIT_ROP                                    0x00000190
+
+#define NV01_IMAGE_BLIT_BETA1                                  0x00000194
+
+
+#define NV01_IMAGE_BLIT_SURFACE_SRC                            0x00000198
+
+#define NV01_IMAGE_BLIT_SURFACE_DST                            0x0000019c
+
+
+#define NV04_IMAGE_BLIT_BETA4                                  0x00000198
+
+#define NV04_IMAGE_BLIT_SURFACES                               0x0000019c
+
+#define NV01_IMAGE_BLIT_OPERATION                              0x000002fc
+#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY_AND                  0x00000000
+#define NV01_IMAGE_BLIT_OPERATION_ROP_AND                      0x00000001
+#define NV01_IMAGE_BLIT_OPERATION_BLEND_AND                    0x00000002
+#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY                      0x00000003
+#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY_PREMULT              0x00000004
+#define NV01_IMAGE_BLIT_OPERATION_BLEND_PREMULT                        0x00000005
+
+#define NV01_IMAGE_BLIT_POINT_IN                               0x00000300
+#define NV01_IMAGE_BLIT_POINT_IN_X__MASK                       0x0000ffff
+#define NV01_IMAGE_BLIT_POINT_IN_X__SHIFT                      0
+#define NV01_IMAGE_BLIT_POINT_IN_Y__MASK                       0xffff0000
+#define NV01_IMAGE_BLIT_POINT_IN_Y__SHIFT                      16
+
+#define NV01_IMAGE_BLIT_POINT_OUT                              0x00000304
+#define NV01_IMAGE_BLIT_POINT_OUT_X__MASK                      0x0000ffff
+#define NV01_IMAGE_BLIT_POINT_OUT_X__SHIFT                     0
+#define NV01_IMAGE_BLIT_POINT_OUT_Y__MASK                      0xffff0000
+#define NV01_IMAGE_BLIT_POINT_OUT_Y__SHIFT                     16
+
+#define NV01_IMAGE_BLIT_SIZE                                   0x00000308
+#define NV01_IMAGE_BLIT_SIZE_W__MASK                           0x0000ffff
+#define NV01_IMAGE_BLIT_SIZE_W__SHIFT                          0
+#define NV01_IMAGE_BLIT_SIZE_H__MASK                           0xffff0000
+#define NV01_IMAGE_BLIT_SIZE_H__SHIFT                          16
+
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_PATCH                      0x0000010c
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_DMA_NOTIFY                 0x00000180
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_DMA_LUT                    0x00000184
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR_KEY                  0x00000188
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_CLIP_RECTANGLE             0x0000018c
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_PATTERN                    0x00000190
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_ROP                                0x00000194
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_BETA1                      0x00000198
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_BETA4                      0x0000019c
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_SURFACE                    0x000001a0
+
+#define NV05_INDEXED_IMAGE_FROM_CPU_SURFACE                    0x000001a0
+
+#define NV05_INDEXED_IMAGE_FROM_CPU_COLOR_CONVERSION           0x000003e0
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_OPERATION                  0x000003e4
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR_FORMAT               0x000003e8
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_INDEX_FORMAT               0x000003ec
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_LUT_OFFSET                 0x000003f0
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_POINT                      0x000003f4
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_SIZE_OUT                   0x000003f8
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_SIZE_IN                    0x000003fc
+
+#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR(i0)                 (0x00000400 + 0x4*(i0))
+#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR__ESIZE               0x00000004
+#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR__LEN                 0x00000700
+
+
+#define NV10_IMAGE_FROM_CPU_WAIT_FOR_IDLE                      0x00000108
+
+#define NV01_IMAGE_FROM_CPU_PATCH                              0x0000010c
+
+#define NV01_IMAGE_FROM_CPU_DMA_NOTIFY                         0x00000180
+
+#define NV01_IMAGE_FROM_CPU_COLOR_KEY                          0x00000184
+
+#define NV04_IMAGE_FROM_CPU_COLOR_KEY                          0x00000184
+
+#define NV01_IMAGE_FROM_CPU_CLIP_RECTANGLE                     0x00000188
+
+#define NV01_IMAGE_FROM_CPU_PATTERN                            0x0000018c
+
+#define NV04_IMAGE_FROM_CPU_PATTERN                            0x0000018c
+
+#define NV01_IMAGE_FROM_CPU_ROP                                        0x00000190
+
+#define NV01_IMAGE_FROM_CPU_BETA1                              0x00000194
+
+
+#define NV01_IMAGE_FROM_CPU_SURFACE_DST                                0x00000198
+
+
+#define NV04_IMAGE_FROM_CPU_BETA4                              0x00000198
+
+#define NV04_IMAGE_FROM_CPU_SURFACE                            0x0000019c
+
+#define NV05_IMAGE_FROM_CPU_COLOR_CONVERSION                   0x000002f8
+
+#define NV01_IMAGE_FROM_CPU_OPERATION                          0x000002fc
+#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_AND              0x00000000
+#define NV01_IMAGE_FROM_CPU_OPERATION_ROP_AND                  0x00000001
+#define NV01_IMAGE_FROM_CPU_OPERATION_BLEND_AND                        0x00000002
+#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY                  0x00000003
+#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_PREMULT          0x00000004
+#define NV01_IMAGE_FROM_CPU_OPERATION_BLEND_PREMULT            0x00000005
+
+#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT                       0x00000300
+#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_R5G6G5                        0x00000001
+#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A1R5G5B5              0x00000002
+#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X1R5G5B5              0x00000003
+#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A8R8G8B8              0x00000004
+#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X8R8G8B8              0x00000005
+
+#define NV01_IMAGE_FROM_CPU_POINT                              0x00000304
+#define NV01_IMAGE_FROM_CPU_POINT_X__MASK                      0x0000ffff
+#define NV01_IMAGE_FROM_CPU_POINT_X__SHIFT                     0
+#define NV01_IMAGE_FROM_CPU_POINT_Y__MASK                      0xffff0000
+#define NV01_IMAGE_FROM_CPU_POINT_Y__SHIFT                     16
+
+#define NV01_IMAGE_FROM_CPU_SIZE_OUT                           0x00000308
+#define NV01_IMAGE_FROM_CPU_SIZE_OUT_W__MASK                   0x0000ffff
+#define NV01_IMAGE_FROM_CPU_SIZE_OUT_W__SHIFT                  0
+#define NV01_IMAGE_FROM_CPU_SIZE_OUT_H__MASK                   0xffff0000
+#define NV01_IMAGE_FROM_CPU_SIZE_OUT_H__SHIFT                  16
+
+#define NV01_IMAGE_FROM_CPU_SIZE_IN                            0x0000030c
+#define NV01_IMAGE_FROM_CPU_SIZE_IN_W__MASK                    0x0000ffff
+#define NV01_IMAGE_FROM_CPU_SIZE_IN_W__SHIFT                   0
+#define NV01_IMAGE_FROM_CPU_SIZE_IN_H__MASK                    0xffff0000
+#define NV01_IMAGE_FROM_CPU_SIZE_IN_H__SHIFT                   16
+
+#define NV01_IMAGE_FROM_CPU_COLOR(i0)                         (0x00000400 + 0x4*(i0))
+#define NV01_IMAGE_FROM_CPU_COLOR__ESIZE                       0x00000004
+#define NV01_IMAGE_FROM_CPU_COLOR__LEN                         0x00000020
+
+#define NV04_IMAGE_FROM_CPU_COLOR(i0)                         (0x00000400 + 0x4*(i0))
+#define NV04_IMAGE_FROM_CPU_COLOR__ESIZE                       0x00000004
+#define NV04_IMAGE_FROM_CPU_COLOR__LEN                         0x00000700
+
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_PATCH                    0x0000010c
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_DMA_NOTIFY               0x00000180
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_KEY                        0x00000184
+
+#define NV04_STRETCHED_IMAGE_FROM_CPU_COLOR_KEY                        0x00000184
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_PATTERN                  0x00000188
+
+#define NV04_STRETCHED_IMAGE_FROM_CPU_PATTERN                  0x00000188
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_ROP                      0x0000018c
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_BETA1                    0x00000190
+
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_SURFACE_DST              0x00000194
+
+
+#define NV04_STRETCHED_IMAGE_FROM_CPU_BETA4                    0x00000194
+
+#define NV04_STRETCHED_IMAGE_FROM_CPU_SURFACE                  0x00000198
+
+#define NV05_STRETCHED_IMAGE_FROM_CPU_COLOR_CONVERSION         0x000002f8
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_OPERATION                        0x000002fc
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_FORMAT             0x00000300
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN                  0x00000304
+#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W__MASK          0x0000ffff
+#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W__SHIFT         0
+#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H__MASK          0xffff0000
+#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H__SHIFT         16
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_DX_DU                    0x00000308
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_DY_DV                    0x0000030c
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT               0x00000310
+#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X__MASK       0x0000ffff
+#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X__SHIFT      0
+#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y__MASK       0xffff0000
+#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y__SHIFT      16
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE                        0x00000314
+#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W__MASK                0x0000ffff
+#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W__SHIFT       0
+#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H__MASK                0xffff0000
+#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H__SHIFT       16
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4                        0x00000318
+#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X__MASK                0x0000ffff
+#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X__SHIFT       0
+#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y__MASK                0xffff0000
+#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y__SHIFT       16
+
+#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR(i0)                       (0x00000400 + 0x4*(i0))
+#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR__ESIZE             0x00000004
+#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR__LEN               0x00000700
+
+
+#define NV10_SCALED_IMAGE_FROM_MEMORY_WAIT_FOR_IDLE            0x00000108
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY               0x00000180
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE                        0x00000184
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_PATTERN                  0x00000188
+
+#define NV04_SCALED_IMAGE_FROM_MEMORY_PATTERN                  0x00000188
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_ROP                      0x0000018c
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_BETA1                    0x00000190
+
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_SURFACE_DST              0x00000194
+
+
+#define NV04_SCALED_IMAGE_FROM_MEMORY_BETA4                    0x00000194
+
+#define NV04_SCALED_IMAGE_FROM_MEMORY_SURFACE                  0x00000198
+
+#define NV05_SCALED_IMAGE_FROM_MEMORY_SURFACE                  0x00000198
+
+#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION         0x000002fc
+#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER  0x00000000
+#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE        0x00000001
+#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_SUBTR_TRUNCATE  0x00000002
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT             0x00000300
+#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A1R5G5B5    0x00000001
+#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X1R5G5B5    0x00000002
+#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A8R8G8B8    0x00000003
+#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X8R8G8B8    0x00000004
+#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_V8YB8U8YA8  0x00000005
+#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_YB8V8YA8U8  0x00000006
+#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_R5G6B5      0x00000007
+#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_Y8          0x00000008
+#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_AY8         0x00000009
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION                        0x00000304
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_AND    0x00000000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_ROP_AND                0x00000001
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_AND      0x00000002
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY                0x00000003
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_PREMULT        0x00000004
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_PREMULT  0x00000005
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT               0x00000308
+#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X__MASK       0x0000ffff
+#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X__SHIFT      0
+#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y__MASK       0xffff0000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y__SHIFT      16
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE                        0x0000030c
+#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W__MASK                0x0000ffff
+#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W__SHIFT       0
+#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H__MASK                0xffff0000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H__SHIFT       16
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT                        0x00000310
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X__MASK                0x0000ffff
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X__SHIFT       0
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y__MASK                0xffff0000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y__SHIFT       16
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE                 0x00000314
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W__MASK         0x0000ffff
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W__SHIFT                0
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H__MASK         0xffff0000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H__SHIFT                16
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_DU_DX                    0x00000318
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_DV_DY                    0x0000031c
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE                     0x00000400
+#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W__MASK             0x0000ffff
+#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W__SHIFT            0
+#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H__MASK             0xffff0000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H__SHIFT            16
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT                   0x00000404
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH__MASK       0x0000ffff
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH__SHIFT      0
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN__MASK      0x00ff0000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN__SHIFT     16
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER     0x00010000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CORNER     0x00020000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER__MASK      0xff000000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER__SHIFT     24
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE       0x00000000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_BILINEAR   0x01000000
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_OFFSET                   0x00000408
+
+#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT                    0x0000040c
+#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U__MASK            0x0000ffff
+#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U__SHIFT           0
+#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V__MASK            0xffff0000
+#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V__SHIFT           16
+
+
+#define NV50_SCALED_IMAGE_FROM_MEMORY_OFFSET_HIGH              0x00000410
+
+#define NV50_SCALED_IMAGE_FROM_MEMORY_SRC_LINEAR               0x00000414
+
+#define NV50_SCALED_IMAGE_FROM_MEMORY_SRC_TILE_MODE            0x00000418
+
+
+#define NV03_GDI_RECTANGLE_TEXT_DMA_NOTIFY                     0x00000180
+
+#define NV03_GDI_RECTANGLE_TEXT_PATTERN                                0x00000184
+
+#define NV03_GDI_RECTANGLE_TEXT_ROP                            0x00000188
+
+#define NV03_GDI_RECTANGLE_TEXT_BETA1                          0x0000019c
+
+#define NV03_GDI_RECTANGLE_TEXT_SURFACE_DST                    0x00000190
+
+#define NV03_GDI_RECTANGLE_TEXT_OPERATION                      0x000002fc
+
+#define NV03_GDI_RECTANGLE_TEXT_COLOR_FORMAT                   0x00000300
+
+#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT              0x00000304
+
+#define NV03_GDI_RECTANGLE_TEXT_COLOR1_A                       0x000003fc
+
+#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT      0x00000400
+#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y__MASK      0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y__SHIFT     0
+#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X__MASK      0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X__SHIFT     16
+
+#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE       0x00000404
+#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H__MASK       0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H__SHIFT      0
+#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W__MASK       0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W__SHIFT      16
+
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B                  0x000007f4
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_L__MASK          0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_L__SHIFT         0
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_T__MASK          0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_T__SHIFT         16
+
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B                  0x000007f8
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_R__MASK          0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_R__SHIFT         0
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_B__MASK          0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_B__SHIFT         16
+
+#define NV03_GDI_RECTANGLE_TEXT_COLOR1_B                       0x000007fc
+
+#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0      0x00000800
+#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L__MASK      0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L__SHIFT     0
+#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T__MASK      0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T__SHIFT     16
+
+#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1      0x00000804
+#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R__MASK      0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R__SHIFT     0
+#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B__MASK      0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B__SHIFT     16
+
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0                  0x00000bec
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L__MASK          0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L__SHIFT         0
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T__MASK          0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T__SHIFT         16
+
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1                  0x00000bf0
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R__MASK          0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R__SHIFT         0
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B__MASK          0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B__SHIFT         16
+
+#define NV03_GDI_RECTANGLE_TEXT_COLOR1_C                       0x00000bf4
+
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_C                         0x00000bf8
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_W__MASK                 0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_W__SHIFT                        0
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_H__MASK                 0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_H__SHIFT                        16
+
+#define NV03_GDI_RECTANGLE_TEXT_POINT_C                                0x00000bfc
+#define NV03_GDI_RECTANGLE_TEXT_POINT_C_X__MASK                        0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_POINT_C_X__SHIFT               0
+#define NV03_GDI_RECTANGLE_TEXT_POINT_C_Y__MASK                        0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_POINT_C_Y__SHIFT               16
+
+#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C(i0)               (0x00000c00 + 0x4*(i0))
+#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__ESIZE     0x00000004
+#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__LEN       0x00000020
+
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0                  0x00000fe8
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_L__MASK          0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_L__SHIFT         0
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_T__MASK          0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_T__SHIFT         16
+
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1                  0x00000fec
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_R__MASK          0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_R__SHIFT         0
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_B__MASK          0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_B__SHIFT         16
+
+#define NV03_GDI_RECTANGLE_TEXT_COLOR1_D                       0x00000ff0
+
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D                      0x00000ff4
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_W__MASK              0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_W__SHIFT             0
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_H__MASK              0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_H__SHIFT             16
+
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D                     0x00000ff8
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_W__MASK             0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_W__SHIFT            0
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_H__MASK             0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_H__SHIFT            16
+
+#define NV03_GDI_RECTANGLE_TEXT_POINT_D                                0x00000ffc
+#define NV03_GDI_RECTANGLE_TEXT_POINT_D_X__MASK                        0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_POINT_D_X__SHIFT               0
+#define NV03_GDI_RECTANGLE_TEXT_POINT_D_Y__MASK                        0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_POINT_D_Y__SHIFT               16
+
+#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D(i0)               (0x00001000 + 0x4*(i0))
+#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D__ESIZE     0x00000004
+#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D__LEN       0x00000020
+
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0                  0x000013e4
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L__MASK          0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L__SHIFT         0
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T__MASK          0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T__SHIFT         16
+
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1                  0x000013e8
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R__MASK          0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R__SHIFT         0
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B__MASK          0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B__SHIFT         16
+
+#define NV03_GDI_RECTANGLE_TEXT_COLOR0_E                       0x000013ec
+
+#define NV03_GDI_RECTANGLE_TEXT_COLOR1_E                       0x000013f0
+
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E                      0x000013f4
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_W__MASK              0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_W__SHIFT             0
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_H__MASK              0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_H__SHIFT             16
+
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E                     0x000013f8
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W__MASK             0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W__SHIFT            0
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H__MASK             0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H__SHIFT            16
+
+#define NV03_GDI_RECTANGLE_TEXT_POINT_E                                0x000013fc
+#define NV03_GDI_RECTANGLE_TEXT_POINT_E_X__MASK                        0x0000ffff
+#define NV03_GDI_RECTANGLE_TEXT_POINT_E_X__SHIFT               0
+#define NV03_GDI_RECTANGLE_TEXT_POINT_E_Y__MASK                        0xffff0000
+#define NV03_GDI_RECTANGLE_TEXT_POINT_E_Y__SHIFT               16
+
+#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E(i0)       (0x00001400 + 0x4*(i0))
+#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__ESIZE    0x00000004
+#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__LEN      0x00000020
+
+
+#define NV04_GDI_RECTANGLE_TEXT_PATCH                          0x0000010c
+
+#define NV04_GDI_RECTANGLE_TEXT_DMA_NOTIFY                     0x00000180
+
+#define NV04_GDI_RECTANGLE_TEXT_DMA_FONTS                      0x00000184
+
+#define NV04_GDI_RECTANGLE_TEXT_PATTERN                                0x00000188
+
+#define NV04_GDI_RECTANGLE_TEXT_ROP                            0x0000018c
+
+#define NV04_GDI_RECTANGLE_TEXT_BETA1                          0x00000190
+
+#define NV04_GDI_RECTANGLE_TEXT_BETA4                          0x00000194
+
+#define NV04_GDI_RECTANGLE_TEXT_SURFACE                                0x00000198
+
+#define NV04_GDI_RECTANGLE_TEXT_OPERATION                      0x000002fc
+#define NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY_AND          0x00000000
+#define NV04_GDI_RECTANGLE_TEXT_OPERATION_ROP_AND              0x00000001
+#define NV04_GDI_RECTANGLE_TEXT_OPERATION_BLEND_AND            0x00000002
+#define NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY              0x00000003
+#define NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY_PREMULT      0x00000004
+#define NV04_GDI_RECTANGLE_TEXT_OPERATION_BLEND_PREMULT                0x00000005
+
+#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT                   0x00000300
+#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5         0x00000001
+#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_X16A1R5G5B5       0x00000002
+#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8          0x00000003
+
+#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT              0x00000304
+#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT_CGA6         0x00000001
+#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT_LE           0x00000002
+
+#define NV04_GDI_RECTANGLE_TEXT_COLOR1_A                       0x000003fc
+
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT(i0)  (0x00000400 + 0x8*(i0))
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT__ESIZE       0x00000008
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT__LEN 0x00000020
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y__MASK      0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y__SHIFT     0
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X__MASK      0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X__SHIFT     16
+
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE(i0)   (0x00000404 + 0x8*(i0))
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE__ESIZE        0x00000008
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE__LEN  0x00000020
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H__MASK       0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H__SHIFT      0
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W__MASK       0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W__SHIFT      16
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0                  0x000005f4
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_L__MASK          0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_L__SHIFT         0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_T__MASK          0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_T__SHIFT         16
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1                  0x000005f8
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_R__MASK          0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_R__SHIFT         0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_B__MASK          0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_B__SHIFT         16
+
+#define NV04_GDI_RECTANGLE_TEXT_COLOR1_B                       0x000005fc
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0(i0)  (0x00000600 + 0x8*(i0))
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0__ESIZE       0x00000008
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0__LEN 0x00000020
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L__MASK      0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L__SHIFT     0
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T__MASK      0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T__SHIFT     16
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1(i0)  (0x00000604 + 0x8*(i0))
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1__ESIZE       0x00000008
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1__LEN 0x00000020
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R__MASK      0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R__SHIFT     0
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B__MASK      0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B__SHIFT     16
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0                  0x000007ec
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L__MASK          0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L__SHIFT         0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T__MASK          0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T__SHIFT         16
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1                  0x000007f0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R__MASK          0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R__SHIFT         0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B__MASK          0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B__SHIFT         16
+
+#define NV04_GDI_RECTANGLE_TEXT_COLOR1_C                       0x000007f4
+
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_C                         0x000007f8
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_W__MASK                 0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_W__SHIFT                        0
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_H__MASK                 0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_H__SHIFT                        16
+
+#define NV04_GDI_RECTANGLE_TEXT_POINT_C                                0x000007fc
+#define NV04_GDI_RECTANGLE_TEXT_POINT_C_X__MASK                        0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_POINT_C_X__SHIFT               0
+#define NV04_GDI_RECTANGLE_TEXT_POINT_C_Y__MASK                        0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_POINT_C_Y__SHIFT               16
+
+#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C(i0)               (0x00000800 + 0x4*(i0))
+#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__ESIZE     0x00000004
+#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__LEN       0x00000080
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0                  0x00000be4
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L__MASK          0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L__SHIFT         0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T__MASK          0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T__SHIFT         16
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1                  0x00000be8
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R__MASK          0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R__SHIFT         0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B__MASK          0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B__SHIFT         16
+
+#define NV04_GDI_RECTANGLE_TEXT_COLOR0_E                       0x00000bec
+
+#define NV04_GDI_RECTANGLE_TEXT_COLOR1_E                       0x00000bf0
+
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E                      0x00000bf4
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_W__MASK              0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_W__SHIFT             0
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_H__MASK              0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_H__SHIFT             16
+
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E                     0x00000bf8
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W__MASK             0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W__SHIFT            0
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H__MASK             0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H__SHIFT            16
+
+#define NV04_GDI_RECTANGLE_TEXT_POINT_E                                0x00000bfc
+#define NV04_GDI_RECTANGLE_TEXT_POINT_E_X__MASK                        0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_POINT_E_X__SHIFT               0
+#define NV04_GDI_RECTANGLE_TEXT_POINT_E_Y__MASK                        0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_POINT_E_Y__SHIFT               16
+
+#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E(i0)       (0x00000c00 + 0x4*(i0))
+#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__ESIZE    0x00000004
+#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__LEN      0x00000080
+
+#define NV04_GDI_RECTANGLE_TEXT_FONT_F                         0x00000ff0
+#define NV04_GDI_RECTANGLE_TEXT_FONT_F_OFFSET__MASK            0x0fffffff
+#define NV04_GDI_RECTANGLE_TEXT_FONT_F_OFFSET__SHIFT           0
+#define NV04_GDI_RECTANGLE_TEXT_FONT_F_PITCH__MASK             0xf0000000
+#define NV04_GDI_RECTANGLE_TEXT_FONT_F_PITCH__SHIFT            28
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0                  0x00000ff4
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_L__MASK          0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_L__SHIFT         0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_T__MASK          0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_T__SHIFT         16
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1                  0x00000ff8
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_R__MASK          0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_R__SHIFT         0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_B__MASK          0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_B__SHIFT         16
+
+#define NV04_GDI_RECTANGLE_TEXT_COLOR1_F                       0x00000ffc
+
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F(i0)        (0x00001000 + 0x4*(i0))
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F__ESIZE      0x00000004
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F__LEN                0x00000100
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_INDEX__MASK 0x000000ff
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_INDEX__SHIFT        0
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_X__MASK     0x000fff00
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_X__SHIFT    8
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_Y__MASK     0xfff00000
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_Y__SHIFT    20
+
+#define NV04_GDI_RECTANGLE_TEXT_FONT_G                         0x000017f0
+#define NV04_GDI_RECTANGLE_TEXT_FONT_G_OFFSET__MASK            0x0fffffff
+#define NV04_GDI_RECTANGLE_TEXT_FONT_G_OFFSET__SHIFT           0
+#define NV04_GDI_RECTANGLE_TEXT_FONT_G_PITCH__MASK             0xf0000000
+#define NV04_GDI_RECTANGLE_TEXT_FONT_G_PITCH__SHIFT            28
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0                  0x000017f4
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_L__MASK          0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_L__SHIFT         0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_T__MASK          0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_T__SHIFT         16
+
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1                  0x000017f8
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_R__MASK          0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_R__SHIFT         0
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_B__MASK          0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_B__SHIFT         16
+
+#define NV04_GDI_RECTANGLE_TEXT_COLOR1_G                       0x000017fc
+
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT(i0)   (0x00001800 + 0x8*(i0))
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT__ESIZE        0x00000008
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT__LEN  0x00000100
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_X__MASK       0x0000ffff
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_X__SHIFT      0
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_Y__MASK       0xffff0000
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_Y__SHIFT      16
+
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX(i0)   (0x00001804 + 0x8*(i0))
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX__ESIZE        0x00000008
+#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX__LEN  0x00000100
+
+
+#define NV10_TEXTURE_FROM_CPU_WAIT_FOR_IDLE                    0x00000108
+
+#define NV10_TEXTURE_FROM_CPU_DMA_NOTIFY                       0x00000180
+
+#define NV10_TEXTURE_FROM_CPU_SURFACE                          0x00000184
+
+#define NV10_TEXTURE_FROM_CPU_COLOR_FORMAT                     0x00000300
+
+#define NV10_TEXTURE_FROM_CPU_POINT                            0x00000304
+#define NV10_TEXTURE_FROM_CPU_POINT_X__MASK                    0x0000ffff
+#define NV10_TEXTURE_FROM_CPU_POINT_X__SHIFT                   0
+#define NV10_TEXTURE_FROM_CPU_POINT_Y__MASK                    0xffff0000
+#define NV10_TEXTURE_FROM_CPU_POINT_Y__SHIFT                   16
+
+#define NV10_TEXTURE_FROM_CPU_SIZE                             0x00000308
+#define NV10_TEXTURE_FROM_CPU_SIZE_W__MASK                     0x0000ffff
+#define NV10_TEXTURE_FROM_CPU_SIZE_W__SHIFT                    0
+#define NV10_TEXTURE_FROM_CPU_SIZE_H__MASK                     0xffff0000
+#define NV10_TEXTURE_FROM_CPU_SIZE_H__SHIFT                    16
+
+#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL                  0x0000030c
+#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_X__MASK          0x0000ffff
+#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_X__SHIFT         0
+#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_W__MASK          0xffff0000
+#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_W__SHIFT         16
+
+#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL                    0x00000310
+#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_Y__MASK            0x0000ffff
+#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_Y__SHIFT           0
+#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_H__MASK            0xffff0000
+#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_H__SHIFT           16
+
+#define NV10_TEXTURE_FROM_CPU_COLOR(i0)                               (0x00000400 + 0x4*(i0))
+#define NV10_TEXTURE_FROM_CPU_COLOR__ESIZE                     0x00000004
+#define NV10_TEXTURE_FROM_CPU_COLOR__LEN                       0x00000700
+
+
+#endif /* NV01_2D_XML */
diff --git a/src/mesa/drivers/dri/nouveau/nv04_3d.xml.h b/src/mesa/drivers/dri/nouveau/nv04_3d.xml.h
new file mode 100644 (file)
index 0000000..d4fb680
--- /dev/null
@@ -0,0 +1,738 @@
+#ifndef NV04_3D_XML
+#define NV04_3D_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:
+- nv04_3d.xml    (  17839 bytes, from 2010-11-15 02:23:48)
+- copyright.xml  (   6452 bytes, from 2010-11-15 15:10:58)
+- nv_object.xml  (  11547 bytes, from 2010-11-13 23:32:57)
+- nvchipsets.xml (   3074 bytes, from 2010-11-13 23:32:57)
+- nv_defs.xml    (   4437 bytes, from 2010-11-01 00:28:46)
+- nv_3ddefs.xml  (  16394 bytes, from 2010-11-01 00:28:46)
+
+Copyright (C) 2006-2010 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 NV04_CONTEXT_SURFACES_3D_DMA_NOTIFY                    0x00000180
+
+#define NV04_CONTEXT_SURFACES_3D_DMA_COLOR                     0x00000184
+
+#define NV04_CONTEXT_SURFACES_3D_DMA_ZETA                      0x00000188
+
+#define NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL               0x000002f8
+#define NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_X__MASK       0x0000ffff
+#define NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_X__SHIFT      0
+#define NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_W__MASK       0xffff0000
+#define NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_W__SHIFT      16
+
+#define NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL                 0x000002fc
+#define NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_Y__MASK         0x0000ffff
+#define NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_Y__SHIFT                0
+#define NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_H__MASK         0xffff0000
+#define NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_H__SHIFT                16
+
+#define NV04_CONTEXT_SURFACES_3D_FORMAT                                0x00000300
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR__MASK            0x000000ff
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR__SHIFT           0
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1R5G5B5_Z1R5G5B5        0x00000001
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1R5G5B5_X1R5G5B5        0x00000002
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_R5G6B5           0x00000003
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X8R8G8B8_Z8R8G8B8        0x00000004
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X8R8G8B8_X8R8G8B8        0x00000005
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1A7R8G8B8_Z1A7R8G8B8    0x00000006
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1A7R8G8B8_X1A7R8G8B8    0x00000007
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_A8R8G8B8         0x00000008
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE__MASK             0x0000ff00
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE__SHIFT            8
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_PITCH             0x00000100
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_SWIZZLE           0x00000200
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_U__MASK      0x00ff0000
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_U__SHIFT     16
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_V__MASK      0xff000000
+#define NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_V__SHIFT     24
+
+#define NV04_CONTEXT_SURFACES_3D_CLIP_SIZE                     0x00000304
+#define NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_W__MASK             0x0000ffff
+#define NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_W__SHIFT            0
+#define NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_H__MASK             0xffff0000
+#define NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_H__SHIFT            16
+
+#define NV04_CONTEXT_SURFACES_3D_PITCH                         0x00000308
+#define NV04_CONTEXT_SURFACES_3D_PITCH_COLOR__MASK             0x0000ffff
+#define NV04_CONTEXT_SURFACES_3D_PITCH_COLOR__SHIFT            0
+#define NV04_CONTEXT_SURFACES_3D_PITCH_ZETA__MASK              0xffff0000
+#define NV04_CONTEXT_SURFACES_3D_PITCH_ZETA__SHIFT             16
+
+#define NV04_CONTEXT_SURFACES_3D_OFFSET_COLOR                  0x0000030c
+
+#define NV04_CONTEXT_SURFACES_3D_OFFSET_ZETA                   0x00000310
+
+
+#define NV04_TEXTURED_TRIANGLE_DMA_NOTIFY                      0x00000180
+
+#define NV04_TEXTURED_TRIANGLE_DMA_A                           0x00000184
+
+#define NV04_TEXTURED_TRIANGLE_DMA_B                           0x00000188
+
+#define NV04_TEXTURED_TRIANGLE_SURFACES                                0x0000018c
+
+#define NV04_TEXTURED_TRIANGLE_COLORKEY                                0x00000300
+
+#define NV04_TEXTURED_TRIANGLE_OFFSET                          0x00000304
+
+#define NV04_TEXTURED_TRIANGLE_FORMAT                          0x00000308
+#define NV04_TEXTURED_TRIANGLE_FORMAT_DMA_A                    0x00000001
+#define NV04_TEXTURED_TRIANGLE_FORMAT_DMA_B                    0x00000002
+#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_ENABLE         0x00000004
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH__MASK         0x00000030
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH__SHIFT                4
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CENTER                0x00000010
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CORNER                0x00000020
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH__MASK         0x000000c0
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH__SHIFT                6
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CENTER                0x00000040
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CORNER                0x00000080
+#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR__MASK              0x00000f00
+#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR__SHIFT             8
+#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_Y8                 0x00000100
+#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A1R5G5B5           0x00000200
+#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_X1R5G5B5           0x00000300
+#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A4R4G4B4           0x00000400
+#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_R5G6B5             0x00000500
+#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A8R8G8B8           0x00000600
+#define NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_X8R8G8B8           0x00000700
+#define NV04_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS__MASK      0x0000f000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS__SHIFT     12
+#define NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U__MASK                0x000f0000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U__SHIFT       16
+#define NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V__MASK                0x00f00000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V__SHIFT       20
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU__MASK           0x07000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU__SHIFT          24
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_REPEAT          0x01000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MIRRORED_REPEAT 0x02000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_EDGE   0x03000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_BORDER 0x04000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_WRAPU                    0x08000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV__MASK           0x70000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV__SHIFT          28
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_REPEAT          0x10000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MIRRORED_REPEAT 0x20000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_EDGE   0x30000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_BORDER 0x40000000
+#define NV04_TEXTURED_TRIANGLE_FORMAT_WRAPV                    0x80000000
+
+#define NV04_TEXTURED_TRIANGLE_FILTER                          0x0000030c
+#define NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X__MASK      0x000000ff
+#define NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X__SHIFT     0
+#define NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y__MASK      0x00007f00
+#define NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y__SHIFT     8
+#define NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE     0x00008000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS__MASK     0x00ff0000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS__SHIFT    16
+#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY__MASK             0x07000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY__SHIFT            24
+#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST           0x01000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR            0x02000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST    0x03000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST     0x04000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR     0x05000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR      0x06000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE        0x08000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY__MASK            0x70000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY__SHIFT           28
+#define NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_NEAREST          0x10000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_LINEAR           0x20000000
+#define NV04_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE       0x80000000
+
+#define NV04_TEXTURED_TRIANGLE_BLEND                           0x00000310
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP__MASK         0x0000000f
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP__SHIFT                0
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_DECAL         0x00000001
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_MODULATE      0x00000002
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_DECALALPHA    0x00000003
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_MODULATEALPHA 0x00000004
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_DECALMASK     0x00000005
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_MODULATEMASK  0x00000006
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_COPY          0x00000007
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_ADD           0x00000008
+#define NV04_TEXTURED_TRIANGLE_BLEND_MASK_BIT__MASK            0x00000030
+#define NV04_TEXTURED_TRIANGLE_BLEND_MASK_BIT__SHIFT           4
+#define NV04_TEXTURED_TRIANGLE_BLEND_MASK_BIT_LSB              0x00000010
+#define NV04_TEXTURED_TRIANGLE_BLEND_MASK_BIT_MSB              0x00000020
+#define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE__MASK          0x000000c0
+#define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE__SHIFT         6
+#define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_FLAT           0x00000040
+#define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_GOURAUD                0x00000080
+#define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_PHONG          0x000000c0
+#define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE        0x00000100
+#define NV04_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE           0x00001000
+#define NV04_TEXTURED_TRIANGLE_BLEND_FOG_ENABLE                        0x00010000
+#define NV04_TEXTURED_TRIANGLE_BLEND_BLEND_ENABLE              0x00100000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC__MASK                 0x0f000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC__SHIFT                        24
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_ZERO                  0x01000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_ONE                   0x02000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_SRC_COLOR             0x03000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_ONE_MINUS_SRC_COLOR   0x04000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_SRC_ALPHA             0x05000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_ONE_MINUS_SRC_ALPHA   0x06000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_DST_ALPHA             0x07000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_ONE_MINUS_DST_ALPHA   0x08000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_DST_COLOR             0x09000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_ONE_MINUS_DST_COLOR   0x0a000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_SRC_SRC_ALPHA_SATURATE    0x0b000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST__MASK                 0xf0000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST__SHIFT                        28
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_ZERO                  0x10000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_ONE                   0x20000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_SRC_COLOR             0x30000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_ONE_MINUS_SRC_COLOR   0x40000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_SRC_ALPHA             0x50000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_ONE_MINUS_SRC_ALPHA   0x60000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_DST_ALPHA             0x70000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_ONE_MINUS_DST_ALPHA   0x80000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_DST_COLOR             0x90000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_ONE_MINUS_DST_COLOR   0xa0000000
+#define NV04_TEXTURED_TRIANGLE_BLEND_DST_SRC_ALPHA_SATURATE    0xb0000000
+
+#define NV04_TEXTURED_TRIANGLE_CONTROL                         0x00000314
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF__MASK         0x000000ff
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF__SHIFT                0
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC__MASK                0x00000f00
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC__SHIFT       8
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_NEVER                0x00000100
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_LESS         0x00000200
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_EQUAL                0x00000300
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_LEQUAL       0x00000400
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_GREATER      0x00000500
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_NOTEQUAL     0x00000600
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_GEQUAL       0x00000700
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_ALWAYS       0x00000800
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_ENABLE            0x00001000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ORIGIN__MASK            0x00002000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ORIGIN__SHIFT           13
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ORIGIN_CENTER           0x00000000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_ORIGIN_CORNER           0x00002000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_ENABLE                        0x00004000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC__MASK            0x000f0000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC__SHIFT           16
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_NEVER            0x00010000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_LESS             0x00020000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_EQUAL            0x00030000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_LEQUAL           0x00040000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_GREATER          0x00050000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_NOTEQUAL         0x00060000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_GEQUAL           0x00070000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_ALWAYS           0x00080000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE__MASK         0x00300000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE__SHIFT                20
+#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_BOTH          0x00000000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_NONE          0x00100000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_CW            0x00200000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_CCW           0x00300000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_DITHER_ENABLE           0x00400000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_PERSPECTIVE_ENABLE    0x00800000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_WRITE                 0x01000000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT__MASK          0xc0000000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT__SHIFT         30
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_FIXED          0x40000000
+#define NV04_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_FLOAT          0x80000000
+
+#define NV04_TEXTURED_TRIANGLE_FOGCOLOR                                0x00000318
+#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_B__MASK                        0x000000ff
+#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_B__SHIFT               0
+#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_G__MASK                        0x0000ff00
+#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_G__SHIFT               8
+#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_R__MASK                        0x00ff0000
+#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_R__SHIFT               16
+#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_A__MASK                        0xff000000
+#define NV04_TEXTURED_TRIANGLE_FOGCOLOR_A__SHIFT               24
+
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX(i0)                   (0x00000400 + 0x20*(i0))
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX__ESIZE                 0x00000020
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX__LEN                   0x00000010
+
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SX(i0)                (0x00000400 + 0x20*(i0))
+
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SY(i0)                (0x00000404 + 0x20*(i0))
+
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SZ(i0)                (0x00000408 + 0x20*(i0))
+
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_RHW(i0)                       (0x0000040c + 0x20*(i0))
+
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR(i0)             (0x00000410 + 0x20*(i0))
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B__MASK          0x000000ff
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B__SHIFT         0
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G__MASK          0x0000ff00
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G__SHIFT         8
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R__MASK          0x00ff0000
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R__SHIFT         16
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A__MASK          0xff000000
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A__SHIFT         24
+
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(i0)          (0x00000414 + 0x20*(i0))
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B__MASK       0x000000ff
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B__SHIFT      0
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G__MASK       0x0000ff00
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G__SHIFT      8
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R__MASK       0x00ff0000
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R__SHIFT      16
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG__MASK     0xff000000
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG__SHIFT    24
+
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_TU(i0)                (0x00000418 + 0x20*(i0))
+
+#define NV04_TEXTURED_TRIANGLE_TLVERTEX_TV(i0)                (0x0000041c + 0x20*(i0))
+
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE(i0)              (0x00000600 + 0x4*(i0))
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE__ESIZE            0x00000004
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE__LEN              0x00000040
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I0__MASK          0x0000000f
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I0__SHIFT         0
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I1__MASK          0x000000f0
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I1__SHIFT         4
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I2__MASK          0x00000f00
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I2__SHIFT         8
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I3__MASK          0x0000f000
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I3__SHIFT         12
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I4__MASK          0x000f0000
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I4__SHIFT         16
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I5__MASK          0x00f00000
+#define NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I5__SHIFT         20
+
+
+#define NV04_MULTITEX_TRIANGLE_DMA_NOTIFY                      0x00000180
+
+#define NV04_MULTITEX_TRIANGLE_DMA_A                           0x00000184
+
+#define NV04_MULTITEX_TRIANGLE_DMA_B                           0x00000188
+
+#define NV04_MULTITEX_TRIANGLE_SURFACES                                0x0000018c
+
+#define NV04_MULTITEX_TRIANGLE_OFFSET(i0)                     (0x00000308 + 0x4*(i0))
+#define NV04_MULTITEX_TRIANGLE_OFFSET__ESIZE                   0x00000004
+#define NV04_MULTITEX_TRIANGLE_OFFSET__LEN                     0x00000002
+
+#define NV04_MULTITEX_TRIANGLE_FORMAT(i0)                     (0x00000310 + 0x4*(i0))
+#define NV04_MULTITEX_TRIANGLE_FORMAT__ESIZE                   0x00000004
+#define NV04_MULTITEX_TRIANGLE_FORMAT__LEN                     0x00000002
+#define NV04_MULTITEX_TRIANGLE_FORMAT_DMA_A                    0x00000001
+#define NV04_MULTITEX_TRIANGLE_FORMAT_DMA_B                    0x00000002
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH__MASK         0x00000030
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH__SHIFT                4
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_CENTER                0x00000010
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_CORNER                0x00000020
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH__MASK         0x000000c0
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH__SHIFT                6
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_CENTER                0x00000040
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_CORNER                0x00000080
+#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR__MASK              0x00000f00
+#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR__SHIFT             8
+#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_Y8                 0x00000100
+#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_A1R5G5B5           0x00000200
+#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_X1R5G5B5           0x00000300
+#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_A4R4G4B4           0x00000400
+#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_R5G6B5             0x00000500
+#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_A8R8G8B8           0x00000600
+#define NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_X8R8G8B8           0x00000700
+#define NV04_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS__MASK      0x0000f000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS__SHIFT     12
+#define NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U__MASK                0x000f0000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U__SHIFT       16
+#define NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V__MASK                0x00f00000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V__SHIFT       20
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU__MASK           0x07000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU__SHIFT          24
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_REPEAT          0x01000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_MIRRORED_REPEAT 0x02000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_EDGE   0x03000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_BORDER 0x04000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_WRAPU                    0x08000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV__MASK           0x70000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV__SHIFT          28
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_REPEAT          0x10000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_MIRRORED_REPEAT 0x20000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_EDGE   0x30000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_BORDER 0x40000000
+#define NV04_MULTITEX_TRIANGLE_FORMAT_WRAPV                    0x80000000
+
+#define NV04_MULTITEX_TRIANGLE_FILTER(i0)                     (0x00000318 + 0x4*(i0))
+#define NV04_MULTITEX_TRIANGLE_FILTER__ESIZE                   0x00000004
+#define NV04_MULTITEX_TRIANGLE_FILTER__LEN                     0x00000002
+#define NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X__MASK      0x000000ff
+#define NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X__SHIFT     0
+#define NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y__MASK      0x00007f00
+#define NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y__SHIFT     8
+#define NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE     0x00008000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS__MASK     0x00ff0000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS__SHIFT    16
+#define NV04_MULTITEX_TRIANGLE_FILTER_MINIFY__MASK             0x07000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MINIFY__SHIFT            24
+#define NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_NEAREST           0x01000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_LINEAR            0x02000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST    0x03000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST     0x04000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR     0x05000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR      0x06000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE        0x08000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY__MASK            0x70000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY__SHIFT           28
+#define NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY_NEAREST          0x10000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY_LINEAR           0x20000000
+#define NV04_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE       0x80000000
+
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA(i0)              (0x00000320 + 0xc*(i0))
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA__ESIZE            0x0000000c
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA__LEN              0x00000002
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE0          0x00000001
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0__MASK   0x000000fc
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0__SHIFT  2
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_ZERO    0x00000004
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_CONSTANT        0x00000008
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_PRIMARY_COLOR   0x0000000c
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_PREVIOUS        0x00000010
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_TEXTURE0        0x00000014
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_TEXTURE1        0x00000018
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_TEXTURELOD      0x0000001c
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE1          0x00000100
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1__MASK   0x0000fc00
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1__SHIFT  10
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_ZERO    0x00000400
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_CONSTANT        0x00000800
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_PRIMARY_COLOR   0x00000c00
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_PREVIOUS        0x00001000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_TEXTURE0        0x00001400
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_TEXTURE1        0x00001800
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_TEXTURELOD      0x00001c00
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE2          0x00010000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2__MASK   0x00fc0000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2__SHIFT  18
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_ZERO    0x00040000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_CONSTANT        0x00080000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_PRIMARY_COLOR   0x000c0000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_PREVIOUS        0x00100000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_TEXTURE0        0x00140000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_TEXTURE1        0x00180000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_TEXTURELOD      0x001c0000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE3          0x01000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3__MASK   0x1c000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3__SHIFT  26
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_ZERO    0x04000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_CONSTANT        0x08000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_PRIMARY_COLOR   0x0c000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_PREVIOUS        0x10000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_TEXTURE0        0x14000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_TEXTURE1        0x18000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_TEXTURELOD      0x1c000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP__MASK         0xe0000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP__SHIFT                29
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_IDENTITY      0x20000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SCALE2                0x40000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SCALE4                0x60000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_BIAS          0x80000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_BIAS_SCALE2   0xe0000000
+
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR(i0)              (0x00000324 + 0xc*(i0))
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR__ESIZE            0x0000000c
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR__LEN              0x00000002
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE0          0x00000001
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA0            0x00000002
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0__MASK   0x000000fc
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0__SHIFT  2
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_ZERO    0x00000004
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_CONSTANT        0x00000008
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_PRIMARY_COLOR   0x0000000c
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_PREVIOUS        0x00000010
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_TEXTURE0        0x00000014
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_TEXTURE1        0x00000018
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_TEXTURELOD      0x0000001c
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE1          0x00000100
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA1            0x00000200
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1__MASK   0x0000fc00
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1__SHIFT  10
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_ZERO    0x00000400
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_CONSTANT        0x00000800
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_PRIMARY_COLOR   0x00000c00
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_PREVIOUS        0x00001000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_TEXTURE0        0x00001400
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_TEXTURE1        0x00001800
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_TEXTURELOD      0x00001c00
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE2          0x00010000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA2            0x00020000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2__MASK   0x00fc0000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2__SHIFT  18
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_ZERO    0x00040000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_CONSTANT        0x00080000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_PRIMARY_COLOR   0x000c0000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_PREVIOUS        0x00100000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_TEXTURE0        0x00140000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_TEXTURE1        0x00180000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_TEXTURELOD      0x001c0000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE3          0x01000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA3            0x02000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3__MASK   0x1c000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3__SHIFT  26
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_ZERO    0x04000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_CONSTANT        0x08000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_PRIMARY_COLOR   0x0c000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_PREVIOUS        0x10000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_TEXTURE0        0x14000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_TEXTURE1        0x18000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_TEXTURELOD      0x1c000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP__MASK         0xe0000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP__SHIFT                29
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_IDENTITY      0x20000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SCALE2                0x40000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SCALE4                0x60000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_BIAS          0x80000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_BIAS_SCALE2   0xe0000000
+
+#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR                  0x00000334
+#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_B__MASK          0x000000ff
+#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_B__SHIFT         0
+#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_G__MASK          0x0000ff00
+#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_G__SHIFT         8
+#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_R__MASK          0x00ff0000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_R__SHIFT         16
+#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_A__MASK          0xff000000
+#define NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_A__SHIFT         24
+
+#define NV04_MULTITEX_TRIANGLE_BLEND                           0x00000338
+#define NV04_MULTITEX_TRIANGLE_BLEND_MASK_BIT__MASK            0x00000030
+#define NV04_MULTITEX_TRIANGLE_BLEND_MASK_BIT__SHIFT           4
+#define NV04_MULTITEX_TRIANGLE_BLEND_MASK_BIT_LSB              0x00000010
+#define NV04_MULTITEX_TRIANGLE_BLEND_MASK_BIT_MSB              0x00000020
+#define NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE__MASK          0x000000c0
+#define NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE__SHIFT         6
+#define NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_FLAT           0x00000040
+#define NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_GOURAUD                0x00000080
+#define NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_PHONG          0x000000c0
+#define NV04_MULTITEX_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE        0x00000100
+#define NV04_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE           0x00001000
+#define NV04_MULTITEX_TRIANGLE_BLEND_FOG_ENABLE                        0x00010000
+#define NV04_MULTITEX_TRIANGLE_BLEND_BLEND_ENABLE              0x00100000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC__MASK                 0x0f000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC__SHIFT                        24
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_ZERO                  0x01000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_ONE                   0x02000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_SRC_COLOR             0x03000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_ONE_MINUS_SRC_COLOR   0x04000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_SRC_ALPHA             0x05000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_ONE_MINUS_SRC_ALPHA   0x06000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_DST_ALPHA             0x07000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_ONE_MINUS_DST_ALPHA   0x08000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_DST_COLOR             0x09000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_ONE_MINUS_DST_COLOR   0x0a000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_SRC_SRC_ALPHA_SATURATE    0x0b000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST__MASK                 0xf0000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST__SHIFT                        28
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_ZERO                  0x10000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_ONE                   0x20000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_SRC_COLOR             0x30000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_ONE_MINUS_SRC_COLOR   0x40000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_SRC_ALPHA             0x50000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_ONE_MINUS_SRC_ALPHA   0x60000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_DST_ALPHA             0x70000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_ONE_MINUS_DST_ALPHA   0x80000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_DST_COLOR             0x90000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_ONE_MINUS_DST_COLOR   0xa0000000
+#define NV04_MULTITEX_TRIANGLE_BLEND_DST_SRC_ALPHA_SATURATE    0xb0000000
+
+#define NV04_MULTITEX_TRIANGLE_CONTROL0                                0x0000033c
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF__MASK                0x000000ff
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF__SHIFT       0
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC__MASK       0x00000f00
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC__SHIFT      8
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_NEVER       0x00000100
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_LESS                0x00000200
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_EQUAL       0x00000300
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_LEQUAL      0x00000400
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_GREATER     0x00000500
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_NOTEQUAL    0x00000600
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_GEQUAL      0x00000700
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_ALWAYS      0x00000800
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_ENABLE           0x00001000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ORIGIN__MASK           0x00002000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ORIGIN__SHIFT          13
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ORIGIN_CENTER          0x00000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ORIGIN_CORNER          0x00002000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_ENABLE               0x00004000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC__MASK           0x000f0000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC__SHIFT          16
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_NEVER           0x00010000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_LESS            0x00020000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_EQUAL           0x00030000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_LEQUAL          0x00040000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_GREATER         0x00050000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_NOTEQUAL                0x00060000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_GEQUAL          0x00070000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_ALWAYS          0x00080000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE__MASK                0x00300000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE__SHIFT       20
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_BOTH         0x00000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_NONE         0x00100000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_CW           0x00200000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_CCW          0x00300000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_DITHER_ENABLE          0x00400000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_PERSPECTIVE_ENABLE   0x00800000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_WRITE                        0x01000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE          0x02000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE            0x04000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE              0x08000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE            0x10000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE             0x20000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT__MASK         0xc0000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT__SHIFT                30
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_FIXED         0x40000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_FLOAT         0x80000000
+
+#define NV04_MULTITEX_TRIANGLE_CONTROL1                                0x00000340
+#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_ENABLE         0x00000001
+#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC__MASK     0x000000f0
+#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC__SHIFT    4
+#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF__MASK      0x0000ff00
+#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF__SHIFT     8
+#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ__MASK        0x00ff0000
+#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ__SHIFT       16
+#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE__MASK       0xff000000
+#define NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE__SHIFT      24
+
+#define NV04_MULTITEX_TRIANGLE_CONTROL2                                0x00000344
+#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL__MASK  0x0000000f
+#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL__SHIFT 0
+#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL__MASK 0x000000f0
+#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL__SHIFT        4
+#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS__MASK 0x00000f00
+#define NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS__SHIFT        8
+
+#define NV04_MULTITEX_TRIANGLE_FOGCOLOR                                0x00000348
+#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_B__MASK                        0x000000ff
+#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_B__SHIFT               0
+#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_G__MASK                        0x0000ff00
+#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_G__SHIFT               8
+#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_R__MASK                        0x00ff0000
+#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_R__SHIFT               16
+#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_A__MASK                        0xff000000
+#define NV04_MULTITEX_TRIANGLE_FOGCOLOR_A__SHIFT               24
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX(i0)                 (0x00000400 + 0x28*(i0))
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX__ESIZE               0x00000028
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX__LEN                 0x00000008
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SX(i0)              (0x00000400 + 0x28*(i0))
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SY(i0)              (0x00000404 + 0x28*(i0))
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SZ(i0)              (0x00000408 + 0x28*(i0))
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_RHW(i0)             (0x0000040c + 0x28*(i0))
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR(i0)           (0x00000410 + 0x28*(i0))
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B__MASK                0x000000ff
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B__SHIFT       0
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G__MASK                0x0000ff00
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G__SHIFT       8
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R__MASK                0x00ff0000
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R__SHIFT       16
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A__MASK                0xff000000
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A__SHIFT       24
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR(i0)        (0x00000414 + 0x28*(i0))
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B__MASK     0x000000ff
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B__SHIFT    0
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G__MASK     0x0000ff00
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G__SHIFT    8
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R__MASK     0x00ff0000
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R__SHIFT    16
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG__MASK   0xff000000
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG__SHIFT  24
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU0(i0)             (0x00000418 + 0x28*(i0))
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV0(i0)             (0x0000041c + 0x28*(i0))
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU1(i0)             (0x00000420 + 0x28*(i0))
+
+#define NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV1(i0)             (0x00000424 + 0x28*(i0))
+
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE(i0)              (0x00000540 + 0x4*(i0))
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE__ESIZE            0x00000004
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE__LEN              0x00000030
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I0__MASK          0x0000000f
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I0__SHIFT         0
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I1__MASK          0x000000f0
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I1__SHIFT         4
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I2__MASK          0x00000f00
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I2__SHIFT         8
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I3__MASK          0x0000f000
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I3__SHIFT         12
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I4__MASK          0x000f0000
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I4__SHIFT         16
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I5__MASK          0x00f00000
+#define NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I5__SHIFT         20
+
+
+#endif /* NV04_3D_XML */
diff --git a/src/mesa/drivers/dri/nouveau/nv10_3d.xml.h b/src/mesa/drivers/dri/nouveau/nv10_3d.xml.h
new file mode 100644 (file)
index 0000000..5bad9dc
--- /dev/null
@@ -0,0 +1,1620 @@
+#ifndef NV10_3D_XML
+#define NV10_3D_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:
+- nv20_3d.xml    (  21073 bytes, from 2010-11-15 02:24:38)
+- copyright.xml  (   6452 bytes, from 2010-11-15 15:10:58)
+- nv10_3d.xml    (  18449 bytes, from 2010-11-15 02:24:38)
+- nv_defs.xml    (   4437 bytes, from 2010-11-01 00:28:46)
+- nv_3ddefs.xml  (  16394 bytes, from 2010-11-01 00:28:46)
+- nv_object.xml  (  11547 bytes, from 2010-11-13 23:32:57)
+- nvchipsets.xml (   3074 bytes, from 2010-11-13 23:32:57)
+
+Copyright (C) 2006-2010 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 NV10_VERTEX_ATTR_POS                                   0x00000000
+#define NV10_VERTEX_ATTR_COLOR0                                        0x00000001
+#define NV10_VERTEX_ATTR_COLOR1                                        0x00000002
+#define NV10_VERTEX_ATTR_TEX0                                  0x00000003
+#define NV10_VERTEX_ATTR_TEX1                                  0x00000004
+#define NV10_VERTEX_ATTR_NORMAL                                        0x00000005
+#define NV10_VERTEX_ATTR_WEIGHT                                        0x00000006
+#define NV10_VERTEX_ATTR_FOG                                   0x00000007
+
+
+
+#define NV11_3D_FLIP_SET_READ                                  0x00000120
+
+#define NV11_3D_FLIP_SET_WRITE                                 0x00000124
+
+#define NV11_3D_FLIP_MAX                                       0x00000128
+
+#define NV11_3D_FLIP_INCR_WRITE                                        0x0000012c
+
+#define NV11_3D_FLIP_WAIT                                      0x00000130
+
+#define NV10_3D_DMA_NOTIFY                                     0x00000180
+
+#define NV10_3D_DMA_TEXTURE0                                   0x00000184
+
+#define NV10_3D_DMA_TEXTURE1                                   0x00000188
+
+#define NV10_3D_DMA_COLOR                                      0x00000194
+
+#define NV10_3D_DMA_ZETA                                       0x00000198
+
+#define NV10_3D_RT_HORIZ                                       0x00000200
+#define NV10_3D_RT_HORIZ_X__MASK                               0x0000ffff
+#define NV10_3D_RT_HORIZ_X__SHIFT                              0
+#define NV10_3D_RT_HORIZ_W__MASK                               0xffff0000
+#define NV10_3D_RT_HORIZ_W__SHIFT                              16
+
+#define NV10_3D_RT_VERT                                                0x00000204
+#define NV10_3D_RT_VERT_Y__MASK                                        0x0000ffff
+#define NV10_3D_RT_VERT_Y__SHIFT                               0
+#define NV10_3D_RT_VERT_H__MASK                                        0xffff0000
+#define NV10_3D_RT_VERT_H__SHIFT                               16
+
+#define NV10_3D_RT_FORMAT                                      0x00000208
+#define NV10_3D_RT_FORMAT_TYPE__MASK                           0x00000f00
+#define NV10_3D_RT_FORMAT_TYPE__SHIFT                          8
+#define NV10_3D_RT_FORMAT_TYPE_LINEAR                          0x00000100
+#define NV10_3D_RT_FORMAT_TYPE_SWIZZLED                                0x00000200
+#define NV10_3D_RT_FORMAT_DEPTH__MASK                          0x00000030
+#define NV10_3D_RT_FORMAT_DEPTH__SHIFT                         4
+#define NV10_3D_RT_FORMAT_DEPTH_Z24S8                          0x00000000
+#define NV10_3D_RT_FORMAT_DEPTH_Z16                            0x00000010
+#define NV10_3D_RT_FORMAT_COLOR__MASK                          0x0000000f
+#define NV10_3D_RT_FORMAT_COLOR__SHIFT                         0
+#define NV10_3D_RT_FORMAT_COLOR_R5G6B5                         0x00000003
+#define NV10_3D_RT_FORMAT_COLOR_X8R8G8B8                       0x00000005
+#define NV10_3D_RT_FORMAT_COLOR_A8R8G8B8                       0x00000008
+#define NV10_3D_RT_FORMAT_COLOR_B8                             0x00000009
+
+#define NV10_3D_RT_PITCH                                       0x0000020c
+#define NV10_3D_RT_PITCH_COLOR_PITCH__MASK                     0x0000ffff
+#define NV10_3D_RT_PITCH_COLOR_PITCH__SHIFT                    0
+#define NV10_3D_RT_PITCH_ZETA_PITCH__MASK                      0xffff0000
+#define NV10_3D_RT_PITCH_ZETA_PITCH__SHIFT                     16
+
+#define NV10_3D_COLOR_OFFSET                                   0x00000210
+
+#define NV10_3D_ZETA_OFFSET                                    0x00000214
+
+#define NV10_3D_UNK0290                                                0x00000290
+
+#define NV10_3D_VIEWPORT_CLIP_MODE                             0x000002b4
+
+#define NV10_3D_VIEWPORT_CLIP_HORIZ(i0)                               (0x000002c0 + 0x4*(i0))
+#define NV10_3D_VIEWPORT_CLIP_HORIZ__ESIZE                     0x00000004
+#define NV10_3D_VIEWPORT_CLIP_HORIZ__LEN                       0x00000008
+#define NV10_3D_VIEWPORT_CLIP_HORIZ_CLIP_L__MASK               0x000007ff
+#define NV10_3D_VIEWPORT_CLIP_HORIZ_CLIP_L__SHIFT              0
+#define NV10_3D_VIEWPORT_CLIP_HORIZ_CLIP_LEFT_ENABLE           0x00000800
+#define NV10_3D_VIEWPORT_CLIP_HORIZ_CLIP_R__MASK               0x07ff0000
+#define NV10_3D_VIEWPORT_CLIP_HORIZ_CLIP_R__SHIFT              16
+#define NV10_3D_VIEWPORT_CLIP_HORIZ_CLIP_RIGHT_ENABLE          0x08000000
+
+#define NV10_3D_VIEWPORT_CLIP_VERT(i0)                        (0x000002e0 + 0x4*(i0))
+#define NV10_3D_VIEWPORT_CLIP_VERT__ESIZE                      0x00000004
+#define NV10_3D_VIEWPORT_CLIP_VERT__LEN                                0x00000008
+#define NV10_3D_VIEWPORT_CLIP_VERT_CLIP_T__MASK                        0x000007ff
+#define NV10_3D_VIEWPORT_CLIP_VERT_CLIP_T__SHIFT               0
+#define NV10_3D_VIEWPORT_CLIP_VERT_CLIP_TOP_ENABLE             0x00000800
+#define NV10_3D_VIEWPORT_CLIP_VERT_CLIP_B__MASK                        0x07ff0000
+#define NV10_3D_VIEWPORT_CLIP_VERT_CLIP_B__SHIFT               16
+#define NV10_3D_VIEWPORT_CLIP_VERT_CLIP_BOTTOM_ENABLE          0x08000000
+
+#define NV10_3D_ALPHA_FUNC_ENABLE                              0x00000300
+
+#define NV10_3D_BLEND_FUNC_ENABLE                              0x00000304
+
+#define NV10_3D_CULL_FACE_ENABLE                               0x00000308
+
+#define NV10_3D_DEPTH_TEST_ENABLE                              0x0000030c
+
+#define NV10_3D_DITHER_ENABLE                                  0x00000310
+
+#define NV10_3D_LIGHTING_ENABLE                                        0x00000314
+
+#define NV10_3D_POINT_PARAMETERS_ENABLE                                0x00000318
+
+#define NV10_3D_POINT_SMOOTH_ENABLE                            0x0000031c
+
+#define NV10_3D_LINE_SMOOTH_ENABLE                             0x00000320
+
+#define NV10_3D_POLYGON_SMOOTH_ENABLE                          0x00000324
+
+#define NV10_3D_STENCIL_ENABLE                                 0x0000032c
+
+#define NV10_3D_POLYGON_OFFSET_POINT_ENABLE                    0x00000330
+
+#define NV10_3D_POLYGON_OFFSET_LINE_ENABLE                     0x00000334
+
+#define NV10_3D_POLYGON_OFFSET_FILL_ENABLE                     0x00000338
+
+#define NV10_3D_ALPHA_FUNC_FUNC                                        0x0000033c
+#define NV10_3D_ALPHA_FUNC_FUNC_NEVER                          0x00000200
+#define NV10_3D_ALPHA_FUNC_FUNC_LESS                           0x00000201
+#define NV10_3D_ALPHA_FUNC_FUNC_EQUAL                          0x00000202
+#define NV10_3D_ALPHA_FUNC_FUNC_LEQUAL                         0x00000203
+#define NV10_3D_ALPHA_FUNC_FUNC_GREATER                                0x00000204
+#define NV10_3D_ALPHA_FUNC_FUNC_NOTEQUAL                       0x00000205
+#define NV10_3D_ALPHA_FUNC_FUNC_GEQUAL                         0x00000206
+#define NV10_3D_ALPHA_FUNC_FUNC_ALWAYS                         0x00000207
+
+#define NV10_3D_ALPHA_FUNC_REF                                 0x00000340
+
+#define NV10_3D_BLEND_FUNC_SRC                                 0x00000344
+#define NV10_3D_BLEND_FUNC_SRC_ZERO                            0x00000000
+#define NV10_3D_BLEND_FUNC_SRC_ONE                             0x00000001
+#define NV10_3D_BLEND_FUNC_SRC_SRC_COLOR                       0x00000300
+#define NV10_3D_BLEND_FUNC_SRC_ONE_MINUS_SRC_COLOR             0x00000301
+#define NV10_3D_BLEND_FUNC_SRC_SRC_ALPHA                       0x00000302
+#define NV10_3D_BLEND_FUNC_SRC_ONE_MINUS_SRC_ALPHA             0x00000303
+#define NV10_3D_BLEND_FUNC_SRC_DST_ALPHA                       0x00000304
+#define NV10_3D_BLEND_FUNC_SRC_ONE_MINUS_DST_ALPHA             0x00000305
+#define NV10_3D_BLEND_FUNC_SRC_DST_COLOR                       0x00000306
+#define NV10_3D_BLEND_FUNC_SRC_ONE_MINUS_DST_COLOR             0x00000307
+#define NV10_3D_BLEND_FUNC_SRC_SRC_ALPHA_SATURATE              0x00000308
+#define NV10_3D_BLEND_FUNC_SRC_CONSTANT_COLOR                  0x00008001
+#define NV10_3D_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_COLOR                0x00008002
+#define NV10_3D_BLEND_FUNC_SRC_CONSTANT_ALPHA                  0x00008003
+#define NV10_3D_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_ALPHA                0x00008004
+
+#define NV10_3D_BLEND_FUNC_DST                                 0x00000348
+#define NV10_3D_BLEND_FUNC_DST_ZERO                            0x00000000
+#define NV10_3D_BLEND_FUNC_DST_ONE                             0x00000001
+#define NV10_3D_BLEND_FUNC_DST_SRC_COLOR                       0x00000300
+#define NV10_3D_BLEND_FUNC_DST_ONE_MINUS_SRC_COLOR             0x00000301
+#define NV10_3D_BLEND_FUNC_DST_SRC_ALPHA                       0x00000302
+#define NV10_3D_BLEND_FUNC_DST_ONE_MINUS_SRC_ALPHA             0x00000303
+#define NV10_3D_BLEND_FUNC_DST_DST_ALPHA                       0x00000304
+#define NV10_3D_BLEND_FUNC_DST_ONE_MINUS_DST_ALPHA             0x00000305
+#define NV10_3D_BLEND_FUNC_DST_DST_COLOR                       0x00000306
+#define NV10_3D_BLEND_FUNC_DST_ONE_MINUS_DST_COLOR             0x00000307
+#define NV10_3D_BLEND_FUNC_DST_SRC_ALPHA_SATURATE              0x00000308
+#define NV10_3D_BLEND_FUNC_DST_CONSTANT_COLOR                  0x00008001
+#define NV10_3D_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_COLOR                0x00008002
+#define NV10_3D_BLEND_FUNC_DST_CONSTANT_ALPHA                  0x00008003
+#define NV10_3D_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_ALPHA                0x00008004
+
+#define NV10_3D_BLEND_COLOR                                    0x0000034c
+#define NV10_3D_BLEND_COLOR_B__MASK                            0x000000ff
+#define NV10_3D_BLEND_COLOR_B__SHIFT                           0
+#define NV10_3D_BLEND_COLOR_G__MASK                            0x0000ff00
+#define NV10_3D_BLEND_COLOR_G__SHIFT                           8
+#define NV10_3D_BLEND_COLOR_R__MASK                            0x00ff0000
+#define NV10_3D_BLEND_COLOR_R__SHIFT                           16
+#define NV10_3D_BLEND_COLOR_A__MASK                            0xff000000
+#define NV10_3D_BLEND_COLOR_A__SHIFT                           24
+
+#define NV10_3D_BLEND_EQUATION                                 0x00000350
+#define NV10_3D_BLEND_EQUATION_FUNC_ADD                                0x00008006
+#define NV10_3D_BLEND_EQUATION_MIN                             0x00008007
+#define NV10_3D_BLEND_EQUATION_MAX                             0x00008008
+#define NV10_3D_BLEND_EQUATION_FUNC_SUBTRACT                   0x0000800a
+#define NV10_3D_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT           0x0000800b
+
+#define NV10_3D_DEPTH_FUNC                                     0x00000354
+#define NV10_3D_DEPTH_FUNC_NEVER                               0x00000200
+#define NV10_3D_DEPTH_FUNC_LESS                                        0x00000201
+#define NV10_3D_DEPTH_FUNC_EQUAL                               0x00000202
+#define NV10_3D_DEPTH_FUNC_LEQUAL                              0x00000203
+#define NV10_3D_DEPTH_FUNC_GREATER                             0x00000204
+#define NV10_3D_DEPTH_FUNC_NOTEQUAL                            0x00000205
+#define NV10_3D_DEPTH_FUNC_GEQUAL                              0x00000206
+#define NV10_3D_DEPTH_FUNC_ALWAYS                              0x00000207
+
+#define NV10_3D_COLOR_MASK                                     0x00000358
+#define NV10_3D_COLOR_MASK_B                                   0x00000001
+#define NV10_3D_COLOR_MASK_G                                   0x00000100
+#define NV10_3D_COLOR_MASK_R                                   0x00010000
+#define NV10_3D_COLOR_MASK_A                                   0x01000000
+
+#define NV10_3D_DEPTH_WRITE_ENABLE                             0x0000035c
+
+#define NV10_3D_STENCIL_MASK                                   0x00000360
+
+#define NV10_3D_STENCIL_FUNC_FUNC                              0x00000364
+#define NV10_3D_STENCIL_FUNC_FUNC_NEVER                                0x00000200
+#define NV10_3D_STENCIL_FUNC_FUNC_LESS                         0x00000201
+#define NV10_3D_STENCIL_FUNC_FUNC_EQUAL                                0x00000202
+#define NV10_3D_STENCIL_FUNC_FUNC_LEQUAL                       0x00000203
+#define NV10_3D_STENCIL_FUNC_FUNC_GREATER                      0x00000204
+#define NV10_3D_STENCIL_FUNC_FUNC_NOTEQUAL                     0x00000205
+#define NV10_3D_STENCIL_FUNC_FUNC_GEQUAL                       0x00000206
+#define NV10_3D_STENCIL_FUNC_FUNC_ALWAYS                       0x00000207
+
+#define NV10_3D_STENCIL_FUNC_REF                               0x00000368
+
+#define NV10_3D_STENCIL_FUNC_MASK                              0x0000036c
+
+#define NV10_3D_STENCIL_OP_FAIL                                        0x00000370
+#define NV10_3D_STENCIL_OP_FAIL_ZERO                           0x00000000
+#define NV10_3D_STENCIL_OP_FAIL_INVERT                         0x0000150a
+#define NV10_3D_STENCIL_OP_FAIL_KEEP                           0x00001e00
+#define NV10_3D_STENCIL_OP_FAIL_REPLACE                                0x00001e01
+#define NV10_3D_STENCIL_OP_FAIL_INCR                           0x00001e02
+#define NV10_3D_STENCIL_OP_FAIL_DECR                           0x00001e03
+#define NV10_3D_STENCIL_OP_FAIL_INCR_WRAP                      0x00008507
+#define NV10_3D_STENCIL_OP_FAIL_DECR_WRAP                      0x00008508
+
+#define NV10_3D_STENCIL_OP_ZFAIL                               0x00000374
+#define NV10_3D_STENCIL_OP_ZFAIL_ZERO                          0x00000000
+#define NV10_3D_STENCIL_OP_ZFAIL_INVERT                                0x0000150a
+#define NV10_3D_STENCIL_OP_ZFAIL_KEEP                          0x00001e00
+#define NV10_3D_STENCIL_OP_ZFAIL_REPLACE                       0x00001e01
+#define NV10_3D_STENCIL_OP_ZFAIL_INCR                          0x00001e02
+#define NV10_3D_STENCIL_OP_ZFAIL_DECR                          0x00001e03
+#define NV10_3D_STENCIL_OP_ZFAIL_INCR_WRAP                     0x00008507
+#define NV10_3D_STENCIL_OP_ZFAIL_DECR_WRAP                     0x00008508
+
+#define NV10_3D_STENCIL_OP_ZPASS                               0x00000378
+#define NV10_3D_STENCIL_OP_ZPASS_ZERO                          0x00000000
+#define NV10_3D_STENCIL_OP_ZPASS_INVERT                                0x0000150a
+#define NV10_3D_STENCIL_OP_ZPASS_KEEP                          0x00001e00
+#define NV10_3D_STENCIL_OP_ZPASS_REPLACE                       0x00001e01
+#define NV10_3D_STENCIL_OP_ZPASS_INCR                          0x00001e02
+#define NV10_3D_STENCIL_OP_ZPASS_DECR                          0x00001e03
+#define NV10_3D_STENCIL_OP_ZPASS_INCR_WRAP                     0x00008507
+#define NV10_3D_STENCIL_OP_ZPASS_DECR_WRAP                     0x00008508
+
+#define NV10_3D_SHADE_MODEL                                    0x0000037c
+#define NV10_3D_SHADE_MODEL_FLAT                               0x00001d00
+#define NV10_3D_SHADE_MODEL_SMOOTH                             0x00001d01
+
+#define NV10_3D_LINE_WIDTH                                     0x00000380
+
+#define NV10_3D_POLYGON_OFFSET_FACTOR                          0x00000384
+
+#define NV10_3D_POLYGON_OFFSET_UNITS                           0x00000388
+
+#define NV10_3D_POLYGON_MODE_FRONT                             0x0000038c
+#define NV10_3D_POLYGON_MODE_FRONT_POINT                       0x00001b00
+#define NV10_3D_POLYGON_MODE_FRONT_LINE                                0x00001b01
+#define NV10_3D_POLYGON_MODE_FRONT_FILL                                0x00001b02
+
+#define NV10_3D_POLYGON_MODE_BACK                              0x00000390
+#define NV10_3D_POLYGON_MODE_BACK_POINT                                0x00001b00
+#define NV10_3D_POLYGON_MODE_BACK_LINE                         0x00001b01
+#define NV10_3D_POLYGON_MODE_BACK_FILL                         0x00001b02
+
+#define NV10_3D_DEPTH_RANGE_NEAR                               0x00000394
+
+#define NV10_3D_DEPTH_RANGE_FAR                                        0x00000398
+
+#define NV10_3D_CULL_FACE                                      0x0000039c
+#define NV10_3D_CULL_FACE_FRONT                                        0x00000404
+#define NV10_3D_CULL_FACE_BACK                                 0x00000405
+#define NV10_3D_CULL_FACE_FRONT_AND_BACK                       0x00000408
+
+#define NV10_3D_FRONT_FACE                                     0x000003a0
+#define NV10_3D_FRONT_FACE_CW                                  0x00000900
+#define NV10_3D_FRONT_FACE_CCW                                 0x00000901
+
+
+#define NV10_3D_VERTEX_POS_3F                                  0x00000c00
+
+
+#define NV10_3D_VERTEX_POS_3F_X                                        0x00000c00
+
+#define NV10_3D_VERTEX_POS_3F_Y                                        0x00000c04
+
+#define NV10_3D_VERTEX_POS_3F_Z                                        0x00000c08
+
+#define NV10_3D_VERTEX_POS_4F                                  0x00000c18
+
+
+#define NV10_3D_VERTEX_POS_4F_X                                        0x00000c18
+
+#define NV10_3D_VERTEX_POS_4F_Y                                        0x00000c1c
+
+#define NV10_3D_VERTEX_POS_4F_Z                                        0x00000c20
+
+#define NV10_3D_VERTEX_POS_4F_W                                        0x00000c24
+
+#define NV10_3D_VERTEX_NOR_3F                                  0x00000c30
+
+
+#define NV10_3D_VERTEX_NOR_3F_X                                        0x00000c30
+
+#define NV10_3D_VERTEX_NOR_3F_Y                                        0x00000c34
+
+#define NV10_3D_VERTEX_NOR_3F_Z                                        0x00000c38
+
+#define NV10_3D_VERTEX_NOR_3I                                  0x00000c30
+
+
+#define NV10_3D_VERTEX_NOR_3I_XY                               0x00000c30
+#define NV10_3D_VERTEX_NOR_3I_XY_X__MASK                       0x0000ffff
+#define NV10_3D_VERTEX_NOR_3I_XY_X__SHIFT                      0
+#define NV10_3D_VERTEX_NOR_3I_XY_Y__MASK                       0xffff0000
+#define NV10_3D_VERTEX_NOR_3I_XY_Y__SHIFT                      16
+
+#define NV10_3D_VERTEX_NOR_3I_Z                                        0x00000c34
+#define NV10_3D_VERTEX_NOR_3I_Z_Z__MASK                                0x0000ffff
+#define NV10_3D_VERTEX_NOR_3I_Z_Z__SHIFT                       0
+
+#define NV10_3D_VERTEX_COL_4F                                  0x00000c50
+
+
+#define NV10_3D_VERTEX_COL_4F_R                                        0x00000c50
+
+#define NV10_3D_VERTEX_COL_4F_G                                        0x00000c54
+
+#define NV10_3D_VERTEX_COL_4F_B                                        0x00000c58
+
+#define NV10_3D_VERTEX_COL_4F_A                                        0x00000c5c
+
+#define NV10_3D_VERTEX_COL_3F                                  0x00000c60
+
+
+#define NV10_3D_VERTEX_COL_3F_R                                        0x00000c60
+
+#define NV10_3D_VERTEX_COL_3F_G                                        0x00000c64
+
+#define NV10_3D_VERTEX_COL_3F_B                                        0x00000c68
+
+#define NV10_3D_VERTEX_COL_4I                                  0x00000c6c
+#define NV10_3D_VERTEX_COL_4I_R__MASK                          0x000000ff
+#define NV10_3D_VERTEX_COL_4I_R__SHIFT                         0
+#define NV10_3D_VERTEX_COL_4I_G__MASK                          0x0000ff00
+#define NV10_3D_VERTEX_COL_4I_G__SHIFT                         8
+#define NV10_3D_VERTEX_COL_4I_B__MASK                          0x00ff0000
+#define NV10_3D_VERTEX_COL_4I_B__SHIFT                         16
+#define NV10_3D_VERTEX_COL_4I_A__MASK                          0xff000000
+#define NV10_3D_VERTEX_COL_4I_A__SHIFT                         24
+
+#define NV10_3D_VERTEX_COL2_3F                                 0x00000c80
+
+
+#define NV10_3D_VERTEX_COL2_3F_R                               0x00000c80
+
+#define NV10_3D_VERTEX_COL2_3F_G                               0x00000c84
+
+#define NV10_3D_VERTEX_COL2_3F_B                               0x00000c88
+
+#define NV10_3D_VERTEX_COL2_3I                                 0x00000c8c
+#define NV10_3D_VERTEX_COL2_3I_R__MASK                         0x000000ff
+#define NV10_3D_VERTEX_COL2_3I_R__SHIFT                                0
+#define NV10_3D_VERTEX_COL2_3I_G__MASK                         0x0000ff00
+#define NV10_3D_VERTEX_COL2_3I_G__SHIFT                                8
+#define NV10_3D_VERTEX_COL2_3I_B__MASK                         0x00ff0000
+#define NV10_3D_VERTEX_COL2_3I_B__SHIFT                                16
+
+#define NV10_3D_VERTEX_TX0_2F                                  0x00000c90
+
+
+#define NV10_3D_VERTEX_TX0_2F_S                                        0x00000c90
+
+#define NV10_3D_VERTEX_TX0_2F_T                                        0x00000c94
+
+#define NV10_3D_VERTEX_TX0_2I                                  0x00000c98
+#define NV10_3D_VERTEX_TX0_2I_S__MASK                          0x0000ffff
+#define NV10_3D_VERTEX_TX0_2I_S__SHIFT                         0
+#define NV10_3D_VERTEX_TX0_2I_T__MASK                          0xffff0000
+#define NV10_3D_VERTEX_TX0_2I_T__SHIFT                         16
+
+#define NV10_3D_VERTEX_TX0_4F                                  0x00000ca0
+
+
+#define NV10_3D_VERTEX_TX0_4F_S                                        0x00000ca0
+
+#define NV10_3D_VERTEX_TX0_4F_T                                        0x00000ca4
+
+#define NV10_3D_VERTEX_TX0_4F_R                                        0x00000ca8
+
+#define NV10_3D_VERTEX_TX0_4F_Q                                        0x00000cac
+
+#define NV10_3D_VERTEX_TX0_4I                                  0x00000cb0
+
+
+#define NV10_3D_VERTEX_TX0_4I_ST                               0x00000cb0
+#define NV10_3D_VERTEX_TX0_4I_ST_S__MASK                       0x0000ffff
+#define NV10_3D_VERTEX_TX0_4I_ST_S__SHIFT                      0
+#define NV10_3D_VERTEX_TX0_4I_ST_T__MASK                       0xffff0000
+#define NV10_3D_VERTEX_TX0_4I_ST_T__SHIFT                      16
+
+#define NV10_3D_VERTEX_TX0_4I_RQ                               0x00000cb4
+#define NV10_3D_VERTEX_TX0_4I_RQ_R__MASK                       0x0000ffff
+#define NV10_3D_VERTEX_TX0_4I_RQ_R__SHIFT                      0
+#define NV10_3D_VERTEX_TX0_4I_RQ_Q__MASK                       0xffff0000
+#define NV10_3D_VERTEX_TX0_4I_RQ_Q__SHIFT                      16
+
+#define NV10_3D_VERTEX_TX1_2F                                  0x00000cb8
+
+
+#define NV10_3D_VERTEX_TX1_2F_S                                        0x00000cb8
+
+#define NV10_3D_VERTEX_TX1_2F_T                                        0x00000cbc
+
+#define NV10_3D_VERTEX_TX1_2I                                  0x00000cc0
+#define NV10_3D_VERTEX_TX1_2I_S__MASK                          0x0000ffff
+#define NV10_3D_VERTEX_TX1_2I_S__SHIFT                         0
+#define NV10_3D_VERTEX_TX1_2I_T__MASK                          0xffff0000
+#define NV10_3D_VERTEX_TX1_2I_T__SHIFT                         16
+
+#define NV10_3D_VERTEX_TX1_4F                                  0x00000cc8
+
+
+#define NV10_3D_VERTEX_TX1_4F_S                                        0x00000cc8
+
+#define NV10_3D_VERTEX_TX1_4F_T                                        0x00000ccc
+
+#define NV10_3D_VERTEX_TX1_4F_R                                        0x00000cd0
+
+#define NV10_3D_VERTEX_TX1_4F_Q                                        0x00000cd4
+
+#define NV10_3D_VERTEX_TX1_4I                                  0x00000cd8
+
+
+#define NV10_3D_VERTEX_TX1_4I_ST                               0x00000cd8
+#define NV10_3D_VERTEX_TX1_4I_ST_S__MASK                       0x0000ffff
+#define NV10_3D_VERTEX_TX1_4I_ST_S__SHIFT                      0
+#define NV10_3D_VERTEX_TX1_4I_ST_T__MASK                       0xffff0000
+#define NV10_3D_VERTEX_TX1_4I_ST_T__SHIFT                      16
+
+#define NV10_3D_VERTEX_TX1_4I_RQ                               0x00000cdc
+#define NV10_3D_VERTEX_TX1_4I_RQ_R__MASK                       0x0000ffff
+#define NV10_3D_VERTEX_TX1_4I_RQ_R__SHIFT                      0
+#define NV10_3D_VERTEX_TX1_4I_RQ_Q__MASK                       0xffff0000
+#define NV10_3D_VERTEX_TX1_4I_RQ_Q__SHIFT                      16
+
+#define NV10_3D_VERTEX_FOG_1F                                  0x00000ce0
+
+#define NV10_3D_VERTEX_WGH_1F                                  0x00000ce4
+
+#define NV10_3D_EDGEFLAG_ENABLE                                        0x00000cec
+
+
+#define NV10_3D_DMA_VTXBUF                                     0x0000018c
+
+#define NV10_3D_VTXBUF_VALIDATE                                        0x00000cf0
+
+
+#define NV10_3D_VTXBUF_OFFSET(i0)                             (0x00000d00 + 0x8*(i0))
+
+#define NV10_3D_VTXBUF_FMT(i0)                                (0x00000d04 + 0x8*(i0))
+#define NV10_3D_VTXBUF_FMT_TYPE__MASK                          0x0000000f
+#define NV10_3D_VTXBUF_FMT_TYPE__SHIFT                         0
+#define NV10_3D_VTXBUF_FMT_TYPE_B8G8R8A8_UNORM                 0x00000000
+#define NV10_3D_VTXBUF_FMT_TYPE_V16_SNORM                      0x00000001
+#define NV10_3D_VTXBUF_FMT_TYPE_V32_FLOAT                      0x00000002
+#define NV10_3D_VTXBUF_FMT_TYPE_U8_UNORM                       0x00000004
+#define NV10_3D_VTXBUF_FMT_FIELDS__MASK                                0x000000f0
+#define NV10_3D_VTXBUF_FMT_FIELDS__SHIFT                       4
+#define NV10_3D_VTXBUF_FMT_STRIDE__MASK                                0x0000ff00
+#define NV10_3D_VTXBUF_FMT_STRIDE__SHIFT                       8
+#define NV10_3D_VTXBUF_FMT_POS_HOMOGENEOUS                     0x01000000
+
+#define NV10_3D_VERTEX_BEGIN_END                               0x00000dfc
+#define NV10_3D_VERTEX_BEGIN_END_STOP                          0x00000000
+#define NV10_3D_VERTEX_BEGIN_END_POINTS                                0x00000001
+#define NV10_3D_VERTEX_BEGIN_END_LINES                         0x00000002
+#define NV10_3D_VERTEX_BEGIN_END_LINE_LOOP                     0x00000003
+#define NV10_3D_VERTEX_BEGIN_END_LINE_STRIP                    0x00000004
+#define NV10_3D_VERTEX_BEGIN_END_TRIANGLES                     0x00000005
+#define NV10_3D_VERTEX_BEGIN_END_TRIANGLE_STRIP                        0x00000006
+#define NV10_3D_VERTEX_BEGIN_END_TRIANGLE_FAN                  0x00000007
+#define NV10_3D_VERTEX_BEGIN_END_QUADS                         0x00000008
+#define NV10_3D_VERTEX_BEGIN_END_QUAD_STRIP                    0x00000009
+#define NV10_3D_VERTEX_BEGIN_END_POLYGON                       0x0000000a
+
+#define NV10_3D_VTXBUF_ELEMENT_U16                             0x00000e00
+#define NV10_3D_VTXBUF_ELEMENT_U16_I0__MASK                    0x0000ffff
+#define NV10_3D_VTXBUF_ELEMENT_U16_I0__SHIFT                   0
+#define NV10_3D_VTXBUF_ELEMENT_U16_I1__MASK                    0xffff0000
+#define NV10_3D_VTXBUF_ELEMENT_U16_I1__SHIFT                   16
+
+#define NV10_3D_VTXBUF_ELEMENT_U32                             0x00001100
+
+#define NV10_3D_VTXBUF_BEGIN_END                               0x000013fc
+#define NV10_3D_VTXBUF_BEGIN_END_STOP                          0x00000000
+#define NV10_3D_VTXBUF_BEGIN_END_POINTS                                0x00000001
+#define NV10_3D_VTXBUF_BEGIN_END_LINES                         0x00000002
+#define NV10_3D_VTXBUF_BEGIN_END_LINE_LOOP                     0x00000003
+#define NV10_3D_VTXBUF_BEGIN_END_LINE_STRIP                    0x00000004
+#define NV10_3D_VTXBUF_BEGIN_END_TRIANGLES                     0x00000005
+#define NV10_3D_VTXBUF_BEGIN_END_TRIANGLE_STRIP                        0x00000006
+#define NV10_3D_VTXBUF_BEGIN_END_TRIANGLE_FAN                  0x00000007
+#define NV10_3D_VTXBUF_BEGIN_END_QUADS                         0x00000008
+#define NV10_3D_VTXBUF_BEGIN_END_QUAD_STRIP                    0x00000009
+#define NV10_3D_VTXBUF_BEGIN_END_POLYGON                       0x0000000a
+
+#define NV10_3D_VTXBUF_BATCH                                   0x00001400
+#define NV10_3D_VTXBUF_BATCH_FIRST__MASK                       0x0000ffff
+#define NV10_3D_VTXBUF_BATCH_FIRST__SHIFT                      0
+#define NV10_3D_VTXBUF_BATCH_LAST__MASK                                0xff000000
+#define NV10_3D_VTXBUF_BATCH_LAST__SHIFT                       24
+
+#define NV10_3D_VTXBUF_DATA                                    0x00001800
+
+
+#define NV10_3D_VERTEX_WEIGHT_ENABLE                           0x00000328
+
+#define NV10_3D_VIEW_MATRIX_ENABLE                             0x000003e8
+#define NV10_3D_VIEW_MATRIX_ENABLE_MODELVIEW1                  0x00000001
+#define NV10_3D_VIEW_MATRIX_ENABLE_MODELVIEW0                  0x00000002
+#define NV10_3D_VIEW_MATRIX_ENABLE_PROJECTION                  0x00000004
+
+
+#define NV10_3D_MODELVIEW_MATRIX(i0, i1)                      (0x00000400 + 0x40*(i0) + 0x4*(i1))
+#define NV10_3D_MODELVIEW_MATRIX__ESIZE                                0x00000004
+#define NV10_3D_MODELVIEW_MATRIX__LEN                          0x00000010
+
+#define NV10_3D_INVERSE_MODELVIEW_MATRIX(i0, i1)              (0x00000480 + 0x40*(i0) + 0x4*(i1))
+#define NV10_3D_INVERSE_MODELVIEW_MATRIX__ESIZE                        0x00000004
+#define NV10_3D_INVERSE_MODELVIEW_MATRIX__LEN                  0x0000000c
+
+#define NV10_3D_PROJECTION_MATRIX(i0)                         (0x00000500 + 0x4*(i0))
+#define NV10_3D_PROJECTION_MATRIX__ESIZE                       0x00000004
+#define NV10_3D_PROJECTION_MATRIX__LEN                         0x00000010
+
+#define NV10_3D_VIEWPORT_TRANSLATE                             0x000006e8
+
+
+#define NV10_3D_VIEWPORT_TRANSLATE_X                           0x000006e8
+
+#define NV10_3D_VIEWPORT_TRANSLATE_Y                           0x000006ec
+
+#define NV10_3D_VIEWPORT_TRANSLATE_Z                           0x000006f0
+
+#define NV10_3D_VIEWPORT_TRANSLATE_W                           0x000006f4
+
+
+#define NV10_3D_LIGHT_MODEL                                    0x00000294
+#define NV10_3D_LIGHT_MODEL_VERTEX_SPECULAR                    0x00000001
+#define NV10_3D_LIGHT_MODEL_SEPARATE_SPECULAR                  0x00000002
+#define NV10_3D_LIGHT_MODEL_LOCAL_VIEWER                       0x00010000
+
+#define NV10_3D_COLOR_MATERIAL                                 0x00000298
+#define NV10_3D_COLOR_MATERIAL_EMISSION                                0x00000001
+#define NV10_3D_COLOR_MATERIAL_AMBIENT                         0x00000002
+#define NV10_3D_COLOR_MATERIAL_DIFFUSE                         0x00000004
+#define NV10_3D_COLOR_MATERIAL_SPECULAR                                0x00000008
+
+#define NV10_3D_MATERIAL_FACTOR                                        0x000003a8
+
+
+#define NV10_3D_MATERIAL_FACTOR_R                              0x000003a8
+
+#define NV10_3D_MATERIAL_FACTOR_G                              0x000003ac
+
+#define NV10_3D_MATERIAL_FACTOR_B                              0x000003b0
+
+#define NV10_3D_MATERIAL_FACTOR_A                              0x000003b4
+
+#define NV10_3D_NORMALIZE_ENABLE                               0x000003a4
+
+#define NV10_3D_SEPARATE_SPECULAR_ENABLE                       0x000003b8
+
+#define NV10_3D_ENABLED_LIGHTS                                 0x000003bc
+#define NV10_3D_ENABLED_LIGHTS_0__MASK                         0x00000003
+#define NV10_3D_ENABLED_LIGHTS_0__SHIFT                                0
+#define NV10_3D_ENABLED_LIGHTS_0_DISABLED                      0x00000000
+#define NV10_3D_ENABLED_LIGHTS_0_NONPOSITIONAL                 0x00000001
+#define NV10_3D_ENABLED_LIGHTS_0_POSITIONAL                    0x00000002
+#define NV10_3D_ENABLED_LIGHTS_0_DIRECTIONAL                   0x00000003
+#define NV10_3D_ENABLED_LIGHTS_1__MASK                         0x0000000c
+#define NV10_3D_ENABLED_LIGHTS_1__SHIFT                                2
+#define NV10_3D_ENABLED_LIGHTS_1_DISABLED                      0x00000000
+#define NV10_3D_ENABLED_LIGHTS_1_NONPOSITIONAL                 0x00000004
+#define NV10_3D_ENABLED_LIGHTS_1_POSITIONAL                    0x00000008
+#define NV10_3D_ENABLED_LIGHTS_1_DIRECTIONAL                   0x0000000c
+#define NV10_3D_ENABLED_LIGHTS_2__MASK                         0x00000030
+#define NV10_3D_ENABLED_LIGHTS_2__SHIFT                                4
+#define NV10_3D_ENABLED_LIGHTS_2_DISABLED                      0x00000000
+#define NV10_3D_ENABLED_LIGHTS_2_NONPOSITIONAL                 0x00000010
+#define NV10_3D_ENABLED_LIGHTS_2_POSITIONAL                    0x00000020
+#define NV10_3D_ENABLED_LIGHTS_2_DIRECTIONAL                   0x00000030
+#define NV10_3D_ENABLED_LIGHTS_3__MASK                         0x000000c0
+#define NV10_3D_ENABLED_LIGHTS_3__SHIFT                                6
+#define NV10_3D_ENABLED_LIGHTS_3_DISABLED                      0x00000000
+#define NV10_3D_ENABLED_LIGHTS_3_NONPOSITIONAL                 0x00000040
+#define NV10_3D_ENABLED_LIGHTS_3_POSITIONAL                    0x00000080
+#define NV10_3D_ENABLED_LIGHTS_3_DIRECTIONAL                   0x000000c0
+#define NV10_3D_ENABLED_LIGHTS_4__MASK                         0x00000300
+#define NV10_3D_ENABLED_LIGHTS_4__SHIFT                                8
+#define NV10_3D_ENABLED_LIGHTS_4_DISABLED                      0x00000000
+#define NV10_3D_ENABLED_LIGHTS_4_NONPOSITIONAL                 0x00000100
+#define NV10_3D_ENABLED_LIGHTS_4_POSITIONAL                    0x00000200
+#define NV10_3D_ENABLED_LIGHTS_4_DIRECTIONAL                   0x00000300
+#define NV10_3D_ENABLED_LIGHTS_5__MASK                         0x00000c00
+#define NV10_3D_ENABLED_LIGHTS_5__SHIFT                                10
+#define NV10_3D_ENABLED_LIGHTS_5_DISABLED                      0x00000000
+#define NV10_3D_ENABLED_LIGHTS_5_NONPOSITIONAL                 0x00000400
+#define NV10_3D_ENABLED_LIGHTS_5_POSITIONAL                    0x00000800
+#define NV10_3D_ENABLED_LIGHTS_5_DIRECTIONAL                   0x00000c00
+#define NV10_3D_ENABLED_LIGHTS_6__MASK                         0x00003000
+#define NV10_3D_ENABLED_LIGHTS_6__SHIFT                                12
+#define NV10_3D_ENABLED_LIGHTS_6_DISABLED                      0x00000000
+#define NV10_3D_ENABLED_LIGHTS_6_NONPOSITIONAL                 0x00001000
+#define NV10_3D_ENABLED_LIGHTS_6_POSITIONAL                    0x00002000
+#define NV10_3D_ENABLED_LIGHTS_6_DIRECTIONAL                   0x00003000
+#define NV10_3D_ENABLED_LIGHTS_7__MASK                         0x0000c000
+#define NV10_3D_ENABLED_LIGHTS_7__SHIFT                                14
+#define NV10_3D_ENABLED_LIGHTS_7_DISABLED                      0x00000000
+#define NV10_3D_ENABLED_LIGHTS_7_NONPOSITIONAL                 0x00004000
+#define NV10_3D_ENABLED_LIGHTS_7_POSITIONAL                    0x00008000
+#define NV10_3D_ENABLED_LIGHTS_7_DIRECTIONAL                   0x0000c000
+
+#define NV10_3D_MATERIAL_SHININESS(i0)                        (0x000006a0 + 0x4*(i0))
+#define NV10_3D_MATERIAL_SHININESS__ESIZE                      0x00000004
+#define NV10_3D_MATERIAL_SHININESS__LEN                                0x00000006
+
+#define NV10_3D_LIGHT_MODEL_AMBIENT                            0x000006c4
+
+
+#define NV10_3D_LIGHT_MODEL_AMBIENT_R                          0x000006c4
+
+#define NV10_3D_LIGHT_MODEL_AMBIENT_G                          0x000006c8
+
+#define NV10_3D_LIGHT_MODEL_AMBIENT_B                          0x000006cc
+
+#define NV10_3D_LIGHT(i0)                                     (0x00000800 + 0x80*(i0))
+#define NV10_3D_LIGHT__ESIZE                                   0x00000080
+#define NV10_3D_LIGHT__LEN                                     0x00000008
+
+#define NV10_3D_LIGHT_AMBIENT(i0)                             (0x00000800 + 0x80*(i0))
+
+
+#define NV10_3D_LIGHT_AMBIENT_R(i0)                           (0x00000800 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_AMBIENT_G(i0)                           (0x00000804 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_AMBIENT_B(i0)                           (0x00000808 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_DIFFUSE(i0)                             (0x0000080c + 0x80*(i0))
+
+
+#define NV10_3D_LIGHT_DIFFUSE_R(i0)                           (0x0000080c + 0x80*(i0))
+
+#define NV10_3D_LIGHT_DIFFUSE_G(i0)                           (0x00000810 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_DIFFUSE_B(i0)                           (0x00000814 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_SPECULAR(i0)                            (0x00000818 + 0x80*(i0))
+
+
+#define NV10_3D_LIGHT_SPECULAR_R(i0)                          (0x00000818 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_SPECULAR_G(i0)                          (0x0000081c + 0x80*(i0))
+
+#define NV10_3D_LIGHT_SPECULAR_B(i0)                          (0x00000820 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_HALF_VECTOR(i0)                         (0x00000828 + 0x80*(i0))
+
+
+#define NV10_3D_LIGHT_HALF_VECTOR_X(i0)                               (0x00000828 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_HALF_VECTOR_Y(i0)                               (0x0000082c + 0x80*(i0))
+
+#define NV10_3D_LIGHT_HALF_VECTOR_Z(i0)                               (0x00000830 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_DIRECTION(i0)                           (0x00000834 + 0x80*(i0))
+
+
+#define NV10_3D_LIGHT_DIRECTION_X(i0)                         (0x00000834 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_DIRECTION_Y(i0)                         (0x00000838 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_DIRECTION_Z(i0)                         (0x0000083c + 0x80*(i0))
+
+#define NV10_3D_LIGHT_SPOT_CUTOFF(i0, i1)                     (0x00000840 + 0x80*(i0) + 0x4*(i1))
+#define NV10_3D_LIGHT_SPOT_CUTOFF__ESIZE                       0x00000004
+#define NV10_3D_LIGHT_SPOT_CUTOFF__LEN                         0x00000007
+
+#define NV10_3D_LIGHT_POSITION(i0)                            (0x0000085c + 0x80*(i0))
+
+
+#define NV10_3D_LIGHT_POSITION_X(i0)                          (0x0000085c + 0x80*(i0))
+
+#define NV10_3D_LIGHT_POSITION_Y(i0)                          (0x00000860 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_POSITION_Z(i0)                          (0x00000864 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_ATTENUATION(i0)                         (0x00000868 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_ATTENUATION_CONSTANT(i0)                (0x00000868 + 0x80*(i0))
+
+#define NV10_3D_LIGHT_ATTENUATION_LINEAR(i0)                  (0x0000086c + 0x80*(i0))
+
+#define NV10_3D_LIGHT_ATTENUATION_QUADRATIC(i0)                       (0x00000870 + 0x80*(i0))
+
+
+#define NV10_3D_FOG_MODE                                       0x0000029c
+#define NV10_3D_FOG_MODE_LINEAR                                        0x00002601
+#define NV10_3D_FOG_MODE_EXP                                   0x00000800
+#define NV10_3D_FOG_MODE_EXP_ABS                               0x00000802
+#define NV10_3D_FOG_MODE_EXP2                                  0x00000803
+
+#define NV10_3D_FOG_COORD                                      0x000002a0
+#define NV10_3D_FOG_COORD_FOG                                  0x00000000
+#define NV10_3D_FOG_COORD_DIST_RADIAL                          0x00000001
+#define NV10_3D_FOG_COORD_DIST_ORTHOGONAL                      0x00000002
+#define NV10_3D_FOG_COORD_DIST_ORTHOGONAL_ABS                  0x00000003
+
+#define NV10_3D_FOG_ENABLE                                     0x000002a4
+
+#define NV10_3D_FOG_COLOR                                      0x000002a8
+#define NV10_3D_FOG_COLOR_R__MASK                              0x000000ff
+#define NV10_3D_FOG_COLOR_R__SHIFT                             0
+#define NV10_3D_FOG_COLOR_G__MASK                              0x0000ff00
+#define NV10_3D_FOG_COLOR_G__SHIFT                             8
+#define NV10_3D_FOG_COLOR_B__MASK                              0x00ff0000
+#define NV10_3D_FOG_COLOR_B__SHIFT                             16
+#define NV10_3D_FOG_COLOR_A__MASK                              0xff000000
+#define NV10_3D_FOG_COLOR_A__SHIFT                             24
+
+#define NV10_3D_FOG_COEFF(i0)                                 (0x00000680 + 0x4*(i0))
+#define NV10_3D_FOG_COEFF__ESIZE                               0x00000004
+#define NV10_3D_FOG_COEFF__LEN                                 0x00000003
+
+
+
+#define NV10_3D_TEX_GEN_MODE(i0, i1)                          (0x000003c0 + 0x10*(i0) + 0x4*(i1))
+#define NV10_3D_TEX_GEN_MODE__ESIZE                            0x00000004
+#define NV10_3D_TEX_GEN_MODE__LEN                              0x00000004
+#define NV10_3D_TEX_GEN_MODE_FALSE                             0x00000000
+#define NV10_3D_TEX_GEN_MODE_EYE_LINEAR                                0x00002400
+#define NV10_3D_TEX_GEN_MODE_OBJECT_LINEAR                     0x00002401
+#define NV10_3D_TEX_GEN_MODE_SPHERE_MAP                                0x00002402
+#define NV10_3D_TEX_GEN_MODE_NORMAL_MAP                                0x00008511
+#define NV10_3D_TEX_GEN_MODE_REFLECTION_MAP                    0x00008512
+
+
+#define NV10_3D_TEX_GEN_COEFF(i0, i1)                         (0x00000600 + 0x40*(i0) + 0x10*(i1))
+#define NV10_3D_TEX_GEN_COEFF__ESIZE                           0x00000010
+#define NV10_3D_TEX_GEN_COEFF__LEN                             0x00000004
+
+#define NV10_3D_TEX_GEN_COEFF_A(i0, i1)                               (0x00000600 + 0x40*(i0) + 0x10*(i1))
+
+#define NV10_3D_TEX_GEN_COEFF_B(i0, i1)                               (0x00000604 + 0x40*(i0) + 0x10*(i1))
+
+#define NV10_3D_TEX_GEN_COEFF_C(i0, i1)                               (0x00000608 + 0x40*(i0) + 0x10*(i1))
+
+#define NV10_3D_TEX_GEN_COEFF_D(i0, i1)                               (0x0000060c + 0x40*(i0) + 0x10*(i1))
+
+#define NV10_3D_TEX_MATRIX_ENABLE(i0)                         (0x000003e0 + 0x4*(i0))
+#define NV10_3D_TEX_MATRIX_ENABLE__ESIZE                       0x00000004
+#define NV10_3D_TEX_MATRIX_ENABLE__LEN                         0x00000002
+
+
+#define NV10_3D_TEX_MATRIX(i0, i1)                            (0x00000540 + 0x40*(i0) + 0x4*(i1))
+#define NV10_3D_TEX_MATRIX__ESIZE                              0x00000004
+#define NV10_3D_TEX_MATRIX__LEN                                        0x00000010
+
+#define NV10_3D_TEX(i0)                                               (0x00000000 + 0x4*(i0))
+#define NV10_3D_TEX__ESIZE                                     0x00000004
+#define NV10_3D_TEX__LEN                                       0x00000002
+
+#define NV10_3D_TEX_OFFSET(i0)                                (0x00000218 + 0x4*(i0))
+
+#define NV10_3D_TEX_FORMAT(i0)                                (0x00000220 + 0x4*(i0))
+#define NV10_3D_TEX_FORMAT_DMA0                                        0x00000001
+#define NV10_3D_TEX_FORMAT_DMA1                                        0x00000002
+#define NV10_3D_TEX_FORMAT_CUBE_MAP                            0x00000004
+#define NV10_3D_TEX_FORMAT_FORMAT__MASK                                0x00000f80
+#define NV10_3D_TEX_FORMAT_FORMAT__SHIFT                       7
+#define NV10_3D_TEX_FORMAT_FORMAT_L8                           0x00000000
+#define NV10_3D_TEX_FORMAT_FORMAT_I8                           0x00000080
+#define NV10_3D_TEX_FORMAT_FORMAT_A1R5G5B5                     0x00000100
+#define NV10_3D_TEX_FORMAT_FORMAT_A4R4G4B4                     0x00000200
+#define NV10_3D_TEX_FORMAT_FORMAT_R5G6B5                       0x00000280
+#define NV10_3D_TEX_FORMAT_FORMAT_A8R8G8B8                     0x00000300
+#define NV10_3D_TEX_FORMAT_FORMAT_X8R8G8B8                     0x00000380
+#define NV10_3D_TEX_FORMAT_FORMAT_INDEX8                       0x00000580
+#define NV10_3D_TEX_FORMAT_FORMAT_DXT1                         0x00000600
+#define NV10_3D_TEX_FORMAT_FORMAT_DXT3                         0x00000700
+#define NV10_3D_TEX_FORMAT_FORMAT_DXT5                         0x00000780
+#define NV10_3D_TEX_FORMAT_FORMAT_A1R5G5B5_RECT                        0x00000800
+#define NV10_3D_TEX_FORMAT_FORMAT_R5G6B5_RECT                  0x00000880
+#define NV10_3D_TEX_FORMAT_FORMAT_A8R8G8B8_RECT                        0x00000900
+#define NV10_3D_TEX_FORMAT_FORMAT_I8_RECT                      0x00000980
+#define NV10_3D_TEX_FORMAT_MIPMAP                              0x00008000
+#define NV10_3D_TEX_FORMAT_BASE_SIZE_U__MASK                   0x000f0000
+#define NV10_3D_TEX_FORMAT_BASE_SIZE_U__SHIFT                  16
+#define NV10_3D_TEX_FORMAT_BASE_SIZE_V__MASK                   0x00f00000
+#define NV10_3D_TEX_FORMAT_BASE_SIZE_V__SHIFT                  20
+#define NV10_3D_TEX_FORMAT_WRAP_S__MASK                                0x0f000000
+#define NV10_3D_TEX_FORMAT_WRAP_S__SHIFT                       24
+#define NV10_3D_TEX_FORMAT_WRAP_S_REPEAT                       0x01000000
+#define NV10_3D_TEX_FORMAT_WRAP_S_MIRRORED_REPEAT              0x02000000
+#define NV10_3D_TEX_FORMAT_WRAP_S_CLAMP_TO_EDGE                        0x03000000
+#define NV10_3D_TEX_FORMAT_WRAP_S_CLAMP_TO_BORDER              0x04000000
+#define NV10_3D_TEX_FORMAT_WRAP_S_CLAMP                                0x05000000
+#define NV10_3D_TEX_FORMAT_WRAP_T__MASK                                0xf0000000
+#define NV10_3D_TEX_FORMAT_WRAP_T__SHIFT                       28
+#define NV10_3D_TEX_FORMAT_WRAP_T_REPEAT                       0x10000000
+#define NV10_3D_TEX_FORMAT_WRAP_T_MIRRORED_REPEAT              0x20000000
+#define NV10_3D_TEX_FORMAT_WRAP_T_CLAMP_TO_EDGE                        0x30000000
+#define NV10_3D_TEX_FORMAT_WRAP_T_CLAMP_TO_BORDER              0x40000000
+#define NV10_3D_TEX_FORMAT_WRAP_T_CLAMP                                0x50000000
+
+#define NV10_3D_TEX_ENABLE(i0)                                (0x00000228 + 0x4*(i0))
+#define NV10_3D_TEX_ENABLE_CULL__MASK                          0x0000000f
+#define NV10_3D_TEX_ENABLE_CULL__SHIFT                         0
+#define NV10_3D_TEX_ENABLE_CULL_DISABLED                       0x00000000
+#define NV10_3D_TEX_ENABLE_CULL_TEST_ALL                       0x00000003
+#define NV10_3D_TEX_ENABLE_CULL_TEST_ALPHA                     0x00000004
+#define NV10_3D_TEX_ENABLE_ANISOTROPY__MASK                    0x00000030
+#define NV10_3D_TEX_ENABLE_ANISOTROPY__SHIFT                   4
+#define NV10_3D_TEX_ENABLE_MIPMAP_MAX_LOD__MASK                        0x0003c000
+#define NV10_3D_TEX_ENABLE_MIPMAP_MAX_LOD__SHIFT               14
+#define NV10_3D_TEX_ENABLE_MIPMAP_MIN_LOD__MASK                        0x3c000000
+#define NV10_3D_TEX_ENABLE_MIPMAP_MIN_LOD__SHIFT               26
+#define NV10_3D_TEX_ENABLE_ENABLE                              0x40000000
+
+#define NV10_3D_TEX_NPOT_PITCH(i0)                            (0x00000230 + 0x4*(i0))
+#define NV10_3D_TEX_NPOT_PITCH_PITCH__MASK                     0xffff0000
+#define NV10_3D_TEX_NPOT_PITCH_PITCH__SHIFT                    16
+
+#define NV10_3D_TEX_NPOT_SIZE(i0)                             (0x00000240 + 0x4*(i0))
+#define NV10_3D_TEX_NPOT_SIZE_H__MASK                          0x0000ffff
+#define NV10_3D_TEX_NPOT_SIZE_H__SHIFT                         0
+#define NV10_3D_TEX_NPOT_SIZE_W__MASK                          0xffff0000
+#define NV10_3D_TEX_NPOT_SIZE_W__SHIFT                         16
+
+#define NV10_3D_TEX_FILTER(i0)                                (0x00000248 + 0x4*(i0))
+#define NV10_3D_TEX_FILTER_LOD_BIAS__MASK                      0x00000f00
+#define NV10_3D_TEX_FILTER_LOD_BIAS__SHIFT                     8
+#define NV10_3D_TEX_FILTER_MINIFY__MASK                                0x0f000000
+#define NV10_3D_TEX_FILTER_MINIFY__SHIFT                       24
+#define NV10_3D_TEX_FILTER_MINIFY_NEAREST                      0x01000000
+#define NV10_3D_TEX_FILTER_MINIFY_LINEAR                       0x02000000
+#define NV10_3D_TEX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST       0x03000000
+#define NV10_3D_TEX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST                0x04000000
+#define NV10_3D_TEX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR                0x05000000
+#define NV10_3D_TEX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR         0x06000000
+#define NV10_3D_TEX_FILTER_MAGNIFY__MASK                       0xf0000000
+#define NV10_3D_TEX_FILTER_MAGNIFY__SHIFT                      28
+#define NV10_3D_TEX_FILTER_MAGNIFY_NEAREST                     0x10000000
+#define NV10_3D_TEX_FILTER_MAGNIFY_LINEAR                      0x20000000
+
+#define NV10_3D_TEX_PALETTE_OFFSET(i0)                        (0x00000250 + 0x4*(i0))
+
+
+
+#define NV10_3D_RC_IN_ALPHA(i0)                                       (0x00000260 + 0x4*(i0))
+#define NV10_3D_RC_IN_ALPHA_D_INPUT__MASK                      0x0000000f
+#define NV10_3D_RC_IN_ALPHA_D_INPUT__SHIFT                     0
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_ZERO                       0x00000000
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0            0x00000001
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1            0x00000002
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_FOG                                0x00000003
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR              0x00000004
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR            0x00000005
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_TEXTURE0                   0x00000008
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_TEXTURE1                   0x00000009
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_TEXTURE2                   0x0000000a
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_TEXTURE3                   0x0000000b
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_SPARE0                     0x0000000c
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_SPARE1                     0x0000000d
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR        0x0000000e
+#define NV10_3D_RC_IN_ALPHA_D_INPUT_E_TIMES_F                  0x0000000f
+#define NV10_3D_RC_IN_ALPHA_D_COMPONENT_USAGE__MASK            0x00000010
+#define NV10_3D_RC_IN_ALPHA_D_COMPONENT_USAGE__SHIFT           4
+#define NV10_3D_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE             0x00000000
+#define NV10_3D_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA            0x00000010
+#define NV10_3D_RC_IN_ALPHA_D_MAPPING__MASK                    0x000000e0
+#define NV10_3D_RC_IN_ALPHA_D_MAPPING__SHIFT                   5
+#define NV10_3D_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY                0x00000000
+#define NV10_3D_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT          0x00000020
+#define NV10_3D_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL            0x00000040
+#define NV10_3D_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE            0x00000060
+#define NV10_3D_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL         0x00000080
+#define NV10_3D_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE         0x000000a0
+#define NV10_3D_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY          0x000000c0
+#define NV10_3D_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE            0x000000e0
+#define NV10_3D_RC_IN_ALPHA_C_INPUT__MASK                      0x00000f00
+#define NV10_3D_RC_IN_ALPHA_C_INPUT__SHIFT                     8
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_ZERO                       0x00000000
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0            0x00000100
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1            0x00000200
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_FOG                                0x00000300
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR              0x00000400
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR            0x00000500
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_TEXTURE0                   0x00000800
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_TEXTURE1                   0x00000900
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_TEXTURE2                   0x00000a00
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_TEXTURE3                   0x00000b00
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_SPARE0                     0x00000c00
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_SPARE1                     0x00000d00
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR        0x00000e00
+#define NV10_3D_RC_IN_ALPHA_C_INPUT_E_TIMES_F                  0x00000f00
+#define NV10_3D_RC_IN_ALPHA_C_COMPONENT_USAGE__MASK            0x00001000
+#define NV10_3D_RC_IN_ALPHA_C_COMPONENT_USAGE__SHIFT           12
+#define NV10_3D_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE             0x00000000
+#define NV10_3D_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA            0x00001000
+#define NV10_3D_RC_IN_ALPHA_C_MAPPING__MASK                    0x0000e000
+#define NV10_3D_RC_IN_ALPHA_C_MAPPING__SHIFT                   13
+#define NV10_3D_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY                0x00000000
+#define NV10_3D_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT          0x00002000
+#define NV10_3D_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL            0x00004000
+#define NV10_3D_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE            0x00006000
+#define NV10_3D_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL         0x00008000
+#define NV10_3D_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE         0x0000a000
+#define NV10_3D_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY          0x0000c000
+#define NV10_3D_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE            0x0000e000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT__MASK                      0x000f0000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT__SHIFT                     16
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_ZERO                       0x00000000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0            0x00010000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1            0x00020000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_FOG                                0x00030000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR              0x00040000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR            0x00050000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_TEXTURE0                   0x00080000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_TEXTURE1                   0x00090000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_TEXTURE2                   0x000a0000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_TEXTURE3                   0x000b0000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_SPARE0                     0x000c0000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_SPARE1                     0x000d0000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR        0x000e0000
+#define NV10_3D_RC_IN_ALPHA_B_INPUT_E_TIMES_F                  0x000f0000
+#define NV10_3D_RC_IN_ALPHA_B_COMPONENT_USAGE__MASK            0x00100000
+#define NV10_3D_RC_IN_ALPHA_B_COMPONENT_USAGE__SHIFT           20
+#define NV10_3D_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE             0x00000000
+#define NV10_3D_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA            0x00100000
+#define NV10_3D_RC_IN_ALPHA_B_MAPPING__MASK                    0x00e00000
+#define NV10_3D_RC_IN_ALPHA_B_MAPPING__SHIFT                   21
+#define NV10_3D_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY                0x00000000
+#define NV10_3D_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT          0x00200000
+#define NV10_3D_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL            0x00400000
+#define NV10_3D_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE            0x00600000
+#define NV10_3D_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL         0x00800000
+#define NV10_3D_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE         0x00a00000
+#define NV10_3D_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY          0x00c00000
+#define NV10_3D_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE            0x00e00000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT__MASK                      0x0f000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT__SHIFT                     24
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_ZERO                       0x00000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0            0x01000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1            0x02000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_FOG                                0x03000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR              0x04000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR            0x05000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_TEXTURE0                   0x08000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_TEXTURE1                   0x09000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_TEXTURE2                   0x0a000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_TEXTURE3                   0x0b000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_SPARE0                     0x0c000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_SPARE1                     0x0d000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR        0x0e000000
+#define NV10_3D_RC_IN_ALPHA_A_INPUT_E_TIMES_F                  0x0f000000
+#define NV10_3D_RC_IN_ALPHA_A_COMPONENT_USAGE__MASK            0x10000000
+#define NV10_3D_RC_IN_ALPHA_A_COMPONENT_USAGE__SHIFT           28
+#define NV10_3D_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE             0x00000000
+#define NV10_3D_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA            0x10000000
+#define NV10_3D_RC_IN_ALPHA_A_MAPPING__MASK                    0xe0000000
+#define NV10_3D_RC_IN_ALPHA_A_MAPPING__SHIFT                   29
+#define NV10_3D_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY                0x00000000
+#define NV10_3D_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT          0x20000000
+#define NV10_3D_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL            0x40000000
+#define NV10_3D_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE            0x60000000
+#define NV10_3D_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL         0x80000000
+#define NV10_3D_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE         0xa0000000
+#define NV10_3D_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY          0xc0000000
+#define NV10_3D_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE            0xe0000000
+
+#define NV10_3D_RC_IN_RGB(i0)                                 (0x00000268 + 0x4*(i0))
+#define NV10_3D_RC_IN_RGB_D_INPUT__MASK                                0x0000000f
+#define NV10_3D_RC_IN_RGB_D_INPUT__SHIFT                       0
+#define NV10_3D_RC_IN_RGB_D_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0              0x00000001
+#define NV10_3D_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1              0x00000002
+#define NV10_3D_RC_IN_RGB_D_INPUT_FOG                          0x00000003
+#define NV10_3D_RC_IN_RGB_D_INPUT_PRIMARY_COLOR                        0x00000004
+#define NV10_3D_RC_IN_RGB_D_INPUT_SECONDARY_COLOR              0x00000005
+#define NV10_3D_RC_IN_RGB_D_INPUT_TEXTURE0                     0x00000008
+#define NV10_3D_RC_IN_RGB_D_INPUT_TEXTURE1                     0x00000009
+#define NV10_3D_RC_IN_RGB_D_INPUT_TEXTURE2                     0x0000000a
+#define NV10_3D_RC_IN_RGB_D_INPUT_TEXTURE3                     0x0000000b
+#define NV10_3D_RC_IN_RGB_D_INPUT_SPARE0                       0x0000000c
+#define NV10_3D_RC_IN_RGB_D_INPUT_SPARE1                       0x0000000d
+#define NV10_3D_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x0000000e
+#define NV10_3D_RC_IN_RGB_D_INPUT_E_TIMES_F                    0x0000000f
+#define NV10_3D_RC_IN_RGB_D_COMPONENT_USAGE__MASK              0x00000010
+#define NV10_3D_RC_IN_RGB_D_COMPONENT_USAGE__SHIFT             4
+#define NV10_3D_RC_IN_RGB_D_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA              0x00000010
+#define NV10_3D_RC_IN_RGB_D_MAPPING__MASK                      0x000000e0
+#define NV10_3D_RC_IN_RGB_D_MAPPING__SHIFT                     5
+#define NV10_3D_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT            0x00000020
+#define NV10_3D_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL              0x00000040
+#define NV10_3D_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE              0x00000060
+#define NV10_3D_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL           0x00000080
+#define NV10_3D_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE           0x000000a0
+#define NV10_3D_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY            0x000000c0
+#define NV10_3D_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE              0x000000e0
+#define NV10_3D_RC_IN_RGB_C_INPUT__MASK                                0x00000f00
+#define NV10_3D_RC_IN_RGB_C_INPUT__SHIFT                       8
+#define NV10_3D_RC_IN_RGB_C_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0              0x00000100
+#define NV10_3D_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1              0x00000200
+#define NV10_3D_RC_IN_RGB_C_INPUT_FOG                          0x00000300
+#define NV10_3D_RC_IN_RGB_C_INPUT_PRIMARY_COLOR                        0x00000400
+#define NV10_3D_RC_IN_RGB_C_INPUT_SECONDARY_COLOR              0x00000500
+#define NV10_3D_RC_IN_RGB_C_INPUT_TEXTURE0                     0x00000800
+#define NV10_3D_RC_IN_RGB_C_INPUT_TEXTURE1                     0x00000900
+#define NV10_3D_RC_IN_RGB_C_INPUT_TEXTURE2                     0x00000a00
+#define NV10_3D_RC_IN_RGB_C_INPUT_TEXTURE3                     0x00000b00
+#define NV10_3D_RC_IN_RGB_C_INPUT_SPARE0                       0x00000c00
+#define NV10_3D_RC_IN_RGB_C_INPUT_SPARE1                       0x00000d00
+#define NV10_3D_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x00000e00
+#define NV10_3D_RC_IN_RGB_C_INPUT_E_TIMES_F                    0x00000f00
+#define NV10_3D_RC_IN_RGB_C_COMPONENT_USAGE__MASK              0x00001000
+#define NV10_3D_RC_IN_RGB_C_COMPONENT_USAGE__SHIFT             12
+#define NV10_3D_RC_IN_RGB_C_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA              0x00001000
+#define NV10_3D_RC_IN_RGB_C_MAPPING__MASK                      0x0000e000
+#define NV10_3D_RC_IN_RGB_C_MAPPING__SHIFT                     13
+#define NV10_3D_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT            0x00002000
+#define NV10_3D_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL              0x00004000
+#define NV10_3D_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE              0x00006000
+#define NV10_3D_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL           0x00008000
+#define NV10_3D_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE           0x0000a000
+#define NV10_3D_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY            0x0000c000
+#define NV10_3D_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE              0x0000e000
+#define NV10_3D_RC_IN_RGB_B_INPUT__MASK                                0x000f0000
+#define NV10_3D_RC_IN_RGB_B_INPUT__SHIFT                       16
+#define NV10_3D_RC_IN_RGB_B_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0              0x00010000
+#define NV10_3D_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1              0x00020000
+#define NV10_3D_RC_IN_RGB_B_INPUT_FOG                          0x00030000
+#define NV10_3D_RC_IN_RGB_B_INPUT_PRIMARY_COLOR                        0x00040000
+#define NV10_3D_RC_IN_RGB_B_INPUT_SECONDARY_COLOR              0x00050000
+#define NV10_3D_RC_IN_RGB_B_INPUT_TEXTURE0                     0x00080000
+#define NV10_3D_RC_IN_RGB_B_INPUT_TEXTURE1                     0x00090000
+#define NV10_3D_RC_IN_RGB_B_INPUT_TEXTURE2                     0x000a0000
+#define NV10_3D_RC_IN_RGB_B_INPUT_TEXTURE3                     0x000b0000
+#define NV10_3D_RC_IN_RGB_B_INPUT_SPARE0                       0x000c0000
+#define NV10_3D_RC_IN_RGB_B_INPUT_SPARE1                       0x000d0000
+#define NV10_3D_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x000e0000
+#define NV10_3D_RC_IN_RGB_B_INPUT_E_TIMES_F                    0x000f0000
+#define NV10_3D_RC_IN_RGB_B_COMPONENT_USAGE__MASK              0x00100000
+#define NV10_3D_RC_IN_RGB_B_COMPONENT_USAGE__SHIFT             20
+#define NV10_3D_RC_IN_RGB_B_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA              0x00100000
+#define NV10_3D_RC_IN_RGB_B_MAPPING__MASK                      0x00e00000
+#define NV10_3D_RC_IN_RGB_B_MAPPING__SHIFT                     21
+#define NV10_3D_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT            0x00200000
+#define NV10_3D_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL              0x00400000
+#define NV10_3D_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE              0x00600000
+#define NV10_3D_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL           0x00800000
+#define NV10_3D_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE           0x00a00000
+#define NV10_3D_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY            0x00c00000
+#define NV10_3D_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE              0x00e00000
+#define NV10_3D_RC_IN_RGB_A_INPUT__MASK                                0x0f000000
+#define NV10_3D_RC_IN_RGB_A_INPUT__SHIFT                       24
+#define NV10_3D_RC_IN_RGB_A_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0              0x01000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1              0x02000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_FOG                          0x03000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_PRIMARY_COLOR                        0x04000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_SECONDARY_COLOR              0x05000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_TEXTURE0                     0x08000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_TEXTURE1                     0x09000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_TEXTURE2                     0x0a000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_TEXTURE3                     0x0b000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_SPARE0                       0x0c000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_SPARE1                       0x0d000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x0e000000
+#define NV10_3D_RC_IN_RGB_A_INPUT_E_TIMES_F                    0x0f000000
+#define NV10_3D_RC_IN_RGB_A_COMPONENT_USAGE__MASK              0x10000000
+#define NV10_3D_RC_IN_RGB_A_COMPONENT_USAGE__SHIFT             28
+#define NV10_3D_RC_IN_RGB_A_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA              0x10000000
+#define NV10_3D_RC_IN_RGB_A_MAPPING__MASK                      0xe0000000
+#define NV10_3D_RC_IN_RGB_A_MAPPING__SHIFT                     29
+#define NV10_3D_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT            0x20000000
+#define NV10_3D_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL              0x40000000
+#define NV10_3D_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE              0x60000000
+#define NV10_3D_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL           0x80000000
+#define NV10_3D_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE           0xa0000000
+#define NV10_3D_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY            0xc0000000
+#define NV10_3D_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE              0xe0000000
+
+#define NV10_3D_RC_COLOR(i0)                                  (0x00000270 + 0x4*(i0))
+#define NV10_3D_RC_COLOR_B__MASK                               0x000000ff
+#define NV10_3D_RC_COLOR_B__SHIFT                              0
+#define NV10_3D_RC_COLOR_G__MASK                               0x0000ff00
+#define NV10_3D_RC_COLOR_G__SHIFT                              8
+#define NV10_3D_RC_COLOR_R__MASK                               0x00ff0000
+#define NV10_3D_RC_COLOR_R__SHIFT                              16
+#define NV10_3D_RC_COLOR_A__MASK                               0xff000000
+#define NV10_3D_RC_COLOR_A__SHIFT                              24
+
+#define NV10_3D_RC_OUT_ALPHA(i0)                              (0x00000278 + 0x4*(i0))
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT__MASK                   0x0000000f
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT__SHIFT                  0
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_ZERO                    0x00000000
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0         0x00000001
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1         0x00000002
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_FOG                     0x00000003
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR           0x00000004
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR         0x00000005
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0                        0x00000008
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1                        0x00000009
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2                        0x0000000a
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3                        0x0000000b
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_SPARE0                  0x0000000c
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_SPARE1                  0x0000000d
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR     0x0000000e
+#define NV10_3D_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F               0x0000000f
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT__MASK                   0x000000f0
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT__SHIFT                  4
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_ZERO                    0x00000000
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0         0x00000010
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1         0x00000020
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_FOG                     0x00000030
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR           0x00000040
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR         0x00000050
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0                        0x00000080
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1                        0x00000090
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2                        0x000000a0
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3                        0x000000b0
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0                  0x000000c0
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE1                  0x000000d0
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR     0x000000e0
+#define NV10_3D_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F               0x000000f0
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT__MASK                  0x00000f00
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT__SHIFT                 8
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_ZERO                   0x00000000
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0                0x00000100
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1                0x00000200
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_FOG                    0x00000300
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR          0x00000400
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR                0x00000500
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0               0x00000800
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1               0x00000900
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2               0x00000a00
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3               0x00000b00
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0                 0x00000c00
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1                 0x00000d00
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR    0x00000e00
+#define NV10_3D_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F              0x00000f00
+#define NV10_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT                    0x00001000
+#define NV10_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT                    0x00002000
+#define NV10_3D_RC_OUT_ALPHA_MUX_SUM                           0x00004000
+#define NV10_3D_RC_OUT_ALPHA_BIAS__MASK                                0x00008000
+#define NV10_3D_RC_OUT_ALPHA_BIAS__SHIFT                       15
+#define NV10_3D_RC_OUT_ALPHA_BIAS_NONE                         0x00000000
+#define NV10_3D_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF    0x00008000
+#define NV10_3D_RC_OUT_ALPHA_SCALE__MASK                       0x00030000
+#define NV10_3D_RC_OUT_ALPHA_SCALE__SHIFT                      16
+#define NV10_3D_RC_OUT_ALPHA_SCALE_NONE                                0x00000000
+#define NV10_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO                        0x00010000
+#define NV10_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR               0x00020000
+#define NV10_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF           0x00030000
+
+#define NV10_3D_RC_OUT_RGB(i0)                                (0x00000280 + 0x4*(i0))
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT__MASK                     0x0000000f
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT__SHIFT                    0
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_ZERO                      0x00000000
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0           0x00000001
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1           0x00000002
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_FOG                       0x00000003
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR             0x00000004
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR           0x00000005
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_TEXTURE0                  0x00000008
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_TEXTURE1                  0x00000009
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_TEXTURE2                  0x0000000a
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_TEXTURE3                  0x0000000b
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_SPARE0                    0x0000000c
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_SPARE1                    0x0000000d
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR       0x0000000e
+#define NV10_3D_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F                 0x0000000f
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT__MASK                     0x000000f0
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT__SHIFT                    4
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_ZERO                      0x00000000
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0           0x00000010
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1           0x00000020
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_FOG                       0x00000030
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR             0x00000040
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR           0x00000050
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE0                  0x00000080
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE1                  0x00000090
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE2                  0x000000a0
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE3                  0x000000b0
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0                    0x000000c0
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_SPARE1                    0x000000d0
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR       0x000000e0
+#define NV10_3D_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F                 0x000000f0
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT__MASK                    0x00000f00
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT__SHIFT                   8
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_ZERO                     0x00000000
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0          0x00000100
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1          0x00000200
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_FOG                      0x00000300
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR            0x00000400
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR          0x00000500
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0                 0x00000800
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1                 0x00000900
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2                 0x00000a00
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3                 0x00000b00
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0                   0x00000c00
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE1                   0x00000d00
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR      0x00000e00
+#define NV10_3D_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F                        0x00000f00
+#define NV10_3D_RC_OUT_RGB_CD_DOT_PRODUCT                      0x00001000
+#define NV10_3D_RC_OUT_RGB_AB_DOT_PRODUCT                      0x00002000
+#define NV10_3D_RC_OUT_RGB_MUX_SUM                             0x00004000
+#define NV10_3D_RC_OUT_RGB_BIAS__MASK                          0x00008000
+#define NV10_3D_RC_OUT_RGB_BIAS__SHIFT                         15
+#define NV10_3D_RC_OUT_RGB_BIAS_NONE                           0x00000000
+#define NV10_3D_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF      0x00008000
+#define NV10_3D_RC_OUT_RGB_SCALE__MASK                         0x00030000
+#define NV10_3D_RC_OUT_RGB_SCALE__SHIFT                                16
+#define NV10_3D_RC_OUT_RGB_SCALE_NONE                          0x00000000
+#define NV10_3D_RC_OUT_RGB_SCALE_SCALE_BY_TWO                  0x00010000
+#define NV10_3D_RC_OUT_RGB_SCALE_SCALE_BY_FOUR                 0x00020000
+#define NV10_3D_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF             0x00030000
+#define NV10_3D_RC_OUT_RGB_OPERATION__MASK                     0x38000000
+#define NV10_3D_RC_OUT_RGB_OPERATION__SHIFT                    27
+
+#define NV10_3D_RC_FINAL0                                      0x00000288
+#define NV10_3D_RC_FINAL0_D_INPUT__MASK                                0x0000000f
+#define NV10_3D_RC_FINAL0_D_INPUT__SHIFT                       0
+#define NV10_3D_RC_FINAL0_D_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_FINAL0_D_INPUT_CONSTANT_COLOR0              0x00000001
+#define NV10_3D_RC_FINAL0_D_INPUT_CONSTANT_COLOR1              0x00000002
+#define NV10_3D_RC_FINAL0_D_INPUT_FOG                          0x00000003
+#define NV10_3D_RC_FINAL0_D_INPUT_PRIMARY_COLOR                        0x00000004
+#define NV10_3D_RC_FINAL0_D_INPUT_SECONDARY_COLOR              0x00000005
+#define NV10_3D_RC_FINAL0_D_INPUT_TEXTURE0                     0x00000008
+#define NV10_3D_RC_FINAL0_D_INPUT_TEXTURE1                     0x00000009
+#define NV10_3D_RC_FINAL0_D_INPUT_TEXTURE2                     0x0000000a
+#define NV10_3D_RC_FINAL0_D_INPUT_TEXTURE3                     0x0000000b
+#define NV10_3D_RC_FINAL0_D_INPUT_SPARE0                       0x0000000c
+#define NV10_3D_RC_FINAL0_D_INPUT_SPARE1                       0x0000000d
+#define NV10_3D_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x0000000e
+#define NV10_3D_RC_FINAL0_D_INPUT_E_TIMES_F                    0x0000000f
+#define NV10_3D_RC_FINAL0_D_COMPONENT_USAGE__MASK              0x00000010
+#define NV10_3D_RC_FINAL0_D_COMPONENT_USAGE__SHIFT             4
+#define NV10_3D_RC_FINAL0_D_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_FINAL0_D_COMPONENT_USAGE_ALPHA              0x00000010
+#define NV10_3D_RC_FINAL0_D_MAPPING__MASK                      0x000000e0
+#define NV10_3D_RC_FINAL0_D_MAPPING__SHIFT                     5
+#define NV10_3D_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT            0x00000020
+#define NV10_3D_RC_FINAL0_D_MAPPING_EXPAND_NORMAL              0x00000040
+#define NV10_3D_RC_FINAL0_D_MAPPING_EXPAND_NEGATE              0x00000060
+#define NV10_3D_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL           0x00000080
+#define NV10_3D_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE           0x000000a0
+#define NV10_3D_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY            0x000000c0
+#define NV10_3D_RC_FINAL0_D_MAPPING_SIGNED_NEGATE              0x000000e0
+#define NV10_3D_RC_FINAL0_C_INPUT__MASK                                0x00000f00
+#define NV10_3D_RC_FINAL0_C_INPUT__SHIFT                       8
+#define NV10_3D_RC_FINAL0_C_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_FINAL0_C_INPUT_CONSTANT_COLOR0              0x00000100
+#define NV10_3D_RC_FINAL0_C_INPUT_CONSTANT_COLOR1              0x00000200
+#define NV10_3D_RC_FINAL0_C_INPUT_FOG                          0x00000300
+#define NV10_3D_RC_FINAL0_C_INPUT_PRIMARY_COLOR                        0x00000400
+#define NV10_3D_RC_FINAL0_C_INPUT_SECONDARY_COLOR              0x00000500
+#define NV10_3D_RC_FINAL0_C_INPUT_TEXTURE0                     0x00000800
+#define NV10_3D_RC_FINAL0_C_INPUT_TEXTURE1                     0x00000900
+#define NV10_3D_RC_FINAL0_C_INPUT_TEXTURE2                     0x00000a00
+#define NV10_3D_RC_FINAL0_C_INPUT_TEXTURE3                     0x00000b00
+#define NV10_3D_RC_FINAL0_C_INPUT_SPARE0                       0x00000c00
+#define NV10_3D_RC_FINAL0_C_INPUT_SPARE1                       0x00000d00
+#define NV10_3D_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x00000e00
+#define NV10_3D_RC_FINAL0_C_INPUT_E_TIMES_F                    0x00000f00
+#define NV10_3D_RC_FINAL0_C_COMPONENT_USAGE__MASK              0x00001000
+#define NV10_3D_RC_FINAL0_C_COMPONENT_USAGE__SHIFT             12
+#define NV10_3D_RC_FINAL0_C_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_FINAL0_C_COMPONENT_USAGE_ALPHA              0x00001000
+#define NV10_3D_RC_FINAL0_C_MAPPING__MASK                      0x0000e000
+#define NV10_3D_RC_FINAL0_C_MAPPING__SHIFT                     13
+#define NV10_3D_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT            0x00002000
+#define NV10_3D_RC_FINAL0_C_MAPPING_EXPAND_NORMAL              0x00004000
+#define NV10_3D_RC_FINAL0_C_MAPPING_EXPAND_NEGATE              0x00006000
+#define NV10_3D_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL           0x00008000
+#define NV10_3D_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE           0x0000a000
+#define NV10_3D_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY            0x0000c000
+#define NV10_3D_RC_FINAL0_C_MAPPING_SIGNED_NEGATE              0x0000e000
+#define NV10_3D_RC_FINAL0_B_INPUT__MASK                                0x000f0000
+#define NV10_3D_RC_FINAL0_B_INPUT__SHIFT                       16
+#define NV10_3D_RC_FINAL0_B_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_FINAL0_B_INPUT_CONSTANT_COLOR0              0x00010000
+#define NV10_3D_RC_FINAL0_B_INPUT_CONSTANT_COLOR1              0x00020000
+#define NV10_3D_RC_FINAL0_B_INPUT_FOG                          0x00030000
+#define NV10_3D_RC_FINAL0_B_INPUT_PRIMARY_COLOR                        0x00040000
+#define NV10_3D_RC_FINAL0_B_INPUT_SECONDARY_COLOR              0x00050000
+#define NV10_3D_RC_FINAL0_B_INPUT_TEXTURE0                     0x00080000
+#define NV10_3D_RC_FINAL0_B_INPUT_TEXTURE1                     0x00090000
+#define NV10_3D_RC_FINAL0_B_INPUT_TEXTURE2                     0x000a0000
+#define NV10_3D_RC_FINAL0_B_INPUT_TEXTURE3                     0x000b0000
+#define NV10_3D_RC_FINAL0_B_INPUT_SPARE0                       0x000c0000
+#define NV10_3D_RC_FINAL0_B_INPUT_SPARE1                       0x000d0000
+#define NV10_3D_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x000e0000
+#define NV10_3D_RC_FINAL0_B_INPUT_E_TIMES_F                    0x000f0000
+#define NV10_3D_RC_FINAL0_B_COMPONENT_USAGE__MASK              0x00100000
+#define NV10_3D_RC_FINAL0_B_COMPONENT_USAGE__SHIFT             20
+#define NV10_3D_RC_FINAL0_B_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_FINAL0_B_COMPONENT_USAGE_ALPHA              0x00100000
+#define NV10_3D_RC_FINAL0_B_MAPPING__MASK                      0x00e00000
+#define NV10_3D_RC_FINAL0_B_MAPPING__SHIFT                     21
+#define NV10_3D_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT            0x00200000
+#define NV10_3D_RC_FINAL0_B_MAPPING_EXPAND_NORMAL              0x00400000
+#define NV10_3D_RC_FINAL0_B_MAPPING_EXPAND_NEGATE              0x00600000
+#define NV10_3D_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL           0x00800000
+#define NV10_3D_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE           0x00a00000
+#define NV10_3D_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY            0x00c00000
+#define NV10_3D_RC_FINAL0_B_MAPPING_SIGNED_NEGATE              0x00e00000
+#define NV10_3D_RC_FINAL0_A_INPUT__MASK                                0x0f000000
+#define NV10_3D_RC_FINAL0_A_INPUT__SHIFT                       24
+#define NV10_3D_RC_FINAL0_A_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_FINAL0_A_INPUT_CONSTANT_COLOR0              0x01000000
+#define NV10_3D_RC_FINAL0_A_INPUT_CONSTANT_COLOR1              0x02000000
+#define NV10_3D_RC_FINAL0_A_INPUT_FOG                          0x03000000
+#define NV10_3D_RC_FINAL0_A_INPUT_PRIMARY_COLOR                        0x04000000
+#define NV10_3D_RC_FINAL0_A_INPUT_SECONDARY_COLOR              0x05000000
+#define NV10_3D_RC_FINAL0_A_INPUT_TEXTURE0                     0x08000000
+#define NV10_3D_RC_FINAL0_A_INPUT_TEXTURE1                     0x09000000
+#define NV10_3D_RC_FINAL0_A_INPUT_TEXTURE2                     0x0a000000
+#define NV10_3D_RC_FINAL0_A_INPUT_TEXTURE3                     0x0b000000
+#define NV10_3D_RC_FINAL0_A_INPUT_SPARE0                       0x0c000000
+#define NV10_3D_RC_FINAL0_A_INPUT_SPARE1                       0x0d000000
+#define NV10_3D_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x0e000000
+#define NV10_3D_RC_FINAL0_A_INPUT_E_TIMES_F                    0x0f000000
+#define NV10_3D_RC_FINAL0_A_COMPONENT_USAGE__MASK              0x10000000
+#define NV10_3D_RC_FINAL0_A_COMPONENT_USAGE__SHIFT             28
+#define NV10_3D_RC_FINAL0_A_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_FINAL0_A_COMPONENT_USAGE_ALPHA              0x10000000
+#define NV10_3D_RC_FINAL0_A_MAPPING__MASK                      0xe0000000
+#define NV10_3D_RC_FINAL0_A_MAPPING__SHIFT                     29
+#define NV10_3D_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT            0x20000000
+#define NV10_3D_RC_FINAL0_A_MAPPING_EXPAND_NORMAL              0x40000000
+#define NV10_3D_RC_FINAL0_A_MAPPING_EXPAND_NEGATE              0x60000000
+#define NV10_3D_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL           0x80000000
+#define NV10_3D_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE           0xa0000000
+#define NV10_3D_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY            0xc0000000
+#define NV10_3D_RC_FINAL0_A_MAPPING_SIGNED_NEGATE              0xe0000000
+
+#define NV10_3D_RC_FINAL1                                      0x0000028c
+#define NV10_3D_RC_FINAL1_COLOR_SUM_CLAMP                      0x00000080
+#define NV10_3D_RC_FINAL1_G_INPUT__MASK                                0x00000f00
+#define NV10_3D_RC_FINAL1_G_INPUT__SHIFT                       8
+#define NV10_3D_RC_FINAL1_G_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_FINAL1_G_INPUT_CONSTANT_COLOR0              0x00000100
+#define NV10_3D_RC_FINAL1_G_INPUT_CONSTANT_COLOR1              0x00000200
+#define NV10_3D_RC_FINAL1_G_INPUT_FOG                          0x00000300
+#define NV10_3D_RC_FINAL1_G_INPUT_PRIMARY_COLOR                        0x00000400
+#define NV10_3D_RC_FINAL1_G_INPUT_SECONDARY_COLOR              0x00000500
+#define NV10_3D_RC_FINAL1_G_INPUT_TEXTURE0                     0x00000800
+#define NV10_3D_RC_FINAL1_G_INPUT_TEXTURE1                     0x00000900
+#define NV10_3D_RC_FINAL1_G_INPUT_TEXTURE2                     0x00000a00
+#define NV10_3D_RC_FINAL1_G_INPUT_TEXTURE3                     0x00000b00
+#define NV10_3D_RC_FINAL1_G_INPUT_SPARE0                       0x00000c00
+#define NV10_3D_RC_FINAL1_G_INPUT_SPARE1                       0x00000d00
+#define NV10_3D_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x00000e00
+#define NV10_3D_RC_FINAL1_G_INPUT_E_TIMES_F                    0x00000f00
+#define NV10_3D_RC_FINAL1_G_COMPONENT_USAGE__MASK              0x00001000
+#define NV10_3D_RC_FINAL1_G_COMPONENT_USAGE__SHIFT             12
+#define NV10_3D_RC_FINAL1_G_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_FINAL1_G_COMPONENT_USAGE_ALPHA              0x00001000
+#define NV10_3D_RC_FINAL1_G_MAPPING__MASK                      0x0000e000
+#define NV10_3D_RC_FINAL1_G_MAPPING__SHIFT                     13
+#define NV10_3D_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT            0x00002000
+#define NV10_3D_RC_FINAL1_G_MAPPING_EXPAND_NORMAL              0x00004000
+#define NV10_3D_RC_FINAL1_G_MAPPING_EXPAND_NEGATE              0x00006000
+#define NV10_3D_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL           0x00008000
+#define NV10_3D_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE           0x0000a000
+#define NV10_3D_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY            0x0000c000
+#define NV10_3D_RC_FINAL1_G_MAPPING_SIGNED_NEGATE              0x0000e000
+#define NV10_3D_RC_FINAL1_F_INPUT__MASK                                0x000f0000
+#define NV10_3D_RC_FINAL1_F_INPUT__SHIFT                       16
+#define NV10_3D_RC_FINAL1_F_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_FINAL1_F_INPUT_CONSTANT_COLOR0              0x00010000
+#define NV10_3D_RC_FINAL1_F_INPUT_CONSTANT_COLOR1              0x00020000
+#define NV10_3D_RC_FINAL1_F_INPUT_FOG                          0x00030000
+#define NV10_3D_RC_FINAL1_F_INPUT_PRIMARY_COLOR                        0x00040000
+#define NV10_3D_RC_FINAL1_F_INPUT_SECONDARY_COLOR              0x00050000
+#define NV10_3D_RC_FINAL1_F_INPUT_TEXTURE0                     0x00080000
+#define NV10_3D_RC_FINAL1_F_INPUT_TEXTURE1                     0x00090000
+#define NV10_3D_RC_FINAL1_F_INPUT_TEXTURE2                     0x000a0000
+#define NV10_3D_RC_FINAL1_F_INPUT_TEXTURE3                     0x000b0000
+#define NV10_3D_RC_FINAL1_F_INPUT_SPARE0                       0x000c0000
+#define NV10_3D_RC_FINAL1_F_INPUT_SPARE1                       0x000d0000
+#define NV10_3D_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x000e0000
+#define NV10_3D_RC_FINAL1_F_INPUT_E_TIMES_F                    0x000f0000
+#define NV10_3D_RC_FINAL1_F_COMPONENT_USAGE__MASK              0x00100000
+#define NV10_3D_RC_FINAL1_F_COMPONENT_USAGE__SHIFT             20
+#define NV10_3D_RC_FINAL1_F_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_FINAL1_F_COMPONENT_USAGE_ALPHA              0x00100000
+#define NV10_3D_RC_FINAL1_F_MAPPING__MASK                      0x00e00000
+#define NV10_3D_RC_FINAL1_F_MAPPING__SHIFT                     21
+#define NV10_3D_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT            0x00200000
+#define NV10_3D_RC_FINAL1_F_MAPPING_EXPAND_NORMAL              0x00400000
+#define NV10_3D_RC_FINAL1_F_MAPPING_EXPAND_NEGATE              0x00600000
+#define NV10_3D_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL           0x00800000
+#define NV10_3D_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE           0x00a00000
+#define NV10_3D_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY            0x00c00000
+#define NV10_3D_RC_FINAL1_F_MAPPING_SIGNED_NEGATE              0x00e00000
+#define NV10_3D_RC_FINAL1_E_INPUT__MASK                                0x0f000000
+#define NV10_3D_RC_FINAL1_E_INPUT__SHIFT                       24
+#define NV10_3D_RC_FINAL1_E_INPUT_ZERO                         0x00000000
+#define NV10_3D_RC_FINAL1_E_INPUT_CONSTANT_COLOR0              0x01000000
+#define NV10_3D_RC_FINAL1_E_INPUT_CONSTANT_COLOR1              0x02000000
+#define NV10_3D_RC_FINAL1_E_INPUT_FOG                          0x03000000
+#define NV10_3D_RC_FINAL1_E_INPUT_PRIMARY_COLOR                        0x04000000
+#define NV10_3D_RC_FINAL1_E_INPUT_SECONDARY_COLOR              0x05000000
+#define NV10_3D_RC_FINAL1_E_INPUT_TEXTURE0                     0x08000000
+#define NV10_3D_RC_FINAL1_E_INPUT_TEXTURE1                     0x09000000
+#define NV10_3D_RC_FINAL1_E_INPUT_TEXTURE2                     0x0a000000
+#define NV10_3D_RC_FINAL1_E_INPUT_TEXTURE3                     0x0b000000
+#define NV10_3D_RC_FINAL1_E_INPUT_SPARE0                       0x0c000000
+#define NV10_3D_RC_FINAL1_E_INPUT_SPARE1                       0x0d000000
+#define NV10_3D_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x0e000000
+#define NV10_3D_RC_FINAL1_E_INPUT_E_TIMES_F                    0x0f000000
+#define NV10_3D_RC_FINAL1_E_COMPONENT_USAGE__MASK              0x10000000
+#define NV10_3D_RC_FINAL1_E_COMPONENT_USAGE__SHIFT             28
+#define NV10_3D_RC_FINAL1_E_COMPONENT_USAGE_RGB                        0x00000000
+#define NV10_3D_RC_FINAL1_E_COMPONENT_USAGE_ALPHA              0x10000000
+#define NV10_3D_RC_FINAL1_E_MAPPING__MASK                      0xe0000000
+#define NV10_3D_RC_FINAL1_E_MAPPING__SHIFT                     29
+#define NV10_3D_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV10_3D_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT            0x20000000
+#define NV10_3D_RC_FINAL1_E_MAPPING_EXPAND_NORMAL              0x40000000
+#define NV10_3D_RC_FINAL1_E_MAPPING_EXPAND_NEGATE              0x60000000
+#define NV10_3D_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL           0x80000000
+#define NV10_3D_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE           0xa0000000
+#define NV10_3D_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY            0xc0000000
+#define NV10_3D_RC_FINAL1_E_MAPPING_SIGNED_NEGATE              0xe0000000
+
+
+#define NV17_3D_DMA_HIERZ                                      0x000001b0
+
+#define NV17_3D_HIERZ_PITCH                                    0x00000d5c
+
+#define NV17_3D_HIERZ_OFFSET                                   0x00000d60
+
+#define NV17_3D_HIERZ_FILL_VALUE                               0x00000d68
+
+#define NV17_3D_HIERZ_BUFFER_CLEAR                             0x00000d6c
+
+#define NV17_3D_UNK0D74                                                0x00000d74
+
+#define NV17_3D_UNK0D84                                                0x00000d84
+
+
+#define NV17_3D_HIERZ_WINDOW                                   0x00001638
+
+
+#define NV17_3D_HIERZ_WINDOW_X                                 0x00001638
+
+#define NV17_3D_HIERZ_WINDOW_Y                                 0x0000163c
+
+#define NV17_3D_HIERZ_WINDOW_Z                                 0x00001640
+
+#define NV17_3D_HIERZ_WINDOW_W                                 0x00001644
+
+#define NV17_3D_HIERZ_ENABLE                                   0x00001658
+
+
+#define NV17_3D_UNK01AC                                                0x000001ac
+
+#define NV17_3D_UNK0258                                                0x00000258
+
+#define NV17_3D_UNK025C                                                0x0000025c
+
+#define NV10_3D_UNK0290                                                0x00000290
+
+#define NV17_3D_COLOR_MASK_ENABLE                              0x000002bc
+
+#define NV10_3D_UNK03F0                                                0x000003f0
+
+#define NV10_3D_UNK03F4                                                0x000003f4
+
+#define NV17_3D_ZCLEAR_ENABLE                                  0x000003f8
+
+#define NV17_3D_ZCLEAR_VALUE                                   0x000003fc
+#define NV17_3D_ZCLEAR_VALUE_DEPTH__MASK                       0xffffff00
+#define NV17_3D_ZCLEAR_VALUE_DEPTH__SHIFT                      8
+#define NV17_3D_ZCLEAR_VALUE_SEQUENCE__MASK                    0x000000ff
+#define NV17_3D_ZCLEAR_VALUE_SEQUENCE__SHIFT                   0
+
+#define NV10_3D_POINT_SIZE                                     0x000003ec
+
+#define NV10_3D_POINT_PARAMETER(i0)                           (0x000006f8 + 0x4*(i0))
+#define NV10_3D_POINT_PARAMETER__ESIZE                         0x00000004
+#define NV10_3D_POINT_PARAMETER__LEN                           0x00000008
+
+#define NV11_3D_COLOR_LOGIC_OP                                 0x00000d40
+
+#define NV11_3D_COLOR_LOGIC_OP_ENABLE                          0x00000d40
+
+#define NV11_3D_COLOR_LOGIC_OP_OP                              0x00000d44
+#define NV11_3D_COLOR_LOGIC_OP_OP_CLEAR                                0x00001500
+#define NV11_3D_COLOR_LOGIC_OP_OP_AND                          0x00001501
+#define NV11_3D_COLOR_LOGIC_OP_OP_AND_REVERSE                  0x00001502
+#define NV11_3D_COLOR_LOGIC_OP_OP_COPY                         0x00001503
+#define NV11_3D_COLOR_LOGIC_OP_OP_AND_INVERTED                 0x00001504
+#define NV11_3D_COLOR_LOGIC_OP_OP_NOOP                         0x00001505
+#define NV11_3D_COLOR_LOGIC_OP_OP_XOR                          0x00001506
+#define NV11_3D_COLOR_LOGIC_OP_OP_OR                           0x00001507
+#define NV11_3D_COLOR_LOGIC_OP_OP_NOR                          0x00001508
+#define NV11_3D_COLOR_LOGIC_OP_OP_EQUIV                                0x00001509
+#define NV11_3D_COLOR_LOGIC_OP_OP_INVERT                       0x0000150a
+#define NV11_3D_COLOR_LOGIC_OP_OP_OR_REVERSE                   0x0000150b
+#define NV11_3D_COLOR_LOGIC_OP_OP_COPY_INVERTED                        0x0000150c
+#define NV11_3D_COLOR_LOGIC_OP_OP_OR_INVERTED                  0x0000150d
+#define NV11_3D_COLOR_LOGIC_OP_OP_NAND                         0x0000150e
+#define NV11_3D_COLOR_LOGIC_OP_OP_SET                          0x0000150f
+
+
+#endif /* NV10_3D_XML */
diff --git a/src/mesa/drivers/dri/nouveau/nv20_3d.xml.h b/src/mesa/drivers/dri/nouveau/nv20_3d.xml.h
new file mode 100644 (file)
index 0000000..c8ed861
--- /dev/null
@@ -0,0 +1,2076 @@
+#ifndef NV20_3D_XML
+#define NV20_3D_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:
+- nv20_3d.xml    (  21073 bytes, from 2010-11-15 02:24:38)
+- copyright.xml  (   6452 bytes, from 2010-11-15 15:10:58)
+- nv10_3d.xml    (  18449 bytes, from 2010-11-15 02:24:38)
+- nv_defs.xml    (   4437 bytes, from 2010-11-01 00:28:46)
+- nv_3ddefs.xml  (  16394 bytes, from 2010-11-01 00:28:46)
+- nv_object.xml  (  11547 bytes, from 2010-11-13 23:32:57)
+- nvchipsets.xml (   3074 bytes, from 2010-11-13 23:32:57)
+
+Copyright (C) 2006-2010 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 NV20_VERTEX_ATTR_POS                                   0x00000000
+#define NV20_VERTEX_ATTR_NORMAL                                        0x00000002
+#define NV20_VERTEX_ATTR_COLOR0                                        0x00000003
+#define NV20_VERTEX_ATTR_COLOR1                                        0x00000004
+#define NV20_VERTEX_ATTR_FOG                                   0x00000005
+#define NV20_VERTEX_ATTR_TEX0                                  0x00000009
+#define NV20_VERTEX_ATTR_TEX1                                  0x0000000a
+#define NV20_VERTEX_ATTR_TEX2                                  0x0000000b
+#define NV20_VERTEX_ATTR_TEX3                                  0x0000000c
+
+
+
+#define NV20_3D_FLIP_SET_READ                                  0x00000120
+
+#define NV20_3D_FLIP_SET_WRITE                                 0x00000124
+
+#define NV20_3D_FLIP_MAX                                       0x00000128
+
+#define NV20_3D_FLIP_INCR_WRITE                                        0x0000012c
+
+#define NV20_3D_FLIP_WAIT                                      0x00000130
+
+#define NV20_3D_DMA_NOTIFY                                     0x00000180
+
+#define NV20_3D_DMA_TEXTURE0                                   0x00000184
+
+#define NV20_3D_DMA_TEXTURE1                                   0x00000188
+
+#define NV20_3D_DMA_COLOR                                      0x00000194
+
+#define NV20_3D_DMA_ZETA                                       0x00000198
+
+#define NV20_3D_RT_HORIZ                                       0x00000200
+#define NV20_3D_RT_HORIZ_X__MASK                               0x0000ffff
+#define NV20_3D_RT_HORIZ_X__SHIFT                              0
+#define NV20_3D_RT_HORIZ_W__MASK                               0xffff0000
+#define NV20_3D_RT_HORIZ_W__SHIFT                              16
+
+#define NV20_3D_RT_VERT                                                0x00000204
+#define NV20_3D_RT_VERT_Y__MASK                                        0x0000ffff
+#define NV20_3D_RT_VERT_Y__SHIFT                               0
+#define NV20_3D_RT_VERT_H__MASK                                        0xffff0000
+#define NV20_3D_RT_VERT_H__SHIFT                               16
+
+#define NV20_3D_RT_FORMAT                                      0x00000208
+#define NV20_3D_RT_FORMAT_TYPE__MASK                           0x00000f00
+#define NV20_3D_RT_FORMAT_TYPE__SHIFT                          8
+#define NV20_3D_RT_FORMAT_TYPE_LINEAR                          0x00000100
+#define NV20_3D_RT_FORMAT_TYPE_SWIZZLED                                0x00000200
+#define NV20_3D_RT_FORMAT_DEPTH__MASK                          0x00000030
+#define NV20_3D_RT_FORMAT_DEPTH__SHIFT                         4
+#define NV20_3D_RT_FORMAT_DEPTH_Z16                            0x00000010
+#define NV20_3D_RT_FORMAT_DEPTH_Z24S8                          0x00000020
+#define NV20_3D_RT_FORMAT_COLOR__MASK                          0x0000000f
+#define NV20_3D_RT_FORMAT_COLOR__SHIFT                         0
+#define NV20_3D_RT_FORMAT_COLOR_R5G6B5                         0x00000003
+#define NV20_3D_RT_FORMAT_COLOR_X8R8G8B8                       0x00000005
+#define NV20_3D_RT_FORMAT_COLOR_A8R8G8B8                       0x00000008
+#define NV20_3D_RT_FORMAT_COLOR_B8                             0x00000009
+
+#define NV20_3D_RT_PITCH                                       0x0000020c
+#define NV20_3D_RT_PITCH_COLOR_PITCH__MASK                     0x0000ffff
+#define NV20_3D_RT_PITCH_COLOR_PITCH__SHIFT                    0
+#define NV20_3D_RT_PITCH_ZETA_PITCH__MASK                      0xffff0000
+#define NV20_3D_RT_PITCH_ZETA_PITCH__SHIFT                     16
+
+#define NV20_3D_COLOR_OFFSET                                   0x00000210
+
+#define NV20_3D_ZETA_OFFSET                                    0x00000214
+
+#define NV20_3D_UNK0290                                                0x00000290
+
+#define NV20_3D_VIEWPORT_CLIP_MODE                             0x000002b4
+
+#define NV20_3D_VIEWPORT_CLIP_HORIZ(i0)                               (0x000002c0 + 0x4*(i0))
+#define NV20_3D_VIEWPORT_CLIP_HORIZ__ESIZE                     0x00000004
+#define NV20_3D_VIEWPORT_CLIP_HORIZ__LEN                       0x00000008
+#define NV20_3D_VIEWPORT_CLIP_HORIZ_CLIP_L__MASK               0x000007ff
+#define NV20_3D_VIEWPORT_CLIP_HORIZ_CLIP_L__SHIFT              0
+#define NV20_3D_VIEWPORT_CLIP_HORIZ_CLIP_R__MASK               0x07ff0000
+#define NV20_3D_VIEWPORT_CLIP_HORIZ_CLIP_R__SHIFT              16
+
+#define NV20_3D_VIEWPORT_CLIP_VERT(i0)                        (0x000002e0 + 0x4*(i0))
+#define NV20_3D_VIEWPORT_CLIP_VERT__ESIZE                      0x00000004
+#define NV20_3D_VIEWPORT_CLIP_VERT__LEN                                0x00000008
+#define NV20_3D_VIEWPORT_CLIP_VERT_CLIP_T__MASK                        0x000007ff
+#define NV20_3D_VIEWPORT_CLIP_VERT_CLIP_T__SHIFT               0
+#define NV20_3D_VIEWPORT_CLIP_VERT_CLIP_B__MASK                        0x07ff0000
+#define NV20_3D_VIEWPORT_CLIP_VERT_CLIP_B__SHIFT               16
+
+#define NV20_3D_ALPHA_FUNC_ENABLE                              0x00000300
+
+#define NV20_3D_BLEND_FUNC_ENABLE                              0x00000304
+
+#define NV20_3D_CULL_FACE_ENABLE                               0x00000308
+
+#define NV20_3D_DEPTH_TEST_ENABLE                              0x0000030c
+
+#define NV20_3D_DITHER_ENABLE                                  0x00000310
+
+#define NV20_3D_LIGHTING_ENABLE                                        0x00000314
+
+#define NV20_3D_POINT_PARAMETERS_ENABLE                                0x00000318
+
+#define NV20_3D_POINT_SMOOTH_ENABLE                            0x0000031c
+
+#define NV20_3D_LINE_SMOOTH_ENABLE                             0x00000320
+
+#define NV20_3D_POLYGON_SMOOTH_ENABLE                          0x00000324
+
+#define NV20_3D_STENCIL_ENABLE                                 0x0000032c
+
+#define NV20_3D_POLYGON_OFFSET_POINT_ENABLE                    0x00000330
+
+#define NV20_3D_POLYGON_OFFSET_LINE_ENABLE                     0x00000334
+
+#define NV20_3D_POLYGON_OFFSET_FILL_ENABLE                     0x00000338
+
+#define NV20_3D_ALPHA_FUNC_FUNC                                        0x0000033c
+#define NV20_3D_ALPHA_FUNC_FUNC_NEVER                          0x00000200
+#define NV20_3D_ALPHA_FUNC_FUNC_LESS                           0x00000201
+#define NV20_3D_ALPHA_FUNC_FUNC_EQUAL                          0x00000202
+#define NV20_3D_ALPHA_FUNC_FUNC_LEQUAL                         0x00000203
+#define NV20_3D_ALPHA_FUNC_FUNC_GREATER                                0x00000204
+#define NV20_3D_ALPHA_FUNC_FUNC_NOTEQUAL                       0x00000205
+#define NV20_3D_ALPHA_FUNC_FUNC_GEQUAL                         0x00000206
+#define NV20_3D_ALPHA_FUNC_FUNC_ALWAYS                         0x00000207
+
+#define NV20_3D_ALPHA_FUNC_REF                                 0x00000340
+
+#define NV20_3D_BLEND_FUNC_SRC                                 0x00000344
+#define NV20_3D_BLEND_FUNC_SRC_ZERO                            0x00000000
+#define NV20_3D_BLEND_FUNC_SRC_ONE                             0x00000001
+#define NV20_3D_BLEND_FUNC_SRC_SRC_COLOR                       0x00000300
+#define NV20_3D_BLEND_FUNC_SRC_ONE_MINUS_SRC_COLOR             0x00000301
+#define NV20_3D_BLEND_FUNC_SRC_SRC_ALPHA                       0x00000302
+#define NV20_3D_BLEND_FUNC_SRC_ONE_MINUS_SRC_ALPHA             0x00000303
+#define NV20_3D_BLEND_FUNC_SRC_DST_ALPHA                       0x00000304
+#define NV20_3D_BLEND_FUNC_SRC_ONE_MINUS_DST_ALPHA             0x00000305
+#define NV20_3D_BLEND_FUNC_SRC_DST_COLOR                       0x00000306
+#define NV20_3D_BLEND_FUNC_SRC_ONE_MINUS_DST_COLOR             0x00000307
+#define NV20_3D_BLEND_FUNC_SRC_SRC_ALPHA_SATURATE              0x00000308
+#define NV20_3D_BLEND_FUNC_SRC_CONSTANT_COLOR                  0x00008001
+#define NV20_3D_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_COLOR                0x00008002
+#define NV20_3D_BLEND_FUNC_SRC_CONSTANT_ALPHA                  0x00008003
+#define NV20_3D_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_ALPHA                0x00008004
+
+#define NV20_3D_BLEND_FUNC_DST                                 0x00000348
+#define NV20_3D_BLEND_FUNC_DST_ZERO                            0x00000000
+#define NV20_3D_BLEND_FUNC_DST_ONE                             0x00000001
+#define NV20_3D_BLEND_FUNC_DST_SRC_COLOR                       0x00000300
+#define NV20_3D_BLEND_FUNC_DST_ONE_MINUS_SRC_COLOR             0x00000301
+#define NV20_3D_BLEND_FUNC_DST_SRC_ALPHA                       0x00000302
+#define NV20_3D_BLEND_FUNC_DST_ONE_MINUS_SRC_ALPHA             0x00000303
+#define NV20_3D_BLEND_FUNC_DST_DST_ALPHA                       0x00000304
+#define NV20_3D_BLEND_FUNC_DST_ONE_MINUS_DST_ALPHA             0x00000305
+#define NV20_3D_BLEND_FUNC_DST_DST_COLOR                       0x00000306
+#define NV20_3D_BLEND_FUNC_DST_ONE_MINUS_DST_COLOR             0x00000307
+#define NV20_3D_BLEND_FUNC_DST_SRC_ALPHA_SATURATE              0x00000308
+#define NV20_3D_BLEND_FUNC_DST_CONSTANT_COLOR                  0x00008001
+#define NV20_3D_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_COLOR                0x00008002
+#define NV20_3D_BLEND_FUNC_DST_CONSTANT_ALPHA                  0x00008003
+#define NV20_3D_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_ALPHA                0x00008004
+
+#define NV20_3D_BLEND_COLOR                                    0x0000034c
+#define NV20_3D_BLEND_COLOR_B__MASK                            0x000000ff
+#define NV20_3D_BLEND_COLOR_B__SHIFT                           0
+#define NV20_3D_BLEND_COLOR_G__MASK                            0x0000ff00
+#define NV20_3D_BLEND_COLOR_G__SHIFT                           8
+#define NV20_3D_BLEND_COLOR_R__MASK                            0x00ff0000
+#define NV20_3D_BLEND_COLOR_R__SHIFT                           16
+#define NV20_3D_BLEND_COLOR_A__MASK                            0xff000000
+#define NV20_3D_BLEND_COLOR_A__SHIFT                           24
+
+#define NV20_3D_BLEND_EQUATION                                 0x00000350
+#define NV20_3D_BLEND_EQUATION_FUNC_ADD                                0x00008006
+#define NV20_3D_BLEND_EQUATION_MIN                             0x00008007
+#define NV20_3D_BLEND_EQUATION_MAX                             0x00008008
+#define NV20_3D_BLEND_EQUATION_FUNC_SUBTRACT                   0x0000800a
+#define NV20_3D_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT           0x0000800b
+
+#define NV20_3D_DEPTH_FUNC                                     0x00000354
+#define NV20_3D_DEPTH_FUNC_NEVER                               0x00000200
+#define NV20_3D_DEPTH_FUNC_LESS                                        0x00000201
+#define NV20_3D_DEPTH_FUNC_EQUAL                               0x00000202
+#define NV20_3D_DEPTH_FUNC_LEQUAL                              0x00000203
+#define NV20_3D_DEPTH_FUNC_GREATER                             0x00000204
+#define NV20_3D_DEPTH_FUNC_NOTEQUAL                            0x00000205
+#define NV20_3D_DEPTH_FUNC_GEQUAL                              0x00000206
+#define NV20_3D_DEPTH_FUNC_ALWAYS                              0x00000207
+
+#define NV20_3D_COLOR_MASK                                     0x00000358
+#define NV20_3D_COLOR_MASK_B                                   0x00000001
+#define NV20_3D_COLOR_MASK_G                                   0x00000100
+#define NV20_3D_COLOR_MASK_R                                   0x00010000
+#define NV20_3D_COLOR_MASK_A                                   0x01000000
+
+#define NV20_3D_DEPTH_WRITE_ENABLE                             0x0000035c
+
+#define NV20_3D_STENCIL_MASK                                   0x00000360
+
+#define NV20_3D_STENCIL_FUNC_FUNC                              0x00000364
+#define NV20_3D_STENCIL_FUNC_FUNC_NEVER                                0x00000200
+#define NV20_3D_STENCIL_FUNC_FUNC_LESS                         0x00000201
+#define NV20_3D_STENCIL_FUNC_FUNC_EQUAL                                0x00000202
+#define NV20_3D_STENCIL_FUNC_FUNC_LEQUAL                       0x00000203
+#define NV20_3D_STENCIL_FUNC_FUNC_GREATER                      0x00000204
+#define NV20_3D_STENCIL_FUNC_FUNC_NOTEQUAL                     0x00000205
+#define NV20_3D_STENCIL_FUNC_FUNC_GEQUAL                       0x00000206
+#define NV20_3D_STENCIL_FUNC_FUNC_ALWAYS                       0x00000207
+
+#define NV20_3D_STENCIL_FUNC_REF                               0x00000368
+
+#define NV20_3D_STENCIL_FUNC_MASK                              0x0000036c
+
+#define NV20_3D_STENCIL_OP_FAIL                                        0x00000370
+#define NV20_3D_STENCIL_OP_FAIL_ZERO                           0x00000000
+#define NV20_3D_STENCIL_OP_FAIL_INVERT                         0x0000150a
+#define NV20_3D_STENCIL_OP_FAIL_KEEP                           0x00001e00
+#define NV20_3D_STENCIL_OP_FAIL_REPLACE                                0x00001e01
+#define NV20_3D_STENCIL_OP_FAIL_INCR                           0x00001e02
+#define NV20_3D_STENCIL_OP_FAIL_DECR                           0x00001e03
+#define NV20_3D_STENCIL_OP_FAIL_INCR_WRAP                      0x00008507
+#define NV20_3D_STENCIL_OP_FAIL_DECR_WRAP                      0x00008508
+
+#define NV20_3D_STENCIL_OP_ZFAIL                               0x00000374
+#define NV20_3D_STENCIL_OP_ZFAIL_ZERO                          0x00000000
+#define NV20_3D_STENCIL_OP_ZFAIL_INVERT                                0x0000150a
+#define NV20_3D_STENCIL_OP_ZFAIL_KEEP                          0x00001e00
+#define NV20_3D_STENCIL_OP_ZFAIL_REPLACE                       0x00001e01
+#define NV20_3D_STENCIL_OP_ZFAIL_INCR                          0x00001e02
+#define NV20_3D_STENCIL_OP_ZFAIL_DECR                          0x00001e03
+#define NV20_3D_STENCIL_OP_ZFAIL_INCR_WRAP                     0x00008507
+#define NV20_3D_STENCIL_OP_ZFAIL_DECR_WRAP                     0x00008508
+
+#define NV20_3D_STENCIL_OP_ZPASS                               0x00000378
+#define NV20_3D_STENCIL_OP_ZPASS_ZERO                          0x00000000
+#define NV20_3D_STENCIL_OP_ZPASS_INVERT                                0x0000150a
+#define NV20_3D_STENCIL_OP_ZPASS_KEEP                          0x00001e00
+#define NV20_3D_STENCIL_OP_ZPASS_REPLACE                       0x00001e01
+#define NV20_3D_STENCIL_OP_ZPASS_INCR                          0x00001e02
+#define NV20_3D_STENCIL_OP_ZPASS_DECR                          0x00001e03
+#define NV20_3D_STENCIL_OP_ZPASS_INCR_WRAP                     0x00008507
+#define NV20_3D_STENCIL_OP_ZPASS_DECR_WRAP                     0x00008508
+
+#define NV20_3D_SHADE_MODEL                                    0x0000037c
+#define NV20_3D_SHADE_MODEL_FLAT                               0x00001d00
+#define NV20_3D_SHADE_MODEL_SMOOTH                             0x00001d01
+
+#define NV20_3D_LINE_WIDTH                                     0x00000380
+
+#define NV20_3D_POLYGON_OFFSET_FACTOR                          0x00000384
+
+#define NV20_3D_POLYGON_OFFSET_UNITS                           0x00000388
+
+#define NV20_3D_POLYGON_MODE_FRONT                             0x0000038c
+#define NV20_3D_POLYGON_MODE_FRONT_POINT                       0x00001b00
+#define NV20_3D_POLYGON_MODE_FRONT_LINE                                0x00001b01
+#define NV20_3D_POLYGON_MODE_FRONT_FILL                                0x00001b02
+
+#define NV20_3D_POLYGON_MODE_BACK                              0x00000390
+#define NV20_3D_POLYGON_MODE_BACK_POINT                                0x00001b00
+#define NV20_3D_POLYGON_MODE_BACK_LINE                         0x00001b01
+#define NV20_3D_POLYGON_MODE_BACK_FILL                         0x00001b02
+
+#define NV20_3D_DEPTH_RANGE_NEAR                               0x00000394
+
+#define NV20_3D_DEPTH_RANGE_FAR                                        0x00000398
+
+#define NV20_3D_CULL_FACE                                      0x0000039c
+#define NV20_3D_CULL_FACE_FRONT                                        0x00000404
+#define NV20_3D_CULL_FACE_BACK                                 0x00000405
+#define NV20_3D_CULL_FACE_FRONT_AND_BACK                       0x00000408
+
+#define NV20_3D_FRONT_FACE                                     0x000003a0
+#define NV20_3D_FRONT_FACE_CW                                  0x00000900
+#define NV20_3D_FRONT_FACE_CCW                                 0x00000901
+
+#define NV20_3D_DMA_FENCE                                      0x000001a4
+
+#define NV20_3D_DMA_QUERY                                      0x000001a8
+
+
+#define NV20_3D_VERTEX_POS_3F                                  0x00001500
+
+
+#define NV20_3D_VERTEX_POS_3F_X                                        0x00001500
+
+#define NV20_3D_VERTEX_POS_3F_Y                                        0x00001504
+
+#define NV20_3D_VERTEX_POS_3F_Z                                        0x00001508
+
+#define NV20_3D_VERTEX_POS_4F                                  0x00001518
+
+
+#define NV20_3D_VERTEX_POS_4F_X                                        0x00001518
+
+#define NV20_3D_VERTEX_POS_4F_Y                                        0x0000151c
+
+#define NV20_3D_VERTEX_POS_4F_Z                                        0x00001520
+
+#define NV20_3D_VERTEX_POS_4F_W                                        0x00001524
+
+#define NV20_3D_VERTEX_POS_3I                                  0x00001528
+
+
+#define NV20_3D_VERTEX_POS_3I_XY                               0x00001528
+#define NV20_3D_VERTEX_POS_3I_XY_X__MASK                       0x0000ffff
+#define NV20_3D_VERTEX_POS_3I_XY_X__SHIFT                      0
+#define NV20_3D_VERTEX_POS_3I_XY_Y__MASK                       0xffff0000
+#define NV20_3D_VERTEX_POS_3I_XY_Y__SHIFT                      16
+
+#define NV20_3D_VERTEX_POS_3I_Z                                        0x0000152c
+#define NV20_3D_VERTEX_POS_3I_Z_Z__MASK                                0x0000ffff
+#define NV20_3D_VERTEX_POS_3I_Z_Z__SHIFT                       0
+
+#define NV20_3D_VERTEX_NOR_3F                                  0x00001530
+
+
+#define NV20_3D_VERTEX_NOR_3F_X                                        0x00001530
+
+#define NV20_3D_VERTEX_NOR_3F_Y                                        0x00001534
+
+#define NV20_3D_VERTEX_NOR_3F_Z                                        0x00001538
+
+#define NV20_3D_VERTEX_NOR_3I                                  0x00001540
+
+
+#define NV20_3D_VERTEX_NOR_3I_XY                               0x00001540
+#define NV20_3D_VERTEX_NOR_3I_XY_X__MASK                       0x0000ffff
+#define NV20_3D_VERTEX_NOR_3I_XY_X__SHIFT                      0
+#define NV20_3D_VERTEX_NOR_3I_XY_Y__MASK                       0xffff0000
+#define NV20_3D_VERTEX_NOR_3I_XY_Y__SHIFT                      16
+
+#define NV20_3D_VERTEX_NOR_3I_Z                                        0x00001544
+#define NV20_3D_VERTEX_NOR_3I_Z_Z__MASK                                0x0000ffff
+#define NV20_3D_VERTEX_NOR_3I_Z_Z__SHIFT                       0
+
+#define NV20_3D_VERTEX_COL_4F                                  0x00001550
+
+
+#define NV20_3D_VERTEX_COL_4F_R                                        0x00001550
+
+#define NV20_3D_VERTEX_COL_4F_G                                        0x00001554
+
+#define NV20_3D_VERTEX_COL_4F_B                                        0x00001558
+
+#define NV20_3D_VERTEX_COL_4F_A                                        0x0000155c
+
+#define NV20_3D_VERTEX_COL_3F                                  0x00001560
+
+
+#define NV20_3D_VERTEX_COL_3F_R                                        0x00001560
+
+#define NV20_3D_VERTEX_COL_3F_G                                        0x00001564
+
+#define NV20_3D_VERTEX_COL_3F_B                                        0x00001568
+
+#define NV20_3D_VERTEX_COL_4I                                  0x0000156c
+#define NV20_3D_VERTEX_COL_4I_R__MASK                          0x000000ff
+#define NV20_3D_VERTEX_COL_4I_R__SHIFT                         0
+#define NV20_3D_VERTEX_COL_4I_G__MASK                          0x0000ff00
+#define NV20_3D_VERTEX_COL_4I_G__SHIFT                         8
+#define NV20_3D_VERTEX_COL_4I_B__MASK                          0x00ff0000
+#define NV20_3D_VERTEX_COL_4I_B__SHIFT                         16
+#define NV20_3D_VERTEX_COL_4I_A__MASK                          0xff000000
+#define NV20_3D_VERTEX_COL_4I_A__SHIFT                         24
+
+#define NV20_3D_VERTEX_COL2_3F                                 0x00001580
+
+
+#define NV20_3D_VERTEX_COL2_3F_R                               0x00001580
+
+#define NV20_3D_VERTEX_COL2_3F_G                               0x00001584
+
+#define NV20_3D_VERTEX_COL2_3F_B                               0x00001588
+
+#define NV20_3D_VERTEX_COL2_3I                                 0x0000158c
+#define NV20_3D_VERTEX_COL2_3I_R__MASK                         0x000000ff
+#define NV20_3D_VERTEX_COL2_3I_R__SHIFT                                0
+#define NV20_3D_VERTEX_COL2_3I_G__MASK                         0x0000ff00
+#define NV20_3D_VERTEX_COL2_3I_G__SHIFT                                8
+#define NV20_3D_VERTEX_COL2_3I_B__MASK                         0x00ff0000
+#define NV20_3D_VERTEX_COL2_3I_B__SHIFT                                16
+
+#define NV20_3D_VERTEX_TX0_2F                                  0x00001590
+
+
+#define NV20_3D_VERTEX_TX0_2F_S                                        0x00001590
+
+#define NV20_3D_VERTEX_TX0_2F_T                                        0x00001594
+
+#define NV20_3D_VERTEX_TX0_2I                                  0x00001598
+#define NV20_3D_VERTEX_TX0_2I_S__MASK                          0x0000ffff
+#define NV20_3D_VERTEX_TX0_2I_S__SHIFT                         0
+#define NV20_3D_VERTEX_TX0_2I_T__MASK                          0xffff0000
+#define NV20_3D_VERTEX_TX0_2I_T__SHIFT                         16
+
+#define NV20_3D_VERTEX_TX0_4F                                  0x000015a0
+
+
+#define NV20_3D_VERTEX_TX0_4F_S                                        0x000015a0
+
+#define NV20_3D_VERTEX_TX0_4F_T                                        0x000015a4
+
+#define NV20_3D_VERTEX_TX0_4F_R                                        0x000015a8
+
+#define NV20_3D_VERTEX_TX0_4F_Q                                        0x000015ac
+
+#define NV20_3D_VERTEX_TX0_4I                                  0x000015b0
+
+
+#define NV20_3D_VERTEX_TX0_4I_ST                               0x000015b0
+#define NV20_3D_VERTEX_TX0_4I_ST_S__MASK                       0x0000ffff
+#define NV20_3D_VERTEX_TX0_4I_ST_S__SHIFT                      0
+#define NV20_3D_VERTEX_TX0_4I_ST_T__MASK                       0xffff0000
+#define NV20_3D_VERTEX_TX0_4I_ST_T__SHIFT                      16
+
+#define NV20_3D_VERTEX_TX0_4I_RQ                               0x000015b4
+#define NV20_3D_VERTEX_TX0_4I_RQ_R__MASK                       0x0000ffff
+#define NV20_3D_VERTEX_TX0_4I_RQ_R__SHIFT                      0
+#define NV20_3D_VERTEX_TX0_4I_RQ_Q__MASK                       0xffff0000
+#define NV20_3D_VERTEX_TX0_4I_RQ_Q__SHIFT                      16
+
+#define NV20_3D_VERTEX_TX1_2F                                  0x000015b8
+
+
+#define NV20_3D_VERTEX_TX1_2F_S                                        0x000015b8
+
+#define NV20_3D_VERTEX_TX1_2F_T                                        0x000015bc
+
+#define NV20_3D_VERTEX_TX1_2I                                  0x000015c0
+#define NV20_3D_VERTEX_TX1_2I_S__MASK                          0x0000ffff
+#define NV20_3D_VERTEX_TX1_2I_S__SHIFT                         0
+#define NV20_3D_VERTEX_TX1_2I_T__MASK                          0xffff0000
+#define NV20_3D_VERTEX_TX1_2I_T__SHIFT                         16
+
+#define NV20_3D_VERTEX_TX1_4F                                  0x000015c8
+
+
+#define NV20_3D_VERTEX_TX1_4F_S                                        0x000015c8
+
+#define NV20_3D_VERTEX_TX1_4F_T                                        0x000015cc
+
+#define NV20_3D_VERTEX_TX1_4F_R                                        0x000015d0
+
+#define NV20_3D_VERTEX_TX1_4F_Q                                        0x000015d4
+
+#define NV20_3D_VERTEX_TX1_4I                                  0x000015d8
+
+
+#define NV20_3D_VERTEX_TX1_4I_ST                               0x000015d8
+#define NV20_3D_VERTEX_TX1_4I_ST_S__MASK                       0x0000ffff
+#define NV20_3D_VERTEX_TX1_4I_ST_S__SHIFT                      0
+#define NV20_3D_VERTEX_TX1_4I_ST_T__MASK                       0xffff0000
+#define NV20_3D_VERTEX_TX1_4I_ST_T__SHIFT                      16
+
+#define NV20_3D_VERTEX_TX1_4I_RQ                               0x000015dc
+#define NV20_3D_VERTEX_TX1_4I_RQ_R__MASK                       0x0000ffff
+#define NV20_3D_VERTEX_TX1_4I_RQ_R__SHIFT                      0
+#define NV20_3D_VERTEX_TX1_4I_RQ_Q__MASK                       0xffff0000
+#define NV20_3D_VERTEX_TX1_4I_RQ_Q__SHIFT                      16
+
+#define NV20_3D_VERTEX_TX2_2F                                  0x000015e0
+
+
+#define NV20_3D_VERTEX_TX2_2F_S                                        0x000015e0
+
+#define NV20_3D_VERTEX_TX2_2F_T                                        0x000015e4
+
+#define NV20_3D_VERTEX_TX2_2I                                  0x000015e8
+#define NV20_3D_VERTEX_TX2_2I_S__MASK                          0x0000ffff
+#define NV20_3D_VERTEX_TX2_2I_S__SHIFT                         0
+#define NV20_3D_VERTEX_TX2_2I_T__MASK                          0xffff0000
+#define NV20_3D_VERTEX_TX2_2I_T__SHIFT                         16
+
+#define NV20_3D_VERTEX_TX2_4F                                  0x000015f0
+
+
+#define NV20_3D_VERTEX_TX2_4F_S                                        0x000015f0
+
+#define NV20_3D_VERTEX_TX2_4F_T                                        0x000015f4
+
+#define NV20_3D_VERTEX_TX2_4F_R                                        0x000015f8
+
+#define NV20_3D_VERTEX_TX2_4F_Q                                        0x000015fc
+
+#define NV20_3D_VERTEX_TX2_4I                                  0x00001600
+
+
+#define NV20_3D_VERTEX_TX2_4I_ST                               0x00001600
+#define NV20_3D_VERTEX_TX2_4I_ST_S__MASK                       0x0000ffff
+#define NV20_3D_VERTEX_TX2_4I_ST_S__SHIFT                      0
+#define NV20_3D_VERTEX_TX2_4I_ST_T__MASK                       0xffff0000
+#define NV20_3D_VERTEX_TX2_4I_ST_T__SHIFT                      16
+
+#define NV20_3D_VERTEX_TX2_4I_RQ                               0x00001604
+#define NV20_3D_VERTEX_TX2_4I_RQ_R__MASK                       0x0000ffff
+#define NV20_3D_VERTEX_TX2_4I_RQ_R__SHIFT                      0
+#define NV20_3D_VERTEX_TX2_4I_RQ_Q__MASK                       0xffff0000
+#define NV20_3D_VERTEX_TX2_4I_RQ_Q__SHIFT                      16
+
+#define NV20_3D_VERTEX_TX3_2F                                  0x00001608
+
+
+#define NV20_3D_VERTEX_TX3_2F_S                                        0x00001608
+
+#define NV20_3D_VERTEX_TX3_2F_T                                        0x0000160c
+
+#define NV20_3D_VERTEX_TX3_2I                                  0x00001610
+#define NV20_3D_VERTEX_TX3_2I_S__MASK                          0x0000ffff
+#define NV20_3D_VERTEX_TX3_2I_S__SHIFT                         0
+#define NV20_3D_VERTEX_TX3_2I_T__MASK                          0xffff0000
+#define NV20_3D_VERTEX_TX3_2I_T__SHIFT                         16
+
+#define NV20_3D_VERTEX_TX3_4F                                  0x00001620
+
+
+#define NV20_3D_VERTEX_TX3_4F_S                                        0x00001620
+
+#define NV20_3D_VERTEX_TX3_4F_T                                        0x00001624
+
+#define NV20_3D_VERTEX_TX3_4F_R                                        0x00001628
+
+#define NV20_3D_VERTEX_TX3_4F_Q                                        0x0000162c
+
+#define NV20_3D_VERTEX_TX3_4I                                  0x00001630
+
+
+#define NV20_3D_VERTEX_TX3_4I_ST                               0x00001630
+#define NV20_3D_VERTEX_TX3_4I_ST_S__MASK                       0x0000ffff
+#define NV20_3D_VERTEX_TX3_4I_ST_S__SHIFT                      0
+#define NV20_3D_VERTEX_TX3_4I_ST_T__MASK                       0xffff0000
+#define NV20_3D_VERTEX_TX3_4I_ST_T__SHIFT                      16
+
+#define NV20_3D_VERTEX_TX3_4I_RQ                               0x00001634
+#define NV20_3D_VERTEX_TX3_4I_RQ_R__MASK                       0x0000ffff
+#define NV20_3D_VERTEX_TX3_4I_RQ_R__SHIFT                      0
+#define NV20_3D_VERTEX_TX3_4I_RQ_Q__MASK                       0xffff0000
+#define NV20_3D_VERTEX_TX3_4I_RQ_Q__SHIFT                      16
+
+#define NV20_3D_VERTEX_FOG_1F                                  0x00001698
+
+#define NV20_3D_EDGEFLAG_ENABLE                                        0x000016bc
+
+#define NV20_3D_VERTEX_ATTR_4F(i0)                            (0x00001a00 + 0x10*(i0))
+#define NV20_3D_VERTEX_ATTR_4F__ESIZE                          0x00000010
+#define NV20_3D_VERTEX_ATTR_4F__LEN                            0x00000010
+
+
+#define NV20_3D_VERTEX_ATTR_4F_X(i0)                          (0x00001a00 + 0x10*(i0))
+
+#define NV20_3D_VERTEX_ATTR_4F_Y(i0)                          (0x00001a04 + 0x10*(i0))
+
+#define NV20_3D_VERTEX_ATTR_4F_Z(i0)                          (0x00001a08 + 0x10*(i0))
+
+#define NV20_3D_VERTEX_ATTR_4F_W(i0)                          (0x00001a0c + 0x10*(i0))
+
+
+#define NV20_3D_DMA_VTXBUF0                                    0x0000019c
+
+#define NV20_3D_DMA_VTXBUF1                                    0x000001a0
+
+#define NV20_3D_VTXBUF_VALIDATE                                        0x00001710
+
+
+#define NV20_3D_VTXBUF_OFFSET(i0)                             (0x00001720 + 0x4*(i0))
+#define NV20_3D_VTXBUF_OFFSET_DMA1                             0x80000000
+#define NV20_3D_VTXBUF_OFFSET_OFFSET__MASK                     0x0fffffff
+#define NV20_3D_VTXBUF_OFFSET_OFFSET__SHIFT                    0
+
+#define NV20_3D_VTXBUF_FMT(i0)                                (0x00001760 + 0x4*(i0))
+#define NV20_3D_VTXBUF_FMT_TYPE__MASK                          0x0000000f
+#define NV20_3D_VTXBUF_FMT_TYPE__SHIFT                         0
+#define NV20_3D_VTXBUF_FMT_TYPE_FLOAT                          0x00000002
+#define NV20_3D_VTXBUF_FMT_TYPE_UBYTE                          0x00000004
+#define NV20_3D_VTXBUF_FMT_TYPE_USHORT                         0x00000005
+#define NV20_3D_VTXBUF_FMT_SIZE__MASK                          0x000000f0
+#define NV20_3D_VTXBUF_FMT_SIZE__SHIFT                         4
+#define NV20_3D_VTXBUF_FMT_STRIDE__MASK                                0x0000ff00
+#define NV20_3D_VTXBUF_FMT_STRIDE__SHIFT                       8
+
+#define NV20_3D_VERTEX_BEGIN_END                               0x000017fc
+#define NV20_3D_VERTEX_BEGIN_END_STOP                          0x00000000
+#define NV20_3D_VERTEX_BEGIN_END_POINTS                                0x00000001
+#define NV20_3D_VERTEX_BEGIN_END_LINES                         0x00000002
+#define NV20_3D_VERTEX_BEGIN_END_LINE_LOOP                     0x00000003
+#define NV20_3D_VERTEX_BEGIN_END_LINE_STRIP                    0x00000004
+#define NV20_3D_VERTEX_BEGIN_END_TRIANGLES                     0x00000005
+#define NV20_3D_VERTEX_BEGIN_END_TRIANGLE_STRIP                        0x00000006
+#define NV20_3D_VERTEX_BEGIN_END_TRIANGLE_FAN                  0x00000007
+#define NV20_3D_VERTEX_BEGIN_END_QUADS                         0x00000008
+#define NV20_3D_VERTEX_BEGIN_END_QUAD_STRIP                    0x00000009
+#define NV20_3D_VERTEX_BEGIN_END_POLYGON                       0x0000000a
+
+#define NV20_3D_VTXBUF_ELEMENT_U16                             0x00001800
+#define NV20_3D_VTXBUF_ELEMENT_U16_I0__MASK                    0x0000ffff
+#define NV20_3D_VTXBUF_ELEMENT_U16_I0__SHIFT                   0
+#define NV20_3D_VTXBUF_ELEMENT_U16_I1__MASK                    0xffff0000
+#define NV20_3D_VTXBUF_ELEMENT_U16_I1__SHIFT                   16
+
+#define NV20_3D_VTXBUF_ELEMENT_U32                             0x00001808
+
+#define NV20_3D_VTXBUF_BATCH                                   0x00001810
+#define NV20_3D_VTXBUF_BATCH_OFFSET__MASK                      0x00ffffff
+#define NV20_3D_VTXBUF_BATCH_OFFSET__SHIFT                     0
+#define NV20_3D_VTXBUF_BATCH_COUNT__MASK                       0xff000000
+#define NV20_3D_VTXBUF_BATCH_COUNT__SHIFT                      24
+
+#define NV20_3D_VTXBUF_DATA                                    0x00001818
+
+
+#define NV20_3D_ENGINE                                         0x00001e94
+#define NV20_3D_ENGINE_VP                                      0x00000002
+#define NV20_3D_ENGINE_FIXED                                   0x00000004
+
+#define NV20_3D_VP_UPLOAD_INST(i0)                            (0x00000b00 + 0x4*(i0))
+#define NV20_3D_VP_UPLOAD_INST__ESIZE                          0x00000004
+#define NV20_3D_VP_UPLOAD_INST__LEN                            0x00000004
+
+#define NV20_3D_VP_UPLOAD_CONST(i0)                           (0x00000b80 + 0x4*(i0))
+#define NV20_3D_VP_UPLOAD_CONST__ESIZE                         0x00000004
+#define NV20_3D_VP_UPLOAD_CONST__LEN                           0x00000004
+
+#define NV20_3D_VP_UPLOAD_FROM_ID                              0x00001e9c
+
+#define NV20_3D_VP_START_FROM_ID                               0x00001ea0
+
+#define NV20_3D_VP_UPLOAD_CONST_ID                             0x00001ea4
+
+
+
+#define NV20_3D_MODELVIEW_MATRIX(i0, i1)                      (0x00000480 + 0x40*(i0) + 0x4*(i1))
+#define NV20_3D_MODELVIEW_MATRIX__ESIZE                                0x00000004
+#define NV20_3D_MODELVIEW_MATRIX__LEN                          0x00000010
+
+#define NV20_3D_INVERSE_MODELVIEW_MATRIX(i0, i1)              (0x00000580 + 0x40*(i0) + 0x4*(i1))
+#define NV20_3D_INVERSE_MODELVIEW_MATRIX__ESIZE                        0x00000004
+#define NV20_3D_INVERSE_MODELVIEW_MATRIX__LEN                  0x00000010
+
+#define NV20_3D_PROJECTION_MATRIX(i0)                         (0x00000680 + 0x4*(i0))
+#define NV20_3D_PROJECTION_MATRIX__ESIZE                       0x00000004
+#define NV20_3D_PROJECTION_MATRIX__LEN                         0x00000010
+
+#define NV20_3D_VIEWPORT_TRANSLATE                             0x00000a20
+
+
+#define NV20_3D_VIEWPORT_TRANSLATE_X                           0x00000a20
+
+#define NV20_3D_VIEWPORT_TRANSLATE_Y                           0x00000a24
+
+#define NV20_3D_VIEWPORT_TRANSLATE_Z                           0x00000a28
+
+#define NV20_3D_VIEWPORT_TRANSLATE_W                           0x00000a2c
+
+#define NV20_3D_VIEWPORT_SCALE                                 0x00000af0
+
+
+#define NV20_3D_VIEWPORT_SCALE_X                               0x00000af0
+
+#define NV20_3D_VIEWPORT_SCALE_Y                               0x00000af4
+
+#define NV20_3D_VIEWPORT_SCALE_Z                               0x00000af8
+
+#define NV20_3D_VIEWPORT_SCALE_W                               0x00000afc
+
+
+#define NV20_3D_NORMALIZE_ENABLE                               0x000003a4
+
+#define NV20_3D_SEPARATE_SPECULAR_ENABLE                       0x000003b8
+
+#define NV20_3D_LIGHT_MODEL_TWO_SIDE_ENABLE                    0x000017c4
+
+#define NV20_3D_LIGHT_MODEL                                    0x00000294
+#define NV20_3D_LIGHT_MODEL_VIEWER__MASK                       0x00030000
+#define NV20_3D_LIGHT_MODEL_VIEWER__SHIFT                      16
+#define NV20_3D_LIGHT_MODEL_VIEWER_NONLOCAL                    0x00020000
+#define NV20_3D_LIGHT_MODEL_VIEWER_LOCAL                       0x00030000
+#define NV20_3D_LIGHT_MODEL_SEPARATE_SPECULAR                  0x00000001
+
+#define NV20_3D_ENABLED_LIGHTS                                 0x000003bc
+#define NV20_3D_ENABLED_LIGHTS_0__MASK                         0x00000003
+#define NV20_3D_ENABLED_LIGHTS_0__SHIFT                                0
+#define NV20_3D_ENABLED_LIGHTS_0_DISABLED                      0x00000000
+#define NV20_3D_ENABLED_LIGHTS_0_NONPOSITIONAL                 0x00000001
+#define NV20_3D_ENABLED_LIGHTS_0_POSITIONAL                    0x00000002
+#define NV20_3D_ENABLED_LIGHTS_0_DIRECTIONAL                   0x00000003
+#define NV20_3D_ENABLED_LIGHTS_1__MASK                         0x0000000c
+#define NV20_3D_ENABLED_LIGHTS_1__SHIFT                                2
+#define NV20_3D_ENABLED_LIGHTS_1_DISABLED                      0x00000000
+#define NV20_3D_ENABLED_LIGHTS_1_NONPOSITIONAL                 0x00000004
+#define NV20_3D_ENABLED_LIGHTS_1_POSITIONAL                    0x00000008
+#define NV20_3D_ENABLED_LIGHTS_1_DIRECTIONAL                   0x0000000c
+#define NV20_3D_ENABLED_LIGHTS_2__MASK                         0x00000030
+#define NV20_3D_ENABLED_LIGHTS_2__SHIFT                                4
+#define NV20_3D_ENABLED_LIGHTS_2_DISABLED                      0x00000000
+#define NV20_3D_ENABLED_LIGHTS_2_NONPOSITIONAL                 0x00000010
+#define NV20_3D_ENABLED_LIGHTS_2_POSITIONAL                    0x00000020
+#define NV20_3D_ENABLED_LIGHTS_2_DIRECTIONAL                   0x00000030
+#define NV20_3D_ENABLED_LIGHTS_3__MASK                         0x000000c0
+#define NV20_3D_ENABLED_LIGHTS_3__SHIFT                                6
+#define NV20_3D_ENABLED_LIGHTS_3_DISABLED                      0x00000000
+#define NV20_3D_ENABLED_LIGHTS_3_NONPOSITIONAL                 0x00000040
+#define NV20_3D_ENABLED_LIGHTS_3_POSITIONAL                    0x00000080
+#define NV20_3D_ENABLED_LIGHTS_3_DIRECTIONAL                   0x000000c0
+#define NV20_3D_ENABLED_LIGHTS_4__MASK                         0x00000300
+#define NV20_3D_ENABLED_LIGHTS_4__SHIFT                                8
+#define NV20_3D_ENABLED_LIGHTS_4_DISABLED                      0x00000000
+#define NV20_3D_ENABLED_LIGHTS_4_NONPOSITIONAL                 0x00000100
+#define NV20_3D_ENABLED_LIGHTS_4_POSITIONAL                    0x00000200
+#define NV20_3D_ENABLED_LIGHTS_4_DIRECTIONAL                   0x00000300
+#define NV20_3D_ENABLED_LIGHTS_5__MASK                         0x00000c00
+#define NV20_3D_ENABLED_LIGHTS_5__SHIFT                                10
+#define NV20_3D_ENABLED_LIGHTS_5_DISABLED                      0x00000000
+#define NV20_3D_ENABLED_LIGHTS_5_NONPOSITIONAL                 0x00000400
+#define NV20_3D_ENABLED_LIGHTS_5_POSITIONAL                    0x00000800
+#define NV20_3D_ENABLED_LIGHTS_5_DIRECTIONAL                   0x00000c00
+#define NV20_3D_ENABLED_LIGHTS_6__MASK                         0x00003000
+#define NV20_3D_ENABLED_LIGHTS_6__SHIFT                                12
+#define NV20_3D_ENABLED_LIGHTS_6_DISABLED                      0x00000000
+#define NV20_3D_ENABLED_LIGHTS_6_NONPOSITIONAL                 0x00001000
+#define NV20_3D_ENABLED_LIGHTS_6_POSITIONAL                    0x00002000
+#define NV20_3D_ENABLED_LIGHTS_6_DIRECTIONAL                   0x00003000
+#define NV20_3D_ENABLED_LIGHTS_7__MASK                         0x0000c000
+#define NV20_3D_ENABLED_LIGHTS_7__SHIFT                                14
+#define NV20_3D_ENABLED_LIGHTS_7_DISABLED                      0x00000000
+#define NV20_3D_ENABLED_LIGHTS_7_NONPOSITIONAL                 0x00004000
+#define NV20_3D_ENABLED_LIGHTS_7_POSITIONAL                    0x00008000
+#define NV20_3D_ENABLED_LIGHTS_7_DIRECTIONAL                   0x0000c000
+
+#define NV20_3D_COLOR_MATERIAL                                 0x00000298
+#define NV20_3D_COLOR_MATERIAL_FRONT_EMISSION__MASK            0x00000003
+#define NV20_3D_COLOR_MATERIAL_FRONT_EMISSION__SHIFT           0
+#define NV20_3D_COLOR_MATERIAL_FRONT_EMISSION_OFF              0x00000000
+#define NV20_3D_COLOR_MATERIAL_FRONT_EMISSION_COL1             0x00000001
+#define NV20_3D_COLOR_MATERIAL_FRONT_EMISSION_COL2             0x00000002
+#define NV20_3D_COLOR_MATERIAL_FRONT_AMBIENT__MASK             0x0000000c
+#define NV20_3D_COLOR_MATERIAL_FRONT_AMBIENT__SHIFT            2
+#define NV20_3D_COLOR_MATERIAL_FRONT_AMBIENT_OFF               0x00000000
+#define NV20_3D_COLOR_MATERIAL_FRONT_AMBIENT_COL1              0x00000004
+#define NV20_3D_COLOR_MATERIAL_FRONT_AMBIENT_COL2              0x00000008
+#define NV20_3D_COLOR_MATERIAL_FRONT_DIFFUSE__MASK             0x00000030
+#define NV20_3D_COLOR_MATERIAL_FRONT_DIFFUSE__SHIFT            4
+#define NV20_3D_COLOR_MATERIAL_FRONT_DIFFUSE_OFF               0x00000000
+#define NV20_3D_COLOR_MATERIAL_FRONT_DIFFUSE_COL1              0x00000010
+#define NV20_3D_COLOR_MATERIAL_FRONT_DIFFUSE_COL2              0x00000020
+#define NV20_3D_COLOR_MATERIAL_FRONT_SPECULAR__MASK            0x000000c0
+#define NV20_3D_COLOR_MATERIAL_FRONT_SPECULAR__SHIFT           6
+#define NV20_3D_COLOR_MATERIAL_FRONT_SPECULAR_OFF              0x00000000
+#define NV20_3D_COLOR_MATERIAL_FRONT_SPECULAR_COL1             0x00000040
+#define NV20_3D_COLOR_MATERIAL_FRONT_SPECULAR_COL2             0x00000080
+#define NV20_3D_COLOR_MATERIAL_BACK_EMISSION__MASK             0x00000300
+#define NV20_3D_COLOR_MATERIAL_BACK_EMISSION__SHIFT            8
+#define NV20_3D_COLOR_MATERIAL_BACK_EMISSION_OFF               0x00000000
+#define NV20_3D_COLOR_MATERIAL_BACK_EMISSION_COL1              0x00000100
+#define NV20_3D_COLOR_MATERIAL_BACK_EMISSION_COL2              0x00000200
+#define NV20_3D_COLOR_MATERIAL_BACK_AMBIENT__MASK              0x00000c00
+#define NV20_3D_COLOR_MATERIAL_BACK_AMBIENT__SHIFT             10
+#define NV20_3D_COLOR_MATERIAL_BACK_AMBIENT_OFF                        0x00000000
+#define NV20_3D_COLOR_MATERIAL_BACK_AMBIENT_COL1               0x00000400
+#define NV20_3D_COLOR_MATERIAL_BACK_AMBIENT_COL2               0x00000800
+#define NV20_3D_COLOR_MATERIAL_BACK_DIFFUSE__MASK              0x00003000
+#define NV20_3D_COLOR_MATERIAL_BACK_DIFFUSE__SHIFT             12
+#define NV20_3D_COLOR_MATERIAL_BACK_DIFFUSE_OFF                        0x00000000
+#define NV20_3D_COLOR_MATERIAL_BACK_DIFFUSE_COL1               0x00001000
+#define NV20_3D_COLOR_MATERIAL_BACK_DIFFUSE_COL2               0x00002000
+#define NV20_3D_COLOR_MATERIAL_BACK_SPECULAR__MASK             0x0000c000
+#define NV20_3D_COLOR_MATERIAL_BACK_SPECULAR__SHIFT            14
+#define NV20_3D_COLOR_MATERIAL_BACK_SPECULAR_OFF               0x00000000
+#define NV20_3D_COLOR_MATERIAL_BACK_SPECULAR_COL1              0x00004000
+#define NV20_3D_COLOR_MATERIAL_BACK_SPECULAR_COL2              0x00008000
+
+#define NV20_3D_MATERIAL_FACTOR_FRONT                          0x000003a8
+
+
+#define NV20_3D_MATERIAL_FACTOR_FRONT_R                                0x000003a8
+
+#define NV20_3D_MATERIAL_FACTOR_FRONT_G                                0x000003ac
+
+#define NV20_3D_MATERIAL_FACTOR_FRONT_B                                0x000003b0
+
+#define NV20_3D_MATERIAL_FACTOR_BACK                           0x000017b0
+
+
+#define NV20_3D_MATERIAL_FACTOR_BACK_R                         0x000017b0
+
+#define NV20_3D_MATERIAL_FACTOR_BACK_G                         0x000017b4
+
+#define NV20_3D_MATERIAL_FACTOR_BACK_B                         0x000017b8
+
+#define NV20_3D_MATERIAL_FACTOR_FRONT_A                                0x000003b4
+
+#define NV20_3D_MATERIAL_FACTOR_BACK_A                         0x000017ac
+
+#define NV20_3D_LIGHT_MODEL_FRONT_AMBIENT                      0x00000a10
+
+
+#define NV20_3D_LIGHT_MODEL_FRONT_AMBIENT_R                    0x00000a10
+
+#define NV20_3D_LIGHT_MODEL_FRONT_AMBIENT_G                    0x00000a14
+
+#define NV20_3D_LIGHT_MODEL_FRONT_AMBIENT_B                    0x00000a18
+
+#define NV20_3D_LIGHT_MODEL_BACK_AMBIENT                       0x000017a0
+
+
+#define NV20_3D_LIGHT_MODEL_BACK_AMBIENT_R                     0x000017a0
+
+#define NV20_3D_LIGHT_MODEL_BACK_AMBIENT_G                     0x000017a4
+
+#define NV20_3D_LIGHT_MODEL_BACK_AMBIENT_B                     0x000017a8
+
+#define NV20_3D_FRONT_MATERIAL_SHININESS(i0)                  (0x000009e0 + 0x4*(i0))
+#define NV20_3D_FRONT_MATERIAL_SHININESS__ESIZE                        0x00000004
+#define NV20_3D_FRONT_MATERIAL_SHININESS__LEN                  0x00000006
+
+#define NV20_3D_BACK_MATERIAL_SHININESS(i0)                   (0x00001e28 + 0x4*(i0))
+#define NV20_3D_BACK_MATERIAL_SHININESS__ESIZE                 0x00000004
+#define NV20_3D_BACK_MATERIAL_SHININESS__LEN                   0x00000006
+
+
+
+#define NV20_3D_LIGHT_FRONT_AMBIENT(i0)                               (0x00001000 + 0x80*(i0))
+
+
+#define NV20_3D_LIGHT_FRONT_AMBIENT_R(i0)                     (0x00001000 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_FRONT_AMBIENT_G(i0)                     (0x00001004 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_FRONT_AMBIENT_B(i0)                     (0x00001008 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_FRONT_DIFFUSE(i0)                               (0x0000100c + 0x80*(i0))
+
+
+#define NV20_3D_LIGHT_FRONT_DIFFUSE_R(i0)                     (0x0000100c + 0x80*(i0))
+
+#define NV20_3D_LIGHT_FRONT_DIFFUSE_G(i0)                     (0x00001010 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_FRONT_DIFFUSE_B(i0)                     (0x00001014 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_FRONT_SPECULAR(i0)                      (0x00001018 + 0x80*(i0))
+
+
+#define NV20_3D_LIGHT_FRONT_SPECULAR_R(i0)                    (0x00001018 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_FRONT_SPECULAR_G(i0)                    (0x0000101c + 0x80*(i0))
+
+#define NV20_3D_LIGHT_FRONT_SPECULAR_B(i0)                    (0x00001020 + 0x80*(i0))
+
+
+#define NV20_3D_LIGHT_BACK_AMBIENT(i0)                        (0x00000c00 + 0x40*(i0))
+
+
+#define NV20_3D_LIGHT_BACK_AMBIENT_R(i0)                      (0x00000c00 + 0x40*(i0))
+
+#define NV20_3D_LIGHT_BACK_AMBIENT_G(i0)                      (0x00000c04 + 0x40*(i0))
+
+#define NV20_3D_LIGHT_BACK_AMBIENT_B(i0)                      (0x00000c08 + 0x40*(i0))
+
+#define NV20_3D_LIGHT_BACK_DIFFUSE(i0)                        (0x00000c0c + 0x40*(i0))
+
+
+#define NV20_3D_LIGHT_BACK_DIFFUSE_R(i0)                      (0x00000c0c + 0x40*(i0))
+
+#define NV20_3D_LIGHT_BACK_DIFFUSE_G(i0)                      (0x00000c10 + 0x40*(i0))
+
+#define NV20_3D_LIGHT_BACK_DIFFUSE_B(i0)                      (0x00000c14 + 0x40*(i0))
+
+#define NV20_3D_LIGHT_BACK_SPECULAR(i0)                               (0x00000c18 + 0x40*(i0))
+
+
+#define NV20_3D_LIGHT_BACK_SPECULAR_R(i0)                     (0x00000c18 + 0x40*(i0))
+
+#define NV20_3D_LIGHT_BACK_SPECULAR_G(i0)                     (0x00000c1c + 0x40*(i0))
+
+#define NV20_3D_LIGHT_BACK_SPECULAR_B(i0)                     (0x00000c20 + 0x40*(i0))
+
+
+#define NV20_3D_LIGHT_HALF_VECTOR(i0)                         (0x00001028 + 0x80*(i0))
+
+
+#define NV20_3D_LIGHT_HALF_VECTOR_X(i0)                               (0x00001028 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_HALF_VECTOR_Y(i0)                               (0x0000102c + 0x80*(i0))
+
+#define NV20_3D_LIGHT_HALF_VECTOR_Z(i0)                               (0x00001030 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_DIRECTION(i0)                           (0x00001034 + 0x80*(i0))
+
+
+#define NV20_3D_LIGHT_DIRECTION_X(i0)                         (0x00001034 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_DIRECTION_Y(i0)                         (0x00001038 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_DIRECTION_Z(i0)                         (0x0000103c + 0x80*(i0))
+
+#define NV20_3D_LIGHT_SPOT_CUTOFF(i0, i1)                     (0x00001040 + 0x80*(i0) + 0x4*(i1))
+#define NV20_3D_LIGHT_SPOT_CUTOFF__ESIZE                       0x00000004
+#define NV20_3D_LIGHT_SPOT_CUTOFF__LEN                         0x00000007
+
+#define NV20_3D_LIGHT_POSITION(i0)                            (0x0000105c + 0x80*(i0))
+
+
+#define NV20_3D_LIGHT_POSITION_X(i0)                          (0x0000105c + 0x80*(i0))
+
+#define NV20_3D_LIGHT_POSITION_Y(i0)                          (0x00001060 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_POSITION_Z(i0)                          (0x00001064 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_ATTENUATION(i0)                         (0x00001068 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_ATTENUATION_CONSTANT(i0)                (0x00001068 + 0x80*(i0))
+
+#define NV20_3D_LIGHT_ATTENUATION_LINEAR(i0)                  (0x0000106c + 0x80*(i0))
+
+#define NV20_3D_LIGHT_ATTENUATION_QUADRATIC(i0)                       (0x00001070 + 0x80*(i0))
+
+
+#define NV20_3D_FOG_MODE                                       0x0000029c
+#define NV20_3D_FOG_MODE_LINEAR_UNSIGNED                       0x00000804
+#define NV20_3D_FOG_MODE_LINEAR_SIGNED                         0x00002601
+#define NV20_3D_FOG_MODE_EXP_UNSIGNED                          0x00000802
+#define NV20_3D_FOG_MODE_EXP_SIGNED                            0x00000800
+#define NV20_3D_FOG_MODE_EXP2_UNSIGNED                         0x00000803
+#define NV20_3D_FOG_MODE_EXP2_SIGNED                           0x00000801
+
+#define NV20_3D_FOG_COORD                                      0x000002a0
+#define NV20_3D_FOG_COORD_DIST_RADIAL                          0x00000001
+#define NV20_3D_FOG_COORD_DIST_ORTHOGONAL                      0x00000002
+#define NV20_3D_FOG_COORD_DIST_ORTHOGONAL_ABS                  0x00000003
+#define NV20_3D_FOG_COORD_FOG                                  0x00000006
+
+#define NV20_3D_FOG_ENABLE                                     0x000002a4
+
+#define NV20_3D_FOG_COLOR                                      0x000002a8
+#define NV20_3D_FOG_COLOR_R__MASK                              0x000000ff
+#define NV20_3D_FOG_COLOR_R__SHIFT                             0
+#define NV20_3D_FOG_COLOR_G__MASK                              0x0000ff00
+#define NV20_3D_FOG_COLOR_G__SHIFT                             8
+#define NV20_3D_FOG_COLOR_B__MASK                              0x00ff0000
+#define NV20_3D_FOG_COLOR_B__SHIFT                             16
+#define NV20_3D_FOG_COLOR_A__MASK                              0xff000000
+#define NV20_3D_FOG_COLOR_A__SHIFT                             24
+
+#define NV20_3D_FOG_COEFF(i0)                                 (0x000009c0 + 0x4*(i0))
+#define NV20_3D_FOG_COEFF__ESIZE                               0x00000004
+#define NV20_3D_FOG_COEFF__LEN                                 0x00000003
+
+
+
+#define NV20_3D_TEX_GEN_MODE(i0, i1)                          (0x000003c0 + 0x10*(i0) + 0x4*(i1))
+#define NV20_3D_TEX_GEN_MODE__ESIZE                            0x00000004
+#define NV20_3D_TEX_GEN_MODE__LEN                              0x00000004
+#define NV20_3D_TEX_GEN_MODE_FALSE                             0x00000000
+#define NV20_3D_TEX_GEN_MODE_EYE_LINEAR                                0x00002400
+#define NV20_3D_TEX_GEN_MODE_OBJECT_LINEAR                     0x00002401
+#define NV20_3D_TEX_GEN_MODE_SPHERE_MAP                                0x00002402
+#define NV20_3D_TEX_GEN_MODE_NORMAL_MAP                                0x00008511
+#define NV20_3D_TEX_GEN_MODE_REFLECTION_MAP                    0x00008512
+
+
+#define NV20_3D_TEX_GEN_COEFF(i0, i1)                         (0x00000840 + 0x40*(i0) + 0x10*(i1))
+#define NV20_3D_TEX_GEN_COEFF__ESIZE                           0x00000010
+#define NV20_3D_TEX_GEN_COEFF__LEN                             0x00000004
+
+#define NV20_3D_TEX_GEN_COEFF_A(i0, i1)                               (0x00000840 + 0x40*(i0) + 0x10*(i1))
+
+#define NV20_3D_TEX_GEN_COEFF_B(i0, i1)                               (0x00000844 + 0x40*(i0) + 0x10*(i1))
+
+#define NV20_3D_TEX_GEN_COEFF_C(i0, i1)                               (0x00000848 + 0x40*(i0) + 0x10*(i1))
+
+#define NV20_3D_TEX_GEN_COEFF_D(i0, i1)                               (0x0000084c + 0x40*(i0) + 0x10*(i1))
+
+#define NV20_3D_TEX_MATRIX_ENABLE(i0)                         (0x00000420 + 0x4*(i0))
+#define NV20_3D_TEX_MATRIX_ENABLE__ESIZE                       0x00000004
+#define NV20_3D_TEX_MATRIX_ENABLE__LEN                         0x00000004
+
+
+#define NV20_3D_TEX_MATRIX(i0, i1)                            (0x000006c0 + 0x40*(i0) + 0x4*(i1))
+#define NV20_3D_TEX_MATRIX__ESIZE                              0x00000004
+#define NV20_3D_TEX_MATRIX__LEN                                        0x00000010
+
+#define NV20_3D_TEX_SHADER_CULL_MODE                           0x000017f8
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_S__MASK               0x00000001
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_S__SHIFT              0
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_S_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_S_LESS                        0x00000001
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_T__MASK               0x00000002
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_T__SHIFT              1
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_T_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_T_LESS                        0x00000002
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_R__MASK               0x00000004
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_R__SHIFT              2
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_R_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_R_LESS                        0x00000004
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_Q__MASK               0x00000008
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_Q__SHIFT              3
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_Q_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX0_Q_LESS                        0x00000008
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_S__MASK               0x00000010
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_S__SHIFT              4
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_S_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_S_LESS                        0x00000010
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_T__MASK               0x00000020
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_T__SHIFT              5
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_T_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_T_LESS                        0x00000020
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_R__MASK               0x00000040
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_R__SHIFT              6
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_R_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_R_LESS                        0x00000040
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_Q__MASK               0x00000080
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_Q__SHIFT              7
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_Q_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX1_Q_LESS                        0x00000080
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_S__MASK               0x00000100
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_S__SHIFT              8
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_S_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_S_LESS                        0x00000100
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_T__MASK               0x00000200
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_T__SHIFT              9
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_T_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_T_LESS                        0x00000200
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_R__MASK               0x00000400
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_R__SHIFT              10
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_R_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_R_LESS                        0x00000400
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_Q__MASK               0x00000800
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_Q__SHIFT              11
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_Q_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX2_Q_LESS                        0x00000800
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_S__MASK               0x00001000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_S__SHIFT              12
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_S_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_S_LESS                        0x00001000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_T__MASK               0x00002000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_T__SHIFT              13
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_T_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_T_LESS                        0x00002000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_R__MASK               0x00004000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_R__SHIFT              14
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_R_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_R_LESS                        0x00004000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_Q__MASK               0x00008000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_Q__SHIFT              15
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_Q_GEQUAL              0x00000000
+#define NV20_3D_TEX_SHADER_CULL_MODE_TX3_Q_LESS                        0x00008000
+
+#define NV20_3D_TEX_SHADER_CONST_EYE                           0x0000181c
+
+
+#define NV20_3D_TEX_SHADER_CONST_EYE_X                         0x0000181c
+
+#define NV20_3D_TEX_SHADER_CONST_EYE_Y                         0x00001820
+
+#define NV20_3D_TEX_SHADER_CONST_EYE_Z                         0x00001824
+
+
+#define NV20_3D_TEX_SHADER_OFFSET_MATRIX(i0, i1)              (0x00001b28 + 0x40*(i0) + 0x4*(i1))
+#define NV20_3D_TEX_SHADER_OFFSET_MATRIX__ESIZE                        0x00000004
+#define NV20_3D_TEX_SHADER_OFFSET_MATRIX__LEN                  0x00000004
+
+#define NV20_3D_TEX_RCOMP                                      0x00001e6c
+#define NV20_3D_TEX_RCOMP_NEVER                                        0x00000000
+#define NV20_3D_TEX_RCOMP_GREATER                              0x00000001
+#define NV20_3D_TEX_RCOMP_EQUAL                                        0x00000002
+#define NV20_3D_TEX_RCOMP_GEQUAL                               0x00000003
+#define NV20_3D_TEX_RCOMP_LESS                                 0x00000004
+#define NV20_3D_TEX_RCOMP_NOTEQUAL                             0x00000005
+#define NV20_3D_TEX_RCOMP_LEQUAL                               0x00000006
+#define NV20_3D_TEX_RCOMP_ALWAYS                               0x00000007
+
+#define NV20_3D_TEX_SHADER_OP                                  0x00001e70
+#define NV20_3D_TEX_SHADER_OP_TX0__MASK                                0x0000001f
+#define NV20_3D_TEX_SHADER_OP_TX0__SHIFT                       0
+#define NV20_3D_TEX_SHADER_OP_TX0_NONE                         0x00000000
+#define NV20_3D_TEX_SHADER_OP_TX0_TEXTURE_2D                   0x00000001
+#define NV20_3D_TEX_SHADER_OP_TX0_PASS_THROUGH                 0x00000004
+#define NV20_3D_TEX_SHADER_OP_TX0_CULL_FRAGMENT                        0x00000005
+#define NV20_3D_TEX_SHADER_OP_TX0_OFFSET_TEXTURE_2D            0x00000006
+#define NV20_3D_TEX_SHADER_OP_TX0_DOT_PRODUCT_TEXTURE_2D       0x00000009
+#define NV20_3D_TEX_SHADER_OP_TX0_DOT_PRODUCT_DEPTH_REPLACE    0x0000000a
+#define NV20_3D_TEX_SHADER_OP_TX0_DEPENDANT_AR_TEXTURE_2D      0x0000000f
+#define NV20_3D_TEX_SHADER_OP_TX0_DEPENDANT_GB_TEXTURE_2D      0x00000010
+#define NV20_3D_TEX_SHADER_OP_TX0_DOT_PRODUCT                  0x00000011
+#define NV20_3D_TEX_SHADER_OP_TX1__MASK                                0x000003e0
+#define NV20_3D_TEX_SHADER_OP_TX1__SHIFT                       5
+#define NV20_3D_TEX_SHADER_OP_TX1_NONE                         0x00000000
+#define NV20_3D_TEX_SHADER_OP_TX1_TEXTURE_2D                   0x00000020
+#define NV20_3D_TEX_SHADER_OP_TX1_PASS_THROUGH                 0x00000080
+#define NV20_3D_TEX_SHADER_OP_TX1_CULL_FRAGMENT                        0x000000a0
+#define NV20_3D_TEX_SHADER_OP_TX1_OFFSET_TEXTURE_2D            0x000000c0
+#define NV20_3D_TEX_SHADER_OP_TX1_DOT_PRODUCT_TEXTURE_2D       0x00000120
+#define NV20_3D_TEX_SHADER_OP_TX1_DOT_PRODUCT_DEPTH_REPLACE    0x00000140
+#define NV20_3D_TEX_SHADER_OP_TX1_DEPENDANT_AR_TEXTURE_2D      0x000001e0
+#define NV20_3D_TEX_SHADER_OP_TX1_DEPENDANT_GB_TEXTURE_2D      0x00000200
+#define NV20_3D_TEX_SHADER_OP_TX1_DOT_PRODUCT                  0x00000220
+#define NV20_3D_TEX_SHADER_OP_TX2__MASK                                0x00007c00
+#define NV20_3D_TEX_SHADER_OP_TX2__SHIFT                       10
+#define NV20_3D_TEX_SHADER_OP_TX2_NONE                         0x00000000
+#define NV20_3D_TEX_SHADER_OP_TX2_TEXTURE_2D                   0x00000400
+#define NV20_3D_TEX_SHADER_OP_TX2_PASS_THROUGH                 0x00001000
+#define NV20_3D_TEX_SHADER_OP_TX2_CULL_FRAGMENT                        0x00001400
+#define NV20_3D_TEX_SHADER_OP_TX2_OFFSET_TEXTURE_2D            0x00001800
+#define NV20_3D_TEX_SHADER_OP_TX2_DOT_PRODUCT_TEXTURE_2D       0x00002400
+#define NV20_3D_TEX_SHADER_OP_TX2_DOT_PRODUCT_DEPTH_REPLACE    0x00002800
+#define NV20_3D_TEX_SHADER_OP_TX2_DEPENDANT_AR_TEXTURE_2D      0x00003c00
+#define NV20_3D_TEX_SHADER_OP_TX2_DEPENDANT_GB_TEXTURE_2D      0x00004000
+#define NV20_3D_TEX_SHADER_OP_TX2_DOT_PRODUCT                  0x00004400
+#define NV20_3D_TEX_SHADER_OP_TX3__MASK                                0x000f8000
+#define NV20_3D_TEX_SHADER_OP_TX3__SHIFT                       15
+#define NV20_3D_TEX_SHADER_OP_TX3_NONE                         0x00000000
+#define NV20_3D_TEX_SHADER_OP_TX3_TEXTURE_2D                   0x00008000
+#define NV20_3D_TEX_SHADER_OP_TX3_PASS_THROUGH                 0x00020000
+#define NV20_3D_TEX_SHADER_OP_TX3_CULL_FRAGMENT                        0x00028000
+#define NV20_3D_TEX_SHADER_OP_TX3_OFFSET_TEXTURE_2D            0x00030000
+#define NV20_3D_TEX_SHADER_OP_TX3_DOT_PRODUCT_TEXTURE_2D       0x00048000
+#define NV20_3D_TEX_SHADER_OP_TX3_DOT_PRODUCT_DEPTH_REPLACE    0x00050000
+#define NV20_3D_TEX_SHADER_OP_TX3_DEPENDANT_AR_TEXTURE_2D      0x00078000
+#define NV20_3D_TEX_SHADER_OP_TX3_DEPENDANT_GB_TEXTURE_2D      0x00080000
+#define NV20_3D_TEX_SHADER_OP_TX3_DOT_PRODUCT                  0x00088000
+
+#define NV20_3D_TEX_SHADER_DOTMAPPING                          0x00001e74
+#define NV20_3D_TEX_SHADER_DOTMAPPING_TX0__MASK                        0x0000000f
+#define NV20_3D_TEX_SHADER_DOTMAPPING_TX0__SHIFT               0
+#define NV20_3D_TEX_SHADER_DOTMAPPING_TX1__MASK                        0x000000f0
+#define NV20_3D_TEX_SHADER_DOTMAPPING_TX1__SHIFT               4
+#define NV20_3D_TEX_SHADER_DOTMAPPING_TX2__MASK                        0x00000f00
+#define NV20_3D_TEX_SHADER_DOTMAPPING_TX2__SHIFT               8
+#define NV20_3D_TEX_SHADER_DOTMAPPING_TX3__MASK                        0x0000f000
+#define NV20_3D_TEX_SHADER_DOTMAPPING_TX3__SHIFT               12
+
+#define NV20_3D_TEX_SHADER_PREVIOUS                            0x00001e78
+#define NV20_3D_TEX_SHADER_PREVIOUS_TX0__MASK                  0x00000f00
+#define NV20_3D_TEX_SHADER_PREVIOUS_TX0__SHIFT                 8
+#define NV20_3D_TEX_SHADER_PREVIOUS_TX1__MASK                  0x0000f000
+#define NV20_3D_TEX_SHADER_PREVIOUS_TX1__SHIFT                 12
+#define NV20_3D_TEX_SHADER_PREVIOUS_TX2__MASK                  0x00030000
+#define NV20_3D_TEX_SHADER_PREVIOUS_TX2__SHIFT                 16
+#define NV20_3D_TEX_SHADER_PREVIOUS_TX3__MASK                  0x00300000
+#define NV20_3D_TEX_SHADER_PREVIOUS_TX3__SHIFT                 20
+
+#define NV20_3D_TEX(i0)                                               (0x00000000 + 0x40*(i0))
+#define NV20_3D_TEX__ESIZE                                     0x00000040
+#define NV20_3D_TEX__LEN                                       0x00000004
+
+#define NV20_3D_TEX_OFFSET(i0)                                (0x00001b00 + 0x40*(i0))
+
+#define NV20_3D_TEX_FORMAT(i0)                                (0x00001b04 + 0x40*(i0))
+#define NV20_3D_TEX_FORMAT_DMA0                                        0x00000001
+#define NV20_3D_TEX_FORMAT_DMA1                                        0x00000002
+#define NV20_3D_TEX_FORMAT_CUBIC                               0x00000004
+#define NV20_3D_TEX_FORMAT_NO_BORDER                           0x00000008
+#define NV20_3D_TEX_FORMAT_DIMS__MASK                          0x000000f0
+#define NV20_3D_TEX_FORMAT_DIMS__SHIFT                         4
+#define NV20_3D_TEX_FORMAT_DIMS_1D                             0x00000010
+#define NV20_3D_TEX_FORMAT_DIMS_2D                             0x00000020
+#define NV20_3D_TEX_FORMAT_DIMS_3D                             0x00000030
+#define NV20_3D_TEX_FORMAT_FORMAT__MASK                                0x0000ff00
+#define NV20_3D_TEX_FORMAT_FORMAT__SHIFT                       8
+#define NV20_3D_TEX_FORMAT_FORMAT_L8                           0x00000000
+#define NV20_3D_TEX_FORMAT_FORMAT_I8                           0x00000100
+#define NV20_3D_TEX_FORMAT_FORMAT_A1R5G5B5                     0x00000200
+#define NV20_3D_TEX_FORMAT_FORMAT_A4R4G4B4                     0x00000400
+#define NV20_3D_TEX_FORMAT_FORMAT_R5G6B5                       0x00000500
+#define NV20_3D_TEX_FORMAT_FORMAT_A8R8G8B8                     0x00000600
+#define NV20_3D_TEX_FORMAT_FORMAT_X8R8G8B8                     0x00000700
+#define NV20_3D_TEX_FORMAT_FORMAT_INDEX8                       0x00000b00
+#define NV20_3D_TEX_FORMAT_FORMAT_DXT1                         0x00000c00
+#define NV20_3D_TEX_FORMAT_FORMAT_DXT3                         0x00000e00
+#define NV20_3D_TEX_FORMAT_FORMAT_DXT5                         0x00000f00
+#define NV20_3D_TEX_FORMAT_FORMAT_A1R5G5B5_RECT                        0x00001000
+#define NV20_3D_TEX_FORMAT_FORMAT_R5G6B5_RECT                  0x00001100
+#define NV20_3D_TEX_FORMAT_FORMAT_A8R8G8B8_RECT                        0x00001200
+#define NV20_3D_TEX_FORMAT_FORMAT_L8_RECT                      0x00001300
+#define NV20_3D_TEX_FORMAT_FORMAT_DSDT8_RECT                   0x00001700
+#define NV20_3D_TEX_FORMAT_FORMAT_A8L8                         0x00001a00
+#define NV20_3D_TEX_FORMAT_FORMAT_I8_RECT                      0x00001b00
+#define NV20_3D_TEX_FORMAT_FORMAT_A4R4G4B4_RECT                        0x00001d00
+#define NV20_3D_TEX_FORMAT_FORMAT_R8G8B8_RECT                  0x00001e00
+#define NV20_3D_TEX_FORMAT_FORMAT_A8L8_RECT                    0x00002000
+#define NV20_3D_TEX_FORMAT_FORMAT_Z24                          0x00002a00
+#define NV20_3D_TEX_FORMAT_FORMAT_Z24_RECT                     0x00002b00
+#define NV20_3D_TEX_FORMAT_FORMAT_Z16                          0x00002c00
+#define NV20_3D_TEX_FORMAT_FORMAT_Z16_RECT                     0x00002d00
+#define NV20_3D_TEX_FORMAT_FORMAT_DSDT8                                0x00002800
+#define NV20_3D_TEX_FORMAT_FORMAT_HILO16                       0x00003300
+#define NV20_3D_TEX_FORMAT_FORMAT_HILO16_RECT                  0x00003600
+#define NV20_3D_TEX_FORMAT_FORMAT_HILO8                                0x00004400
+#define NV20_3D_TEX_FORMAT_FORMAT_SIGNED_HILO8                 0x00004500
+#define NV20_3D_TEX_FORMAT_FORMAT_HILO8_RECT                   0x00004600
+#define NV20_3D_TEX_FORMAT_FORMAT_SIGNED_HILO8_RECT            0x00004700
+#define NV20_3D_TEX_FORMAT_MIPMAP                              0x00080000
+#define NV20_3D_TEX_FORMAT_BASE_SIZE_U__MASK                   0x00f00000
+#define NV20_3D_TEX_FORMAT_BASE_SIZE_U__SHIFT                  20
+#define NV20_3D_TEX_FORMAT_BASE_SIZE_V__MASK                   0x0f000000
+#define NV20_3D_TEX_FORMAT_BASE_SIZE_V__SHIFT                  24
+#define NV20_3D_TEX_FORMAT_BASE_SIZE_W__MASK                   0xf0000000
+#define NV20_3D_TEX_FORMAT_BASE_SIZE_W__SHIFT                  28
+
+#define NV20_3D_TEX_WRAP(i0)                                  (0x00001b08 + 0x40*(i0))
+#define NV20_3D_TEX_WRAP_S__MASK                               0x000000ff
+#define NV20_3D_TEX_WRAP_S__SHIFT                              0
+#define NV20_3D_TEX_WRAP_S_REPEAT                              0x00000001
+#define NV20_3D_TEX_WRAP_S_MIRRORED_REPEAT                     0x00000002
+#define NV20_3D_TEX_WRAP_S_CLAMP_TO_EDGE                       0x00000003
+#define NV20_3D_TEX_WRAP_S_CLAMP_TO_BORDER                     0x00000004
+#define NV20_3D_TEX_WRAP_S_CLAMP                               0x00000005
+#define NV20_3D_TEX_WRAP_T__MASK                               0x00000f00
+#define NV20_3D_TEX_WRAP_T__SHIFT                              8
+#define NV20_3D_TEX_WRAP_T_REPEAT                              0x00000100
+#define NV20_3D_TEX_WRAP_T_MIRRORED_REPEAT                     0x00000200
+#define NV20_3D_TEX_WRAP_T_CLAMP_TO_EDGE                       0x00000300
+#define NV20_3D_TEX_WRAP_T_CLAMP_TO_BORDER                     0x00000400
+#define NV20_3D_TEX_WRAP_T_CLAMP                               0x00000500
+#define NV20_3D_TEX_WRAP_R__MASK                               0x000f0000
+#define NV20_3D_TEX_WRAP_R__SHIFT                              16
+#define NV20_3D_TEX_WRAP_R_REPEAT                              0x00010000
+#define NV20_3D_TEX_WRAP_R_MIRRORED_REPEAT                     0x00020000
+#define NV20_3D_TEX_WRAP_R_CLAMP_TO_EDGE                       0x00030000
+#define NV20_3D_TEX_WRAP_R_CLAMP_TO_BORDER                     0x00040000
+#define NV20_3D_TEX_WRAP_R_CLAMP                               0x00050000
+
+#define NV20_3D_TEX_ENABLE(i0)                                (0x00001b0c + 0x40*(i0))
+#define NV20_3D_TEX_ENABLE_ANISO__MASK                         0x00000030
+#define NV20_3D_TEX_ENABLE_ANISO__SHIFT                                4
+#define NV20_3D_TEX_ENABLE_ANISO_NONE                          0x00000000
+#define NV20_3D_TEX_ENABLE_ANISO_2X                            0x00000010
+#define NV20_3D_TEX_ENABLE_ANISO_4X                            0x00000020
+#define NV20_3D_TEX_ENABLE_ANISO_8X                            0x00000030
+#define NV20_3D_TEX_ENABLE_MIPMAP_MAX_LOD__MASK                        0x0003c000
+#define NV20_3D_TEX_ENABLE_MIPMAP_MAX_LOD__SHIFT               14
+#define NV20_3D_TEX_ENABLE_MIPMAP_MIN_LOD__MASK                        0x3c000000
+#define NV20_3D_TEX_ENABLE_MIPMAP_MIN_LOD__SHIFT               26
+#define NV20_3D_TEX_ENABLE_ENABLE                              0x40000000
+
+#define NV20_3D_TEX_NPOT_PITCH(i0)                            (0x00001b10 + 0x40*(i0))
+#define NV20_3D_TEX_NPOT_PITCH_PITCH__MASK                     0xffff0000
+#define NV20_3D_TEX_NPOT_PITCH_PITCH__SHIFT                    16
+
+#define NV20_3D_TEX_FILTER(i0)                                (0x00001b14 + 0x40*(i0))
+#define NV20_3D_TEX_FILTER_LOD_BIAS__MASK                      0x00000f00
+#define NV20_3D_TEX_FILTER_LOD_BIAS__SHIFT                     8
+#define NV20_3D_TEX_FILTER_MINIFY__MASK                                0x000f0000
+#define NV20_3D_TEX_FILTER_MINIFY__SHIFT                       16
+#define NV20_3D_TEX_FILTER_MINIFY_NEAREST                      0x00010000
+#define NV20_3D_TEX_FILTER_MINIFY_LINEAR                       0x00020000
+#define NV20_3D_TEX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST       0x00030000
+#define NV20_3D_TEX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST                0x00040000
+#define NV20_3D_TEX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR                0x00050000
+#define NV20_3D_TEX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR         0x00060000
+#define NV20_3D_TEX_FILTER_MAGNIFY__MASK                       0x0f000000
+#define NV20_3D_TEX_FILTER_MAGNIFY__SHIFT                      24
+#define NV20_3D_TEX_FILTER_MAGNIFY_NEAREST                     0x01000000
+#define NV20_3D_TEX_FILTER_MAGNIFY_LINEAR                      0x02000000
+
+#define NV20_3D_TEX_NPOT_SIZE(i0)                             (0x00001b1c + 0x40*(i0))
+#define NV20_3D_TEX_NPOT_SIZE_H__MASK                          0x0000ffff
+#define NV20_3D_TEX_NPOT_SIZE_H__SHIFT                         0
+#define NV20_3D_TEX_NPOT_SIZE_W__MASK                          0xffff0000
+#define NV20_3D_TEX_NPOT_SIZE_W__SHIFT                         16
+
+#define NV20_3D_TEX_PALETTE_OFFSET(i0)                        (0x00001b20 + 0x40*(i0))
+
+#define NV20_3D_TEX_BORDER_COLOR(i0)                          (0x00001b24 + 0x40*(i0))
+#define NV20_3D_TEX_BORDER_COLOR_B__MASK                       0x000000ff
+#define NV20_3D_TEX_BORDER_COLOR_B__SHIFT                      0
+#define NV20_3D_TEX_BORDER_COLOR_G__MASK                       0x0000ff00
+#define NV20_3D_TEX_BORDER_COLOR_G__SHIFT                      8
+#define NV20_3D_TEX_BORDER_COLOR_R__MASK                       0x00ff0000
+#define NV20_3D_TEX_BORDER_COLOR_R__SHIFT                      16
+#define NV20_3D_TEX_BORDER_COLOR_A__MASK                       0xff000000
+#define NV20_3D_TEX_BORDER_COLOR_A__SHIFT                      24
+
+
+
+#define NV20_3D_RC_IN_ALPHA(i0)                                       (0x00000260 + 0x4*(i0))
+#define NV20_3D_RC_IN_ALPHA_D_INPUT__MASK                      0x0000000f
+#define NV20_3D_RC_IN_ALPHA_D_INPUT__SHIFT                     0
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_ZERO                       0x00000000
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0            0x00000001
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1            0x00000002
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_FOG                                0x00000003
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR              0x00000004
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR            0x00000005
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_TEXTURE0                   0x00000008
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_TEXTURE1                   0x00000009
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_TEXTURE2                   0x0000000a
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_TEXTURE3                   0x0000000b
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_SPARE0                     0x0000000c
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_SPARE1                     0x0000000d
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR        0x0000000e
+#define NV20_3D_RC_IN_ALPHA_D_INPUT_E_TIMES_F                  0x0000000f
+#define NV20_3D_RC_IN_ALPHA_D_COMPONENT_USAGE__MASK            0x00000010
+#define NV20_3D_RC_IN_ALPHA_D_COMPONENT_USAGE__SHIFT           4
+#define NV20_3D_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE             0x00000000
+#define NV20_3D_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA            0x00000010
+#define NV20_3D_RC_IN_ALPHA_D_MAPPING__MASK                    0x000000e0
+#define NV20_3D_RC_IN_ALPHA_D_MAPPING__SHIFT                   5
+#define NV20_3D_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY                0x00000000
+#define NV20_3D_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT          0x00000020
+#define NV20_3D_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL            0x00000040
+#define NV20_3D_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE            0x00000060
+#define NV20_3D_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL         0x00000080
+#define NV20_3D_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE         0x000000a0
+#define NV20_3D_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY          0x000000c0
+#define NV20_3D_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE            0x000000e0
+#define NV20_3D_RC_IN_ALPHA_C_INPUT__MASK                      0x00000f00
+#define NV20_3D_RC_IN_ALPHA_C_INPUT__SHIFT                     8
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_ZERO                       0x00000000
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0            0x00000100
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1            0x00000200
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_FOG                                0x00000300
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR              0x00000400
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR            0x00000500
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_TEXTURE0                   0x00000800
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_TEXTURE1                   0x00000900
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_TEXTURE2                   0x00000a00
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_TEXTURE3                   0x00000b00
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_SPARE0                     0x00000c00
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_SPARE1                     0x00000d00
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR        0x00000e00
+#define NV20_3D_RC_IN_ALPHA_C_INPUT_E_TIMES_F                  0x00000f00
+#define NV20_3D_RC_IN_ALPHA_C_COMPONENT_USAGE__MASK            0x00001000
+#define NV20_3D_RC_IN_ALPHA_C_COMPONENT_USAGE__SHIFT           12
+#define NV20_3D_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE             0x00000000
+#define NV20_3D_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA            0x00001000
+#define NV20_3D_RC_IN_ALPHA_C_MAPPING__MASK                    0x0000e000
+#define NV20_3D_RC_IN_ALPHA_C_MAPPING__SHIFT                   13
+#define NV20_3D_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY                0x00000000
+#define NV20_3D_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT          0x00002000
+#define NV20_3D_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL            0x00004000
+#define NV20_3D_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE            0x00006000
+#define NV20_3D_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL         0x00008000
+#define NV20_3D_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE         0x0000a000
+#define NV20_3D_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY          0x0000c000
+#define NV20_3D_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE            0x0000e000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT__MASK                      0x000f0000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT__SHIFT                     16
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_ZERO                       0x00000000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0            0x00010000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1            0x00020000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_FOG                                0x00030000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR              0x00040000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR            0x00050000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_TEXTURE0                   0x00080000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_TEXTURE1                   0x00090000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_TEXTURE2                   0x000a0000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_TEXTURE3                   0x000b0000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_SPARE0                     0x000c0000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_SPARE1                     0x000d0000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR        0x000e0000
+#define NV20_3D_RC_IN_ALPHA_B_INPUT_E_TIMES_F                  0x000f0000
+#define NV20_3D_RC_IN_ALPHA_B_COMPONENT_USAGE__MASK            0x00100000
+#define NV20_3D_RC_IN_ALPHA_B_COMPONENT_USAGE__SHIFT           20
+#define NV20_3D_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE             0x00000000
+#define NV20_3D_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA            0x00100000
+#define NV20_3D_RC_IN_ALPHA_B_MAPPING__MASK                    0x00e00000
+#define NV20_3D_RC_IN_ALPHA_B_MAPPING__SHIFT                   21
+#define NV20_3D_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY                0x00000000
+#define NV20_3D_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT          0x00200000
+#define NV20_3D_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL            0x00400000
+#define NV20_3D_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE            0x00600000
+#define NV20_3D_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL         0x00800000
+#define NV20_3D_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE         0x00a00000
+#define NV20_3D_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY          0x00c00000
+#define NV20_3D_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE            0x00e00000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT__MASK                      0x0f000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT__SHIFT                     24
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_ZERO                       0x00000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0            0x01000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1            0x02000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_FOG                                0x03000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR              0x04000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR            0x05000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_TEXTURE0                   0x08000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_TEXTURE1                   0x09000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_TEXTURE2                   0x0a000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_TEXTURE3                   0x0b000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_SPARE0                     0x0c000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_SPARE1                     0x0d000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR        0x0e000000
+#define NV20_3D_RC_IN_ALPHA_A_INPUT_E_TIMES_F                  0x0f000000
+#define NV20_3D_RC_IN_ALPHA_A_COMPONENT_USAGE__MASK            0x10000000
+#define NV20_3D_RC_IN_ALPHA_A_COMPONENT_USAGE__SHIFT           28
+#define NV20_3D_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE             0x00000000
+#define NV20_3D_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA            0x10000000
+#define NV20_3D_RC_IN_ALPHA_A_MAPPING__MASK                    0xe0000000
+#define NV20_3D_RC_IN_ALPHA_A_MAPPING__SHIFT                   29
+#define NV20_3D_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY                0x00000000
+#define NV20_3D_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT          0x20000000
+#define NV20_3D_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL            0x40000000
+#define NV20_3D_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE            0x60000000
+#define NV20_3D_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL         0x80000000
+#define NV20_3D_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE         0xa0000000
+#define NV20_3D_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY          0xc0000000
+#define NV20_3D_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE            0xe0000000
+
+#define NV20_3D_RC_IN_RGB(i0)                                 (0x00000ac0 + 0x4*(i0))
+#define NV20_3D_RC_IN_RGB_D_INPUT__MASK                                0x0000000f
+#define NV20_3D_RC_IN_RGB_D_INPUT__SHIFT                       0
+#define NV20_3D_RC_IN_RGB_D_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0              0x00000001
+#define NV20_3D_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1              0x00000002
+#define NV20_3D_RC_IN_RGB_D_INPUT_FOG                          0x00000003
+#define NV20_3D_RC_IN_RGB_D_INPUT_PRIMARY_COLOR                        0x00000004
+#define NV20_3D_RC_IN_RGB_D_INPUT_SECONDARY_COLOR              0x00000005
+#define NV20_3D_RC_IN_RGB_D_INPUT_TEXTURE0                     0x00000008
+#define NV20_3D_RC_IN_RGB_D_INPUT_TEXTURE1                     0x00000009
+#define NV20_3D_RC_IN_RGB_D_INPUT_TEXTURE2                     0x0000000a
+#define NV20_3D_RC_IN_RGB_D_INPUT_TEXTURE3                     0x0000000b
+#define NV20_3D_RC_IN_RGB_D_INPUT_SPARE0                       0x0000000c
+#define NV20_3D_RC_IN_RGB_D_INPUT_SPARE1                       0x0000000d
+#define NV20_3D_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x0000000e
+#define NV20_3D_RC_IN_RGB_D_INPUT_E_TIMES_F                    0x0000000f
+#define NV20_3D_RC_IN_RGB_D_COMPONENT_USAGE__MASK              0x00000010
+#define NV20_3D_RC_IN_RGB_D_COMPONENT_USAGE__SHIFT             4
+#define NV20_3D_RC_IN_RGB_D_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA              0x00000010
+#define NV20_3D_RC_IN_RGB_D_MAPPING__MASK                      0x000000e0
+#define NV20_3D_RC_IN_RGB_D_MAPPING__SHIFT                     5
+#define NV20_3D_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT            0x00000020
+#define NV20_3D_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL              0x00000040
+#define NV20_3D_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE              0x00000060
+#define NV20_3D_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL           0x00000080
+#define NV20_3D_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE           0x000000a0
+#define NV20_3D_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY            0x000000c0
+#define NV20_3D_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE              0x000000e0
+#define NV20_3D_RC_IN_RGB_C_INPUT__MASK                                0x00000f00
+#define NV20_3D_RC_IN_RGB_C_INPUT__SHIFT                       8
+#define NV20_3D_RC_IN_RGB_C_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0              0x00000100
+#define NV20_3D_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1              0x00000200
+#define NV20_3D_RC_IN_RGB_C_INPUT_FOG                          0x00000300
+#define NV20_3D_RC_IN_RGB_C_INPUT_PRIMARY_COLOR                        0x00000400
+#define NV20_3D_RC_IN_RGB_C_INPUT_SECONDARY_COLOR              0x00000500
+#define NV20_3D_RC_IN_RGB_C_INPUT_TEXTURE0                     0x00000800
+#define NV20_3D_RC_IN_RGB_C_INPUT_TEXTURE1                     0x00000900
+#define NV20_3D_RC_IN_RGB_C_INPUT_TEXTURE2                     0x00000a00
+#define NV20_3D_RC_IN_RGB_C_INPUT_TEXTURE3                     0x00000b00
+#define NV20_3D_RC_IN_RGB_C_INPUT_SPARE0                       0x00000c00
+#define NV20_3D_RC_IN_RGB_C_INPUT_SPARE1                       0x00000d00
+#define NV20_3D_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x00000e00
+#define NV20_3D_RC_IN_RGB_C_INPUT_E_TIMES_F                    0x00000f00
+#define NV20_3D_RC_IN_RGB_C_COMPONENT_USAGE__MASK              0x00001000
+#define NV20_3D_RC_IN_RGB_C_COMPONENT_USAGE__SHIFT             12
+#define NV20_3D_RC_IN_RGB_C_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA              0x00001000
+#define NV20_3D_RC_IN_RGB_C_MAPPING__MASK                      0x0000e000
+#define NV20_3D_RC_IN_RGB_C_MAPPING__SHIFT                     13
+#define NV20_3D_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT            0x00002000
+#define NV20_3D_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL              0x00004000
+#define NV20_3D_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE              0x00006000
+#define NV20_3D_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL           0x00008000
+#define NV20_3D_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE           0x0000a000
+#define NV20_3D_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY            0x0000c000
+#define NV20_3D_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE              0x0000e000
+#define NV20_3D_RC_IN_RGB_B_INPUT__MASK                                0x000f0000
+#define NV20_3D_RC_IN_RGB_B_INPUT__SHIFT                       16
+#define NV20_3D_RC_IN_RGB_B_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0              0x00010000
+#define NV20_3D_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1              0x00020000
+#define NV20_3D_RC_IN_RGB_B_INPUT_FOG                          0x00030000
+#define NV20_3D_RC_IN_RGB_B_INPUT_PRIMARY_COLOR                        0x00040000
+#define NV20_3D_RC_IN_RGB_B_INPUT_SECONDARY_COLOR              0x00050000
+#define NV20_3D_RC_IN_RGB_B_INPUT_TEXTURE0                     0x00080000
+#define NV20_3D_RC_IN_RGB_B_INPUT_TEXTURE1                     0x00090000
+#define NV20_3D_RC_IN_RGB_B_INPUT_TEXTURE2                     0x000a0000
+#define NV20_3D_RC_IN_RGB_B_INPUT_TEXTURE3                     0x000b0000
+#define NV20_3D_RC_IN_RGB_B_INPUT_SPARE0                       0x000c0000
+#define NV20_3D_RC_IN_RGB_B_INPUT_SPARE1                       0x000d0000
+#define NV20_3D_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x000e0000
+#define NV20_3D_RC_IN_RGB_B_INPUT_E_TIMES_F                    0x000f0000
+#define NV20_3D_RC_IN_RGB_B_COMPONENT_USAGE__MASK              0x00100000
+#define NV20_3D_RC_IN_RGB_B_COMPONENT_USAGE__SHIFT             20
+#define NV20_3D_RC_IN_RGB_B_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA              0x00100000
+#define NV20_3D_RC_IN_RGB_B_MAPPING__MASK                      0x00e00000
+#define NV20_3D_RC_IN_RGB_B_MAPPING__SHIFT                     21
+#define NV20_3D_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT            0x00200000
+#define NV20_3D_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL              0x00400000
+#define NV20_3D_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE              0x00600000
+#define NV20_3D_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL           0x00800000
+#define NV20_3D_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE           0x00a00000
+#define NV20_3D_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY            0x00c00000
+#define NV20_3D_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE              0x00e00000
+#define NV20_3D_RC_IN_RGB_A_INPUT__MASK                                0x0f000000
+#define NV20_3D_RC_IN_RGB_A_INPUT__SHIFT                       24
+#define NV20_3D_RC_IN_RGB_A_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0              0x01000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1              0x02000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_FOG                          0x03000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_PRIMARY_COLOR                        0x04000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_SECONDARY_COLOR              0x05000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_TEXTURE0                     0x08000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_TEXTURE1                     0x09000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_TEXTURE2                     0x0a000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_TEXTURE3                     0x0b000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_SPARE0                       0x0c000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_SPARE1                       0x0d000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x0e000000
+#define NV20_3D_RC_IN_RGB_A_INPUT_E_TIMES_F                    0x0f000000
+#define NV20_3D_RC_IN_RGB_A_COMPONENT_USAGE__MASK              0x10000000
+#define NV20_3D_RC_IN_RGB_A_COMPONENT_USAGE__SHIFT             28
+#define NV20_3D_RC_IN_RGB_A_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA              0x10000000
+#define NV20_3D_RC_IN_RGB_A_MAPPING__MASK                      0xe0000000
+#define NV20_3D_RC_IN_RGB_A_MAPPING__SHIFT                     29
+#define NV20_3D_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT            0x20000000
+#define NV20_3D_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL              0x40000000
+#define NV20_3D_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE              0x60000000
+#define NV20_3D_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL           0x80000000
+#define NV20_3D_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE           0xa0000000
+#define NV20_3D_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY            0xc0000000
+#define NV20_3D_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE              0xe0000000
+
+#define NV20_3D_RC_CONSTANT_COLOR0(i0)                        (0x00000a60 + 0x4*(i0))
+#define NV20_3D_RC_CONSTANT_COLOR0_B__MASK                     0x000000ff
+#define NV20_3D_RC_CONSTANT_COLOR0_B__SHIFT                    0
+#define NV20_3D_RC_CONSTANT_COLOR0_G__MASK                     0x0000ff00
+#define NV20_3D_RC_CONSTANT_COLOR0_G__SHIFT                    8
+#define NV20_3D_RC_CONSTANT_COLOR0_R__MASK                     0x00ff0000
+#define NV20_3D_RC_CONSTANT_COLOR0_R__SHIFT                    16
+#define NV20_3D_RC_CONSTANT_COLOR0_A__MASK                     0xff000000
+#define NV20_3D_RC_CONSTANT_COLOR0_A__SHIFT                    24
+
+#define NV20_3D_RC_CONSTANT_COLOR1(i0)                        (0x00000a80 + 0x4*(i0))
+#define NV20_3D_RC_CONSTANT_COLOR1_B__MASK                     0x000000ff
+#define NV20_3D_RC_CONSTANT_COLOR1_B__SHIFT                    0
+#define NV20_3D_RC_CONSTANT_COLOR1_G__MASK                     0x0000ff00
+#define NV20_3D_RC_CONSTANT_COLOR1_G__SHIFT                    8
+#define NV20_3D_RC_CONSTANT_COLOR1_R__MASK                     0x00ff0000
+#define NV20_3D_RC_CONSTANT_COLOR1_R__SHIFT                    16
+#define NV20_3D_RC_CONSTANT_COLOR1_A__MASK                     0xff000000
+#define NV20_3D_RC_CONSTANT_COLOR1_A__SHIFT                    24
+
+#define NV20_3D_RC_OUT_ALPHA(i0)                              (0x00000aa0 + 0x4*(i0))
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT__MASK                   0x0000000f
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT__SHIFT                  0
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_ZERO                    0x00000000
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0         0x00000001
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1         0x00000002
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_FOG                     0x00000003
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR           0x00000004
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR         0x00000005
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0                        0x00000008
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1                        0x00000009
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2                        0x0000000a
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3                        0x0000000b
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_SPARE0                  0x0000000c
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_SPARE1                  0x0000000d
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR     0x0000000e
+#define NV20_3D_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F               0x0000000f
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT__MASK                   0x000000f0
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT__SHIFT                  4
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_ZERO                    0x00000000
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0         0x00000010
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1         0x00000020
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_FOG                     0x00000030
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR           0x00000040
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR         0x00000050
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0                        0x00000080
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1                        0x00000090
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2                        0x000000a0
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3                        0x000000b0
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0                  0x000000c0
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE1                  0x000000d0
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR     0x000000e0
+#define NV20_3D_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F               0x000000f0
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT__MASK                  0x00000f00
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT__SHIFT                 8
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_ZERO                   0x00000000
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0                0x00000100
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1                0x00000200
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_FOG                    0x00000300
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR          0x00000400
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR                0x00000500
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0               0x00000800
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1               0x00000900
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2               0x00000a00
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3               0x00000b00
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0                 0x00000c00
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1                 0x00000d00
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR    0x00000e00
+#define NV20_3D_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F              0x00000f00
+#define NV20_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT                    0x00001000
+#define NV20_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT                    0x00002000
+#define NV20_3D_RC_OUT_ALPHA_MUX_SUM                           0x00004000
+#define NV20_3D_RC_OUT_ALPHA_BIAS__MASK                                0x00008000
+#define NV20_3D_RC_OUT_ALPHA_BIAS__SHIFT                       15
+#define NV20_3D_RC_OUT_ALPHA_BIAS_NONE                         0x00000000
+#define NV20_3D_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF    0x00008000
+#define NV20_3D_RC_OUT_ALPHA_SCALE__MASK                       0x00030000
+#define NV20_3D_RC_OUT_ALPHA_SCALE__SHIFT                      16
+#define NV20_3D_RC_OUT_ALPHA_SCALE_NONE                                0x00000000
+#define NV20_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO                        0x00010000
+#define NV20_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR               0x00020000
+#define NV20_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF           0x00030000
+
+#define NV20_3D_RC_OUT_RGB(i0)                                (0x00001e40 + 0x4*(i0))
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT__MASK                     0x0000000f
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT__SHIFT                    0
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_ZERO                      0x00000000
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0           0x00000001
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1           0x00000002
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_FOG                       0x00000003
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR             0x00000004
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR           0x00000005
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_TEXTURE0                  0x00000008
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_TEXTURE1                  0x00000009
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_TEXTURE2                  0x0000000a
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_TEXTURE3                  0x0000000b
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_SPARE0                    0x0000000c
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_SPARE1                    0x0000000d
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR       0x0000000e
+#define NV20_3D_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F                 0x0000000f
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT__MASK                     0x000000f0
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT__SHIFT                    4
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_ZERO                      0x00000000
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0           0x00000010
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1           0x00000020
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_FOG                       0x00000030
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR             0x00000040
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR           0x00000050
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE0                  0x00000080
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE1                  0x00000090
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE2                  0x000000a0
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE3                  0x000000b0
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0                    0x000000c0
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_SPARE1                    0x000000d0
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR       0x000000e0
+#define NV20_3D_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F                 0x000000f0
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT__MASK                    0x00000f00
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT__SHIFT                   8
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_ZERO                     0x00000000
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0          0x00000100
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1          0x00000200
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_FOG                      0x00000300
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR            0x00000400
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR          0x00000500
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0                 0x00000800
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1                 0x00000900
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2                 0x00000a00
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3                 0x00000b00
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0                   0x00000c00
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE1                   0x00000d00
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR      0x00000e00
+#define NV20_3D_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F                        0x00000f00
+#define NV20_3D_RC_OUT_RGB_CD_DOT_PRODUCT                      0x00001000
+#define NV20_3D_RC_OUT_RGB_AB_DOT_PRODUCT                      0x00002000
+#define NV20_3D_RC_OUT_RGB_MUX_SUM                             0x00004000
+#define NV20_3D_RC_OUT_RGB_BIAS__MASK                          0x00008000
+#define NV20_3D_RC_OUT_RGB_BIAS__SHIFT                         15
+#define NV20_3D_RC_OUT_RGB_BIAS_NONE                           0x00000000
+#define NV20_3D_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF      0x00008000
+#define NV20_3D_RC_OUT_RGB_SCALE__MASK                         0x00030000
+#define NV20_3D_RC_OUT_RGB_SCALE__SHIFT                                16
+#define NV20_3D_RC_OUT_RGB_SCALE_NONE                          0x00000000
+#define NV20_3D_RC_OUT_RGB_SCALE_SCALE_BY_TWO                  0x00010000
+#define NV20_3D_RC_OUT_RGB_SCALE_SCALE_BY_FOUR                 0x00020000
+#define NV20_3D_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF             0x00030000
+
+#define NV20_3D_RC_FINAL0                                      0x00000288
+#define NV20_3D_RC_FINAL0_D_INPUT__MASK                                0x0000000f
+#define NV20_3D_RC_FINAL0_D_INPUT__SHIFT                       0
+#define NV20_3D_RC_FINAL0_D_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_FINAL0_D_INPUT_CONSTANT_COLOR0              0x00000001
+#define NV20_3D_RC_FINAL0_D_INPUT_CONSTANT_COLOR1              0x00000002
+#define NV20_3D_RC_FINAL0_D_INPUT_FOG                          0x00000003
+#define NV20_3D_RC_FINAL0_D_INPUT_PRIMARY_COLOR                        0x00000004
+#define NV20_3D_RC_FINAL0_D_INPUT_SECONDARY_COLOR              0x00000005
+#define NV20_3D_RC_FINAL0_D_INPUT_TEXTURE0                     0x00000008
+#define NV20_3D_RC_FINAL0_D_INPUT_TEXTURE1                     0x00000009
+#define NV20_3D_RC_FINAL0_D_INPUT_TEXTURE2                     0x0000000a
+#define NV20_3D_RC_FINAL0_D_INPUT_TEXTURE3                     0x0000000b
+#define NV20_3D_RC_FINAL0_D_INPUT_SPARE0                       0x0000000c
+#define NV20_3D_RC_FINAL0_D_INPUT_SPARE1                       0x0000000d
+#define NV20_3D_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x0000000e
+#define NV20_3D_RC_FINAL0_D_INPUT_E_TIMES_F                    0x0000000f
+#define NV20_3D_RC_FINAL0_D_COMPONENT_USAGE__MASK              0x00000010
+#define NV20_3D_RC_FINAL0_D_COMPONENT_USAGE__SHIFT             4
+#define NV20_3D_RC_FINAL0_D_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_FINAL0_D_COMPONENT_USAGE_ALPHA              0x00000010
+#define NV20_3D_RC_FINAL0_D_MAPPING__MASK                      0x000000e0
+#define NV20_3D_RC_FINAL0_D_MAPPING__SHIFT                     5
+#define NV20_3D_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT            0x00000020
+#define NV20_3D_RC_FINAL0_D_MAPPING_EXPAND_NORMAL              0x00000040
+#define NV20_3D_RC_FINAL0_D_MAPPING_EXPAND_NEGATE              0x00000060
+#define NV20_3D_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL           0x00000080
+#define NV20_3D_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE           0x000000a0
+#define NV20_3D_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY            0x000000c0
+#define NV20_3D_RC_FINAL0_D_MAPPING_SIGNED_NEGATE              0x000000e0
+#define NV20_3D_RC_FINAL0_C_INPUT__MASK                                0x00000f00
+#define NV20_3D_RC_FINAL0_C_INPUT__SHIFT                       8
+#define NV20_3D_RC_FINAL0_C_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_FINAL0_C_INPUT_CONSTANT_COLOR0              0x00000100
+#define NV20_3D_RC_FINAL0_C_INPUT_CONSTANT_COLOR1              0x00000200
+#define NV20_3D_RC_FINAL0_C_INPUT_FOG                          0x00000300
+#define NV20_3D_RC_FINAL0_C_INPUT_PRIMARY_COLOR                        0x00000400
+#define NV20_3D_RC_FINAL0_C_INPUT_SECONDARY_COLOR              0x00000500
+#define NV20_3D_RC_FINAL0_C_INPUT_TEXTURE0                     0x00000800
+#define NV20_3D_RC_FINAL0_C_INPUT_TEXTURE1                     0x00000900
+#define NV20_3D_RC_FINAL0_C_INPUT_TEXTURE2                     0x00000a00
+#define NV20_3D_RC_FINAL0_C_INPUT_TEXTURE3                     0x00000b00
+#define NV20_3D_RC_FINAL0_C_INPUT_SPARE0                       0x00000c00
+#define NV20_3D_RC_FINAL0_C_INPUT_SPARE1                       0x00000d00
+#define NV20_3D_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x00000e00
+#define NV20_3D_RC_FINAL0_C_INPUT_E_TIMES_F                    0x00000f00
+#define NV20_3D_RC_FINAL0_C_COMPONENT_USAGE__MASK              0x00001000
+#define NV20_3D_RC_FINAL0_C_COMPONENT_USAGE__SHIFT             12
+#define NV20_3D_RC_FINAL0_C_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_FINAL0_C_COMPONENT_USAGE_ALPHA              0x00001000
+#define NV20_3D_RC_FINAL0_C_MAPPING__MASK                      0x0000e000
+#define NV20_3D_RC_FINAL0_C_MAPPING__SHIFT                     13
+#define NV20_3D_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT            0x00002000
+#define NV20_3D_RC_FINAL0_C_MAPPING_EXPAND_NORMAL              0x00004000
+#define NV20_3D_RC_FINAL0_C_MAPPING_EXPAND_NEGATE              0x00006000
+#define NV20_3D_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL           0x00008000
+#define NV20_3D_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE           0x0000a000
+#define NV20_3D_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY            0x0000c000
+#define NV20_3D_RC_FINAL0_C_MAPPING_SIGNED_NEGATE              0x0000e000
+#define NV20_3D_RC_FINAL0_B_INPUT__MASK                                0x000f0000
+#define NV20_3D_RC_FINAL0_B_INPUT__SHIFT                       16
+#define NV20_3D_RC_FINAL0_B_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_FINAL0_B_INPUT_CONSTANT_COLOR0              0x00010000
+#define NV20_3D_RC_FINAL0_B_INPUT_CONSTANT_COLOR1              0x00020000
+#define NV20_3D_RC_FINAL0_B_INPUT_FOG                          0x00030000
+#define NV20_3D_RC_FINAL0_B_INPUT_PRIMARY_COLOR                        0x00040000
+#define NV20_3D_RC_FINAL0_B_INPUT_SECONDARY_COLOR              0x00050000
+#define NV20_3D_RC_FINAL0_B_INPUT_TEXTURE0                     0x00080000
+#define NV20_3D_RC_FINAL0_B_INPUT_TEXTURE1                     0x00090000
+#define NV20_3D_RC_FINAL0_B_INPUT_TEXTURE2                     0x000a0000
+#define NV20_3D_RC_FINAL0_B_INPUT_TEXTURE3                     0x000b0000
+#define NV20_3D_RC_FINAL0_B_INPUT_SPARE0                       0x000c0000
+#define NV20_3D_RC_FINAL0_B_INPUT_SPARE1                       0x000d0000
+#define NV20_3D_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x000e0000
+#define NV20_3D_RC_FINAL0_B_INPUT_E_TIMES_F                    0x000f0000
+#define NV20_3D_RC_FINAL0_B_COMPONENT_USAGE__MASK              0x00100000
+#define NV20_3D_RC_FINAL0_B_COMPONENT_USAGE__SHIFT             20
+#define NV20_3D_RC_FINAL0_B_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_FINAL0_B_COMPONENT_USAGE_ALPHA              0x00100000
+#define NV20_3D_RC_FINAL0_B_MAPPING__MASK                      0x00e00000
+#define NV20_3D_RC_FINAL0_B_MAPPING__SHIFT                     21
+#define NV20_3D_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT            0x00200000
+#define NV20_3D_RC_FINAL0_B_MAPPING_EXPAND_NORMAL              0x00400000
+#define NV20_3D_RC_FINAL0_B_MAPPING_EXPAND_NEGATE              0x00600000
+#define NV20_3D_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL           0x00800000
+#define NV20_3D_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE           0x00a00000
+#define NV20_3D_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY            0x00c00000
+#define NV20_3D_RC_FINAL0_B_MAPPING_SIGNED_NEGATE              0x00e00000
+#define NV20_3D_RC_FINAL0_A_INPUT__MASK                                0x0f000000
+#define NV20_3D_RC_FINAL0_A_INPUT__SHIFT                       24
+#define NV20_3D_RC_FINAL0_A_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_FINAL0_A_INPUT_CONSTANT_COLOR0              0x01000000
+#define NV20_3D_RC_FINAL0_A_INPUT_CONSTANT_COLOR1              0x02000000
+#define NV20_3D_RC_FINAL0_A_INPUT_FOG                          0x03000000
+#define NV20_3D_RC_FINAL0_A_INPUT_PRIMARY_COLOR                        0x04000000
+#define NV20_3D_RC_FINAL0_A_INPUT_SECONDARY_COLOR              0x05000000
+#define NV20_3D_RC_FINAL0_A_INPUT_TEXTURE0                     0x08000000
+#define NV20_3D_RC_FINAL0_A_INPUT_TEXTURE1                     0x09000000
+#define NV20_3D_RC_FINAL0_A_INPUT_TEXTURE2                     0x0a000000
+#define NV20_3D_RC_FINAL0_A_INPUT_TEXTURE3                     0x0b000000
+#define NV20_3D_RC_FINAL0_A_INPUT_SPARE0                       0x0c000000
+#define NV20_3D_RC_FINAL0_A_INPUT_SPARE1                       0x0d000000
+#define NV20_3D_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x0e000000
+#define NV20_3D_RC_FINAL0_A_INPUT_E_TIMES_F                    0x0f000000
+#define NV20_3D_RC_FINAL0_A_COMPONENT_USAGE__MASK              0x10000000
+#define NV20_3D_RC_FINAL0_A_COMPONENT_USAGE__SHIFT             28
+#define NV20_3D_RC_FINAL0_A_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_FINAL0_A_COMPONENT_USAGE_ALPHA              0x10000000
+#define NV20_3D_RC_FINAL0_A_MAPPING__MASK                      0xe0000000
+#define NV20_3D_RC_FINAL0_A_MAPPING__SHIFT                     29
+#define NV20_3D_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT            0x20000000
+#define NV20_3D_RC_FINAL0_A_MAPPING_EXPAND_NORMAL              0x40000000
+#define NV20_3D_RC_FINAL0_A_MAPPING_EXPAND_NEGATE              0x60000000
+#define NV20_3D_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL           0x80000000
+#define NV20_3D_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE           0xa0000000
+#define NV20_3D_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY            0xc0000000
+#define NV20_3D_RC_FINAL0_A_MAPPING_SIGNED_NEGATE              0xe0000000
+
+#define NV20_3D_RC_FINAL1                                      0x0000028c
+#define NV20_3D_RC_FINAL1_COLOR_SUM_CLAMP                      0x00000080
+#define NV20_3D_RC_FINAL1_G_INPUT__MASK                                0x00000f00
+#define NV20_3D_RC_FINAL1_G_INPUT__SHIFT                       8
+#define NV20_3D_RC_FINAL1_G_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_FINAL1_G_INPUT_CONSTANT_COLOR0              0x00000100
+#define NV20_3D_RC_FINAL1_G_INPUT_CONSTANT_COLOR1              0x00000200
+#define NV20_3D_RC_FINAL1_G_INPUT_FOG                          0x00000300
+#define NV20_3D_RC_FINAL1_G_INPUT_PRIMARY_COLOR                        0x00000400
+#define NV20_3D_RC_FINAL1_G_INPUT_SECONDARY_COLOR              0x00000500
+#define NV20_3D_RC_FINAL1_G_INPUT_TEXTURE0                     0x00000800
+#define NV20_3D_RC_FINAL1_G_INPUT_TEXTURE1                     0x00000900
+#define NV20_3D_RC_FINAL1_G_INPUT_TEXTURE2                     0x00000a00
+#define NV20_3D_RC_FINAL1_G_INPUT_TEXTURE3                     0x00000b00
+#define NV20_3D_RC_FINAL1_G_INPUT_SPARE0                       0x00000c00
+#define NV20_3D_RC_FINAL1_G_INPUT_SPARE1                       0x00000d00
+#define NV20_3D_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x00000e00
+#define NV20_3D_RC_FINAL1_G_INPUT_E_TIMES_F                    0x00000f00
+#define NV20_3D_RC_FINAL1_G_COMPONENT_USAGE__MASK              0x00001000
+#define NV20_3D_RC_FINAL1_G_COMPONENT_USAGE__SHIFT             12
+#define NV20_3D_RC_FINAL1_G_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_FINAL1_G_COMPONENT_USAGE_ALPHA              0x00001000
+#define NV20_3D_RC_FINAL1_G_MAPPING__MASK                      0x0000e000
+#define NV20_3D_RC_FINAL1_G_MAPPING__SHIFT                     13
+#define NV20_3D_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT            0x00002000
+#define NV20_3D_RC_FINAL1_G_MAPPING_EXPAND_NORMAL              0x00004000
+#define NV20_3D_RC_FINAL1_G_MAPPING_EXPAND_NEGATE              0x00006000
+#define NV20_3D_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL           0x00008000
+#define NV20_3D_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE           0x0000a000
+#define NV20_3D_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY            0x0000c000
+#define NV20_3D_RC_FINAL1_G_MAPPING_SIGNED_NEGATE              0x0000e000
+#define NV20_3D_RC_FINAL1_F_INPUT__MASK                                0x000f0000
+#define NV20_3D_RC_FINAL1_F_INPUT__SHIFT                       16
+#define NV20_3D_RC_FINAL1_F_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_FINAL1_F_INPUT_CONSTANT_COLOR0              0x00010000
+#define NV20_3D_RC_FINAL1_F_INPUT_CONSTANT_COLOR1              0x00020000
+#define NV20_3D_RC_FINAL1_F_INPUT_FOG                          0x00030000
+#define NV20_3D_RC_FINAL1_F_INPUT_PRIMARY_COLOR                        0x00040000
+#define NV20_3D_RC_FINAL1_F_INPUT_SECONDARY_COLOR              0x00050000
+#define NV20_3D_RC_FINAL1_F_INPUT_TEXTURE0                     0x00080000
+#define NV20_3D_RC_FINAL1_F_INPUT_TEXTURE1                     0x00090000
+#define NV20_3D_RC_FINAL1_F_INPUT_TEXTURE2                     0x000a0000
+#define NV20_3D_RC_FINAL1_F_INPUT_TEXTURE3                     0x000b0000
+#define NV20_3D_RC_FINAL1_F_INPUT_SPARE0                       0x000c0000
+#define NV20_3D_RC_FINAL1_F_INPUT_SPARE1                       0x000d0000
+#define NV20_3D_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x000e0000
+#define NV20_3D_RC_FINAL1_F_INPUT_E_TIMES_F                    0x000f0000
+#define NV20_3D_RC_FINAL1_F_COMPONENT_USAGE__MASK              0x00100000
+#define NV20_3D_RC_FINAL1_F_COMPONENT_USAGE__SHIFT             20
+#define NV20_3D_RC_FINAL1_F_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_FINAL1_F_COMPONENT_USAGE_ALPHA              0x00100000
+#define NV20_3D_RC_FINAL1_F_MAPPING__MASK                      0x00e00000
+#define NV20_3D_RC_FINAL1_F_MAPPING__SHIFT                     21
+#define NV20_3D_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT            0x00200000
+#define NV20_3D_RC_FINAL1_F_MAPPING_EXPAND_NORMAL              0x00400000
+#define NV20_3D_RC_FINAL1_F_MAPPING_EXPAND_NEGATE              0x00600000
+#define NV20_3D_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL           0x00800000
+#define NV20_3D_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE           0x00a00000
+#define NV20_3D_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY            0x00c00000
+#define NV20_3D_RC_FINAL1_F_MAPPING_SIGNED_NEGATE              0x00e00000
+#define NV20_3D_RC_FINAL1_E_INPUT__MASK                                0x0f000000
+#define NV20_3D_RC_FINAL1_E_INPUT__SHIFT                       24
+#define NV20_3D_RC_FINAL1_E_INPUT_ZERO                         0x00000000
+#define NV20_3D_RC_FINAL1_E_INPUT_CONSTANT_COLOR0              0x01000000
+#define NV20_3D_RC_FINAL1_E_INPUT_CONSTANT_COLOR1              0x02000000
+#define NV20_3D_RC_FINAL1_E_INPUT_FOG                          0x03000000
+#define NV20_3D_RC_FINAL1_E_INPUT_PRIMARY_COLOR                        0x04000000
+#define NV20_3D_RC_FINAL1_E_INPUT_SECONDARY_COLOR              0x05000000
+#define NV20_3D_RC_FINAL1_E_INPUT_TEXTURE0                     0x08000000
+#define NV20_3D_RC_FINAL1_E_INPUT_TEXTURE1                     0x09000000
+#define NV20_3D_RC_FINAL1_E_INPUT_TEXTURE2                     0x0a000000
+#define NV20_3D_RC_FINAL1_E_INPUT_TEXTURE3                     0x0b000000
+#define NV20_3D_RC_FINAL1_E_INPUT_SPARE0                       0x0c000000
+#define NV20_3D_RC_FINAL1_E_INPUT_SPARE1                       0x0d000000
+#define NV20_3D_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR  0x0e000000
+#define NV20_3D_RC_FINAL1_E_INPUT_E_TIMES_F                    0x0f000000
+#define NV20_3D_RC_FINAL1_E_COMPONENT_USAGE__MASK              0x10000000
+#define NV20_3D_RC_FINAL1_E_COMPONENT_USAGE__SHIFT             28
+#define NV20_3D_RC_FINAL1_E_COMPONENT_USAGE_RGB                        0x00000000
+#define NV20_3D_RC_FINAL1_E_COMPONENT_USAGE_ALPHA              0x10000000
+#define NV20_3D_RC_FINAL1_E_MAPPING__MASK                      0xe0000000
+#define NV20_3D_RC_FINAL1_E_MAPPING__SHIFT                     29
+#define NV20_3D_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY          0x00000000
+#define NV20_3D_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT            0x20000000
+#define NV20_3D_RC_FINAL1_E_MAPPING_EXPAND_NORMAL              0x40000000
+#define NV20_3D_RC_FINAL1_E_MAPPING_EXPAND_NEGATE              0x60000000
+#define NV20_3D_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL           0x80000000
+#define NV20_3D_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE           0xa0000000
+#define NV20_3D_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY            0xc0000000
+#define NV20_3D_RC_FINAL1_E_MAPPING_SIGNED_NEGATE              0xe0000000
+
+#define NV20_3D_RC_COLOR0                                      0x00001e20
+#define NV20_3D_RC_COLOR0_B__MASK                              0x000000ff
+#define NV20_3D_RC_COLOR0_B__SHIFT                             0
+#define NV20_3D_RC_COLOR0_G__MASK                              0x0000ff00
+#define NV20_3D_RC_COLOR0_G__SHIFT                             8
+#define NV20_3D_RC_COLOR0_R__MASK                              0x00ff0000
+#define NV20_3D_RC_COLOR0_R__SHIFT                             16
+#define NV20_3D_RC_COLOR0_A__MASK                              0xff000000
+#define NV20_3D_RC_COLOR0_A__SHIFT                             24
+
+#define NV20_3D_RC_COLOR1                                      0x00001e24
+#define NV20_3D_RC_COLOR1_B__MASK                              0x000000ff
+#define NV20_3D_RC_COLOR1_B__SHIFT                             0
+#define NV20_3D_RC_COLOR1_G__MASK                              0x0000ff00
+#define NV20_3D_RC_COLOR1_G__SHIFT                             8
+#define NV20_3D_RC_COLOR1_R__MASK                              0x00ff0000
+#define NV20_3D_RC_COLOR1_R__SHIFT                             16
+#define NV20_3D_RC_COLOR1_A__MASK                              0xff000000
+#define NV20_3D_RC_COLOR1_A__SHIFT                             24
+
+#define NV20_3D_RC_ENABLE                                      0x00001e60
+#define NV20_3D_RC_ENABLE_NUM_COMBINERS__MASK                  0x0000000f
+#define NV20_3D_RC_ENABLE_NUM_COMBINERS__SHIFT                 0
+
+
+#define NV20_3D_POINT_SIZE                                     0x0000043c
+
+#define NV20_3D_POINT_PARAMETER(i0)                           (0x00000a30 + 0x4*(i0))
+#define NV20_3D_POINT_PARAMETER__ESIZE                         0x00000004
+#define NV20_3D_POINT_PARAMETER__LEN                           0x00000008
+
+#define NV20_3D_POLYGON_STIPPLE_ENABLE                         0x0000147c
+
+#define NV20_3D_POLYGON_STIPPLE_PATTERN(i0)                   (0x00001480 + 0x4*(i0))
+#define NV20_3D_POLYGON_STIPPLE_PATTERN__ESIZE                 0x00000004
+#define NV20_3D_POLYGON_STIPPLE_PATTERN__LEN                   0x00000020
+
+#define NV20_3D_COLOR_LOGIC_OP_ENABLE                          0x000017bc
+
+#define NV20_3D_COLOR_LOGIC_OP_OP                              0x000017c0
+#define NV20_3D_COLOR_LOGIC_OP_OP_CLEAR                                0x00001500
+#define NV20_3D_COLOR_LOGIC_OP_OP_AND                          0x00001501
+#define NV20_3D_COLOR_LOGIC_OP_OP_AND_REVERSE                  0x00001502
+#define NV20_3D_COLOR_LOGIC_OP_OP_COPY                         0x00001503
+#define NV20_3D_COLOR_LOGIC_OP_OP_AND_INVERTED                 0x00001504
+#define NV20_3D_COLOR_LOGIC_OP_OP_NOOP                         0x00001505
+#define NV20_3D_COLOR_LOGIC_OP_OP_XOR                          0x00001506
+#define NV20_3D_COLOR_LOGIC_OP_OP_OR                           0x00001507
+#define NV20_3D_COLOR_LOGIC_OP_OP_NOR                          0x00001508
+#define NV20_3D_COLOR_LOGIC_OP_OP_EQUIV                                0x00001509
+#define NV20_3D_COLOR_LOGIC_OP_OP_INVERT                       0x0000150a
+#define NV20_3D_COLOR_LOGIC_OP_OP_OR_REVERSE                   0x0000150b
+#define NV20_3D_COLOR_LOGIC_OP_OP_COPY_INVERTED                        0x0000150c
+#define NV20_3D_COLOR_LOGIC_OP_OP_OR_INVERTED                  0x0000150d
+#define NV20_3D_COLOR_LOGIC_OP_OP_NAND                         0x0000150e
+#define NV20_3D_COLOR_LOGIC_OP_OP_SET                          0x0000150f
+
+#define NV20_3D_DEPTH_CLAMP                                    0x00001d78
+
+#define NV20_3D_MULTISAMPLE_CONTROL                            0x00001d7c
+
+
+#define NV20_3D_CLEAR_DEPTH_VALUE                              0x00001d8c
+
+#define NV20_3D_CLEAR_VALUE                                    0x00001d90
+
+#define NV20_3D_CLEAR_BUFFERS                                  0x00001d94
+#define NV20_3D_CLEAR_BUFFERS_COLOR_A                          0x00000080
+#define NV20_3D_CLEAR_BUFFERS_COLOR_B                          0x00000040
+#define NV20_3D_CLEAR_BUFFERS_COLOR_G                          0x00000020
+#define NV20_3D_CLEAR_BUFFERS_COLOR_R                          0x00000010
+#define NV20_3D_CLEAR_BUFFERS_STENCIL                          0x00000002
+#define NV20_3D_CLEAR_BUFFERS_DEPTH                            0x00000001
+
+
+#define NV25_3D_DMA_HIERZ                                      0x000001b0
+
+#define NV25_3D_HIERZ_PITCH                                    0x0000022c
+
+#define NV25_3D_HIERZ_OFFSET                                   0x00000230
+
+#define NV20_3D_UNK09F8                                                0x000009f8
+
+#define NV20_3D_UNK09FC                                                0x000009fc
+
+#define NV20_3D_UNK17CC                                                0x000017cc
+
+#define NV20_3D_UNK17E0                                                0x000017e0
+
+#define NV20_3D_UNK17E4                                                0x000017e4
+
+#define NV20_3D_UNK17E8                                                0x000017e8
+
+#define NV20_3D_UNK17EC                                                0x000017ec
+
+#define NV20_3D_UNK17F0                                                0x000017f0
+
+#define NV20_3D_UNK17F4                                                0x000017f4
+
+#define NV20_3D_UNK1D80                                                0x00001d80
+
+#define NV20_3D_UNK1D84                                                0x00001d84
+
+#define NV20_3D_UNK1E68                                                0x00001e68
+
+#define NV20_3D_UNK1E98                                                0x00001e98
+
+
+#define NV25_3D_UNK01AC                                                0x000001ac
+
+#define NV25_3D_UNK0A1C                                                0x00000a1c
+
+#define NV25_3D_UNK1D88                                                0x00001d88
+
+#define NV25_3D_UNK1DA4                                                0x00001da4
+
+
+#endif /* NV20_3D_XML */
diff --git a/src/mesa/drivers/dri/nouveau/nv_m2mf.xml.h b/src/mesa/drivers/dri/nouveau/nv_m2mf.xml.h
new file mode 100644 (file)
index 0000000..e370a1c
--- /dev/null
@@ -0,0 +1,155 @@
+#ifndef NV_M2MF_XML
+#define NV_M2MF_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:
+- nv_m2mf.xml    (   2710 bytes, from 2010-11-01 00:28:46)
+- copyright.xml  (   6452 bytes, from 2010-11-15 15:10:58)
+- nv_object.xml  (  11547 bytes, from 2010-11-13 23:32:57)
+- nvchipsets.xml (   3074 bytes, from 2010-11-13 23:32:57)
+- nv_defs.xml    (   4437 bytes, from 2010-11-01 00:28:46)
+
+Copyright (C) 2006-2010 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 NV04_M2MF_DMA_NOTIFY                                   0x00000180
+
+#define NV04_M2MF_DMA_BUFFER_IN                                        0x00000184
+
+#define NV04_M2MF_DMA_BUFFER_OUT                               0x00000188
+
+
+#define NV50_M2MF_LINEAR_IN                                    0x00000200
+
+#define NV50_M2MF_TILING_MODE_IN                               0x00000204
+
+#define NV50_M2MF_TILING_PITCH_IN                              0x00000208
+
+#define NV50_M2MF_TILING_HEIGHT_IN                             0x0000020c
+
+#define NV50_M2MF_TILING_DEPTH_IN                              0x00000210
+
+#define NV50_M2MF_TILING_POSITION_IN_Z                         0x00000214
+
+#define NV50_M2MF_TILING_POSITION_IN                           0x00000218
+#define NV50_M2MF_TILING_POSITION_IN_X__MASK                   0x0000ffff
+#define NV50_M2MF_TILING_POSITION_IN_X__SHIFT                  0
+#define NV50_M2MF_TILING_POSITION_IN_Y__MASK                   0xffff0000
+#define NV50_M2MF_TILING_POSITION_IN_Y__SHIFT                  16
+
+#define NV50_M2MF_LINEAR_OUT                                   0x0000021c
+
+#define NV50_M2MF_TILING_MODE_OUT                              0x00000220
+
+#define NV50_M2MF_TILING_PITCH_OUT                             0x00000224
+
+#define NV50_M2MF_TILING_HEIGHT_OUT                            0x00000228
+
+#define NV50_M2MF_TILING_DEPTH_OUT                             0x0000022c
+
+#define NV50_M2MF_TILING_POSITION_OUT_Z                                0x00000230
+
+#define NV50_M2MF_TILING_POSITION_OUT                          0x00000234
+#define NV50_M2MF_TILING_POSITION_OUT_X__MASK                  0x0000ffff
+#define NV50_M2MF_TILING_POSITION_OUT_X__SHIFT                 0
+#define NV50_M2MF_TILING_POSITION_OUT_Y__MASK                  0xffff0000
+#define NV50_M2MF_TILING_POSITION_OUT_Y__SHIFT                 16
+
+#define NV50_M2MF_OFFSET_IN_HIGH                               0x00000238
+
+#define NV50_M2MF_OFFSET_OUT_HIGH                              0x0000023c
+
+#define NV04_M2MF_OFFSET_IN                                    0x0000030c
+
+#define NV04_M2MF_OFFSET_OUT                                   0x00000310
+
+#define NV04_M2MF_PITCH_IN                                     0x00000314
+
+#define NV04_M2MF_PITCH_OUT                                    0x00000318
+
+#define NV04_M2MF_LINE_LENGTH_IN                               0x0000031c
+
+#define NV04_M2MF_LINE_COUNT                                   0x00000320
+
+#define NV04_M2MF_FORMAT                                       0x00000324
+#define NV04_M2MF_FORMAT_INPUT_INC__MASK                       0x000000ff
+#define NV04_M2MF_FORMAT_INPUT_INC__SHIFT                      0
+#define NV04_M2MF_FORMAT_INPUT_INC_1                           0x00000001
+#define NV04_M2MF_FORMAT_INPUT_INC_2                           0x00000002
+#define NV04_M2MF_FORMAT_INPUT_INC_4                           0x00000004
+#define NV50_M2MF_FORMAT_INPUT_INC_8                           0x00000008
+#define NV50_M2MF_FORMAT_INPUT_INC_16                          0x00000010
+#define NV04_M2MF_FORMAT_OUTPUT_INC__MASK                      0x0000ff00
+#define NV04_M2MF_FORMAT_OUTPUT_INC__SHIFT                     8
+#define NV04_M2MF_FORMAT_OUTPUT_INC_1                          0x00000100
+#define NV04_M2MF_FORMAT_OUTPUT_INC_2                          0x00000200
+#define NV04_M2MF_FORMAT_OUTPUT_INC_4                          0x00000400
+#define NV50_M2MF_FORMAT_OUTPUT_INC_8                          0x00000800
+#define NV50_M2MF_FORMAT_OUTPUT_INC_16                         0x00001000
+
+#define NV04_M2MF_BUF_NOTIFY                                   0x00000328
+
+
+#endif /* NV_M2MF_XML */
diff --git a/src/mesa/drivers/dri/nouveau/nv_object.xml.h b/src/mesa/drivers/dri/nouveau/nv_object.xml.h
new file mode 100644 (file)
index 0000000..d5ed4bc
--- /dev/null
@@ -0,0 +1,268 @@
+#ifndef NV_OBJECT_XML
+#define NV_OBJECT_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:
+- nv_object.xml  (  11547 bytes, from 2010-11-13 23:32:57)
+- copyright.xml  (   6452 bytes, from 2010-11-15 15:10:58)
+- nvchipsets.xml (   3074 bytes, from 2010-11-13 23:32:57)
+- nv_defs.xml    (   4437 bytes, from 2010-11-01 00:28:46)
+
+Copyright (C) 2006-2010 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_ROOT                                              0x00000001
+#define NV01_CONTEXT_DMA                                       0x00000002
+#define NV01_DEVICE                                            0x00000003
+#define NV01_TIMER                                             0x00000004
+#define NV01_NULL                                              0x00000030
+#define NV01_MEMORY_LOCAL_BANKED                               0x0000003d
+#define NV01_MAPPING_SYSTEM                                    0x0000003e
+#define NV03_MEMORY_LOCAL_CURSOR                               0x0000003f
+#define NV01_MEMORY_LOCAL_LINEAR                               0x00000040
+#define NV01_MAPPING_LOCAL                                     0x00000041
+#define NV03_VIDEO_LUT_CURSOR_DAC                              0x00000046
+#define NV03_CHANNEL_PIO                                       0x0000006a
+#define NV03_CHANNEL_DMA                                       0x0000006b
+#define NV10_VIDEO_DISPLAY                                     0x0000007c
+#define NV01_CONTEXT_BETA1                                     0x00000012
+#define NV04_BETA_SOLID                                                0x00000072
+#define NV01_CONTEXT_COLOR_KEY                                 0x00000017
+#define NV04_CONTEXT_COLOR_KEY                                 0x00000057
+#define NV01_CONTEXT_PATTERN                                   0x00000018
+#define NV01_CONTEXT_CLIP_RECTANGLE                            0x00000019
+#define NV03_CONTEXT_ROP                                       0x00000043
+#define NV04_IMAGE_PATTERN                                     0x00000044
+#define NV01_RENDER_SOLID_LINE                                 0x0000001c
+#define NV04_RENDER_SOLID_LINE                                 0x0000005c
+#define NV30_RENDER_SOLID_LINE                                 0x0000035c
+#define NV40_RENDER_SOLID_LINE                                 0x0000305c
+#define NV01_RENDER_SOLID_TRIANGLE                             0x0000001d
+#define NV04_RENDER_SOLID_TRIANGLE                             0x0000005d
+#define NV01_RENDER_SOLID_RECTANGLE                            0x0000001e
+#define NV04_RENDER_SOLID_RECTANGLE                            0x0000005e
+#define NV01_IMAGE_BLIT                                                0x0000001f
+#define NV04_IMAGE_BLIT                                                0x0000005f
+#define NV11_IMAGE_BLIT                                                0x0000009f
+#define NV01_IMAGE_FROM_CPU                                    0x00000021
+#define NV04_IMAGE_FROM_CPU                                    0x00000061
+#define NV05_IMAGE_FROM_CPU                                    0x00000065
+#define NV10_IMAGE_FROM_CPU                                    0x0000008a
+#define NV30_IMAGE_FROM_CPU                                    0x0000038a
+#define NV40_IMAGE_FROM_CPU                                    0x0000308a
+#define NV03_STRETCHED_IMAGE_FROM_CPU                          0x00000036
+#define NV04_STRETCHED_IMAGE_FROM_CPU                          0x00000076
+#define NV05_STRETCHED_IMAGE_FROM_CPU                          0x00000066
+#define NV30_STRETCHED_IMAGE_FROM_CPU                          0x00000366
+#define NV40_STRETCHED_IMAGE_FROM_CPU                          0x00003066
+#define NV03_SCALED_IMAGE_FROM_MEMORY                          0x00000037
+#define NV04_SCALED_IMAGE_FROM_MEMORY                          0x00000077
+#define NV05_SCALED_IMAGE_FROM_MEMORY                          0x00000063
+#define NV10_SCALED_IMAGE_FROM_MEMORY                          0x00000089
+#define NV30_SCALED_IMAGE_FROM_MEMORY                          0x00000389
+#define NV40_SCALED_IMAGE_FROM_MEMORY                          0x00003089
+#define NV50_SCALED_IMAGE_FROM_MEMORY                          0x00005089
+#define NV04_DVD_SUBPICTURE                                    0x00000038
+#define NV10_DVD_SUBPICTURE                                    0x00000088
+#define NV03_GDI_RECTANGLE_TEXT                                        0x0000004b
+#define NV04_GDI_RECTANGLE_TEXT                                        0x0000004a
+#define NV04_SWIZZLED_SURFACE                                  0x00000052
+#define NV20_SWIZZLED_SURFACE                                  0x0000009e
+#define NV30_SWIZZLED_SURFACE                                  0x0000039e
+#define NV40_SWIZZLED_SURFACE                                  0x0000309e
+#define NV03_CONTEXT_SURFACE_DST                               0x00000058
+#define NV03_CONTEXT_SURFACE_SRC                               0x00000059
+#define NV04_CONTEXT_SURFACES_2D                               0x00000042
+#define NV10_CONTEXT_SURFACES_2D                               0x00000062
+#define NV30_CONTEXT_SURFACES_2D                               0x00000362
+#define NV40_CONTEXT_SURFACES_2D                               0x00003062
+#define NV50_CONTEXT_SURFACES_2D                               0x00005062
+#define NV04_INDEXED_IMAGE_FROM_CPU                            0x00000060
+#define NV05_INDEXED_IMAGE_FROM_CPU                            0x00000064
+#define NV30_INDEXED_IMAGE_FROM_CPU                            0x00000364
+#define NV40_INDEXED_IMAGE_FROM_CPU                            0x00003064
+#define NV10_TEXTURE_FROM_CPU                                  0x0000007b
+#define NV30_TEXTURE_FROM_CPU                                  0x0000037b
+#define NV40_TEXTURE_FROM_CPU                                  0x0000307b
+#define NV04_M2MF                                              0x00000039
+#define NV50_M2MF                                              0x00005039
+#define NVC0_M2MF                                              0x00009039
+#define NV03_TEXTURED_TRIANGLE                                 0x00000048
+#define NV04_TEXTURED_TRIANGLE                                 0x00000054
+#define NV10_TEXTURED_TRIANGLE                                 0x00000094
+#define NV04_MULTITEX_TRIANGLE                                 0x00000055
+#define NV10_MULTITEX_TRIANGLE                                 0x00000095
+#define NV03_CONTEXT_SURFACE_COLOR                             0x0000005a
+#define NV03_CONTEXT_SURFACE_ZETA                              0x0000005b
+#define NV04_CONTEXT_SURFACES_3D                               0x00000053
+#define NV10_CONTEXT_SURFACES_3D                               0x00000093
+#define NV10_3D                                                        0x00000056
+#define NV11_3D                                                        0x00000096
+#define NV17_3D                                                        0x00000099
+#define NV20_3D                                                        0x00000097
+#define NV25_3D                                                        0x00000597
+#define NV30_3D                                                        0x00000397
+#define NV35_3D                                                        0x00000497
+#define NV34_3D                                                        0x00000697
+#define NV40_3D                                                        0x00004097
+#define NV44_3D                                                        0x00004497
+#define NV50_3D                                                        0x00005097
+#define NV84_3D                                                        0x00008297
+#define NVA0_3D                                                        0x00008397
+#define NVA3_3D                                                        0x00008597
+#define NVAF_3D                                                        0x00008697
+#define NVC0_3D                                                        0x00009097
+#define NV50_2D                                                        0x0000502d
+#define NVC0_2D                                                        0x0000902d
+#define NV50_COMPUTE                                           0x000050c0
+#define NVA3_COMPUTE                                           0x000085c0
+#define NVC0_COMPUTE                                           0x000090c0
+#define NV84_CRYPT                                             0x000074c1
+#define NV01_SUBCHAN__SIZE                                     0x00002000
+#define NV01_SUBCHAN                                           0x00000000
+
+#define NV01_SUBCHAN_OBJECT                                    0x00000000
+
+
+#define NV84_SUBCHAN_QUERY_ADDRESS_HIGH                                0x00000010
+
+#define NV84_SUBCHAN_QUERY_ADDRESS_LOW                         0x00000014
+
+#define NV84_SUBCHAN_QUERY_COUNTER                             0x00000018
+
+#define NV84_SUBCHAN_QUERY_GET                                 0x0000001c
+
+#define NV84_SUBCHAN_QUERY_INTR                                        0x00000020
+
+#define NV84_SUBCHAN_WRCACHE_FLUSH                             0x00000024
+
+#define NV10_SUBCHAN_REF_CNT                                   0x00000050
+
+
+#define NV11_SUBCHAN_DMA_SEMAPHORE                             0x00000060
+
+#define NV11_SUBCHAN_SEMAPHORE_OFFSET                          0x00000064
+
+#define NV11_SUBCHAN_SEMAPHORE_ACQUIRE                         0x00000068
+
+#define NV11_SUBCHAN_SEMAPHORE_RELEASE                         0x0000006c
+
+#define NV40_SUBCHAN_YIELD                                     0x00000080
+
+#define NV01_GRAPH                                             0x00000000
+
+#define NV04_GRAPH_NOP                                         0x00000100
+
+#define NV01_GRAPH_NOTIFY                                      0x00000104
+#define NV01_GRAPH_NOTIFY_WRITE                                        0x00000000
+#define NV01_GRAPH_NOTIFY_WRITE_AND_AWAKEN                     0x00000001
+
+#define NV50_GRAPH_WAIT_FOR_IDLE                               0x00000110
+
+#define NVA3_GRAPH_UNK0120                                     0x00000120
+
+#define NVA3_GRAPH_UNK0124                                     0x00000124
+
+#define NV40_GRAPH_PM_TRIGGER                                  0x00000140
+
+#define NVC0_SUBCHAN__SIZE                                     0x00008000
+#define NVC0_SUBCHAN                                           0x00000000
+
+#define NVC0_SUBCHAN_OBJECT                                    0x00000000
+
+
+#define NVC0_SUBCHAN_QUERY_ADDRESS_HIGH                                0x00000010
+
+#define NVC0_SUBCHAN_QUERY_ADDRESS_LOW                         0x00000014
+
+#define NVC0_SUBCHAN_QUERY_SEQUENCE                            0x00000018
+
+#define NVC0_SUBCHAN_QUERY_GET                                 0x0000001c
+
+#define NVC0_SUBCHAN_REF_CNT                                   0x00000050
+
+#define NVC0_GRAPH                                             0x00000000
+
+#define NVC0_GRAPH_NOP                                         0x00000100
+
+#define NVC0_GRAPH_NOTIFY_ADDRESS_HIGH                         0x00000104
+
+#define NVC0_GRAPH_NOTIFY_ADDRESS_LOW                          0x00000108
+
+#define NVC0_GRAPH_NOTIFY                                      0x0000010c
+#define NVC0_GRAPH_NOTIFY_WRITE                                        0x00000000
+#define NVC0_GRAPH_NOTIFY_WRITE_AND_AWAKEN                     0x00000001
+
+#define NVC0_GRAPH_SERIALIZE                                   0x00000110
+
+#define NVC0_GRAPH_MACRO_UPLOAD_POS                            0x00000114
+
+#define NVC0_GRAPH_MACRO_UPLOAD_DATA                           0x00000118
+
+#define NVC0_GRAPH_MACRO_ID                                    0x0000011c
+
+#define NVC0_GRAPH_MACRO_POS                                   0x00000120
+
+
+#endif /* NV_OBJECT_XML */