nvc0: fix wrong indentation in nvc0_validate_fb()
[mesa.git] / src / gallium / drivers / nouveau / nvc0 / nvc0_3d.xml.h
index 94b447b088fe748b300473332619706a780d689d..1be595223174435a7aa95ceb3aee14c4f63ac575 100644 (file)
@@ -4,19 +4,20 @@
 /* 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
+http://github.com/envytools/envytools/
+git clone https://github.com/envytools/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- nvc0_3d.xml    (  30827 bytes, from 2011-01-13 18:23:07)
-- copyright.xml  (   6452 bytes, from 2010-11-25 23:28:20)
-- nv_defs.xml    (   4437 bytes, from 2010-07-06 07:43:58)
-- nv_3ddefs.xml  (  16394 bytes, from 2010-12-17 15:10:40)
-- nv_object.xml  (  11898 bytes, from 2010-12-23 14:14:20)
-- nvchipsets.xml (   3074 bytes, from 2010-11-07 00:36:28)
-- nv50_defs.xml  (   4487 bytes, from 2010-12-10 00:37:17)
-
-Copyright (C) 2006-2011 by the following authors:
+- rnndb/graph/gf100_3d.xml   (  59971 bytes, from 2014-09-26 00:01:33)
+- rnndb/copyright.xml        (   6456 bytes, from 2014-12-31 02:13:31)
+- rnndb/nv_defs.xml          (   4399 bytes, from 2013-09-07 03:32:45)
+- rnndb/graph/nv_3ddefs.xml  (  16390 bytes, from 2014-09-25 06:32:11)
+- rnndb/fifo/nv_object.xml   (  15326 bytes, from 2014-09-25 06:32:11)
+- rnndb/nvchipsets.xml       (   2759 bytes, from 2014-10-05 01:51:02)
+- rnndb/g80_defs.xml         (  18175 bytes, from 2014-09-25 06:32:11)
+- rnndb/graph/gk104_p2mf.xml (   2376 bytes, from 2014-09-25 06:32:11)
+
+Copyright (C) 2006-2014 by the following authors:
 - Artur Huillet <arthur.huillet@free.fr> (ahuillet)
 - Ben Skeggs (darktama, darktama_)
 - B. R. <koala_br@users.sourceforge.net> (koala_br)
@@ -28,7 +29,7 @@ Copyright (C) 2006-2011 by the following authors:
 - 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)
+- Ilia Mirkin <imirkin@alum.mit.edu> (imirkin)
 - jb17bsome <jb17bsome@bellsouth.net> (jb17bsome)
 - Jeremy Kolb <kjeremy@users.sf.net> (kjeremy)
 - Laurent Carlier <lordheavym@gmail.com> (lordheavy)
@@ -76,16 +77,74 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
 
-#define NVC0_3D_NOTIFY_ADDRESS_HIGH                            0x00000104
-#define NVC0_3D_NOTIFY_ADDRESS_LOW                             0x00000108
-#define NVC0_3D_NOTIFY                                         0x0000010c
 
-#define NVC0_3D_SERIALIZE                                      0x00000110
+
+#define NVE4_3D_UNK0144                                        0x00000144
+
+#define NVE4_3D_UPLOAD                                         0x00000000
+
+#define NVE4_3D_UPLOAD_LINE_LENGTH_IN                          0x00000180
+
+#define NVE4_3D_UPLOAD_LINE_COUNT                              0x00000184
+
+#define NVE4_3D_UPLOAD_DST_ADDRESS_HIGH                        0x00000188
+
+#define NVE4_3D_UPLOAD_DST_ADDRESS_LOW                         0x0000018c
+
+#define NVE4_3D_UPLOAD_DST_PITCH                               0x00000190
+
+#define NVE4_3D_UPLOAD_DST_TILE_MODE                           0x00000194
+
+#define NVE4_3D_UPLOAD_DST_WIDTH                               0x00000198
+
+#define NVE4_3D_UPLOAD_DST_HEIGHT                              0x0000019c
+
+#define NVE4_3D_UPLOAD_DST_DEPTH                               0x000001a0
+
+#define NVE4_3D_UPLOAD_DST_Z                                   0x000001a4
+
+#define NVE4_3D_UPLOAD_DST_X                                   0x000001a8
+
+#define NVE4_3D_UPLOAD_DST_Y                                   0x000001ac
+
+#define NVE4_3D_UPLOAD_EXEC                                    0x000001b0
+#define NVE4_3D_UPLOAD_EXEC_LINEAR                             0x00000001
+#define NVE4_3D_UPLOAD_EXEC_UNK1__MASK                         0x0000007e
+#define NVE4_3D_UPLOAD_EXEC_UNK1__SHIFT                        1
+#define NVE4_3D_UPLOAD_EXEC_BUF_NOTIFY                         0x00000300
+#define NVE4_3D_UPLOAD_EXEC_UNK12__MASK                        0x0000f000
+#define NVE4_3D_UPLOAD_EXEC_UNK12__SHIFT                       12
+
+#define NVE4_3D_UPLOAD_DATA                                    0x000001b4
+
+#define NVE4_3D_UPLOAD_QUERY_ADDRESS_HIGH                      0x000001dc
+
+#define NVE4_3D_UPLOAD_QUERY_ADDRESS_LOW                       0x000001e0
+
+#define NVE4_3D_UPLOAD_QUERY_SEQUENCE                          0x000001e4
+
+#define NVE4_3D_UPLOAD_UNK01F0                                 0x000001f0
+
+#define NVE4_3D_UPLOAD_UNK01F4                                 0x000001f4
+
+#define NVE4_3D_UPLOAD_UNK01F8                                 0x000001f8
+
+#define NVE4_3D_UPLOAD_UNK01FC                                 0x000001fc
+
+#define NVC0_3D_UNK200                                         0x00000200
+
+#define NVC0_3D_UNK204                                         0x00000204
+
+#define NVC0_3D_UNK208                                         0x00000208
 
 #define NVC0_3D_LINE_WIDTH_SEPARATE                            0x0000020c
 
 #define NVC0_3D_FORCE_EARLY_FRAGMENT_TESTS                     0x00000210
 
+#define NVC0_3D_UNK214                                         0x00000214
+
+#define NVC0_3D_UNK218                                         0x00000218
+
 #define NVC0_3D_MEM_BARRIER                                    0x0000021c
 #define NVC0_3D_MEM_BARRIER_UNK0                               0x00000001
 #define NVC0_3D_MEM_BARRIER_UNK1                               0x00000002
@@ -94,36 +153,114 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_MEM_BARRIER_UNK8                               0x00000100
 #define NVC0_3D_MEM_BARRIER_UNK12                              0x00001000
 
+#define NVC0_3D_UNK0220(i0)                                   (0x00000220 + 0x4*(i0))
+#define NVC0_3D_UNK0220__ESIZE                                 0x00000004
+#define NVC0_3D_UNK0220__LEN                                   0x00000028
+
+#define NVC0_3D_UNK02C0                                        0x000002c0
+
+#define NVC0_3D_UNK02C4                                        0x000002c4
+
+#define NVC0_3D_GLOBAL_BASE                                    0x000002c8
+#define NVC0_3D_GLOBAL_BASE_HIGH__MASK                         0x000000ff
+#define NVC0_3D_GLOBAL_BASE_HIGH__SHIFT                        0
+#define NVC0_3D_GLOBAL_BASE_INDEX__MASK                        0x00ff0000
+#define NVC0_3D_GLOBAL_BASE_INDEX__SHIFT                       16
+#define NVC0_3D_GLOBAL_BASE_READ_OK                            0x40000000
+#define NVC0_3D_GLOBAL_BASE_WRITE_OK                           0x80000000
+
+#define NVC0_3D_UNK02CC                                        0x000002cc
+
+#define NVC0_3D_UNK02D0                                        0x000002d0
+
+#define NVC0_3D_UNK02D4                                        0x000002d4
+
+#define NVC0_3D_UNK02D8                                        0x000002d8
+
+#define NVC8_3D_UNK02E0                                        0x000002e0
+
+#define NVC1_3D_UNK02E4                                        0x000002e4
+#define NVC1_3D_UNK02E4_UNK0                                   0x00000001
+#define NVC1_3D_UNK02E4_UNK4                                   0x00000010
+#define NVC1_3D_UNK02E4_UNK8                                   0x00000100
+#define NVC1_3D_UNK02E4_UNK12__MASK                            0x0000f000
+#define NVC1_3D_UNK02E4_UNK12__SHIFT                           12
+
+#define NVC8_3D_UNK02E8                                        0x000002e8
+
+#define NVC0_3D_UNK02EC                                        0x000002ec
+#define NVC0_3D_UNK02EC_UNK0                                   0x00000001
+#define NVC0_3D_UNK02EC_UNK4__MASK                             0x00000ff0
+#define NVC0_3D_UNK02EC_UNK4__SHIFT                            4
+
+#define NVC8_3D_UNK02F8                                        0x000002f8
+
+#define NVC8_3D_UNK02FC                                        0x000002fc
+
+#define NVC0_3D_UNK0300                                        0x00000300
+
+#define NVC0_3D_UNK0304                                        0x00000304
+
 #define NVC0_3D_CACHE_SPLIT                                    0x00000308
 #define NVC1_3D_CACHE_SPLIT_16K_SHARED_48K_L1                  0x00000001
 #define NVE4_3D_CACHE_SPLIT_32K_SHARED_32K_L1                  0x00000002
 #define NVC0_3D_CACHE_SPLIT_48K_SHARED_16K_L1                  0x00000003
 
+#define NVC0_3D_UNK030C                                        0x0000030c
+
+#define NVC0_3D_UNK0310                                        0x00000310
+
+#define NVE4_3D_UNK0310                                        0x00000310
+
+#define NVC0_3D_UNK0314                                        0x00000314
+
+#define NVC0_3D_UNK0318                                        0x00000318
+
+#define NVC0_3D_UNK031C                                        0x0000031c
+
 #define NVC0_3D_TESS_MODE                                      0x00000320
-#define NVC0_3D_TESS_MODE_PRIM__MASK                           0x0000000f
+#define NVC0_3D_TESS_MODE_PRIM__MASK                           0x00000003
 #define NVC0_3D_TESS_MODE_PRIM__SHIFT                          0
-#define NVC0_3D_TESS_MODE_PRIM_ISOLINES                                0x00000000
+#define NVC0_3D_TESS_MODE_PRIM_ISOLINES                        0x00000000
 #define NVC0_3D_TESS_MODE_PRIM_TRIANGLES                       0x00000001
 #define NVC0_3D_TESS_MODE_PRIM_QUADS                           0x00000002
-#define NVC0_3D_TESS_MODE_SPACING__MASK                                0x000000f0
+#define NVC0_3D_TESS_MODE_SPACING__MASK                        0x00000030
 #define NVC0_3D_TESS_MODE_SPACING__SHIFT                       4
-#define NVC0_3D_TESS_MODE_SPACING_EQUAL                                0x00000000
+#define NVC0_3D_TESS_MODE_SPACING_EQUAL                        0x00000000
 #define NVC0_3D_TESS_MODE_SPACING_FRACTIONAL_ODD               0x00000010
 #define NVC0_3D_TESS_MODE_SPACING_FRACTIONAL_EVEN              0x00000020
 #define NVC0_3D_TESS_MODE_CW                                   0x00000100
 #define NVC0_3D_TESS_MODE_CONNECTED                            0x00000200
 
 #define NVC0_3D_TESS_LEVEL_OUTER(i0)                          (0x00000324 + 0x4*(i0))
-#define NVC0_3D_TESS_LEVEL_OUTER__ESIZE                                0x00000004
+#define NVC0_3D_TESS_LEVEL_OUTER__ESIZE                        0x00000004
 #define NVC0_3D_TESS_LEVEL_OUTER__LEN                          0x00000004
 
 #define NVC0_3D_TESS_LEVEL_INNER(i0)                          (0x00000334 + 0x4*(i0))
-#define NVC0_3D_TESS_LEVEL_INNER__ESIZE                                0x00000004
+#define NVC0_3D_TESS_LEVEL_INNER__ESIZE                        0x00000004
 #define NVC0_3D_TESS_LEVEL_INNER__LEN                          0x00000002
 
+#define NVC0_3D_UNK033C(i0)                                   (0x0000033c + 0x4*(i0))
+#define NVC0_3D_UNK033C__ESIZE                                 0x00000004
+#define NVC0_3D_UNK033C__LEN                                   0x00000009
+
+#define NVC0_3D_UNK0360                                        0x00000360
+
+#define NVC0_3D_UNK0364                                        0x00000364
+
+#define NVC0_3D_UNK0368                                        0x00000368
+
+#define NVC8_3D_UNK036C                                        0x0000036c
+
+#define NVC8_3D_UNK0370                                        0x00000370
+
+#define NVC8_3D_UNK0374                                        0x00000374
+
+#define NVC8_3D_UNK0378                                        0x00000378
+
 #define NVC0_3D_RASTERIZE_ENABLE                               0x0000037c
 
-#define NVC0_3D_TFB(i0)                                               (0x00000380 + 0x20*(i0))
+#define NVC0_3D_TFB(i0)                                       (0x00000380 + 0x20*(i0))
 #define NVC0_3D_TFB__ESIZE                                     0x00000020
 #define NVC0_3D_TFB__LEN                                       0x00000004
 
@@ -137,9 +274,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_TFB_BUFFER_OFFSET(i0)                         (0x00000390 + 0x20*(i0))
 
+#define NVC0_3D_UNK0400(i0)                                   (0x00000400 + 0x4*(i0))
+#define NVC0_3D_UNK0400__ESIZE                                 0x00000004
+#define NVC0_3D_UNK0400__LEN                                   0x000000c0
+
 #define NVC0_3D_TFB_STREAM(i0)                                (0x00000700 + 0x10*(i0))
 #define NVC0_3D_TFB_STREAM__ESIZE                              0x00000010
-#define NVC0_3D_TFB_STREAM__LEN                                        0x00000004
+#define NVC0_3D_TFB_STREAM__LEN                                0x00000004
 
 #define NVC0_3D_TFB_VARYING_COUNT(i0)                         (0x00000704 + 0x10*(i0))
 #define NVC0_3D_TFB_VARYING_COUNT__ESIZE                       0x00000010
@@ -149,15 +290,45 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_TFB_BUFFER_STRIDE__ESIZE                       0x00000010
 #define NVC0_3D_TFB_BUFFER_STRIDE__LEN                         0x00000004
 
+#define NVC0_3D_UNK0740                                        0x00000740
+
 #define NVC0_3D_TFB_ENABLE                                     0x00000744
 
+#define NVC0_3D_UNK0748                                        0x00000748
+
+#define NVC0_3D_UNK074C                                        0x0000074c
+
+#define NVC0_3D_UNK0750                                        0x00000750
+
 #define NVC0_3D_SAMPLE_SHADING                                 0x00000754
 #define NVC0_3D_SAMPLE_SHADING_MIN_SAMPLES__MASK               0x0000000f
 #define NVC0_3D_SAMPLE_SHADING_MIN_SAMPLES__SHIFT              0
 #define NVC0_3D_SAMPLE_SHADING_ENABLE                          0x00000010
 
+#define NVC0_3D_UNK075C                                        0x0000075c
+
+#define NVC0_3D_UNK0760(i0)                                   (0x00000760 + 0x4*(i0))
+#define NVC0_3D_UNK0760__ESIZE                                 0x00000004
+#define NVC0_3D_UNK0760__LEN                                   0x00000004
+
+#define NVC0_3D_UNK0770(i0)                                   (0x00000770 + 0x4*(i0))
+#define NVC0_3D_UNK0770__ESIZE                                 0x00000004
+#define NVC0_3D_UNK0770__LEN                                   0x00000003
+#define NVC0_3D_UNK0770_UNK4__MASK                             0x000000f0
+#define NVC0_3D_UNK0770_UNK4__SHIFT                            4
+#define NVC0_3D_UNK0770_UNK12__MASK                            0x0000f000
+#define NVC0_3D_UNK0770_UNK12__SHIFT                           12
+#define NVC0_3D_UNK0770_UNK20__MASK                            0x00f00000
+#define NVC0_3D_UNK0770_UNK20__SHIFT                           20
+#define NVC0_3D_UNK0770_UNK28__MASK                            0xf0000000
+#define NVC0_3D_UNK0770_UNK28__SHIFT                           28
+
 #define NVC0_3D_LOCAL_BASE                                     0x0000077c
 
+#define NVC0_3D_UNK0780(i0)                                   (0x00000780 + 0x4*(i0))
+#define NVC0_3D_UNK0780__ESIZE                                 0x00000004
+#define NVC0_3D_UNK0780__LEN                                   0x00000004
+
 #define NVC0_3D_TEMP_ADDRESS_HIGH                              0x00000790
 
 #define NVC0_3D_TEMP_ADDRESS_LOW                               0x00000794
@@ -166,23 +337,61 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_TEMP_SIZE_LOW                                  0x0000079c
 
-#define NVC0_3D_WARP_TEMP_ALLOC                                        0x000007a0
+#define NVC0_3D_WARP_TEMP_ALLOC                                0x000007a0
+
+#define NVC8_3D_UNK07A4(i0)                                   (0x000007a4 + 0x4*(i0))
+#define NVC8_3D_UNK07A4__ESIZE                                 0x00000004
+#define NVC8_3D_UNK07A4__LEN                                   0x00000002
+
+#define NVE4_3D_UNK07AC                                        0x000007ac
+
+#define NVC0_3D_UNK07B0(i0)                                   (0x000007b0 + 0x4*(i0))
+#define NVC0_3D_UNK07B0__ESIZE                                 0x00000004
+#define NVC0_3D_UNK07B0__LEN                                   0x00000004
 
 #define NVC0_3D_ZCULL_WIDTH                                    0x000007c0
 
 #define NVC0_3D_ZCULL_HEIGHT                                   0x000007c4
 
+#define NVC0_3D_ZCULL_UNK07C8                                  0x000007c8
+
+#define NVC0_3D_ZCULL_UNK07CC                                  0x000007cc
+
+#define NVC0_3D_UNK07D0(i0)                                   (0x000007d0 + 0x4*(i0))
+#define NVC0_3D_UNK07D0__ESIZE                                 0x00000004
+#define NVC0_3D_UNK07D0__LEN                                   0x00000003
+#define NVC0_3D_UNK07D0_UNK4__MASK                             0x000000f0
+#define NVC0_3D_UNK07D0_UNK4__SHIFT                            4
+#define NVC0_3D_UNK07D0_UNK12__MASK                            0x0000f000
+#define NVC0_3D_UNK07D0_UNK12__SHIFT                           12
+#define NVC0_3D_UNK07D0_UNK20__MASK                            0x00f00000
+#define NVC0_3D_UNK07D0_UNK20__SHIFT                           20
+#define NVC0_3D_UNK07D0_UNK28__MASK                            0xf0000000
+#define NVC0_3D_UNK07D0_UNK28__SHIFT                           28
+
+#define NVC0_3D_UNK07DC                                        0x000007dc
+
+#define NVC0_3D_UNK07E0                                        0x000007e0
+
+#define NVC0_3D_UNK07E4                                        0x000007e4
+
 #define NVC0_3D_ZCULL_ADDRESS_HIGH                             0x000007e8
 
 #define NVC0_3D_ZCULL_ADDRESS_LOW                              0x000007ec
 
 #define NVC0_3D_ZCULL_LIMIT_HIGH                               0x000007f0
 
-#define NVC0_3D_ZCULL_LIMIT_LOW                                        0x000007f4
+#define NVC0_3D_ZCULL_LIMIT_LOW                                0x000007f4
+
+#define NVC0_3D_UNK07F8                                        0x000007f8
+#define NVC0_3D_UNK07F8_UNK0                                   0x00000001
+#define NVC0_3D_UNK07F8_UNK1                                   0x00000010
+
+#define NVE4_3D_UNK07FC                                        0x000007fc
 
 #define NVC0_3D_RT(i0)                                        (0x00000800 + 0x40*(i0))
 #define NVC0_3D_RT__ESIZE                                      0x00000040
-#define NVC0_3D_RT__LEN                                                0x00000008
+#define NVC0_3D_RT__LEN                                        0x00000008
 
 #define NVC0_3D_RT_ADDRESS_HIGH(i0)                           (0x00000800 + 0x40*(i0))
 
@@ -215,15 +424,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_RT_UNK14(i0)                                  (0x00000824 + 0x40*(i0))
 
 #define NVC0_3D_VIEWPORT_SCALE_X(i0)                          (0x00000a00 + 0x20*(i0))
-#define NVC0_3D_VIEWPORT_SCALE_X__ESIZE                                0x00000020
+#define NVC0_3D_VIEWPORT_SCALE_X__ESIZE                        0x00000020
 #define NVC0_3D_VIEWPORT_SCALE_X__LEN                          0x00000010
 
 #define NVC0_3D_VIEWPORT_SCALE_Y(i0)                          (0x00000a04 + 0x20*(i0))
-#define NVC0_3D_VIEWPORT_SCALE_Y__ESIZE                                0x00000020
+#define NVC0_3D_VIEWPORT_SCALE_Y__ESIZE                        0x00000020
 #define NVC0_3D_VIEWPORT_SCALE_Y__LEN                          0x00000010
 
 #define NVC0_3D_VIEWPORT_SCALE_Z(i0)                          (0x00000a08 + 0x20*(i0))
-#define NVC0_3D_VIEWPORT_SCALE_Z__ESIZE                                0x00000020
+#define NVC0_3D_VIEWPORT_SCALE_Z__ESIZE                        0x00000020
 #define NVC0_3D_VIEWPORT_SCALE_Z__LEN                          0x00000010
 
 #define NVC0_3D_VIEWPORT_TRANSLATE_X(i0)                      (0x00000a0c + 0x20*(i0))
@@ -242,9 +451,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VIEWPORT_HORIZ__ESIZE                          0x00000010
 #define NVC0_3D_VIEWPORT_HORIZ__LEN                            0x00000010
 #define NVC0_3D_VIEWPORT_HORIZ_X__MASK                         0x0000ffff
-#define NVC0_3D_VIEWPORT_HORIZ_X__SHIFT                                0
+#define NVC0_3D_VIEWPORT_HORIZ_X__SHIFT                        0
 #define NVC0_3D_VIEWPORT_HORIZ_W__MASK                         0xffff0000
-#define NVC0_3D_VIEWPORT_HORIZ_W__SHIFT                                16
+#define NVC0_3D_VIEWPORT_HORIZ_W__SHIFT                        16
 
 #define NVC0_3D_VIEWPORT_VERT(i0)                             (0x00000c04 + 0x10*(i0))
 #define NVC0_3D_VIEWPORT_VERT__ESIZE                           0x00000010
@@ -255,7 +464,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VIEWPORT_VERT_H__SHIFT                         16
 
 #define NVC0_3D_DEPTH_RANGE_NEAR(i0)                          (0x00000c08 + 0x10*(i0))
-#define NVC0_3D_DEPTH_RANGE_NEAR__ESIZE                                0x00000010
+#define NVC0_3D_DEPTH_RANGE_NEAR__ESIZE                        0x00000010
 #define NVC0_3D_DEPTH_RANGE_NEAR__LEN                          0x00000010
 
 #define NVC0_3D_DEPTH_RANGE_FAR(i0)                           (0x00000c0c + 0x10*(i0))
@@ -278,7 +487,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_CLIP_RECT_VERT_MAX__MASK                       0xffff0000
 #define NVC0_3D_CLIP_RECT_VERT_MAX__SHIFT                      16
 
-#define NVC0_3D_CLIPID_REGION_HORIZ(i0)                               (0x00000d40 + 0x8*(i0))
+#define NVC0_3D_CLIPID_REGION_HORIZ(i0)                       (0x00000d40 + 0x8*(i0))
 #define NVC0_3D_CLIPID_REGION_HORIZ__ESIZE                     0x00000008
 #define NVC0_3D_CLIPID_REGION_HORIZ__LEN                       0x00000004
 #define NVC0_3D_CLIPID_REGION_HORIZ_X__MASK                    0x0000ffff
@@ -288,12 +497,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_CLIPID_REGION_VERT(i0)                        (0x00000d44 + 0x8*(i0))
 #define NVC0_3D_CLIPID_REGION_VERT__ESIZE                      0x00000008
-#define NVC0_3D_CLIPID_REGION_VERT__LEN                                0x00000004
+#define NVC0_3D_CLIPID_REGION_VERT__LEN                        0x00000004
 #define NVC0_3D_CLIPID_REGION_VERT_Y__MASK                     0x0000ffff
 #define NVC0_3D_CLIPID_REGION_VERT_Y__SHIFT                    0
 #define NVC0_3D_CLIPID_REGION_VERT_H__MASK                     0xffff0000
 #define NVC0_3D_CLIPID_REGION_VERT_H__SHIFT                    16
 
+#define NVC0_3D_UNK0D60                                        0x00000d60
+
 #define NVC0_3D_CALL_LIMIT_LOG                                 0x00000d64
 
 #define NVC0_3D_COUNTER_ENABLE                                 0x00000d68
@@ -314,20 +525,58 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_COUNTER_ENABLE_UNK0E                           0x00004000
 #define NVC0_3D_COUNTER_ENABLE_UNK0F                           0x00008000
 
+#define NVC0_3D_UNK0D6C(i0)                                   (0x00000d6c + 0x4*(i0))
+#define NVC0_3D_UNK0D6C__ESIZE                                 0x00000004
+#define NVC0_3D_UNK0D6C__LEN                                   0x00000002
+#define NVC0_3D_UNK0D6C_X__MASK                                0x0000ffff
+#define NVC0_3D_UNK0D6C_X__SHIFT                               0
+#define NVC0_3D_UNK0D6C_Y__MASK                                0xffff0000
+#define NVC0_3D_UNK0D6C_Y__SHIFT                               16
+
 #define NVC0_3D_VERTEX_BUFFER_FIRST                            0x00000d74
 
 #define NVC0_3D_VERTEX_BUFFER_COUNT                            0x00000d78
 
-#define NVC0_3D_CLEAR_COLOR(i0)                                       (0x00000d80 + 0x4*(i0))
+#define NVC0_3D_DEPTH_CLIP_NEGATIVE_Z                          0x00000d7c
+
+#define NVC0_3D_CLEAR_COLOR(i0)                               (0x00000d80 + 0x4*(i0))
 #define NVC0_3D_CLEAR_COLOR__ESIZE                             0x00000004
 #define NVC0_3D_CLEAR_COLOR__LEN                               0x00000004
 
 #define NVC0_3D_CLEAR_DEPTH                                    0x00000d90
 
+#define NVC0_3D_UNK0D94                                        0x00000d94
+
+#define NVE4_3D_UNK0D98                                        0x00000d98
+
+#define NVC0_3D_UNK0D9C                                        0x00000d9c
+
 #define NVC0_3D_CLEAR_STENCIL                                  0x00000da0
 
+#define NVE4_3D_UNK0DA4                                        0x00000da4
+#define NVE4_3D_UNK0DA4_UNK0                                   0x00000001
+#define NVE4_3D_UNK0DA4_UNK4                                   0x00000010
+#define NVE4_3D_UNK0DA4_UNK12                                  0x00001000
+
+#define NVC0_3D_POLYGON_MODE_FRONT                             0x00000dac
+#define NVC0_3D_POLYGON_MODE_FRONT_POINT                       0x00001b00
+#define NVC0_3D_POLYGON_MODE_FRONT_LINE                        0x00001b01
+#define NVC0_3D_POLYGON_MODE_FRONT_FILL                        0x00001b02
+
+#define NVC0_3D_POLYGON_MODE_BACK                              0x00000db0
+#define NVC0_3D_POLYGON_MODE_BACK_POINT                        0x00001b00
+#define NVC0_3D_POLYGON_MODE_BACK_LINE                         0x00001b01
+#define NVC0_3D_POLYGON_MODE_BACK_FILL                         0x00001b02
+
 #define NVC0_3D_POLYGON_SMOOTH_ENABLE                          0x00000db4
 
+#define NVC0_3D_UNK0DB8                                        0x00000db8
+
+#define NVC0_3D_ZCULL_UNK0DBC                                  0x00000dbc
+#define NVC0_3D_ZCULL_UNK0DBC_UNK0                             0x00000001
+#define NVC0_3D_ZCULL_UNK0DBC_UNK16__MASK                      0x00030000
+#define NVC0_3D_ZCULL_UNK0DBC_UNK16__SHIFT                     16
+
 #define NVC0_3D_POLYGON_OFFSET_POINT_ENABLE                    0x00000dc0
 
 #define NVC0_3D_POLYGON_OFFSET_LINE_ENABLE                     0x00000dc4
@@ -336,13 +585,27 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_PATCH_VERTICES                                 0x00000dcc
 
+#define NVC0_3D_ZCULL_UNK0DD8                                  0x00000dd8
+#define NVC0_3D_ZCULL_UNK0DD8_UNK0__MASK                       0x00000007
+#define NVC0_3D_ZCULL_UNK0DD8_UNK0__SHIFT                      0
+#define NVC0_3D_ZCULL_UNK0DD8_UNK8__MASK                       0x00000300
+#define NVC0_3D_ZCULL_UNK0DD8_UNK8__SHIFT                      8
+#define NVC0_3D_ZCULL_UNK0DD8_UNK16__MASK                      0xffff0000
+#define NVC0_3D_ZCULL_UNK0DD8_UNK16__SHIFT                     16
+
+#define NVC0_3D_UNK0DDC                                        0x00000ddc
+
 #define NVC0_3D_WATCHDOG_TIMER                                 0x00000de4
 
 #define NVC0_3D_PRIM_RESTART_WITH_DRAW_ARRAYS                  0x00000de8
 
-#define NVC0_3D_WINDOW_OFFSET_X                                        0x00000df8
+#define NVC0_3D_UNK0DEC                                        0x00000dec
 
-#define NVC0_3D_WINDOW_OFFSET_Y                                        0x00000dfc
+#define NVC0_3D_UNK0DF4                                        0x00000df4
+
+#define NVC0_3D_WINDOW_OFFSET_X                                0x00000df8
+
+#define NVC0_3D_WINDOW_OFFSET_Y                                0x00000dfc
 
 #define NVC0_3D_SCISSOR_ENABLE(i0)                            (0x00000e00 + 0x10*(i0))
 #define NVC0_3D_SCISSOR_ENABLE__ESIZE                          0x00000010
@@ -351,18 +614,26 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_SCISSOR_HORIZ(i0)                             (0x00000e04 + 0x10*(i0))
 #define NVC0_3D_SCISSOR_HORIZ__ESIZE                           0x00000010
 #define NVC0_3D_SCISSOR_HORIZ__LEN                             0x00000010
-#define NVC0_3D_SCISSOR_HORIZ_MIN__MASK                                0x0000ffff
+#define NVC0_3D_SCISSOR_HORIZ_MIN__MASK                        0x0000ffff
 #define NVC0_3D_SCISSOR_HORIZ_MIN__SHIFT                       0
-#define NVC0_3D_SCISSOR_HORIZ_MAX__MASK                                0xffff0000
+#define NVC0_3D_SCISSOR_HORIZ_MAX__MASK                        0xffff0000
 #define NVC0_3D_SCISSOR_HORIZ_MAX__SHIFT                       16
 
 #define NVC0_3D_SCISSOR_VERT(i0)                              (0x00000e08 + 0x10*(i0))
 #define NVC0_3D_SCISSOR_VERT__ESIZE                            0x00000010
 #define NVC0_3D_SCISSOR_VERT__LEN                              0x00000010
 #define NVC0_3D_SCISSOR_VERT_MIN__MASK                         0x0000ffff
-#define NVC0_3D_SCISSOR_VERT_MIN__SHIFT                                0
+#define NVC0_3D_SCISSOR_VERT_MIN__SHIFT                        0
 #define NVC0_3D_SCISSOR_VERT_MAX__MASK                         0xffff0000
-#define NVC0_3D_SCISSOR_VERT_MAX__SHIFT                                16
+#define NVC0_3D_SCISSOR_VERT_MAX__SHIFT                        16
+
+#define NVC0_3D_UNK0F00(i0)                                   (0x00000f00 + 0x4*(i0))
+#define NVC0_3D_UNK0F00__ESIZE                                 0x00000004
+#define NVC0_3D_UNK0F00__LEN                                   0x00000004
+
+#define NVE4_3D_UNK0F20(i0)                                   (0x00000f20 + 0x4*(i0))
+#define NVE4_3D_UNK0F20__ESIZE                                 0x00000004
+#define NVE4_3D_UNK0F20__LEN                                   0x00000005
 
 #define NVC0_3D_STENCIL_BACK_FUNC_REF                          0x00000f54
 
@@ -374,14 +645,20 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_VERTEX_RUNOUT_ADDRESS_LOW                      0x00000f88
 
+#define NVC0_3D_UNK0F8C                                        0x00000f8c
+
 #define NVC0_3D_COLOR_MASK_COMMON                              0x00000f90
 
+#define NVC0_3D_UNK0F98                                        0x00000f98
+
 #define NVC0_3D_DEPTH_BOUNDS(i0)                              (0x00000f9c + 0x4*(i0))
 #define NVC0_3D_DEPTH_BOUNDS__ESIZE                            0x00000004
 #define NVC0_3D_DEPTH_BOUNDS__LEN                              0x00000002
 
 #define NVC0_3D_RT_SEPARATE_FRAG_DATA                          0x00000fac
 
+#define NVC0_3D_UNK0FB0                                        0x00000fb0
+
 #define NVC0_3D_MSAA_MASK(i0)                                 (0x00000fbc + 0x4*(i0))
 #define NVC0_3D_MSAA_MASK__ESIZE                               0x00000004
 #define NVC0_3D_MSAA_MASK__LEN                                 0x00000004
@@ -390,6 +667,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_CLIPID_ADDRESS_LOW                             0x00000fd0
 
+#define NVC0_3D_UNK0FDC                                        0x00000fdc
+
 #define NVC0_3D_ZETA_ADDRESS_HIGH                              0x00000fe0
 
 #define NVC0_3D_ZETA_ADDRESS_LOW                               0x00000fe4
@@ -412,15 +691,92 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_SCREEN_SCISSOR_VERT_Y__MASK                    0x0000ffff
 #define NVC0_3D_SCREEN_SCISSOR_VERT_Y__SHIFT                   0
 
+#define NVC0_3D_UNK1000                                        0x00001000
+
+#define NVC0_3D_UNK1008                                        0x00001008
+
+#define NVC0_3D_UNK100C                                        0x0000100c
+
+#define NVC0_3D_UNK1010                                        0x00001010
+
+#define NVC0_3D_UNK1018                                        0x00001018
+
+#define NVC0_3D_UNK101C                                        0x0000101c
+
+#define NVC0_3D_UNK1020                                        0x00001020
+
+#define NVC0_3D_UNK1024                                        0x00001024
+
+#define NVC0_3D_UNK1040(i0)                                   (0x00001040 + 0x4*(i0))
+#define NVC0_3D_UNK1040__ESIZE                                 0x00000004
+#define NVC0_3D_UNK1040__LEN                                   0x00000010
+
+#define NVC0_3D_UNK10CC                                        0x000010cc
+#define NVC0_3D_UNK10CC_UNK0__MASK                             0x000000ff
+#define NVC0_3D_UNK10CC_UNK0__SHIFT                            0
+#define NVC0_3D_UNK10CC_UNK16__MASK                            0x00ff0000
+#define NVC0_3D_UNK10CC_UNK16__SHIFT                           16
+
+#define NVC0_3D_UNK10E0                                        0x000010e0
+#define NVC0_3D_UNK10E0_UNK0__MASK                             0x000000ff
+#define NVC0_3D_UNK10E0_UNK0__SHIFT                            0
+#define NVC0_3D_UNK10E0_UNK16__MASK                            0x00ff0000
+#define NVC0_3D_UNK10E0_UNK16__SHIFT                           16
+
+#define NVC0_3D_UNK10E4                                        0x000010e4
+#define NVC0_3D_UNK10E4_UNK0__MASK                             0x000000ff
+#define NVC0_3D_UNK10E4_UNK0__SHIFT                            0
+#define NVC0_3D_UNK10E4_UNK16__MASK                            0x00ff0000
+#define NVC0_3D_UNK10E4_UNK16__SHIFT                           16
+
+#define NVC0_3D_UNK10E8                                        0x000010e8
+#define NVC0_3D_UNK10E8_UNK0__MASK                             0x0000003f
+#define NVC0_3D_UNK10E8_UNK0__SHIFT                            0
+#define NVC0_3D_UNK10E8_UNK16__MASK                            0x003f0000
+#define NVC0_3D_UNK10E8_UNK16__SHIFT                           16
+
+#define NVC0_3D_UNK10EC                                        0x000010ec
+#define NVC0_3D_UNK10EC_UNK0__MASK                             0x000000ff
+#define NVC0_3D_UNK10EC_UNK0__SHIFT                            0
+#define NVC0_3D_UNK10EC_UNK16__MASK                            0x00ff0000
+#define NVC0_3D_UNK10EC_UNK16__SHIFT                           16
+
+#define NVC0_3D_UNK10F0                                        0x000010f0
+#define NVC0_3D_UNK10F0_UNK0__MASK                             0x000000ff
+#define NVC0_3D_UNK10F0_UNK0__SHIFT                            0
+#define NVC0_3D_UNK10F0_UNK16__MASK                            0x00ff0000
+#define NVC0_3D_UNK10F0_UNK16__SHIFT                           16
+
+#define NVC0_3D_UNK10F4                                        0x000010f4
+#define NVC0_3D_UNK10F4_UNK0                                   0x00000001
+#define NVC0_3D_UNK10F4_UNK4                                   0x00000010
+#define NVC0_3D_UNK10F4_UNK8                                   0x00000100
+
 #define NVC0_3D_CLEAR_FLAGS                                    0x000010f8
 #define NVC0_3D_CLEAR_FLAGS_STENCIL_MASK                       0x00000001
 #define NVC0_3D_CLEAR_FLAGS_UNK4                               0x00000010
 #define NVC0_3D_CLEAR_FLAGS_SCISSOR                            0x00000100
 #define NVC0_3D_CLEAR_FLAGS_VIEWPORT                           0x00001000
 
-#define NVC0_3D_VERTEX_ID                                      0x00001118
+#define NVC0_3D_UNK10FC                                        0x000010fc
+
+#define NVC0_3D_UNK110C                                        0x0000110c
+
+#define NVC0_3D_UNK1110                                        0x00001110
+
+#define NVC0_3D_WRCACHE_FLUSH                                  0x00001114
+
+#define NVC0_3D_VERTEX_ID_BASE                                 0x00001118
+
+#define NVC0_3D_VTX_ATTR_MASK_UNK0DD0_ALT(i0)                 (0x00001120 + 0x4*(i0))
+#define NVC0_3D_VTX_ATTR_MASK_UNK0DD0_ALT__ESIZE               0x00000004
+#define NVC0_3D_VTX_ATTR_MASK_UNK0DD0_ALT__LEN                 0x00000004
+
+#define NVC0_3D_UNK1140                                        0x00001140
 
-#define NVC0_3D_VTX_ATTR_DEFINE                                        0x0000114c
+#define NVC0_3D_UNK1144                                        0x00001144
+
+#define NVC0_3D_VTX_ATTR_DEFINE                                0x0000114c
 #define NVC0_3D_VTX_ATTR_DEFINE_ATTR__MASK                     0x000000ff
 #define NVC0_3D_VTX_ATTR_DEFINE_ATTR__SHIFT                    0
 #define NVC0_3D_VTX_ATTR_DEFINE_COMP__MASK                     0x00000700
@@ -430,8 +786,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VTX_ATTR_DEFINE_SIZE__MASK                     0x00007000
 #define NVC0_3D_VTX_ATTR_DEFINE_SIZE__SHIFT                    12
 #define NVC0_3D_VTX_ATTR_DEFINE_SIZE_8                         0x00001000
-#define NVC0_3D_VTX_ATTR_DEFINE_SIZE_16                                0x00002000
-#define NVC0_3D_VTX_ATTR_DEFINE_SIZE_32                                0x00004000
+#define NVC0_3D_VTX_ATTR_DEFINE_SIZE_16                        0x00002000
+#define NVC0_3D_VTX_ATTR_DEFINE_SIZE_32                        0x00004000
 #define NVC0_3D_VTX_ATTR_DEFINE_TYPE__MASK                     0x00070000
 #define NVC0_3D_VTX_ATTR_DEFINE_TYPE__SHIFT                    16
 #define NVC0_3D_VTX_ATTR_DEFINE_TYPE_SNORM                     0x00010000
@@ -454,36 +810,40 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_CONST                     0x00000040
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_OFFSET__MASK              0x001fff80
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_OFFSET__SHIFT             7
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE__MASK                        0x07e00000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE__MASK                0x07e00000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE__SHIFT               21
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_32_32_32_32          0x00200000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_32_32_32             0x00400000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_16_16_16_16          0x00600000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_32_32                        0x00800000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_32_32                0x00800000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_16_16_16             0x00a00000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_8_8_8_8              0x01400000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_16_16                        0x01e00000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_16_16                0x01e00000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_32                   0x02400000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_8_8_8                        0x02600000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_8_8_8                0x02600000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_8_8                  0x03000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_16                   0x03600000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_8                    0x03a00000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_10_10_10_2           0x06000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_11_11_10             0x06200000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE__MASK                        0x38000000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE__MASK                0x38000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE__SHIFT               27
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_SNORM                        0x08000000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_UNORM                        0x10000000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_SNORM                0x08000000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_UNORM                0x10000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_SINT                 0x18000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_UINT                 0x20000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_USCALED              0x28000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_SSCALED              0x30000000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_FLOAT                        0x38000000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_FLOAT                0x38000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_BGRA                      0x80000000
 
+#define NVC0_3D_UNK1214                                        0x00001214
+
+#define NVC0_3D_UNK1218                                        0x00001218
+
 #define NVC0_3D_RT_CONTROL                                     0x0000121c
 #define NVC0_3D_RT_CONTROL_COUNT__MASK                         0x0000000f
-#define NVC0_3D_RT_CONTROL_COUNT__SHIFT                                0
+#define NVC0_3D_RT_CONTROL_COUNT__SHIFT                        0
 #define NVC0_3D_RT_CONTROL_MAP0__MASK                          0x00000070
 #define NVC0_3D_RT_CONTROL_MAP0__SHIFT                         4
 #define NVC0_3D_RT_CONTROL_MAP1__MASK                          0x00000380
@@ -501,11 +861,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_RT_CONTROL_MAP7__MASK                          0x0e000000
 #define NVC0_3D_RT_CONTROL_MAP7__SHIFT                         25
 
+#define NVC0_3D_UNK1220                                        0x00001220
+
 #define NVC0_3D_ZETA_HORIZ                                     0x00001228
 
 #define NVC0_3D_ZETA_VERT                                      0x0000122c
 
-#define NVC0_3D_ZETA_ARRAY_MODE                                        0x00001230
+#define NVC0_3D_ZETA_ARRAY_MODE                                0x00001230
 #define NVC0_3D_ZETA_ARRAY_MODE_LAYERS__MASK                   0x0000ffff
 #define NVC0_3D_ZETA_ARRAY_MODE_LAYERS__SHIFT                  0
 #define NVC0_3D_ZETA_ARRAY_MODE_UNK                            0x00010000
@@ -514,19 +876,35 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_DRAW_TFB_BYTES                                 0x0000123c
 
-#define NVC0_3D_FP_RESULT_COUNT                                        0x00001298
+#define NVC0_3D_UNK1284                                        0x00001284
+
+#define NVC0_3D_UNK1288_TIC_FLUSH                              0x00001288
+
+#define NVC0_3D_UNK1290                                        0x00001290
+
+#define NVC0_3D_UNK12A4                                        0x000012a4
+
+#define NVC0_3D_UNK12AC                                        0x000012ac
+
+#define NVC0_3D_UNK12C8                                        0x000012c8
 
 #define NVC0_3D_DEPTH_TEST_ENABLE                              0x000012cc
 
 #define NVC0_3D_D3D_FILL_MODE                                  0x000012d0
 #define NVC0_3D_D3D_FILL_MODE_POINT                            0x00000001
-#define NVC0_3D_D3D_FILL_MODE_WIREFRAME                                0x00000002
+#define NVC0_3D_D3D_FILL_MODE_WIREFRAME                        0x00000002
 #define NVC0_3D_D3D_FILL_MODE_SOLID                            0x00000003
 
 #define NVC0_3D_SHADE_MODEL                                    0x000012d4
 #define NVC0_3D_SHADE_MODEL_FLAT                               0x00001d00
 #define NVC0_3D_SHADE_MODEL_SMOOTH                             0x00001d01
 
+#define NVC0_3D_UNK12D8(i0)                                   (0x000012d8 + 0x4*(i0))
+#define NVC0_3D_UNK12D8__ESIZE                                 0x00000004
+#define NVC0_3D_UNK12D8__LEN                                   0x00000002
+
+#define NVC0_3D_UNK12E0                                        0x000012e0
+
 #define NVC0_3D_BLEND_INDEPENDENT                              0x000012e4
 
 #define NVC0_3D_DEPTH_WRITE_ENABLE                             0x000012e8
@@ -536,51 +914,51 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VB_ELEMENT_U8_SETUP                            0x00001300
 #define NVC0_3D_VB_ELEMENT_U8_SETUP_OFFSET__MASK               0xc0000000
 #define NVC0_3D_VB_ELEMENT_U8_SETUP_OFFSET__SHIFT              30
-#define NVC0_3D_VB_ELEMENT_U8_SETUP_COUNT__MASK                        0x3fffffff
+#define NVC0_3D_VB_ELEMENT_U8_SETUP_COUNT__MASK                0x3fffffff
 #define NVC0_3D_VB_ELEMENT_U8_SETUP_COUNT__SHIFT               0
 
 #define NVC0_3D_VB_ELEMENT_U8                                  0x00001304
 #define NVC0_3D_VB_ELEMENT_U8_I0__MASK                         0x000000ff
-#define NVC0_3D_VB_ELEMENT_U8_I0__SHIFT                                0
+#define NVC0_3D_VB_ELEMENT_U8_I0__SHIFT                        0
 #define NVC0_3D_VB_ELEMENT_U8_I1__MASK                         0x0000ff00
-#define NVC0_3D_VB_ELEMENT_U8_I1__SHIFT                                8
+#define NVC0_3D_VB_ELEMENT_U8_I1__SHIFT                        8
 #define NVC0_3D_VB_ELEMENT_U8_I2__MASK                         0x00ff0000
-#define NVC0_3D_VB_ELEMENT_U8_I2__SHIFT                                16
+#define NVC0_3D_VB_ELEMENT_U8_I2__SHIFT                        16
 #define NVC0_3D_VB_ELEMENT_U8_I3__MASK                         0xff000000
-#define NVC0_3D_VB_ELEMENT_U8_I3__SHIFT                                24
+#define NVC0_3D_VB_ELEMENT_U8_I3__SHIFT                        24
 
 #define NVC0_3D_D3D_CULL_MODE                                  0x00001308
 #define NVC0_3D_D3D_CULL_MODE_NONE                             0x00000001
 #define NVC0_3D_D3D_CULL_MODE_FRONT                            0x00000002
 #define NVC0_3D_D3D_CULL_MODE_BACK                             0x00000003
 
-#define NVC0_3D_DEPTH_TEST_FUNC                                        0x0000130c
+#define NVC0_3D_DEPTH_TEST_FUNC                                0x0000130c
 #define NVC0_3D_DEPTH_TEST_FUNC_NEVER                          0x00000200
 #define NVC0_3D_DEPTH_TEST_FUNC_LESS                           0x00000201
 #define NVC0_3D_DEPTH_TEST_FUNC_EQUAL                          0x00000202
 #define NVC0_3D_DEPTH_TEST_FUNC_LEQUAL                         0x00000203
-#define NVC0_3D_DEPTH_TEST_FUNC_GREATER                                0x00000204
+#define NVC0_3D_DEPTH_TEST_FUNC_GREATER                        0x00000204
 #define NVC0_3D_DEPTH_TEST_FUNC_NOTEQUAL                       0x00000205
 #define NVC0_3D_DEPTH_TEST_FUNC_GEQUAL                         0x00000206
 #define NVC0_3D_DEPTH_TEST_FUNC_ALWAYS                         0x00000207
 
 #define NVC0_3D_ALPHA_TEST_REF                                 0x00001310
 
-#define NVC0_3D_ALPHA_TEST_FUNC                                        0x00001314
+#define NVC0_3D_ALPHA_TEST_FUNC                                0x00001314
 #define NVC0_3D_ALPHA_TEST_FUNC_NEVER                          0x00000200
 #define NVC0_3D_ALPHA_TEST_FUNC_LESS                           0x00000201
 #define NVC0_3D_ALPHA_TEST_FUNC_EQUAL                          0x00000202
 #define NVC0_3D_ALPHA_TEST_FUNC_LEQUAL                         0x00000203
-#define NVC0_3D_ALPHA_TEST_FUNC_GREATER                                0x00000204
+#define NVC0_3D_ALPHA_TEST_FUNC_GREATER                        0x00000204
 #define NVC0_3D_ALPHA_TEST_FUNC_NOTEQUAL                       0x00000205
 #define NVC0_3D_ALPHA_TEST_FUNC_GEQUAL                         0x00000206
 #define NVC0_3D_ALPHA_TEST_FUNC_ALWAYS                         0x00000207
 
-#define NVC0_3D_DRAW_TFB_STRIDE                                        0x00001318
+#define NVC0_3D_DRAW_TFB_STRIDE                                0x00001318
 #define NVC0_3D_DRAW_TFB_STRIDE__MIN                           0x00000001
 #define NVC0_3D_DRAW_TFB_STRIDE__MAX                           0x00000fff
 
-#define NVC0_3D_BLEND_COLOR(i0)                                       (0x0000131c + 0x4*(i0))
+#define NVC0_3D_BLEND_COLOR(i0)                               (0x0000131c + 0x4*(i0))
 #define NVC0_3D_BLEND_COLOR__ESIZE                             0x00000004
 #define NVC0_3D_BLEND_COLOR__LEN                               0x00000004
 
@@ -595,8 +973,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_TIC_FLUSH_ENTRY__SHIFT                         4
 
 #define NVC0_3D_TEX_CACHE_CTL                                  0x00001338
-#define NVC0_3D_TEX_CACHE_CTL_UNK1__MASK                       0x00000030
-#define NVC0_3D_TEX_CACHE_CTL_UNK1__SHIFT                      4
+#define NVC0_3D_TEX_CACHE_CTL_UNK0__MASK                       0x00000007
+#define NVC0_3D_TEX_CACHE_CTL_UNK0__SHIFT                      0
+#define NVE4_3D_TEX_CACHE_CTL_UNK0                             0x00000001
+#define NVC0_3D_TEX_CACHE_CTL_ENTRY__MASK                      0x03fffff0
+#define NVC0_3D_TEX_CACHE_CTL_ENTRY__SHIFT                     4
 
 #define NVC0_3D_BLEND_SEPARATE_ALPHA                           0x0000133c
 
@@ -620,6 +1001,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_BLEND_FUNC_SRC_ALPHA                           0x00001350
 
+#define NVC0_3D_UNK1354                                        0x00001354
+
 #define NVC0_3D_BLEND_FUNC_DST_ALPHA                           0x00001358
 
 #define NVC0_3D_BLEND_ENABLE_COMMON                            0x0000135c
@@ -637,8 +1020,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_STENCIL_FRONT_OP_FAIL_REPLACE                  0x00001e01
 #define NVC0_3D_STENCIL_FRONT_OP_FAIL_INCR                     0x00001e02
 #define NVC0_3D_STENCIL_FRONT_OP_FAIL_DECR                     0x00001e03
-#define NVC0_3D_STENCIL_FRONT_OP_FAIL_INCR_WRAP                        0x00008507
-#define NVC0_3D_STENCIL_FRONT_OP_FAIL_DECR_WRAP                        0x00008508
+#define NVC0_3D_STENCIL_FRONT_OP_FAIL_INCR_WRAP                0x00008507
+#define NVC0_3D_STENCIL_FRONT_OP_FAIL_DECR_WRAP                0x00008508
 
 #define NVC0_3D_STENCIL_FRONT_OP_ZFAIL                         0x00001388
 #define NVC0_3D_STENCIL_FRONT_OP_ZFAIL_ZERO                    0x00000000
@@ -660,19 +1043,19 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_STENCIL_FRONT_OP_ZPASS_INCR_WRAP               0x00008507
 #define NVC0_3D_STENCIL_FRONT_OP_ZPASS_DECR_WRAP               0x00008508
 
-#define NVC0_3D_STENCIL_FRONT_FUNC_FUNC                                0x00001390
+#define NVC0_3D_STENCIL_FRONT_FUNC_FUNC                        0x00001390
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_NEVER                  0x00000200
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_LESS                   0x00000201
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_EQUAL                  0x00000202
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_LEQUAL                 0x00000203
-#define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_GREATER                        0x00000204
+#define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_GREATER                0x00000204
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL               0x00000205
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_GEQUAL                 0x00000206
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_ALWAYS                 0x00000207
 
 #define NVC0_3D_STENCIL_FRONT_FUNC_REF                         0x00001394
 
-#define NVC0_3D_STENCIL_FRONT_FUNC_MASK                                0x00001398
+#define NVC0_3D_STENCIL_FRONT_FUNC_MASK                        0x00001398
 
 #define NVC0_3D_STENCIL_FRONT_MASK                             0x0000139c
 
@@ -696,20 +1079,47 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_LINE_WIDTH_ALIASED                             0x000013b4
 
-#define NVC0_3D_GP_VERTEX_OUTPUT_COUNT                         0x00001420
-#define NVC0_3D_GP_VERTEX_OUTPUT_COUNT__MIN                    0x00000001
-#define NVC0_3D_GP_VERTEX_OUTPUT_COUNT__MAX                    0x00000400
+#define NVC0_3D_UNK1418                                        0x00001418
+
+#define NVC0_3D_UNK1420                                        0x00001420
+
+#define NVC0_3D_UNK1424_TSC_FLUSH                              0x00001424
+
+#define NVC0_3D_UNK1428_TIC_FLUSH                              0x00001428
 
 #define NVC0_3D_VERTEX_ARRAY_FLUSH                             0x0000142c
 
-#define NVC0_3D_VB_ELEMENT_BASE                                        0x00001434
+#define NVC0_3D_UNK1430                                        0x00001430
+#define NVC0_3D_UNK1430_UNK0                                   0x00000010
+#define NVC0_3D_UNK1430_UNK1                                   0x00000100
+
+#define NVC0_3D_VB_ELEMENT_BASE                                0x00001434
 
 #define NVC0_3D_VB_INSTANCE_BASE                               0x00001438
 
-#define NVC0_3D_CODE_CB_FLUSH                                  0x00001440
+#define NVC0_3D_UNK143C_CLEAR_FLAGS                            0x0000143c
+#define NVC0_3D_UNK143C_CLEAR_FLAGS_STENCIL_MASK               0x00000001
+#define NVC0_3D_UNK143C_CLEAR_FLAGS_CLEAR_RECT__MASK           0x00000010
+#define NVC0_3D_UNK143C_CLEAR_FLAGS_CLEAR_RECT__SHIFT          4
+#define NVC0_3D_UNK143C_CLEAR_FLAGS_CLEAR_RECT_SCISSOR         0x00000000
+#define NVC0_3D_UNK143C_CLEAR_FLAGS_CLEAR_RECT_VIEWPORT        0x00000000
+
+#define NVC0_3D_UNK1444                                        0x00001444
+
+#define NVC0_3D_UNK1448                                        0x00001448
+
+#define NVC0_3D_UNK144C                                        0x0000144c
+
+#define NVC0_3D_UNK1450                                        0x00001450
+
+#define NVC0_3D_UNK1454                                        0x00001454
+
+#define NVC0_3D_UNK1464                                        0x00001464
+
+#define NVC0_3D_UNK1500                                        0x00001500
 
 #define NVC0_3D_CLIPID_HEIGHT                                  0x00001504
-#define NVC0_3D_CLIPID_HEIGHT__MAX                             0x00002000
+#define NVC0_3D_CLIPID_HEIGHT__MAX                             0x00004000
 
 #define NVC0_3D_CLIPID_FILL_RECT_HORIZ                         0x00001508
 #define NVC0_3D_CLIPID_FILL_RECT_HORIZ_LOW__MASK               0x0000ffff
@@ -718,7 +1128,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_CLIPID_FILL_RECT_HORIZ_HIGH__SHIFT             16
 
 #define NVC0_3D_CLIPID_FILL_RECT_VERT                          0x0000150c
-#define NVC0_3D_CLIPID_FILL_RECT_VERT_LOW__MASK                        0x0000ffff
+#define NVC0_3D_CLIPID_FILL_RECT_VERT_LOW__MASK                0x0000ffff
 #define NVC0_3D_CLIPID_FILL_RECT_VERT_LOW__SHIFT               0
 #define NVC0_3D_CLIPID_FILL_RECT_VERT_HIGH__MASK               0xffff0000
 #define NVC0_3D_CLIPID_FILL_RECT_VERT_HIGH__SHIFT              16
@@ -742,7 +1152,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_POINT_SPRITE_ENABLE                            0x00001520
 
 #define NVC0_3D_COUNTER_RESET                                  0x00001530
-#define NVC0_3D_COUNTER_RESET_SAMPLECNT                                0x00000001
+#define NVC0_3D_COUNTER_RESET_SAMPLECNT                        0x00000001
 #define NVC0_3D_COUNTER_RESET_UNK02                            0x00000002
 #define NVC0_3D_COUNTER_RESET_UNK03                            0x00000003
 #define NVC0_3D_COUNTER_RESET_UNK04                            0x00000004
@@ -774,15 +1184,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_COND_ADDRESS_LOW                               0x00001554
 
 #define NVC0_3D_COND_MODE                                      0x00001558
-#define NVC0_3D_COND_MODE_NEVER                                        0x00000000
+#define NVC0_3D_COND_MODE_NEVER                                0x00000000
 #define NVC0_3D_COND_MODE_ALWAYS                               0x00000001
 #define NVC0_3D_COND_MODE_RES_NON_ZERO                         0x00000002
-#define NVC0_3D_COND_MODE_EQUAL                                        0x00000003
+#define NVC0_3D_COND_MODE_EQUAL                                0x00000003
 #define NVC0_3D_COND_MODE_NOT_EQUAL                            0x00000004
 
 #define NVC0_3D_TSC_ADDRESS_HIGH                               0x0000155c
 
-#define NVC0_3D_TSC_ADDRESS_LOW                                        0x00001560
+#define NVC0_3D_TSC_ADDRESS_LOW                                0x00001560
 #define NVC0_3D_TSC_ADDRESS_LOW__ALIGN                         0x00000020
 
 #define NVC0_3D_TSC_LIMIT                                      0x00001564
@@ -794,13 +1204,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_TIC_ADDRESS_HIGH                               0x00001574
 
-#define NVC0_3D_TIC_ADDRESS_LOW                                        0x00001578
+#define NVC0_3D_TIC_ADDRESS_LOW                                0x00001578
 
 #define NVC0_3D_TIC_LIMIT                                      0x0000157c
 
 #define NVC0_3D_ZCULL_REGION                                   0x00001590
 
-#define NVC0_3D_STENCIL_TWO_SIDE_ENABLE                                0x00001594
+#define NVC0_3D_STENCIL_TWO_SIDE_ENABLE                        0x00001594
 
 #define NVC0_3D_STENCIL_BACK_OP_FAIL                           0x00001598
 #define NVC0_3D_STENCIL_BACK_OP_FAIL_ZERO                      0x00000000
@@ -819,8 +1229,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_STENCIL_BACK_OP_ZFAIL_REPLACE                  0x00001e01
 #define NVC0_3D_STENCIL_BACK_OP_ZFAIL_INCR                     0x00001e02
 #define NVC0_3D_STENCIL_BACK_OP_ZFAIL_DECR                     0x00001e03
-#define NVC0_3D_STENCIL_BACK_OP_ZFAIL_INCR_WRAP                        0x00008507
-#define NVC0_3D_STENCIL_BACK_OP_ZFAIL_DECR_WRAP                        0x00008508
+#define NVC0_3D_STENCIL_BACK_OP_ZFAIL_INCR_WRAP                0x00008507
+#define NVC0_3D_STENCIL_BACK_OP_ZFAIL_DECR_WRAP                0x00008508
 
 #define NVC0_3D_STENCIL_BACK_OP_ZPASS                          0x000015a0
 #define NVC0_3D_STENCIL_BACK_OP_ZPASS_ZERO                     0x00000000
@@ -829,8 +1239,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_STENCIL_BACK_OP_ZPASS_REPLACE                  0x00001e01
 #define NVC0_3D_STENCIL_BACK_OP_ZPASS_INCR                     0x00001e02
 #define NVC0_3D_STENCIL_BACK_OP_ZPASS_DECR                     0x00001e03
-#define NVC0_3D_STENCIL_BACK_OP_ZPASS_INCR_WRAP                        0x00008507
-#define NVC0_3D_STENCIL_BACK_OP_ZPASS_DECR_WRAP                        0x00008508
+#define NVC0_3D_STENCIL_BACK_OP_ZPASS_INCR_WRAP                0x00008507
+#define NVC0_3D_STENCIL_BACK_OP_ZPASS_DECR_WRAP                0x00008508
 
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC                         0x000015a4
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_NEVER                   0x00000200
@@ -838,7 +1248,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_EQUAL                   0x00000202
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_LEQUAL                  0x00000203
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_GREATER                 0x00000204
-#define NVC0_3D_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                        0x00000205
+#define NVC0_3D_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                0x00000205
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_GEQUAL                  0x00000206
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_ALWAYS                  0x00000207
 
@@ -848,8 +1258,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_POLYGON_OFFSET_UNITS                           0x000015bc
 
+#define NVC0_3D_UNK15C8                                        0x000015c8
+
 #define NVC0_3D_LAYER                                          0x000015cc
-#define NVC0_3D_LAYER_IDX__MASK                                        0x0000ffff
+#define NVC0_3D_LAYER_IDX__MASK                                0x0000ffff
 #define NVC0_3D_LAYER_IDX__SHIFT                               0
 #define NVC0_3D_LAYER_USE_GP                                   0x00010000
 
@@ -866,24 +1278,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_MULTISAMPLE_MODE_MS8_CS8                       0x0000000a
 #define NVC0_3D_MULTISAMPLE_MODE_MS8_CS24                      0x0000000b
 
-#define NVC0_3D_VERTEX_BEGIN_D3D                               0x000015d4
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE__MASK               0x0fffffff
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE__SHIFT              0
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_POINTS              0x00000001
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINES               0x00000002
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINE_STRIP          0x00000003
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLES           0x00000004
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLE_STRIP      0x00000005
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINES_ADJACENCY     0x0000000a
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINE_STRIP_ADJACENCY        0x0000000b
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLES_ADJACENCY 0x0000000c
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLE_STRIP_ADJACENCY    0x0000000d
-#define NVC0_3D_VERTEX_BEGIN_D3D_INSTANCE_NEXT                 0x10000000
-
-#define NVC0_3D_VERTEX_END_D3D                                 0x000015d8
-#define NVC0_3D_VERTEX_END_D3D_UNK0                            0x00000001
-#define NVC0_3D_VERTEX_END_D3D_UNK1                            0x00000002
-
 #define NVC0_3D_EDGEFLAG                                       0x000015e4
 
 #define NVC0_3D_VB_ELEMENT_U32                                 0x000015e8
@@ -895,46 +1289,52 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VB_ELEMENT_U16_SETUP_COUNT__SHIFT              0
 
 #define NVC0_3D_VB_ELEMENT_U16                                 0x000015f0
-#define NVC0_3D_VB_ELEMENT_U16_I0__MASK                                0x0000ffff
+#define NVC0_3D_VB_ELEMENT_U16_I0__MASK                        0x0000ffff
 #define NVC0_3D_VB_ELEMENT_U16_I0__SHIFT                       0
-#define NVC0_3D_VB_ELEMENT_U16_I1__MASK                                0xffff0000
+#define NVC0_3D_VB_ELEMENT_U16_I1__MASK                        0xffff0000
 #define NVC0_3D_VB_ELEMENT_U16_I1__SHIFT                       16
 
 #define NVC0_3D_VERTEX_BASE_HIGH                               0x000015f4
 
-#define NVC0_3D_VERTEX_BASE_LOW                                        0x000015f8
+#define NVC0_3D_VERTEX_BASE_LOW                                0x000015f8
 
 #define NVC0_3D_ZCULL_WINDOW_OFFSET_X                          0x000015fc
 
 #define NVC0_3D_ZCULL_WINDOW_OFFSET_Y                          0x00001600
 
 #define NVC0_3D_POINT_COORD_REPLACE                            0x00001604
+#define NVC0_3D_POINT_COORD_REPLACE_UNK0__MASK                 0x00000003
+#define NVC0_3D_POINT_COORD_REPLACE_UNK0__SHIFT                0
+#define NVC0_3D_POINT_COORD_REPLACE_UNK0_UNK0                  0x00000000
+#define NVC0_3D_POINT_COORD_REPLACE_UNK0_UNK1                  0x00000001
+#define NVC0_3D_POINT_COORD_REPLACE_UNK0_UNK2                  0x00000002
 #define NVC0_3D_POINT_COORD_REPLACE_COORD_ORIGIN__MASK         0x00000004
-#define NVC0_3D_POINT_COORD_REPLACE_COORD_ORIGIN__SHIFT                2
+#define NVC0_3D_POINT_COORD_REPLACE_COORD_ORIGIN__SHIFT        2
 #define NVC0_3D_POINT_COORD_REPLACE_COORD_ORIGIN_LOWER_LEFT    0x00000000
 #define NVC0_3D_POINT_COORD_REPLACE_COORD_ORIGIN_UPPER_LEFT    0x00000004
-#define NVC0_3D_POINT_COORD_REPLACE_ENABLE__MASK               0x000007f8
+#define NVC0_3D_POINT_COORD_REPLACE_ENABLE__MASK               0x00001ff8
 #define NVC0_3D_POINT_COORD_REPLACE_ENABLE__SHIFT              3
 
 #define NVC0_3D_CODE_ADDRESS_HIGH                              0x00001608
 
 #define NVC0_3D_CODE_ADDRESS_LOW                               0x0000160c
 
+#define NVC0_3D_UNK1610                                        0x00001610
+
 #define NVC0_3D_VERTEX_END_GL                                  0x00001614
 #define NVC0_3D_VERTEX_END_GL_UNK0                             0x00000001
-#define NVC0_3D_VERTEX_END_GL_UNK1                             0x00000002
 
-#define NVC0_3D_VERTEX_BEGIN_GL                                        0x00001618
-#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE__MASK                        0x0fffffff
+#define NVC0_3D_VERTEX_BEGIN_GL                                0x00001618
+#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE__MASK                0x0000ffff
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE__SHIFT               0
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_POINTS               0x00000000
-#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINES                        0x00000001
+#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINES                0x00000001
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINE_LOOP            0x00000002
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINE_STRIP           0x00000003
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLES            0x00000004
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLE_STRIP       0x00000005
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLE_FAN         0x00000006
-#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_QUADS                        0x00000007
+#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_QUADS                0x00000007
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_QUAD_STRIP           0x00000008
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_POLYGON              0x00000009
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINES_ADJACENCY      0x0000000a
@@ -942,13 +1342,28 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLES_ADJACENCY  0x0000000c
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLE_STRIP_ADJACENCY     0x0000000d
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_PATCHES              0x0000000e
+#define NVC0_3D_VERTEX_BEGIN_GL_UNK24                          0x01000000
 #define NVC0_3D_VERTEX_BEGIN_GL_INSTANCE_NEXT                  0x04000000
 #define NVC0_3D_VERTEX_BEGIN_GL_INSTANCE_CONT                  0x08000000
+#define NVC0_3D_VERTEX_BEGIN_GL_UNK29                          0x20000000
+#define NVC0_3D_VERTEX_BEGIN_GL_UNK30                          0x40000000
 
 #define NVC0_3D_VERTEX_ID_REPLACE                              0x0000161c
 #define NVC0_3D_VERTEX_ID_REPLACE_ENABLE                       0x00000001
 #define NVC0_3D_VERTEX_ID_REPLACE_SOURCE__MASK                 0x00000ff0
-#define NVC0_3D_VERTEX_ID_REPLACE_SOURCE__SHIFT                        4
+#define NVC0_3D_VERTEX_ID_REPLACE_SOURCE__SHIFT                4
+
+#define NVC0_3D_UNK1620                                        0x00001620
+
+#define NVC0_3D_UNK1624                                        0x00001624
+
+#define NVC0_3D_UNK162C                                        0x0000162c
+
+#define NVC0_3D_UNK1634                                        0x00001634
+
+#define NVC0_3D_UNK1638                                        0x00001638
+
+#define NVC0_3D_UNK163C                                        0x0000163c
 
 #define NVC0_3D_VERTEX_DATA                                    0x00001640
 
@@ -956,11 +1371,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_PRIM_RESTART_INDEX                             0x00001648
 
-#define NVC0_3D_VP_GP_BUILTIN_ATTR_EN                          0x0000164c
-#define NVC0_3D_VP_GP_BUILTIN_ATTR_EN_VERTEX_ID                        0x00000001
-#define NVC0_3D_VP_GP_BUILTIN_ATTR_EN_INSTANCE_ID              0x00000010
-#define NVC0_3D_VP_GP_BUILTIN_ATTR_EN_PRIMITIVE_ID             0x00000100
-#define NVC0_3D_VP_GP_BUILTIN_ATTR_EN_UNK12                    0x00001000
+#define NVC0_3D_VERTEX_ID_GEN_MODE                             0x0000164c
+#define NVC0_3D_VERTEX_ID_GEN_MODE_DRAW_ARRAYS_ADD_START       0x00001000
 
 #define NVC0_3D_POINT_SMOOTH_ENABLE                            0x00001658
 
@@ -969,10 +1381,28 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_POINT_RASTER_RULES_D3D                         0x00000001
 
 #define NVC0_3D_TEX_MISC                                       0x00001664
+#define NVC0_3D_TEX_MISC_UNK                                   0x00000002
 #define NVC0_3D_TEX_MISC_SEAMLESS_CUBE_MAP                     0x00000004
 
+#define NVC0_3D_LINE_SMOOTH_BLUR                               0x00001668
+#define NVC0_3D_LINE_SMOOTH_BLUR_LOW                           0x00000000
+#define NVC0_3D_LINE_SMOOTH_BLUR_MEDIUM                        0x00000001
+#define NVC0_3D_LINE_SMOOTH_BLUR_HIGH                          0x00000002
+
 #define NVC0_3D_LINE_STIPPLE_ENABLE                            0x0000166c
 
+#define NVC0_3D_COVERAGE_LUT(i0)                              (0x00001670 + 0x4*(i0))
+#define NVC0_3D_COVERAGE_LUT__ESIZE                            0x00000004
+#define NVC0_3D_COVERAGE_LUT__LEN                              0x00000004
+#define NVC0_3D_COVERAGE_LUT_0__MASK                           0x000000ff
+#define NVC0_3D_COVERAGE_LUT_0__SHIFT                          0
+#define NVC0_3D_COVERAGE_LUT_1__MASK                           0x0000ff00
+#define NVC0_3D_COVERAGE_LUT_1__SHIFT                          8
+#define NVC0_3D_COVERAGE_LUT_2__MASK                           0x00ff0000
+#define NVC0_3D_COVERAGE_LUT_2__SHIFT                          16
+#define NVC0_3D_COVERAGE_LUT_3__MASK                           0xff000000
+#define NVC0_3D_COVERAGE_LUT_3__SHIFT                          24
+
 #define NVC0_3D_LINE_STIPPLE_PATTERN                           0x00001680
 
 #define NVC0_3D_PROVOKING_VERTEX_LAST                          0x00001684
@@ -981,11 +1411,33 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_POLYGON_STIPPLE_ENABLE                         0x0000168c
 
+#define NVC0_3D_UNK1690                                        0x00001690
+#define NVC0_3D_UNK1690_ALWAYS_DERIV                           0x00000001
+#define NVC0_3D_UNK1690_UNK16                                  0x00010000
+
+#define NVE4_3D_UNK1690                                        0x00001690
+
+#define NVC0_3D_UNK169C                                        0x0000169c
+
+#define NVC0_3D_UNK16A0                                        0x000016a0
+
+#define NVC0_3D_UNK16A4                                        0x000016a4
+
+#define NVC0_3D_UNK16A8                                        0x000016a8
+
+#define NVC0_3D_UNK16B4                                        0x000016b4
+#define NVC0_3D_UNK16B4_UNK0                                   0x00000001
+#define NVC0_3D_UNK16B4_UNK1                                   0x00000002
+
 #define NVC0_3D_POLYGON_STIPPLE_PATTERN(i0)                   (0x00001700 + 0x4*(i0))
 #define NVC0_3D_POLYGON_STIPPLE_PATTERN__ESIZE                 0x00000004
 #define NVC0_3D_POLYGON_STIPPLE_PATTERN__LEN                   0x00000020
 
-#define NVC0_3D_ZETA_BASE_LAYER                                        0x0000179c
+#define NVC0_3D_UNK1790                                        0x00001790
+
+#define NVC0_3D_UNK1794                                        0x00001794
+
+#define NVC0_3D_ZETA_BASE_LAYER                                0x0000179c
 
 #define NVC0_3D_VERTEX_QUARANTINE_ADDRESS_HIGH                 0x000017bc
 
@@ -996,16 +1448,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VERTEX_QUARANTINE_SIZE_32K                     0x00000002
 #define NVC0_3D_VERTEX_QUARANTINE_SIZE_64K                     0x00000003
 
-#define NVC0_3D_STRMOUT_UNK1780(i0)                           (0x00001780 + 0x4*(i0))
-#define NVC0_3D_STRMOUT_UNK1780__ESIZE                         0x00000004
-#define NVC0_3D_STRMOUT_UNK1780__LEN                           0x00000004
-
-#define NVC0_3D_UNK17BC_ADDRESS_HIGH                           0x000017bc
-
-#define NVC0_3D_UNK17BC_ADDRESS_LOW                            0x000017c0
-
-#define NVC0_3D_UNK17BC_LIMIT                                  0x000017c4
-
 #define NVC0_3D_INDEX_ARRAY_START_HIGH                         0x000017c8
 
 #define NVC0_3D_INDEX_ARRAY_START_LOW                          0x000017cc
@@ -1014,19 +1456,29 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_INDEX_ARRAY_LIMIT_LOW                          0x000017d4
 
-#define NVC0_3D_INDEX_LOG2_SIZE                                        0x000017d8
+#define NVC0_3D_INDEX_FORMAT                                   0x000017d8
+#define NVC0_3D_INDEX_FORMAT_I8                                0x00000000
+#define NVC0_3D_INDEX_FORMAT_I16                               0x00000001
+#define NVC0_3D_INDEX_FORMAT_I32                               0x00000002
 
 #define NVC0_3D_INDEX_BATCH_FIRST                              0x000017dc
 
 #define NVC0_3D_INDEX_BATCH_COUNT                              0x000017e0
 
+#define NVC0_3D_UN17E4(i0)                                    (0x000017e4 + 0x4*(i0))
+#define NVC0_3D_UN17E4__ESIZE                                  0x00000004
+#define NVC0_3D_UN17E4__LEN                                    0x00000006
+
 #define NVC0_3D_POLYGON_OFFSET_CLAMP                           0x0000187c
 
 #define NVC0_3D_VERTEX_ARRAY_PER_INSTANCE(i0)                 (0x00001880 + 0x4*(i0))
 #define NVC0_3D_VERTEX_ARRAY_PER_INSTANCE__ESIZE               0x00000004
 #define NVC0_3D_VERTEX_ARRAY_PER_INSTANCE__LEN                 0x00000020
 
-#define NVC0_3D_VP_POINT_SIZE_EN                               0x00001910
+#define NVC0_3D_VP_POINT_SIZE                                  0x00001910
+#define NVC0_3D_VP_POINT_SIZE_ENABLE                           0x00000001
+#define NVC0_3D_VP_POINT_SIZE_UNK4__MASK                       0x00000ff0
+#define NVC0_3D_VP_POINT_SIZE_UNK4__SHIFT                      4
 
 #define NVC0_3D_CULL_FACE_ENABLE                               0x00001918
 
@@ -1035,21 +1487,23 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_FRONT_FACE_CCW                                 0x00000901
 
 #define NVC0_3D_CULL_FACE                                      0x00001920
-#define NVC0_3D_CULL_FACE_FRONT                                        0x00000404
+#define NVC0_3D_CULL_FACE_FRONT                                0x00000404
 #define NVC0_3D_CULL_FACE_BACK                                 0x00000405
 #define NVC0_3D_CULL_FACE_FRONT_AND_BACK                       0x00000408
 
-#define NVC0_3D_LINE_LAST_PIXEL                                        0x00001924
+#define NVC0_3D_PIXEL_CENTER_INTEGER                           0x00001924
 
 #define NVC0_3D_VIEWPORT_TRANSFORM_EN                          0x0000192c
 
+#define NVC0_3D_UNK1930                                        0x00001930
+
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL                          0x0000193c
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_RANGE_0_1          0x00000001
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1__MASK               0x00000006
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1__SHIFT              1
-#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK0                        0x00000000
-#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK1                        0x00000002
-#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK2                        0x00000004
+#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK0                0x00000000
+#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK1                0x00000002
+#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK2                0x00000004
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_CLAMP_NEAR         0x00000008
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_CLAMP_FAR          0x00000010
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK7                     0x00000080
@@ -1095,22 +1549,40 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_CLIP_DISTANCE_MODE_7_CLIP                      0x00000000
 #define NVC0_3D_CLIP_DISTANCE_MODE_7_CULL                      0x10000000
 
+#define NVC0_3D_UNK1944                                        0x00001944
+
+#define NVC0_3D_UNK1948                                        0x00001948
+
 #define NVC0_3D_CLIP_RECTS_EN                                  0x0000194c
 
-#define NVC0_3D_CLIP_RECTS_MODE                                        0x00001950
+#define NVC0_3D_CLIP_RECTS_MODE                                0x00001950
 #define NVC0_3D_CLIP_RECTS_MODE_INSIDE_ANY                     0x00000000
 #define NVC0_3D_CLIP_RECTS_MODE_OUTSIDE_ALL                    0x00000001
 #define NVC0_3D_CLIP_RECTS_MODE_NEVER                          0x00000002
 
 #define NVC0_3D_ZCULL_INVALIDATE                               0x00001958
 
-#define NVC0_3D_ZCULL_TEST_MASK                                        0x0000196c
-#define NVC0_3D_ZCULL_TEST_MASK_FAIL_GT_PASS_LT                        0x00000001
-#define NVC0_3D_ZCULL_TEST_MASK_PASS_GT_FAIL_LT                        0x00000010
+#define NVC0_3D_ZCULL_UNK1968                                  0x00001968
+#define NVC0_3D_ZCULL_UNK1968_TESTS_ENABLE                     0x00000001
+#define NVC0_3D_ZCULL_UNK1968_UNK4                             0x00000010
 
-#define NVC0_3D_FP_ZORDER_CTRL                                 0x0000196c
-#define NVC0_3D_FP_ZORDER_CTRL_0                               0x00000001
-#define NVC0_3D_FP_ZORDER_CTRL_1                               0x00000010
+#define NVC0_3D_ZCULL_TEST_MASK                                0x0000196c
+#define NVC0_3D_ZCULL_TEST_MASK_FAIL_GT_PASS_LT                0x00000001
+#define NVC0_3D_ZCULL_TEST_MASK_PASS_GT_FAIL_LT                0x00000010
+
+#define NVC0_3D_UNK1970_D3D                                    0x00001970
+#define NVC0_3D_UNK1970_D3D_POINTS                             0x00000001
+#define NVC0_3D_UNK1970_D3D_LINES                              0x00000002
+#define NVC0_3D_UNK1970_D3D_LINE_STRIP                         0x00000003
+#define NVC0_3D_UNK1970_D3D_TRIANGLES                          0x00000004
+#define NVC0_3D_UNK1970_D3D_TRIANGLE_STRIP                     0x00000005
+#define NVC0_3D_UNK1970_D3D_LINES_ADJACENCY                    0x0000000a
+#define NVC0_3D_UNK1970_D3D_LINE_STRIP_ADJACENCY               0x0000000b
+#define NVC0_3D_UNK1970_D3D_TRIANGLES_ADJACENCY                0x0000000c
+#define NVC0_3D_UNK1970_D3D_TRIANGLE_STRIP_ADJACENCY           0x0000000d
+#define NVC0_3D_UNK1970_D3D_PATCHES                            0x0000000e
+
+#define NVC0_3D_UNK1978                                        0x00001978
 
 #define NVC0_3D_CLIPID_ENABLE                                  0x0000197c
 
@@ -1120,9 +1592,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_CLIPID_ID                                      0x00001984
 
-#define NVC0_3D_DEPTH_BOUNDS_EN                                        0x000019bc
+#define NVC0_3D_DEPTH_BOUNDS_EN                                0x000019bc
+
+#define NVC0_3D_UNK19C0                                        0x000019c0
 
-#define NVC0_3D_LOGIC_OP_ENABLE                                        0x000019c4
+#define NVC0_3D_LOGIC_OP_ENABLE                                0x000019c4
 
 #define NVC0_3D_LOGIC_OP                                       0x000019c8
 #define NVC0_3D_LOGIC_OP_CLEAR                                 0x00001500
@@ -1135,7 +1609,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_LOGIC_OP_OR                                    0x00001507
 #define NVC0_3D_LOGIC_OP_NOR                                   0x00001508
 #define NVC0_3D_LOGIC_OP_EQUIV                                 0x00001509
-#define NVC0_3D_LOGIC_OP_INVERT                                        0x0000150a
+#define NVC0_3D_LOGIC_OP_INVERT                                0x0000150a
 #define NVC0_3D_LOGIC_OP_OR_REVERSE                            0x0000150b
 #define NVC0_3D_LOGIC_OP_COPY_INVERTED                         0x0000150c
 #define NVC0_3D_LOGIC_OP_OR_INVERTED                           0x0000150d
@@ -1145,14 +1619,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_ZETA_COMP_ENABLE                               0x000019cc
 
 #define NVC0_3D_CLEAR_BUFFERS                                  0x000019d0
-#define NVC0_3D_CLEAR_BUFFERS_Z                                        0x00000001
-#define NVC0_3D_CLEAR_BUFFERS_S                                        0x00000002
-#define NVC0_3D_CLEAR_BUFFERS_R                                        0x00000004
-#define NVC0_3D_CLEAR_BUFFERS_G                                        0x00000008
-#define NVC0_3D_CLEAR_BUFFERS_B                                        0x00000010
-#define NVC0_3D_CLEAR_BUFFERS_A                                        0x00000020
+#define NVC0_3D_CLEAR_BUFFERS_Z                                0x00000001
+#define NVC0_3D_CLEAR_BUFFERS_S                                0x00000002
+#define NVC0_3D_CLEAR_BUFFERS_R                                0x00000004
+#define NVC0_3D_CLEAR_BUFFERS_G                                0x00000008
+#define NVC0_3D_CLEAR_BUFFERS_B                                0x00000010
+#define NVC0_3D_CLEAR_BUFFERS_A                                0x00000020
 #define NVC0_3D_CLEAR_BUFFERS_RT__MASK                         0x000003c0
-#define NVC0_3D_CLEAR_BUFFERS_RT__SHIFT                                6
+#define NVC0_3D_CLEAR_BUFFERS_RT__SHIFT                        6
 #define NVC0_3D_CLEAR_BUFFERS_LAYER__MASK                      0x001ffc00
 #define NVC0_3D_CLEAR_BUFFERS_LAYER__SHIFT                     10
 
@@ -1164,12 +1638,18 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_COLOR_MASK(i0)                                (0x00001a00 + 0x4*(i0))
 #define NVC0_3D_COLOR_MASK__ESIZE                              0x00000004
-#define NVC0_3D_COLOR_MASK__LEN                                        0x00000008
+#define NVC0_3D_COLOR_MASK__LEN                                0x00000008
 #define NVC0_3D_COLOR_MASK_R                                   0x0000000f
 #define NVC0_3D_COLOR_MASK_G                                   0x000000f0
 #define NVC0_3D_COLOR_MASK_B                                   0x00000f00
 #define NVC0_3D_COLOR_MASK_A                                   0x0000f000
 
+#define NVC0_3D_DELAY                                          0x00001a24
+
+#define NVC0_3D_UNK1A2C(i0)                                   (0x00001a2c + 0x4*(i0))
+#define NVC0_3D_UNK1A2C__ESIZE                                 0x00000004
+#define NVC0_3D_UNK1A2C__LEN                                   0x00000005
+
 #define NVC0_3D_QUERY_ADDRESS_HIGH                             0x00001b00
 
 #define NVC0_3D_QUERY_ADDRESS_LOW                              0x00001b04
@@ -1179,12 +1659,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_QUERY_GET                                      0x00001b0c
 #define NVC0_3D_QUERY_GET_MODE__MASK                           0x00000003
 #define NVC0_3D_QUERY_GET_MODE__SHIFT                          0
-#define NVC0_3D_QUERY_GET_MODE_WRITE_UNK0                      0x00000000
+#define NVC0_3D_QUERY_GET_MODE_WRITE                           0x00000000
 #define NVC0_3D_QUERY_GET_MODE_SYNC                            0x00000001
 #define NVC0_3D_QUERY_GET_MODE_WRITE_UNK2                      0x00000002
-#define NVC0_3D_QUERY_GET_FENCE                                        0x00000010
+#define NVC0_3D_QUERY_GET_MODE_WRITE_INTR_NRHOST               0x00000003
+#define NVC0_3D_QUERY_GET_UNK2                                 0x00000004
+#define NVC0_3D_QUERY_GET_FENCE                                0x00000010
 #define NVC0_3D_QUERY_GET_STREAM__MASK                         0x000000e0
-#define NVC0_3D_QUERY_GET_STREAM__SHIFT                                5
+#define NVC0_3D_QUERY_GET_STREAM__SHIFT                        5
 #define NVC0_3D_QUERY_GET_UNK8                                 0x00000100
 #define NVC0_3D_QUERY_GET_UNIT__MASK                           0x0000f000
 #define NVC0_3D_QUERY_GET_UNIT__SHIFT                          12
@@ -1193,19 +1675,19 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_QUERY_GET_SYNC_COND_NEQUAL                     0x00000000
 #define NVC0_3D_QUERY_GET_SYNC_COND_GREATER                    0x00010000
 #define NVC0_3D_QUERY_GET_INTR                                 0x00100000
-#define NVC0_3D_QUERY_GET_UNK21                                        0x00200000
+#define NVC0_3D_QUERY_GET_UNK21                                0x00200000
 #define NVC0_3D_QUERY_GET_SELECT__MASK                         0x0f800000
-#define NVC0_3D_QUERY_GET_SELECT__SHIFT                                23
+#define NVC0_3D_QUERY_GET_SELECT__SHIFT                        23
 #define NVC0_3D_QUERY_GET_SELECT_ZERO                          0x00000000
 #define NVC0_3D_QUERY_GET_SELECT_SAMPLECNT                     0x01000000
 #define NVC0_3D_QUERY_GET_SELECT_EMITTED_PRIMS                 0x05800000
 #define NVC0_3D_QUERY_GET_SELECT_GENERATED_PRIMS               0x09000000
-#define NVC0_3D_QUERY_GET_SHORT                                        0x10000000
+#define NVC0_3D_QUERY_GET_SHORT                                0x10000000
 
 #define NVC0_3D_VERTEX_ARRAY_FETCH(i0)                        (0x00001c00 + 0x10*(i0))
 #define NVC0_3D_VERTEX_ARRAY_FETCH__ESIZE                      0x00000010
-#define NVC0_3D_VERTEX_ARRAY_FETCH__LEN                                0x00000020
-#define NVC0_3D_VERTEX_ARRAY_FETCH_STRIDE__MASK                        0x00000fff
+#define NVC0_3D_VERTEX_ARRAY_FETCH__LEN                        0x00000020
+#define NVC0_3D_VERTEX_ARRAY_FETCH_STRIDE__MASK                0x00000fff
 #define NVC0_3D_VERTEX_ARRAY_FETCH_STRIDE__SHIFT               0
 #define NVC0_3D_VERTEX_ARRAY_FETCH_ENABLE                      0x00001000
 
@@ -1225,16 +1707,18 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_IBLEND__ESIZE                                  0x00000020
 #define NVC0_3D_IBLEND__LEN                                    0x00000008
 
-#define NVC0_3D_IBLEND_EQUATION_RGB(i0)                               (0x00001e04 + 0x20*(i0))
+#define NVC0_3D_IBLEND_SEPARATE_ALPHA(i0)                     (0x00001e00 + 0x20*(i0))
+
+#define NVC0_3D_IBLEND_EQUATION_RGB(i0)                       (0x00001e04 + 0x20*(i0))
 #define NVC0_3D_IBLEND_EQUATION_RGB_FUNC_ADD                   0x00008006
-#define NVC0_3D_IBLEND_EQUATION_RGB_MIN                                0x00008007
-#define NVC0_3D_IBLEND_EQUATION_RGB_MAX                                0x00008008
+#define NVC0_3D_IBLEND_EQUATION_RGB_MIN                        0x00008007
+#define NVC0_3D_IBLEND_EQUATION_RGB_MAX                        0x00008008
 #define NVC0_3D_IBLEND_EQUATION_RGB_FUNC_SUBTRACT              0x0000800a
 #define NVC0_3D_IBLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT      0x0000800b
 
-#define NVC0_3D_IBLEND_FUNC_SRC_RGB(i0)                               (0x00001e08 + 0x20*(i0))
+#define NVC0_3D_IBLEND_FUNC_SRC_RGB(i0)                       (0x00001e08 + 0x20*(i0))
 
-#define NVC0_3D_IBLEND_FUNC_DST_RGB(i0)                               (0x00001e0c + 0x20*(i0))
+#define NVC0_3D_IBLEND_FUNC_DST_RGB(i0)                       (0x00001e0c + 0x20*(i0))
 
 #define NVC0_3D_IBLEND_EQUATION_ALPHA(i0)                     (0x00001e10 + 0x20*(i0))
 #define NVC0_3D_IBLEND_EQUATION_ALPHA_FUNC_ADD                 0x00008006
@@ -1257,11 +1741,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_SP(i0)                                        (0x00002000 + 0x40*(i0))
 #define NVC0_3D_SP__ESIZE                                      0x00000040
-#define NVC0_3D_SP__LEN                                                0x00000006
+#define NVC0_3D_SP__LEN                                        0x00000006
 
 #define NVC0_3D_SP_SELECT(i0)                                 (0x00002000 + 0x40*(i0))
 #define NVC0_3D_SP_SELECT_ENABLE                               0x00000001
-#define NVC0_3D_SP_SELECT_PROGRAM__MASK                                0x00000070
+#define NVC0_3D_SP_SELECT_PROGRAM__MASK                        0x000000f0
 #define NVC0_3D_SP_SELECT_PROGRAM__SHIFT                       4
 #define NVC0_3D_SP_SELECT_PROGRAM_VP_A                         0x00000000
 #define NVC0_3D_SP_SELECT_PROGRAM_VP_B                         0x00000010
@@ -1270,21 +1754,50 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_SP_SELECT_PROGRAM_GP                           0x00000040
 #define NVC0_3D_SP_SELECT_PROGRAM_FP                           0x00000050
 
-#define NVC0_3D_SP_START_ID(i0)                                       (0x00002004 + 0x40*(i0))
+#define NVC0_3D_SP_START_ID(i0)                               (0x00002004 + 0x40*(i0))
+
+#define NVC0_3D_SP_UNK08(i0)                                  (0x00002008 + 0x40*(i0))
 
 #define NVC0_3D_SP_GPR_ALLOC(i0)                              (0x0000200c + 0x40*(i0))
 
+#define NVC0_3D_SP_TYPE(i0)                                   (0x00002010 + 0x40*(i0))
+#define NVC0_3D_SP_TYPE_VP                                     0x00000000
+#define NVC0_3D_SP_TYPE_TCP                                    0x00000001
+#define NVC0_3D_SP_TYPE_TEP                                    0x00000002
+#define NVC0_3D_SP_TYPE_GP                                     0x00000003
+#define NVC0_3D_SP_TYPE_FP                                     0x00000004
+
+#define NVC0_3D_SP_UNK14(i0, i1)                              (0x00002014 + 0x40*(i0) + 0x4*(i1))
+#define NVC0_3D_SP_UNK14__ESIZE                                0x00000004
+#define NVC0_3D_SP_UNK14__LEN                                  0x00000004
+
 #define NVC0_3D_TEX_LIMITS(i0)                                (0x00002200 + 0x10*(i0))
 #define NVC0_3D_TEX_LIMITS__ESIZE                              0x00000010
-#define NVC0_3D_TEX_LIMITS__LEN                                        0x00000005
+#define NVC0_3D_TEX_LIMITS__LEN                                0x00000005
+#define NVC0_3D_TEX_LIMITS_SAMPLERS_LOG2__MASK                 0x0000000f
+#define NVC0_3D_TEX_LIMITS_SAMPLERS_LOG2__SHIFT                0
+#define NVC0_3D_TEX_LIMITS_SAMPLERS_LOG2__MIN                  0x00000000
+#define NVC0_3D_TEX_LIMITS_SAMPLERS_LOG2__MAX                  0x00000004
+#define NVC0_3D_TEX_LIMITS_TEXTURES_LOG2__MASK                 0x000000f0
+#define NVC0_3D_TEX_LIMITS_TEXTURES_LOG2__SHIFT                4
+#define NVC0_3D_TEX_LIMITS_TEXTURES_LOG2__MIN                  0x00000000
+#define NVC0_3D_TEX_LIMITS_TEXTURES_LOG2__MAX                  0x00000007
+
+#define NVC0_3D_UNK2204(i0)                                   (0x00002204 + 0x10*(i0))
+#define NVC0_3D_UNK2204__ESIZE                                 0x00000010
+#define NVC0_3D_UNK2204__LEN                                   0x00000005
+
+#define NVC0_3D_UNK2208(i0)                                   (0x00002208 + 0x10*(i0))
+#define NVC0_3D_UNK2208__ESIZE                                 0x00000010
+#define NVC0_3D_UNK2208__LEN                                   0x00000005
 
 #define NVC0_3D_FIRMWARE(i0)                                  (0x00002300 + 0x4*(i0))
-#define NVC0_3D_FIRMWARE__ESIZE                                        0x00000004
+#define NVC0_3D_FIRMWARE__ESIZE                                0x00000004
 #define NVC0_3D_FIRMWARE__LEN                                  0x00000020
 
-#define NVC0_3D_CB_SIZE                                                0x00002380
+#define NVC0_3D_CB_SIZE                                        0x00002380
 
-#define NVC0_3D_CB_ADDRESS_HIGH                                        0x00002384
+#define NVC0_3D_CB_ADDRESS_HIGH                                0x00002384
 
 #define NVC0_3D_CB_ADDRESS_LOW                                 0x00002388
 
@@ -1295,63 +1808,247 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_CB_DATA__LEN                                   0x00000010
 
 #define NVC0_3D_BIND_TSC(i0)                                  (0x00002400 + 0x20*(i0))
-#define NVC0_3D_BIND_TSC__ESIZE                                        0x00000020
+#define NVC0_3D_BIND_TSC__ESIZE                                0x00000020
 #define NVC0_3D_BIND_TSC__LEN                                  0x00000005
-#define NVC0_3D_BIND_TSC_ACTIVE                                        0x00000001
+#define NVC0_3D_BIND_TSC_ACTIVE                                0x00000001
 #define NVC0_3D_BIND_TSC_SAMPLER__MASK                         0x00000ff0
-#define NVC0_3D_BIND_TSC_SAMPLER__SHIFT                                4
+#define NVC0_3D_BIND_TSC_SAMPLER__SHIFT                        4
 #define NVC0_3D_BIND_TSC_TSC__MASK                             0x01fff000
 #define NVC0_3D_BIND_TSC_TSC__SHIFT                            12
 
 #define NVC0_3D_BIND_TIC(i0)                                  (0x00002404 + 0x20*(i0))
-#define NVC0_3D_BIND_TIC__ESIZE                                        0x00000020
+#define NVC0_3D_BIND_TIC__ESIZE                                0x00000020
 #define NVC0_3D_BIND_TIC__LEN                                  0x00000005
-#define NVC0_3D_BIND_TIC_ACTIVE                                        0x00000001
+#define NVC0_3D_BIND_TIC_ACTIVE                                0x00000001
 #define NVC0_3D_BIND_TIC_TEXTURE__MASK                         0x000001fe
-#define NVC0_3D_BIND_TIC_TEXTURE__SHIFT                                1
+#define NVC0_3D_BIND_TIC_TEXTURE__SHIFT                        1
 #define NVC0_3D_BIND_TIC_TIC__MASK                             0x7ffffe00
 #define NVC0_3D_BIND_TIC_TIC__SHIFT                            9
 
+#define NVC0_3D_BIND_TSC2(i0)                                 (0x00002408 + 0x20*(i0))
+#define NVC0_3D_BIND_TSC2__ESIZE                               0x00000020
+#define NVC0_3D_BIND_TSC2__LEN                                 0x00000005
+#define NVC0_3D_BIND_TSC2_ACTIVE                               0x00000001
+#define NVC0_3D_BIND_TSC2_SAMPLER__MASK                        0x00000010
+#define NVC0_3D_BIND_TSC2_SAMPLER__SHIFT                       4
+#define NVC0_3D_BIND_TSC2_TSC__MASK                            0x01fff000
+#define NVC0_3D_BIND_TSC2_TSC__SHIFT                           12
+
+#define NVC0_3D_BIND_TIC2(i0)                                 (0x0000240c + 0x20*(i0))
+#define NVC0_3D_BIND_TIC2__ESIZE                               0x00000020
+#define NVC0_3D_BIND_TIC2__LEN                                 0x00000005
+#define NVC0_3D_BIND_TIC2_ACTIVE                               0x00000001
+#define NVC0_3D_BIND_TIC2_TEXTURE__MASK                        0x00000002
+#define NVC0_3D_BIND_TIC2_TEXTURE__SHIFT                       1
+#define NVC0_3D_BIND_TIC2_TIC__MASK                            0x7ffffe00
+#define NVC0_3D_BIND_TIC2_TIC__SHIFT                           9
+
+#define NVE4_3D_UNK2400_TSC(i0)                               (0x00002400 + 0x20*(i0))
+#define NVE4_3D_UNK2400_TSC__ESIZE                             0x00000020
+#define NVE4_3D_UNK2400_TSC__LEN                               0x00000005
+
+#define NVE4_3D_UNK2400_TIC(i0)                               (0x00002404 + 0x20*(i0))
+#define NVE4_3D_UNK2400_TIC__ESIZE                             0x00000020
+#define NVE4_3D_UNK2400_TIC__LEN                               0x00000005
+
+#define NVE4_3D_UNK2400_TSC2(i0)                              (0x00002408 + 0x20*(i0))
+#define NVE4_3D_UNK2400_TSC2__ESIZE                            0x00000020
+#define NVE4_3D_UNK2400_TSC2__LEN                              0x00000005
+
+#define NVE4_3D_UNK2400_TIC2(i0)                              (0x0000240c + 0x20*(i0))
+#define NVE4_3D_UNK2400_TIC2__ESIZE                            0x00000020
+#define NVE4_3D_UNK2400_TIC2__LEN                              0x00000005
+
 #define NVC0_3D_CB_BIND(i0)                                   (0x00002410 + 0x20*(i0))
 #define NVC0_3D_CB_BIND__ESIZE                                 0x00000020
 #define NVC0_3D_CB_BIND__LEN                                   0x00000005
 #define NVC0_3D_CB_BIND_VALID                                  0x00000001
-#define NVC0_3D_CB_BIND_INDEX__MASK                            0x000000f0
+#define NVC0_3D_CB_BIND_INDEX__MASK                            0x000001f0
 #define NVC0_3D_CB_BIND_INDEX__SHIFT                           4
 
+#define NVC0_3D_UNK2500(i0)                                   (0x00002500 + 0x20*(i0))
+#define NVC0_3D_UNK2500__ESIZE                                 0x00000020
+#define NVC0_3D_UNK2500__LEN                                   0x00000005
+
+#define NVC0_3D_UNK2504(i0)                                   (0x00002504 + 0x20*(i0))
+#define NVC0_3D_UNK2504__ESIZE                                 0x00000020
+#define NVC0_3D_UNK2504__LEN                                   0x00000005
+
+#define NVC0_3D_UNK2508(i0)                                   (0x00002508 + 0x20*(i0))
+#define NVC0_3D_UNK2508__ESIZE                                 0x00000020
+#define NVC0_3D_UNK2508__LEN                                   0x00000005
+
+#define NVC0_3D_UNK250C(i0)                                   (0x0000250c + 0x20*(i0))
+#define NVC0_3D_UNK250C__ESIZE                                 0x00000020
+#define NVC0_3D_UNK250C__LEN                                   0x00000005
+
+#define NVC0_3D_UNK2510(i0)                                   (0x00002510 + 0x20*(i0))
+#define NVC0_3D_UNK2510__ESIZE                                 0x00000020
+#define NVC0_3D_UNK2510__LEN                                   0x00000005
+
 #define NVC0_3D_VERT_COLOR_CLAMP_EN                            0x00002600
 
+#define NVE4_3D_UNK2604                                        0x00002604
+
 #define NVE4_3D_TEX_CB_INDEX                                   0x00002608
 #define NVE4_3D_TEX_CB_INDEX__MIN                              0x00000000
 #define NVE4_3D_TEX_CB_INDEX__MAX                              0x00000010
 
-#define NVC0_3D_TFB_VARYING_LOCS(i0, i1)                      (0x00002800 + 0x80*(i0) + 0x4*(i1))
-#define NVC0_3D_TFB_VARYING_LOCS__ESIZE                                0x00000004
-#define NVC0_3D_TFB_VARYING_LOCS__LEN                          0x00000020
+#define NVE4_3D_UNK260C                                        0x0000260c
 
-#define NVC0_3D_MACRO_VERTEX_ARRAY_PER_INSTANCE                        0x00003800
+#define NVC0_3D_IMAGE(i0)                                     (0x00002700 + 0x20*(i0))
+#define NVC0_3D_IMAGE__ESIZE                                   0x00000020
+#define NVC0_3D_IMAGE__LEN                                     0x00000008
 
-#define NVC0_3D_MACRO_VERTEX_ARRAY_SELECT                      0x00003808
+#define NVC0_3D_IMAGE_ADDRESS_HIGH(i0)                        (0x00002700 + 0x20*(i0))
 
-#define NVC0_3D_MACRO_BLEND_ENABLES                            0x00003810
+#define NVC0_3D_IMAGE_ADDRESS_LOW(i0)                         (0x00002704 + 0x20*(i0))
 
-#define NVC0_3D_MACRO_POLYGON_MODE_FRONT                       0x00003818
-#define NVC0_3D_MACRO_POLYGON_MODE_FRONT_POINT                 0x00001b00
-#define NVC0_3D_MACRO_POLYGON_MODE_FRONT_LINE                  0x00001b01
-#define NVC0_3D_MACRO_POLYGON_MODE_FRONT_FILL                  0x00001b02
+#define NVC0_3D_IMAGE_WIDTH(i0)                               (0x00002708 + 0x20*(i0))
 
-#define NVC0_3D_MACRO_POLYGON_MODE_BACK                                0x00003820
-#define NVC0_3D_MACRO_POLYGON_MODE_BACK_POINT                  0x00001b00
-#define NVC0_3D_MACRO_POLYGON_MODE_BACK_LINE                   0x00001b01
-#define NVC0_3D_MACRO_POLYGON_MODE_BACK_FILL                   0x00001b02
+#define NVC0_3D_IMAGE_HEIGHT(i0)                              (0x0000270c + 0x20*(i0))
+#define NVC0_3D_IMAGE_HEIGHT_HEIGHT__MASK                      0x0000ffff
+#define NVC0_3D_IMAGE_HEIGHT_HEIGHT__SHIFT                     0
+#define NVC0_3D_IMAGE_HEIGHT_UNK16                             0x00010000
+#define NVC0_3D_IMAGE_HEIGHT_LINEAR                            0x00100000
 
-#define NVC0_3D_MACRO_GP_SELECT                                        0x00003828
+#define NVC0_3D_IMAGE_FORMAT(i0)                              (0x00002710 + 0x20*(i0))
+#define NVC0_3D_IMAGE_FORMAT_UNK0                              0x00000001
+#define NVC0_3D_IMAGE_FORMAT_FORMAT_COLOR__MASK                0x00000ff0
+#define NVC0_3D_IMAGE_FORMAT_FORMAT_COLOR__SHIFT               4
+#define NVC0_3D_IMAGE_FORMAT_FORMAT_ZETA__MASK                 0x0001f000
+#define NVC0_3D_IMAGE_FORMAT_FORMAT_ZETA__SHIFT                12
 
-#define NVC0_3D_MACRO_TEP_SELECT                               0x00003830
+#define NVC0_3D_IMAGE_TILE_MODE(i0)                           (0x00002714 + 0x20*(i0))
 
-#define NVC0_3D_MACRO_DRAW_ARRAYS_INDIRECT                     0x00003838
 
-#define NVC0_3D_MACRO_DRAW_ELEMENTS_INDIRECT                   0x00003840
+#define NVC0_3D_TFB_VARYING_LOCS(i0, i1)                      (0x00002800 + 0x80*(i0) + 0x4*(i1))
+#define NVC0_3D_TFB_VARYING_LOCS__ESIZE                        0x00000004
+#define NVC0_3D_TFB_VARYING_LOCS__LEN                          0x00000020
+
+#define NVC0_3D_MP_PM_SET(i0)                                 (0x0000335c + 0x4*(i0))
+#define NVC0_3D_MP_PM_SET__ESIZE                               0x00000004
+#define NVC0_3D_MP_PM_SET__LEN                                 0x00000008
+
+#define NVC0_3D_MP_PM_SIGSEL(i0)                              (0x0000337c + 0x4*(i0))
+#define NVC0_3D_MP_PM_SIGSEL__ESIZE                            0x00000004
+#define NVC0_3D_MP_PM_SIGSEL__LEN                              0x00000008
+
+#define NVE4_3D_MP_PM_A_SIGSEL(i0)                            (0x0000337c + 0x4*(i0))
+#define NVE4_3D_MP_PM_A_SIGSEL__ESIZE                          0x00000004
+#define NVE4_3D_MP_PM_A_SIGSEL__LEN                            0x00000004
+#define NVE4_3D_MP_PM_A_SIGSEL_NONE                            0x00000000
+#define NVE4_3D_MP_PM_A_SIGSEL_USER                            0x00000001
+#define NVE4_3D_MP_PM_A_SIGSEL_LAUNCH                          0x00000003
+#define NVE4_3D_MP_PM_A_SIGSEL_EXEC                            0x00000004
+#define NVE4_3D_MP_PM_A_SIGSEL_ISSUE                           0x00000005
+#define NVE4_3D_MP_PM_A_SIGSEL_LDST                            0x0000001b
+#define NVE4_3D_MP_PM_A_SIGSEL_BRANCH                          0x0000001c
+
+#define NVE4_3D_MP_PM_B_SIGSEL(i0)                            (0x0000338c + 0x4*(i0))
+#define NVE4_3D_MP_PM_B_SIGSEL__ESIZE                          0x00000004
+#define NVE4_3D_MP_PM_B_SIGSEL__LEN                            0x00000004
+#define NVE4_3D_MP_PM_B_SIGSEL_NONE                            0x00000000
+#define NVE4_3D_MP_PM_B_SIGSEL_WARP                            0x00000002
+#define NVE4_3D_MP_PM_B_SIGSEL_REPLAY                          0x00000008
+#define NVE4_3D_MP_PM_B_SIGSEL_TRANSACTION                     0x0000000e
+#define NVE4_3D_MP_PM_B_SIGSEL_L1                              0x00000010
+#define NVE4_3D_MP_PM_B_SIGSEL_MEM                             0x00000011
+
+#define NVC0_3D_MP_PM_SRCSEL(i0)                              (0x0000339c + 0x4*(i0))
+#define NVC0_3D_MP_PM_SRCSEL__ESIZE                            0x00000004
+#define NVC0_3D_MP_PM_SRCSEL__LEN                              0x00000008
+#define NVC0_3D_MP_PM_SRCSEL_GRP0__MASK                        0x00000007
+#define NVC0_3D_MP_PM_SRCSEL_GRP0__SHIFT                       0
+#define NVC0_3D_MP_PM_SRCSEL_SIG0__MASK                        0x00000070
+#define NVC0_3D_MP_PM_SRCSEL_SIG0__SHIFT                       4
+#define NVC0_3D_MP_PM_SRCSEL_GRP1__MASK                        0x00000700
+#define NVC0_3D_MP_PM_SRCSEL_GRP1__SHIFT                       8
+#define NVC0_3D_MP_PM_SRCSEL_SIG1__MASK                        0x00007000
+#define NVC0_3D_MP_PM_SRCSEL_SIG1__SHIFT                       12
+#define NVC0_3D_MP_PM_SRCSEL_GRP2__MASK                        0x00070000
+#define NVC0_3D_MP_PM_SRCSEL_GRP2__SHIFT                       16
+#define NVC0_3D_MP_PM_SRCSEL_SIG2__MASK                        0x00700000
+#define NVC0_3D_MP_PM_SRCSEL_SIG2__SHIFT                       20
+#define NVC0_3D_MP_PM_SRCSEL_GRP3__MASK                        0x07000000
+#define NVC0_3D_MP_PM_SRCSEL_GRP3__SHIFT                       24
+#define NVC0_3D_MP_PM_SRCSEL_SIG3__MASK                        0x70000000
+#define NVC0_3D_MP_PM_SRCSEL_SIG3__SHIFT                       28
+
+#define NVE4_3D_MP_PM_SRCSEL(i0)                              (0x0000339c + 0x4*(i0))
+#define NVE4_3D_MP_PM_SRCSEL__ESIZE                            0x00000004
+#define NVE4_3D_MP_PM_SRCSEL__LEN                              0x00000008
+#define NVE4_3D_MP_PM_SRCSEL_GRP0__MASK                        0x00000003
+#define NVE4_3D_MP_PM_SRCSEL_GRP0__SHIFT                       0
+#define NVE4_3D_MP_PM_SRCSEL_SIG0__MASK                        0x0000001c
+#define NVE4_3D_MP_PM_SRCSEL_SIG0__SHIFT                       2
+#define NVE4_3D_MP_PM_SRCSEL_GRP1__MASK                        0x00000060
+#define NVE4_3D_MP_PM_SRCSEL_GRP1__SHIFT                       5
+#define NVE4_3D_MP_PM_SRCSEL_SIG1__MASK                        0x00000380
+#define NVE4_3D_MP_PM_SRCSEL_SIG1__SHIFT                       7
+#define NVE4_3D_MP_PM_SRCSEL_GRP2__MASK                        0x00000c00
+#define NVE4_3D_MP_PM_SRCSEL_GRP2__SHIFT                       10
+#define NVE4_3D_MP_PM_SRCSEL_SIG2__MASK                        0x00007000
+#define NVE4_3D_MP_PM_SRCSEL_SIG2__SHIFT                       12
+#define NVE4_3D_MP_PM_SRCSEL_GRP3__MASK                        0x00018000
+#define NVE4_3D_MP_PM_SRCSEL_GRP3__SHIFT                       15
+#define NVE4_3D_MP_PM_SRCSEL_SIG3__MASK                        0x000e0000
+#define NVE4_3D_MP_PM_SRCSEL_SIG3__SHIFT                       17
+#define NVE4_3D_MP_PM_SRCSEL_GRP4__MASK                        0x00300000
+#define NVE4_3D_MP_PM_SRCSEL_GRP4__SHIFT                       20
+#define NVE4_3D_MP_PM_SRCSEL_SIG4__MASK                        0x01c00000
+#define NVE4_3D_MP_PM_SRCSEL_SIG4__SHIFT                       22
+#define NVE4_3D_MP_PM_SRCSEL_GRP5__MASK                        0x06000000
+#define NVE4_3D_MP_PM_SRCSEL_GRP5__SHIFT                       25
+#define NVE4_3D_MP_PM_SRCSEL_SIG5__MASK                        0x38000000
+#define NVE4_3D_MP_PM_SRCSEL_SIG5__SHIFT                       27
+
+#define NVC0_3D_MP_PM_OP(i0)                                  (0x000033bc + 0x4*(i0))
+#define NVC0_3D_MP_PM_OP__ESIZE                                0x00000004
+#define NVC0_3D_MP_PM_OP__LEN                                  0x00000008
+#define NVC0_3D_MP_PM_OP_MODE__MASK                            0x00000001
+#define NVC0_3D_MP_PM_OP_MODE__SHIFT                           0
+#define NVC0_3D_MP_PM_OP_MODE_LOGOP                            0x00000000
+#define NVC0_3D_MP_PM_OP_MODE_LOGOP_PULSE                      0x00000001
+#define NVC0_3D_MP_PM_OP_FUNC__MASK                            0x000ffff0
+#define NVC0_3D_MP_PM_OP_FUNC__SHIFT                           4
+
+#define NVE4_3D_MP_PM_FUNC(i0)                                (0x000033bc + 0x4*(i0))
+#define NVE4_3D_MP_PM_FUNC__ESIZE                              0x00000004
+#define NVE4_3D_MP_PM_FUNC__LEN                                0x00000008
+#define NVE4_3D_MP_PM_FUNC_MODE__MASK                          0x0000000f
+#define NVE4_3D_MP_PM_FUNC_MODE__SHIFT                         0
+#define NVE4_3D_MP_PM_FUNC_MODE_LOGOP                          0x00000000
+#define NVE4_3D_MP_PM_FUNC_MODE_LOGOP_PULSE                    0x00000001
+#define NVE4_3D_MP_PM_FUNC_MODE_B6                             0x00000002
+#define NVE4_3D_MP_PM_FUNC_MODE_UNK3                           0x00000003
+#define NVE4_3D_MP_PM_FUNC_MODE_LOGOP_B6                       0x00000004
+#define NVE4_3D_MP_PM_FUNC_MODE_LOGOP_B6_PULSE                 0x00000005
+#define NVE4_3D_MP_PM_FUNC_MODE_UNK6                           0x00000006
+#define NVE4_3D_MP_PM_FUNC_MODE_UNK7                           0x00000007
+#define NVE4_3D_MP_PM_FUNC_MODE_UNK8                           0x00000008
+#define NVE4_3D_MP_PM_FUNC_FUNC__MASK                          0x000ffff0
+#define NVE4_3D_MP_PM_FUNC_FUNC__SHIFT                         4
+
+#define NVC0_3D_MP_PM_UNK33DC                                  0x000033dc
+
+#define NVC0_3D_NVRM_MACRO_VERTEX_ARRAY_SELECT                 0x00003820
+
+#define NVC0_3D_NVRM_MACRO_BLEND_ENABLES                       0x00003858
+
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_FRONT                  0x00003868
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_FRONT_POINT            0x00001b00
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_FRONT_LINE             0x00001b01
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_FRONT_FILL             0x00001b02
+
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_BACK                   0x00003870
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_BACK_POINT             0x00001b00
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_BACK_LINE              0x00001b01
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_BACK_FILL              0x00001b02
+
+#define NVC0_3D_NVRM_MACRO_GP_SELECT                           0x00003878
+
+#define NVC0_3D_NVRM_MACRO_TEP_SELECT                          0x00003880
 
 
 #endif /* NVC0_3D_XML */