Merge remote branch 'origin/master' into nv50-compiler
[mesa.git] / src / gallium / drivers / nouveau / nouveau_class.h
index c3d8d7539d1d09253f60066c7dc408e1b383e081..d9f35b4c4b9683813c5e228d02bae4702f786d7d 100644 (file)
@@ -2,6 +2,13 @@
 
    Autogenerated file, do not edit !
 
+   This file was generated by renouveau-gen from renouveau.xml, the
+   XML database of nvidia objects and methods. renouveau-gen and
+   renouveau.xml can be found in CVS module renouveau of sourceforge.net
+   project nouveau:
+
+cvs -z3 -d:pserver:anonymous@nouveau.cvs.sourceforge.net:/cvsroot/nouveau co -P renouveau
+
 **************************************************************************
 
    Copyright (C) 2006-2008 :
@@ -71,25 +78,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV01_TIMER_ALARM_NOTIFY                                                       0x00000308
 
 
-#define NV_IMAGE_STENCIL                                                               0x00000010
-
-#define  NV_IMAGE_STENCIL_NOTIFY                                                       0x00000104
-#define  NV_IMAGE_STENCIL_DMA_NOTIFY                                                   0x00000180
-#define  NV_IMAGE_STENCIL_IMAGE_OUTPUT                                                 0x00000200
-#define  NV_IMAGE_STENCIL_IMAGE_INPUT(x)                                               (0x00000204+((x)*4))
-#define  NV_IMAGE_STENCIL_IMAGE_INPUT__SIZE                                            0x00000002
-
-
-#define NV_IMAGE_BLEND_AND                                                             0x00000011
-
-#define  NV_IMAGE_BLEND_AND_NOP                                                                0x00000100
-#define  NV_IMAGE_BLEND_AND_NOTIFY                                                     0x00000104
-#define  NV_IMAGE_BLEND_AND_DMA_NOTIFY                                                 0x00000180
-#define  NV_IMAGE_BLEND_AND_IMAGE_OUTPUT                                               0x00000200
-#define  NV_IMAGE_BLEND_AND_BETA_INPUT                                                 0x00000204
-#define  NV_IMAGE_BLEND_AND_IMAGE_INPUT                                                        0x00000208
-
-
 #define NV01_CONTEXT_BETA1                                                             0x00000012
 
 #define  NV01_CONTEXT_BETA1_NOP                                                                0x00000100
@@ -98,20 +86,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV01_CONTEXT_BETA1_BETA_1D31                                                  0x00000300
 
 
-#define NV_IMAGE_ROP_AND                                                               0x00000013
-
-#define  NV_IMAGE_ROP_AND_NOTIFY                                                       0x00000104
-#define  NV_IMAGE_ROP_AND_DMA_NOTIFY                                                   0x00000180
-#define  NV_IMAGE_ROP_AND_IMAGE_OUTPUT                                                 0x00000200
-#define  NV_IMAGE_ROP_AND_ROP_INPUT                                                    0x00000204
-#define  NV_IMAGE_ROP_AND_IMAGE_INPUT(x)                                               (0x00000208+((x)*4))
-#define  NV_IMAGE_ROP_AND_IMAGE_INPUT__SIZE                                            0x00000002
-
-
-#define NV_IMAGE_COLOR_KEY                                                             0x00000015
-
-
-
 #define NV01_CONTEXT_COLOR_KEY                                                         0x00000017
 
 #define  NV01_CONTEXT_COLOR_KEY_NOP                                                    0x00000100
@@ -129,6 +103,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV01_CONTEXT_COLOR_KEY_COLOR                                                  0x00000304
 
 
+#define NV04_CONTEXT_COLOR_KEY                                                         0x00000057
+
+
+
 #define NV01_CONTEXT_PATTERN                                                           0x00000018
 
 #define  NV01_CONTEXT_PATTERN_NOP                                                      0x00000100
@@ -228,6 +206,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y_MASK                                        0xffff0000
 
 
+#define NV04_RENDER_SOLID_LINE                                                         0x0000005c
+
+#define  NV04_RENDER_SOLID_LINE_BETA4                                                  0x00000194
+#define  NV04_RENDER_SOLID_LINE_SURFACE                                                        0x00000198
+
+
 #define NV01_RENDER_SOLID_TRIANGLE                                                     0x0000001d
 
 #define  NV01_RENDER_SOLID_TRIANGLE_NOP                                                        0x00000100
@@ -309,6 +293,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y_MASK                             0xffff0000
 
 
+#define NV04_RENDER_SOLID_TRIANGLE                                                     0x0000005d
+
+#define  NV04_RENDER_SOLID_TRIANGLE_BETA4                                              0x00000194
+#define  NV04_RENDER_SOLID_TRIANGLE_SURFACE                                            0x00000198
+
+
 #define NV01_RENDER_SOLID_RECTANGLE                                                    0x0000001e
 
 #define  NV01_RENDER_SOLID_RECTANGLE_NOP                                               0x00000100
@@ -343,6 +333,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H_MASK                            0xffff0000
 
 
+#define NV04_RENDER_SOLID_RECTANGLE                                                    0x0000005e
+
+#define  NV04_RENDER_SOLID_RECTANGLE_BETA4                                             0x00000194
+#define  NV04_RENDER_SOLID_RECTANGLE_SURFACE                                           0x00000198
+
+
 #define NV01_IMAGE_BLIT                                                                        0x0000001f
 
 #define  NV01_IMAGE_BLIT_NOP                                                           0x00000100
@@ -356,6 +352,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV01_IMAGE_BLIT_BETA1                                                         0x00000194
 #define  NV01_IMAGE_BLIT_SURFACE                                                       0x0000019c
 #define  NV01_IMAGE_BLIT_OPERATION                                                     0x000002fc
+#define   NV01_IMAGE_BLIT_OPERATION_SRCCOPY_AND                                                0x00000000
+#define   NV01_IMAGE_BLIT_OPERATION_ROP_AND                                            0x00000001
+#define   NV01_IMAGE_BLIT_OPERATION_BLEND_AND                                          0x00000002
+#define   NV01_IMAGE_BLIT_OPERATION_SRCCOPY                                            0x00000003
+#define   NV01_IMAGE_BLIT_OPERATION_SRCCOPY_PREMULT                                    0x00000004
+#define   NV01_IMAGE_BLIT_OPERATION_BLEND_PREMULT                                      0x00000005
 #define  NV01_IMAGE_BLIT_IMAGE_INPUT                                                   0x00000204
 #define  NV01_IMAGE_BLIT_POINT_IN                                                      0x00000300
 #define   NV01_IMAGE_BLIT_POINT_IN_X_SHIFT                                             0
@@ -374,6 +376,18 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV01_IMAGE_BLIT_SIZE_H_MASK                                                  0xffff0000
 
 
+#define NV04_IMAGE_BLIT                                                                        0x0000005f
+
+#define  NV04_IMAGE_BLIT_ROP                                                           0x00000190
+#define  NV04_IMAGE_BLIT_BETA4                                                         0x00000198
+#define  NV04_IMAGE_BLIT_SURFACE                                                       0x0000019c
+
+
+#define NV12_IMAGE_BLIT                                                                        0x0000009f
+
+#define  NV12_IMAGE_BLIT_WAIT_FOR_IDLE                                                 0x00000108
+
+
 #define NV01_IMAGE_FROM_CPU                                                            0x00000021
 
 #define  NV01_IMAGE_FROM_CPU_NOP                                                       0x00000100
@@ -418,6 +432,30 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV01_IMAGE_FROM_CPU_COLOR__SIZE                                               0x00000020
 
 
+#define NV04_IMAGE_FROM_CPU                                                            0x00000061
+
+#define  NV04_IMAGE_FROM_CPU_BETA4                                                     0x00000198
+#define  NV04_IMAGE_FROM_CPU_SURFACE                                                   0x0000019c
+
+
+#define NV05_IMAGE_FROM_CPU                                                            0x00000065
+
+#define  NV05_IMAGE_FROM_CPU_COLOR_CONVERSION                                          0x000002f8
+
+
+#define NV10_IMAGE_FROM_CPU                                                            0x0000008a
+
+#define  NV10_IMAGE_FROM_CPU_WAIT_FOR_IDLE                                             0x00000108
+
+
+#define NV30_IMAGE_FROM_CPU                                                            0x0000038a
+
+
+
+#define NV40_IMAGE_FROM_CPU                                                            0x0000308a
+
+
+
 #define NV01_NULL                                                                      0x00000030
 
 
@@ -461,6 +499,25 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV03_STRETCHED_IMAGE_FROM_CPU_COLOR__SIZE                                     0x00000020
 
 
+#define NV04_STRETCHED_IMAGE_FROM_CPU                                                  0x00000076
+
+#define  NV04_STRETCHED_IMAGE_FROM_CPU_BETA4                                           0x00000194
+#define  NV04_STRETCHED_IMAGE_FROM_CPU_SURFACE                                         0x00000198
+
+
+#define NV05_STRETCHED_IMAGE_FROM_CPU                                                  0x00000066
+
+#define  NV05_STRETCHED_IMAGE_FROM_CPU_COLOR_CONVERSION                                        0x000002f8
+
+
+#define NV30_STRETCHED_IMAGE_FROM_CPU                                                  0x00000366
+
+
+
+#define NV40_STRETCHED_IMAGE_FROM_CPU                                                  0x00003066
+
+
+
 #define NV03_SCALED_IMAGE_FROM_MEMORY                                                  0x00000037
 
 #define  NV03_SCALED_IMAGE_FROM_MEMORY_NOP                                             0x00000100
@@ -498,45 +555,73 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_MASK                               0x0000ffff
 #define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_SHIFT                              16
 #define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_MASK                               0xffff0000
-#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_POINT                                 0x00000310
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_POINT_X_SHIFT                                0
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_POINT_X_MASK                         0x0000ffff
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_POINT_Y_SHIFT                                16
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_POINT_Y_MASK                         0xffff0000
-#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_SIZE                                  0x00000314
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_SIZE_W_SHIFT                         0
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_SIZE_W_MASK                          0x0000ffff
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_SIZE_H_SHIFT                         16
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_SIZE_H_MASK                          0xffff0000
-#define  NV03_SCALED_IMAGE_FROM_MEMORY_DELTA_DU_DX                                     0x00000318
-#define  NV03_SCALED_IMAGE_FROM_MEMORY_DELTA_DV_DY                                     0x0000031c
-#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_SIZE                                   0x00000400
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_SIZE_W_SHIFT                          0
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_SIZE_W_MASK                           0x0000ffff
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_SIZE_H_SHIFT                          16
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_SIZE_H_MASK                           0xffff0000
-#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT                                 0x00000404
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_PITCH_SHIFT                    0
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_PITCH_MASK                     0x0000ffff
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_ORIGIN_SHIFT                   16
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_ORIGIN_MASK                    0x00ff0000
-#define    NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_ORIGIN_CENTER                 0x00010000
-#define    NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_ORIGIN_CORNER                 0x00020000
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_INTERPOLATOR_SHIFT             24
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_INTERPOLATOR_MASK              0xff000000
-#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_OFFSET                                 0x00000408
-#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_POINT                                  0x0000040c
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_POINT_U_SHIFT                         0
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_POINT_U_MASK                          0x0000ffff
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_POINT_V_SHIFT                         16
-#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_POINT_V_MASK                          0xffff0000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT                                       0x00000310
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_SHIFT                              0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_MASK                               0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_SHIFT                              16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_MASK                               0xffff0000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE                                                0x00000314
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_SHIFT                               0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_MASK                                        0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_SHIFT                               16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_MASK                                        0xffff0000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_DU_DX                                           0x00000318
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_DV_DY                                           0x0000031c
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_SIZE                                            0x00000400
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W_SHIFT                                   0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W_MASK                                    0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_SHIFT                                   16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_MASK                                    0xffff0000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT                                          0x00000404
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_SHIFT                             0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_MASK                              0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_SHIFT                            16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_MASK                             0x00ff0000
+#define    NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER                          0x00010000
+#define    NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CORNER                          0x00020000
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_SHIFT                            24
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_MASK                             0xff000000
+#define    NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE                    0x00000000
+#define    NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_BILINEAR                                0x01000000
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_OFFSET                                          0x00000408
+#define  NV03_SCALED_IMAGE_FROM_MEMORY_POINT                                           0x0000040c
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U_SHIFT                                  0
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U_MASK                                   0x0000ffff
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V_SHIFT                                  16
+#define   NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V_MASK                                   0xffff0000
+
+
+#define NV04_SCALED_IMAGE_FROM_MEMORY                                                  0x00000077
+
+#define  NV04_SCALED_IMAGE_FROM_MEMORY_BETA4                                           0x00000194
+#define  NV04_SCALED_IMAGE_FROM_MEMORY_SURFACE                                         0x00000198
+
+
+#define NV05_SCALED_IMAGE_FROM_MEMORY                                                  0x00000063
+
+#define  NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION                                        0x000002fc
+#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER                                0x00000000
+#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE                      0x00000001
+#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_SUBTR_TRUNCATE                        0x00000002
+
+
+#define NV10_SCALED_IMAGE_FROM_MEMORY                                                  0x00000089
+
+#define  NV10_SCALED_IMAGE_FROM_MEMORY_WAIT_FOR_IDLE                                   0x00000108
+
+
+#define NV30_SCALED_IMAGE_FROM_MEMORY                                                  0x00000389
+
+
+
+#define NV40_SCALED_IMAGE_FROM_MEMORY                                                  0x00003089
+
 
 
 #define NV04_DVD_SUBPICTURE                                                            0x00000038
 
 #define  NV04_DVD_SUBPICTURE_NOP                                                       0x00000100
 #define  NV04_DVD_SUBPICTURE_NOTIFY                                                    0x00000104
-#define  NV04_DVD_SUBPICTURE_WAIT_FOR_IDLE                                             0x00000108
 #define  NV04_DVD_SUBPICTURE_DMA_NOTIFY                                                        0x00000180
 #define  NV04_DVD_SUBPICTURE_DMA_OVERLAY                                               0x00000184
 #define  NV04_DVD_SUBPICTURE_DMA_IMAGEIN                                               0x00000188
@@ -595,6 +680,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV04_DVD_SUBPICTURE_OVERLAY_POINT_V_MASK                                     0xffff0000
 
 
+#define NV10_DVD_SUBPICTURE                                                            0x00000088
+
+#define  NV10_DVD_SUBPICTURE_WAIT_FOR_IDLE                                             0x00000108
+
+
 #define NV04_MEMORY_TO_MEMORY_FORMAT                                                   0x00000039
 
 #define  NV04_MEMORY_TO_MEMORY_FORMAT_NOP                                              0x00000100
@@ -610,12 +700,80 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV04_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT                                       0x00000320
 #define  NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT                                           0x00000324
 #define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_SHIFT                          0
-#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_MASK                           0x0000000f
+#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_MASK                           0x000000ff
 #define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_SHIFT                         8
-#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_MASK                          0x00000f00
+#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_MASK                          0x0000ff00
 #define  NV04_MEMORY_TO_MEMORY_FORMAT_BUF_NOTIFY                                       0x00000328
 
 
+#define NV50_MEMORY_TO_MEMORY_FORMAT                                                   0x00005039
+
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_SERIALIZE                                                0x00000110
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_IN                                                0x00000200
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_IN                                   0x00000204
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_IN                                  0x00000208
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_IN                                 0x0000020c
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_IN                                  0x00000210
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Z                             0x00000214
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN                               0x00000218
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X_SHIFT                      0
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X_MASK                       0x0000ffff
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y_SHIFT                      16
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y_MASK                       0xffff0000
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_OUT                                       0x0000021c
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_OUT                                  0x00000220
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_OUT                                 0x00000224
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_OUT                                        0x00000228
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_OUT                                 0x0000022c
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Z                            0x00000230
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT                              0x00000234
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X_SHIFT                     0
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X_MASK                      0x0000ffff
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y_SHIFT                     16
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y_MASK                      0xffff0000
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH                                   0x00000238
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH                                  0x0000023c
+
+
+#define NVC0_MEMORY_TO_MEMORY_FORMAT                                                   0x00009039
+
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_NOP                                              0x00000100
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_SERIALIZE                                                0x00000110
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_IN                                   0x00000204
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_IN                                  0x00000208
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_IN                                 0x0000020c
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_IN                                  0x00000210
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Z                             0x00000214
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_OUT                                  0x00000220
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_OUT                                 0x00000224
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_OUT                                        0x00000228
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_OUT                                 0x0000022c
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Z                            0x00000230
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH                                  0x00000238
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_LOW                                   0x0000023c
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC                                             0x00000300
+#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_PUSH                                       (1 <<  0)
+#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_LINEAR_IN                                  (1 <<  4)
+#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_LINEAR_OUT                                 (1 <<  8)
+#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_NOTIFY                                     (1 << 13)
+#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_INC_SHIFT                                  20
+#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_INC_MASK                                   0x00f00000
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_DATA                                             0x00000304
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH                                   0x0000030c
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_LOW                                    0x00000310
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_PITCH_IN                                         0x00000314
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT                                                0x00000318
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN                                   0x0000031c
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT                                       0x00000320
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_NOTIFY_ADDRESS_HIGH                              0x0000032c
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_NOTIFY_ADDRESS_LOW                               0x00000330
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_NOTIFY                                           0x00000334
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X                             0x00000344
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y                             0x00000348
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X                            0x0000034c
+#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y                            0x00000350
+
+
 #define NV01_MEMORY_LOCAL_BANKED                                                       0x0000003d
 
 
@@ -665,6 +823,18 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV04_CONTEXT_SURFACES_2D_OFFSET_DESTIN                                                0x0000030c
 
 
+#define NV10_CONTEXT_SURFACES_2D                                                       0x00000062
+
+
+
+#define NV30_CONTEXT_SURFACES_2D                                                       0x00000362
+
+
+
+#define NV40_CONTEXT_SURFACES_2D                                                       0x00003062
+
+
+
 #define NV03_CONTEXT_ROP                                                               0x00000043
 
 #define  NV03_CONTEXT_ROP_NOP                                                          0x00000100
@@ -852,99 +1022,99 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV03_VIDEO_LUT_CURSOR_DAC_SET_PIXEL_CLOCK                                     0x000003a0
 
 
-#define NV03_DX3_TEXTURED_TRIANGLE                                                     0x00000048
-
-#define  NV03_DX3_TEXTURED_TRIANGLE_NOP                                                        0x00000100
-#define  NV03_DX3_TEXTURED_TRIANGLE_NOTIFY                                             0x00000104
-#define  NV03_DX3_TEXTURED_TRIANGLE_PATCH                                              0x0000010c
-#define  NV03_DX3_TEXTURED_TRIANGLE_DMA_NOTIFY                                         0x00000180
-#define  NV03_DX3_TEXTURED_TRIANGLE_DMA_TEXTURE                                                0x00000184
-#define  NV03_DX3_TEXTURED_TRIANGLE_CLIP_RECTANGLE                                     0x00000188
-#define  NV03_DX3_TEXTURED_TRIANGLE_SURFACE                                            0x0000018c
-#define  NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_OFFSET                                     0x00000304
-#define  NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT                                     0x00000308
-#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_MASK_SHIFT               0
-#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_MASK_MASK                        0x0000ffff
-#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_ENABLE_SHIFT             16
-#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_ENABLE_MASK              0x000f0000
-#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_SHIFT                                20
-#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_MASK                         0x00f00000
-#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MIN_SHIFT                     24
-#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MIN_MASK                      0x0f000000
-#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MAX_SHIFT                     28
-#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MAX_MASK                      0xf0000000
-#define  NV03_DX3_TEXTURED_TRIANGLE_FILTER                                             0x0000030c
-#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SPREAD_X_SHIFT                             0
-#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SPREAD_X_MASK                              0x0000001f
-#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SPREAD_Y_SHIFT                             8
-#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SPREAD_Y_MASK                              0x00001f00
-#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SIZE_ADJUST_SHIFT                          16
-#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SIZE_ADJUST_MASK                           0x00ff0000
-#define  NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR                                          0x00000310
-#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_B_SHIFT                                 0
-#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_B_MASK                                  0x000000ff
-#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_G_SHIFT                                 8
-#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_G_MASK                                  0x0000ff00
-#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_R_SHIFT                                 16
-#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_R_MASK                                  0x00ff0000
-#define  NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT                                                0x00000314
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_INTERPOLATOR_SHIFT                    0
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_INTERPOLATOR_MASK                     0x0000000f
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_U_SHIFT                          4
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_U_MASK                           0x00000030
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_V_SHIFT                          6
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_V_MASK                           0x000000c0
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_SOURCE_COLOR_SHIFT                    8
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_SOURCE_COLOR_MASK                     0x00000f00
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_CULLING_SHIFT                         12
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_CULLING_MASK                          0x00007000
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_Z_PERSPECTIVE_ENABLE                  (1 << 15)
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_Z_FUNC_SHIFT                          16
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_Z_FUNC_MASK                           0x000f0000
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_Z_WRITE_ENABLE_SHIFT                  20
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_Z_WRITE_ENABLE_MASK                   0x00f00000
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_COLOR_WRITE_ENABLE_SHIFT              24
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_COLOR_WRITE_ENABLE_MASK               0x07000000
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_ROP_SHIFT                             27
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_ROP_MASK                              0x18000000
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_BETA                                  (1 << 29)
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_DST_BLEND                             (1 << 30)
-#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_SRC_BLEND                             (1 << 31)
-#define  NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL                                      0x00000318
-#define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_SHIFT                     0
-#define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_MASK                      0x000000ff
-#define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_SHIFT                    8
-#define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_MASK                     0xffffff00
-#define  NV03_DX3_TEXTURED_TRIANGLE_SPECULAR(x)                                                (0x00001000+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_SPECULAR__SIZE                                     0x00000040
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I0_SHIFT                                 0
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I0_MASK                                  0x0000000f
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I1_SHIFT                                 4
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I1_MASK                                  0x000000f0
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I2_SHIFT                                 8
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I2_MASK                                  0x00000f00
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I3_SHIFT                                 12
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I3_MASK                                  0x0000f000
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I4_SHIFT                                 16
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I4_MASK                                  0x000f0000
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I5_SHIFT                                 20
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I5_MASK                                  0x00f00000
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_FOG_SHIFT                                        24
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_FOG_MASK                                 0xff000000
-#define  NV03_DX3_TEXTURED_TRIANGLE_COLOR(x)                                           (0x00001004+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_COLOR__SIZE                                                0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_X(x)                                               (0x00001008+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_X__SIZE                                            0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_Y(x)                                               (0x0000100c+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_Y__SIZE                                            0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_Z(x)                                               (0x00001010+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_Z__SIZE                                            0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_M(x)                                               (0x00001014+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_M__SIZE                                            0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_U(x)                                               (0x00001018+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_U__SIZE                                            0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_V(x)                                               (0x0000101c+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_V__SIZE                                            0x00000040
+#define NV03_TEXTURED_TRIANGLE                                                         0x00000048
+
+#define  NV03_TEXTURED_TRIANGLE_NOP                                                    0x00000100
+#define  NV03_TEXTURED_TRIANGLE_NOTIFY                                                 0x00000104
+#define  NV03_TEXTURED_TRIANGLE_PATCH                                                  0x0000010c
+#define  NV03_TEXTURED_TRIANGLE_DMA_NOTIFY                                             0x00000180
+#define  NV03_TEXTURED_TRIANGLE_DMA_TEXTURE                                            0x00000184
+#define  NV03_TEXTURED_TRIANGLE_CLIP_RECTANGLE                                         0x00000188
+#define  NV03_TEXTURED_TRIANGLE_SURFACE                                                        0x0000018c
+#define  NV03_TEXTURED_TRIANGLE_TEXTURE_OFFSET                                         0x00000304
+#define  NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT                                         0x00000308
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_MASK_SHIFT                   0
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_MASK_MASK                    0x0000ffff
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_ENABLE_SHIFT                 16
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_ENABLE_MASK                  0x000f0000
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_SHIFT                            20
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_MASK                             0x00f00000
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MIN_SHIFT                         24
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MIN_MASK                          0x0f000000
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MAX_SHIFT                         28
+#define   NV03_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MAX_MASK                          0xf0000000
+#define  NV03_TEXTURED_TRIANGLE_FILTER                                                 0x0000030c
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_X_SHIFT                                 0
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_X_MASK                                  0x0000001f
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_Y_SHIFT                                 8
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SPREAD_Y_MASK                                  0x00001f00
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SIZE_ADJUST_SHIFT                              16
+#define   NV03_TEXTURED_TRIANGLE_FILTER_SIZE_ADJUST_MASK                               0x00ff0000
+#define  NV03_TEXTURED_TRIANGLE_FOG_COLOR                                              0x00000310
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_B_SHIFT                                     0
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_B_MASK                                      0x000000ff
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_G_SHIFT                                     8
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_G_MASK                                      0x0000ff00
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_R_SHIFT                                     16
+#define   NV03_TEXTURED_TRIANGLE_FOG_COLOR_R_MASK                                      0x00ff0000
+#define  NV03_TEXTURED_TRIANGLE_CONTROL_OUT                                            0x00000314
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_INTERPOLATOR_SHIFT                                0
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_INTERPOLATOR_MASK                         0x0000000f
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_U_SHIFT                              4
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_U_MASK                               0x00000030
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_V_SHIFT                              6
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_V_MASK                               0x000000c0
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_SOURCE_COLOR_SHIFT                                8
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_SOURCE_COLOR_MASK                         0x00000f00
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_CULLING_SHIFT                             12
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_CULLING_MASK                              0x00007000
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_PERSPECTIVE_ENABLE                      (1 << 15)
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_FUNC_SHIFT                              16
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_FUNC_MASK                               0x000f0000
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_WRITE_ENABLE_SHIFT                      20
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_Z_WRITE_ENABLE_MASK                       0x00f00000
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_COLOR_WRITE_ENABLE_SHIFT                  24
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_COLOR_WRITE_ENABLE_MASK                   0x07000000
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_ROP_SHIFT                                 27
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_ROP_MASK                                  0x18000000
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_BETA                                      (1 << 29)
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_DST_BLEND                                 (1 << 30)
+#define   NV03_TEXTURED_TRIANGLE_CONTROL_OUT_SRC_BLEND                                 (1 << 31)
+#define  NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL                                          0x00000318
+#define   NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_SHIFT                         0
+#define   NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_MASK                          0x000000ff
+#define   NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_SHIFT                                8
+#define   NV03_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_MASK                         0xffffff00
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(x)                                   (0x00001000+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR__SIZE                                        0x00000080
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I0_SHIFT                            0
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I0_MASK                             0x0000000f
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I1_SHIFT                            4
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I1_MASK                             0x000000f0
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I2_SHIFT                            8
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I2_MASK                             0x00000f00
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I3_SHIFT                            12
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I3_MASK                             0x0000f000
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I4_SHIFT                            16
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I4_MASK                             0x000f0000
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I5_SHIFT                            20
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I5_MASK                             0x00f00000
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_SHIFT                           24
+#define   NV03_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_MASK                            0xff000000
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_COLOR(x)                                      (0x00001004+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_COLOR__SIZE                                   0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SX(x)                                         (0x00001008+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SX__SIZE                                      0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SY(x)                                         (0x0000100c+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SY__SIZE                                      0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SZ(x)                                         (0x00001010+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_SZ__SIZE                                      0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_RHW(x)                                                (0x00001014+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_RHW__SIZE                                     0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_TU(x)                                         (0x00001018+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_TU__SIZE                                      0x00000080
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_TV(x)                                         (0x0000101c+((x)*32))
+#define  NV03_TEXTURED_TRIANGLE_TLVERTEX_TV__SIZE                                      0x00000080
 
 
 #define NV04_GDI_RECTANGLE_TEXT                                                                0x0000004a
@@ -1265,6 +1435,18 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV04_SWIZZLED_SURFACE_OFFSET                                                  0x00000304
 
 
+#define NV20_SWIZZLED_SURFACE                                                          0x0000009e
+
+
+
+#define NV30_SWIZZLED_SURFACE                                                          0x0000039e
+
+
+
+#define NV40_SWIZZLED_SURFACE                                                          0x0000309e
+
+
+
 #define NV04_CONTEXT_SURFACES_3D                                                       0x00000053
 
 #define  NV04_CONTEXT_SURFACES_3D_NOP                                                  0x00000100
@@ -1315,432 +1497,457 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV04_CONTEXT_SURFACES_3D_OFFSET_ZETA                                          0x00000310
 
 
-#define NV04_DX5_TEXTURED_TRIANGLE                                                     0x00000054
-
-#define  NV04_DX5_TEXTURED_TRIANGLE_NOP                                                        0x00000100
-#define  NV04_DX5_TEXTURED_TRIANGLE_NOTIFY                                             0x00000104
-#define  NV04_DX5_TEXTURED_TRIANGLE_DMA_NOTIFY                                         0x00000180
-#define  NV04_DX5_TEXTURED_TRIANGLE_DMA_A                                              0x00000184
-#define  NV04_DX5_TEXTURED_TRIANGLE_DMA_B                                              0x00000188
-#define  NV04_DX5_TEXTURED_TRIANGLE_SURFACE                                            0x0000018c
-#define  NV04_DX5_TEXTURED_TRIANGLE_COLORKEY                                           0x00000300
-#define  NV04_DX5_TEXTURED_TRIANGLE_OFFSET                                             0x00000304
-#define  NV04_DX5_TEXTURED_TRIANGLE_FORMAT                                             0x00000308
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_DMA_SHIFT                                  0
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_DMA_MASK                                   0x00000003
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_MATCH_SHIFT                      2
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_MATCH_MASK                       0x0000000c
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_SHIFT                           4
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_MASK                            0x00000030
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CENTER                         0x00000010
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CORNER                         0x00000020
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_SHIFT                           6
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_MASK                            0x000000c0
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CENTER                         0x00000040
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CORNER                         0x00000080
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_SHIFT                                        8
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_MASK                                 0x00000f00
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_Y8                                  0x00000100
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_A1R5G5B5                            0x00000200
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_X1R5G5B5                            0x00000300
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_A4R4G4B4                            0x00000400
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_R5G6B5                              0x00000500
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_A8R8G8B8                            0x00000600
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_X8R8G8B8                            0x00000700
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT                                12
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_MASK                         0x0000f000
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT                          16
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U_MASK                           0x000f0000
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT                          20
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V_MASK                           0x00f00000
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_SHIFT                             24
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MASK                              0x07000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_REPEAT                           0x01000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MIRRORED_REPEAT                  0x02000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_EDGE                    0x03000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_BORDER                  0x04000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP                            0x05000000
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_WRAPU                                      (1 << 27)
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_SHIFT                             28
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MASK                              0x70000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_REPEAT                           0x10000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MIRRORED_REPEAT                  0x20000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_EDGE                    0x30000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_BORDER                  0x40000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP                            0x50000000
-#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_WRAPV                                      (1 << 31)
-#define  NV04_DX5_TEXTURED_TRIANGLE_FILTER                                             0x0000030c
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X_SHIFT                                0
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X_MASK                         0x000000ff
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y_SHIFT                                8
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y_MASK                         0x00007f00
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE                       (1 << 15)
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT                       16
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS_MASK                                0x00ff0000
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_SHIFT                               24
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_MASK                                        0x07000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST                            0x01000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR                             0x02000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST             0x03000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST              0x04000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR              0x05000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR               0x06000000
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE                  (1 << 27)
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MAGNIFY_SHIFT                              28
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MAGNIFY_MASK                               0x70000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MAGNIFY_NEAREST                           0x10000000
-#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MAGNIFY_LINEAR                            0x20000000
-#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE                 (1 << 31)
-#define  NV04_DX5_TEXTURED_TRIANGLE_BLEND                                              0x00000310
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_SHIFT                           0
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_MASK                            0x0000000f
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_MASK_BIT_SHIFT                              4
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_MASK_BIT_MASK                               0x00000030
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_SHIFT                            6
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_MASK                             0x000000c0
-#define    NV04_DX5_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_FLAT                            0x00000040
-#define    NV04_DX5_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_GOURAUD                         0x00000080
-#define    NV04_DX5_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_PHONG                           0x000000c0
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE_SHIFT            8
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE_MASK             0x00000f00
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE_SHIFT                       12
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE_MASK                                0x0000f000
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_FOG_ENABLE_SHIFT                            16
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_FOG_ENABLE_MASK                             0x000f0000
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_ALPHA_ENABLE_SHIFT                          20
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_ALPHA_ENABLE_MASK                           0x00f00000
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_SHIFT                                   24
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_MASK                                    0x0f000000
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_SHIFT                                   28
-#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_MASK                                    0xf0000000
-#define  NV04_DX5_TEXTURED_TRIANGLE_CONTROL                                            0x00000314
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF_SHIFT                           0
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF_MASK                            0x000000ff
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_SHIFT                          8
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_MASK                           0x00000f00
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHA_TEST_ENABLE                         (1 << 12)
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ORIGIN                                    (1 << 13)
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_ENABLE_SHIFT                            14
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_ENABLE_MASK                             0x0000c000
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_SHIFT                              16
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_MASK                               0x000f0000
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_SHIFT                           20
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_MASK                            0x00300000
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_DITHER_ENABLE                             (1 << 22)
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_PERSPECTIVE_ENABLE                      (1 << 23)
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_WRITE_ENABLE_SHIFT                      24
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_WRITE_ENABLE_MASK                       0x3f000000
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_SHIFT                            30
-#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_MASK                             0xc0000000
-#define  NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR                                           0x00000318
-#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_B_SHIFT                                  0
-#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_B_MASK                                   0x000000ff
-#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_G_SHIFT                                  8
-#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_G_MASK                                   0x0000ff00
-#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_R_SHIFT                                  16
-#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_R_MASK                                   0x00ff0000
-#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_A_SHIFT                                  24
-#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_A_MASK                                   0xff000000
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SX(x)                                     (0x00000400+((x)*32))
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SX__SIZE                                  0x00000010
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SY(x)                                     (0x00000404+((x)*32))
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SY__SIZE                                  0x00000010
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SZ(x)                                     (0x00000408+((x)*32))
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SZ__SIZE                                  0x00000010
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_RHW(x)                                    (0x0000040c+((x)*32))
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_RHW__SIZE                                 0x00000010
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR(x)                                  (0x00000410+((x)*32))
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR__SIZE                               0x00000010
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B_SHIFT                            0
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B_MASK                             0x000000ff
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G_SHIFT                            8
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G_MASK                             0x0000ff00
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R_SHIFT                            16
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R_MASK                             0x00ff0000
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A_SHIFT                            24
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A_MASK                             0xff000000
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(x)                               (0x00000414+((x)*32))
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR__SIZE                            0x00000010
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B_SHIFT                         0
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B_MASK                          0x000000ff
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G_SHIFT                         8
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G_MASK                          0x0000ff00
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R_SHIFT                         16
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R_MASK                          0x00ff0000
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_SHIFT                       24
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_MASK                                0xff000000
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_TU(x)                                     (0x00000418+((x)*32))
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_TU__SIZE                                  0x00000010
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_TV(x)                                     (0x0000041c+((x)*32))
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_TV__SIZE                                  0x00000010
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE(x)                          (0x00000600+((x)*4))
-#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE__SIZE                       0x00000040
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I0_SHIFT                   0
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I0_MASK                    0x0000000f
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I1_SHIFT                   4
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I1_MASK                    0x000000f0
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I2_SHIFT                   8
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I2_MASK                    0x00000f00
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I3_SHIFT                   12
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I3_MASK                    0x0000f000
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I4_SHIFT                   16
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I4_MASK                    0x000f0000
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I5_SHIFT                   20
-#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I5_MASK                    0x00f00000
-
-
-#define NV04_DX6_MULTITEX_TRIANGLE                                                     0x00000055
-
-#define  NV04_DX6_MULTITEX_TRIANGLE_NOP                                                        0x00000100
-#define  NV04_DX6_MULTITEX_TRIANGLE_NOTIFY                                             0x00000104
-#define  NV04_DX6_MULTITEX_TRIANGLE_DMA_NOTIFY                                         0x00000180
-#define  NV04_DX6_MULTITEX_TRIANGLE_DMA_A                                              0x00000184
-#define  NV04_DX6_MULTITEX_TRIANGLE_DMA_B                                              0x00000188
-#define  NV04_DX6_MULTITEX_TRIANGLE_SURFACE                                            0x0000018c
-#define  NV04_DX6_MULTITEX_TRIANGLE_OFFSET(x)                                          (0x00000308+((x)*4))
-#define  NV04_DX6_MULTITEX_TRIANGLE_OFFSET__SIZE                                       0x00000002
-#define  NV04_DX6_MULTITEX_TRIANGLE_FORMAT(x)                                          (0x00000310+((x)*4))
-#define  NV04_DX6_MULTITEX_TRIANGLE_FORMAT__SIZE                                       0x00000002
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_DMA_SHIFT                                  0
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_DMA_MASK                                   0x0000000f
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_SHIFT                           4
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_MASK                            0x00000030
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_SHIFT                           6
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_MASK                            0x000000c0
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_COLOR_SHIFT                                        8
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_COLOR_MASK                                 0x00000f00
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT                                12
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_MASK                         0x0000f000
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT                          16
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_MASK                           0x000f0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT                          20
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_MASK                           0x00f00000
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_SHIFT                             24
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_MASK                              0x07000000
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_WRAPU                                      (1 << 27)
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_SHIFT                             28
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_MASK                              0x70000000
-#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_WRAPV                                      (1 << 31)
-#define  NV04_DX6_MULTITEX_TRIANGLE_FILTER(x)                                          (0x00000318+((x)*4))
-#define  NV04_DX6_MULTITEX_TRIANGLE_FILTER__SIZE                                       0x00000002
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X_SHIFT                                0
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X_MASK                         0x000000ff
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y_SHIFT                                8
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y_MASK                         0x00007f00
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE                       (1 << 15)
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT                       16
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_MASK                                0x00ff0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MINIFY_SHIFT                               24
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MINIFY_MASK                                        0x07000000
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE                  (1 << 27)
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MAGNIFY_SHIFT                              28
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MAGNIFY_MASK                               0x70000000
-#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE                 (1 << 31)
-#define  NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA                                    0x00000320
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_INVERSE0                          (1 <<  0)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ALPHA0                            (1 <<  1)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT0_SHIFT                   2
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT0_MASK                    0x000000fc
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_INVERSE1                          (1 <<  8)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ALPHA1                            (1 <<  9)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT1_SHIFT                   10
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT1_MASK                    0x0000fc00
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_INVERSE2                          (1 << 16)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ALPHA2                            (1 << 17)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT2_SHIFT                   18
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT2_MASK                    0x00fc0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_INVERSE3                          (1 << 24)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ALPHA3                            (1 << 25)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT3_SHIFT                   26
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT3_MASK                    0x1c000000
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_OPERATION_SHIFT                   29
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_OPERATION_MASK                    0xe0000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR                                    0x00000324
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_INVERSE0                          (1 <<  0)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ALPHA0                            (1 <<  1)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT0_SHIFT                   2
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT0_MASK                    0x000000fc
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_INVERSE1                          (1 <<  8)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ALPHA1                            (1 <<  9)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT1_SHIFT                   10
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT1_MASK                    0x0000fc00
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_INVERSE2                          (1 << 16)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ALPHA2                            (1 << 17)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT2_SHIFT                   18
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT2_MASK                    0x00fc0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_INVERSE3                          (1 << 24)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ALPHA3                            (1 << 25)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT3_SHIFT                   26
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT3_MASK                    0x1c000000
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_OPERATION_SHIFT                   29
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_OPERATION_MASK                    0xe0000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA                                    0x0000032c
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_INVERSE0                          (1 <<  0)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ALPHA0                            (1 <<  1)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT0_SHIFT                   2
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT0_MASK                    0x000000fc
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_INVERSE1                          (1 <<  8)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ALPHA1                            (1 <<  9)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT1_SHIFT                   10
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT1_MASK                    0x0000fc00
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_INVERSE2                          (1 << 16)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ALPHA2                            (1 << 17)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT2_SHIFT                   18
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT2_MASK                    0x00fc0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_INVERSE3                          (1 << 24)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ALPHA3                            (1 << 25)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT3_SHIFT                   26
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT3_MASK                    0x1c000000
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_OPERATION_SHIFT                   29
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_OPERATION_MASK                    0xe0000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR                                    0x00000330
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_INVERSE0                          (1 <<  0)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ALPHA0                            (1 <<  1)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT0_SHIFT                   2
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT0_MASK                    0x000000fc
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_INVERSE1                          (1 <<  8)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ALPHA1                            (1 <<  9)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT1_SHIFT                   10
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT1_MASK                    0x0000fc00
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_INVERSE2                          (1 << 16)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ALPHA2                            (1 << 17)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT2_SHIFT                   18
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT2_MASK                    0x00fc0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_INVERSE3                          (1 << 24)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ALPHA3                            (1 << 25)
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT3_SHIFT                   26
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT3_MASK                    0x1c000000
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_OPERATION_SHIFT                   29
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_OPERATION_MASK                    0xe0000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR                                     0x00000334
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_B_SHIFT                            0
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_B_MASK                             0x000000ff
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_G_SHIFT                            8
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_G_MASK                             0x0000ff00
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_R_SHIFT                            16
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_R_MASK                             0x00ff0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_A_SHIFT                            24
-#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_A_MASK                             0xff000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_BLEND                                              0x00000338
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_MASK_BIT_SHIFT                              4
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_MASK_BIT_MASK                               0x00000030
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_SHIFT                            6
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_MASK                             0x000000c0
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE_SHIFT            8
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE_MASK             0x00000f00
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE_SHIFT                       12
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE_MASK                                0x0000f000
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_FOG_ENABLE_SHIFT                            16
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_FOG_ENABLE_MASK                             0x000f0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_ALPHA_ENABLE_SHIFT                          20
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_ALPHA_ENABLE_MASK                           0x00f00000
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_SHIFT                                   24
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_MASK                                    0x0f000000
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_SHIFT                                   28
-#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_MASK                                    0xf0000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_CONTROL0                                           0x0000033c
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF_SHIFT                          0
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF_MASK                           0x000000ff
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_SHIFT                         8
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_MASK                          0x00000f00
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_TEST_ENABLE                                (1 << 12)
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ORIGIN                                   (1 << 13)
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_ENABLE_SHIFT                           14
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_ENABLE_MASK                            0x0000c000
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_SHIFT                             16
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_MASK                              0x000f0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_SHIFT                          20
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_MASK                           0x00300000
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_DITHER_ENABLE                            (1 << 22)
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_PERSPECTIVE_ENABLE                     (1 << 23)
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_WRITE_ENABLE                           (1 << 24)
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE_ENABLE                     (1 << 25)
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_ENABLE                       (1 << 26)
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE_ENABLE                         (1 << 27)
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE_ENABLE                       (1 << 28)
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE_ENABLE                                (1 << 29)
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_SHIFT                           30
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_MASK                            0xc0000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_CONTROL1                                           0x00000340
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_TEST_ENABLE_SHIFT                        0
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_TEST_ENABLE_MASK                 0x0000000f
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_SHIFT                       4
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_MASK                                0x000000f0
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_SHIFT                                8
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_MASK                         0x0000ff00
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_SHIFT                  16
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_MASK                   0x00ff0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_SHIFT                 24
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_MASK                  0xff000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_CONTROL2                                           0x00000344
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL_SHIFT                    0
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL_MASK                     0x0000000f
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_SHIFT                   4
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_MASK                    0x000000f0
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_SHIFT                   8
-#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_MASK                    0x00000f00
-#define  NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR                                           0x00000348
-#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_B_SHIFT                                  0
-#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_B_MASK                                   0x000000ff
-#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_G_SHIFT                                  8
-#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_G_MASK                                   0x0000ff00
-#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_R_SHIFT                                  16
-#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_R_MASK                                   0x00ff0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_A_SHIFT                                  24
-#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_A_MASK                                   0xff000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SX(x)                                   (0x00000400+((x)*40))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SX__SIZE                                        0x00000008
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SY(x)                                   (0x00000404+((x)*40))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SY__SIZE                                        0x00000008
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SZ(x)                                   (0x00000408+((x)*40))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SZ__SIZE                                        0x00000008
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_RHW(x)                                  (0x0000040c+((x)*40))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_RHW__SIZE                               0x00000008
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR(x)                                        (0x00000410+((x)*40))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR__SIZE                             0x00000008
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B_SHIFT                          0
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B_MASK                           0x000000ff
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G_SHIFT                          8
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G_MASK                           0x0000ff00
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R_SHIFT                          16
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R_MASK                           0x00ff0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A_SHIFT                          24
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A_MASK                           0xff000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR(x)                             (0x00000414+((x)*40))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR__SIZE                          0x00000008
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B_SHIFT                       0
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B_MASK                                0x000000ff
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G_SHIFT                       8
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G_MASK                                0x0000ff00
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R_SHIFT                       16
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R_MASK                                0x00ff0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG_SHIFT                     24
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG_MASK                      0xff000000
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TU0(x)                                  (0x00000418+((x)*40))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TU0__SIZE                               0x00000008
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TV0(x)                                  (0x0000041c+((x)*40))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TV0__SIZE                               0x00000008
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TU1(x)                                  (0x00000420+((x)*40))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TU1__SIZE                               0x00000008
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TV1(x)                                  (0x00000424+((x)*40))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TV1__SIZE                               0x00000008
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE(x)                                (0x00000540+((x)*4))
-#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE__SIZE                     0x00000030
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I0_SHIFT                 0
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I0_MASK                  0x0000000f
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I1_SHIFT                 4
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I1_MASK                  0x000000f0
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I2_SHIFT                 8
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I2_MASK                  0x00000f00
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I3_SHIFT                 12
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I3_MASK                  0x0000f000
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I4_SHIFT                 16
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I4_MASK                  0x000f0000
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I5_SHIFT                 20
-#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I5_MASK                  0x00f00000
-
-
-#define NV10_DX5_TEXTURED_TRIANGLE                                                     0x00000094
+#define NV10_CONTEXT_SURFACES_3D                                                       0x00000093
+
+
+
+#define NV04_TEXTURED_TRIANGLE                                                         0x00000054
+
+#define  NV04_TEXTURED_TRIANGLE_NOP                                                    0x00000100
+#define  NV04_TEXTURED_TRIANGLE_NOTIFY                                                 0x00000104
+#define  NV04_TEXTURED_TRIANGLE_DMA_NOTIFY                                             0x00000180
+#define  NV04_TEXTURED_TRIANGLE_DMA_A                                                  0x00000184
+#define  NV04_TEXTURED_TRIANGLE_DMA_B                                                  0x00000188
+#define  NV04_TEXTURED_TRIANGLE_SURFACE                                                        0x0000018c
+#define  NV04_TEXTURED_TRIANGLE_COLORKEY                                               0x00000300
+#define  NV04_TEXTURED_TRIANGLE_OFFSET                                                 0x00000304
+#define  NV04_TEXTURED_TRIANGLE_FORMAT                                                 0x00000308
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_DMA_A                                          (1 <<  0)
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_DMA_B                                          (1 <<  1)
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_MATCH_SHIFT                          2
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_MATCH_MASK                           0x0000000c
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_SHIFT                               4
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_MASK                                        0x00000030
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CENTER                             0x00000010
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CORNER                             0x00000020
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_SHIFT                               6
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_MASK                                        0x000000c0
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CENTER                             0x00000040
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CORNER                             0x00000080
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_SHIFT                                    8
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_MASK                                     0x00000f00
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_Y8                                      0x00000100
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A1R5G5B5                                        0x00000200
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_X1R5G5B5                                        0x00000300
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A4R4G4B4                                        0x00000400
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_R5G6B5                                  0x00000500
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_A8R8G8B8                                        0x00000600
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_COLOR_X8R8G8B8                                        0x00000700
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT                            12
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_MASK                             0x0000f000
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT                              16
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U_MASK                               0x000f0000
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT                              20
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V_MASK                               0x00f00000
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_SHIFT                                 24
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MASK                                  0x07000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_REPEAT                               0x01000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MIRRORED_REPEAT                      0x02000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_EDGE                                0x03000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_BORDER                      0x04000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP                                        0x05000000
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_WRAPU                                          (1 << 27)
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_SHIFT                                 28
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MASK                                  0x70000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_REPEAT                               0x10000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MIRRORED_REPEAT                      0x20000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_EDGE                                0x30000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_BORDER                      0x40000000
+#define    NV04_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP                                        0x50000000
+#define   NV04_TEXTURED_TRIANGLE_FORMAT_WRAPV                                          (1 << 31)
+#define  NV04_TEXTURED_TRIANGLE_FILTER                                                 0x0000030c
+#define   NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X_SHIFT                            0
+#define   NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X_MASK                             0x000000ff
+#define   NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y_SHIFT                            8
+#define   NV04_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y_MASK                             0x00007f00
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE                           (1 << 15)
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT                           16
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS_MASK                            0x00ff0000
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_SHIFT                                   24
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_MASK                                    0x07000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST                                        0x01000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR                                 0x02000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST                 0x03000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST                  0x04000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR                  0x05000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR                   0x06000000
+#define   NV04_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE                      (1 << 27)
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_SHIFT                                  28
+#define   NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_MASK                                   0x70000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_NEAREST                               0x10000000
+#define    NV04_TEXTURED_TRIANGLE_FILTER_MAGNIFY_LINEAR                                        0x20000000
+#define   NV04_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE                     (1 << 31)
+#define  NV04_TEXTURED_TRIANGLE_BLEND                                                  0x00000310
+#define   NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_SHIFT                               0
+#define   NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_MASK                                        0x0000000f
+#define   NV04_TEXTURED_TRIANGLE_BLEND_MASK_BIT_SHIFT                                  4
+#define   NV04_TEXTURED_TRIANGLE_BLEND_MASK_BIT_MASK                                   0x00000030
+#define   NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_SHIFT                                        6
+#define   NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_MASK                                 0x000000c0
+#define    NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_FLAT                                        0x00000040
+#define    NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_GOURAUD                             0x00000080
+#define    NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_PHONG                               0x000000c0
+#define   NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE                      (1 <<  8)
+#define   NV04_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE                                 (1 << 12)
+#define   NV04_TEXTURED_TRIANGLE_BLEND_FOG_ENABLE                                      (1 << 16)
+#define   NV04_TEXTURED_TRIANGLE_BLEND_BLEND_ENABLE                                    (1 << 20)
+#define   NV04_TEXTURED_TRIANGLE_BLEND_SRC_SHIFT                                       24
+#define   NV04_TEXTURED_TRIANGLE_BLEND_SRC_MASK                                                0x0f000000
+#define   NV04_TEXTURED_TRIANGLE_BLEND_DST_SHIFT                                       28
+#define   NV04_TEXTURED_TRIANGLE_BLEND_DST_MASK                                                0xf0000000
+#define  NV04_TEXTURED_TRIANGLE_CONTROL                                                        0x00000314
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF_SHIFT                               0
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF_MASK                                        0x000000ff
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_SHIFT                              8
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_MASK                               0x00000f00
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ALPHA_ENABLE                                  (1 << 12)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_ORIGIN                                                (1 << 13)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_ENABLE                                      (1 << 14)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_SHIFT                                  16
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_MASK                                   0x000f0000
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_SHIFT                               20
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_MASK                                        0x00300000
+#define    NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_BOTH                               0x00000000
+#define    NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_NONE                               0x00100000
+#define    NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_CW                                 0x00200000
+#define    NV04_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_CCW                                        0x00300000
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_DITHER_ENABLE                                 (1 << 22)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_PERSPECTIVE_ENABLE                          (1 << 23)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_WRITE                                       (1 << 24)
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_SHIFT                                        30
+#define   NV04_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_MASK                                 0xc0000000
+#define  NV04_TEXTURED_TRIANGLE_FOGCOLOR                                               0x00000318
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_B_SHIFT                                      0
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_B_MASK                                       0x000000ff
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_G_SHIFT                                      8
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_G_MASK                                       0x0000ff00
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_R_SHIFT                                      16
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_R_MASK                                       0x00ff0000
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_A_SHIFT                                      24
+#define   NV04_TEXTURED_TRIANGLE_FOGCOLOR_A_MASK                                       0xff000000
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SX(x)                                         (0x00000400+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SX__SIZE                                      0x00000010
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SY(x)                                         (0x00000404+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SY__SIZE                                      0x00000010
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SZ(x)                                         (0x00000408+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SZ__SIZE                                      0x00000010
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_RHW(x)                                                (0x0000040c+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_RHW__SIZE                                     0x00000010
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR(x)                                      (0x00000410+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR__SIZE                                   0x00000010
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B_SHIFT                                        0
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B_MASK                                 0x000000ff
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G_SHIFT                                        8
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G_MASK                                 0x0000ff00
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R_SHIFT                                        16
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R_MASK                                 0x00ff0000
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A_SHIFT                                        24
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A_MASK                                 0xff000000
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(x)                                   (0x00000414+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR__SIZE                                        0x00000010
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B_SHIFT                             0
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B_MASK                              0x000000ff
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G_SHIFT                             8
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G_MASK                              0x0000ff00
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R_SHIFT                             16
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R_MASK                              0x00ff0000
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_SHIFT                           24
+#define   NV04_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_MASK                            0xff000000
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_TU(x)                                         (0x00000418+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_TU__SIZE                                      0x00000010
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_TV(x)                                         (0x0000041c+((x)*32))
+#define  NV04_TEXTURED_TRIANGLE_TLVERTEX_TV__SIZE                                      0x00000010
+#define  NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE(x)                                       (0x00000600+((x)*4))
+#define  NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE__SIZE                                    0x00000040
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I0_SHIFT                                        0
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I0_MASK                                 0x0000000f
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I1_SHIFT                                        4
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I1_MASK                                 0x000000f0
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I2_SHIFT                                        8
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I2_MASK                                 0x00000f00
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I3_SHIFT                                        12
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I3_MASK                                 0x0000f000
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I4_SHIFT                                        16
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I4_MASK                                 0x000f0000
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I5_SHIFT                                        20
+#define   NV04_TEXTURED_TRIANGLE_DRAWPRIMITIVE_I5_MASK                                 0x00f00000
+
+
+#define NV10_TEXTURED_TRIANGLE                                                         0x00000094
+
+
+
+#define NV04_MULTITEX_TRIANGLE                                                         0x00000055
+
+#define  NV04_MULTITEX_TRIANGLE_NOP                                                    0x00000100
+#define  NV04_MULTITEX_TRIANGLE_NOTIFY                                                 0x00000104
+#define  NV04_MULTITEX_TRIANGLE_DMA_NOTIFY                                             0x00000180
+#define  NV04_MULTITEX_TRIANGLE_DMA_A                                                  0x00000184
+#define  NV04_MULTITEX_TRIANGLE_DMA_B                                                  0x00000188
+#define  NV04_MULTITEX_TRIANGLE_SURFACE                                                        0x0000018c
+#define  NV04_MULTITEX_TRIANGLE_OFFSET(x)                                              (0x00000308+((x)*4))
+#define  NV04_MULTITEX_TRIANGLE_OFFSET__SIZE                                           0x00000002
+#define  NV04_MULTITEX_TRIANGLE_FORMAT(x)                                              (0x00000310+((x)*4))
+#define  NV04_MULTITEX_TRIANGLE_FORMAT__SIZE                                           0x00000002
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_DMA_A                                          (1 <<  0)
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_DMA_B                                          (1 <<  1)
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_SHIFT                               4
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_MASK                                        0x00000030
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_SHIFT                               6
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_MASK                                        0x000000c0
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_SHIFT                                    8
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_COLOR_MASK                                     0x00000f00
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT                            12
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_MASK                             0x0000f000
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT                              16
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_MASK                               0x000f0000
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT                              20
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_MASK                               0x00f00000
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_SHIFT                                 24
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_MASK                                  0x07000000
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_WRAPU                                          (1 << 27)
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_SHIFT                                 28
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_MASK                                  0x70000000
+#define   NV04_MULTITEX_TRIANGLE_FORMAT_WRAPV                                          (1 << 31)
+#define  NV04_MULTITEX_TRIANGLE_FILTER(x)                                              (0x00000318+((x)*4))
+#define  NV04_MULTITEX_TRIANGLE_FILTER__SIZE                                           0x00000002
+#define   NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X_SHIFT                            0
+#define   NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X_MASK                             0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y_SHIFT                            8
+#define   NV04_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y_MASK                             0x00007f00
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE                           (1 << 15)
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT                           16
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_MASK                            0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_SHIFT                                   24
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MINIFY_MASK                                    0x07000000
+#define   NV04_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE                      (1 << 27)
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY_SHIFT                                  28
+#define   NV04_MULTITEX_TRIANGLE_FILTER_MAGNIFY_MASK                                   0x70000000
+#define   NV04_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE                     (1 << 31)
+#define  NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA(x)                                       (0x00000320+((x)*12))
+#define  NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA__SIZE                                    0x00000002
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE0                                        (1 <<  0)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_SHIFT                         2
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_MASK                          0x000000fc
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_ZERO                         0x00000004
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_CONSTANT                     0x00000008
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_PRIMARY_COLOR                        0x0000000c
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_PREVIOUS                     0x00000010
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_TEXTURE0                     0x00000014
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT0_TEXTURE1                     0x00000018
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE1                                        (1 <<  8)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_SHIFT                         10
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_MASK                          0x0000fc00
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_ZERO                         0x00000400
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_CONSTANT                     0x00000800
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_PRIMARY_COLOR                        0x00000c00
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_PREVIOUS                     0x00001000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_TEXTURE0                     0x00001400
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT1_TEXTURE1                     0x00001800
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE2                                        (1 << 16)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_SHIFT                         18
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_MASK                          0x00fc0000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_ZERO                         0x00040000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_CONSTANT                     0x00080000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_PRIMARY_COLOR                        0x000c0000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_PREVIOUS                     0x00100000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_TEXTURE0                     0x00140000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT2_TEXTURE1                     0x00180000
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_INVERSE3                                        (1 << 24)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_SHIFT                         26
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_MASK                          0x1c000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_ZERO                         0x04000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_CONSTANT                     0x08000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_PRIMARY_COLOR                        0x0c000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_PREVIOUS                     0x10000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_TEXTURE0                     0x14000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_ARGUMENT3_TEXTURE1                     0x18000000
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SHIFT                               29
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_MASK                                        0xe0000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_IDENTITY                           0x20000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SCALE2                             0x40000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_SCALE4                             0x60000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_BIAS                               0x80000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_ALPHA_MAP_BIAS_SCALE2                                0xe0000000
+#define  NV04_MULTITEX_TRIANGLE_COMBINE_COLOR(x)                                       (0x00000324+((x)*12))
+#define  NV04_MULTITEX_TRIANGLE_COMBINE_COLOR__SIZE                                    0x00000002
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE0                                        (1 <<  0)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA0                                  (1 <<  1)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_SHIFT                         2
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_MASK                          0x000000fc
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_ZERO                         0x00000004
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_CONSTANT                     0x00000008
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_PRIMARY_COLOR                        0x0000000c
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_PREVIOUS                     0x00000010
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_TEXTURE0                     0x00000014
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT0_TEXTURE1                     0x00000018
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE1                                        (1 <<  8)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA1                                  (1 <<  9)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_SHIFT                         10
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_MASK                          0x0000fc00
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_ZERO                         0x00000400
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_CONSTANT                     0x00000800
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_PRIMARY_COLOR                        0x00000c00
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_PREVIOUS                     0x00001000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_TEXTURE0                     0x00001400
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT1_TEXTURE1                     0x00001800
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE2                                        (1 << 16)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA2                                  (1 << 17)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_SHIFT                         18
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_MASK                          0x00fc0000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_ZERO                         0x00040000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_CONSTANT                     0x00080000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_PRIMARY_COLOR                        0x000c0000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_PREVIOUS                     0x00100000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_TEXTURE0                     0x00140000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT2_TEXTURE1                     0x00180000
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_INVERSE3                                        (1 << 24)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ALPHA3                                  (1 << 25)
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_SHIFT                         26
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_MASK                          0x1c000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_ZERO                         0x04000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_CONSTANT                     0x08000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_PRIMARY_COLOR                        0x0c000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_PREVIOUS                     0x10000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_TEXTURE0                     0x14000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_ARGUMENT3_TEXTURE1                     0x18000000
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SHIFT                               29
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_MASK                                        0xe0000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_IDENTITY                           0x20000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SCALE2                             0x40000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_SCALE4                             0x60000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_BIAS                               0x80000000
+#define    NV04_MULTITEX_TRIANGLE_COMBINE_COLOR_MAP_BIAS_SCALE2                                0xe0000000
+#define  NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR                                         0x00000334
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_B_SHIFT                                        0
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_B_MASK                                 0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_G_SHIFT                                        8
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_G_MASK                                 0x0000ff00
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_R_SHIFT                                        16
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_R_MASK                                 0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_A_SHIFT                                        24
+#define   NV04_MULTITEX_TRIANGLE_COMBINE_FACTOR_A_MASK                                 0xff000000
+#define  NV04_MULTITEX_TRIANGLE_BLEND                                                  0x00000338
+#define   NV04_MULTITEX_TRIANGLE_BLEND_MASK_BIT_SHIFT                                  4
+#define   NV04_MULTITEX_TRIANGLE_BLEND_MASK_BIT_MASK                                   0x00000030
+#define   NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_SHIFT                                        6
+#define   NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_MASK                                 0x000000c0
+#define    NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_FLAT                                        0x00000040
+#define    NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_GOURAUD                             0x00000080
+#define    NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_PHONG                               0x000000c0
+#define   NV04_MULTITEX_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE                      (1 <<  8)
+#define   NV04_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE                                 (1 << 12)
+#define   NV04_MULTITEX_TRIANGLE_BLEND_FOG_ENABLE                                      (1 << 16)
+#define   NV04_MULTITEX_TRIANGLE_BLEND_BLEND_ENABLE                                    (1 << 20)
+#define   NV04_MULTITEX_TRIANGLE_BLEND_SRC_SHIFT                                       24
+#define   NV04_MULTITEX_TRIANGLE_BLEND_SRC_MASK                                                0x0f000000
+#define   NV04_MULTITEX_TRIANGLE_BLEND_DST_SHIFT                                       28
+#define   NV04_MULTITEX_TRIANGLE_BLEND_DST_MASK                                                0xf0000000
+#define  NV04_MULTITEX_TRIANGLE_CONTROL0                                               0x0000033c
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF_SHIFT                              0
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF_MASK                               0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_SHIFT                             8
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_MASK                              0x00000f00
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_ENABLE                                 (1 << 12)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ORIGIN                                       (1 << 13)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_ENABLE                                     (1 << 14)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_SHIFT                                 16
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_MASK                                  0x000f0000
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_SHIFT                              20
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_MASK                               0x00300000
+#define    NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_BOTH                              0x00000000
+#define    NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_NONE                              0x00100000
+#define    NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_CW                                        0x00200000
+#define    NV04_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_CCW                               0x00300000
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_DITHER_ENABLE                                        (1 << 22)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_PERSPECTIVE_ENABLE                         (1 << 23)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_WRITE                                      (1 << 24)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE                                        (1 << 25)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE                                  (1 << 26)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE                                    (1 << 27)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE                                  (1 << 28)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE                                   (1 << 29)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_SHIFT                               30
+#define   NV04_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_MASK                                        0xc0000000
+#define  NV04_MULTITEX_TRIANGLE_CONTROL1                                               0x00000340
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_ENABLE                               (1 <<  0)
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_SHIFT                           4
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_MASK                            0x000000f0
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_SHIFT                            8
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_MASK                             0x0000ff00
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_SHIFT                      16
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_MASK                       0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_SHIFT                     24
+#define   NV04_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_MASK                      0xff000000
+#define  NV04_MULTITEX_TRIANGLE_CONTROL2                                               0x00000344
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL_SHIFT                                0
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL_MASK                         0x0000000f
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_SHIFT                       4
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_MASK                                0x000000f0
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_SHIFT                       8
+#define   NV04_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_MASK                                0x00000f00
+#define  NV04_MULTITEX_TRIANGLE_FOGCOLOR                                               0x00000348
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_B_SHIFT                                      0
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_B_MASK                                       0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_G_SHIFT                                      8
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_G_MASK                                       0x0000ff00
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_R_SHIFT                                      16
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_R_MASK                                       0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_A_SHIFT                                      24
+#define   NV04_MULTITEX_TRIANGLE_FOGCOLOR_A_MASK                                       0xff000000
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SX(x)                                       (0x00000400+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SX__SIZE                                    0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SY(x)                                       (0x00000404+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SY__SIZE                                    0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SZ(x)                                       (0x00000408+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SZ__SIZE                                    0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_RHW(x)                                      (0x0000040c+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_RHW__SIZE                                   0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR(x)                                    (0x00000410+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR__SIZE                                 0x00000008
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B_SHIFT                              0
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B_MASK                               0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G_SHIFT                              8
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G_MASK                               0x0000ff00
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R_SHIFT                              16
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R_MASK                               0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A_SHIFT                              24
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A_MASK                               0xff000000
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR(x)                                 (0x00000414+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR__SIZE                              0x00000008
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B_SHIFT                           0
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B_MASK                            0x000000ff
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G_SHIFT                           8
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G_MASK                            0x0000ff00
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R_SHIFT                           16
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R_MASK                            0x00ff0000
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG_SHIFT                         24
+#define   NV04_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG_MASK                          0xff000000
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU0(x)                                      (0x00000418+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU0__SIZE                                   0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV0(x)                                      (0x0000041c+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV0__SIZE                                   0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU1(x)                                      (0x00000420+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TU1__SIZE                                   0x00000008
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV1(x)                                      (0x00000424+((x)*40))
+#define  NV04_MULTITEX_TRIANGLE_TLMTVERTEX_TV1__SIZE                                   0x00000008
+#define  NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE(x)                                       (0x00000540+((x)*4))
+#define  NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE__SIZE                                    0x00000030
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I0_SHIFT                                        0
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I0_MASK                                 0x0000000f
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I1_SHIFT                                        4
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I1_MASK                                 0x000000f0
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I2_SHIFT                                        8
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I2_MASK                                 0x00000f00
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I3_SHIFT                                        12
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I3_MASK                                 0x0000f000
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I4_SHIFT                                        16
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I4_MASK                                 0x000f0000
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I5_SHIFT                                        20
+#define   NV04_MULTITEX_TRIANGLE_DRAWPRIMITIVE_I5_MASK                                 0x00f00000
+
+
+#define NV10_MULTITEX_TRIANGLE                                                         0x00000095
 
 
 
@@ -1775,6 +1982,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV10TCL_RT_FORMAT_COLOR_X8R8G8B8                                            0x00000005
 #define    NV10TCL_RT_FORMAT_COLOR_A8R8G8B8                                            0x00000008
 #define    NV10TCL_RT_FORMAT_COLOR_B8                                                  0x00000009
+#define    NV10TCL_RT_FORMAT_COLOR_UNKNOWN                                             0x0000000d
 #define    NV10TCL_RT_FORMAT_COLOR_X8B8G8R8                                            0x0000000f
 #define    NV10TCL_RT_FORMAT_COLOR_A8B8G8R8                                            0x00000010
 #define  NV10TCL_RT_PITCH                                                              0x0000020c
@@ -1792,11 +2000,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_TX_FORMAT_DMA1                                                       (1 <<  1)
 #define   NV10TCL_TX_FORMAT_CUBE_MAP                                                   (1 <<  2)
 #define   NV10TCL_TX_FORMAT_FORMAT_SHIFT                                               7
-#define   NV10TCL_TX_FORMAT_FORMAT_MASK                                                        0x00000780
+#define   NV10TCL_TX_FORMAT_FORMAT_MASK                                                        0x00000f80
 #define    NV10TCL_TX_FORMAT_FORMAT_L8                                                 0x00000000
 #define    NV10TCL_TX_FORMAT_FORMAT_A8                                                 0x00000080
 #define    NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5                                           0x00000100
-#define    NV10TCL_TX_FORMAT_FORMAT_A8_RECT                                            0x00000180
 #define    NV10TCL_TX_FORMAT_FORMAT_A4R4G4B4                                           0x00000200
 #define    NV10TCL_TX_FORMAT_FORMAT_R5G6B5                                             0x00000280
 #define    NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8                                           0x00000300
@@ -1808,26 +2015,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT                                      0x00000800
 #define    NV10TCL_TX_FORMAT_FORMAT_R5G6B5_RECT                                                0x00000880
 #define    NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT                                      0x00000900
-#define    NV10TCL_TX_FORMAT_FORMAT_L8_RECT                                            0x00000980
-#define    NV10TCL_TX_FORMAT_FORMAT_A8L8                                               0x00000d00
-#define    NV10TCL_TX_FORMAT_FORMAT_A8_RECT2                                           0x00000d80
-#define    NV10TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT                                      0x00000e80
-#define    NV10TCL_TX_FORMAT_FORMAT_R8G8B8_RECT                                                0x00000f00
-#define    NV10TCL_TX_FORMAT_FORMAT_L8A8_RECT                                          0x00001000
-#define    NV10TCL_TX_FORMAT_FORMAT_A16                                                        0x00001900
-#define    NV10TCL_TX_FORMAT_FORMAT_HILO16                                             0x00001980
-#define    NV10TCL_TX_FORMAT_FORMAT_A16_RECT                                           0x00001a80
-#define    NV10TCL_TX_FORMAT_FORMAT_HILO16_RECT                                                0x00001b00
-#define    NV10TCL_TX_FORMAT_FORMAT_HILO8                                              0x00002200
-#define    NV10TCL_TX_FORMAT_FORMAT_SIGNED_HILO8                                       0x00002280
-#define    NV10TCL_TX_FORMAT_FORMAT_HILO8_RECT                                         0x00002300
-#define    NV10TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT                                  0x00002380
-#define    NV10TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV                                    0x00002500
-#define    NV10TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV                                    0x00002580
-#define    NV10TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV                                       0x00002600
-#define   NV10TCL_TX_FORMAT_NPOT                                                       (1 << 11)
-#define   NV10TCL_TX_FORMAT_MIPMAP_LEVELS_SHIFT                                                12
-#define   NV10TCL_TX_FORMAT_MIPMAP_LEVELS_MASK                                         0x0000f000
+#define    NV10TCL_TX_FORMAT_FORMAT_A8_RECT                                            0x00000980
+#define   NV10TCL_TX_FORMAT_MIPMAP                                                     (1 << 15)
 #define   NV10TCL_TX_FORMAT_BASE_SIZE_U_SHIFT                                          16
 #define   NV10TCL_TX_FORMAT_BASE_SIZE_U_MASK                                           0x000f0000
 #define   NV10TCL_TX_FORMAT_BASE_SIZE_V_SHIFT                                          20
@@ -1848,8 +2037,17 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV10TCL_TX_FORMAT_WRAP_T_CLAMP                                              0x50000000
 #define  NV10TCL_TX_ENABLE(x)                                                          (0x00000228+((x)*4))
 #define  NV10TCL_TX_ENABLE__SIZE                                                       0x00000002
+#define   NV10TCL_TX_ENABLE_CULL_SHIFT                                                 0
+#define   NV10TCL_TX_ENABLE_CULL_MASK                                                  0x0000000f
+#define    NV10TCL_TX_ENABLE_CULL_DISABLED                                             0x00000000
+#define    NV10TCL_TX_ENABLE_CULL_TEST_ALL                                             0x00000003
+#define    NV10TCL_TX_ENABLE_CULL_TEST_ALPHA                                           0x00000004
 #define   NV10TCL_TX_ENABLE_ANISOTROPY_SHIFT                                           4
 #define   NV10TCL_TX_ENABLE_ANISOTROPY_MASK                                            0x00000030
+#define   NV10TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT                                       14
+#define   NV10TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK                                                0x0003c000
+#define   NV10TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT                                       26
+#define   NV10TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK                                                0x3c000000
 #define   NV10TCL_TX_ENABLE_ENABLE                                                     (1 << 30)
 #define  NV10TCL_TX_NPOT_PITCH(x)                                                      (0x00000230+((x)*4))
 #define  NV10TCL_TX_NPOT_PITCH__SIZE                                                   0x00000002
@@ -1863,6 +2061,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_TX_NPOT_SIZE_W_MASK                                                  0xffff0000
 #define  NV10TCL_TX_FILTER(x)                                                          (0x00000248+((x)*4))
 #define  NV10TCL_TX_FILTER__SIZE                                                       0x00000002
+#define   NV10TCL_TX_FILTER_LOD_BIAS_SHIFT                                             8
+#define   NV10TCL_TX_FILTER_LOD_BIAS_MASK                                              0x00000f00
 #define   NV10TCL_TX_FILTER_MINIFY_SHIFT                                               24
 #define   NV10TCL_TX_FILTER_MINIFY_MASK                                                        0x0f000000
 #define    NV10TCL_TX_FILTER_MINIFY_NEAREST                                            0x01000000
@@ -1882,221 +2082,237 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_RC_IN_ALPHA_D_INPUT_SHIFT                                            0
 #define   NV10TCL_RC_IN_ALPHA_D_INPUT_MASK                                             0x0000000f
 #define    NV10TCL_RC_IN_ALPHA_D_INPUT_ZERO                                            0x00000000
-#define    NV10TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0_NV                              0x00000001
-#define    NV10TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1_NV                              0x00000002
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0                                 0x00000001
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1                                 0x00000002
 #define    NV10TCL_RC_IN_ALPHA_D_INPUT_FOG                                             0x00000003
-#define    NV10TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR_NV                                        0x00000004
-#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR_NV                              0x00000005
-#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0_ARB                                    0x00000008
-#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1_ARB                                    0x00000009
-#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0_NV                                       0x0000000c
-#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE1_NV                                       0x0000000d
-#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                  0x0000000e
-#define    NV10TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F_NV                                    0x0000000f
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR                                   0x00000004
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR                                 0x00000005
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0                                                0x00000008
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1                                                0x00000009
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0                                          0x0000000c
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE1                                          0x0000000d
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x0000000e
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F                                       0x0000000f
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2                                                0x0000000a
+#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3                                                0x0000000b
 #define   NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE                                                (1 <<  4)
 #define    NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE                                  0x00000000
 #define    NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA                                 0x00000010
 #define   NV10TCL_RC_IN_ALPHA_D_MAPPING_SHIFT                                          5
 #define   NV10TCL_RC_IN_ALPHA_D_MAPPING_MASK                                           0x000000e0
-#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY_NV                          0x00000000
-#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT_NV                            0x00000020
-#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL_NV                              0x00000040
-#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE_NV                              0x00000060
-#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL_NV                           0x00000080
-#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE_NV                           0x000000a0
-#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY_NV                            0x000000c0
-#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE_NV                              0x000000e0
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT                               0x00000020
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL                                 0x00000040
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE                                 0x00000060
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL                              0x00000080
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE                              0x000000a0
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY                               0x000000c0
+#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE                                 0x000000e0
 #define   NV10TCL_RC_IN_ALPHA_C_INPUT_SHIFT                                            8
 #define   NV10TCL_RC_IN_ALPHA_C_INPUT_MASK                                             0x00000f00
 #define    NV10TCL_RC_IN_ALPHA_C_INPUT_ZERO                                            0x00000000
-#define    NV10TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0_NV                              0x00000100
-#define    NV10TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1_NV                              0x00000200
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0                                 0x00000100
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1                                 0x00000200
 #define    NV10TCL_RC_IN_ALPHA_C_INPUT_FOG                                             0x00000300
-#define    NV10TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR_NV                                        0x00000400
-#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR_NV                              0x00000500
-#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0_ARB                                    0x00000800
-#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1_ARB                                    0x00000900
-#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0_NV                                       0x00000c00
-#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE1_NV                                       0x00000d00
-#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                  0x00000e00
-#define    NV10TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F_NV                                    0x00000f00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR                                   0x00000400
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR                                 0x00000500
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0                                                0x00000800
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1                                                0x00000900
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0                                          0x00000c00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE1                                          0x00000d00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x00000e00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F                                       0x00000f00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2                                                0x00000a00
+#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3                                                0x00000b00
 #define   NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE                                                (1 << 12)
 #define    NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE                                  0x00000000
 #define    NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA                                 0x00001000
 #define   NV10TCL_RC_IN_ALPHA_C_MAPPING_SHIFT                                          13
 #define   NV10TCL_RC_IN_ALPHA_C_MAPPING_MASK                                           0x0000e000
-#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY_NV                          0x00000000
-#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT_NV                            0x00002000
-#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL_NV                              0x00004000
-#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE_NV                              0x00006000
-#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL_NV                           0x00008000
-#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE_NV                           0x0000a000
-#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY_NV                            0x0000c000
-#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE_NV                              0x0000e000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT                               0x00002000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL                                 0x00004000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE                                 0x00006000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL                              0x00008000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE                              0x0000a000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY                               0x0000c000
+#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE                                 0x0000e000
 #define   NV10TCL_RC_IN_ALPHA_B_INPUT_SHIFT                                            16
 #define   NV10TCL_RC_IN_ALPHA_B_INPUT_MASK                                             0x000f0000
 #define    NV10TCL_RC_IN_ALPHA_B_INPUT_ZERO                                            0x00000000
-#define    NV10TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0_NV                              0x00010000
-#define    NV10TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1_NV                              0x00020000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0                                 0x00010000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1                                 0x00020000
 #define    NV10TCL_RC_IN_ALPHA_B_INPUT_FOG                                             0x00030000
-#define    NV10TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR_NV                                        0x00040000
-#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR_NV                              0x00050000
-#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0_ARB                                    0x00080000
-#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1_ARB                                    0x00090000
-#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0_NV                                       0x000c0000
-#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE1_NV                                       0x000d0000
-#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                  0x000e0000
-#define    NV10TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F_NV                                    0x000f0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR                                   0x00040000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR                                 0x00050000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0                                                0x00080000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1                                                0x00090000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0                                          0x000c0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE1                                          0x000d0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x000e0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F                                       0x000f0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2                                                0x000a0000
+#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3                                                0x000b0000
 #define   NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE                                                (1 << 20)
 #define    NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE                                  0x00000000
 #define    NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA                                 0x00100000
 #define   NV10TCL_RC_IN_ALPHA_B_MAPPING_SHIFT                                          21
 #define   NV10TCL_RC_IN_ALPHA_B_MAPPING_MASK                                           0x00e00000
-#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY_NV                          0x00000000
-#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT_NV                            0x00200000
-#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL_NV                              0x00400000
-#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE_NV                              0x00600000
-#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL_NV                           0x00800000
-#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE_NV                           0x00a00000
-#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY_NV                            0x00c00000
-#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE_NV                              0x00e00000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT                               0x00200000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL                                 0x00400000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE                                 0x00600000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL                              0x00800000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE                              0x00a00000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY                               0x00c00000
+#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE                                 0x00e00000
 #define   NV10TCL_RC_IN_ALPHA_A_INPUT_SHIFT                                            24
 #define   NV10TCL_RC_IN_ALPHA_A_INPUT_MASK                                             0x0f000000
 #define    NV10TCL_RC_IN_ALPHA_A_INPUT_ZERO                                            0x00000000
-#define    NV10TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0_NV                              0x01000000
-#define    NV10TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1_NV                              0x02000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0                                 0x01000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1                                 0x02000000
 #define    NV10TCL_RC_IN_ALPHA_A_INPUT_FOG                                             0x03000000
-#define    NV10TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR_NV                                        0x04000000
-#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR_NV                              0x05000000
-#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0_ARB                                    0x08000000
-#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1_ARB                                    0x09000000
-#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0_NV                                       0x0c000000
-#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE1_NV                                       0x0d000000
-#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                  0x0e000000
-#define    NV10TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F_NV                                    0x0f000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR                                   0x04000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR                                 0x05000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0                                                0x08000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1                                                0x09000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0                                          0x0c000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE1                                          0x0d000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x0e000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F                                       0x0f000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2                                                0x0a000000
+#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3                                                0x0b000000
 #define   NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE                                                (1 << 28)
 #define    NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE                                  0x00000000
 #define    NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA                                 0x10000000
 #define   NV10TCL_RC_IN_ALPHA_A_MAPPING_SHIFT                                          29
 #define   NV10TCL_RC_IN_ALPHA_A_MAPPING_MASK                                           0xe0000000
-#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY_NV                          0x00000000
-#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT_NV                            0x20000000
-#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL_NV                              0x40000000
-#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE_NV                              0x60000000
-#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL_NV                           0x80000000
-#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE_NV                           0xa0000000
-#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY_NV                            0xc0000000
-#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE_NV                              0xe0000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT                               0x20000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL                                 0x40000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE                                 0x60000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL                              0x80000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE                              0xa0000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY                               0xc0000000
+#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE                                 0xe0000000
 #define  NV10TCL_RC_IN_RGB(x)                                                          (0x00000268+((x)*4))
 #define  NV10TCL_RC_IN_RGB__SIZE                                                       0x00000002
 #define   NV10TCL_RC_IN_RGB_D_INPUT_SHIFT                                              0
 #define   NV10TCL_RC_IN_RGB_D_INPUT_MASK                                               0x0000000f
 #define    NV10TCL_RC_IN_RGB_D_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0_NV                                        0x00000001
-#define    NV10TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1_NV                                        0x00000002
+#define    NV10TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0                                   0x00000001
+#define    NV10TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1                                   0x00000002
 #define    NV10TCL_RC_IN_RGB_D_INPUT_FOG                                               0x00000003
-#define    NV10TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR_NV                                  0x00000004
-#define    NV10TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR_NV                                        0x00000005
-#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE0_ARB                                      0x00000008
-#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE1_ARB                                      0x00000009
-#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE0_NV                                         0x0000000c
-#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE1_NV                                         0x0000000d
-#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x0000000e
-#define    NV10TCL_RC_IN_RGB_D_INPUT_E_TIMES_F_NV                                      0x0000000f
+#define    NV10TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR                                     0x00000004
+#define    NV10TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR                                   0x00000005
+#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE0                                          0x00000008
+#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE1                                          0x00000009
+#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE0                                            0x0000000c
+#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE1                                            0x0000000d
+#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0000000e
+#define    NV10TCL_RC_IN_RGB_D_INPUT_E_TIMES_F                                         0x0000000f
+#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE2                                          0x0000000a
+#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE3                                          0x0000000b
 #define   NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE                                          (1 <<  4)
 #define    NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA                                   0x00000010
 #define   NV10TCL_RC_IN_RGB_D_MAPPING_SHIFT                                            5
 #define   NV10TCL_RC_IN_RGB_D_MAPPING_MASK                                             0x000000e0
-#define    NV10TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT_NV                              0x00000020
-#define    NV10TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL_NV                                        0x00000040
-#define    NV10TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE_NV                                        0x00000060
-#define    NV10TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL_NV                             0x00000080
-#define    NV10TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE_NV                             0x000000a0
-#define    NV10TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY_NV                              0x000000c0
-#define    NV10TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE_NV                                        0x000000e0
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT                                 0x00000020
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL                                   0x00000040
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE                                   0x00000060
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL                                        0x00000080
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE                                        0x000000a0
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY                                 0x000000c0
+#define    NV10TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE                                   0x000000e0
 #define   NV10TCL_RC_IN_RGB_C_INPUT_SHIFT                                              8
 #define   NV10TCL_RC_IN_RGB_C_INPUT_MASK                                               0x00000f00
 #define    NV10TCL_RC_IN_RGB_C_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0_NV                                        0x00000100
-#define    NV10TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1_NV                                        0x00000200
+#define    NV10TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0                                   0x00000100
+#define    NV10TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1                                   0x00000200
 #define    NV10TCL_RC_IN_RGB_C_INPUT_FOG                                               0x00000300
-#define    NV10TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR_NV                                  0x00000400
-#define    NV10TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR_NV                                        0x00000500
-#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE0_ARB                                      0x00000800
-#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE1_ARB                                      0x00000900
-#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE0_NV                                         0x00000c00
-#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE1_NV                                         0x00000d00
-#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x00000e00
-#define    NV10TCL_RC_IN_RGB_C_INPUT_E_TIMES_F_NV                                      0x00000f00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR                                     0x00000400
+#define    NV10TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR                                   0x00000500
+#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE0                                          0x00000800
+#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE1                                          0x00000900
+#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE0                                            0x00000c00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE1                                            0x00000d00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x00000e00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_E_TIMES_F                                         0x00000f00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE2                                          0x00000a00
+#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE3                                          0x00000b00
 #define   NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE                                          (1 << 12)
 #define    NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA                                   0x00001000
 #define   NV10TCL_RC_IN_RGB_C_MAPPING_SHIFT                                            13
 #define   NV10TCL_RC_IN_RGB_C_MAPPING_MASK                                             0x0000e000
-#define    NV10TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT_NV                              0x00002000
-#define    NV10TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL_NV                                        0x00004000
-#define    NV10TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE_NV                                        0x00006000
-#define    NV10TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL_NV                             0x00008000
-#define    NV10TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE_NV                             0x0000a000
-#define    NV10TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY_NV                              0x0000c000
-#define    NV10TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE_NV                                        0x0000e000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT                                 0x00002000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL                                   0x00004000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE                                   0x00006000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL                                        0x00008000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE                                        0x0000a000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY                                 0x0000c000
+#define    NV10TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE                                   0x0000e000
 #define   NV10TCL_RC_IN_RGB_B_INPUT_SHIFT                                              16
 #define   NV10TCL_RC_IN_RGB_B_INPUT_MASK                                               0x000f0000
 #define    NV10TCL_RC_IN_RGB_B_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0_NV                                        0x00010000
-#define    NV10TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1_NV                                        0x00020000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0                                   0x00010000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1                                   0x00020000
 #define    NV10TCL_RC_IN_RGB_B_INPUT_FOG                                               0x00030000
-#define    NV10TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR_NV                                  0x00040000
-#define    NV10TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR_NV                                        0x00050000
-#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE0_ARB                                      0x00080000
-#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE1_ARB                                      0x00090000
-#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE0_NV                                         0x000c0000
-#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE1_NV                                         0x000d0000
-#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x000e0000
-#define    NV10TCL_RC_IN_RGB_B_INPUT_E_TIMES_F_NV                                      0x000f0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR                                     0x00040000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR                                   0x00050000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE0                                          0x00080000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE1                                          0x00090000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE0                                            0x000c0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE1                                            0x000d0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x000e0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_E_TIMES_F                                         0x000f0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE2                                          0x000a0000
+#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE3                                          0x000b0000
 #define   NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE                                          (1 << 20)
 #define    NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA                                   0x00100000
 #define   NV10TCL_RC_IN_RGB_B_MAPPING_SHIFT                                            21
 #define   NV10TCL_RC_IN_RGB_B_MAPPING_MASK                                             0x00e00000
-#define    NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT_NV                              0x00200000
-#define    NV10TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL_NV                                        0x00400000
-#define    NV10TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE_NV                                        0x00600000
-#define    NV10TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL_NV                             0x00800000
-#define    NV10TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE_NV                             0x00a00000
-#define    NV10TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY_NV                              0x00c00000
-#define    NV10TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE_NV                                        0x00e00000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT                                 0x00200000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL                                   0x00400000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE                                   0x00600000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL                                        0x00800000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE                                        0x00a00000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY                                 0x00c00000
+#define    NV10TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE                                   0x00e00000
 #define   NV10TCL_RC_IN_RGB_A_INPUT_SHIFT                                              24
 #define   NV10TCL_RC_IN_RGB_A_INPUT_MASK                                               0x0f000000
 #define    NV10TCL_RC_IN_RGB_A_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0_NV                                        0x01000000
-#define    NV10TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1_NV                                        0x02000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0                                   0x01000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1                                   0x02000000
 #define    NV10TCL_RC_IN_RGB_A_INPUT_FOG                                               0x03000000
-#define    NV10TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR_NV                                  0x04000000
-#define    NV10TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR_NV                                        0x05000000
-#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE0_ARB                                      0x08000000
-#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE1_ARB                                      0x09000000
-#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE0_NV                                         0x0c000000
-#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE1_NV                                         0x0d000000
-#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x0e000000
-#define    NV10TCL_RC_IN_RGB_A_INPUT_E_TIMES_F_NV                                      0x0f000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR                                     0x04000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR                                   0x05000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE0                                          0x08000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE1                                          0x09000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE0                                            0x0c000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE1                                            0x0d000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0e000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_E_TIMES_F                                         0x0f000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE2                                          0x0a000000
+#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE3                                          0x0b000000
 #define   NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE                                          (1 << 28)
 #define    NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA                                   0x10000000
 #define   NV10TCL_RC_IN_RGB_A_MAPPING_SHIFT                                            29
 #define   NV10TCL_RC_IN_RGB_A_MAPPING_MASK                                             0xe0000000
-#define    NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT_NV                              0x20000000
-#define    NV10TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL_NV                                        0x40000000
-#define    NV10TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE_NV                                        0x60000000
-#define    NV10TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL_NV                             0x80000000
-#define    NV10TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE_NV                             0xa0000000
-#define    NV10TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY_NV                              0xc0000000
-#define    NV10TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE_NV                                        0xe0000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT                                 0x20000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL                                   0x40000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE                                   0x60000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL                                        0x80000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE                                        0xa0000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY                                 0xc0000000
+#define    NV10TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE                                   0xe0000000
 #define  NV10TCL_RC_COLOR(x)                                                           (0x00000270+((x)*4))
 #define  NV10TCL_RC_COLOR__SIZE                                                                0x00000002
 #define   NV10TCL_RC_COLOR_B_SHIFT                                                     0
@@ -2112,322 +2328,352 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT                                         0
 #define   NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK                                          0x0000000f
 #define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO                                         0x00000000
-#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0_NV                           0x00000001
-#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1_NV                           0x00000002
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0                              0x00000001
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1                              0x00000002
 #define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG                                          0x00000003
-#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR_NV                             0x00000004
-#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR_NV                           0x00000005
-#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0_ARB                                 0x00000008
-#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1_ARB                                 0x00000009
-#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_NV                                    0x0000000c
-#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1_NV                                    0x0000000d
-#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV               0x0000000e
-#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F_NV                                 0x0000000f
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR                                        0x00000004
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR                              0x00000005
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0                                     0x00000008
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1                                     0x00000009
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0                                       0x0000000c
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1                                       0x0000000d
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                  0x0000000e
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F                                    0x0000000f
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2                                     0x0000000a
+#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3                                     0x0000000b
 #define   NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT                                         4
 #define   NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK                                          0x000000f0
 #define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO                                         0x00000000
-#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0_NV                           0x00000010
-#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1_NV                           0x00000020
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0                              0x00000010
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1                              0x00000020
 #define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG                                          0x00000030
-#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR_NV                             0x00000040
-#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR_NV                           0x00000050
-#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0_ARB                                 0x00000080
-#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1_ARB                                 0x00000090
-#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_NV                                    0x000000c0
-#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV                                    0x000000d0
-#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV               0x000000e0
-#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV                                 0x000000f0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR                                        0x00000040
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR                              0x00000050
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0                                     0x00000080
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1                                     0x00000090
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0                                       0x000000c0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1                                       0x000000d0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                  0x000000e0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F                                    0x000000f0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2                                     0x000000a0
+#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3                                     0x000000b0
 #define   NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT                                                8
 #define   NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK                                         0x00000f00
 #define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO                                                0x00000000
-#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0_NV                          0x00000100
-#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1_NV                          0x00000200
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0                             0x00000100
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1                             0x00000200
 #define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG                                         0x00000300
-#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR_NV                            0x00000400
-#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR_NV                          0x00000500
-#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0_ARB                                        0x00000800
-#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1_ARB                                        0x00000900
-#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_NV                                   0x00000c00
-#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV                                   0x00000d00
-#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV              0x00000e00
-#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV                                        0x00000f00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR                               0x00000400
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR                             0x00000500
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0                                    0x00000800
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1                                    0x00000900
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0                                      0x00000c00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1                                      0x00000d00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                 0x00000e00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F                                   0x00000f00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2                                    0x00000a00
+#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3                                    0x00000b00
 #define   NV10TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT                                          (1 << 12)
 #define   NV10TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT                                          (1 << 13)
 #define   NV10TCL_RC_OUT_ALPHA_MUX_SUM                                                 (1 << 14)
 #define   NV10TCL_RC_OUT_ALPHA_BIAS                                                    (1 << 15)
 #define    NV10TCL_RC_OUT_ALPHA_BIAS_NONE                                              0x00000000
-#define    NV10TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV                      0x00008000
+#define    NV10TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF                         0x00008000
 #define   NV10TCL_RC_OUT_ALPHA_SCALE_SHIFT                                             17
 #define   NV10TCL_RC_OUT_ALPHA_SCALE_MASK                                              0x00000000
 #define    NV10TCL_RC_OUT_ALPHA_SCALE_NONE                                             0x00000000
-#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO_NV                                  0x00020000
-#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR_NV                                 0x00040000
-#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF_NV                             0x00060000
+#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO                                     0x00020000
+#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR                                    0x00040000
+#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF                                        0x00060000
 #define  NV10TCL_RC_OUT_RGB(x)                                                         (0x00000280+((x)*4))
 #define  NV10TCL_RC_OUT_RGB__SIZE                                                      0x00000002
 #define   NV10TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT                                           0
 #define   NV10TCL_RC_OUT_RGB_CD_OUTPUT_MASK                                            0x0000000f
 #define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_ZERO                                           0x00000000
-#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0_NV                             0x00000001
-#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1_NV                             0x00000002
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0                                        0x00000001
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1                                        0x00000002
 #define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_FOG                                            0x00000003
-#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR_NV                               0x00000004
-#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR_NV                             0x00000005
-#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0_ARB                                   0x00000008
-#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1_ARB                                   0x00000009
-#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_NV                                      0x0000000c
-#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1_NV                                      0x0000000d
-#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                 0x0000000e
-#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F_NV                                   0x0000000f
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR                                  0x00000004
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR                                        0x00000005
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0                                       0x00000008
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1                                       0x00000009
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0                                         0x0000000c
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1                                         0x0000000d
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                    0x0000000e
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F                                      0x0000000f
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2                                       0x0000000a
+#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3                                       0x0000000b
 #define   NV10TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT                                           4
 #define   NV10TCL_RC_OUT_RGB_AB_OUTPUT_MASK                                            0x000000f0
 #define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_ZERO                                           0x00000000
-#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0_NV                             0x00000010
-#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1_NV                             0x00000020
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0                                        0x00000010
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1                                        0x00000020
 #define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_FOG                                            0x00000030
-#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR_NV                               0x00000040
-#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR_NV                             0x00000050
-#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0_ARB                                   0x00000080
-#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1_ARB                                   0x00000090
-#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_NV                                      0x000000c0
-#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV                                      0x000000d0
-#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                 0x000000e0
-#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV                                   0x000000f0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR                                  0x00000040
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR                                        0x00000050
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0                                       0x00000080
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1                                       0x00000090
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0                                         0x000000c0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1                                         0x000000d0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                    0x000000e0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F                                      0x000000f0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2                                       0x000000a0
+#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3                                       0x000000b0
 #define   NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT                                          8
 #define   NV10TCL_RC_OUT_RGB_SUM_OUTPUT_MASK                                           0x00000f00
 #define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO                                          0x00000000
-#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0_NV                            0x00000100
-#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1_NV                            0x00000200
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0                               0x00000100
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1                               0x00000200
 #define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_FOG                                           0x00000300
-#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR_NV                              0x00000400
-#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR_NV                            0x00000500
-#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0_ARB                                  0x00000800
-#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1_ARB                                  0x00000900
-#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_NV                                     0x00000c00
-#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV                                     0x00000d00
-#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                        0x00000e00
-#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV                                  0x00000f00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR                                 0x00000400
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR                               0x00000500
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0                                      0x00000800
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1                                      0x00000900
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0                                                0x00000c00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1                                                0x00000d00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                   0x00000e00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F                                     0x00000f00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2                                      0x00000a00
+#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3                                      0x00000b00
 #define   NV10TCL_RC_OUT_RGB_CD_DOT_PRODUCT                                            (1 << 12)
 #define   NV10TCL_RC_OUT_RGB_AB_DOT_PRODUCT                                            (1 << 13)
 #define   NV10TCL_RC_OUT_RGB_MUX_SUM                                                   (1 << 14)
 #define   NV10TCL_RC_OUT_RGB_BIAS                                                      (1 << 15)
 #define    NV10TCL_RC_OUT_RGB_BIAS_NONE                                                        0x00000000
-#define    NV10TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV                                0x00008000
+#define    NV10TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF                           0x00008000
 #define   NV10TCL_RC_OUT_RGB_SCALE_SHIFT                                               17
 #define   NV10TCL_RC_OUT_RGB_SCALE_MASK                                                        0x00000000
 #define    NV10TCL_RC_OUT_RGB_SCALE_NONE                                               0x00000000
-#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO_NV                                    0x00020000
-#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR_NV                                   0x00040000
-#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF_NV                               0x00060000
+#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO                                       0x00020000
+#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR                                      0x00040000
+#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF                                  0x00060000
 #define   NV10TCL_RC_OUT_RGB_OPERATION_SHIFT                                           27
 #define   NV10TCL_RC_OUT_RGB_OPERATION_MASK                                            0x38000000
 #define  NV10TCL_RC_FINAL0                                                             0x00000288
 #define   NV10TCL_RC_FINAL0_D_INPUT_SHIFT                                              0
 #define   NV10TCL_RC_FINAL0_D_INPUT_MASK                                               0x0000000f
 #define    NV10TCL_RC_FINAL0_D_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0_NV                                        0x00000001
-#define    NV10TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1_NV                                        0x00000002
+#define    NV10TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0                                   0x00000001
+#define    NV10TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1                                   0x00000002
 #define    NV10TCL_RC_FINAL0_D_INPUT_FOG                                               0x00000003
-#define    NV10TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR_NV                                  0x00000004
-#define    NV10TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR_NV                                        0x00000005
-#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE0_ARB                                      0x00000008
-#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE1_ARB                                      0x00000009
-#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE0_NV                                         0x0000000c
-#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE1_NV                                         0x0000000d
-#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x0000000e
-#define    NV10TCL_RC_FINAL0_D_INPUT_E_TIMES_F_NV                                      0x0000000f
+#define    NV10TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR                                     0x00000004
+#define    NV10TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR                                   0x00000005
+#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE0                                          0x00000008
+#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE1                                          0x00000009
+#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE0                                            0x0000000c
+#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE1                                            0x0000000d
+#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0000000e
+#define    NV10TCL_RC_FINAL0_D_INPUT_E_TIMES_F                                         0x0000000f
+#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE2                                          0x0000000a
+#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE3                                          0x0000000b
 #define   NV10TCL_RC_FINAL0_D_COMPONENT_USAGE                                          (1 <<  4)
 #define    NV10TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA                                   0x00000010
 #define   NV10TCL_RC_FINAL0_D_MAPPING_SHIFT                                            5
 #define   NV10TCL_RC_FINAL0_D_MAPPING_MASK                                             0x000000e0
-#define    NV10TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT_NV                              0x00000020
-#define    NV10TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL_NV                                        0x00000040
-#define    NV10TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE_NV                                        0x00000060
-#define    NV10TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL_NV                             0x00000080
-#define    NV10TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE_NV                             0x000000a0
-#define    NV10TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY_NV                              0x000000c0
-#define    NV10TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE_NV                                        0x000000e0
+#define    NV10TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT                                 0x00000020
+#define    NV10TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL                                   0x00000040
+#define    NV10TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE                                   0x00000060
+#define    NV10TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL                                        0x00000080
+#define    NV10TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE                                        0x000000a0
+#define    NV10TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY                                 0x000000c0
+#define    NV10TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE                                   0x000000e0
 #define   NV10TCL_RC_FINAL0_C_INPUT_SHIFT                                              8
 #define   NV10TCL_RC_FINAL0_C_INPUT_MASK                                               0x00000f00
 #define    NV10TCL_RC_FINAL0_C_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0_NV                                        0x00000100
-#define    NV10TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1_NV                                        0x00000200
+#define    NV10TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0                                   0x00000100
+#define    NV10TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1                                   0x00000200
 #define    NV10TCL_RC_FINAL0_C_INPUT_FOG                                               0x00000300
-#define    NV10TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR_NV                                  0x00000400
-#define    NV10TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR_NV                                        0x00000500
-#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE0_ARB                                      0x00000800
-#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE1_ARB                                      0x00000900
-#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE0_NV                                         0x00000c00
-#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE1_NV                                         0x00000d00
-#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x00000e00
-#define    NV10TCL_RC_FINAL0_C_INPUT_E_TIMES_F_NV                                      0x00000f00
+#define    NV10TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR                                     0x00000400
+#define    NV10TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR                                   0x00000500
+#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE0                                          0x00000800
+#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE1                                          0x00000900
+#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE0                                            0x00000c00
+#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE1                                            0x00000d00
+#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x00000e00
+#define    NV10TCL_RC_FINAL0_C_INPUT_E_TIMES_F                                         0x00000f00
+#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE2                                          0x00000a00
+#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE3                                          0x00000b00
 #define   NV10TCL_RC_FINAL0_C_COMPONENT_USAGE                                          (1 << 12)
 #define    NV10TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA                                   0x00001000
 #define   NV10TCL_RC_FINAL0_C_MAPPING_SHIFT                                            13
 #define   NV10TCL_RC_FINAL0_C_MAPPING_MASK                                             0x0000e000
-#define    NV10TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT_NV                              0x00002000
-#define    NV10TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL_NV                                        0x00004000
-#define    NV10TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE_NV                                        0x00006000
-#define    NV10TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL_NV                             0x00008000
-#define    NV10TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE_NV                             0x0000a000
-#define    NV10TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY_NV                              0x0000c000
-#define    NV10TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE_NV                                        0x0000e000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT                                 0x00002000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL                                   0x00004000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE                                   0x00006000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL                                        0x00008000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE                                        0x0000a000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY                                 0x0000c000
+#define    NV10TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE                                   0x0000e000
 #define   NV10TCL_RC_FINAL0_B_INPUT_SHIFT                                              16
 #define   NV10TCL_RC_FINAL0_B_INPUT_MASK                                               0x000f0000
 #define    NV10TCL_RC_FINAL0_B_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0_NV                                        0x00010000
-#define    NV10TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1_NV                                        0x00020000
+#define    NV10TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0                                   0x00010000
+#define    NV10TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1                                   0x00020000
 #define    NV10TCL_RC_FINAL0_B_INPUT_FOG                                               0x00030000
-#define    NV10TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR_NV                                  0x00040000
-#define    NV10TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR_NV                                        0x00050000
-#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE0_ARB                                      0x00080000
-#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE1_ARB                                      0x00090000
-#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE0_NV                                         0x000c0000
-#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE1_NV                                         0x000d0000
-#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x000e0000
-#define    NV10TCL_RC_FINAL0_B_INPUT_E_TIMES_F_NV                                      0x000f0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR                                     0x00040000
+#define    NV10TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR                                   0x00050000
+#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE0                                          0x00080000
+#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE1                                          0x00090000
+#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE0                                            0x000c0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE1                                            0x000d0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x000e0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_E_TIMES_F                                         0x000f0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE2                                          0x000a0000
+#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE3                                          0x000b0000
 #define   NV10TCL_RC_FINAL0_B_COMPONENT_USAGE                                          (1 << 20)
 #define    NV10TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA                                   0x00100000
 #define   NV10TCL_RC_FINAL0_B_MAPPING_SHIFT                                            21
 #define   NV10TCL_RC_FINAL0_B_MAPPING_MASK                                             0x00e00000
-#define    NV10TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT_NV                              0x00200000
-#define    NV10TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL_NV                                        0x00400000
-#define    NV10TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE_NV                                        0x00600000
-#define    NV10TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL_NV                             0x00800000
-#define    NV10TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE_NV                             0x00a00000
-#define    NV10TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY_NV                              0x00c00000
-#define    NV10TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE_NV                                        0x00e00000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT                                 0x00200000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL                                   0x00400000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE                                   0x00600000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL                                        0x00800000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE                                        0x00a00000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY                                 0x00c00000
+#define    NV10TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE                                   0x00e00000
 #define   NV10TCL_RC_FINAL0_A_INPUT_SHIFT                                              24
 #define   NV10TCL_RC_FINAL0_A_INPUT_MASK                                               0x0f000000
 #define    NV10TCL_RC_FINAL0_A_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0_NV                                        0x01000000
-#define    NV10TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1_NV                                        0x02000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0                                   0x01000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1                                   0x02000000
 #define    NV10TCL_RC_FINAL0_A_INPUT_FOG                                               0x03000000
-#define    NV10TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR_NV                                  0x04000000
-#define    NV10TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR_NV                                        0x05000000
-#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE0_ARB                                      0x08000000
-#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE1_ARB                                      0x09000000
-#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE0_NV                                         0x0c000000
-#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE1_NV                                         0x0d000000
-#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x0e000000
-#define    NV10TCL_RC_FINAL0_A_INPUT_E_TIMES_F_NV                                      0x0f000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR                                     0x04000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR                                   0x05000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE0                                          0x08000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE1                                          0x09000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE0                                            0x0c000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE1                                            0x0d000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0e000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_E_TIMES_F                                         0x0f000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE2                                          0x0a000000
+#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE3                                          0x0b000000
 #define   NV10TCL_RC_FINAL0_A_COMPONENT_USAGE                                          (1 << 28)
 #define    NV10TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA                                   0x10000000
 #define   NV10TCL_RC_FINAL0_A_MAPPING_SHIFT                                            29
 #define   NV10TCL_RC_FINAL0_A_MAPPING_MASK                                             0xe0000000
-#define    NV10TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT_NV                              0x20000000
-#define    NV10TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL_NV                                        0x40000000
-#define    NV10TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE_NV                                        0x60000000
-#define    NV10TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL_NV                             0x80000000
-#define    NV10TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE_NV                             0xa0000000
-#define    NV10TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY_NV                              0xc0000000
-#define    NV10TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE_NV                                        0xe0000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT                                 0x20000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL                                   0x40000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE                                   0x60000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL                                        0x80000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE                                        0xa0000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY                                 0xc0000000
+#define    NV10TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE                                   0xe0000000
 #define  NV10TCL_RC_FINAL1                                                             0x0000028c
 #define   NV10TCL_RC_FINAL1_COLOR_SUM_CLAMP                                            (1 <<  7)
 #define   NV10TCL_RC_FINAL1_G_INPUT_SHIFT                                              8
 #define   NV10TCL_RC_FINAL1_G_INPUT_MASK                                               0x00000f00
 #define    NV10TCL_RC_FINAL1_G_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0_NV                                        0x00000100
-#define    NV10TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1_NV                                        0x00000200
+#define    NV10TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0                                   0x00000100
+#define    NV10TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1                                   0x00000200
 #define    NV10TCL_RC_FINAL1_G_INPUT_FOG                                               0x00000300
-#define    NV10TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR_NV                                  0x00000400
-#define    NV10TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR_NV                                        0x00000500
-#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE0_ARB                                      0x00000800
-#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE1_ARB                                      0x00000900
-#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE0_NV                                         0x00000c00
-#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE1_NV                                         0x00000d00
-#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x00000e00
-#define    NV10TCL_RC_FINAL1_G_INPUT_E_TIMES_F_NV                                      0x00000f00
+#define    NV10TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR                                     0x00000400
+#define    NV10TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR                                   0x00000500
+#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE0                                          0x00000800
+#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE1                                          0x00000900
+#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE0                                            0x00000c00
+#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE1                                            0x00000d00
+#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x00000e00
+#define    NV10TCL_RC_FINAL1_G_INPUT_E_TIMES_F                                         0x00000f00
+#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE2                                          0x00000a00
+#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE3                                          0x00000b00
 #define   NV10TCL_RC_FINAL1_G_COMPONENT_USAGE                                          (1 << 12)
 #define    NV10TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA                                   0x00001000
 #define   NV10TCL_RC_FINAL1_G_MAPPING_SHIFT                                            13
 #define   NV10TCL_RC_FINAL1_G_MAPPING_MASK                                             0x0000e000
-#define    NV10TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT_NV                              0x00002000
-#define    NV10TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL_NV                                        0x00004000
-#define    NV10TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE_NV                                        0x00006000
-#define    NV10TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL_NV                             0x00008000
-#define    NV10TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE_NV                             0x0000a000
-#define    NV10TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY_NV                              0x0000c000
-#define    NV10TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE_NV                                        0x0000e000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT                                 0x00002000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL                                   0x00004000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE                                   0x00006000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL                                        0x00008000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE                                        0x0000a000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY                                 0x0000c000
+#define    NV10TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE                                   0x0000e000
 #define   NV10TCL_RC_FINAL1_F_INPUT_SHIFT                                              16
 #define   NV10TCL_RC_FINAL1_F_INPUT_MASK                                               0x000f0000
 #define    NV10TCL_RC_FINAL1_F_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0_NV                                        0x00010000
-#define    NV10TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1_NV                                        0x00020000
+#define    NV10TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0                                   0x00010000
+#define    NV10TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1                                   0x00020000
 #define    NV10TCL_RC_FINAL1_F_INPUT_FOG                                               0x00030000
-#define    NV10TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR_NV                                  0x00040000
-#define    NV10TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR_NV                                        0x00050000
-#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE0_ARB                                      0x00080000
-#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE1_ARB                                      0x00090000
-#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE0_NV                                         0x000c0000
-#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE1_NV                                         0x000d0000
-#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x000e0000
-#define    NV10TCL_RC_FINAL1_F_INPUT_E_TIMES_F_NV                                      0x000f0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR                                     0x00040000
+#define    NV10TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR                                   0x00050000
+#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE0                                          0x00080000
+#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE1                                          0x00090000
+#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE0                                            0x000c0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE1                                            0x000d0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x000e0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_E_TIMES_F                                         0x000f0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE2                                          0x000a0000
+#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE3                                          0x000b0000
 #define   NV10TCL_RC_FINAL1_F_COMPONENT_USAGE                                          (1 << 20)
 #define    NV10TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA                                   0x00100000
 #define   NV10TCL_RC_FINAL1_F_MAPPING_SHIFT                                            21
 #define   NV10TCL_RC_FINAL1_F_MAPPING_MASK                                             0x00e00000
-#define    NV10TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT_NV                              0x00200000
-#define    NV10TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL_NV                                        0x00400000
-#define    NV10TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE_NV                                        0x00600000
-#define    NV10TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL_NV                             0x00800000
-#define    NV10TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE_NV                             0x00a00000
-#define    NV10TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY_NV                              0x00c00000
-#define    NV10TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE_NV                                        0x00e00000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT                                 0x00200000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL                                   0x00400000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE                                   0x00600000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL                                        0x00800000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE                                        0x00a00000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY                                 0x00c00000
+#define    NV10TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE                                   0x00e00000
 #define   NV10TCL_RC_FINAL1_E_INPUT_SHIFT                                              24
 #define   NV10TCL_RC_FINAL1_E_INPUT_MASK                                               0x0f000000
 #define    NV10TCL_RC_FINAL1_E_INPUT_ZERO                                              0x00000000
-#define    NV10TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0_NV                                        0x01000000
-#define    NV10TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1_NV                                        0x02000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0                                   0x01000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1                                   0x02000000
 #define    NV10TCL_RC_FINAL1_E_INPUT_FOG                                               0x03000000
-#define    NV10TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR_NV                                  0x04000000
-#define    NV10TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR_NV                                        0x05000000
-#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE0_ARB                                      0x08000000
-#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE1_ARB                                      0x09000000
-#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE0_NV                                         0x0c000000
-#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE1_NV                                         0x0d000000
-#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV                    0x0e000000
-#define    NV10TCL_RC_FINAL1_E_INPUT_E_TIMES_F_NV                                      0x0f000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR                                     0x04000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR                                   0x05000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE0                                          0x08000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE1                                          0x09000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE0                                            0x0c000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE1                                            0x0d000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0e000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_E_TIMES_F                                         0x0f000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE2                                          0x0a000000
+#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE3                                          0x0b000000
 #define   NV10TCL_RC_FINAL1_E_COMPONENT_USAGE                                          (1 << 28)
 #define    NV10TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB                                     0x00000000
 #define    NV10TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA                                   0x10000000
 #define   NV10TCL_RC_FINAL1_E_MAPPING_SHIFT                                            29
 #define   NV10TCL_RC_FINAL1_E_MAPPING_MASK                                             0xe0000000
-#define    NV10TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY_NV                            0x00000000
-#define    NV10TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT_NV                              0x20000000
-#define    NV10TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL_NV                                        0x40000000
-#define    NV10TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE_NV                                        0x60000000
-#define    NV10TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL_NV                             0x80000000
-#define    NV10TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE_NV                             0xa0000000
-#define    NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY_NV                              0xc0000000
-#define    NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE_NV                                        0xe0000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT                                 0x20000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL                                   0x40000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE                                   0x60000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL                                        0x80000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE                                        0xa0000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY                                 0xc0000000
+#define    NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE                                   0xe0000000
 #define  NV10TCL_LIGHT_MODEL                                                           0x00000294
-#define   NV10TCL_LIGHT_MODEL_COLOR_CONTROL                                            (1 <<  1)
+#define   NV10TCL_LIGHT_MODEL_VERTEX_SPECULAR                                          (1 <<  0)
+#define   NV10TCL_LIGHT_MODEL_SEPARATE_SPECULAR                                                (1 <<  1)
 #define   NV10TCL_LIGHT_MODEL_LOCAL_VIEWER                                             (1 << 16)
-#define  NV10TCL_COLOR_MATERIAL_ENABLE                                                 0x00000298
-#define   NV10TCL_COLOR_MATERIAL_ENABLE_SPECULAR                                       (1 <<  0)
-#define   NV10TCL_COLOR_MATERIAL_ENABLE_DIFFUSE                                                (1 <<  1)
-#define   NV10TCL_COLOR_MATERIAL_ENABLE_AMBIENT                                                (1 <<  2)
-#define   NV10TCL_COLOR_MATERIAL_ENABLE_EMISSION                                       (1 <<  3)
+#define  NV10TCL_COLOR_MATERIAL                                                                0x00000298
+#define   NV10TCL_COLOR_MATERIAL_EMISSION                                              (1 <<  0)
+#define   NV10TCL_COLOR_MATERIAL_AMBIENT                                               (1 <<  1)
+#define   NV10TCL_COLOR_MATERIAL_DIFFUSE                                               (1 <<  2)
+#define   NV10TCL_COLOR_MATERIAL_SPECULAR                                              (1 <<  3)
 #define  NV10TCL_FOG_MODE                                                              0x0000029c
+#define   NV10TCL_FOG_MODE_LINEAR                                                      0x00002601
 #define   NV10TCL_FOG_MODE_EXP                                                         0x00000800
-#define   NV10TCL_FOG_MODE_EXP_2                                                       0x00000802
+#define   NV10TCL_FOG_MODE_EXP_ABS                                                     0x00000802
 #define   NV10TCL_FOG_MODE_EXP2                                                                0x00000803
-#define   NV10TCL_FOG_MODE_LINEAR                                                      0x00000804
-#define   NV10TCL_FOG_MODE_LINEAR_2                                                    0x00002601
-#define  NV10TCL_FOG_COORD_DIST                                                                0x000002a0
+#define  NV10TCL_FOG_COORD                                                             0x000002a0
+#define   NV10TCL_FOG_COORD_FOG                                                                0x00000000
+#define   NV10TCL_FOG_COORD_DIST_RADIAL                                                        0x00000001
+#define   NV10TCL_FOG_COORD_DIST_ORTHOGONAL                                            0x00000002
+#define   NV10TCL_FOG_COORD_DIST_ORTHOGONAL_ABS                                                0x00000003
 #define  NV10TCL_FOG_ENABLE                                                            0x000002a4
 #define  NV10TCL_FOG_COLOR                                                             0x000002a8
 #define   NV10TCL_FOG_COLOR_R_SHIFT                                                    0
@@ -2476,7 +2722,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_ALPHA_FUNC_FUNC_EQUAL                                                        0x00000202
 #define   NV10TCL_ALPHA_FUNC_FUNC_LEQUAL                                               0x00000203
 #define   NV10TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
-#define   NV10TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
 #define   NV10TCL_ALPHA_FUNC_FUNC_NOTEQUAL                                             0x00000205
 #define   NV10TCL_ALPHA_FUNC_FUNC_GEQUAL                                               0x00000206
 #define   NV10TCL_ALPHA_FUNC_FUNC_ALWAYS                                               0x00000207
@@ -2534,7 +2779,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_DEPTH_FUNC_EQUAL                                                     0x00000202
 #define   NV10TCL_DEPTH_FUNC_LEQUAL                                                    0x00000203
 #define   NV10TCL_DEPTH_FUNC_GREATER                                                   0x00000204
-#define   NV10TCL_DEPTH_FUNC_GREATER                                                   0x00000204
 #define   NV10TCL_DEPTH_FUNC_NOTEQUAL                                                  0x00000205
 #define   NV10TCL_DEPTH_FUNC_GEQUAL                                                    0x00000206
 #define   NV10TCL_DEPTH_FUNC_ALWAYS                                                    0x00000207
@@ -2551,7 +2795,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_STENCIL_FUNC_FUNC_EQUAL                                              0x00000202
 #define   NV10TCL_STENCIL_FUNC_FUNC_LEQUAL                                             0x00000203
 #define   NV10TCL_STENCIL_FUNC_FUNC_GREATER                                            0x00000204
-#define   NV10TCL_STENCIL_FUNC_FUNC_GREATER                                            0x00000204
 #define   NV10TCL_STENCIL_FUNC_FUNC_NOTEQUAL                                           0x00000205
 #define   NV10TCL_STENCIL_FUNC_FUNC_GEQUAL                                             0x00000206
 #define   NV10TCL_STENCIL_FUNC_FUNC_ALWAYS                                             0x00000207
@@ -2608,25 +2851,92 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_FRONT_FACE_CW                                                                0x00000900
 #define   NV10TCL_FRONT_FACE_CCW                                                       0x00000901
 #define  NV10TCL_NORMALIZE_ENABLE                                                      0x000003a4
-#define  NV10TCL_COLOR_MATERIAL_R                                                      0x000003a8
-#define  NV10TCL_COLOR_MATERIAL_G                                                      0x000003ac
-#define  NV10TCL_COLOR_MATERIAL_B                                                      0x000003b0
-#define  NV10TCL_COLOR_MATERIAL_A                                                      0x000003b4
-#define  NV10TCL_COLOR_CONTROL                                                         0x000003b8
+#define  NV10TCL_MATERIAL_FACTOR_R                                                     0x000003a8
+#define  NV10TCL_MATERIAL_FACTOR_G                                                     0x000003ac
+#define  NV10TCL_MATERIAL_FACTOR_B                                                     0x000003b0
+#define  NV10TCL_MATERIAL_FACTOR_A                                                     0x000003b4
+#define  NV10TCL_SEPARATE_SPECULAR_ENABLE                                              0x000003b8
 #define  NV10TCL_ENABLED_LIGHTS                                                                0x000003bc
-#define   NV10TCL_ENABLED_LIGHTS_LIGHT0                                                        (1 <<  0)
-#define   NV10TCL_ENABLED_LIGHTS_LIGHT1                                                        (1 <<  2)
-#define   NV10TCL_ENABLED_LIGHTS_LIGHT2                                                        (1 <<  4)
-#define   NV10TCL_ENABLED_LIGHTS_LIGHT3                                                        (1 <<  6)
-#define   NV10TCL_ENABLED_LIGHTS_LIGHT4                                                        (1 <<  8)
-#define   NV10TCL_ENABLED_LIGHTS_LIGHT5                                                        (1 << 10)
-#define   NV10TCL_ENABLED_LIGHTS_LIGHT6                                                        (1 << 12)
-#define   NV10TCL_ENABLED_LIGHTS_LIGHT7                                                        (1 << 14)
-#define  NV10TCL_CLIP_PLANE_ENABLE(x)                                                  (0x000003c0+((x)*4))
-#define  NV10TCL_CLIP_PLANE_ENABLE__SIZE                                               0x00000008
-#define   NV10TCL_CLIP_PLANE_ENABLE_FALSE                                              0x00000000
-#define   NV10TCL_CLIP_PLANE_ENABLE_EYE_LINEAR                                         0x00002400
-#define   NV10TCL_CLIP_PLANE_ENABLE_OBJECT_LINEAR                                      0x00002401
+#define   NV10TCL_ENABLED_LIGHTS_0_SHIFT                                               0
+#define   NV10TCL_ENABLED_LIGHTS_0_MASK                                                        0x00000003
+#define    NV10TCL_ENABLED_LIGHTS_0_DISABLED                                           0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_0_NONPOSITIONAL                                      0x00000001
+#define    NV10TCL_ENABLED_LIGHTS_0_POSITIONAL                                         0x00000002
+#define    NV10TCL_ENABLED_LIGHTS_0_DIRECTIONAL                                                0x00000003
+#define   NV10TCL_ENABLED_LIGHTS_1_SHIFT                                               2
+#define   NV10TCL_ENABLED_LIGHTS_1_MASK                                                        0x0000000c
+#define    NV10TCL_ENABLED_LIGHTS_1_DISABLED                                           0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_1_NONPOSITIONAL                                      0x00000004
+#define    NV10TCL_ENABLED_LIGHTS_1_POSITIONAL                                         0x00000008
+#define    NV10TCL_ENABLED_LIGHTS_1_DIRECTIONAL                                                0x0000000c
+#define   NV10TCL_ENABLED_LIGHTS_2_SHIFT                                               4
+#define   NV10TCL_ENABLED_LIGHTS_2_MASK                                                        0x00000030
+#define    NV10TCL_ENABLED_LIGHTS_2_DISABLED                                           0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_2_NONPOSITIONAL                                      0x00000010
+#define    NV10TCL_ENABLED_LIGHTS_2_POSITIONAL                                         0x00000020
+#define    NV10TCL_ENABLED_LIGHTS_2_DIRECTIONAL                                                0x00000030
+#define   NV10TCL_ENABLED_LIGHTS_3_SHIFT                                               6
+#define   NV10TCL_ENABLED_LIGHTS_3_MASK                                                        0x000000c0
+#define    NV10TCL_ENABLED_LIGHTS_3_DISABLED                                           0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_3_NONPOSITIONAL                                      0x00000040
+#define    NV10TCL_ENABLED_LIGHTS_3_POSITIONAL                                         0x00000080
+#define    NV10TCL_ENABLED_LIGHTS_3_DIRECTIONAL                                                0x000000c0
+#define   NV10TCL_ENABLED_LIGHTS_4_SHIFT                                               8
+#define   NV10TCL_ENABLED_LIGHTS_4_MASK                                                        0x00000300
+#define    NV10TCL_ENABLED_LIGHTS_4_DISABLED                                           0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_4_NONPOSITIONAL                                      0x00000100
+#define    NV10TCL_ENABLED_LIGHTS_4_POSITIONAL                                         0x00000200
+#define    NV10TCL_ENABLED_LIGHTS_4_DIRECTIONAL                                                0x00000300
+#define   NV10TCL_ENABLED_LIGHTS_5_SHIFT                                               10
+#define   NV10TCL_ENABLED_LIGHTS_5_MASK                                                        0x00000c00
+#define    NV10TCL_ENABLED_LIGHTS_5_DISABLED                                           0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_5_NONPOSITIONAL                                      0x00000400
+#define    NV10TCL_ENABLED_LIGHTS_5_POSITIONAL                                         0x00000800
+#define    NV10TCL_ENABLED_LIGHTS_5_DIRECTIONAL                                                0x00000c00
+#define   NV10TCL_ENABLED_LIGHTS_6_SHIFT                                               12
+#define   NV10TCL_ENABLED_LIGHTS_6_MASK                                                        0x00003000
+#define    NV10TCL_ENABLED_LIGHTS_6_DISABLED                                           0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_6_NONPOSITIONAL                                      0x00001000
+#define    NV10TCL_ENABLED_LIGHTS_6_POSITIONAL                                         0x00002000
+#define    NV10TCL_ENABLED_LIGHTS_6_DIRECTIONAL                                                0x00003000
+#define   NV10TCL_ENABLED_LIGHTS_7_SHIFT                                               14
+#define   NV10TCL_ENABLED_LIGHTS_7_MASK                                                        0x0000c000
+#define    NV10TCL_ENABLED_LIGHTS_7_DISABLED                                           0x00000000
+#define    NV10TCL_ENABLED_LIGHTS_7_NONPOSITIONAL                                      0x00004000
+#define    NV10TCL_ENABLED_LIGHTS_7_POSITIONAL                                         0x00008000
+#define    NV10TCL_ENABLED_LIGHTS_7_DIRECTIONAL                                                0x0000c000
+#define  NV10TCL_TX_GEN_MODE_S(x)                                                      (0x000003c0+((x)*16))
+#define  NV10TCL_TX_GEN_MODE_S__SIZE                                                   0x00000002
+#define   NV10TCL_TX_GEN_MODE_S_FALSE                                                  0x00000000
+#define   NV10TCL_TX_GEN_MODE_S_EYE_LINEAR                                             0x00002400
+#define   NV10TCL_TX_GEN_MODE_S_OBJECT_LINEAR                                          0x00002401
+#define   NV10TCL_TX_GEN_MODE_S_SPHERE_MAP                                             0x00002402
+#define   NV10TCL_TX_GEN_MODE_S_NORMAL_MAP                                             0x00008511
+#define   NV10TCL_TX_GEN_MODE_S_REFLECTION_MAP                                         0x00008512
+#define  NV10TCL_TX_GEN_MODE_T(x)                                                      (0x000003c4+((x)*16))
+#define  NV10TCL_TX_GEN_MODE_T__SIZE                                                   0x00000002
+#define   NV10TCL_TX_GEN_MODE_T_FALSE                                                  0x00000000
+#define   NV10TCL_TX_GEN_MODE_T_EYE_LINEAR                                             0x00002400
+#define   NV10TCL_TX_GEN_MODE_T_OBJECT_LINEAR                                          0x00002401
+#define   NV10TCL_TX_GEN_MODE_T_SPHERE_MAP                                             0x00002402
+#define   NV10TCL_TX_GEN_MODE_T_NORMAL_MAP                                             0x00008511
+#define   NV10TCL_TX_GEN_MODE_T_REFLECTION_MAP                                         0x00008512
+#define  NV10TCL_TX_GEN_MODE_R(x)                                                      (0x000003c8+((x)*16))
+#define  NV10TCL_TX_GEN_MODE_R__SIZE                                                   0x00000002
+#define   NV10TCL_TX_GEN_MODE_R_FALSE                                                  0x00000000
+#define   NV10TCL_TX_GEN_MODE_R_EYE_LINEAR                                             0x00002400
+#define   NV10TCL_TX_GEN_MODE_R_OBJECT_LINEAR                                          0x00002401
+#define   NV10TCL_TX_GEN_MODE_R_SPHERE_MAP                                             0x00002402
+#define   NV10TCL_TX_GEN_MODE_R_NORMAL_MAP                                             0x00008511
+#define   NV10TCL_TX_GEN_MODE_R_REFLECTION_MAP                                         0x00008512
+#define  NV10TCL_TX_GEN_MODE_Q(x)                                                      (0x000003cc+((x)*16))
+#define  NV10TCL_TX_GEN_MODE_Q__SIZE                                                   0x00000002
+#define   NV10TCL_TX_GEN_MODE_Q_FALSE                                                  0x00000000
+#define   NV10TCL_TX_GEN_MODE_Q_EYE_LINEAR                                             0x00002400
+#define   NV10TCL_TX_GEN_MODE_Q_OBJECT_LINEAR                                          0x00002401
+#define   NV10TCL_TX_GEN_MODE_Q_SPHERE_MAP                                             0x00002402
+#define   NV10TCL_TX_GEN_MODE_Q_NORMAL_MAP                                             0x00008511
+#define   NV10TCL_TX_GEN_MODE_Q_REFLECTION_MAP                                         0x00008512
 #define  NV10TCL_TX_MATRIX_ENABLE(x)                                                   (0x000003e0+((x)*4))
 #define  NV10TCL_TX_MATRIX_ENABLE__SIZE                                                        0x00000002
 #define  NV10TCL_VIEW_MATRIX_ENABLE                                                    0x000003e8
@@ -2648,46 +2958,70 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV10TCL_TX0_MATRIX__SIZE                                                      0x00000010
 #define  NV10TCL_TX1_MATRIX(x)                                                         (0x00000580+((x)*4))
 #define  NV10TCL_TX1_MATRIX__SIZE                                                      0x00000010
-#define  NV10TCL_CLIP_PLANE_A(x)                                                       (0x00000600+((x)*16))
-#define  NV10TCL_CLIP_PLANE_A__SIZE                                                    0x00000008
-#define  NV10TCL_CLIP_PLANE_B(x)                                                       (0x00000604+((x)*16))
-#define  NV10TCL_CLIP_PLANE_B__SIZE                                                    0x00000008
-#define  NV10TCL_CLIP_PLANE_C(x)                                                       (0x00000608+((x)*16))
-#define  NV10TCL_CLIP_PLANE_C__SIZE                                                    0x00000008
-#define  NV10TCL_CLIP_PLANE_D(x)                                                       (0x0000060c+((x)*16))
-#define  NV10TCL_CLIP_PLANE_D__SIZE                                                    0x00000008
+#define  NV10TCL_TX_GEN_COEFF_S_A(x)                                                   (0x00000600+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_S_A__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_S_B(x)                                                   (0x00000604+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_S_B__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_S_C(x)                                                   (0x00000608+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_S_C__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_S_D(x)                                                   (0x0000060c+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_S_D__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_T_A(x)                                                   (0x00000610+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_T_A__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_T_B(x)                                                   (0x00000614+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_T_B__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_T_C(x)                                                   (0x00000618+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_T_C__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_T_D(x)                                                   (0x0000061c+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_T_D__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_R_A(x)                                                   (0x00000620+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_R_A__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_R_B(x)                                                   (0x00000624+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_R_B__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_R_C(x)                                                   (0x00000628+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_R_C__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_R_D(x)                                                   (0x0000062c+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_R_D__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_Q_A(x)                                                   (0x00000630+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_Q_A__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_Q_B(x)                                                   (0x00000634+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_Q_B__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_Q_C(x)                                                   (0x00000638+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_Q_C__SIZE                                                        0x00000002
+#define  NV10TCL_TX_GEN_COEFF_Q_D(x)                                                   (0x0000063c+((x)*64))
+#define  NV10TCL_TX_GEN_COEFF_Q_D__SIZE                                                        0x00000002
 #define  NV10TCL_FOG_EQUATION_CONSTANT                                                 0x00000680
 #define  NV10TCL_FOG_EQUATION_LINEAR                                                   0x00000684
 #define  NV10TCL_FOG_EQUATION_QUADRATIC                                                        0x00000688
-#define  NV10TCL_FRONT_MATERIAL_SHININESS(x)                                           (0x000006a0+((x)*4))
-#define  NV10TCL_FRONT_MATERIAL_SHININESS__SIZE                                                0x00000006
-#define  NV10TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R                        0x000006c4
-#define  NV10TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G                        0x000006c8
-#define  NV10TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B                        0x000006cc
-#define  NV10TCL_VIEWPORT_SCALE_X                                                      0x000006e8
-#define  NV10TCL_VIEWPORT_SCALE_Y                                                      0x000006ec
-#define  NV10TCL_VIEWPORT_SCALE_Z                                                      0x000006f0
-#define  NV10TCL_VIEWPORT_SCALE_W                                                      0x000006f4
+#define  NV10TCL_MATERIAL_SHININESS(x)                                                 (0x000006a0+((x)*4))
+#define  NV10TCL_MATERIAL_SHININESS__SIZE                                              0x00000006
+#define  NV10TCL_LIGHT_MODEL_AMBIENT_R                                                 0x000006c4
+#define  NV10TCL_LIGHT_MODEL_AMBIENT_G                                                 0x000006c8
+#define  NV10TCL_LIGHT_MODEL_AMBIENT_B                                                 0x000006cc
+#define  NV10TCL_VIEWPORT_TRANSLATE_X                                                  0x000006e8
+#define  NV10TCL_VIEWPORT_TRANSLATE_Y                                                  0x000006ec
+#define  NV10TCL_VIEWPORT_TRANSLATE_Z                                                  0x000006f0
+#define  NV10TCL_VIEWPORT_TRANSLATE_W                                                  0x000006f4
 #define  NV10TCL_POINT_PARAMETER(x)                                                    (0x000006f8+((x)*4))
 #define  NV10TCL_POINT_PARAMETER__SIZE                                                 0x00000008
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(x)                                 (0x00000800+((x)*128))
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R__SIZE                              0x00000008
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(x)                                 (0x00000804+((x)*128))
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G__SIZE                              0x00000008
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(x)                                 (0x00000808+((x)*128))
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B__SIZE                              0x00000008
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(x)                                 (0x0000080c+((x)*128))
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R__SIZE                              0x00000008
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(x)                                 (0x00000810+((x)*128))
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G__SIZE                              0x00000008
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(x)                                 (0x00000814+((x)*128))
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B__SIZE                              0x00000008
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(x)                                        (0x00000818+((x)*128))
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R__SIZE                             0x00000008
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(x)                                        (0x0000081c+((x)*128))
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G__SIZE                             0x00000008
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(x)                                        (0x00000820+((x)*128))
-#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B__SIZE                             0x00000008
+#define  NV10TCL_LIGHT_AMBIENT_R(x)                                                    (0x00000800+((x)*128))
+#define  NV10TCL_LIGHT_AMBIENT_R__SIZE                                                 0x00000008
+#define  NV10TCL_LIGHT_AMBIENT_G(x)                                                    (0x00000804+((x)*128))
+#define  NV10TCL_LIGHT_AMBIENT_G__SIZE                                                 0x00000008
+#define  NV10TCL_LIGHT_AMBIENT_B(x)                                                    (0x00000808+((x)*128))
+#define  NV10TCL_LIGHT_AMBIENT_B__SIZE                                                 0x00000008
+#define  NV10TCL_LIGHT_DIFFUSE_R(x)                                                    (0x0000080c+((x)*128))
+#define  NV10TCL_LIGHT_DIFFUSE_R__SIZE                                                 0x00000008
+#define  NV10TCL_LIGHT_DIFFUSE_G(x)                                                    (0x00000810+((x)*128))
+#define  NV10TCL_LIGHT_DIFFUSE_G__SIZE                                                 0x00000008
+#define  NV10TCL_LIGHT_DIFFUSE_B(x)                                                    (0x00000814+((x)*128))
+#define  NV10TCL_LIGHT_DIFFUSE_B__SIZE                                                 0x00000008
+#define  NV10TCL_LIGHT_SPECULAR_R(x)                                                   (0x00000818+((x)*128))
+#define  NV10TCL_LIGHT_SPECULAR_R__SIZE                                                        0x00000008
+#define  NV10TCL_LIGHT_SPECULAR_G(x)                                                   (0x0000081c+((x)*128))
+#define  NV10TCL_LIGHT_SPECULAR_G__SIZE                                                        0x00000008
+#define  NV10TCL_LIGHT_SPECULAR_B(x)                                                   (0x00000820+((x)*128))
+#define  NV10TCL_LIGHT_SPECULAR_B__SIZE                                                        0x00000008
 #define  NV10TCL_LIGHT_HALF_VECTOR_X(x)                                                        (0x00000828+((x)*128))
 #define  NV10TCL_LIGHT_HALF_VECTOR_X__SIZE                                             0x00000008
 #define  NV10TCL_LIGHT_HALF_VECTOR_Y(x)                                                        (0x0000082c+((x)*128))
@@ -2816,80 +3150,21 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV10TCL_VERTEX_WGH_1F                                                         0x00000ce4
 #define  NV10TCL_EDGEFLAG_ENABLE                                                       0x00000cec
 #define  NV10TCL_VERTEX_ARRAY_VALIDATE                                                 0x00000cf0
-#define  NV10TCL_VERTEX_ARRAY_ATTRIB_OFFSET(x)                                         (0x00000d00+((x)*8))
-#define  NV10TCL_VERTEX_ARRAY_ATTRIB_OFFSET__SIZE                                      0x00000008
-#define  NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT(x)                                         (0x00000d04+((x)*8))
-#define  NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT__SIZE                                      0x00000008
-#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_TYPE_SHIFT                                        0
-#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_TYPE_MASK                                 0x0000000f
-#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_FIELDS_SHIFT                              4
-#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_FIELDS_MASK                               0x000000f0
-#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_STRIDE_SHIFT                              8
-#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_STRIDE_MASK                               0x0000ff00
-#define  NV10TCL_VERTEX_ARRAY_OFFSET_POS                                               0x00000d00
-#define  NV10TCL_VERTEX_ARRAY_FORMAT_POS                                               0x00000d04
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_TYPE_SHIFT                                   0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_TYPE_MASK                                    0x0000000f
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_FIELDS_SHIFT                                 4
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_FIELDS_MASK                                  0x000000f0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_STRIDE_SHIFT                                 8
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_STRIDE_MASK                                  0x0000ff00
-#define  NV10TCL_VERTEX_ARRAY_OFFSET_COL                                               0x00000d08
-#define  NV10TCL_VERTEX_ARRAY_FORMAT_COL                                               0x00000d0c
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_TYPE_SHIFT                                   0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_TYPE_MASK                                    0x0000000f
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_FIELDS_SHIFT                                 4
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_FIELDS_MASK                                  0x000000f0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_STRIDE_SHIFT                                 8
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_STRIDE_MASK                                  0x0000ff00
-#define  NV10TCL_VERTEX_ARRAY_OFFSET_COL2                                              0x00000d10
-#define  NV10TCL_VERTEX_ARRAY_FORMAT_COL2                                              0x00000d14
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_TYPE_SHIFT                                  0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_TYPE_MASK                                   0x0000000f
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_FIELDS_SHIFT                                        4
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_FIELDS_MASK                                 0x000000f0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_STRIDE_SHIFT                                        8
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_STRIDE_MASK                                 0x0000ff00
-#define  NV10TCL_VERTEX_ARRAY_OFFSET_TX0                                               0x00000d18
-#define  NV10TCL_VERTEX_ARRAY_FORMAT_TX0                                               0x00000d1c
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_TYPE_SHIFT                                   0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_TYPE_MASK                                    0x0000000f
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_FIELDS_SHIFT                                 4
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_FIELDS_MASK                                  0x000000f0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_STRIDE_SHIFT                                 8
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_STRIDE_MASK                                  0x0000ff00
-#define  NV10TCL_VERTEX_ARRAY_OFFSET_TX1                                               0x00000d20
-#define  NV10TCL_VERTEX_ARRAY_FORMAT_TX1                                               0x00000d24
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_TYPE_SHIFT                                   0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_TYPE_MASK                                    0x0000000f
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_FIELDS_SHIFT                                 4
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_FIELDS_MASK                                  0x000000f0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_STRIDE_SHIFT                                 8
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_STRIDE_MASK                                  0x0000ff00
-#define  NV10TCL_VERTEX_ARRAY_OFFSET_NOR                                               0x00000d28
-#define  NV10TCL_VERTEX_ARRAY_FORMAT_NOR                                               0x00000d2c
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_TYPE_SHIFT                                   0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_TYPE_MASK                                    0x0000000f
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_FIELDS_SHIFT                                 4
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_FIELDS_MASK                                  0x000000f0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_STRIDE_SHIFT                                 8
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_STRIDE_MASK                                  0x0000ff00
-#define  NV10TCL_VERTEX_ARRAY_OFFSET_WGH                                               0x00000d30
-#define  NV10TCL_VERTEX_ARRAY_FORMAT_WGH                                               0x00000d34
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_TYPE_SHIFT                                   0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_TYPE_MASK                                    0x0000000f
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_FIELDS_SHIFT                                 4
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_FIELDS_MASK                                  0x000000f0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_STRIDE_SHIFT                                 8
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_STRIDE_MASK                                  0x0000ff00
-#define  NV10TCL_VERTEX_ARRAY_OFFSET_FOG                                               0x00000d38
-#define  NV10TCL_VERTEX_ARRAY_FORMAT_FOG                                               0x00000d3c
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_TYPE_SHIFT                                   0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_TYPE_MASK                                    0x0000000f
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_FIELDS_SHIFT                                 4
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_FIELDS_MASK                                  0x000000f0
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_STRIDE_SHIFT                                 8
-#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_STRIDE_MASK                                  0x0000ff00
+#define  NV10TCL_VTXBUF_ADDRESS(x)                                                     (0x00000d00+((x)*8))
+#define  NV10TCL_VTXBUF_ADDRESS__SIZE                                                  0x00000008
+#define  NV10TCL_VTXFMT(x)                                                             (0x00000d04+((x)*8))
+#define  NV10TCL_VTXFMT__SIZE                                                          0x00000008
+#define   NV10TCL_VTXFMT_TYPE_SHIFT                                                    0
+#define   NV10TCL_VTXFMT_TYPE_MASK                                                     0x0000000f
+#define    NV10TCL_VTXFMT_TYPE_BYTE_BGRA                                               0x00000000
+#define    NV10TCL_VTXFMT_TYPE_SHORT                                                   0x00000001
+#define    NV10TCL_VTXFMT_TYPE_FLOAT                                                   0x00000002
+#define    NV10TCL_VTXFMT_TYPE_BYTE_RGBA                                               0x00000004
+#define   NV10TCL_VTXFMT_FIELDS_SHIFT                                                  4
+#define   NV10TCL_VTXFMT_FIELDS_MASK                                                   0x000000f0
+#define   NV10TCL_VTXFMT_STRIDE_SHIFT                                                  8
+#define   NV10TCL_VTXFMT_STRIDE_MASK                                                   0x0000ff00
+#define   NV10TCL_VTXFMT_POS_HOMOGENEOUS                                               (1 << 24)
 #define  NV10TCL_VERTEX_BEGIN_END                                                      0x00000dfc
 #define   NV10TCL_VERTEX_BEGIN_END_STOP                                                        0x00000000
 #define   NV10TCL_VERTEX_BEGIN_END_POINTS                                              0x00000001
@@ -2928,8 +3203,42 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV10TCL_VERTEX_ARRAY_DATA                                                     0x00001800
 
 
-#define NV04_CONTEXT_COLOR_KEY                                                         0x00000057
+#define NV11TCL                                                                                0x00000096
 
+#define  NV11TCL_COLOR_LOGIC_OP_ENABLE                                                 0x00000d40
+#define  NV11TCL_COLOR_LOGIC_OP_OP                                                     0x00000d44
+#define   NV11TCL_COLOR_LOGIC_OP_OP_CLEAR                                              0x00001500
+#define   NV11TCL_COLOR_LOGIC_OP_OP_AND                                                        0x00001501
+#define   NV11TCL_COLOR_LOGIC_OP_OP_AND_REVERSE                                                0x00001502
+#define   NV11TCL_COLOR_LOGIC_OP_OP_COPY                                               0x00001503
+#define   NV11TCL_COLOR_LOGIC_OP_OP_AND_INVERTED                                       0x00001504
+#define   NV11TCL_COLOR_LOGIC_OP_OP_NOOP                                               0x00001505
+#define   NV11TCL_COLOR_LOGIC_OP_OP_XOR                                                        0x00001506
+#define   NV11TCL_COLOR_LOGIC_OP_OP_OR                                                 0x00001507
+#define   NV11TCL_COLOR_LOGIC_OP_OP_NOR                                                        0x00001508
+#define   NV11TCL_COLOR_LOGIC_OP_OP_EQUIV                                              0x00001509
+#define   NV11TCL_COLOR_LOGIC_OP_OP_INVERT                                             0x0000150a
+#define   NV11TCL_COLOR_LOGIC_OP_OP_OR_REVERSE                                         0x0000150b
+#define   NV11TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED                                      0x0000150c
+#define   NV11TCL_COLOR_LOGIC_OP_OP_OR_INVERTED                                                0x0000150d
+#define   NV11TCL_COLOR_LOGIC_OP_OP_NAND                                               0x0000150e
+#define   NV11TCL_COLOR_LOGIC_OP_OP_SET                                                        0x0000150f
+
+
+#define NV17TCL                                                                                0x00000099
+
+#define  NV17TCL_DMA_IN_MEMORY4                                                                0x000001ac
+#define  NV17TCL_DMA_IN_MEMORY5                                                                0x000001b0
+#define  NV17TCL_COLOR_MASK_ENABLE                                                     0x000002bc
+#define  NV17TCL_LMA_DEPTH_BUFFER_PITCH                                                        0x00000d5c
+#define  NV17TCL_LMA_DEPTH_BUFFER_OFFSET                                               0x00000d60
+#define  NV17TCL_LMA_DEPTH_FILL_VALUE                                                  0x00000d68
+#define  NV17TCL_LMA_DEPTH_BUFFER_CLEAR                                                        0x00000d6c
+#define  NV17TCL_LMA_DEPTH_WINDOW_X                                                    0x00001638
+#define  NV17TCL_LMA_DEPTH_WINDOW_Y                                                    0x0000163c
+#define  NV17TCL_LMA_DEPTH_WINDOW_Z                                                    0x00001640
+#define  NV17TCL_LMA_DEPTH_WINDOW_W                                                    0x00001644
+#define  NV17TCL_LMA_DEPTH_ENABLE                                                      0x00001658
 
 
 #define NV03_CONTEXT_SURFACES_2D                                                       0x00000058
@@ -2958,40 +3267,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV03_CONTEXT_SURFACES_3D_OFFSET_ZETA                                          0x00000308
 
 
-#define NV04_RENDER_SOLID_LINE                                                         0x0000005c
-
-#define  NV04_RENDER_SOLID_LINE_SURFACE                                                        0x00000198
-
-
-#define NV04_RENDER_SOLID_TRIANGLE                                                     0x0000005d
-
-
-
-#define NV04_RENDER_SOLID_RECTANGLE                                                    0x0000005e
-
-#define  NV04_RENDER_SOLID_RECTANGLE_SURFACE                                           0x00000198
-
-
-#define NV04_IMAGE_BLIT                                                                        0x0000005f
-
-#define  NV04_IMAGE_BLIT_NOP                                                           0x00000100
-#define  NV04_IMAGE_BLIT_NOTIFY                                                                0x00000104
-#define  NV04_IMAGE_BLIT_DMA_NOTIFY                                                    0x00000180
-#define  NV04_IMAGE_BLIT_COLOR_KEY                                                     0x00000184
-#define  NV04_IMAGE_BLIT_CLIP_RECTANGLE                                                        0x00000188
-#define  NV04_IMAGE_BLIT_PATTERN                                                       0x0000018c
-#define  NV04_IMAGE_BLIT_ROP                                                           0x00000190
-#define  NV04_IMAGE_BLIT_BETA4                                                         0x00000198
-#define  NV04_IMAGE_BLIT_SURFACE                                                       0x0000019c
-#define  NV04_IMAGE_BLIT_OPERATION                                                     0x000002fc
-#define   NV04_IMAGE_BLIT_OPERATION_SRCCOPY_AND                                                0x00000000
-#define   NV04_IMAGE_BLIT_OPERATION_ROP_AND                                            0x00000001
-#define   NV04_IMAGE_BLIT_OPERATION_BLEND_AND                                          0x00000002
-#define   NV04_IMAGE_BLIT_OPERATION_SRCCOPY                                            0x00000003
-#define   NV04_IMAGE_BLIT_OPERATION_SRCCOPY_PREMULT                                    0x00000004
-#define   NV04_IMAGE_BLIT_OPERATION_BLEND_PREMULT                                      0x00000005
-
-
 #define NV04_INDEXED_IMAGE_FROM_CPU                                                    0x00000060
 
 #define  NV04_INDEXED_IMAGE_FROM_CPU_NOP                                               0x00000100
@@ -2999,76 +3274,27 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV04_INDEXED_IMAGE_FROM_CPU_PATCH                                             0x0000010c
 #define  NV04_INDEXED_IMAGE_FROM_CPU_DMA_NOTIFY                                                0x00000180
 #define  NV04_INDEXED_IMAGE_FROM_CPU_DMA_LUT                                           0x00000184
+#define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR_KEY                                         0x00000188
+#define  NV04_INDEXED_IMAGE_FROM_CPU_CLIP_RECTANGLE                                    0x0000018c
+#define  NV04_INDEXED_IMAGE_FROM_CPU_PATTERN                                           0x00000190
+#define  NV04_INDEXED_IMAGE_FROM_CPU_ROP                                               0x00000194
+#define  NV04_INDEXED_IMAGE_FROM_CPU_BETA1                                             0x00000198
+#define  NV04_INDEXED_IMAGE_FROM_CPU_BETA4                                             0x0000019c
+#define  NV04_INDEXED_IMAGE_FROM_CPU_SURFACE                                           0x000001a0
+#define  NV04_INDEXED_IMAGE_FROM_CPU_OPERATION                                         0x000003e4
 #define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR_FORMAT                                      0x000003e8
 #define  NV04_INDEXED_IMAGE_FROM_CPU_INDEX_FORMAT                                      0x000003ec
 #define  NV04_INDEXED_IMAGE_FROM_CPU_LUT_OFFSET                                                0x000003f0
 #define  NV04_INDEXED_IMAGE_FROM_CPU_POINT                                             0x000003f4
 #define  NV04_INDEXED_IMAGE_FROM_CPU_SIZE_OUT                                          0x000003f8
 #define  NV04_INDEXED_IMAGE_FROM_CPU_SIZE_IN                                           0x000003fc
-#define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR                                             0x00000400
-
-
-#define NV04_IMAGE_FROM_CPU                                                            0x00000061
-
-#define  NV04_IMAGE_FROM_CPU_BETA4                                                     0x00000198
-#define  NV04_IMAGE_FROM_CPU_SURFACE                                                   0x0000019c
-
-
-#define NV10_CONTEXT_SURFACES_2D                                                       0x00000062
-
-
-
-#define NV05_SCALED_IMAGE_FROM_MEMORY                                                  0x00000063
-
-#define  NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION                                        0x000002fc
-#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER                                0x00000000
-#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE                      0x00000001
-#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_SUBTR_TRUNCATE                        0x00000002
-
-
-#define NV01_IMAGE_SRCCOPY_AND                                                         0x00000064
-
-#define  NV01_IMAGE_SRCCOPY_AND_NOTIFY                                                 0x00000104
-#define  NV01_IMAGE_SRCCOPY_AND_DMA_NOTIFY                                             0x00000180
-#define  NV01_IMAGE_SRCCOPY_AND_IMAGE_OUTPUT                                           0x00000200
-#define  NV01_IMAGE_SRCCOPY_AND_IMAGE_INPUT                                            0x00000204
+#define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR(x)                                          (0x00000400+((x)*4))
+#define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR__SIZE                                       0x00000700
 
 
 #define NV05_INDEXED_IMAGE_FROM_CPU                                                    0x00000064
 
-#define  NV05_INDEXED_IMAGE_FROM_CPU_COLOR_KEY                                         0x00000188
-#define  NV05_INDEXED_IMAGE_FROM_CPU_CLIP_RECTANGLE                                    0x0000018c
-#define  NV05_INDEXED_IMAGE_FROM_CPU_PATTERN                                           0x00000190
-#define  NV05_INDEXED_IMAGE_FROM_CPU_ROP                                               0x00000194
-#define  NV05_INDEXED_IMAGE_FROM_CPU_BETA1                                             0x00000198
-#define  NV05_INDEXED_IMAGE_FROM_CPU_BETA4                                             0x0000019c
-#define  NV05_INDEXED_IMAGE_FROM_CPU_SURFACE                                           0x000001a0
 #define  NV05_INDEXED_IMAGE_FROM_CPU_COLOR_CONVERSION                                  0x000003e0
-#define  NV05_INDEXED_IMAGE_FROM_CPU_OPERATION                                         0x000003e4
-#define  NV05_INDEXED_IMAGE_FROM_CPU_INDICES                                           0x00000400
-
-
-#define NV05_IMAGE_FROM_CPU                                                            0x00000065
-
-#define  NV05_IMAGE_FROM_CPU_BETA4                                                     0x00000198
-#define  NV05_IMAGE_FROM_CPU_SURFACE                                                   0x0000019c
-
-
-#define NV05_STRETCHED_IMAGE_FROM_CPU                                                  0x00000066
-
-#define  NV05_STRETCHED_IMAGE_FROM_CPU_BETA4                                           0x00000194
-#define  NV05_STRETCHED_IMAGE_FROM_CPU_SURFACE                                         0x00000198
-#define  NV05_STRETCHED_IMAGE_FROM_CPU_COLOR_CONVERSION                                        0x000002f8
-
-
-#define NV04_IMAGE_BLEND_PREMULT                                                       0x00000067
-
-#define  NV04_IMAGE_BLEND_PREMULT_NOP                                                  0x00000100
-#define  NV04_IMAGE_BLEND_PREMULT_NOTIFY                                               0x00000104
-#define  NV04_IMAGE_BLEND_PREMULT_DMA_NOTIFY                                           0x00000180
-#define  NV04_IMAGE_BLEND_PREMULT_IMAGE_OUTPUT                                         0x00000200
-#define  NV04_IMAGE_BLEND_PREMULT_BETA_INPUT                                           0x00000204
-#define  NV04_IMAGE_BLEND_PREMULT_IMAGE_INPUT                                          0x00000208
 
 
 #define NV03_CHANNEL_PIO                                                               0x0000006a
@@ -3088,88 +3314,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV04_BETA_SOLID_BETA_FACTOR                                                   0x00000300
 
 
-#define NV04_STRETCHED_IMAGE_FROM_CPU                                                  0x00000076
-
-
-
-#define NV04_SCALED_IMAGE_FROM_MEMORY                                                  0x00000077
-
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_NOP                                             0x00000100
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_NOTIFY                                          0x00000104
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY                                      0x00000180
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE                                       0x00000184
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_PATTERN                                         0x00000188
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_ROP                                             0x0000018c
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_BETA1                                           0x00000190
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_BETA4                                           0x00000194
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_SURFACE                                         0x00000198
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION                                        0x000002fc
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER                                0x00000000
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE                      0x00000001
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_SUBTR_TRUNCATE                        0x00000002
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT                                    0x00000300
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A1R5G5B5                          0x00000001
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X1R5G5B5                          0x00000002
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A8R8G8B8                          0x00000003
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X8R8G8B8                          0x00000004
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_V8YB8U8YA8                                0x00000005
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_YB8V8YA8U8                                0x00000006
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_R5G6B5                            0x00000007
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_Y8                                        0x00000008
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_AY8                               0x00000009
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION                                       0x00000304
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_AND                          0x00000000
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_ROP_AND                              0x00000001
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_AND                            0x00000002
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY                              0x00000003
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_PREMULT                      0x00000004
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_PREMULT                                0x00000005
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT                                      0x00000308
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_SHIFT                             0
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_MASK                              0x0000ffff
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_SHIFT                             16
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_MASK                              0xffff0000
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE                                       0x0000030c
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_SHIFT                              0
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_MASK                               0x0000ffff
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_SHIFT                              16
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_MASK                               0xffff0000
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POINT                                       0x00000310
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_SHIFT                              0
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_MASK                               0x0000ffff
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_SHIFT                              16
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_MASK                               0xffff0000
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE                                                0x00000314
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_SHIFT                               0
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_MASK                                        0x0000ffff
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_SHIFT                               16
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_MASK                                        0xffff0000
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX                                           0x00000318
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY                                           0x0000031c
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_SIZE                                            0x00000400
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_W_SHIFT                                   0
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_W_MASK                                    0x0000ffff
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_H_SHIFT                                   16
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_H_MASK                                    0xffff0000
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT                                          0x00000404
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_SHIFT                             0
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_MASK                              0x0000ffff
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_SHIFT                            16
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_MASK                             0x00ff0000
-#define    NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER                          0x00010000
-#define    NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CORNER                          0x00020000
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_SHIFT                            24
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_MASK                             0xff000000
-#define    NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE                    0x00000000
-#define    NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_BILINEAR                                0x01000000
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_ADDRESS                                         0x00000408
-#define  NV04_SCALED_IMAGE_FROM_MEMORY_POINT                                           0x0000040c
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_POINT_X_SHIFT                                  0
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_POINT_X_MASK                                   0x0000ffff
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_POINT_Y_SHIFT                                  16
-#define   NV04_SCALED_IMAGE_FROM_MEMORY_POINT_Y_MASK                                   0xffff0000
-
-
 #define NV10_TEXTURE_FROM_CPU                                                          0x0000007b
 
 #define  NV10_TEXTURE_FROM_CPU_NOP                                                     0x00000100
@@ -3203,56 +3347,16 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV10_TEXTURE_FROM_CPU_COLOR__SIZE                                             0x00000700
 
 
-#define NV10_VIDEO_DISPLAY                                                             0x0000007c
-
-
-
-#define NV10_DVD_SUBPICTURE                                                            0x00000088
-
-
-
-#define NV10_SCALED_IMAGE_FROM_MEMORY                                                  0x00000089
-
-#define  NV10_SCALED_IMAGE_FROM_MEMORY_WAIT_FOR_IDLE                                   0x00000108
-
-
-#define NV10_IMAGE_FROM_CPU                                                            0x0000008a
-
-#define  NV10_IMAGE_FROM_CPU_COLOR_CONVERSION                                          0x000002f8
-
-
-#define NV10_CONTEXT_SURFACES_3D                                                       0x00000093
-
-
-
-#define NV10_DX5_TEXTURE_TRIANGLE                                                      0x00000094
-
+#define NV30_TEXTURE_FROM_CPU                                                          0x0000037b
 
 
-#define NV10_DX6_MULTI_TEXTURE_TRIANGLE                                                        0x00000095
 
+#define NV40_TEXTURE_FROM_CPU                                                          0x0000307b
 
 
-#define NV11TCL                                                                                0x00000096
 
-#define  NV11TCL_COLOR_LOGIC_OP_ENABLE                                                 0x00000d40
-#define  NV11TCL_COLOR_LOGIC_OP_OP                                                     0x00000d44
-#define   NV11TCL_COLOR_LOGIC_OP_OP_CLEAR                                              0x00001500
-#define   NV11TCL_COLOR_LOGIC_OP_OP_AND                                                        0x00001501
-#define   NV11TCL_COLOR_LOGIC_OP_OP_AND_REVERSE                                                0x00001502
-#define   NV11TCL_COLOR_LOGIC_OP_OP_COPY                                               0x00001503
-#define   NV11TCL_COLOR_LOGIC_OP_OP_AND_INVERTED                                       0x00001504
-#define   NV11TCL_COLOR_LOGIC_OP_OP_NOOP                                               0x00001505
-#define   NV11TCL_COLOR_LOGIC_OP_OP_XOR                                                        0x00001506
-#define   NV11TCL_COLOR_LOGIC_OP_OP_OR                                                 0x00001507
-#define   NV11TCL_COLOR_LOGIC_OP_OP_NOR                                                        0x00001508
-#define   NV11TCL_COLOR_LOGIC_OP_OP_EQUIV                                              0x00001509
-#define   NV11TCL_COLOR_LOGIC_OP_OP_INVERT                                             0x0000150a
-#define   NV11TCL_COLOR_LOGIC_OP_OP_OR_REVERSE                                         0x0000150b
-#define   NV11TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED                                      0x0000150c
-#define   NV11TCL_COLOR_LOGIC_OP_OP_OR_INVERTED                                                0x0000150d
-#define   NV11TCL_COLOR_LOGIC_OP_OP_NAND                                               0x0000150e
-#define   NV11TCL_COLOR_LOGIC_OP_OP_SET                                                        0x0000150f
+#define NV10_VIDEO_DISPLAY                                                             0x0000007c
+
 
 
 #define NV20TCL                                                                                0x00000097
@@ -3260,27 +3364,438 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV20TCL_NOP                                                                   0x00000100
 #define  NV20TCL_NOTIFY                                                                        0x00000104
 #define  NV20TCL_DMA_NOTIFY                                                            0x00000180
-#define  NV20TCL_DMA_IN_MEMORY0                                                                0x00000184
-#define  NV20TCL_DMA_IN_MEMORY1                                                                0x00000188
-#define  NV20TCL_DMA_IN_MEMORY2                                                                0x00000194
-#define  NV20TCL_DMA_IN_MEMORY3                                                                0x00000198
-#define  NV20TCL_DMA_IN_MEMORY6                                                                0x000001a4
-#define  NV20TCL_DMA_IN_MEMORY7                                                                0x000001a8
-#define  NV20TCL_VIEWPORT_HORIZ                                                                0x00000200
-#define  NV20TCL_VIEWPORT_VERT                                                         0x00000204
-#define  NV20TCL_BUFFER_FORMAT                                                         0x00000208
-#define  NV20TCL_BUFFER_PITCH                                                          0x0000020c
+#define  NV20TCL_DMA_TEXTURE0                                                          0x00000184
+#define  NV20TCL_DMA_TEXTURE1                                                          0x00000188
+#define  NV20TCL_DMA_COLOR                                                             0x00000194
+#define  NV20TCL_DMA_ZETA                                                              0x00000198
+#define  NV20TCL_DMA_VTXBUF0                                                           0x0000019c
+#define  NV20TCL_DMA_VTXBUF1                                                           0x000001a0
+#define  NV20TCL_DMA_FENCE                                                             0x000001a4
+#define  NV20TCL_DMA_QUERY                                                             0x000001a8
+#define  NV20TCL_RT_HORIZ                                                              0x00000200
+#define   NV20TCL_RT_HORIZ_X_SHIFT                                                     0
+#define   NV20TCL_RT_HORIZ_X_MASK                                                      0x0000ffff
+#define   NV20TCL_RT_HORIZ_W_SHIFT                                                     16
+#define   NV20TCL_RT_HORIZ_W_MASK                                                      0xffff0000
+#define  NV20TCL_RT_VERT                                                               0x00000204
+#define   NV20TCL_RT_VERT_Y_SHIFT                                                      0
+#define   NV20TCL_RT_VERT_Y_MASK                                                       0x0000ffff
+#define   NV20TCL_RT_VERT_H_SHIFT                                                      16
+#define   NV20TCL_RT_VERT_H_MASK                                                       0xffff0000
+#define  NV20TCL_RT_FORMAT                                                             0x00000208
+#define   NV20TCL_RT_FORMAT_TYPE_SHIFT                                                 8
+#define   NV20TCL_RT_FORMAT_TYPE_MASK                                                  0x00000f00
+#define    NV20TCL_RT_FORMAT_TYPE_LINEAR                                               0x00000100
+#define    NV20TCL_RT_FORMAT_TYPE_SWIZZLED                                             0x00000200
+#define   NV20TCL_RT_FORMAT_COLOR_SHIFT                                                        0
+#define   NV20TCL_RT_FORMAT_COLOR_MASK                                                 0x0000001f
+#define    NV20TCL_RT_FORMAT_COLOR_R5G6B5                                              0x00000003
+#define    NV20TCL_RT_FORMAT_COLOR_X8R8G8B8                                            0x00000005
+#define    NV20TCL_RT_FORMAT_COLOR_A8R8G8B8                                            0x00000008
+#define    NV20TCL_RT_FORMAT_COLOR_B8                                                  0x00000009
+#define    NV20TCL_RT_FORMAT_COLOR_UNKNOWN                                             0x0000000d
+#define    NV20TCL_RT_FORMAT_COLOR_X8B8G8R8                                            0x0000000f
+#define    NV20TCL_RT_FORMAT_COLOR_A8B8G8R8                                            0x00000010
+#define  NV20TCL_RT_PITCH                                                              0x0000020c
+#define   NV20TCL_RT_PITCH_COLOR_PITCH_SHIFT                                           0
+#define   NV20TCL_RT_PITCH_COLOR_PITCH_MASK                                            0x0000ffff
+#define   NV20TCL_RT_PITCH_ZETA_PITCH_SHIFT                                            16
+#define   NV20TCL_RT_PITCH_ZETA_PITCH_MASK                                             0xffff0000
 #define  NV20TCL_COLOR_OFFSET                                                          0x00000210
 #define  NV20TCL_ZETA_OFFSET                                                           0x00000214
 #define  NV20TCL_RC_IN_ALPHA(x)                                                                (0x00000260+((x)*4))
 #define  NV20TCL_RC_IN_ALPHA__SIZE                                                     0x00000008
+#define   NV20TCL_RC_IN_ALPHA_D_INPUT_SHIFT                                            0
+#define   NV20TCL_RC_IN_ALPHA_D_INPUT_MASK                                             0x0000000f
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_ZERO                                            0x00000000
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0                                 0x00000001
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1                                 0x00000002
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_FOG                                             0x00000003
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR                                   0x00000004
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR                                 0x00000005
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0                                                0x00000008
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1                                                0x00000009
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE0                                          0x0000000c
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE1                                          0x0000000d
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x0000000e
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F                                       0x0000000f
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2                                                0x0000000a
+#define    NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3                                                0x0000000b
+#define   NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE                                                (1 <<  4)
+#define    NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE                                  0x00000000
+#define    NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA                                 0x00000010
+#define   NV20TCL_RC_IN_ALPHA_D_MAPPING_SHIFT                                          5
+#define   NV20TCL_RC_IN_ALPHA_D_MAPPING_MASK                                           0x000000e0
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT                               0x00000020
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL                                 0x00000040
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE                                 0x00000060
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL                              0x00000080
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE                              0x000000a0
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY                               0x000000c0
+#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE                                 0x000000e0
+#define   NV20TCL_RC_IN_ALPHA_C_INPUT_SHIFT                                            8
+#define   NV20TCL_RC_IN_ALPHA_C_INPUT_MASK                                             0x00000f00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_ZERO                                            0x00000000
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0                                 0x00000100
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1                                 0x00000200
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_FOG                                             0x00000300
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR                                   0x00000400
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR                                 0x00000500
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0                                                0x00000800
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1                                                0x00000900
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE0                                          0x00000c00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE1                                          0x00000d00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x00000e00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F                                       0x00000f00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2                                                0x00000a00
+#define    NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3                                                0x00000b00
+#define   NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE                                                (1 << 12)
+#define    NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE                                  0x00000000
+#define    NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA                                 0x00001000
+#define   NV20TCL_RC_IN_ALPHA_C_MAPPING_SHIFT                                          13
+#define   NV20TCL_RC_IN_ALPHA_C_MAPPING_MASK                                           0x0000e000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT                               0x00002000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL                                 0x00004000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE                                 0x00006000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL                              0x00008000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE                              0x0000a000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY                               0x0000c000
+#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE                                 0x0000e000
+#define   NV20TCL_RC_IN_ALPHA_B_INPUT_SHIFT                                            16
+#define   NV20TCL_RC_IN_ALPHA_B_INPUT_MASK                                             0x000f0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_ZERO                                            0x00000000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0                                 0x00010000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1                                 0x00020000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_FOG                                             0x00030000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR                                   0x00040000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR                                 0x00050000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0                                                0x00080000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1                                                0x00090000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE0                                          0x000c0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE1                                          0x000d0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x000e0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F                                       0x000f0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2                                                0x000a0000
+#define    NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3                                                0x000b0000
+#define   NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE                                                (1 << 20)
+#define    NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE                                  0x00000000
+#define    NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA                                 0x00100000
+#define   NV20TCL_RC_IN_ALPHA_B_MAPPING_SHIFT                                          21
+#define   NV20TCL_RC_IN_ALPHA_B_MAPPING_MASK                                           0x00e00000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT                               0x00200000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL                                 0x00400000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE                                 0x00600000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL                              0x00800000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE                              0x00a00000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY                               0x00c00000
+#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE                                 0x00e00000
+#define   NV20TCL_RC_IN_ALPHA_A_INPUT_SHIFT                                            24
+#define   NV20TCL_RC_IN_ALPHA_A_INPUT_MASK                                             0x0f000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_ZERO                                            0x00000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0                                 0x01000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1                                 0x02000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_FOG                                             0x03000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR                                   0x04000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR                                 0x05000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0                                                0x08000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1                                                0x09000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE0                                          0x0c000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE1                                          0x0d000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x0e000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F                                       0x0f000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2                                                0x0a000000
+#define    NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3                                                0x0b000000
+#define   NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE                                                (1 << 28)
+#define    NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE                                  0x00000000
+#define    NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA                                 0x10000000
+#define   NV20TCL_RC_IN_ALPHA_A_MAPPING_SHIFT                                          29
+#define   NV20TCL_RC_IN_ALPHA_A_MAPPING_MASK                                           0xe0000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT                               0x20000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL                                 0x40000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE                                 0x60000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL                              0x80000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE                              0xa0000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY                               0xc0000000
+#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE                                 0xe0000000
 #define  NV20TCL_RC_FINAL0                                                             0x00000288
+#define   NV20TCL_RC_FINAL0_D_INPUT_SHIFT                                              0
+#define   NV20TCL_RC_FINAL0_D_INPUT_MASK                                               0x0000000f
+#define    NV20TCL_RC_FINAL0_D_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0                                   0x00000001
+#define    NV20TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1                                   0x00000002
+#define    NV20TCL_RC_FINAL0_D_INPUT_FOG                                               0x00000003
+#define    NV20TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR                                     0x00000004
+#define    NV20TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR                                   0x00000005
+#define    NV20TCL_RC_FINAL0_D_INPUT_TEXTURE0                                          0x00000008
+#define    NV20TCL_RC_FINAL0_D_INPUT_TEXTURE1                                          0x00000009
+#define    NV20TCL_RC_FINAL0_D_INPUT_SPARE0                                            0x0000000c
+#define    NV20TCL_RC_FINAL0_D_INPUT_SPARE1                                            0x0000000d
+#define    NV20TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0000000e
+#define    NV20TCL_RC_FINAL0_D_INPUT_E_TIMES_F                                         0x0000000f
+#define    NV20TCL_RC_FINAL0_D_INPUT_TEXTURE2                                          0x0000000a
+#define    NV20TCL_RC_FINAL0_D_INPUT_TEXTURE3                                          0x0000000b
+#define   NV20TCL_RC_FINAL0_D_COMPONENT_USAGE                                          (1 <<  4)
+#define    NV20TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA                                   0x00000010
+#define   NV20TCL_RC_FINAL0_D_MAPPING_SHIFT                                            5
+#define   NV20TCL_RC_FINAL0_D_MAPPING_MASK                                             0x000000e0
+#define    NV20TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT                                 0x00000020
+#define    NV20TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL                                   0x00000040
+#define    NV20TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE                                   0x00000060
+#define    NV20TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL                                        0x00000080
+#define    NV20TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE                                        0x000000a0
+#define    NV20TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY                                 0x000000c0
+#define    NV20TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE                                   0x000000e0
+#define   NV20TCL_RC_FINAL0_C_INPUT_SHIFT                                              8
+#define   NV20TCL_RC_FINAL0_C_INPUT_MASK                                               0x00000f00
+#define    NV20TCL_RC_FINAL0_C_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0                                   0x00000100
+#define    NV20TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1                                   0x00000200
+#define    NV20TCL_RC_FINAL0_C_INPUT_FOG                                               0x00000300
+#define    NV20TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR                                     0x00000400
+#define    NV20TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR                                   0x00000500
+#define    NV20TCL_RC_FINAL0_C_INPUT_TEXTURE0                                          0x00000800
+#define    NV20TCL_RC_FINAL0_C_INPUT_TEXTURE1                                          0x00000900
+#define    NV20TCL_RC_FINAL0_C_INPUT_SPARE0                                            0x00000c00
+#define    NV20TCL_RC_FINAL0_C_INPUT_SPARE1                                            0x00000d00
+#define    NV20TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x00000e00
+#define    NV20TCL_RC_FINAL0_C_INPUT_E_TIMES_F                                         0x00000f00
+#define    NV20TCL_RC_FINAL0_C_INPUT_TEXTURE2                                          0x00000a00
+#define    NV20TCL_RC_FINAL0_C_INPUT_TEXTURE3                                          0x00000b00
+#define   NV20TCL_RC_FINAL0_C_COMPONENT_USAGE                                          (1 << 12)
+#define    NV20TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA                                   0x00001000
+#define   NV20TCL_RC_FINAL0_C_MAPPING_SHIFT                                            13
+#define   NV20TCL_RC_FINAL0_C_MAPPING_MASK                                             0x0000e000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT                                 0x00002000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL                                   0x00004000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE                                   0x00006000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL                                        0x00008000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE                                        0x0000a000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY                                 0x0000c000
+#define    NV20TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE                                   0x0000e000
+#define   NV20TCL_RC_FINAL0_B_INPUT_SHIFT                                              16
+#define   NV20TCL_RC_FINAL0_B_INPUT_MASK                                               0x000f0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0                                   0x00010000
+#define    NV20TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1                                   0x00020000
+#define    NV20TCL_RC_FINAL0_B_INPUT_FOG                                               0x00030000
+#define    NV20TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR                                     0x00040000
+#define    NV20TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR                                   0x00050000
+#define    NV20TCL_RC_FINAL0_B_INPUT_TEXTURE0                                          0x00080000
+#define    NV20TCL_RC_FINAL0_B_INPUT_TEXTURE1                                          0x00090000
+#define    NV20TCL_RC_FINAL0_B_INPUT_SPARE0                                            0x000c0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_SPARE1                                            0x000d0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x000e0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_E_TIMES_F                                         0x000f0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_TEXTURE2                                          0x000a0000
+#define    NV20TCL_RC_FINAL0_B_INPUT_TEXTURE3                                          0x000b0000
+#define   NV20TCL_RC_FINAL0_B_COMPONENT_USAGE                                          (1 << 20)
+#define    NV20TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA                                   0x00100000
+#define   NV20TCL_RC_FINAL0_B_MAPPING_SHIFT                                            21
+#define   NV20TCL_RC_FINAL0_B_MAPPING_MASK                                             0x00e00000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT                                 0x00200000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL                                   0x00400000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE                                   0x00600000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL                                        0x00800000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE                                        0x00a00000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY                                 0x00c00000
+#define    NV20TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE                                   0x00e00000
+#define   NV20TCL_RC_FINAL0_A_INPUT_SHIFT                                              24
+#define   NV20TCL_RC_FINAL0_A_INPUT_MASK                                               0x0f000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0                                   0x01000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1                                   0x02000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_FOG                                               0x03000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR                                     0x04000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR                                   0x05000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_TEXTURE0                                          0x08000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_TEXTURE1                                          0x09000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_SPARE0                                            0x0c000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_SPARE1                                            0x0d000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0e000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_E_TIMES_F                                         0x0f000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_TEXTURE2                                          0x0a000000
+#define    NV20TCL_RC_FINAL0_A_INPUT_TEXTURE3                                          0x0b000000
+#define   NV20TCL_RC_FINAL0_A_COMPONENT_USAGE                                          (1 << 28)
+#define    NV20TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA                                   0x10000000
+#define   NV20TCL_RC_FINAL0_A_MAPPING_SHIFT                                            29
+#define   NV20TCL_RC_FINAL0_A_MAPPING_MASK                                             0xe0000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT                                 0x20000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL                                   0x40000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE                                   0x60000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL                                        0x80000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE                                        0xa0000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY                                 0xc0000000
+#define    NV20TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE                                   0xe0000000
 #define  NV20TCL_RC_FINAL1                                                             0x0000028c
-#define  NV20TCL_LIGHT_CONTROL                                                         0x00000294
+#define   NV20TCL_RC_FINAL1_COLOR_SUM_CLAMP                                            (1 <<  7)
+#define   NV20TCL_RC_FINAL1_G_INPUT_SHIFT                                              8
+#define   NV20TCL_RC_FINAL1_G_INPUT_MASK                                               0x00000f00
+#define    NV20TCL_RC_FINAL1_G_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0                                   0x00000100
+#define    NV20TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1                                   0x00000200
+#define    NV20TCL_RC_FINAL1_G_INPUT_FOG                                               0x00000300
+#define    NV20TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR                                     0x00000400
+#define    NV20TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR                                   0x00000500
+#define    NV20TCL_RC_FINAL1_G_INPUT_TEXTURE0                                          0x00000800
+#define    NV20TCL_RC_FINAL1_G_INPUT_TEXTURE1                                          0x00000900
+#define    NV20TCL_RC_FINAL1_G_INPUT_SPARE0                                            0x00000c00
+#define    NV20TCL_RC_FINAL1_G_INPUT_SPARE1                                            0x00000d00
+#define    NV20TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x00000e00
+#define    NV20TCL_RC_FINAL1_G_INPUT_E_TIMES_F                                         0x00000f00
+#define    NV20TCL_RC_FINAL1_G_INPUT_TEXTURE2                                          0x00000a00
+#define    NV20TCL_RC_FINAL1_G_INPUT_TEXTURE3                                          0x00000b00
+#define   NV20TCL_RC_FINAL1_G_COMPONENT_USAGE                                          (1 << 12)
+#define    NV20TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA                                   0x00001000
+#define   NV20TCL_RC_FINAL1_G_MAPPING_SHIFT                                            13
+#define   NV20TCL_RC_FINAL1_G_MAPPING_MASK                                             0x0000e000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT                                 0x00002000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL                                   0x00004000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE                                   0x00006000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL                                        0x00008000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE                                        0x0000a000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY                                 0x0000c000
+#define    NV20TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE                                   0x0000e000
+#define   NV20TCL_RC_FINAL1_F_INPUT_SHIFT                                              16
+#define   NV20TCL_RC_FINAL1_F_INPUT_MASK                                               0x000f0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0                                   0x00010000
+#define    NV20TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1                                   0x00020000
+#define    NV20TCL_RC_FINAL1_F_INPUT_FOG                                               0x00030000
+#define    NV20TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR                                     0x00040000
+#define    NV20TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR                                   0x00050000
+#define    NV20TCL_RC_FINAL1_F_INPUT_TEXTURE0                                          0x00080000
+#define    NV20TCL_RC_FINAL1_F_INPUT_TEXTURE1                                          0x00090000
+#define    NV20TCL_RC_FINAL1_F_INPUT_SPARE0                                            0x000c0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_SPARE1                                            0x000d0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x000e0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_E_TIMES_F                                         0x000f0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_TEXTURE2                                          0x000a0000
+#define    NV20TCL_RC_FINAL1_F_INPUT_TEXTURE3                                          0x000b0000
+#define   NV20TCL_RC_FINAL1_F_COMPONENT_USAGE                                          (1 << 20)
+#define    NV20TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA                                   0x00100000
+#define   NV20TCL_RC_FINAL1_F_MAPPING_SHIFT                                            21
+#define   NV20TCL_RC_FINAL1_F_MAPPING_MASK                                             0x00e00000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT                                 0x00200000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL                                   0x00400000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE                                   0x00600000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL                                        0x00800000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE                                        0x00a00000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY                                 0x00c00000
+#define    NV20TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE                                   0x00e00000
+#define   NV20TCL_RC_FINAL1_E_INPUT_SHIFT                                              24
+#define   NV20TCL_RC_FINAL1_E_INPUT_MASK                                               0x0f000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0                                   0x01000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1                                   0x02000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_FOG                                               0x03000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR                                     0x04000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR                                   0x05000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_TEXTURE0                                          0x08000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_TEXTURE1                                          0x09000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_SPARE0                                            0x0c000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_SPARE1                                            0x0d000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0e000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_E_TIMES_F                                         0x0f000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_TEXTURE2                                          0x0a000000
+#define    NV20TCL_RC_FINAL1_E_INPUT_TEXTURE3                                          0x0b000000
+#define   NV20TCL_RC_FINAL1_E_COMPONENT_USAGE                                          (1 << 28)
+#define    NV20TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA                                   0x10000000
+#define   NV20TCL_RC_FINAL1_E_MAPPING_SHIFT                                            29
+#define   NV20TCL_RC_FINAL1_E_MAPPING_MASK                                             0xe0000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT                                 0x20000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL                                   0x40000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE                                   0x60000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL                                        0x80000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE                                        0xa0000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY                                 0xc0000000
+#define    NV20TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE                                   0xe0000000
+#define  NV20TCL_LIGHT_MODEL                                                           0x00000294
+#define   NV20TCL_LIGHT_MODEL_VIEWER_SHIFT                                             16
+#define   NV20TCL_LIGHT_MODEL_VIEWER_MASK                                              0x00030000
+#define    NV20TCL_LIGHT_MODEL_VIEWER_NONLOCAL                                         0x00020000
+#define    NV20TCL_LIGHT_MODEL_VIEWER_LOCAL                                            0x00030000
+#define   NV20TCL_LIGHT_MODEL_SEPARATE_SPECULAR                                                (1 <<  0)
+#define  NV20TCL_COLOR_MATERIAL                                                                0x00000298
+#define   NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_SHIFT                                  0
+#define   NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_MASK                                   0x00000003
+#define    NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_OFF                                   0x00000000
+#define    NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_COL1                                  0x00000001
+#define    NV20TCL_COLOR_MATERIAL_FRONT_EMISSION_COL2                                  0x00000002
+#define   NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_SHIFT                                   2
+#define   NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_MASK                                    0x0000000c
+#define    NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_OFF                                    0x00000000
+#define    NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_COL1                                   0x00000004
+#define    NV20TCL_COLOR_MATERIAL_FRONT_AMBIENT_COL2                                   0x00000008
+#define   NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_SHIFT                                   4
+#define   NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_MASK                                    0x00000030
+#define    NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_OFF                                    0x00000000
+#define    NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_COL1                                   0x00000010
+#define    NV20TCL_COLOR_MATERIAL_FRONT_DIFFUSE_COL2                                   0x00000020
+#define   NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_SHIFT                                  6
+#define   NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_MASK                                   0x000000c0
+#define    NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_OFF                                   0x00000000
+#define    NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_COL1                                  0x00000040
+#define    NV20TCL_COLOR_MATERIAL_FRONT_SPECULAR_COL2                                  0x00000080
+#define   NV20TCL_COLOR_MATERIAL_BACK_EMISSION_SHIFT                                   8
+#define   NV20TCL_COLOR_MATERIAL_BACK_EMISSION_MASK                                    0x00000300
+#define    NV20TCL_COLOR_MATERIAL_BACK_EMISSION_OFF                                    0x00000000
+#define    NV20TCL_COLOR_MATERIAL_BACK_EMISSION_COL1                                   0x00000100
+#define    NV20TCL_COLOR_MATERIAL_BACK_EMISSION_COL2                                   0x00000200
+#define   NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_SHIFT                                    10
+#define   NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_MASK                                     0x00000c00
+#define    NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_OFF                                     0x00000000
+#define    NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_COL1                                    0x00000400
+#define    NV20TCL_COLOR_MATERIAL_BACK_AMBIENT_COL2                                    0x00000800
+#define   NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_SHIFT                                    12
+#define   NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_MASK                                     0x00003000
+#define    NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_OFF                                     0x00000000
+#define    NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_COL1                                    0x00001000
+#define    NV20TCL_COLOR_MATERIAL_BACK_DIFFUSE_COL2                                    0x00002000
+#define   NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_SHIFT                                   14
+#define   NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_MASK                                    0x0000c000
+#define    NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_OFF                                    0x00000000
+#define    NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_COL1                                   0x00004000
+#define    NV20TCL_COLOR_MATERIAL_BACK_SPECULAR_COL2                                   0x00008000
 #define  NV20TCL_FOG_MODE                                                              0x0000029c
-#define  NV20TCL_FOG_COORD_DIST                                                                0x000002a0
+#define   NV20TCL_FOG_MODE_LINEAR_UNSIGNED                                             0x00000804
+#define   NV20TCL_FOG_MODE_LINEAR_SIGNED                                               0x00002601
+#define   NV20TCL_FOG_MODE_EXP_UNSIGNED                                                        0x00000802
+#define   NV20TCL_FOG_MODE_EXP_SIGNED                                                  0x00000800
+#define   NV20TCL_FOG_MODE_EXP2_UNSIGNED                                               0x00000803
+#define   NV20TCL_FOG_MODE_EXP2_SIGNED                                                 0x00000801
+#define  NV20TCL_FOG_COORD                                                             0x000002a0
+#define   NV20TCL_FOG_COORD_DIST_RADIAL                                                        0x00000001
+#define   NV20TCL_FOG_COORD_DIST_ORTHOGONAL                                            0x00000002
+#define   NV20TCL_FOG_COORD_DIST_ORTHOGONAL_ABS                                                0x00000003
+#define   NV20TCL_FOG_COORD_FOG                                                                0x00000006
 #define  NV20TCL_FOG_ENABLE                                                            0x000002a4
 #define  NV20TCL_FOG_COLOR                                                             0x000002a8
+#define   NV20TCL_FOG_COLOR_R_SHIFT                                                    0
+#define   NV20TCL_FOG_COLOR_R_MASK                                                     0x000000ff
+#define   NV20TCL_FOG_COLOR_G_SHIFT                                                    8
+#define   NV20TCL_FOG_COLOR_G_MASK                                                     0x0000ff00
+#define   NV20TCL_FOG_COLOR_B_SHIFT                                                    16
+#define   NV20TCL_FOG_COLOR_B_MASK                                                     0x00ff0000
+#define   NV20TCL_FOG_COLOR_A_SHIFT                                                    24
+#define   NV20TCL_FOG_COLOR_A_MASK                                                     0xff000000
 #define  NV20TCL_VIEWPORT_CLIP_MODE                                                    0x000002b4
 #define  NV20TCL_VIEWPORT_CLIP_HORIZ(x)                                                        (0x000002c0+((x)*4))
 #define  NV20TCL_VIEWPORT_CLIP_HORIZ__SIZE                                             0x00000008
@@ -3293,6 +3808,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV20TCL_DITHER_ENABLE                                                         0x00000310
 #define  NV20TCL_LIGHTING_ENABLE                                                       0x00000314
 #define  NV20TCL_POINT_PARAMETERS_ENABLE                                               0x00000318
+#define  NV20TCL_POINT_SMOOTH_ENABLE                                                   0x0000031c
 #define  NV20TCL_LINE_SMOOTH_ENABLE                                                    0x00000320
 #define  NV20TCL_POLYGON_SMOOTH_ENABLE                                                 0x00000324
 #define  NV20TCL_STENCIL_ENABLE                                                                0x0000032c
@@ -3305,7 +3821,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV20TCL_ALPHA_FUNC_FUNC_EQUAL                                                        0x00000202
 #define   NV20TCL_ALPHA_FUNC_FUNC_LEQUAL                                               0x00000203
 #define   NV20TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
-#define   NV20TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
 #define   NV20TCL_ALPHA_FUNC_FUNC_NOTEQUAL                                             0x00000205
 #define   NV20TCL_ALPHA_FUNC_FUNC_GEQUAL                                               0x00000206
 #define   NV20TCL_ALPHA_FUNC_FUNC_ALWAYS                                               0x00000207
@@ -3343,6 +3858,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV20TCL_BLEND_FUNC_DST_CONSTANT_ALPHA                                                0x00008003
 #define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_ALPHA                              0x00008004
 #define  NV20TCL_BLEND_COLOR                                                           0x0000034c
+#define   NV20TCL_BLEND_COLOR_B_SHIFT                                                  0
+#define   NV20TCL_BLEND_COLOR_B_MASK                                                   0x000000ff
+#define   NV20TCL_BLEND_COLOR_G_SHIFT                                                  8
+#define   NV20TCL_BLEND_COLOR_G_MASK                                                   0x0000ff00
+#define   NV20TCL_BLEND_COLOR_R_SHIFT                                                  16
+#define   NV20TCL_BLEND_COLOR_R_MASK                                                   0x00ff0000
+#define   NV20TCL_BLEND_COLOR_A_SHIFT                                                  24
+#define   NV20TCL_BLEND_COLOR_A_MASK                                                   0xff000000
 #define  NV20TCL_BLEND_EQUATION                                                                0x00000350
 #define   NV20TCL_BLEND_EQUATION_FUNC_ADD                                              0x00008006
 #define   NV20TCL_BLEND_EQUATION_MIN                                                   0x00008007
@@ -3355,11 +3878,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV20TCL_DEPTH_FUNC_EQUAL                                                     0x00000202
 #define   NV20TCL_DEPTH_FUNC_LEQUAL                                                    0x00000203
 #define   NV20TCL_DEPTH_FUNC_GREATER                                                   0x00000204
-#define   NV20TCL_DEPTH_FUNC_GREATER                                                   0x00000204
 #define   NV20TCL_DEPTH_FUNC_NOTEQUAL                                                  0x00000205
 #define   NV20TCL_DEPTH_FUNC_GEQUAL                                                    0x00000206
 #define   NV20TCL_DEPTH_FUNC_ALWAYS                                                    0x00000207
 #define  NV20TCL_COLOR_MASK                                                            0x00000358
+#define   NV20TCL_COLOR_MASK_B                                                         (1 <<  0)
+#define   NV20TCL_COLOR_MASK_G                                                         (1 <<  8)
+#define   NV20TCL_COLOR_MASK_R                                                         (1 << 16)
+#define   NV20TCL_COLOR_MASK_A                                                         (1 << 24)
 #define  NV20TCL_DEPTH_WRITE_ENABLE                                                    0x0000035c
 #define  NV20TCL_STENCIL_MASK                                                          0x00000360
 #define  NV20TCL_STENCIL_FUNC_FUNC                                                     0x00000364
@@ -3368,7 +3894,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV20TCL_STENCIL_FUNC_FUNC_EQUAL                                              0x00000202
 #define   NV20TCL_STENCIL_FUNC_FUNC_LEQUAL                                             0x00000203
 #define   NV20TCL_STENCIL_FUNC_FUNC_GREATER                                            0x00000204
-#define   NV20TCL_STENCIL_FUNC_FUNC_GREATER                                            0x00000204
 #define   NV20TCL_STENCIL_FUNC_FUNC_NOTEQUAL                                           0x00000205
 #define   NV20TCL_STENCIL_FUNC_FUNC_GEQUAL                                             0x00000206
 #define   NV20TCL_STENCIL_FUNC_FUNC_ALWAYS                                             0x00000207
@@ -3425,15 +3950,111 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV20TCL_FRONT_FACE_CW                                                                0x00000900
 #define   NV20TCL_FRONT_FACE_CCW                                                       0x00000901
 #define  NV20TCL_NORMALIZE_ENABLE                                                      0x000003a4
+#define  NV20TCL_MATERIAL_FACTOR_FRONT_R                                               0x000003a8
+#define  NV20TCL_MATERIAL_FACTOR_FRONT_G                                               0x000003ac
+#define  NV20TCL_MATERIAL_FACTOR_FRONT_B                                               0x000003b0
+#define  NV20TCL_MATERIAL_FACTOR_FRONT_A                                               0x000003b4
 #define  NV20TCL_SEPARATE_SPECULAR_ENABLE                                              0x000003b8
 #define  NV20TCL_ENABLED_LIGHTS                                                                0x000003bc
-#define  NV20TCL_CLIP_PLANE_ENABLE(x)                                                  (0x000003c0+((x)*4))
-#define  NV20TCL_CLIP_PLANE_ENABLE__SIZE                                               0x00000010
+#define   NV20TCL_ENABLED_LIGHTS_0_SHIFT                                               0
+#define   NV20TCL_ENABLED_LIGHTS_0_MASK                                                        0x00000003
+#define    NV20TCL_ENABLED_LIGHTS_0_DISABLED                                           0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_0_NONPOSITIONAL                                      0x00000001
+#define    NV20TCL_ENABLED_LIGHTS_0_POSITIONAL                                         0x00000002
+#define    NV20TCL_ENABLED_LIGHTS_0_DIRECTIONAL                                                0x00000003
+#define   NV20TCL_ENABLED_LIGHTS_1_SHIFT                                               2
+#define   NV20TCL_ENABLED_LIGHTS_1_MASK                                                        0x0000000c
+#define    NV20TCL_ENABLED_LIGHTS_1_DISABLED                                           0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_1_NONPOSITIONAL                                      0x00000004
+#define    NV20TCL_ENABLED_LIGHTS_1_POSITIONAL                                         0x00000008
+#define    NV20TCL_ENABLED_LIGHTS_1_DIRECTIONAL                                                0x0000000c
+#define   NV20TCL_ENABLED_LIGHTS_2_SHIFT                                               4
+#define   NV20TCL_ENABLED_LIGHTS_2_MASK                                                        0x00000030
+#define    NV20TCL_ENABLED_LIGHTS_2_DISABLED                                           0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_2_NONPOSITIONAL                                      0x00000010
+#define    NV20TCL_ENABLED_LIGHTS_2_POSITIONAL                                         0x00000020
+#define    NV20TCL_ENABLED_LIGHTS_2_DIRECTIONAL                                                0x00000030
+#define   NV20TCL_ENABLED_LIGHTS_3_SHIFT                                               6
+#define   NV20TCL_ENABLED_LIGHTS_3_MASK                                                        0x000000c0
+#define    NV20TCL_ENABLED_LIGHTS_3_DISABLED                                           0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_3_NONPOSITIONAL                                      0x00000040
+#define    NV20TCL_ENABLED_LIGHTS_3_POSITIONAL                                         0x00000080
+#define    NV20TCL_ENABLED_LIGHTS_3_DIRECTIONAL                                                0x000000c0
+#define   NV20TCL_ENABLED_LIGHTS_4_SHIFT                                               8
+#define   NV20TCL_ENABLED_LIGHTS_4_MASK                                                        0x00000300
+#define    NV20TCL_ENABLED_LIGHTS_4_DISABLED                                           0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_4_NONPOSITIONAL                                      0x00000100
+#define    NV20TCL_ENABLED_LIGHTS_4_POSITIONAL                                         0x00000200
+#define    NV20TCL_ENABLED_LIGHTS_4_DIRECTIONAL                                                0x00000300
+#define   NV20TCL_ENABLED_LIGHTS_5_SHIFT                                               10
+#define   NV20TCL_ENABLED_LIGHTS_5_MASK                                                        0x00000c00
+#define    NV20TCL_ENABLED_LIGHTS_5_DISABLED                                           0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_5_NONPOSITIONAL                                      0x00000400
+#define    NV20TCL_ENABLED_LIGHTS_5_POSITIONAL                                         0x00000800
+#define    NV20TCL_ENABLED_LIGHTS_5_DIRECTIONAL                                                0x00000c00
+#define   NV20TCL_ENABLED_LIGHTS_6_SHIFT                                               12
+#define   NV20TCL_ENABLED_LIGHTS_6_MASK                                                        0x00003000
+#define    NV20TCL_ENABLED_LIGHTS_6_DISABLED                                           0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_6_NONPOSITIONAL                                      0x00001000
+#define    NV20TCL_ENABLED_LIGHTS_6_POSITIONAL                                         0x00002000
+#define    NV20TCL_ENABLED_LIGHTS_6_DIRECTIONAL                                                0x00003000
+#define   NV20TCL_ENABLED_LIGHTS_7_SHIFT                                               14
+#define   NV20TCL_ENABLED_LIGHTS_7_MASK                                                        0x0000c000
+#define    NV20TCL_ENABLED_LIGHTS_7_DISABLED                                           0x00000000
+#define    NV20TCL_ENABLED_LIGHTS_7_NONPOSITIONAL                                      0x00004000
+#define    NV20TCL_ENABLED_LIGHTS_7_POSITIONAL                                         0x00008000
+#define    NV20TCL_ENABLED_LIGHTS_7_DIRECTIONAL                                                0x0000c000
+#define  NV20TCL_TX_GEN_MODE_S(x)                                                      (0x000003c0+((x)*16))
+#define  NV20TCL_TX_GEN_MODE_S__SIZE                                                   0x00000004
+#define   NV20TCL_TX_GEN_MODE_S_FALSE                                                  0x00000000
+#define   NV20TCL_TX_GEN_MODE_S_EYE_LINEAR                                             0x00002400
+#define   NV20TCL_TX_GEN_MODE_S_OBJECT_LINEAR                                          0x00002401
+#define   NV20TCL_TX_GEN_MODE_S_SPHERE_MAP                                             0x00002402
+#define   NV20TCL_TX_GEN_MODE_S_NORMAL_MAP                                             0x00008511
+#define   NV20TCL_TX_GEN_MODE_S_REFLECTION_MAP                                         0x00008512
+#define  NV20TCL_TX_GEN_MODE_T(x)                                                      (0x000003c4+((x)*16))
+#define  NV20TCL_TX_GEN_MODE_T__SIZE                                                   0x00000004
+#define   NV20TCL_TX_GEN_MODE_T_FALSE                                                  0x00000000
+#define   NV20TCL_TX_GEN_MODE_T_EYE_LINEAR                                             0x00002400
+#define   NV20TCL_TX_GEN_MODE_T_OBJECT_LINEAR                                          0x00002401
+#define   NV20TCL_TX_GEN_MODE_T_SPHERE_MAP                                             0x00002402
+#define   NV20TCL_TX_GEN_MODE_T_NORMAL_MAP                                             0x00008511
+#define   NV20TCL_TX_GEN_MODE_T_REFLECTION_MAP                                         0x00008512
+#define  NV20TCL_TX_GEN_MODE_R(x)                                                      (0x000003c8+((x)*16))
+#define  NV20TCL_TX_GEN_MODE_R__SIZE                                                   0x00000004
+#define   NV20TCL_TX_GEN_MODE_R_FALSE                                                  0x00000000
+#define   NV20TCL_TX_GEN_MODE_R_EYE_LINEAR                                             0x00002400
+#define   NV20TCL_TX_GEN_MODE_R_OBJECT_LINEAR                                          0x00002401
+#define   NV20TCL_TX_GEN_MODE_R_SPHERE_MAP                                             0x00002402
+#define   NV20TCL_TX_GEN_MODE_R_NORMAL_MAP                                             0x00008511
+#define   NV20TCL_TX_GEN_MODE_R_REFLECTION_MAP                                         0x00008512
+#define  NV20TCL_TX_GEN_MODE_Q(x)                                                      (0x000003cc+((x)*16))
+#define  NV20TCL_TX_GEN_MODE_Q__SIZE                                                   0x00000004
+#define   NV20TCL_TX_GEN_MODE_Q_FALSE                                                  0x00000000
+#define   NV20TCL_TX_GEN_MODE_Q_EYE_LINEAR                                             0x00002400
+#define   NV20TCL_TX_GEN_MODE_Q_OBJECT_LINEAR                                          0x00002401
+#define   NV20TCL_TX_GEN_MODE_Q_SPHERE_MAP                                             0x00002402
+#define   NV20TCL_TX_GEN_MODE_Q_NORMAL_MAP                                             0x00008511
+#define   NV20TCL_TX_GEN_MODE_Q_REFLECTION_MAP                                         0x00008512
 #define  NV20TCL_TX_MATRIX_ENABLE(x)                                                   (0x00000420+((x)*4))
 #define  NV20TCL_TX_MATRIX_ENABLE__SIZE                                                        0x00000004
 #define  NV20TCL_POINT_SIZE                                                            0x0000043c
-#define  NV20TCL_MODELVIEW_MATRIX(x)                                                   (0x00000480+((x)*4))
-#define  NV20TCL_MODELVIEW_MATRIX__SIZE                                                        0x00000010
+#define  NV20TCL_MODELVIEW0_MATRIX(x)                                                  (0x00000480+((x)*4))
+#define  NV20TCL_MODELVIEW0_MATRIX__SIZE                                               0x00000010
+#define  NV20TCL_MODELVIEW1_MATRIX(x)                                                  (0x000004c0+((x)*4))
+#define  NV20TCL_MODELVIEW1_MATRIX__SIZE                                               0x00000010
+#define  NV20TCL_MODELVIEW2_MATRIX(x)                                                  (0x00000500+((x)*4))
+#define  NV20TCL_MODELVIEW2_MATRIX__SIZE                                               0x00000010
+#define  NV20TCL_MODELVIEW3_MATRIX(x)                                                  (0x00000540+((x)*4))
+#define  NV20TCL_MODELVIEW3_MATRIX__SIZE                                               0x00000010
+#define  NV20TCL_INVERSE_MODELVIEW0_MATRIX(x)                                          (0x00000580+((x)*4))
+#define  NV20TCL_INVERSE_MODELVIEW0_MATRIX__SIZE                                       0x00000010
+#define  NV20TCL_INVERSE_MODELVIEW1_MATRIX(x)                                          (0x000005c0+((x)*4))
+#define  NV20TCL_INVERSE_MODELVIEW1_MATRIX__SIZE                                       0x00000010
+#define  NV20TCL_INVERSE_MODELVIEW2_MATRIX(x)                                          (0x00000600+((x)*4))
+#define  NV20TCL_INVERSE_MODELVIEW2_MATRIX__SIZE                                       0x00000010
+#define  NV20TCL_INVERSE_MODELVIEW3_MATRIX(x)                                          (0x00000640+((x)*4))
+#define  NV20TCL_INVERSE_MODELVIEW3_MATRIX__SIZE                                       0x00000010
 #define  NV20TCL_PROJECTION_MATRIX(x)                                                  (0x00000680+((x)*4))
 #define  NV20TCL_PROJECTION_MATRIX__SIZE                                               0x00000010
 #define  NV20TCL_TX0_MATRIX(x)                                                         (0x000006c0+((x)*4))
@@ -3444,31 +4065,334 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV20TCL_TX2_MATRIX__SIZE                                                      0x00000010
 #define  NV20TCL_TX3_MATRIX(x)                                                         (0x00000780+((x)*4))
 #define  NV20TCL_TX3_MATRIX__SIZE                                                      0x00000010
+#define  NV20TCL_TX_GEN_COEFF_S_A(x)                                                   (0x00000840+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_S_A__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_S_B(x)                                                   (0x00000844+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_S_B__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_S_C(x)                                                   (0x00000848+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_S_C__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_S_D(x)                                                   (0x0000084c+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_S_D__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_T_A(x)                                                   (0x00000850+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_T_A__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_T_B(x)                                                   (0x00000854+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_T_B__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_T_C(x)                                                   (0x00000858+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_T_C__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_T_D(x)                                                   (0x0000085c+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_T_D__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_R_A(x)                                                   (0x00000860+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_R_A__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_R_B(x)                                                   (0x00000864+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_R_B__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_R_C(x)                                                   (0x00000868+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_R_C__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_R_D(x)                                                   (0x0000086c+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_R_D__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_Q_A(x)                                                   (0x00000870+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_Q_A__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_Q_B(x)                                                   (0x00000874+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_Q_B__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_Q_C(x)                                                   (0x00000878+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_Q_C__SIZE                                                        0x00000004
+#define  NV20TCL_TX_GEN_COEFF_Q_D(x)                                                   (0x0000087c+((x)*64))
+#define  NV20TCL_TX_GEN_COEFF_Q_D__SIZE                                                        0x00000004
 #define  NV20TCL_FOG_EQUATION_CONSTANT                                                 0x000009c0
 #define  NV20TCL_FOG_EQUATION_LINEAR                                                   0x000009c4
 #define  NV20TCL_FOG_EQUATION_QUADRATIC                                                        0x000009c8
-#define  NV20TCL_VIEWPORT_SCALE0_X                                                     0x00000a20
-#define  NV20TCL_VIEWPORT_SCALE0_Y                                                     0x00000a24
-#define  NV20TCL_VIEWPORT_SCALE0_Z                                                     0x00000a28
-#define  NV20TCL_VIEWPORT_SCALE0_W                                                     0x00000a2c
+#define  NV20TCL_FRONT_MATERIAL_SHININESS(x)                                           (0x000009e0+((x)*4))
+#define  NV20TCL_FRONT_MATERIAL_SHININESS__SIZE                                                0x00000006
+#define  NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_R                                           0x00000a10
+#define  NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_G                                           0x00000a14
+#define  NV20TCL_LIGHT_MODEL_FRONT_AMBIENT_B                                           0x00000a18
+#define  NV20TCL_VIEWPORT_TRANSLATE_X                                                  0x00000a20
+#define  NV20TCL_VIEWPORT_TRANSLATE_Y                                                  0x00000a24
+#define  NV20TCL_VIEWPORT_TRANSLATE_Z                                                  0x00000a28
+#define  NV20TCL_VIEWPORT_TRANSLATE_W                                                  0x00000a2c
 #define  NV20TCL_POINT_PARAMETER(x)                                                    (0x00000a30+((x)*4))
-#define  NV20TCL_POINT_PARAMETER__SIZE                                                 0x00000007
+#define  NV20TCL_POINT_PARAMETER__SIZE                                                 0x00000008
 #define  NV20TCL_RC_CONSTANT_COLOR0(x)                                                 (0x00000a60+((x)*4))
 #define  NV20TCL_RC_CONSTANT_COLOR0__SIZE                                              0x00000008
+#define   NV20TCL_RC_CONSTANT_COLOR0_B_SHIFT                                           0
+#define   NV20TCL_RC_CONSTANT_COLOR0_B_MASK                                            0x000000ff
+#define   NV20TCL_RC_CONSTANT_COLOR0_G_SHIFT                                           8
+#define   NV20TCL_RC_CONSTANT_COLOR0_G_MASK                                            0x0000ff00
+#define   NV20TCL_RC_CONSTANT_COLOR0_R_SHIFT                                           16
+#define   NV20TCL_RC_CONSTANT_COLOR0_R_MASK                                            0x00ff0000
+#define   NV20TCL_RC_CONSTANT_COLOR0_A_SHIFT                                           24
+#define   NV20TCL_RC_CONSTANT_COLOR0_A_MASK                                            0xff000000
 #define  NV20TCL_RC_CONSTANT_COLOR1(x)                                                 (0x00000a80+((x)*4))
 #define  NV20TCL_RC_CONSTANT_COLOR1__SIZE                                              0x00000008
+#define   NV20TCL_RC_CONSTANT_COLOR1_B_SHIFT                                           0
+#define   NV20TCL_RC_CONSTANT_COLOR1_B_MASK                                            0x000000ff
+#define   NV20TCL_RC_CONSTANT_COLOR1_G_SHIFT                                           8
+#define   NV20TCL_RC_CONSTANT_COLOR1_G_MASK                                            0x0000ff00
+#define   NV20TCL_RC_CONSTANT_COLOR1_R_SHIFT                                           16
+#define   NV20TCL_RC_CONSTANT_COLOR1_R_MASK                                            0x00ff0000
+#define   NV20TCL_RC_CONSTANT_COLOR1_A_SHIFT                                           24
+#define   NV20TCL_RC_CONSTANT_COLOR1_A_MASK                                            0xff000000
 #define  NV20TCL_RC_OUT_ALPHA(x)                                                       (0x00000aa0+((x)*4))
 #define  NV20TCL_RC_OUT_ALPHA__SIZE                                                    0x00000008
+#define   NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT                                         0
+#define   NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK                                          0x0000000f
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO                                         0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0                              0x00000001
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1                              0x00000002
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG                                          0x00000003
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR                                        0x00000004
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR                              0x00000005
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0                                     0x00000008
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1                                     0x00000009
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0                                       0x0000000c
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1                                       0x0000000d
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                  0x0000000e
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F                                    0x0000000f
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2                                     0x0000000a
+#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3                                     0x0000000b
+#define   NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT                                         4
+#define   NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK                                          0x000000f0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO                                         0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0                              0x00000010
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1                              0x00000020
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG                                          0x00000030
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR                                        0x00000040
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR                              0x00000050
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0                                     0x00000080
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1                                     0x00000090
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0                                       0x000000c0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1                                       0x000000d0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                  0x000000e0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F                                    0x000000f0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2                                     0x000000a0
+#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3                                     0x000000b0
+#define   NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT                                                8
+#define   NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK                                         0x00000f00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO                                                0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0                             0x00000100
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1                             0x00000200
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG                                         0x00000300
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR                               0x00000400
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR                             0x00000500
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0                                    0x00000800
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1                                    0x00000900
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0                                      0x00000c00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1                                      0x00000d00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                 0x00000e00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F                                   0x00000f00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2                                    0x00000a00
+#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3                                    0x00000b00
+#define   NV20TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT                                          (1 << 12)
+#define   NV20TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT                                          (1 << 13)
+#define   NV20TCL_RC_OUT_ALPHA_MUX_SUM                                                 (1 << 14)
+#define   NV20TCL_RC_OUT_ALPHA_BIAS                                                    (1 << 15)
+#define    NV20TCL_RC_OUT_ALPHA_BIAS_NONE                                              0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF                         0x00008000
+#define   NV20TCL_RC_OUT_ALPHA_SCALE_SHIFT                                             17
+#define   NV20TCL_RC_OUT_ALPHA_SCALE_MASK                                              0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_SCALE_NONE                                             0x00000000
+#define    NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO                                     0x00020000
+#define    NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR                                    0x00040000
+#define    NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF                                        0x00060000
 #define  NV20TCL_RC_IN_RGB(x)                                                          (0x00000ac0+((x)*4))
 #define  NV20TCL_RC_IN_RGB__SIZE                                                       0x00000008
-#define  NV20TCL_VIEWPORT_SCALE1_X                                                     0x00000af0
-#define  NV20TCL_VIEWPORT_SCALE1_Y                                                     0x00000af4
-#define  NV20TCL_VIEWPORT_SCALE1_Z                                                     0x00000af8
-#define  NV20TCL_VIEWPORT_SCALE1_W                                                     0x00000afc
+#define   NV20TCL_RC_IN_RGB_D_INPUT_SHIFT                                              0
+#define   NV20TCL_RC_IN_RGB_D_INPUT_MASK                                               0x0000000f
+#define    NV20TCL_RC_IN_RGB_D_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0                                   0x00000001
+#define    NV20TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1                                   0x00000002
+#define    NV20TCL_RC_IN_RGB_D_INPUT_FOG                                               0x00000003
+#define    NV20TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR                                     0x00000004
+#define    NV20TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR                                   0x00000005
+#define    NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE0                                          0x00000008
+#define    NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE1                                          0x00000009
+#define    NV20TCL_RC_IN_RGB_D_INPUT_SPARE0                                            0x0000000c
+#define    NV20TCL_RC_IN_RGB_D_INPUT_SPARE1                                            0x0000000d
+#define    NV20TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0000000e
+#define    NV20TCL_RC_IN_RGB_D_INPUT_E_TIMES_F                                         0x0000000f
+#define    NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE2                                          0x0000000a
+#define    NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE3                                          0x0000000b
+#define   NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE                                          (1 <<  4)
+#define    NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA                                   0x00000010
+#define   NV20TCL_RC_IN_RGB_D_MAPPING_SHIFT                                            5
+#define   NV20TCL_RC_IN_RGB_D_MAPPING_MASK                                             0x000000e0
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT                                 0x00000020
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL                                   0x00000040
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE                                   0x00000060
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL                                        0x00000080
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE                                        0x000000a0
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY                                 0x000000c0
+#define    NV20TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE                                   0x000000e0
+#define   NV20TCL_RC_IN_RGB_C_INPUT_SHIFT                                              8
+#define   NV20TCL_RC_IN_RGB_C_INPUT_MASK                                               0x00000f00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0                                   0x00000100
+#define    NV20TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1                                   0x00000200
+#define    NV20TCL_RC_IN_RGB_C_INPUT_FOG                                               0x00000300
+#define    NV20TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR                                     0x00000400
+#define    NV20TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR                                   0x00000500
+#define    NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE0                                          0x00000800
+#define    NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE1                                          0x00000900
+#define    NV20TCL_RC_IN_RGB_C_INPUT_SPARE0                                            0x00000c00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_SPARE1                                            0x00000d00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x00000e00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_E_TIMES_F                                         0x00000f00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE2                                          0x00000a00
+#define    NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE3                                          0x00000b00
+#define   NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE                                          (1 << 12)
+#define    NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA                                   0x00001000
+#define   NV20TCL_RC_IN_RGB_C_MAPPING_SHIFT                                            13
+#define   NV20TCL_RC_IN_RGB_C_MAPPING_MASK                                             0x0000e000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT                                 0x00002000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL                                   0x00004000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE                                   0x00006000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL                                        0x00008000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE                                        0x0000a000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY                                 0x0000c000
+#define    NV20TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE                                   0x0000e000
+#define   NV20TCL_RC_IN_RGB_B_INPUT_SHIFT                                              16
+#define   NV20TCL_RC_IN_RGB_B_INPUT_MASK                                               0x000f0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0                                   0x00010000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1                                   0x00020000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_FOG                                               0x00030000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR                                     0x00040000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR                                   0x00050000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE0                                          0x00080000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE1                                          0x00090000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_SPARE0                                            0x000c0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_SPARE1                                            0x000d0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x000e0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_E_TIMES_F                                         0x000f0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE2                                          0x000a0000
+#define    NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE3                                          0x000b0000
+#define   NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE                                          (1 << 20)
+#define    NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA                                   0x00100000
+#define   NV20TCL_RC_IN_RGB_B_MAPPING_SHIFT                                            21
+#define   NV20TCL_RC_IN_RGB_B_MAPPING_MASK                                             0x00e00000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT                                 0x00200000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL                                   0x00400000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE                                   0x00600000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL                                        0x00800000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE                                        0x00a00000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY                                 0x00c00000
+#define    NV20TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE                                   0x00e00000
+#define   NV20TCL_RC_IN_RGB_A_INPUT_SHIFT                                              24
+#define   NV20TCL_RC_IN_RGB_A_INPUT_MASK                                               0x0f000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_ZERO                                              0x00000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0                                   0x01000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1                                   0x02000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_FOG                                               0x03000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR                                     0x04000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR                                   0x05000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE0                                          0x08000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE1                                          0x09000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_SPARE0                                            0x0c000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_SPARE1                                            0x0d000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0e000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_E_TIMES_F                                         0x0f000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE2                                          0x0a000000
+#define    NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE3                                          0x0b000000
+#define   NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE                                          (1 << 28)
+#define    NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA                                   0x10000000
+#define   NV20TCL_RC_IN_RGB_A_MAPPING_SHIFT                                            29
+#define   NV20TCL_RC_IN_RGB_A_MAPPING_MASK                                             0xe0000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT                                 0x20000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL                                   0x40000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE                                   0x60000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL                                        0x80000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE                                        0xa0000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY                                 0xc0000000
+#define    NV20TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE                                   0xe0000000
+#define  NV20TCL_VIEWPORT_SCALE_X                                                      0x00000af0
+#define  NV20TCL_VIEWPORT_SCALE_Y                                                      0x00000af4
+#define  NV20TCL_VIEWPORT_SCALE_Z                                                      0x00000af8
+#define  NV20TCL_VIEWPORT_SCALE_W                                                      0x00000afc
 #define  NV20TCL_VP_UPLOAD_INST(x)                                                     (0x00000b00+((x)*4))
 #define  NV20TCL_VP_UPLOAD_INST__SIZE                                                  0x00000004
 #define  NV20TCL_VP_UPLOAD_CONST(x)                                                    (0x00000b80+((x)*4))
 #define  NV20TCL_VP_UPLOAD_CONST__SIZE                                                 0x00000004
+#define  NV20TCL_LIGHT_BACK_AMBIENT_R(x)                                               (0x00000c00+((x)*64))
+#define  NV20TCL_LIGHT_BACK_AMBIENT_R__SIZE                                            0x00000008
+#define  NV20TCL_LIGHT_BACK_AMBIENT_G(x)                                               (0x00000c04+((x)*64))
+#define  NV20TCL_LIGHT_BACK_AMBIENT_G__SIZE                                            0x00000008
+#define  NV20TCL_LIGHT_BACK_AMBIENT_B(x)                                               (0x00000c08+((x)*64))
+#define  NV20TCL_LIGHT_BACK_AMBIENT_B__SIZE                                            0x00000008
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_R(x)                                               (0x00000c0c+((x)*64))
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_R__SIZE                                            0x00000008
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_G(x)                                               (0x00000c10+((x)*64))
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_G__SIZE                                            0x00000008
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_B(x)                                               (0x00000c14+((x)*64))
+#define  NV20TCL_LIGHT_BACK_DIFFUSE_B__SIZE                                            0x00000008
+#define  NV20TCL_LIGHT_BACK_SPECULAR_R(x)                                              (0x00000c18+((x)*64))
+#define  NV20TCL_LIGHT_BACK_SPECULAR_R__SIZE                                           0x00000008
+#define  NV20TCL_LIGHT_BACK_SPECULAR_G(x)                                              (0x00000c1c+((x)*64))
+#define  NV20TCL_LIGHT_BACK_SPECULAR_G__SIZE                                           0x00000008
+#define  NV20TCL_LIGHT_BACK_SPECULAR_B(x)                                              (0x00000c20+((x)*64))
+#define  NV20TCL_LIGHT_BACK_SPECULAR_B__SIZE                                           0x00000008
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_R(x)                                              (0x00001000+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_R__SIZE                                           0x00000008
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_G(x)                                              (0x00001004+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_G__SIZE                                           0x00000008
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_B(x)                                              (0x00001008+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_AMBIENT_B__SIZE                                           0x00000008
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_R(x)                                              (0x0000100c+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_R__SIZE                                           0x00000008
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_G(x)                                              (0x00001010+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_G__SIZE                                           0x00000008
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_B(x)                                              (0x00001014+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_DIFFUSE_B__SIZE                                           0x00000008
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_R(x)                                             (0x00001018+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_R__SIZE                                          0x00000008
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_G(x)                                             (0x0000101c+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_G__SIZE                                          0x00000008
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_B(x)                                             (0x00001020+((x)*128))
+#define  NV20TCL_LIGHT_FRONT_SPECULAR_B__SIZE                                          0x00000008
+#define  NV20TCL_LIGHT_HALF_VECTOR_X(x)                                                        (0x00001028+((x)*128))
+#define  NV20TCL_LIGHT_HALF_VECTOR_X__SIZE                                             0x00000008
+#define  NV20TCL_LIGHT_HALF_VECTOR_Y(x)                                                        (0x0000102c+((x)*128))
+#define  NV20TCL_LIGHT_HALF_VECTOR_Y__SIZE                                             0x00000008
+#define  NV20TCL_LIGHT_HALF_VECTOR_Z(x)                                                        (0x00001030+((x)*128))
+#define  NV20TCL_LIGHT_HALF_VECTOR_Z__SIZE                                             0x00000008
+#define  NV20TCL_LIGHT_DIRECTION_X(x)                                                  (0x00001034+((x)*128))
+#define  NV20TCL_LIGHT_DIRECTION_X__SIZE                                               0x00000008
+#define  NV20TCL_LIGHT_DIRECTION_Y(x)                                                  (0x00001038+((x)*128))
+#define  NV20TCL_LIGHT_DIRECTION_Y__SIZE                                               0x00000008
+#define  NV20TCL_LIGHT_DIRECTION_Z(x)                                                  (0x0000103c+((x)*128))
+#define  NV20TCL_LIGHT_DIRECTION_Z__SIZE                                               0x00000008
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_A(x)                                                        (0x00001040+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_A__SIZE                                             0x00000008
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_B(x)                                                        (0x00001044+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_B__SIZE                                             0x00000008
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_C(x)                                                        (0x00001048+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_C__SIZE                                             0x00000008
+#define  NV20TCL_LIGHT_SPOT_DIR_X(x)                                                   (0x0000104c+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_DIR_X__SIZE                                                        0x00000008
+#define  NV20TCL_LIGHT_SPOT_DIR_Y(x)                                                   (0x00001050+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_DIR_Y__SIZE                                                        0x00000008
+#define  NV20TCL_LIGHT_SPOT_DIR_Z(x)                                                   (0x00001054+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_DIR_Z__SIZE                                                        0x00000008
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_D(x)                                                        (0x00001058+((x)*128))
+#define  NV20TCL_LIGHT_SPOT_CUTOFF_D__SIZE                                             0x00000008
+#define  NV20TCL_LIGHT_POSITION_X(x)                                                   (0x0000105c+((x)*128))
+#define  NV20TCL_LIGHT_POSITION_X__SIZE                                                        0x00000008
+#define  NV20TCL_LIGHT_POSITION_Y(x)                                                   (0x00001060+((x)*128))
+#define  NV20TCL_LIGHT_POSITION_Y__SIZE                                                        0x00000008
+#define  NV20TCL_LIGHT_POSITION_Z(x)                                                   (0x00001064+((x)*128))
+#define  NV20TCL_LIGHT_POSITION_Z__SIZE                                                        0x00000008
+#define  NV20TCL_LIGHT_ATTENUATION_CONSTANT(x)                                         (0x00001068+((x)*128))
+#define  NV20TCL_LIGHT_ATTENUATION_CONSTANT__SIZE                                      0x00000008
+#define  NV20TCL_LIGHT_ATTENUATION_LINEAR(x)                                           (0x0000106c+((x)*128))
+#define  NV20TCL_LIGHT_ATTENUATION_LINEAR__SIZE                                                0x00000008
+#define  NV20TCL_LIGHT_ATTENUATION_QUADRATIC(x)                                                (0x00001070+((x)*128))
+#define  NV20TCL_LIGHT_ATTENUATION_QUADRATIC__SIZE                                     0x00000008
 #define  NV20TCL_POLYGON_STIPPLE_ENABLE                                                        0x0000147c
 #define  NV20TCL_POLYGON_STIPPLE_PATTERN(x)                                            (0x00001480+((x)*4))
 #define  NV20TCL_POLYGON_STIPPLE_PATTERN__SIZE                                         0x00000020
@@ -3609,110 +4533,471 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV20TCL_VERTEX_TX3_4I_RQ_R_MASK                                              0x0000ffff
 #define   NV20TCL_VERTEX_TX3_4I_RQ_Q_SHIFT                                             16
 #define   NV20TCL_VERTEX_TX3_4I_RQ_Q_MASK                                              0xffff0000
+#define  NV20TCL_VERTEX_FOG_1F                                                         0x00001698
 #define  NV20TCL_EDGEFLAG_ENABLE                                                       0x000016bc
-#define  NV20TCL_VERTEX_ATTR_OFFSET(x)                                                 (0x00001720+((x)*4))
-#define  NV20TCL_VERTEX_ATTR_OFFSET__SIZE                                              0x00000010
-#define  NV20TCL_VERTEX_ARRAY_FORMAT(x)                                                        (0x00001760+((x)*4))
-#define  NV20TCL_VERTEX_ARRAY_FORMAT__SIZE                                             0x00000010
-#define   NV20TCL_VERTEX_ARRAY_FORMAT_TYPE_SHIFT                                       0
-#define   NV20TCL_VERTEX_ARRAY_FORMAT_TYPE_MASK                                                0x0000000f
-#define   NV20TCL_VERTEX_ARRAY_FORMAT_FIELDS_SHIFT                                     4
-#define   NV20TCL_VERTEX_ARRAY_FORMAT_FIELDS_MASK                                      0x000000f0
-#define   NV20TCL_VERTEX_ARRAY_FORMAT_STRIDE_SHIFT                                     8
-#define   NV20TCL_VERTEX_ARRAY_FORMAT_STRIDE_MASK                                      0x0000ff00
+#define  NV20TCL_VTX_CACHE_INVALIDATE                                                  0x00001710
+#define  NV20TCL_VTXBUF_ADDRESS(x)                                                     (0x00001720+((x)*4))
+#define  NV20TCL_VTXBUF_ADDRESS__SIZE                                                  0x00000010
+#define   NV20TCL_VTXBUF_ADDRESS_DMA1                                                  (1 << 31)
+#define   NV20TCL_VTXBUF_ADDRESS_OFFSET_SHIFT                                          0
+#define   NV20TCL_VTXBUF_ADDRESS_OFFSET_MASK                                           0x0fffffff
+#define  NV20TCL_VTXFMT(x)                                                             (0x00001760+((x)*4))
+#define  NV20TCL_VTXFMT__SIZE                                                          0x00000010
+#define   NV20TCL_VTXFMT_TYPE_SHIFT                                                    0
+#define   NV20TCL_VTXFMT_TYPE_MASK                                                     0x0000000f
+#define    NV20TCL_VTXFMT_TYPE_FLOAT                                                   0x00000002
+#define    NV20TCL_VTXFMT_TYPE_HALF                                                    0x00000003
+#define    NV20TCL_VTXFMT_TYPE_UBYTE                                                   0x00000004
+#define    NV20TCL_VTXFMT_TYPE_USHORT                                                  0x00000005
+#define   NV20TCL_VTXFMT_SIZE_SHIFT                                                    4
+#define   NV20TCL_VTXFMT_SIZE_MASK                                                     0x000000f0
+#define   NV20TCL_VTXFMT_STRIDE_SHIFT                                                  8
+#define   NV20TCL_VTXFMT_STRIDE_MASK                                                   0x0000ff00
+#define  NV20TCL_LIGHT_MODEL_BACK_AMBIENT_R                                            0x000017a0
+#define  NV20TCL_LIGHT_MODEL_BACK_AMBIENT_G                                            0x000017a4
+#define  NV20TCL_LIGHT_MODEL_BACK_AMBIENT_B                                            0x000017a8
+#define  NV20TCL_MATERIAL_FACTOR_BACK_A                                                        0x000017ac
+#define  NV20TCL_MATERIAL_FACTOR_BACK_R                                                        0x000017b0
+#define  NV20TCL_MATERIAL_FACTOR_BACK_G                                                        0x000017b4
+#define  NV20TCL_MATERIAL_FACTOR_BACK_B                                                        0x000017b8
 #define  NV20TCL_COLOR_LOGIC_OP_ENABLE                                                 0x000017bc
 #define  NV20TCL_COLOR_LOGIC_OP_OP                                                     0x000017c0
+#define   NV20TCL_COLOR_LOGIC_OP_OP_CLEAR                                              0x00001500
+#define   NV20TCL_COLOR_LOGIC_OP_OP_AND                                                        0x00001501
+#define   NV20TCL_COLOR_LOGIC_OP_OP_AND_REVERSE                                                0x00001502
+#define   NV20TCL_COLOR_LOGIC_OP_OP_COPY                                               0x00001503
+#define   NV20TCL_COLOR_LOGIC_OP_OP_AND_INVERTED                                       0x00001504
+#define   NV20TCL_COLOR_LOGIC_OP_OP_NOOP                                               0x00001505
+#define   NV20TCL_COLOR_LOGIC_OP_OP_XOR                                                        0x00001506
+#define   NV20TCL_COLOR_LOGIC_OP_OP_OR                                                 0x00001507
+#define   NV20TCL_COLOR_LOGIC_OP_OP_NOR                                                        0x00001508
+#define   NV20TCL_COLOR_LOGIC_OP_OP_EQUIV                                              0x00001509
+#define   NV20TCL_COLOR_LOGIC_OP_OP_INVERT                                             0x0000150a
+#define   NV20TCL_COLOR_LOGIC_OP_OP_OR_REVERSE                                         0x0000150b
+#define   NV20TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED                                      0x0000150c
+#define   NV20TCL_COLOR_LOGIC_OP_OP_OR_INVERTED                                                0x0000150d
+#define   NV20TCL_COLOR_LOGIC_OP_OP_NAND                                               0x0000150e
+#define   NV20TCL_COLOR_LOGIC_OP_OP_SET                                                        0x0000150f
 #define  NV20TCL_LIGHT_MODEL_TWO_SIDE_ENABLE                                           0x000017c4
 #define  NV20TCL_TX_SHADER_CULL_MODE                                                   0x000017f8
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_S                                            (1 <<  0)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_S_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_S_LESS                                      0x00000001
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_T                                            (1 <<  1)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_T_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_T_LESS                                      0x00000002
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_R                                            (1 <<  2)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_R_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_R_LESS                                      0x00000004
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_Q                                            (1 <<  3)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_Q_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_Q_LESS                                      0x00000008
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_S                                            (1 <<  4)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_S_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_S_LESS                                      0x00000010
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_T                                            (1 <<  5)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_T_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_T_LESS                                      0x00000020
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_R                                            (1 <<  6)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_R_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_R_LESS                                      0x00000040
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_Q                                            (1 <<  7)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_Q_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_Q_LESS                                      0x00000080
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_S                                            (1 <<  8)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_S_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_S_LESS                                      0x00000100
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_T                                            (1 <<  9)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_T_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_T_LESS                                      0x00000200
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_R                                            (1 << 10)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_R_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_R_LESS                                      0x00000400
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_Q                                            (1 << 11)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_Q_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_Q_LESS                                      0x00000800
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_S                                            (1 << 12)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_S_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_S_LESS                                      0x00001000
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_T                                            (1 << 13)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_T_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_T_LESS                                      0x00002000
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_R                                            (1 << 14)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_R_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_R_LESS                                      0x00004000
+#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_Q                                            (1 << 15)
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_Q_GEQUAL                                    0x00000000
+#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_Q_LESS                                      0x00008000
 #define  NV20TCL_VERTEX_BEGIN_END                                                      0x000017fc
-#define  NV20TCL_VERTEX_BUFFER_DRAW_ARRAYS                                             0x00001810
-#define  NV20TCL_VERTEX_ARRAY_DATA                                                     0x00001818
+#define   NV20TCL_VERTEX_BEGIN_END_STOP                                                        0x00000000
+#define   NV20TCL_VERTEX_BEGIN_END_POINTS                                              0x00000001
+#define   NV20TCL_VERTEX_BEGIN_END_LINES                                               0x00000002
+#define   NV20TCL_VERTEX_BEGIN_END_LINE_LOOP                                           0x00000003
+#define   NV20TCL_VERTEX_BEGIN_END_LINE_STRIP                                          0x00000004
+#define   NV20TCL_VERTEX_BEGIN_END_TRIANGLES                                           0x00000005
+#define   NV20TCL_VERTEX_BEGIN_END_TRIANGLE_STRIP                                      0x00000006
+#define   NV20TCL_VERTEX_BEGIN_END_TRIANGLE_FAN                                                0x00000007
+#define   NV20TCL_VERTEX_BEGIN_END_QUADS                                               0x00000008
+#define   NV20TCL_VERTEX_BEGIN_END_QUAD_STRIP                                          0x00000009
+#define   NV20TCL_VERTEX_BEGIN_END_POLYGON                                             0x0000000a
+#define  NV20TCL_VB_ELEMENT_U16                                                                0x00001800
+#define   NV20TCL_VB_ELEMENT_U16_I0_SHIFT                                              0
+#define   NV20TCL_VB_ELEMENT_U16_I0_MASK                                               0x0000ffff
+#define   NV20TCL_VB_ELEMENT_U16_I1_SHIFT                                              16
+#define   NV20TCL_VB_ELEMENT_U16_I1_MASK                                               0xffff0000
+#define  NV20TCL_VB_ELEMENT_U32                                                                0x00001808
+#define  NV20TCL_VB_VERTEX_BATCH                                                       0x00001810
+#define   NV20TCL_VB_VERTEX_BATCH_OFFSET_SHIFT                                         0
+#define   NV20TCL_VB_VERTEX_BATCH_OFFSET_MASK                                          0x00ffffff
+#define   NV20TCL_VB_VERTEX_BATCH_COUNT_SHIFT                                          24
+#define   NV20TCL_VB_VERTEX_BATCH_COUNT_MASK                                           0xff000000
+#define  NV20TCL_VERTEX_DATA                                                           0x00001818
+#define  NV20TCL_TX_SHADER_CONST_EYE_X                                                 0x0000181c
+#define  NV20TCL_TX_SHADER_CONST_EYE_Y                                                 0x00001820
+#define  NV20TCL_TX_SHADER_CONST_EYE_Z                                                 0x00001824
+#define  NV20TCL_VTX_ATTR_4F_X(x)                                                      (0x00001a00+((x)*16))
+#define  NV20TCL_VTX_ATTR_4F_X__SIZE                                                   0x00000010
+#define  NV20TCL_VTX_ATTR_4F_Y(x)                                                      (0x00001a04+((x)*16))
+#define  NV20TCL_VTX_ATTR_4F_Y__SIZE                                                   0x00000010
+#define  NV20TCL_VTX_ATTR_4F_Z(x)                                                      (0x00001a08+((x)*16))
+#define  NV20TCL_VTX_ATTR_4F_Z__SIZE                                                   0x00000010
+#define  NV20TCL_VTX_ATTR_4F_W(x)                                                      (0x00001a0c+((x)*16))
+#define  NV20TCL_VTX_ATTR_4F_W__SIZE                                                   0x00000010
 #define  NV20TCL_TX_OFFSET(x)                                                          (0x00001b00+((x)*64))
 #define  NV20TCL_TX_OFFSET__SIZE                                                       0x00000004
 #define  NV20TCL_TX_FORMAT(x)                                                          (0x00001b04+((x)*64))
 #define  NV20TCL_TX_FORMAT__SIZE                                                       0x00000004
+#define   NV20TCL_TX_FORMAT_DMA0                                                       (1 <<  0)
+#define   NV20TCL_TX_FORMAT_DMA1                                                       (1 <<  1)
+#define   NV20TCL_TX_FORMAT_CUBIC                                                      (1 <<  2)
+#define   NV20TCL_TX_FORMAT_NO_BORDER                                                  (1 <<  3)
+#define   NV20TCL_TX_FORMAT_DIMS_SHIFT                                                 4
+#define   NV20TCL_TX_FORMAT_DIMS_MASK                                                  0x000000f0
+#define    NV20TCL_TX_FORMAT_DIMS_1D                                                   0x00000010
+#define    NV20TCL_TX_FORMAT_DIMS_2D                                                   0x00000020
+#define    NV20TCL_TX_FORMAT_DIMS_3D                                                   0x00000030
+#define   NV20TCL_TX_FORMAT_FORMAT_SHIFT                                               8
+#define   NV20TCL_TX_FORMAT_FORMAT_MASK                                                        0x0000ff00
+#define    NV20TCL_TX_FORMAT_FORMAT_L8                                                 0x00000000
+#define    NV20TCL_TX_FORMAT_FORMAT_A8                                                 0x00000100
+#define    NV20TCL_TX_FORMAT_FORMAT_A1R5G5B5                                           0x00000200
+#define    NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4                                           0x00000400
+#define    NV20TCL_TX_FORMAT_FORMAT_R5G6B5                                             0x00000500
+#define    NV20TCL_TX_FORMAT_FORMAT_A8R8G8B8                                           0x00000600
+#define    NV20TCL_TX_FORMAT_FORMAT_X8R8G8B8                                           0x00000700
+#define    NV20TCL_TX_FORMAT_FORMAT_INDEX8                                             0x00000b00
+#define    NV20TCL_TX_FORMAT_FORMAT_DXT1                                               0x00000c00
+#define    NV20TCL_TX_FORMAT_FORMAT_DXT3                                               0x00000e00
+#define    NV20TCL_TX_FORMAT_FORMAT_DXT5                                               0x00000f00
+#define    NV20TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT                                      0x00001000
+#define    NV20TCL_TX_FORMAT_FORMAT_R5G6B5_RECT                                                0x00001100
+#define    NV20TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT                                      0x00001200
+#define    NV20TCL_TX_FORMAT_FORMAT_L8_RECT                                            0x00001300
+#define    NV20TCL_TX_FORMAT_FORMAT_DSDT8_RECT                                         0x00001700
+#define    NV20TCL_TX_FORMAT_FORMAT_A8L8                                               0x00001a00
+#define    NV20TCL_TX_FORMAT_FORMAT_A8_RECT                                            0x00001b00
+#define    NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT                                      0x00001d00
+#define    NV20TCL_TX_FORMAT_FORMAT_R8G8B8_RECT                                                0x00001e00
+#define    NV20TCL_TX_FORMAT_FORMAT_A8L8_RECT                                          0x00002000
+#define    NV20TCL_TX_FORMAT_FORMAT_DSDT8                                              0x00002800
+#define    NV20TCL_TX_FORMAT_FORMAT_HILO16                                             0x00003300
+#define    NV20TCL_TX_FORMAT_FORMAT_HILO16_RECT                                                0x00003600
+#define    NV20TCL_TX_FORMAT_FORMAT_HILO8                                              0x00004400
+#define    NV20TCL_TX_FORMAT_FORMAT_SIGNED_HILO8                                       0x00004500
+#define    NV20TCL_TX_FORMAT_FORMAT_HILO8_RECT                                         0x00004600
+#define    NV20TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT                                  0x00004700
+#define    NV20TCL_TX_FORMAT_FORMAT_A16                                                        0x00003200
+#define    NV20TCL_TX_FORMAT_FORMAT_A16_RECT                                           0x00003500
+#define    NV20TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV                                    0x00004a00
+#define    NV20TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV                                    0x00004b00
+#define    NV20TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV                                       0x00004c00
+#define   NV20TCL_TX_FORMAT_MIPMAP                                                     (1 << 19)
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_U_SHIFT                                          20
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_U_MASK                                           0x00f00000
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_V_SHIFT                                          24
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_V_MASK                                           0x0f000000
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_W_SHIFT                                          28
+#define   NV20TCL_TX_FORMAT_BASE_SIZE_W_MASK                                           0xf0000000
 #define  NV20TCL_TX_WRAP(x)                                                            (0x00001b08+((x)*64))
 #define  NV20TCL_TX_WRAP__SIZE                                                         0x00000004
+#define   NV20TCL_TX_WRAP_S_SHIFT                                                      0
+#define   NV20TCL_TX_WRAP_S_MASK                                                       0x000000ff
+#define    NV20TCL_TX_WRAP_S_REPEAT                                                    0x00000001
+#define    NV20TCL_TX_WRAP_S_MIRRORED_REPEAT                                           0x00000002
+#define    NV20TCL_TX_WRAP_S_CLAMP_TO_EDGE                                             0x00000003
+#define    NV20TCL_TX_WRAP_S_CLAMP_TO_BORDER                                           0x00000004
+#define    NV20TCL_TX_WRAP_S_CLAMP                                                     0x00000005
+#define   NV20TCL_TX_WRAP_T_SHIFT                                                      8
+#define   NV20TCL_TX_WRAP_T_MASK                                                       0x00000f00
+#define    NV20TCL_TX_WRAP_T_REPEAT                                                    0x00000100
+#define    NV20TCL_TX_WRAP_T_MIRRORED_REPEAT                                           0x00000200
+#define    NV20TCL_TX_WRAP_T_CLAMP_TO_EDGE                                             0x00000300
+#define    NV20TCL_TX_WRAP_T_CLAMP_TO_BORDER                                           0x00000400
+#define    NV20TCL_TX_WRAP_T_CLAMP                                                     0x00000500
+#define   NV20TCL_TX_WRAP_R_SHIFT                                                      16
+#define   NV20TCL_TX_WRAP_R_MASK                                                       0x000f0000
+#define    NV20TCL_TX_WRAP_R_REPEAT                                                    0x00010000
+#define    NV20TCL_TX_WRAP_R_MIRRORED_REPEAT                                           0x00020000
+#define    NV20TCL_TX_WRAP_R_CLAMP_TO_EDGE                                             0x00030000
+#define    NV20TCL_TX_WRAP_R_CLAMP_TO_BORDER                                           0x00040000
+#define    NV20TCL_TX_WRAP_R_CLAMP                                                     0x00050000
 #define  NV20TCL_TX_ENABLE(x)                                                          (0x00001b0c+((x)*64))
 #define  NV20TCL_TX_ENABLE__SIZE                                                       0x00000004
+#define   NV20TCL_TX_ENABLE_ANISO_SHIFT                                                        4
+#define   NV20TCL_TX_ENABLE_ANISO_MASK                                                 0x00000030
+#define    NV20TCL_TX_ENABLE_ANISO_NONE                                                        0x00000000
+#define    NV20TCL_TX_ENABLE_ANISO_2X                                                  0x00000010
+#define    NV20TCL_TX_ENABLE_ANISO_4X                                                  0x00000020
+#define    NV20TCL_TX_ENABLE_ANISO_8X                                                  0x00000030
+#define   NV20TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT                                       14
+#define   NV20TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK                                                0x0003c000
+#define   NV20TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT                                       26
+#define   NV20TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK                                                0x3c000000
+#define   NV20TCL_TX_ENABLE_ENABLE                                                     (1 << 30)
+#define  NV20TCL_TX_NPOT_PITCH(x)                                                      (0x00001b10+((x)*64))
+#define  NV20TCL_TX_NPOT_PITCH__SIZE                                                   0x00000004
+#define   NV20TCL_TX_NPOT_PITCH_PITCH_SHIFT                                            16
+#define   NV20TCL_TX_NPOT_PITCH_PITCH_MASK                                             0xffff0000
 #define  NV20TCL_TX_FILTER(x)                                                          (0x00001b14+((x)*64))
 #define  NV20TCL_TX_FILTER__SIZE                                                       0x00000004
+#define   NV20TCL_TX_FILTER_LOD_BIAS_SHIFT                                             8
+#define   NV20TCL_TX_FILTER_LOD_BIAS_MASK                                              0x00000f00
+#define   NV20TCL_TX_FILTER_MINIFY_SHIFT                                               16
+#define   NV20TCL_TX_FILTER_MINIFY_MASK                                                        0x000f0000
+#define    NV20TCL_TX_FILTER_MINIFY_NEAREST                                            0x00010000
+#define    NV20TCL_TX_FILTER_MINIFY_LINEAR                                             0x00020000
+#define    NV20TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST                             0x00030000
+#define    NV20TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST                              0x00040000
+#define    NV20TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR                              0x00050000
+#define    NV20TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR                               0x00060000
+#define   NV20TCL_TX_FILTER_MAGNIFY_SHIFT                                              24
+#define   NV20TCL_TX_FILTER_MAGNIFY_MASK                                               0x0f000000
+#define    NV20TCL_TX_FILTER_MAGNIFY_NEAREST                                           0x01000000
+#define    NV20TCL_TX_FILTER_MAGNIFY_LINEAR                                            0x02000000
+#define  NV20TCL_TX_NPOT_SIZE(x)                                                       (0x00001b1c+((x)*64))
+#define  NV20TCL_TX_NPOT_SIZE__SIZE                                                    0x00000004
+#define   NV20TCL_TX_NPOT_SIZE_H_SHIFT                                                 0
+#define   NV20TCL_TX_NPOT_SIZE_H_MASK                                                  0x0000ffff
+#define   NV20TCL_TX_NPOT_SIZE_W_SHIFT                                                 16
+#define   NV20TCL_TX_NPOT_SIZE_W_MASK                                                  0xffff0000
+#define  NV20TCL_TX_PALETTE_OFFSET(x)                                                  (0x00001b20+((x)*64))
+#define  NV20TCL_TX_PALETTE_OFFSET__SIZE                                               0x00000004
 #define  NV20TCL_TX_BORDER_COLOR(x)                                                    (0x00001b24+((x)*64))
 #define  NV20TCL_TX_BORDER_COLOR__SIZE                                                 0x00000004
-#define  NV20TCL_SCISSOR_HORIZ                                                         0x00001c30
-#define  NV20TCL_SCISSOR_VERT                                                          0x00001c50
+#define   NV20TCL_TX_BORDER_COLOR_B_SHIFT                                              0
+#define   NV20TCL_TX_BORDER_COLOR_B_MASK                                               0x000000ff
+#define   NV20TCL_TX_BORDER_COLOR_G_SHIFT                                              8
+#define   NV20TCL_TX_BORDER_COLOR_G_MASK                                               0x0000ff00
+#define   NV20TCL_TX_BORDER_COLOR_R_SHIFT                                              16
+#define   NV20TCL_TX_BORDER_COLOR_R_MASK                                               0x00ff0000
+#define   NV20TCL_TX_BORDER_COLOR_A_SHIFT                                              24
+#define   NV20TCL_TX_BORDER_COLOR_A_MASK                                               0xff000000
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX00(x)                                          (0x00001b28+((x)*64))
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX00__SIZE                                       0x00000004
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX01(x)                                          (0x00001b2c+((x)*64))
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX01__SIZE                                       0x00000004
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX11(x)                                          (0x00001b30+((x)*64))
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX11__SIZE                                       0x00000004
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX10(x)                                          (0x00001b34+((x)*64))
+#define  NV20TCL_TX_SHADER_OFFSET_MATRIX10__SIZE                                       0x00000004
+#define  NV20TCL_DEPTH_UNK17D8                                                         0x00001d78
+#define   NV20TCL_DEPTH_UNK17D8_CLAMP_SHIFT                                            4
+#define   NV20TCL_DEPTH_UNK17D8_CLAMP_MASK                                             0x000000f0
 #define  NV20TCL_MULTISAMPLE_CONTROL                                                   0x00001d7c
+#define  NV20TCL_CLEAR_DEPTH_VALUE                                                     0x00001d8c
 #define  NV20TCL_CLEAR_VALUE                                                           0x00001d90
 #define  NV20TCL_CLEAR_BUFFERS                                                         0x00001d94
+#define   NV20TCL_CLEAR_BUFFERS_COLOR_A                                                        (1 <<  7)
+#define   NV20TCL_CLEAR_BUFFERS_COLOR_B                                                        (1 <<  6)
+#define   NV20TCL_CLEAR_BUFFERS_COLOR_G                                                        (1 <<  5)
+#define   NV20TCL_CLEAR_BUFFERS_COLOR_R                                                        (1 <<  4)
+#define   NV20TCL_CLEAR_BUFFERS_STENCIL                                                        (1 <<  1)
+#define   NV20TCL_CLEAR_BUFFERS_DEPTH                                                  (1 <<  0)
 #define  NV20TCL_RC_COLOR0                                                             0x00001e20
+#define   NV20TCL_RC_COLOR0_B_SHIFT                                                    0
+#define   NV20TCL_RC_COLOR0_B_MASK                                                     0x000000ff
+#define   NV20TCL_RC_COLOR0_G_SHIFT                                                    8
+#define   NV20TCL_RC_COLOR0_G_MASK                                                     0x0000ff00
+#define   NV20TCL_RC_COLOR0_R_SHIFT                                                    16
+#define   NV20TCL_RC_COLOR0_R_MASK                                                     0x00ff0000
+#define   NV20TCL_RC_COLOR0_A_SHIFT                                                    24
+#define   NV20TCL_RC_COLOR0_A_MASK                                                     0xff000000
 #define  NV20TCL_RC_COLOR1                                                             0x00001e24
+#define   NV20TCL_RC_COLOR1_B_SHIFT                                                    0
+#define   NV20TCL_RC_COLOR1_B_MASK                                                     0x000000ff
+#define   NV20TCL_RC_COLOR1_G_SHIFT                                                    8
+#define   NV20TCL_RC_COLOR1_G_MASK                                                     0x0000ff00
+#define   NV20TCL_RC_COLOR1_R_SHIFT                                                    16
+#define   NV20TCL_RC_COLOR1_R_MASK                                                     0x00ff0000
+#define   NV20TCL_RC_COLOR1_A_SHIFT                                                    24
+#define   NV20TCL_RC_COLOR1_A_MASK                                                     0xff000000
+#define  NV20TCL_BACK_MATERIAL_SHININESS(x)                                            (0x00001e28+((x)*4))
+#define  NV20TCL_BACK_MATERIAL_SHININESS__SIZE                                         0x00000006
 #define  NV20TCL_RC_OUT_RGB(x)                                                         (0x00001e40+((x)*4))
 #define  NV20TCL_RC_OUT_RGB__SIZE                                                      0x00000008
+#define   NV20TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT                                           0
+#define   NV20TCL_RC_OUT_RGB_CD_OUTPUT_MASK                                            0x0000000f
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_ZERO                                           0x00000000
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0                                        0x00000001
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1                                        0x00000002
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_FOG                                            0x00000003
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR                                  0x00000004
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR                                        0x00000005
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0                                       0x00000008
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1                                       0x00000009
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0                                         0x0000000c
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1                                         0x0000000d
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                    0x0000000e
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F                                      0x0000000f
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2                                       0x0000000a
+#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3                                       0x0000000b
+#define   NV20TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT                                           4
+#define   NV20TCL_RC_OUT_RGB_AB_OUTPUT_MASK                                            0x000000f0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_ZERO                                           0x00000000
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0                                        0x00000010
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1                                        0x00000020
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_FOG                                            0x00000030
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR                                  0x00000040
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR                                        0x00000050
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0                                       0x00000080
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1                                       0x00000090
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0                                         0x000000c0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1                                         0x000000d0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                    0x000000e0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F                                      0x000000f0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2                                       0x000000a0
+#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3                                       0x000000b0
+#define   NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT                                          8
+#define   NV20TCL_RC_OUT_RGB_SUM_OUTPUT_MASK                                           0x00000f00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO                                          0x00000000
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0                               0x00000100
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1                               0x00000200
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_FOG                                           0x00000300
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR                                 0x00000400
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR                               0x00000500
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0                                      0x00000800
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1                                      0x00000900
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0                                                0x00000c00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1                                                0x00000d00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                   0x00000e00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F                                     0x00000f00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2                                      0x00000a00
+#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3                                      0x00000b00
+#define   NV20TCL_RC_OUT_RGB_CD_DOT_PRODUCT                                            (1 << 12)
+#define   NV20TCL_RC_OUT_RGB_AB_DOT_PRODUCT                                            (1 << 13)
+#define   NV20TCL_RC_OUT_RGB_MUX_SUM                                                   (1 << 14)
+#define   NV20TCL_RC_OUT_RGB_BIAS                                                      (1 << 15)
+#define    NV20TCL_RC_OUT_RGB_BIAS_NONE                                                        0x00000000
+#define    NV20TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF                           0x00008000
+#define   NV20TCL_RC_OUT_RGB_SCALE_SHIFT                                               17
+#define   NV20TCL_RC_OUT_RGB_SCALE_MASK                                                        0x00000000
+#define    NV20TCL_RC_OUT_RGB_SCALE_NONE                                               0x00000000
+#define    NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO                                       0x00020000
+#define    NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR                                      0x00040000
+#define    NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF                                  0x00060000
 #define  NV20TCL_RC_ENABLE                                                             0x00001e60
+#define   NV20TCL_RC_ENABLE_NUM_COMBINERS_SHIFT                                                0
+#define   NV20TCL_RC_ENABLE_NUM_COMBINERS_MASK                                         0x0000000f
+#define  NV20TCL_TX_RCOMP                                                              0x00001e6c
+#define   NV20TCL_TX_RCOMP_NEVER                                                       0x00000000
+#define   NV20TCL_TX_RCOMP_GREATER                                                     0x00000001
+#define   NV20TCL_TX_RCOMP_EQUAL                                                       0x00000002
+#define   NV20TCL_TX_RCOMP_GEQUAL                                                      0x00000003
+#define   NV20TCL_TX_RCOMP_LESS                                                                0x00000004
+#define   NV20TCL_TX_RCOMP_NOTEQUAL                                                    0x00000005
+#define   NV20TCL_TX_RCOMP_LEQUAL                                                      0x00000006
+#define   NV20TCL_TX_RCOMP_ALWAYS                                                      0x00000007
 #define  NV20TCL_TX_SHADER_OP                                                          0x00001e70
+#define   NV20TCL_TX_SHADER_OP_TX0_SHIFT                                               0
+#define   NV20TCL_TX_SHADER_OP_TX0_MASK                                                        0x0000001f
+#define    NV20TCL_TX_SHADER_OP_TX0_NONE                                               0x00000000
+#define    NV20TCL_TX_SHADER_OP_TX0_TEXTURE_2D                                         0x00000001
+#define    NV20TCL_TX_SHADER_OP_TX0_PASS_THROUGH                                       0x00000004
+#define    NV20TCL_TX_SHADER_OP_TX0_CULL_FRAGMENT                                      0x00000005
+#define    NV20TCL_TX_SHADER_OP_TX0_OFFSET_TEXTURE_2D                                  0x00000006
+#define    NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT_TEXTURE_2D                             0x00000009
+#define    NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT_DEPTH_REPLACE                          0x0000000a
+#define    NV20TCL_TX_SHADER_OP_TX0_DEPENDANT_AR_TEXTURE_2D                            0x0000000f
+#define    NV20TCL_TX_SHADER_OP_TX0_DEPENDANT_GB_TEXTURE_2D                            0x00000010
+#define    NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT                                                0x00000011
+#define   NV20TCL_TX_SHADER_OP_TX1_SHIFT                                               5
+#define   NV20TCL_TX_SHADER_OP_TX1_MASK                                                        0x000003e0
+#define    NV20TCL_TX_SHADER_OP_TX1_NONE                                               0x00000000
+#define    NV20TCL_TX_SHADER_OP_TX1_TEXTURE_2D                                         0x00000020
+#define    NV20TCL_TX_SHADER_OP_TX1_PASS_THROUGH                                       0x00000080
+#define    NV20TCL_TX_SHADER_OP_TX1_CULL_FRAGMENT                                      0x000000a0
+#define    NV20TCL_TX_SHADER_OP_TX1_OFFSET_TEXTURE_2D                                  0x000000c0
+#define    NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT_TEXTURE_2D                             0x00000120
+#define    NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT_DEPTH_REPLACE                          0x00000140
+#define    NV20TCL_TX_SHADER_OP_TX1_DEPENDANT_AR_TEXTURE_2D                            0x000001e0
+#define    NV20TCL_TX_SHADER_OP_TX1_DEPENDANT_GB_TEXTURE_2D                            0x00000200
+#define    NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT                                                0x00000220
+#define   NV20TCL_TX_SHADER_OP_TX2_SHIFT                                               10
+#define   NV20TCL_TX_SHADER_OP_TX2_MASK                                                        0x00007c00
+#define    NV20TCL_TX_SHADER_OP_TX2_NONE                                               0x00000000
+#define    NV20TCL_TX_SHADER_OP_TX2_TEXTURE_2D                                         0x00000400
+#define    NV20TCL_TX_SHADER_OP_TX2_PASS_THROUGH                                       0x00001000
+#define    NV20TCL_TX_SHADER_OP_TX2_CULL_FRAGMENT                                      0x00001400
+#define    NV20TCL_TX_SHADER_OP_TX2_OFFSET_TEXTURE_2D                                  0x00001800
+#define    NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT_TEXTURE_2D                             0x00002400
+#define    NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT_DEPTH_REPLACE                          0x00002800
+#define    NV20TCL_TX_SHADER_OP_TX2_DEPENDANT_AR_TEXTURE_2D                            0x00003c00
+#define    NV20TCL_TX_SHADER_OP_TX2_DEPENDANT_GB_TEXTURE_2D                            0x00004000
+#define    NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT                                                0x00004400
+#define   NV20TCL_TX_SHADER_OP_TX3_SHIFT                                               15
+#define   NV20TCL_TX_SHADER_OP_TX3_MASK                                                        0x000f8000
+#define    NV20TCL_TX_SHADER_OP_TX3_NONE                                               0x00000000
+#define    NV20TCL_TX_SHADER_OP_TX3_TEXTURE_2D                                         0x00008000
+#define    NV20TCL_TX_SHADER_OP_TX3_PASS_THROUGH                                       0x00020000
+#define    NV20TCL_TX_SHADER_OP_TX3_CULL_FRAGMENT                                      0x00028000
+#define    NV20TCL_TX_SHADER_OP_TX3_OFFSET_TEXTURE_2D                                  0x00030000
+#define    NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT_TEXTURE_2D                             0x00048000
+#define    NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT_DEPTH_REPLACE                          0x00050000
+#define    NV20TCL_TX_SHADER_OP_TX3_DEPENDANT_AR_TEXTURE_2D                            0x00078000
+#define    NV20TCL_TX_SHADER_OP_TX3_DEPENDANT_GB_TEXTURE_2D                            0x00080000
+#define    NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT                                                0x00088000
+#define  NV20TCL_TX_SHADER_DOTMAPPING                                                  0x00001e74
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX0_SHIFT                                       0
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX0_MASK                                                0x0000000f
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX1_SHIFT                                       4
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX1_MASK                                                0x000000f0
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX2_SHIFT                                       8
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX2_MASK                                                0x00000f00
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX3_SHIFT                                       12
+#define   NV20TCL_TX_SHADER_DOTMAPPING_TX3_MASK                                                0x0000f000
+#define  NV20TCL_TX_SHADER_PREVIOUS                                                    0x00001e78
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX0_SHIFT                                         8
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX0_MASK                                          0x00000f00
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX1_SHIFT                                         12
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX1_MASK                                          0x0000f000
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX2_SHIFT                                         16
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX2_MASK                                          0x00030000
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX3_SHIFT                                         20
+#define   NV20TCL_TX_SHADER_PREVIOUS_TX3_MASK                                          0x00300000
+#define  NV20TCL_ENGINE                                                                        0x00001e94
+#define   NV20TCL_ENGINE_VP                                                            (1 <<  1)
+#define   NV20TCL_ENGINE_FIXED                                                         (1 <<  2)
+#define  NV20TCL_VP_UPLOAD_FROM_ID                                                     0x00001e9c
+#define  NV20TCL_VP_START_FROM_ID                                                      0x00001ea0
 #define  NV20TCL_VP_UPLOAD_CONST_ID                                                    0x00001ea4
 
 
-#define NV17TCL                                                                                0x00000099
-
-#define  NV17TCL_DMA_IN_MEMORY4                                                                0x000001ac
-#define  NV17TCL_DMA_IN_MEMORY5                                                                0x000001b0
-#define  NV17TCL_COLOR_MASK_ENABLE                                                     0x000002bc
-#define  NV17TCL_LMA_DEPTH_BUFFER_PITCH                                                        0x00000d5c
-#define  NV17TCL_LMA_DEPTH_BUFFER_OFFSET                                               0x00000d60
-#define  NV17TCL_LMA_DEPTH_FILL_VALUE                                                  0x00000d68
-#define  NV17TCL_LMA_DEPTH_BUFFER_CLEAR                                                        0x00000d6c
-#define  NV17TCL_LMA_DEPTH_ENABLE                                                      0x00001658
-
-
-#define NV20_SWIZZLED_SURFACE                                                          0x0000009e
-
-
-
-#define NV12_IMAGE_BLIT                                                                        0x0000009f
-
-
-
-#define NV30_CONTEXT_SURFACES_2D                                                       0x00000362
-
-
-
-#define NV30_STRETCHED_IMAGE_FROM_CPU                                                  0x00000366
-
-
-
-#define NV30_TEXTURE_FROM_CPU                                                          0x0000037b
-
-
-
-#define NV30_SCALED_IMAGE_FROM_MEMORY                                                  0x00000389
-
-
-
-#define NV30_IMAGE_FROM_CPU                                                            0x0000038a
+#define NV25TCL                                                                                0x00000597
 
+#define  NV25TCL_DMA_IN_MEMORY4                                                                0x0000019c
+#define  NV25TCL_DMA_IN_MEMORY5                                                                0x000001a0
+#define  NV25TCL_DMA_IN_MEMORY8                                                                0x000001ac
+#define  NV25TCL_DMA_IN_MEMORY9                                                                0x000001b0
 
 
 #define NV30TCL                                                                                0x00000397
 
 
 
-#define NV30_SWIZZLED_SURFACE                                                          0x0000039e
-
-
-
 #define NV35TCL                                                                                0x00000497
 
 
 
-#define NV25TCL                                                                                0x00000597
-
-#define  NV25TCL_DMA_IN_MEMORY4                                                                0x0000019c
-#define  NV25TCL_DMA_IN_MEMORY5                                                                0x000001a0
-#define  NV25TCL_DMA_IN_MEMORY8                                                                0x000001ac
-#define  NV25TCL_DMA_IN_MEMORY9                                                                0x000001b0
-
-
 #define NV34TCL                                                                                0x00000697
 
 #define  NV34TCL_NOP                                                                   0x00000100
@@ -3740,6 +5025,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_RT_VERT_H_SHIFT                                                      16
 #define   NV34TCL_RT_VERT_H_MASK                                                       0xffff0000
 #define  NV34TCL_RT_FORMAT                                                             0x00000208
+#define   NV34TCL_RT_FORMAT_LOG2_HEIGHT_SHIFT                                          24
+#define   NV34TCL_RT_FORMAT_LOG2_HEIGHT_MASK                                           0xff000000
+#define   NV34TCL_RT_FORMAT_LOG2_WIDTH_SHIFT                                           16
+#define   NV34TCL_RT_FORMAT_LOG2_WIDTH_MASK                                            0x00ff0000
 #define   NV34TCL_RT_FORMAT_TYPE_SHIFT                                                 8
 #define   NV34TCL_RT_FORMAT_TYPE_MASK                                                  0x00000f00
 #define    NV34TCL_RT_FORMAT_TYPE_LINEAR                                               0x00000100
@@ -3754,6 +5043,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV34TCL_RT_FORMAT_COLOR_X8R8G8B8                                            0x00000005
 #define    NV34TCL_RT_FORMAT_COLOR_A8R8G8B8                                            0x00000008
 #define    NV34TCL_RT_FORMAT_COLOR_B8                                                  0x00000009
+#define    NV34TCL_RT_FORMAT_COLOR_UNKNOWN                                             0x0000000d
 #define    NV34TCL_RT_FORMAT_COLOR_X8B8G8R8                                            0x0000000f
 #define    NV34TCL_RT_FORMAT_COLOR_A8B8G8R8                                            0x00000010
 #define  NV34TCL_COLOR0_PITCH                                                          0x0000020c
@@ -3776,15 +5066,18 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_TX_UNITS_ENABLE_TX1                                                  (1 <<  1)
 #define   NV34TCL_TX_UNITS_ENABLE_TX2                                                  (1 <<  2)
 #define   NV34TCL_TX_UNITS_ENABLE_TX3                                                  (1 <<  3)
+#define   NV34TCL_TX_UNITS_ENABLE_TX4                                                  (1 <<  4)
+#define   NV34TCL_TX_UNITS_ENABLE_TX5                                                  (1 <<  5)
+#define   NV34TCL_TX_UNITS_ENABLE_TX6                                                  (1 <<  6)
+#define   NV34TCL_TX_UNITS_ENABLE_TX7                                                  (1 <<  7)
 #define  NV34TCL_TX_MATRIX_ENABLE(x)                                                   (0x00000240+((x)*4))
-#define  NV34TCL_TX_MATRIX_ENABLE__SIZE                                                        0x00000004
-#define  NV34TCL_UNK0250(x)                                                            (0x00000250+((x)*4))
-#define  NV34TCL_UNK0250__SIZE                                                         0x00000004
+#define  NV34TCL_TX_MATRIX_ENABLE__SIZE                                                        0x00000008
 #define  NV34TCL_VIEWPORT_TX_ORIGIN                                                    0x000002b8
 #define   NV34TCL_VIEWPORT_TX_ORIGIN_X_SHIFT                                           0
 #define   NV34TCL_VIEWPORT_TX_ORIGIN_X_MASK                                            0x0000ffff
 #define   NV34TCL_VIEWPORT_TX_ORIGIN_Y_SHIFT                                           16
 #define   NV34TCL_VIEWPORT_TX_ORIGIN_Y_MASK                                            0xffff0000
+#define  NV34TCL_VIEWPORT_CLIP_MODE                                                    0x000002bc
 #define  NV34TCL_VIEWPORT_CLIP_HORIZ(x)                                                        (0x000002c0+((x)*8))
 #define  NV34TCL_VIEWPORT_CLIP_HORIZ__SIZE                                             0x00000008
 #define   NV34TCL_VIEWPORT_CLIP_HORIZ_L_SHIFT                                          0
@@ -3805,7 +5098,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_ALPHA_FUNC_FUNC_EQUAL                                                        0x00000202
 #define   NV34TCL_ALPHA_FUNC_FUNC_LEQUAL                                               0x00000203
 #define   NV34TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
-#define   NV34TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
 #define   NV34TCL_ALPHA_FUNC_FUNC_NOTEQUAL                                             0x00000205
 #define   NV34TCL_ALPHA_FUNC_FUNC_GEQUAL                                               0x00000206
 #define   NV34TCL_ALPHA_FUNC_FUNC_ALWAYS                                               0x00000207
@@ -3905,62 +5197,20 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_COLOR_MASK_R_MASK                                                    0x00ff0000
 #define   NV34TCL_COLOR_MASK_A_SHIFT                                                   24
 #define   NV34TCL_COLOR_MASK_A_MASK                                                    0xff000000
-#define  NV34TCL_STENCIL_BACK_ENABLE                                                   0x00000328
-#define  NV34TCL_STENCIL_BACK_MASK                                                     0x0000032c
-#define  NV34TCL_STENCIL_BACK_FUNC_FUNC                                                        0x00000330
-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_NEVER                                         0x00000200
-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_LESS                                          0x00000201
-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                         0x00000202
-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                                0x00000203
-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                      0x00000205
-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                                0x00000206
-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                                0x00000207
-#define  NV34TCL_STENCIL_BACK_FUNC_REF                                                 0x00000334
-#define  NV34TCL_STENCIL_BACK_FUNC_MASK                                                        0x00000338
-#define  NV34TCL_STENCIL_BACK_OP_FAIL                                                  0x0000033c
-#define   NV34TCL_STENCIL_BACK_OP_FAIL_ZERO                                            0x00000000
-#define   NV34TCL_STENCIL_BACK_OP_FAIL_INVERT                                          0x0000150a
-#define   NV34TCL_STENCIL_BACK_OP_FAIL_KEEP                                            0x00001e00
-#define   NV34TCL_STENCIL_BACK_OP_FAIL_REPLACE                                         0x00001e01
-#define   NV34TCL_STENCIL_BACK_OP_FAIL_INCR                                            0x00001e02
-#define   NV34TCL_STENCIL_BACK_OP_FAIL_DECR                                            0x00001e03
-#define   NV34TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP                                       0x00008507
-#define   NV34TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP                                       0x00008508
-#define  NV34TCL_STENCIL_BACK_OP_ZFAIL                                                 0x00000340
-#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_ZERO                                           0x00000000
-#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INVERT                                         0x0000150a
-#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_KEEP                                           0x00001e00
-#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_REPLACE                                                0x00001e01
-#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INCR                                           0x00001e02
-#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_DECR                                           0x00001e03
-#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP                                      0x00008507
-#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP                                      0x00008508
-#define  NV34TCL_STENCIL_BACK_OP_ZPASS                                                 0x00000344
-#define   NV34TCL_STENCIL_BACK_OP_ZPASS_ZERO                                           0x00000000
-#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INVERT                                         0x0000150a
-#define   NV34TCL_STENCIL_BACK_OP_ZPASS_KEEP                                           0x00001e00
-#define   NV34TCL_STENCIL_BACK_OP_ZPASS_REPLACE                                                0x00001e01
-#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INCR                                           0x00001e02
-#define   NV34TCL_STENCIL_BACK_OP_ZPASS_DECR                                           0x00001e03
-#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP                                      0x00008507
-#define   NV34TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP                                      0x00008508
-#define  NV34TCL_STENCIL_FRONT_ENABLE                                                  0x00000348
-#define  NV34TCL_STENCIL_FRONT_MASK                                                    0x0000034c
-#define  NV34TCL_STENCIL_FRONT_FUNC_FUNC                                               0x00000350
+#define  NV34TCL_STENCIL_FRONT_ENABLE                                                  0x00000328
+#define  NV34TCL_STENCIL_FRONT_MASK                                                    0x0000032c
+#define  NV34TCL_STENCIL_FRONT_FUNC_FUNC                                               0x00000330
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_NEVER                                                0x00000200
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_LESS                                         0x00000201
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL                                                0x00000202
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL                                       0x00000203
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
-#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL                                     0x00000205
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL                                       0x00000206
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS                                       0x00000207
-#define  NV34TCL_STENCIL_FRONT_FUNC_REF                                                        0x00000354
-#define  NV34TCL_STENCIL_FRONT_FUNC_MASK                                               0x00000358
-#define  NV34TCL_STENCIL_FRONT_OP_FAIL                                                 0x0000035c
+#define  NV34TCL_STENCIL_FRONT_FUNC_REF                                                        0x00000334
+#define  NV34TCL_STENCIL_FRONT_FUNC_MASK                                               0x00000338
+#define  NV34TCL_STENCIL_FRONT_OP_FAIL                                                 0x0000033c
 #define   NV34TCL_STENCIL_FRONT_OP_FAIL_ZERO                                           0x00000000
 #define   NV34TCL_STENCIL_FRONT_OP_FAIL_INVERT                                         0x0000150a
 #define   NV34TCL_STENCIL_FRONT_OP_FAIL_KEEP                                           0x00001e00
@@ -3969,7 +5219,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_STENCIL_FRONT_OP_FAIL_DECR                                           0x00001e03
 #define   NV34TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP                                      0x00008507
 #define   NV34TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP                                      0x00008508
-#define  NV34TCL_STENCIL_FRONT_OP_ZFAIL                                                        0x00000360
+#define  NV34TCL_STENCIL_FRONT_OP_ZFAIL                                                        0x00000340
 #define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_ZERO                                          0x00000000
 #define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_INVERT                                                0x0000150a
 #define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_KEEP                                          0x00001e00
@@ -3978,7 +5228,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_DECR                                          0x00001e03
 #define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP                                     0x00008507
 #define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP                                     0x00008508
-#define  NV34TCL_STENCIL_FRONT_OP_ZPASS                                                        0x00000364
+#define  NV34TCL_STENCIL_FRONT_OP_ZPASS                                                        0x00000344
 #define   NV34TCL_STENCIL_FRONT_OP_ZPASS_ZERO                                          0x00000000
 #define   NV34TCL_STENCIL_FRONT_OP_ZPASS_INVERT                                                0x0000150a
 #define   NV34TCL_STENCIL_FRONT_OP_ZPASS_KEEP                                          0x00001e00
@@ -3987,11 +5237,59 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_STENCIL_FRONT_OP_ZPASS_DECR                                          0x00001e03
 #define   NV34TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP                                     0x00008507
 #define   NV34TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP                                     0x00008508
+#define  NV34TCL_STENCIL_BACK_ENABLE                                                   0x00000348
+#define  NV34TCL_STENCIL_BACK_MASK                                                     0x0000034c
+#define  NV34TCL_STENCIL_BACK_FUNC_FUNC                                                        0x00000350
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_NEVER                                         0x00000200
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_LESS                                          0x00000201
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                         0x00000202
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                                0x00000203
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                      0x00000205
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                                0x00000206
+#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                                0x00000207
+#define  NV34TCL_STENCIL_BACK_FUNC_REF                                                 0x00000354
+#define  NV34TCL_STENCIL_BACK_FUNC_MASK                                                        0x00000358
+#define  NV34TCL_STENCIL_BACK_OP_FAIL                                                  0x0000035c
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_ZERO                                            0x00000000
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_INVERT                                          0x0000150a
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_KEEP                                            0x00001e00
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_REPLACE                                         0x00001e01
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_INCR                                            0x00001e02
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_DECR                                            0x00001e03
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP                                       0x00008507
+#define   NV34TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP                                       0x00008508
+#define  NV34TCL_STENCIL_BACK_OP_ZFAIL                                                 0x00000360
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_ZERO                                           0x00000000
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INVERT                                         0x0000150a
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_KEEP                                           0x00001e00
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_REPLACE                                                0x00001e01
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INCR                                           0x00001e02
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_DECR                                           0x00001e03
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP                                      0x00008507
+#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP                                      0x00008508
+#define  NV34TCL_STENCIL_BACK_OP_ZPASS                                                 0x00000364
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_ZERO                                           0x00000000
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INVERT                                         0x0000150a
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_KEEP                                           0x00001e00
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_REPLACE                                                0x00001e01
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INCR                                           0x00001e02
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_DECR                                           0x00001e03
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP                                      0x00008507
+#define   NV34TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP                                      0x00008508
 #define  NV34TCL_SHADE_MODEL                                                           0x00000368
 #define   NV34TCL_SHADE_MODEL_FLAT                                                     0x00001d00
 #define   NV34TCL_SHADE_MODEL_SMOOTH                                                   0x00001d01
 #define  NV34TCL_FOG_ENABLE                                                            0x0000036c
 #define  NV34TCL_FOG_COLOR                                                             0x00000370
+#define   NV34TCL_FOG_COLOR_R_SHIFT                                                    0
+#define   NV34TCL_FOG_COLOR_R_MASK                                                     0x000000ff
+#define   NV34TCL_FOG_COLOR_G_SHIFT                                                    8
+#define   NV34TCL_FOG_COLOR_G_MASK                                                     0x0000ff00
+#define   NV34TCL_FOG_COLOR_B_SHIFT                                                    16
+#define   NV34TCL_FOG_COLOR_B_MASK                                                     0x00ff0000
+#define   NV34TCL_FOG_COLOR_A_SHIFT                                                    24
+#define   NV34TCL_FOG_COLOR_A_MASK                                                     0xff000000
 #define  NV34TCL_COLOR_LOGIC_OP_ENABLE                                                 0x00000374
 #define  NV34TCL_COLOR_LOGIC_OP_OP                                                     0x00000378
 #define   NV34TCL_COLOR_LOGIC_OP_OP_CLEAR                                              0x00001500
@@ -4028,11 +5326,38 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV34TCL_COLOR_MATERIAL_FRONT_A                                                        0x000003b4
 #define  NV34TCL_LINE_WIDTH                                                            0x000003b8
 #define  NV34TCL_LINE_SMOOTH_ENABLE                                                    0x000003bc
-#define  NV34TCL_CLIP_PLANE_ENABLE(x)                                                  (0x00000400+((x)*4))
-#define  NV34TCL_CLIP_PLANE_ENABLE__SIZE                                               0x00000020
-#define   NV34TCL_CLIP_PLANE_ENABLE_FALSE                                              0x00000000
-#define   NV34TCL_CLIP_PLANE_ENABLE_EYE_LINEAR                                         0x00002400
-#define   NV34TCL_CLIP_PLANE_ENABLE_OBJECT_LINEAR                                      0x00002401
+#define  NV34TCL_TX_GEN_S(x)                                                           (0x00000400+((x)*16))
+#define  NV34TCL_TX_GEN_S__SIZE                                                                0x00000008
+#define   NV34TCL_TX_GEN_S_FALSE                                                       0x00000000
+#define   NV34TCL_TX_GEN_S_EYE_LINEAR                                                  0x00002400
+#define   NV34TCL_TX_GEN_S_OBJECT_LINEAR                                               0x00002401
+#define   NV34TCL_TX_GEN_S_SPHERE_MAP                                                  0x00002402
+#define   NV34TCL_TX_GEN_S_NORMAL_MAP                                                  0x00008511
+#define   NV34TCL_TX_GEN_S_REFLECTION_MAP                                              0x00008512
+#define  NV34TCL_TX_GEN_T(x)                                                           (0x00000404+((x)*16))
+#define  NV34TCL_TX_GEN_T__SIZE                                                                0x00000008
+#define   NV34TCL_TX_GEN_T_FALSE                                                       0x00000000
+#define   NV34TCL_TX_GEN_T_EYE_LINEAR                                                  0x00002400
+#define   NV34TCL_TX_GEN_T_OBJECT_LINEAR                                               0x00002401
+#define   NV34TCL_TX_GEN_T_SPHERE_MAP                                                  0x00002402
+#define   NV34TCL_TX_GEN_T_NORMAL_MAP                                                  0x00008511
+#define   NV34TCL_TX_GEN_T_REFLECTION_MAP                                              0x00008512
+#define  NV34TCL_TX_GEN_R(x)                                                           (0x00000408+((x)*16))
+#define  NV34TCL_TX_GEN_R__SIZE                                                                0x00000008
+#define   NV34TCL_TX_GEN_R_FALSE                                                       0x00000000
+#define   NV34TCL_TX_GEN_R_EYE_LINEAR                                                  0x00002400
+#define   NV34TCL_TX_GEN_R_OBJECT_LINEAR                                               0x00002401
+#define   NV34TCL_TX_GEN_R_SPHERE_MAP                                                  0x00002402
+#define   NV34TCL_TX_GEN_R_NORMAL_MAP                                                  0x00008511
+#define   NV34TCL_TX_GEN_R_REFLECTION_MAP                                              0x00008512
+#define  NV34TCL_TX_GEN_Q(x)                                                           (0x0000040c+((x)*16))
+#define  NV34TCL_TX_GEN_Q__SIZE                                                                0x00000008
+#define   NV34TCL_TX_GEN_Q_FALSE                                                       0x00000000
+#define   NV34TCL_TX_GEN_Q_EYE_LINEAR                                                  0x00002400
+#define   NV34TCL_TX_GEN_Q_OBJECT_LINEAR                                               0x00002401
+#define   NV34TCL_TX_GEN_Q_SPHERE_MAP                                                  0x00002402
+#define   NV34TCL_TX_GEN_Q_NORMAL_MAP                                                  0x00008511
+#define   NV34TCL_TX_GEN_Q_REFLECTION_MAP                                              0x00008512
 #define  NV34TCL_MODELVIEW_MATRIX(x)                                                   (0x00000480+((x)*4))
 #define  NV34TCL_MODELVIEW_MATRIX__SIZE                                                        0x00000010
 #define  NV34TCL_INVERSE_MODELVIEW_MATRIX(x)                                           (0x00000580+((x)*4))
@@ -4047,6 +5372,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV34TCL_TX2_MATRIX__SIZE                                                      0x00000010
 #define  NV34TCL_TX3_MATRIX(x)                                                         (0x00000780+((x)*4))
 #define  NV34TCL_TX3_MATRIX__SIZE                                                      0x00000010
+#define  NV34TCL_TX4_MATRIX(x)                                                         (0x000007c0+((x)*4))
+#define  NV34TCL_TX4_MATRIX__SIZE                                                      0x00000010
+#define  NV34TCL_TX5_MATRIX(x)                                                         (0x00000800+((x)*4))
+#define  NV34TCL_TX5_MATRIX__SIZE                                                      0x00000010
+#define  NV34TCL_TX6_MATRIX(x)                                                         (0x00000840+((x)*4))
+#define  NV34TCL_TX6_MATRIX__SIZE                                                      0x00000010
+#define  NV34TCL_TX7_MATRIX(x)                                                         (0x00000880+((x)*4))
+#define  NV34TCL_TX7_MATRIX__SIZE                                                      0x00000010
 #define  NV34TCL_SCISSOR_HORIZ                                                         0x000008c0
 #define   NV34TCL_SCISSOR_HORIZ_X_SHIFT                                                        0
 #define   NV34TCL_SCISSOR_HORIZ_X_MASK                                                 0x0000ffff
@@ -4059,11 +5392,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_SCISSOR_VERT_H_MASK                                                  0xffff0000
 #define  NV34TCL_FOG_COORD_DIST                                                                0x000008c8
 #define  NV34TCL_FOG_MODE                                                              0x000008cc
-#define   NV34TCL_FOG_MODE_EXP                                                         0x00000800
-#define   NV34TCL_FOG_MODE_EXP_2                                                       0x00000802
-#define   NV34TCL_FOG_MODE_EXP2                                                                0x00000803
-#define   NV34TCL_FOG_MODE_LINEAR                                                      0x00000804
-#define   NV34TCL_FOG_MODE_LINEAR_2                                                    0x00002601
 #define  NV34TCL_FOG_EQUATION_CONSTANT                                                 0x000008d0
 #define  NV34TCL_FOG_EQUATION_LINEAR                                                   0x000008d4
 #define  NV34TCL_FOG_EQUATION_QUADRATIC                                                        0x000008d8
@@ -4091,12 +5419,454 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_RC_COLOR1_A_SHIFT                                                    24
 #define   NV34TCL_RC_COLOR1_A_MASK                                                     0xff000000
 #define  NV34TCL_RC_FINAL0                                                             0x000008f4
+#define   NV34TCL_RC_FINAL0_D_INPUT_SHIFT                                              0
+#define   NV34TCL_RC_FINAL0_D_INPUT_MASK                                               0x0000000f
+#define    NV34TCL_RC_FINAL0_D_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0                                   0x00000001
+#define    NV34TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1                                   0x00000002
+#define    NV34TCL_RC_FINAL0_D_INPUT_FOG                                               0x00000003
+#define    NV34TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR                                     0x00000004
+#define    NV34TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR                                   0x00000005
+#define    NV34TCL_RC_FINAL0_D_INPUT_TEXTURE0                                          0x00000008
+#define    NV34TCL_RC_FINAL0_D_INPUT_TEXTURE1                                          0x00000009
+#define    NV34TCL_RC_FINAL0_D_INPUT_SPARE0                                            0x0000000c
+#define    NV34TCL_RC_FINAL0_D_INPUT_SPARE1                                            0x0000000d
+#define    NV34TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0000000e
+#define    NV34TCL_RC_FINAL0_D_INPUT_E_TIMES_F                                         0x0000000f
+#define    NV34TCL_RC_FINAL0_D_INPUT_TEXTURE2                                          0x0000000a
+#define    NV34TCL_RC_FINAL0_D_INPUT_TEXTURE3                                          0x0000000b
+#define   NV34TCL_RC_FINAL0_D_COMPONENT_USAGE                                          (1 <<  4)
+#define    NV34TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA                                   0x00000010
+#define   NV34TCL_RC_FINAL0_D_MAPPING_SHIFT                                            5
+#define   NV34TCL_RC_FINAL0_D_MAPPING_MASK                                             0x000000e0
+#define    NV34TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT                                 0x00000020
+#define    NV34TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL                                   0x00000040
+#define    NV34TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE                                   0x00000060
+#define    NV34TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL                                        0x00000080
+#define    NV34TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE                                        0x000000a0
+#define    NV34TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY                                 0x000000c0
+#define    NV34TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE                                   0x000000e0
+#define   NV34TCL_RC_FINAL0_C_INPUT_SHIFT                                              8
+#define   NV34TCL_RC_FINAL0_C_INPUT_MASK                                               0x00000f00
+#define    NV34TCL_RC_FINAL0_C_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0                                   0x00000100
+#define    NV34TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1                                   0x00000200
+#define    NV34TCL_RC_FINAL0_C_INPUT_FOG                                               0x00000300
+#define    NV34TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR                                     0x00000400
+#define    NV34TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR                                   0x00000500
+#define    NV34TCL_RC_FINAL0_C_INPUT_TEXTURE0                                          0x00000800
+#define    NV34TCL_RC_FINAL0_C_INPUT_TEXTURE1                                          0x00000900
+#define    NV34TCL_RC_FINAL0_C_INPUT_SPARE0                                            0x00000c00
+#define    NV34TCL_RC_FINAL0_C_INPUT_SPARE1                                            0x00000d00
+#define    NV34TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x00000e00
+#define    NV34TCL_RC_FINAL0_C_INPUT_E_TIMES_F                                         0x00000f00
+#define    NV34TCL_RC_FINAL0_C_INPUT_TEXTURE2                                          0x00000a00
+#define    NV34TCL_RC_FINAL0_C_INPUT_TEXTURE3                                          0x00000b00
+#define   NV34TCL_RC_FINAL0_C_COMPONENT_USAGE                                          (1 << 12)
+#define    NV34TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA                                   0x00001000
+#define   NV34TCL_RC_FINAL0_C_MAPPING_SHIFT                                            13
+#define   NV34TCL_RC_FINAL0_C_MAPPING_MASK                                             0x0000e000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT                                 0x00002000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL                                   0x00004000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE                                   0x00006000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL                                        0x00008000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE                                        0x0000a000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY                                 0x0000c000
+#define    NV34TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE                                   0x0000e000
+#define   NV34TCL_RC_FINAL0_B_INPUT_SHIFT                                              16
+#define   NV34TCL_RC_FINAL0_B_INPUT_MASK                                               0x000f0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0                                   0x00010000
+#define    NV34TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1                                   0x00020000
+#define    NV34TCL_RC_FINAL0_B_INPUT_FOG                                               0x00030000
+#define    NV34TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR                                     0x00040000
+#define    NV34TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR                                   0x00050000
+#define    NV34TCL_RC_FINAL0_B_INPUT_TEXTURE0                                          0x00080000
+#define    NV34TCL_RC_FINAL0_B_INPUT_TEXTURE1                                          0x00090000
+#define    NV34TCL_RC_FINAL0_B_INPUT_SPARE0                                            0x000c0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_SPARE1                                            0x000d0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x000e0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_E_TIMES_F                                         0x000f0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_TEXTURE2                                          0x000a0000
+#define    NV34TCL_RC_FINAL0_B_INPUT_TEXTURE3                                          0x000b0000
+#define   NV34TCL_RC_FINAL0_B_COMPONENT_USAGE                                          (1 << 20)
+#define    NV34TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA                                   0x00100000
+#define   NV34TCL_RC_FINAL0_B_MAPPING_SHIFT                                            21
+#define   NV34TCL_RC_FINAL0_B_MAPPING_MASK                                             0x00e00000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT                                 0x00200000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL                                   0x00400000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE                                   0x00600000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL                                        0x00800000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE                                        0x00a00000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY                                 0x00c00000
+#define    NV34TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE                                   0x00e00000
+#define   NV34TCL_RC_FINAL0_A_INPUT_SHIFT                                              24
+#define   NV34TCL_RC_FINAL0_A_INPUT_MASK                                               0x0f000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0                                   0x01000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1                                   0x02000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_FOG                                               0x03000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR                                     0x04000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR                                   0x05000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_TEXTURE0                                          0x08000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_TEXTURE1                                          0x09000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_SPARE0                                            0x0c000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_SPARE1                                            0x0d000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0e000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_E_TIMES_F                                         0x0f000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_TEXTURE2                                          0x0a000000
+#define    NV34TCL_RC_FINAL0_A_INPUT_TEXTURE3                                          0x0b000000
+#define   NV34TCL_RC_FINAL0_A_COMPONENT_USAGE                                          (1 << 28)
+#define    NV34TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA                                   0x10000000
+#define   NV34TCL_RC_FINAL0_A_MAPPING_SHIFT                                            29
+#define   NV34TCL_RC_FINAL0_A_MAPPING_MASK                                             0xe0000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT                                 0x20000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL                                   0x40000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE                                   0x60000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL                                        0x80000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE                                        0xa0000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY                                 0xc0000000
+#define    NV34TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE                                   0xe0000000
 #define  NV34TCL_RC_FINAL1                                                             0x000008f8
+#define   NV34TCL_RC_FINAL1_COLOR_SUM_CLAMP                                            (1 <<  7)
+#define   NV34TCL_RC_FINAL1_G_INPUT_SHIFT                                              8
+#define   NV34TCL_RC_FINAL1_G_INPUT_MASK                                               0x00000f00
+#define    NV34TCL_RC_FINAL1_G_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0                                   0x00000100
+#define    NV34TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1                                   0x00000200
+#define    NV34TCL_RC_FINAL1_G_INPUT_FOG                                               0x00000300
+#define    NV34TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR                                     0x00000400
+#define    NV34TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR                                   0x00000500
+#define    NV34TCL_RC_FINAL1_G_INPUT_TEXTURE0                                          0x00000800
+#define    NV34TCL_RC_FINAL1_G_INPUT_TEXTURE1                                          0x00000900
+#define    NV34TCL_RC_FINAL1_G_INPUT_SPARE0                                            0x00000c00
+#define    NV34TCL_RC_FINAL1_G_INPUT_SPARE1                                            0x00000d00
+#define    NV34TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x00000e00
+#define    NV34TCL_RC_FINAL1_G_INPUT_E_TIMES_F                                         0x00000f00
+#define    NV34TCL_RC_FINAL1_G_INPUT_TEXTURE2                                          0x00000a00
+#define    NV34TCL_RC_FINAL1_G_INPUT_TEXTURE3                                          0x00000b00
+#define   NV34TCL_RC_FINAL1_G_COMPONENT_USAGE                                          (1 << 12)
+#define    NV34TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA                                   0x00001000
+#define   NV34TCL_RC_FINAL1_G_MAPPING_SHIFT                                            13
+#define   NV34TCL_RC_FINAL1_G_MAPPING_MASK                                             0x0000e000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT                                 0x00002000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL                                   0x00004000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE                                   0x00006000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL                                        0x00008000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE                                        0x0000a000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY                                 0x0000c000
+#define    NV34TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE                                   0x0000e000
+#define   NV34TCL_RC_FINAL1_F_INPUT_SHIFT                                              16
+#define   NV34TCL_RC_FINAL1_F_INPUT_MASK                                               0x000f0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0                                   0x00010000
+#define    NV34TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1                                   0x00020000
+#define    NV34TCL_RC_FINAL1_F_INPUT_FOG                                               0x00030000
+#define    NV34TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR                                     0x00040000
+#define    NV34TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR                                   0x00050000
+#define    NV34TCL_RC_FINAL1_F_INPUT_TEXTURE0                                          0x00080000
+#define    NV34TCL_RC_FINAL1_F_INPUT_TEXTURE1                                          0x00090000
+#define    NV34TCL_RC_FINAL1_F_INPUT_SPARE0                                            0x000c0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_SPARE1                                            0x000d0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x000e0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_E_TIMES_F                                         0x000f0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_TEXTURE2                                          0x000a0000
+#define    NV34TCL_RC_FINAL1_F_INPUT_TEXTURE3                                          0x000b0000
+#define   NV34TCL_RC_FINAL1_F_COMPONENT_USAGE                                          (1 << 20)
+#define    NV34TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA                                   0x00100000
+#define   NV34TCL_RC_FINAL1_F_MAPPING_SHIFT                                            21
+#define   NV34TCL_RC_FINAL1_F_MAPPING_MASK                                             0x00e00000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT                                 0x00200000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL                                   0x00400000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE                                   0x00600000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL                                        0x00800000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE                                        0x00a00000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY                                 0x00c00000
+#define    NV34TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE                                   0x00e00000
+#define   NV34TCL_RC_FINAL1_E_INPUT_SHIFT                                              24
+#define   NV34TCL_RC_FINAL1_E_INPUT_MASK                                               0x0f000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0                                   0x01000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1                                   0x02000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_FOG                                               0x03000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR                                     0x04000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR                                   0x05000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_TEXTURE0                                          0x08000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_TEXTURE1                                          0x09000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_SPARE0                                            0x0c000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_SPARE1                                            0x0d000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0e000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_E_TIMES_F                                         0x0f000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_TEXTURE2                                          0x0a000000
+#define    NV34TCL_RC_FINAL1_E_INPUT_TEXTURE3                                          0x0b000000
+#define   NV34TCL_RC_FINAL1_E_COMPONENT_USAGE                                          (1 << 28)
+#define    NV34TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA                                   0x10000000
+#define   NV34TCL_RC_FINAL1_E_MAPPING_SHIFT                                            29
+#define   NV34TCL_RC_FINAL1_E_MAPPING_MASK                                             0xe0000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT                                 0x20000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL                                   0x40000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE                                   0x60000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL                                        0x80000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE                                        0xa0000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY                                 0xc0000000
+#define    NV34TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE                                   0xe0000000
 #define  NV34TCL_RC_ENABLE                                                             0x000008fc
+#define   NV34TCL_RC_ENABLE_NUM_COMBINERS_SHIFT                                                0
+#define   NV34TCL_RC_ENABLE_NUM_COMBINERS_MASK                                         0x0000000f
+#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR0_SHIFT                                        12
+#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR0_MASK                                 0x0000f000
+#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR1_SHIFT                                        16
+#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR1_MASK                                 0x000f0000
 #define  NV34TCL_RC_IN_ALPHA(x)                                                                (0x00000900+((x)*32))
 #define  NV34TCL_RC_IN_ALPHA__SIZE                                                     0x00000008
+#define   NV34TCL_RC_IN_ALPHA_D_INPUT_SHIFT                                            0
+#define   NV34TCL_RC_IN_ALPHA_D_INPUT_MASK                                             0x0000000f
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_ZERO                                            0x00000000
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0                                 0x00000001
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1                                 0x00000002
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_FOG                                             0x00000003
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR                                   0x00000004
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR                                 0x00000005
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0                                                0x00000008
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1                                                0x00000009
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE0                                          0x0000000c
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE1                                          0x0000000d
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x0000000e
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F                                       0x0000000f
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2                                                0x0000000a
+#define    NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3                                                0x0000000b
+#define   NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE                                                (1 <<  4)
+#define    NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE                                  0x00000000
+#define    NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA                                 0x00000010
+#define   NV34TCL_RC_IN_ALPHA_D_MAPPING_SHIFT                                          5
+#define   NV34TCL_RC_IN_ALPHA_D_MAPPING_MASK                                           0x000000e0
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT                               0x00000020
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL                                 0x00000040
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE                                 0x00000060
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL                              0x00000080
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE                              0x000000a0
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY                               0x000000c0
+#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE                                 0x000000e0
+#define   NV34TCL_RC_IN_ALPHA_C_INPUT_SHIFT                                            8
+#define   NV34TCL_RC_IN_ALPHA_C_INPUT_MASK                                             0x00000f00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_ZERO                                            0x00000000
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0                                 0x00000100
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1                                 0x00000200
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_FOG                                             0x00000300
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR                                   0x00000400
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR                                 0x00000500
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0                                                0x00000800
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1                                                0x00000900
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE0                                          0x00000c00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE1                                          0x00000d00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x00000e00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F                                       0x00000f00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2                                                0x00000a00
+#define    NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3                                                0x00000b00
+#define   NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE                                                (1 << 12)
+#define    NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE                                  0x00000000
+#define    NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA                                 0x00001000
+#define   NV34TCL_RC_IN_ALPHA_C_MAPPING_SHIFT                                          13
+#define   NV34TCL_RC_IN_ALPHA_C_MAPPING_MASK                                           0x0000e000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT                               0x00002000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL                                 0x00004000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE                                 0x00006000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL                              0x00008000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE                              0x0000a000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY                               0x0000c000
+#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE                                 0x0000e000
+#define   NV34TCL_RC_IN_ALPHA_B_INPUT_SHIFT                                            16
+#define   NV34TCL_RC_IN_ALPHA_B_INPUT_MASK                                             0x000f0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_ZERO                                            0x00000000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0                                 0x00010000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1                                 0x00020000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_FOG                                             0x00030000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR                                   0x00040000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR                                 0x00050000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0                                                0x00080000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1                                                0x00090000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE0                                          0x000c0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE1                                          0x000d0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x000e0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F                                       0x000f0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2                                                0x000a0000
+#define    NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3                                                0x000b0000
+#define   NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE                                                (1 << 20)
+#define    NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE                                  0x00000000
+#define    NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA                                 0x00100000
+#define   NV34TCL_RC_IN_ALPHA_B_MAPPING_SHIFT                                          21
+#define   NV34TCL_RC_IN_ALPHA_B_MAPPING_MASK                                           0x00e00000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT                               0x00200000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL                                 0x00400000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE                                 0x00600000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL                              0x00800000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE                              0x00a00000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY                               0x00c00000
+#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE                                 0x00e00000
+#define   NV34TCL_RC_IN_ALPHA_A_INPUT_SHIFT                                            24
+#define   NV34TCL_RC_IN_ALPHA_A_INPUT_MASK                                             0x0f000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_ZERO                                            0x00000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0                                 0x01000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1                                 0x02000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_FOG                                             0x03000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR                                   0x04000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR                                 0x05000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0                                                0x08000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1                                                0x09000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE0                                          0x0c000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE1                                          0x0d000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR                     0x0e000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F                                       0x0f000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2                                                0x0a000000
+#define    NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3                                                0x0b000000
+#define   NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE                                                (1 << 28)
+#define    NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE                                  0x00000000
+#define    NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA                                 0x10000000
+#define   NV34TCL_RC_IN_ALPHA_A_MAPPING_SHIFT                                          29
+#define   NV34TCL_RC_IN_ALPHA_A_MAPPING_MASK                                           0xe0000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY                             0x00000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT                               0x20000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL                                 0x40000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE                                 0x60000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL                              0x80000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE                              0xa0000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY                               0xc0000000
+#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE                                 0xe0000000
 #define  NV34TCL_RC_IN_RGB(x)                                                          (0x00000904+((x)*32))
 #define  NV34TCL_RC_IN_RGB__SIZE                                                       0x00000008
+#define   NV34TCL_RC_IN_RGB_D_INPUT_SHIFT                                              0
+#define   NV34TCL_RC_IN_RGB_D_INPUT_MASK                                               0x0000000f
+#define    NV34TCL_RC_IN_RGB_D_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0                                   0x00000001
+#define    NV34TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1                                   0x00000002
+#define    NV34TCL_RC_IN_RGB_D_INPUT_FOG                                               0x00000003
+#define    NV34TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR                                     0x00000004
+#define    NV34TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR                                   0x00000005
+#define    NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE0                                          0x00000008
+#define    NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE1                                          0x00000009
+#define    NV34TCL_RC_IN_RGB_D_INPUT_SPARE0                                            0x0000000c
+#define    NV34TCL_RC_IN_RGB_D_INPUT_SPARE1                                            0x0000000d
+#define    NV34TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0000000e
+#define    NV34TCL_RC_IN_RGB_D_INPUT_E_TIMES_F                                         0x0000000f
+#define    NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE2                                          0x0000000a
+#define    NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE3                                          0x0000000b
+#define   NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE                                          (1 <<  4)
+#define    NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA                                   0x00000010
+#define   NV34TCL_RC_IN_RGB_D_MAPPING_SHIFT                                            5
+#define   NV34TCL_RC_IN_RGB_D_MAPPING_MASK                                             0x000000e0
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT                                 0x00000020
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL                                   0x00000040
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE                                   0x00000060
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL                                        0x00000080
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE                                        0x000000a0
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY                                 0x000000c0
+#define    NV34TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE                                   0x000000e0
+#define   NV34TCL_RC_IN_RGB_C_INPUT_SHIFT                                              8
+#define   NV34TCL_RC_IN_RGB_C_INPUT_MASK                                               0x00000f00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0                                   0x00000100
+#define    NV34TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1                                   0x00000200
+#define    NV34TCL_RC_IN_RGB_C_INPUT_FOG                                               0x00000300
+#define    NV34TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR                                     0x00000400
+#define    NV34TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR                                   0x00000500
+#define    NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE0                                          0x00000800
+#define    NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE1                                          0x00000900
+#define    NV34TCL_RC_IN_RGB_C_INPUT_SPARE0                                            0x00000c00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_SPARE1                                            0x00000d00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x00000e00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_E_TIMES_F                                         0x00000f00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE2                                          0x00000a00
+#define    NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE3                                          0x00000b00
+#define   NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE                                          (1 << 12)
+#define    NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA                                   0x00001000
+#define   NV34TCL_RC_IN_RGB_C_MAPPING_SHIFT                                            13
+#define   NV34TCL_RC_IN_RGB_C_MAPPING_MASK                                             0x0000e000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT                                 0x00002000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL                                   0x00004000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE                                   0x00006000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL                                        0x00008000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE                                        0x0000a000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY                                 0x0000c000
+#define    NV34TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE                                   0x0000e000
+#define   NV34TCL_RC_IN_RGB_B_INPUT_SHIFT                                              16
+#define   NV34TCL_RC_IN_RGB_B_INPUT_MASK                                               0x000f0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0                                   0x00010000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1                                   0x00020000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_FOG                                               0x00030000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR                                     0x00040000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR                                   0x00050000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE0                                          0x00080000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE1                                          0x00090000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_SPARE0                                            0x000c0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_SPARE1                                            0x000d0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x000e0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_E_TIMES_F                                         0x000f0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE2                                          0x000a0000
+#define    NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE3                                          0x000b0000
+#define   NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE                                          (1 << 20)
+#define    NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA                                   0x00100000
+#define   NV34TCL_RC_IN_RGB_B_MAPPING_SHIFT                                            21
+#define   NV34TCL_RC_IN_RGB_B_MAPPING_MASK                                             0x00e00000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT                                 0x00200000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL                                   0x00400000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE                                   0x00600000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL                                        0x00800000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE                                        0x00a00000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY                                 0x00c00000
+#define    NV34TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE                                   0x00e00000
+#define   NV34TCL_RC_IN_RGB_A_INPUT_SHIFT                                              24
+#define   NV34TCL_RC_IN_RGB_A_INPUT_MASK                                               0x0f000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_ZERO                                              0x00000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0                                   0x01000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1                                   0x02000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_FOG                                               0x03000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR                                     0x04000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR                                   0x05000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE0                                          0x08000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE1                                          0x09000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_SPARE0                                            0x0c000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_SPARE1                                            0x0d000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR                       0x0e000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_E_TIMES_F                                         0x0f000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE2                                          0x0a000000
+#define    NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE3                                          0x0b000000
+#define   NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE                                          (1 << 28)
+#define    NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB                                     0x00000000
+#define    NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA                                   0x10000000
+#define   NV34TCL_RC_IN_RGB_A_MAPPING_SHIFT                                            29
+#define   NV34TCL_RC_IN_RGB_A_MAPPING_MASK                                             0xe0000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY                               0x00000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT                                 0x20000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL                                   0x40000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE                                   0x60000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL                                        0x80000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE                                        0xa0000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY                                 0xc0000000
+#define    NV34TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE                                   0xe0000000
 #define  NV34TCL_RC_CONSTANT_COLOR0(x)                                                 (0x00000908+((x)*32))
 #define  NV34TCL_RC_CONSTANT_COLOR0__SIZE                                              0x00000008
 #define   NV34TCL_RC_CONSTANT_COLOR0_B_SHIFT                                           0
@@ -4119,8 +5889,128 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_RC_CONSTANT_COLOR1_A_MASK                                            0xff000000
 #define  NV34TCL_RC_OUT_ALPHA(x)                                                       (0x00000910+((x)*32))
 #define  NV34TCL_RC_OUT_ALPHA__SIZE                                                    0x00000008
+#define   NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT                                         0
+#define   NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK                                          0x0000000f
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO                                         0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0                              0x00000001
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1                              0x00000002
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG                                          0x00000003
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR                                        0x00000004
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR                              0x00000005
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0                                     0x00000008
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1                                     0x00000009
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0                                       0x0000000c
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1                                       0x0000000d
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                  0x0000000e
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F                                    0x0000000f
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2                                     0x0000000a
+#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3                                     0x0000000b
+#define   NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT                                         4
+#define   NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK                                          0x000000f0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO                                         0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0                              0x00000010
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1                              0x00000020
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG                                          0x00000030
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR                                        0x00000040
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR                              0x00000050
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0                                     0x00000080
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1                                     0x00000090
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0                                       0x000000c0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1                                       0x000000d0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                  0x000000e0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F                                    0x000000f0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2                                     0x000000a0
+#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3                                     0x000000b0
+#define   NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT                                                8
+#define   NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK                                         0x00000f00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO                                                0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0                             0x00000100
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1                             0x00000200
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG                                         0x00000300
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR                               0x00000400
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR                             0x00000500
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0                                    0x00000800
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1                                    0x00000900
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0                                      0x00000c00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1                                      0x00000d00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                 0x00000e00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F                                   0x00000f00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2                                    0x00000a00
+#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3                                    0x00000b00
+#define   NV34TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT                                          (1 << 12)
+#define   NV34TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT                                          (1 << 13)
+#define   NV34TCL_RC_OUT_ALPHA_MUX_SUM                                                 (1 << 14)
+#define   NV34TCL_RC_OUT_ALPHA_BIAS                                                    (1 << 15)
+#define    NV34TCL_RC_OUT_ALPHA_BIAS_NONE                                              0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF                         0x00008000
+#define   NV34TCL_RC_OUT_ALPHA_SCALE_SHIFT                                             17
+#define   NV34TCL_RC_OUT_ALPHA_SCALE_MASK                                              0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_SCALE_NONE                                             0x00000000
+#define    NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO                                     0x00020000
+#define    NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR                                    0x00040000
+#define    NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF                                        0x00060000
 #define  NV34TCL_RC_OUT_RGB(x)                                                         (0x00000914+((x)*32))
 #define  NV34TCL_RC_OUT_RGB__SIZE                                                      0x00000008
+#define   NV34TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT                                           0
+#define   NV34TCL_RC_OUT_RGB_CD_OUTPUT_MASK                                            0x0000000f
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_ZERO                                           0x00000000
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0                                        0x00000001
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1                                        0x00000002
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_FOG                                            0x00000003
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR                                  0x00000004
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR                                        0x00000005
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0                                       0x00000008
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1                                       0x00000009
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0                                         0x0000000c
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1                                         0x0000000d
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                    0x0000000e
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F                                      0x0000000f
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2                                       0x0000000a
+#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3                                       0x0000000b
+#define   NV34TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT                                           4
+#define   NV34TCL_RC_OUT_RGB_AB_OUTPUT_MASK                                            0x000000f0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_ZERO                                           0x00000000
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0                                        0x00000010
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1                                        0x00000020
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_FOG                                            0x00000030
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR                                  0x00000040
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR                                        0x00000050
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0                                       0x00000080
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1                                       0x00000090
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0                                         0x000000c0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1                                         0x000000d0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                    0x000000e0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F                                      0x000000f0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2                                       0x000000a0
+#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3                                       0x000000b0
+#define   NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT                                          8
+#define   NV34TCL_RC_OUT_RGB_SUM_OUTPUT_MASK                                           0x00000f00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO                                          0x00000000
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0                               0x00000100
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1                               0x00000200
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_FOG                                           0x00000300
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR                                 0x00000400
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR                               0x00000500
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0                                      0x00000800
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1                                      0x00000900
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0                                                0x00000c00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1                                                0x00000d00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR                   0x00000e00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F                                     0x00000f00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2                                      0x00000a00
+#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3                                      0x00000b00
+#define   NV34TCL_RC_OUT_RGB_CD_DOT_PRODUCT                                            (1 << 12)
+#define   NV34TCL_RC_OUT_RGB_AB_DOT_PRODUCT                                            (1 << 13)
+#define   NV34TCL_RC_OUT_RGB_MUX_SUM                                                   (1 << 14)
+#define   NV34TCL_RC_OUT_RGB_BIAS                                                      (1 << 15)
+#define    NV34TCL_RC_OUT_RGB_BIAS_NONE                                                        0x00000000
+#define    NV34TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF                           0x00008000
+#define   NV34TCL_RC_OUT_RGB_SCALE_SHIFT                                               17
+#define   NV34TCL_RC_OUT_RGB_SCALE_MASK                                                        0x00000000
+#define    NV34TCL_RC_OUT_RGB_SCALE_NONE                                               0x00000000
+#define    NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO                                       0x00020000
+#define    NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR                                      0x00040000
+#define    NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF                                  0x00060000
 #define  NV34TCL_VIEWPORT_HORIZ                                                                0x00000a00
 #define   NV34TCL_VIEWPORT_HORIZ_X_SHIFT                                               0
 #define   NV34TCL_VIEWPORT_HORIZ_X_MASK                                                        0x0000ffff
@@ -4151,7 +6041,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_DEPTH_FUNC_EQUAL                                                     0x00000202
 #define   NV34TCL_DEPTH_FUNC_LEQUAL                                                    0x00000203
 #define   NV34TCL_DEPTH_FUNC_GREATER                                                   0x00000204
-#define   NV34TCL_DEPTH_FUNC_GREATER                                                   0x00000204
 #define   NV34TCL_DEPTH_FUNC_NOTEQUAL                                                  0x00000205
 #define   NV34TCL_DEPTH_FUNC_GEQUAL                                                    0x00000206
 #define   NV34TCL_DEPTH_FUNC_ALWAYS                                                    0x00000207
@@ -4171,14 +6060,70 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_VTX_ATTR_3I_Z_Z_MASK                                                 0x0000ffff
 #define  NV34TCL_VP_UPLOAD_INST(x)                                                     (0x00000b80+((x)*4))
 #define  NV34TCL_VP_UPLOAD_INST__SIZE                                                  0x00000004
-#define  NV34TCL_CLIP_PLANE_A(x)                                                       (0x00000e00+((x)*16))
-#define  NV34TCL_CLIP_PLANE_A__SIZE                                                    0x00000020
-#define  NV34TCL_CLIP_PLANE_B(x)                                                       (0x00000e04+((x)*16))
-#define  NV34TCL_CLIP_PLANE_B__SIZE                                                    0x00000020
-#define  NV34TCL_CLIP_PLANE_C(x)                                                       (0x00000e08+((x)*16))
-#define  NV34TCL_CLIP_PLANE_C__SIZE                                                    0x00000020
-#define  NV34TCL_CLIP_PLANE_D(x)                                                       (0x00000e0c+((x)*16))
-#define  NV34TCL_CLIP_PLANE_D__SIZE                                                    0x00000020
+#define  NV34TCL_TX0_CLIP_PLANE_A(x)                                                   (0x00000e00+((x)*16))
+#define  NV34TCL_TX0_CLIP_PLANE_A__SIZE                                                        0x00000004
+#define  NV34TCL_TX0_CLIP_PLANE_B(x)                                                   (0x00000e04+((x)*16))
+#define  NV34TCL_TX0_CLIP_PLANE_B__SIZE                                                        0x00000004
+#define  NV34TCL_TX0_CLIP_PLANE_C(x)                                                   (0x00000e08+((x)*16))
+#define  NV34TCL_TX0_CLIP_PLANE_C__SIZE                                                        0x00000004
+#define  NV34TCL_TX0_CLIP_PLANE_D(x)                                                   (0x00000e0c+((x)*16))
+#define  NV34TCL_TX0_CLIP_PLANE_D__SIZE                                                        0x00000004
+#define  NV34TCL_TX1_CLIP_PLANE_A(x)                                                   (0x00000e40+((x)*16))
+#define  NV34TCL_TX1_CLIP_PLANE_A__SIZE                                                        0x00000004
+#define  NV34TCL_TX1_CLIP_PLANE_B(x)                                                   (0x00000e44+((x)*16))
+#define  NV34TCL_TX1_CLIP_PLANE_B__SIZE                                                        0x00000004
+#define  NV34TCL_TX1_CLIP_PLANE_C(x)                                                   (0x00000e48+((x)*16))
+#define  NV34TCL_TX1_CLIP_PLANE_C__SIZE                                                        0x00000004
+#define  NV34TCL_TX1_CLIP_PLANE_D(x)                                                   (0x00000e4c+((x)*16))
+#define  NV34TCL_TX1_CLIP_PLANE_D__SIZE                                                        0x00000004
+#define  NV34TCL_TX2_CLIP_PLANE_A(x)                                                   (0x00000e80+((x)*16))
+#define  NV34TCL_TX2_CLIP_PLANE_A__SIZE                                                        0x00000004
+#define  NV34TCL_TX2_CLIP_PLANE_B(x)                                                   (0x00000e84+((x)*16))
+#define  NV34TCL_TX2_CLIP_PLANE_B__SIZE                                                        0x00000004
+#define  NV34TCL_TX2_CLIP_PLANE_C(x)                                                   (0x00000e88+((x)*16))
+#define  NV34TCL_TX2_CLIP_PLANE_C__SIZE                                                        0x00000004
+#define  NV34TCL_TX2_CLIP_PLANE_D(x)                                                   (0x00000e8c+((x)*16))
+#define  NV34TCL_TX2_CLIP_PLANE_D__SIZE                                                        0x00000004
+#define  NV34TCL_TX3_CLIP_PLANE_A(x)                                                   (0x00000ec0+((x)*16))
+#define  NV34TCL_TX3_CLIP_PLANE_A__SIZE                                                        0x00000004
+#define  NV34TCL_TX3_CLIP_PLANE_B(x)                                                   (0x00000ec4+((x)*16))
+#define  NV34TCL_TX3_CLIP_PLANE_B__SIZE                                                        0x00000004
+#define  NV34TCL_TX3_CLIP_PLANE_C(x)                                                   (0x00000ec8+((x)*16))
+#define  NV34TCL_TX3_CLIP_PLANE_C__SIZE                                                        0x00000004
+#define  NV34TCL_TX3_CLIP_PLANE_D(x)                                                   (0x00000ecc+((x)*16))
+#define  NV34TCL_TX3_CLIP_PLANE_D__SIZE                                                        0x00000004
+#define  NV34TCL_TX4_CLIP_PLANE_A(x)                                                   (0x00000f00+((x)*16))
+#define  NV34TCL_TX4_CLIP_PLANE_A__SIZE                                                        0x00000004
+#define  NV34TCL_TX4_CLIP_PLANE_B(x)                                                   (0x00000f04+((x)*16))
+#define  NV34TCL_TX4_CLIP_PLANE_B__SIZE                                                        0x00000004
+#define  NV34TCL_TX4_CLIP_PLANE_C(x)                                                   (0x00000f08+((x)*16))
+#define  NV34TCL_TX4_CLIP_PLANE_C__SIZE                                                        0x00000004
+#define  NV34TCL_TX4_CLIP_PLANE_D(x)                                                   (0x00000f0c+((x)*16))
+#define  NV34TCL_TX4_CLIP_PLANE_D__SIZE                                                        0x00000004
+#define  NV34TCL_TX5_CLIP_PLANE_A(x)                                                   (0x00000f40+((x)*16))
+#define  NV34TCL_TX5_CLIP_PLANE_A__SIZE                                                        0x00000004
+#define  NV34TCL_TX5_CLIP_PLANE_B(x)                                                   (0x00000f44+((x)*16))
+#define  NV34TCL_TX5_CLIP_PLANE_B__SIZE                                                        0x00000004
+#define  NV34TCL_TX5_CLIP_PLANE_C(x)                                                   (0x00000f48+((x)*16))
+#define  NV34TCL_TX5_CLIP_PLANE_C__SIZE                                                        0x00000004
+#define  NV34TCL_TX5_CLIP_PLANE_D(x)                                                   (0x00000f4c+((x)*16))
+#define  NV34TCL_TX5_CLIP_PLANE_D__SIZE                                                        0x00000004
+#define  NV34TCL_TX6_CLIP_PLANE_A(x)                                                   (0x00000f80+((x)*16))
+#define  NV34TCL_TX6_CLIP_PLANE_A__SIZE                                                        0x00000004
+#define  NV34TCL_TX6_CLIP_PLANE_B(x)                                                   (0x00000f84+((x)*16))
+#define  NV34TCL_TX6_CLIP_PLANE_B__SIZE                                                        0x00000004
+#define  NV34TCL_TX6_CLIP_PLANE_C(x)                                                   (0x00000f88+((x)*16))
+#define  NV34TCL_TX6_CLIP_PLANE_C__SIZE                                                        0x00000004
+#define  NV34TCL_TX6_CLIP_PLANE_D(x)                                                   (0x00000f8c+((x)*16))
+#define  NV34TCL_TX6_CLIP_PLANE_D__SIZE                                                        0x00000004
+#define  NV34TCL_TX7_CLIP_PLANE_A(x)                                                   (0x00000fc0+((x)*16))
+#define  NV34TCL_TX7_CLIP_PLANE_A__SIZE                                                        0x00000004
+#define  NV34TCL_TX7_CLIP_PLANE_B(x)                                                   (0x00000fc4+((x)*16))
+#define  NV34TCL_TX7_CLIP_PLANE_B__SIZE                                                        0x00000004
+#define  NV34TCL_TX7_CLIP_PLANE_C(x)                                                   (0x00000fc8+((x)*16))
+#define  NV34TCL_TX7_CLIP_PLANE_C__SIZE                                                        0x00000004
+#define  NV34TCL_TX7_CLIP_PLANE_D(x)                                                   (0x00000fcc+((x)*16))
+#define  NV34TCL_TX7_CLIP_PLANE_D__SIZE                                                        0x00000004
 #define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(x)                                 (0x00001000+((x)*64))
 #define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R__SIZE                              0x00000008
 #define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(x)                                 (0x00001004+((x)*64))
@@ -4238,11 +6183,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV34TCL_FRONT_MATERIAL_SHININESS(x)                                           (0x00001400+((x)*4))
 #define  NV34TCL_FRONT_MATERIAL_SHININESS__SIZE                                                0x00000006
 #define  NV34TCL_ENABLED_LIGHTS                                                                0x00001420
+#define  NV34TCL_VERTEX_TWO_SIDE_ENABLE                                                        0x0000142c
 #define  NV34TCL_FP_REG_CONTROL                                                                0x00001450
 #define   NV34TCL_FP_REG_CONTROL_UNK1_SHIFT                                            16
 #define   NV34TCL_FP_REG_CONTROL_UNK1_MASK                                             0xffff0000
 #define   NV34TCL_FP_REG_CONTROL_UNK0_SHIFT                                            0
 #define   NV34TCL_FP_REG_CONTROL_UNK0_MASK                                             0x0000ffff
+#define  NV34TCL_FLATSHADE_FIRST                                                       0x00001454
+#define  NV34TCL_EDGEFLAG_ENABLE                                                       0x0000145c
 #define  NV34TCL_VP_CLIP_PLANES_ENABLE                                                 0x00001478
 #define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE0                                         (1 <<  1)
 #define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE1                                         (1 <<  5)
@@ -4250,8 +6198,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE3                                         (1 << 13)
 #define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE4                                         (1 << 17)
 #define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE5                                         (1 << 21)
-#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE6                                         (1 << 25)
-#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE7                                         (1 << 29)
 #define  NV34TCL_POLYGON_STIPPLE_ENABLE                                                        0x0000147c
 #define  NV34TCL_POLYGON_STIPPLE_PATTERN(x)                                            (0x00001480+((x)*4))
 #define  NV34TCL_POLYGON_STIPPLE_PATTERN__SIZE                                         0x00000020
@@ -4278,9 +6224,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV34TCL_VTXFMT__SIZE                                                          0x00000010
 #define   NV34TCL_VTXFMT_TYPE_SHIFT                                                    0
 #define   NV34TCL_VTXFMT_TYPE_MASK                                                     0x0000000f
-#define    NV34TCL_VTXFMT_TYPE_FLOAT                                                   0x00000002
-#define    NV34TCL_VTXFMT_TYPE_UBYTE                                                   0x00000004
-#define    NV34TCL_VTXFMT_TYPE_USHORT                                                  0x00000005
+#define    NV34TCL_VTXFMT_TYPE_16_SNORM                                                        0x00000001
+#define    NV34TCL_VTXFMT_TYPE_32_FLOAT                                                        0x00000002
+#define    NV34TCL_VTXFMT_TYPE_16_FLOAT                                                        0x00000003
+#define    NV34TCL_VTXFMT_TYPE_8_UNORM                                                 0x00000004
+#define    NV34TCL_VTXFMT_TYPE_16_SSCALED                                                      0x00000005
+#define    NV34TCL_VTXFMT_TYPE_11_11_10_SNORM                                                  0x00000006
+#define    NV34TCL_VTXFMT_TYPE_8_USCALED                                                       0x00000007
 #define   NV34TCL_VTXFMT_SIZE_SHIFT                                                    4
 #define   NV34TCL_VTXFMT_SIZE_MASK                                                     0x000000f0
 #define   NV34TCL_VTXFMT_STRIDE_SHIFT                                                  8
@@ -4353,7 +6303,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV34TCL_POLYGON_SMOOTH_ENABLE                                                 0x00001838
 #define  NV34TCL_CULL_FACE_ENABLE                                                      0x0000183c
 #define  NV34TCL_TX_PALETTE_OFFSET(x)                                                  (0x00001840+((x)*4))
-#define  NV34TCL_TX_PALETTE_OFFSET__SIZE                                               0x00000004
+#define  NV34TCL_TX_PALETTE_OFFSET__SIZE                                               0x00000008
 #define  NV34TCL_VTX_ATTR_2F_X(x)                                                      (0x00001880+((x)*8))
 #define  NV34TCL_VTX_ATTR_2F_X__SIZE                                                   0x00000010
 #define  NV34TCL_VTX_ATTR_2F_Y(x)                                                      (0x00001884+((x)*8))
@@ -4387,9 +6337,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_VTX_ATTR_4I_ZW_W_SHIFT                                               16
 #define   NV34TCL_VTX_ATTR_4I_ZW_W_MASK                                                        0xffff0000
 #define  NV34TCL_TX_OFFSET(x)                                                          (0x00001a00+((x)*32))
-#define  NV34TCL_TX_OFFSET__SIZE                                                       0x00000004
+#define  NV34TCL_TX_OFFSET__SIZE                                                       0x00000008
 #define  NV34TCL_TX_FORMAT(x)                                                          (0x00001a04+((x)*32))
-#define  NV34TCL_TX_FORMAT__SIZE                                                       0x00000004
+#define  NV34TCL_TX_FORMAT__SIZE                                                       0x00000008
 #define   NV34TCL_TX_FORMAT_DMA0                                                       (1 <<  0)
 #define   NV34TCL_TX_FORMAT_DMA1                                                       (1 <<  1)
 #define   NV34TCL_TX_FORMAT_CUBIC                                                      (1 <<  2)
@@ -4404,7 +6354,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV34TCL_TX_FORMAT_FORMAT_L8                                                 0x00000000
 #define    NV34TCL_TX_FORMAT_FORMAT_A8                                                 0x00000100
 #define    NV34TCL_TX_FORMAT_FORMAT_A1R5G5B5                                           0x00000200
-#define    NV34TCL_TX_FORMAT_FORMAT_A8_RECT                                            0x00000300
 #define    NV34TCL_TX_FORMAT_FORMAT_A4R4G4B4                                           0x00000400
 #define    NV34TCL_TX_FORMAT_FORMAT_R5G6B5                                             0x00000500
 #define    NV34TCL_TX_FORMAT_FORMAT_A8R8G8B8                                           0x00000600
@@ -4417,19 +6366,25 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV34TCL_TX_FORMAT_FORMAT_R5G6B5_RECT                                                0x00001100
 #define    NV34TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT                                      0x00001200
 #define    NV34TCL_TX_FORMAT_FORMAT_L8_RECT                                            0x00001300
+#define    NV34TCL_TX_FORMAT_FORMAT_DSDT8_RECT                                         0x00001700
 #define    NV34TCL_TX_FORMAT_FORMAT_A8L8                                               0x00001a00
-#define    NV34TCL_TX_FORMAT_FORMAT_A8_RECT2                                           0x00001b00
+#define    NV34TCL_TX_FORMAT_FORMAT_A8_RECT                                            0x00001b00
 #define    NV34TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT                                      0x00001d00
 #define    NV34TCL_TX_FORMAT_FORMAT_R8G8B8_RECT                                                0x00001e00
-#define    NV34TCL_TX_FORMAT_FORMAT_L8A8_RECT                                          0x00002000
-#define    NV34TCL_TX_FORMAT_FORMAT_A16                                                        0x00003200
+#define    NV34TCL_TX_FORMAT_FORMAT_A8L8_RECT                                          0x00002000
+#define    NV34TCL_TX_FORMAT_FORMAT_DSDT8                                              0x00002800
+#define    NV34TCL_TX_FORMAT_FORMAT_Z24                                                        0x2a00
+#define    NV34TCL_TX_FORMAT_FORMAT_Z24_RECT                                           0x2b00 /* XXX: guess! */
+#define    NV34TCL_TX_FORMAT_FORMAT_Z16                                                        0x2c00
+#define    NV34TCL_TX_FORMAT_FORMAT_Z16_RECT                                           0x2d00 /* XXX: guess! */
 #define    NV34TCL_TX_FORMAT_FORMAT_HILO16                                             0x00003300
-#define    NV34TCL_TX_FORMAT_FORMAT_A16_RECT                                           0x00003500
 #define    NV34TCL_TX_FORMAT_FORMAT_HILO16_RECT                                                0x00003600
 #define    NV34TCL_TX_FORMAT_FORMAT_HILO8                                              0x00004400
 #define    NV34TCL_TX_FORMAT_FORMAT_SIGNED_HILO8                                       0x00004500
 #define    NV34TCL_TX_FORMAT_FORMAT_HILO8_RECT                                         0x00004600
 #define    NV34TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT                                  0x00004700
+#define    NV34TCL_TX_FORMAT_FORMAT_A16                                                        0x00003200
+#define    NV34TCL_TX_FORMAT_FORMAT_A16_RECT                                           0x00003500
 #define    NV34TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV                                    0x00004a00
 #define    NV34TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV                                    0x00004b00
 #define    NV34TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV                                       0x00004c00
@@ -4441,7 +6396,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_TX_FORMAT_BASE_SIZE_W_SHIFT                                          28
 #define   NV34TCL_TX_FORMAT_BASE_SIZE_W_MASK                                           0xf0000000
 #define  NV34TCL_TX_WRAP(x)                                                            (0x00001a08+((x)*32))
-#define  NV34TCL_TX_WRAP__SIZE                                                         0x00000004
+#define  NV34TCL_TX_WRAP__SIZE                                                         0x00000008
 #define   NV34TCL_TX_WRAP_S_SHIFT                                                      0
 #define   NV34TCL_TX_WRAP_S_MASK                                                       0x000000ff
 #define    NV34TCL_TX_WRAP_S_REPEAT                                                    0x00000001
@@ -4459,7 +6414,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_TX_WRAP_EXPAND_NORMAL_SHIFT                                          12
 #define   NV34TCL_TX_WRAP_EXPAND_NORMAL_MASK                                           0x0000f000
 #define   NV34TCL_TX_WRAP_R_SHIFT                                                      16
-#define   NV34TCL_TX_WRAP_R_MASK                                                       0x00ff0000
+#define   NV34TCL_TX_WRAP_R_MASK                                                       0x000f0000
 #define    NV34TCL_TX_WRAP_R_REPEAT                                                    0x00010000
 #define    NV34TCL_TX_WRAP_R_MIRRORED_REPEAT                                           0x00020000
 #define    NV34TCL_TX_WRAP_R_CLAMP_TO_EDGE                                             0x00030000
@@ -4476,7 +6431,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV34TCL_TX_WRAP_RCOMP_LEQUAL                                                        0x60000000
 #define    NV34TCL_TX_WRAP_RCOMP_ALWAYS                                                        0x70000000
 #define  NV34TCL_TX_ENABLE(x)                                                          (0x00001a0c+((x)*32))
-#define  NV34TCL_TX_ENABLE__SIZE                                                       0x00000004
+#define  NV34TCL_TX_ENABLE__SIZE                                                       0x00000008
 #define   NV34TCL_TX_ENABLE_ANISO_SHIFT                                                        4
 #define   NV34TCL_TX_ENABLE_ANISO_MASK                                                 0x00000030
 #define    NV34TCL_TX_ENABLE_ANISO_NONE                                                        0x00000000
@@ -4489,7 +6444,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK                                                0x3c000000
 #define   NV34TCL_TX_ENABLE_ENABLE                                                     (1 << 30)
 #define  NV34TCL_TX_SWIZZLE(x)                                                         (0x00001a10+((x)*32))
-#define  NV34TCL_TX_SWIZZLE__SIZE                                                      0x00000004
+#define  NV34TCL_TX_SWIZZLE__SIZE                                                      0x00000008
 #define   NV34TCL_TX_SWIZZLE_S0_X_SHIFT                                                        14
 #define   NV34TCL_TX_SWIZZLE_S0_X_MASK                                                 0x0000c000
 #define    NV34TCL_TX_SWIZZLE_S0_X_ZERO                                                        0x00000000
@@ -4537,7 +6492,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_TX_SWIZZLE_RECT_PITCH_SHIFT                                          16
 #define   NV34TCL_TX_SWIZZLE_RECT_PITCH_MASK                                           0xffff0000
 #define  NV34TCL_TX_FILTER(x)                                                          (0x00001a14+((x)*32))
-#define  NV34TCL_TX_FILTER__SIZE                                                       0x00000004
+#define  NV34TCL_TX_FILTER__SIZE                                                       0x00000008
 #define   NV34TCL_TX_FILTER_LOD_BIAS_SHIFT                                             8
 #define   NV34TCL_TX_FILTER_LOD_BIAS_MASK                                              0x00000f00
 #define   NV34TCL_TX_FILTER_MINIFY_SHIFT                                               16
@@ -4557,13 +6512,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_TX_FILTER_SIGNED_RED                                                 (1 << 30)
 #define   NV34TCL_TX_FILTER_SIGNED_ALPHA                                               (1 << 31)
 #define  NV34TCL_TX_NPOT_SIZE(x)                                                       (0x00001a18+((x)*32))
-#define  NV34TCL_TX_NPOT_SIZE__SIZE                                                    0x00000004
+#define  NV34TCL_TX_NPOT_SIZE__SIZE                                                    0x00000008
 #define   NV34TCL_TX_NPOT_SIZE_H_SHIFT                                                 0
 #define   NV34TCL_TX_NPOT_SIZE_H_MASK                                                  0x0000ffff
 #define   NV34TCL_TX_NPOT_SIZE_W_SHIFT                                                 16
 #define   NV34TCL_TX_NPOT_SIZE_W_MASK                                                  0xffff0000
 #define  NV34TCL_TX_BORDER_COLOR(x)                                                    (0x00001a1c+((x)*32))
-#define  NV34TCL_TX_BORDER_COLOR__SIZE                                                 0x00000004
+#define  NV34TCL_TX_BORDER_COLOR__SIZE                                                 0x00000008
 #define   NV34TCL_TX_BORDER_COLOR_B_SHIFT                                              0
 #define   NV34TCL_TX_BORDER_COLOR_B_MASK                                               0x000000ff
 #define   NV34TCL_TX_BORDER_COLOR_G_SHIFT                                              8
@@ -4584,6 +6539,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_FP_CONTROL_USES_KIL                                                  (1 <<  7)
 #define   NV34TCL_FP_CONTROL_USED_REGS_MINUS1_DIV2_SHIFT                               0
 #define   NV34TCL_FP_CONTROL_USED_REGS_MINUS1_DIV2_MASK                                        0x0000000f
+#define  NV34TCL_DEPTH_UNK17D8                                                         0x00001d78
+#define   NV34TCL_DEPTH_UNK17D8_CLAMP_SHIFT                                            4
+#define   NV34TCL_DEPTH_UNK17D8_CLAMP_MASK                                             0x000000f0
 #define  NV34TCL_MULTISAMPLE_CONTROL                                                   0x00001d7c
 #define   NV34TCL_MULTISAMPLE_CONTROL_ENABLE                                           (1 <<  0)
 #define   NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_ALPHA_TO_COVERAGE                         (1 <<  4)
@@ -4618,6 +6576,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV34TCL_BACK_MATERIAL_SHININESS__SIZE                                         0x00000006
 #define  NV34TCL_VTX_ATTR_1F(x)                                                                (0x00001e40+((x)*4))
 #define  NV34TCL_VTX_ATTR_1F__SIZE                                                     0x00000010
+#define  NV34TCL_ENGINE                                                                        0x00001e94
+#define   NV34TCL_ENGINE_FP                                                            (1 <<  0)
+#define   NV34TCL_ENGINE_VP                                                            (1 <<  1)
+#define   NV34TCL_ENGINE_FIXED                                                         (1 <<  2)
 #define  NV34TCL_VP_UPLOAD_FROM_ID                                                     0x00001e9c
 #define  NV34TCL_VP_START_FROM_ID                                                      0x00001ea0
 #define  NV34TCL_POINT_PARAMETERS(x)                                                   (0x00001ec0+((x)*4))
@@ -4628,10 +6590,17 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_POINT_SPRITE_ENABLE                                                  (1 <<  0)
 #define   NV34TCL_POINT_SPRITE_R_MODE_SHIFT                                            1
 #define   NV34TCL_POINT_SPRITE_R_MODE_MASK                                             0x00000006
-#define    NV34TCL_POINT_SPRITE_R_MODE_GL_ZERO                                         0x00000000
-#define    NV34TCL_POINT_SPRITE_R_MODE_GL_R                                            0x00000002
-#define    NV34TCL_POINT_SPRITE_R_MODE_GL_S                                            0x00000004
-#define   NV34TCL_POINT_SPRITE_COORD_REPLACE                                           (1 << 11)
+#define    NV34TCL_POINT_SPRITE_R_MODE_ZERO                                            0x00000000
+#define    NV34TCL_POINT_SPRITE_R_MODE_R                                               0x00000002
+#define    NV34TCL_POINT_SPRITE_R_MODE_S                                               0x00000004
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_0                                         (1 <<  8)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_1                                         (1 <<  9)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_2                                         (1 << 10)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_3                                         (1 << 11)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_4                                         (1 << 12)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_5                                         (1 << 13)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_6                                         (1 << 14)
+#define   NV34TCL_POINT_SPRITE_COORD_REPLACE_7                                         (1 << 15)
 #define  NV34TCL_VP_UPLOAD_CONST_ID                                                    0x00001efc
 #define  NV34TCL_VP_UPLOAD_CONST_X(x)                                                  (0x00001f00+((x)*16))
 #define  NV34TCL_VP_UPLOAD_CONST_X__SIZE                                               0x00000004
@@ -4645,30 +6614,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV34TCL_UNK1f80__SIZE                                                         0x00000010
 
 
-#define NV40_CONTEXT_SURFACES_2D                                                       0x00003062
-
-
-
-#define NV40_STRETCHED_IMAGE_FROM_CPU                                                  0x00003066
-
-
-
-#define NV40_TEXTURE_FROM_CPU                                                          0x0000307b
-
-
-
-#define NV40_SCALED_IMAGE_FROM_MEMORY                                                  0x00003089
-
-
-
-#define NV40_IMAGE_FROM_CPU                                                            0x0000308a
-
-
-
-#define NV40_SWIZZLED_SURFACE                                                          0x0000309e
-
-
-
 #define NV40TCL                                                                                0x00004097
 
 #define  NV40TCL_REF_CNT                                                               0x00000050
@@ -4717,6 +6662,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV40TCL_RT_FORMAT_COLOR_X8R8G8B8                                            0x00000005
 #define    NV40TCL_RT_FORMAT_COLOR_A8R8G8B8                                            0x00000008
 #define    NV40TCL_RT_FORMAT_COLOR_B8                                                  0x00000009
+#define    NV40TCL_RT_FORMAT_COLOR_UNKNOWN                                             0x0000000d
 #define    NV40TCL_RT_FORMAT_COLOR_X8B8G8R8                                            0x0000000f
 #define    NV40TCL_RT_FORMAT_COLOR_A8B8G8R8                                            0x00000010
 #define  NV40TCL_COLOR0_PITCH                                                          0x0000020c
@@ -4747,7 +6693,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV40TCL_ALPHA_TEST_FUNC_EQUAL                                                        0x00000202
 #define   NV40TCL_ALPHA_TEST_FUNC_LEQUAL                                               0x00000203
 #define   NV40TCL_ALPHA_TEST_FUNC_GREATER                                              0x00000204
-#define   NV40TCL_ALPHA_TEST_FUNC_GREATER                                              0x00000204
 #define   NV40TCL_ALPHA_TEST_FUNC_NOTEQUAL                                             0x00000205
 #define   NV40TCL_ALPHA_TEST_FUNC_GEQUAL                                               0x00000206
 #define   NV40TCL_ALPHA_TEST_FUNC_ALWAYS                                               0x00000207
@@ -4824,6 +6769,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV40TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA                                 0x80030000
 #define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA                       0x80040000
 #define  NV40TCL_BLEND_COLOR                                                           0x0000031c
+#define   NV40TCL_BLEND_COLOR_B_SHIFT                                                  0
+#define   NV40TCL_BLEND_COLOR_B_MASK                                                   0x000000ff
+#define   NV40TCL_BLEND_COLOR_G_SHIFT                                                  8
+#define   NV40TCL_BLEND_COLOR_G_MASK                                                   0x0000ff00
+#define   NV40TCL_BLEND_COLOR_R_SHIFT                                                  16
+#define   NV40TCL_BLEND_COLOR_R_MASK                                                   0x00ff0000
+#define   NV40TCL_BLEND_COLOR_A_SHIFT                                                  24
+#define   NV40TCL_BLEND_COLOR_A_MASK                                                   0xff000000
 #define  NV40TCL_BLEND_EQUATION                                                                0x00000320
 #define   NV40TCL_BLEND_EQUATION_RGB_SHIFT                                             0
 #define   NV40TCL_BLEND_EQUATION_RGB_MASK                                              0x0000ffff
@@ -4856,7 +6809,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL                                                0x00000202
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL                                       0x00000203
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
-#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL                                     0x00000205
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL                                       0x00000206
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS                                       0x00000207
@@ -4897,7 +6849,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                         0x00000202
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                                0x00000203
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
-#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                      0x00000205
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                                0x00000206
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                                0x00000207
@@ -5020,7 +6971,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV40TCL_DEPTH_FUNC_EQUAL                                                     0x00000202
 #define   NV40TCL_DEPTH_FUNC_LEQUAL                                                    0x00000203
 #define   NV40TCL_DEPTH_FUNC_GREATER                                                   0x00000204
-#define   NV40TCL_DEPTH_FUNC_GREATER                                                   0x00000204
 #define   NV40TCL_DEPTH_FUNC_NOTEQUAL                                                  0x00000205
 #define   NV40TCL_DEPTH_FUNC_GEQUAL                                                    0x00000206
 #define   NV40TCL_DEPTH_FUNC_ALWAYS                                                    0x00000207
@@ -5038,10 +6988,30 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV40TCL_VTX_ATTR_3I_Z__SIZE                                                   0x00000010
 #define   NV40TCL_VTX_ATTR_3I_Z_Z_SHIFT                                                        0
 #define   NV40TCL_VTX_ATTR_3I_Z_Z_MASK                                                 0x0000ffff
+#define  NV40TCL_TEX_FILTER_OPTIMIZATION                                               0x00000b00
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_SHIFT                              0
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_MASK                               0x0000001f
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_OFF                               0x00000000
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_HIGH_QUALITY                      0x00000004
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_QUALITY                           0x00000006
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_PERFORMANCE                       0x00000008
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_HIGH_PERFORMANCE                  0x00000018
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_SHIFT                           6
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_MASK                            0x000001c0
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_OFF                            0x00000000
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_HIGH_QUALITY                   0x000000c0
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_QUALITY                                0x000001c0
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_PERFORMANCE                    0x00000140
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_SHIFT                                        10
+#define   NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_MASK                                 0x00007c00
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_OFF                                 0x00000000
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_PARTIAL                             0x00002c00
+#define    NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_FULL                                        0x00007c00
 #define  NV40TCL_UNK0B40(x)                                                            (0x00000b40+((x)*4))
 #define  NV40TCL_UNK0B40__SIZE                                                         0x00000008
 #define  NV40TCL_VP_UPLOAD_INST(x)                                                     (0x00000b80+((x)*4))
 #define  NV40TCL_VP_UPLOAD_INST__SIZE                                                  0x00000004
+#define  NV40TCL_VERTEX_TWO_SIDE_ENABLE                                                        0x0000142c
 #define  NV40TCL_CLIP_PLANE_ENABLE                                                     0x00001478
 #define   NV40TCL_CLIP_PLANE_ENABLE_PLANE0                                             (1 <<  1)
 #define   NV40TCL_CLIP_PLANE_ENABLE_PLANE1                                             (1 <<  5)
@@ -5069,6 +7039,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV40TCL_VTXFMT_TYPE_SHIFT                                                    0
 #define   NV40TCL_VTXFMT_TYPE_MASK                                                     0x0000000f
 #define    NV40TCL_VTXFMT_TYPE_FLOAT                                                   0x00000002
+#define    NV40TCL_VTXFMT_TYPE_HALF                                                    0x00000003
 #define    NV40TCL_VTXFMT_TYPE_UBYTE                                                   0x00000004
 #define    NV40TCL_VTXFMT_TYPE_USHORT                                                  0x00000005
 #define   NV40TCL_VTXFMT_SIZE_SHIFT                                                    4
@@ -5194,7 +7165,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV40TCL_TEX_FORMAT_FORMAT_A8L8                                              0x00000b00
 #define    NV40TCL_TEX_FORMAT_FORMAT_Z24                                               0x00001000
 #define    NV40TCL_TEX_FORMAT_FORMAT_Z16                                               0x00001200
-#define    NV40TCL_TEX_FORMAT_FORMAT_A16                                                0x00001400
+#define    NV40TCL_TEX_FORMAT_FORMAT_A16                                               0x00001400
+#define    NV40TCL_TEX_FORMAT_FORMAT_A16L16                                            0x00001500
 #define    NV40TCL_TEX_FORMAT_FORMAT_HILO8                                             0x00001800
 #define    NV40TCL_TEX_FORMAT_FORMAT_RGBA16F                                           0x00001a00
 #define    NV40TCL_TEX_FORMAT_FORMAT_RGBA32F                                           0x00001b00
@@ -5210,7 +7182,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV40TCL_TEX_WRAP(x)                                                           (0x00001a08+((x)*32))
 #define  NV40TCL_TEX_WRAP__SIZE                                                                0x00000010
 #define   NV40TCL_TEX_WRAP_S_SHIFT                                                     0
-#define   NV40TCL_TEX_WRAP_S_MASK                                                      0x000000ff
+#define   NV40TCL_TEX_WRAP_S_MASK                                                      0x0000000f
 #define    NV40TCL_TEX_WRAP_S_REPEAT                                                   0x00000001
 #define    NV40TCL_TEX_WRAP_S_MIRRORED_REPEAT                                          0x00000002
 #define    NV40TCL_TEX_WRAP_S_CLAMP_TO_EDGE                                            0x00000003
@@ -5219,8 +7191,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV40TCL_TEX_WRAP_S_MIRROR_CLAMP_TO_EDGE                                     0x00000006
 #define    NV40TCL_TEX_WRAP_S_MIRROR_CLAMP_TO_BORDER                                   0x00000007
 #define    NV40TCL_TEX_WRAP_S_MIRROR_CLAMP                                             0x00000008
+#define   NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_SHIFT                         4
+#define   NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_MASK                          0x00000070
+#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_OFF                          0x00000000
+#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_QUALITY                      0x00000020
+#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_PERFORMANCE                  0x00000030
+#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_HIGH_PERFORMANCE             0x00000070
 #define   NV40TCL_TEX_WRAP_T_SHIFT                                                     8
-#define   NV40TCL_TEX_WRAP_T_MASK                                                      0x0000ff00
+#define   NV40TCL_TEX_WRAP_T_MASK                                                      0x00000f00
 #define    NV40TCL_TEX_WRAP_T_REPEAT                                                   0x00000100
 #define    NV40TCL_TEX_WRAP_T_MIRRORED_REPEAT                                          0x00000200
 #define    NV40TCL_TEX_WRAP_T_CLAMP_TO_EDGE                                            0x00000300
@@ -5229,8 +7207,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV40TCL_TEX_WRAP_T_MIRROR_CLAMP_TO_EDGE                                     0x00000600
 #define    NV40TCL_TEX_WRAP_T_MIRROR_CLAMP_TO_BORDER                                   0x00000700
 #define    NV40TCL_TEX_WRAP_T_MIRROR_CLAMP                                             0x00000800
+#define   NV40TCL_TEX_WRAP_EXPAND_NORMAL_SHIFT                                         12
+#define   NV40TCL_TEX_WRAP_EXPAND_NORMAL_MASK                                          0x0000f000
 #define   NV40TCL_TEX_WRAP_R_SHIFT                                                     16
-#define   NV40TCL_TEX_WRAP_R_MASK                                                      0x00ff0000
+#define   NV40TCL_TEX_WRAP_R_MASK                                                      0x000f0000
 #define    NV40TCL_TEX_WRAP_R_REPEAT                                                   0x00010000
 #define    NV40TCL_TEX_WRAP_R_MIRRORED_REPEAT                                          0x00020000
 #define    NV40TCL_TEX_WRAP_R_CLAMP_TO_EDGE                                            0x00030000
@@ -5239,6 +7219,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV40TCL_TEX_WRAP_R_MIRROR_CLAMP_TO_EDGE                                     0x00060000
 #define    NV40TCL_TEX_WRAP_R_MIRROR_CLAMP_TO_BORDER                                   0x00070000
 #define    NV40TCL_TEX_WRAP_R_MIRROR_CLAMP                                             0x00080000
+#define   NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_SHIFT                                 20
+#define   NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_MASK                                  0x00f00000
+#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_NONE                                 0x00000000
+#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_RED                                  0x00100000
+#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_GREEN                                        0x00200000
+#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_BLUE                                 0x00400000
+#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_ALL                                  0x00f00000
 #define   NV40TCL_TEX_WRAP_RCOMP_SHIFT                                                 28
 #define   NV40TCL_TEX_WRAP_RCOMP_MASK                                                  0xf0000000
 #define    NV40TCL_TEX_WRAP_RCOMP_NEVER                                                        0x00000000
@@ -5252,6 +7239,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV40TCL_TEX_ENABLE(x)                                                         (0x00001a0c+((x)*32))
 #define  NV40TCL_TEX_ENABLE__SIZE                                                      0x00000010
 #define   NV40TCL_TEX_ENABLE_ENABLE                                                    (1 << 31)
+#define   NV40TCL_TEX_ENABLE_MIPMAP_MIN_LOD_SHIFT                                      27
+#define   NV40TCL_TEX_ENABLE_MIPMAP_MIN_LOD_MASK                                       0x38000000
+#define   NV40TCL_TEX_ENABLE_MIPMAP_MAX_LOD_SHIFT                                      15
+#define   NV40TCL_TEX_ENABLE_MIPMAP_MAX_LOD_MASK                                       0x00038000
 #define   NV40TCL_TEX_ENABLE_ANISO_SHIFT                                               4
 #define   NV40TCL_TEX_ENABLE_ANISO_MASK                                                        0x000000f0
 #define    NV40TCL_TEX_ENABLE_ANISO_NONE                                               0x00000000
@@ -5357,6 +7348,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV40TCL_MULTISAMPLE_CONTROL                                                   0x00001d7c
 #define  NV40TCL_CLEAR_VALUE_DEPTH                                                     0x00001d8c
 #define  NV40TCL_CLEAR_VALUE_COLOR                                                     0x00001d90
+#define   NV40TCL_CLEAR_VALUE_COLOR_B_SHIFT                                            0
+#define   NV40TCL_CLEAR_VALUE_COLOR_B_MASK                                             0x000000ff
+#define   NV40TCL_CLEAR_VALUE_COLOR_G_SHIFT                                            8
+#define   NV40TCL_CLEAR_VALUE_COLOR_G_MASK                                             0x0000ff00
+#define   NV40TCL_CLEAR_VALUE_COLOR_R_SHIFT                                            16
+#define   NV40TCL_CLEAR_VALUE_COLOR_R_MASK                                             0x00ff0000
+#define   NV40TCL_CLEAR_VALUE_COLOR_A_SHIFT                                            24
+#define   NV40TCL_CLEAR_VALUE_COLOR_A_MASK                                             0xff000000
 #define  NV40TCL_CLEAR_BUFFERS                                                         0x00001d94
 #define   NV40TCL_CLEAR_BUFFERS_COLOR_A                                                        (1 <<  7)
 #define   NV40TCL_CLEAR_BUFFERS_COLOR_B                                                        (1 <<  6)
@@ -5376,6 +7375,20 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV40TCL_VP_START_FROM_ID                                                      0x00001ea0
 #define  NV40TCL_POINT_SIZE                                                            0x00001ee0
 #define  NV40TCL_POINT_SPRITE                                                          0x00001ee8
+#define   NV40TCL_POINT_SPRITE_ENABLE                                                  (1 <<  0)
+#define   NV40TCL_POINT_SPRITE_R_MODE_SHIFT                                            1
+#define   NV40TCL_POINT_SPRITE_R_MODE_MASK                                             0x00000006
+#define    NV40TCL_POINT_SPRITE_R_MODE_ZERO                                            0x00000000
+#define    NV40TCL_POINT_SPRITE_R_MODE_R                                               0x00000002
+#define    NV40TCL_POINT_SPRITE_R_MODE_S                                               0x00000004
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_0                                         (1 <<  8)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_1                                         (1 <<  9)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_2                                         (1 << 10)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_3                                         (1 << 11)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_4                                         (1 << 12)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_5                                         (1 << 13)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_6                                         (1 << 14)
+#define   NV40TCL_POINT_SPRITE_COORD_REPLACE_7                                         (1 << 15)
 #define  NV40TCL_VP_UPLOAD_CONST_ID                                                    0x00001efc
 #define  NV40TCL_VP_UPLOAD_CONST_X(x)                                                  (0x00001f00+((x)*16))
 #define  NV40TCL_VP_UPLOAD_CONST_X__SIZE                                               0x00000004
@@ -5398,36 +7411,156 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define  NV50_2D_NOP                                                                   0x00000100
 #define  NV50_2D_NOTIFY                                                                        0x00000104
+#define  NV50_2D_SERIALIZE                                                             0x00000110
 #define  NV50_2D_DMA_NOTIFY                                                            0x00000180
-#define  NV50_2D_DMA_IN_MEMORY0                                                                0x00000184
-#define  NV50_2D_DMA_IN_MEMORY1                                                                0x00000188
-#define  NV50_2D_DMA_IN_MEMORY2                                                                0x0000018c
+#define  NV50_2D_DMA_DST                                                               0x00000184
+#define  NV50_2D_DMA_SRC                                                               0x00000188
+#define  NV50_2D_DMA_COND                                                              0x0000018c
 #define  NV50_2D_DST_FORMAT                                                            0x00000200
-#define   NV50_2D_DST_FORMAT_32BPP                                                     0x000000cf
-#define   NV50_2D_DST_FORMAT_24BPP                                                     0x000000e6
-#define   NV50_2D_DST_FORMAT_16BPP                                                     0x000000e8
-#define   NV50_2D_DST_FORMAT_8BPP                                                      0x000000f3
-#define   NV50_2D_DST_FORMAT_15BPP                                                     0x000000f8
+#define   NV50_2D_DST_FORMAT_R32G32B32A32_FLOAT                                                0x000000c0
+#define   NV50_2D_DST_FORMAT_R32G32B32A32_SINT                                         0x000000c1
+#define   NV50_2D_DST_FORMAT_R32G32B32A32_UINT                                         0x000000c2
+#define   NV50_2D_DST_FORMAT_R32G32B32X32_FLOAT                                                0x000000c3
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_UNORM                                                0x000000c6
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_SNORM                                                0x000000c7
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_SINT                                         0x000000c8
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_UINT                                         0x000000c9
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_FLOAT                                                0x000000ca
+#define   NV50_2D_DST_FORMAT_R32G32_FLOAT                                              0x000000cb
+#define   NV50_2D_DST_FORMAT_R32G32_SINT                                               0x000000cc
+#define   NV50_2D_DST_FORMAT_R32G32_UINT                                               0x000000cd
+#define   NV50_2D_DST_FORMAT_R16G16B16X16_FLOAT                                                0x000000ce
+#define   NV50_2D_DST_FORMAT_A8R8G8B8_UNORM                                            0x000000cf
+#define   NV50_2D_DST_FORMAT_A8R8G8B8_SRGB                                             0x000000d0
+#define   NV50_2D_DST_FORMAT_A2B10G10R10_UNORM                                         0x000000d1
+#define   NV50_2D_DST_FORMAT_A2B10G10R10_UINT                                          0x000000d2
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_UNORM                                            0x000000d5
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_SRGB                                             0x000000d6
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_SNORM                                            0x000000d7
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_SINT                                             0x000000d8
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_UINT                                             0x000000d9
+#define   NV50_2D_DST_FORMAT_R16G16_UNORM                                              0x000000da
+#define   NV50_2D_DST_FORMAT_R16G16_SNORM                                              0x000000db
+#define   NV50_2D_DST_FORMAT_R16G16_SINT                                               0x000000dc
+#define   NV50_2D_DST_FORMAT_R16G16_UINT                                               0x000000dd
+#define   NV50_2D_DST_FORMAT_R16G16_FLOAT                                              0x000000de
+#define   NV50_2D_DST_FORMAT_A2R10G10B10_UNORM                                         0x000000df
+#define   NV50_2D_DST_FORMAT_B10G11R11_FLOAT                                           0x000000e0
+#define   NV50_2D_DST_FORMAT_R32_FLOAT                                                 0x000000e5
+#define   NV50_2D_DST_FORMAT_X8R8G8B8_UNORM                                            0x000000e6
+#define   NV50_2D_DST_FORMAT_X8R8G8B8_SRGB                                             0x000000e7
+#define   NV50_2D_DST_FORMAT_R5G6B5_UNORM                                              0x000000e8
+#define   NV50_2D_DST_FORMAT_A1R5G5B5_UNORM                                            0x000000e9
+#define   NV50_2D_DST_FORMAT_R8G8_UNORM                                                        0x000000ea
+#define   NV50_2D_DST_FORMAT_R8G8_SNORM                                                        0x000000eb
+#define   NV50_2D_DST_FORMAT_R8G8_SINT                                                 0x000000ec
+#define   NV50_2D_DST_FORMAT_R8G8_UINT                                                 0x000000ed
+#define   NV50_2D_DST_FORMAT_R16_UNORM                                                 0x000000ee
+#define   NV50_2D_DST_FORMAT_R16_SNORM                                                 0x000000ef
+#define   NV50_2D_DST_FORMAT_R16_SINT                                                  0x000000f0
+#define   NV50_2D_DST_FORMAT_R16_UINT                                                  0x000000f1
+#define   NV50_2D_DST_FORMAT_R16_FLOAT                                                 0x000000f2
+#define   NV50_2D_DST_FORMAT_R8_UNORM                                                  0x000000f3
+#define   NV50_2D_DST_FORMAT_R8_SNORM                                                  0x000000f4
+#define   NV50_2D_DST_FORMAT_R8_SINT                                                   0x000000f5
+#define   NV50_2D_DST_FORMAT_R8_UINT                                                   0x000000f6
+#define   NV50_2D_DST_FORMAT_A8_UNORM                                                  0x000000f7
+#define   NV50_2D_DST_FORMAT_X1R5G5B5_UNORM                                            0x000000f8
+#define   NV50_2D_DST_FORMAT_X8B8G8R8_UNORM                                            0x000000f9
+#define   NV50_2D_DST_FORMAT_X8B8G8R8_SRGB                                             0x000000fa
+#define  NV50_2D_DST_LINEAR                                                            0x00000204
+#define  NV50_2D_DST_TILE_MODE                                                         0x00000208
+#define  NV50_2D_DST_DEPTH                                                             0x0000020c
+#define  NV50_2D_DST_LAYER                                                             0x00000210
 #define  NV50_2D_DST_PITCH                                                             0x00000214
 #define  NV50_2D_DST_WIDTH                                                             0x00000218
 #define  NV50_2D_DST_HEIGHT                                                            0x0000021c
 #define  NV50_2D_DST_ADDRESS_HIGH                                                      0x00000220
 #define  NV50_2D_DST_ADDRESS_LOW                                                       0x00000224
 #define  NV50_2D_SRC_FORMAT                                                            0x00000230
-#define   NV50_2D_SRC_FORMAT_32BPP                                                     0x000000cf
-#define   NV50_2D_SRC_FORMAT_24BPP                                                     0x000000e6
-#define   NV50_2D_SRC_FORMAT_16BPP                                                     0x000000e8
-#define   NV50_2D_SRC_FORMAT_8BPP                                                      0x000000f3
-#define   NV50_2D_SRC_FORMAT_15BPP                                                     0x000000f8
+#define   NV50_2D_SRC_FORMAT_R32G32B32A32_FLOAT                                                0x000000c0
+#define   NV50_2D_SRC_FORMAT_R32G32B32A32_SINT                                         0x000000c1
+#define   NV50_2D_SRC_FORMAT_R32G32B32A32_UINT                                         0x000000c2
+#define   NV50_2D_SRC_FORMAT_R32G32B32X32_FLOAT                                                0x000000c3
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_UNORM                                                0x000000c6
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_SNORM                                                0x000000c7
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_SINT                                         0x000000c8
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_UINT                                         0x000000c9
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_FLOAT                                                0x000000ca
+#define   NV50_2D_SRC_FORMAT_R32G32_FLOAT                                              0x000000cb
+#define   NV50_2D_SRC_FORMAT_R32G32_SINT                                               0x000000cc
+#define   NV50_2D_SRC_FORMAT_R32G32_UINT                                               0x000000cd
+#define   NV50_2D_SRC_FORMAT_R16G16B16X16_FLOAT                                                0x000000ce
+#define   NV50_2D_SRC_FORMAT_A8R8G8B8_UNORM                                            0x000000cf
+#define   NV50_2D_SRC_FORMAT_A8R8G8B8_SRGB                                             0x000000d0
+#define   NV50_2D_SRC_FORMAT_A2B10G10R10_UNORM                                         0x000000d1
+#define   NV50_2D_SRC_FORMAT_A2B10G10R10_UINT                                          0x000000d2
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UNORM                                            0x000000d5
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SRGB                                             0x000000d6
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SNORM                                            0x000000d7
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SINT                                             0x000000d8
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UINT                                             0x000000d9
+#define   NV50_2D_SRC_FORMAT_R16G16_UNORM                                              0x000000da
+#define   NV50_2D_SRC_FORMAT_R16G16_SNORM                                              0x000000db
+#define   NV50_2D_SRC_FORMAT_R16G16_SINT                                               0x000000dc
+#define   NV50_2D_SRC_FORMAT_R16G16_UINT                                               0x000000dd
+#define   NV50_2D_SRC_FORMAT_R16G16_FLOAT                                              0x000000de
+#define   NV50_2D_SRC_FORMAT_A2R10G10B10_UNORM                                         0x000000df
+#define   NV50_2D_SRC_FORMAT_B10G11R11_FLOAT                                           0x000000e0
+#define   NV50_2D_SRC_FORMAT_R32_FLOAT                                                 0x000000e5
+#define   NV50_2D_SRC_FORMAT_X8R8G8B8_UNORM                                            0x000000e6
+#define   NV50_2D_SRC_FORMAT_X8R8G8B8_SRGB                                             0x000000e7
+#define   NV50_2D_SRC_FORMAT_R5G6B5_UNORM                                              0x000000e8
+#define   NV50_2D_SRC_FORMAT_A1R5G5B5_UNORM                                            0x000000e9
+#define   NV50_2D_SRC_FORMAT_R8G8_UNORM                                                        0x000000ea
+#define   NV50_2D_SRC_FORMAT_R8G8_SNORM                                                        0x000000eb
+#define   NV50_2D_SRC_FORMAT_R8G8_SINT                                                 0x000000ec
+#define   NV50_2D_SRC_FORMAT_R8G8_UINT                                                 0x000000ed
+#define   NV50_2D_SRC_FORMAT_R16_UNORM                                                 0x000000ee
+#define   NV50_2D_SRC_FORMAT_R16_SNORM                                                 0x000000ef
+#define   NV50_2D_SRC_FORMAT_R16_SINT                                                  0x000000f0
+#define   NV50_2D_SRC_FORMAT_R16_UINT                                                  0x000000f1
+#define   NV50_2D_SRC_FORMAT_R16_FLOAT                                                 0x000000f2
+#define   NV50_2D_SRC_FORMAT_R8_UNORM                                                  0x000000f3
+#define   NV50_2D_SRC_FORMAT_R8_SNORM                                                  0x000000f4
+#define   NV50_2D_SRC_FORMAT_R8_SINT                                                   0x000000f5
+#define   NV50_2D_SRC_FORMAT_R8_UINT                                                   0x000000f6
+#define   NV50_2D_SRC_FORMAT_A8_UNORM                                                  0x000000f7
+#define   NV50_2D_SRC_FORMAT_X1R5G5B5_UNORM                                            0x000000f8
+#define   NV50_2D_SRC_FORMAT_X8B8G8R8_UNORM                                            0x000000f9
+#define   NV50_2D_SRC_FORMAT_X8B8G8R8_SRGB                                             0x000000fa
+#define  NV50_2D_SRC_LINEAR                                                            0x00000234
+#define  NV50_2D_SRC_TILE_MODE                                                         0x00000238
+#define  NV50_2D_SRC_DEPTH                                                             0x0000023c
+#define  NV50_2D_SRC_LAYER                                                             0x00000240
 #define  NV50_2D_SRC_PITCH                                                             0x00000244
 #define  NV50_2D_SRC_WIDTH                                                             0x00000248
 #define  NV50_2D_SRC_HEIGHT                                                            0x0000024c
 #define  NV50_2D_SRC_ADDRESS_HIGH                                                      0x00000250
 #define  NV50_2D_SRC_ADDRESS_LOW                                                       0x00000254
+#define  NV50_2D_COND_ADDRESS_HIGH                                                     0x00000264
+#define  NV50_2D_COND_ADDRESS_LOW                                                      0x00000268
+#define  NV50_2D_COND_MODE                                                             0x0000026c
+#define   NV50_2D_COND_MODE_NEVER                                                      0x00000000
+#define   NV50_2D_COND_MODE_ALWAYS                                                     0x00000001
+#define   NV50_2D_COND_MODE_RES                                                                0x00000002
+#define   NV50_2D_COND_MODE_NOT_RES_AND_NOT_ID                                         0x00000003
+#define   NV50_2D_COND_MODE_RES_OR_ID                                                  0x00000004
 #define  NV50_2D_CLIP_X                                                                        0x00000280
 #define  NV50_2D_CLIP_Y                                                                        0x00000284
-#define  NV50_2D_CLIP_Z                                                                        0x00000288
-#define  NV50_2D_CLIP_W                                                                        0x0000028c
+#define  NV50_2D_CLIP_W                                                                        0x00000288
+#define  NV50_2D_CLIP_H                                                                        0x0000028c
+#define  NV50_2D_CLIP_ENABLE                                                           0x00000290
+#define  NV50_2D_COLOR_KEY_FORMAT                                                      0x00000294
+#define   NV50_2D_COLOR_KEY_FORMAT_16BPP                                               0x00000000
+#define   NV50_2D_COLOR_KEY_FORMAT_15BPP                                               0x00000001
+#define   NV50_2D_COLOR_KEY_FORMAT_24BPP                                               0x00000002
+#define   NV50_2D_COLOR_KEY_FORMAT_30BPP                                               0x00000003
+#define   NV50_2D_COLOR_KEY_FORMAT_8BPP                                                        0x00000004
+#define   NV50_2D_COLOR_KEY_FORMAT_16BPP2                                              0x00000005
+#define   NV50_2D_COLOR_KEY_FORMAT_32BPP                                               0x00000006
+#define  NV50_2D_COLOR_KEY                                                             0x00000298
+#define  NV50_2D_COLOR_KEY_ENABLE                                                      0x0000029c
 #define  NV50_2D_ROP                                                                   0x000002a0
 #define  NV50_2D_OPERATION                                                             0x000002ac
 #define   NV50_2D_OPERATION_SRCCOPY_AND                                                        0x00000000
@@ -5445,75 +7578,249 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50_2D_PATTERN_COLOR__SIZE                                                   0x00000002
 #define  NV50_2D_PATTERN_BITMAP(x)                                                     (0x000002f8+((x)*4))
 #define  NV50_2D_PATTERN_BITMAP__SIZE                                                  0x00000002
-#define  NV50_2D_RECT_FORMAT                                                           0x00000584
-#define   NV50_2D_RECT_FORMAT_32BPP                                                    0x000000cf
-#define   NV50_2D_RECT_FORMAT_24BPP                                                    0x000000e6
-#define   NV50_2D_RECT_FORMAT_16BPP                                                    0x000000e8
-#define   NV50_2D_RECT_FORMAT_8BPP                                                     0x000000f3
-#define   NV50_2D_RECT_FORMAT_15BPP                                                    0x000000f8
-#define  NV50_2D_RECT_COLOR                                                            0x00000588
-#define  NV50_2D_RECT_X1                                                               0x00000600
-#define  NV50_2D_RECT_Y1                                                               0x00000604
-#define  NV50_2D_RECT_X2                                                               0x00000608
-#define  NV50_2D_RECT_Y2                                                               0x0000060c
-#define  NV50_2D_SIFC_UNK0800                                                          0x00000800
+#define  NV50_2D_DRAW_SHAPE                                                            0x00000580
+#define   NV50_2D_DRAW_SHAPE_POINTS                                                    0x00000000
+#define   NV50_2D_DRAW_SHAPE_LINES                                                     0x00000001
+#define   NV50_2D_DRAW_SHAPE_LINE_STRIP                                                        0x00000002
+#define   NV50_2D_DRAW_SHAPE_TRIANGLES                                                 0x00000003
+#define   NV50_2D_DRAW_SHAPE_RECTANGLES                                                        0x00000004
+#define  NV50_2D_DRAW_COLOR_FORMAT                                                     0x00000584
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_FLOAT                                 0x000000c0
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_SINT                                  0x000000c1
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_UINT                                  0x000000c2
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32X32_FLOAT                                 0x000000c3
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_UNORM                                 0x000000c6
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_SNORM                                 0x000000c7
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_SINT                                  0x000000c8
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_UINT                                  0x000000c9
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_FLOAT                                 0x000000ca
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_FLOAT                                       0x000000cb
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_SINT                                                0x000000cc
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_UINT                                                0x000000cd
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16X16_FLOAT                                 0x000000ce
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8R8G8B8_UNORM                                     0x000000cf
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8R8G8B8_SRGB                                      0x000000d0
+#define   NV50_2D_DRAW_COLOR_FORMAT_A2B10G10R10_UNORM                                  0x000000d1
+#define   NV50_2D_DRAW_COLOR_FORMAT_A2B10G10R10_UINT                                   0x000000d2
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_UNORM                                     0x000000d5
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SRGB                                      0x000000d6
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SNORM                                     0x000000d7
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SINT                                      0x000000d8
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_UINT                                      0x000000d9
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_UNORM                                       0x000000da
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_SNORM                                       0x000000db
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_SINT                                                0x000000dc
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_UINT                                                0x000000dd
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_FLOAT                                       0x000000de
+#define   NV50_2D_DRAW_COLOR_FORMAT_A2R10G10B10_UNORM                                  0x000000df
+#define   NV50_2D_DRAW_COLOR_FORMAT_B10G11R11_FLOAT                                    0x000000e0
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32_FLOAT                                          0x000000e5
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8R8G8B8_UNORM                                     0x000000e6
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8R8G8B8_SRGB                                      0x000000e7
+#define   NV50_2D_DRAW_COLOR_FORMAT_R5G6B5_UNORM                                       0x000000e8
+#define   NV50_2D_DRAW_COLOR_FORMAT_A1R5G5B5_UNORM                                     0x000000e9
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_UNORM                                         0x000000ea
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_SNORM                                         0x000000eb
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_SINT                                          0x000000ec
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_UINT                                          0x000000ed
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_UNORM                                          0x000000ee
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_SNORM                                          0x000000ef
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_SINT                                           0x000000f0
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_UINT                                           0x000000f1
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_FLOAT                                          0x000000f2
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_UNORM                                           0x000000f3
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_SNORM                                           0x000000f4
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_SINT                                            0x000000f5
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_UINT                                            0x000000f6
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8_UNORM                                           0x000000f7
+#define   NV50_2D_DRAW_COLOR_FORMAT_X1R5G5B5_UNORM                                     0x000000f8
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8B8G8R8_UNORM                                     0x000000f9
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8B8G8R8_SRGB                                      0x000000fa
+#define  NV50_2D_DRAW_COLOR                                                            0x00000588
+#define  NV50_2D_DRAW_POINT16                                                          0x000005e0
+#define   NV50_2D_DRAW_POINT16_X_SHIFT                                                 0
+#define   NV50_2D_DRAW_POINT16_X_MASK                                                  0x0000ffff
+#define   NV50_2D_DRAW_POINT16_Y_SHIFT                                                 16
+#define   NV50_2D_DRAW_POINT16_Y_MASK                                                  0xffff0000
+#define  NV50_2D_DRAW_POINT32_X(x)                                                     (0x00000600+((x)*8))
+#define  NV50_2D_DRAW_POINT32_X__SIZE                                                  0x00000040
+#define  NV50_2D_DRAW_POINT32_Y(x)                                                     (0x00000604+((x)*8))
+#define  NV50_2D_DRAW_POINT32_Y__SIZE                                                  0x00000040
+#define  NV50_2D_SIFC_BITMAP_ENABLE                                                    0x00000800
 #define  NV50_2D_SIFC_FORMAT                                                           0x00000804
-#define   NV50_2D_SIFC_FORMAT_32BPP                                                    0x000000cf
-#define   NV50_2D_SIFC_FORMAT_24BPP                                                    0x000000e6
-#define   NV50_2D_SIFC_FORMAT_16BPP                                                    0x000000e8
-#define   NV50_2D_SIFC_FORMAT_8BPP                                                     0x000000f3
-#define   NV50_2D_SIFC_FORMAT_15BPP                                                    0x000000f8
+#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_FLOAT                                       0x000000c0
+#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_SINT                                                0x000000c1
+#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_UINT                                                0x000000c2
+#define   NV50_2D_SIFC_FORMAT_R32G32B32X32_FLOAT                                       0x000000c3
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_UNORM                                       0x000000c6
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_SNORM                                       0x000000c7
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_SINT                                                0x000000c8
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_UINT                                                0x000000c9
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_FLOAT                                       0x000000ca
+#define   NV50_2D_SIFC_FORMAT_R32G32_FLOAT                                             0x000000cb
+#define   NV50_2D_SIFC_FORMAT_R32G32_SINT                                              0x000000cc
+#define   NV50_2D_SIFC_FORMAT_R32G32_UINT                                              0x000000cd
+#define   NV50_2D_SIFC_FORMAT_R16G16B16X16_FLOAT                                       0x000000ce
+#define   NV50_2D_SIFC_FORMAT_A8R8G8B8_UNORM                                           0x000000cf
+#define   NV50_2D_SIFC_FORMAT_A8R8G8B8_SRGB                                            0x000000d0
+#define   NV50_2D_SIFC_FORMAT_A2B10G10R10_UNORM                                                0x000000d1
+#define   NV50_2D_SIFC_FORMAT_A2B10G10R10_UINT                                         0x000000d2
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UNORM                                           0x000000d5
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SRGB                                            0x000000d6
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SNORM                                           0x000000d7
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SINT                                            0x000000d8
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UINT                                            0x000000d9
+#define   NV50_2D_SIFC_FORMAT_R16G16_UNORM                                             0x000000da
+#define   NV50_2D_SIFC_FORMAT_R16G16_SNORM                                             0x000000db
+#define   NV50_2D_SIFC_FORMAT_R16G16_SINT                                              0x000000dc
+#define   NV50_2D_SIFC_FORMAT_R16G16_UINT                                              0x000000dd
+#define   NV50_2D_SIFC_FORMAT_R16G16_FLOAT                                             0x000000de
+#define   NV50_2D_SIFC_FORMAT_A2R10G10B10_UNORM                                                0x000000df
+#define   NV50_2D_SIFC_FORMAT_B10G11R11_FLOAT                                          0x000000e0
+#define   NV50_2D_SIFC_FORMAT_R32_FLOAT                                                        0x000000e5
+#define   NV50_2D_SIFC_FORMAT_X8R8G8B8_UNORM                                           0x000000e6
+#define   NV50_2D_SIFC_FORMAT_X8R8G8B8_SRGB                                            0x000000e7
+#define   NV50_2D_SIFC_FORMAT_R5G6B5_UNORM                                             0x000000e8
+#define   NV50_2D_SIFC_FORMAT_A1R5G5B5_UNORM                                           0x000000e9
+#define   NV50_2D_SIFC_FORMAT_R8G8_UNORM                                               0x000000ea
+#define   NV50_2D_SIFC_FORMAT_R8G8_SNORM                                               0x000000eb
+#define   NV50_2D_SIFC_FORMAT_R8G8_SINT                                                        0x000000ec
+#define   NV50_2D_SIFC_FORMAT_R8G8_UINT                                                        0x000000ed
+#define   NV50_2D_SIFC_FORMAT_R16_UNORM                                                        0x000000ee
+#define   NV50_2D_SIFC_FORMAT_R16_SNORM                                                        0x000000ef
+#define   NV50_2D_SIFC_FORMAT_R16_SINT                                                 0x000000f0
+#define   NV50_2D_SIFC_FORMAT_R16_UINT                                                 0x000000f1
+#define   NV50_2D_SIFC_FORMAT_R16_FLOAT                                                        0x000000f2
+#define   NV50_2D_SIFC_FORMAT_R8_UNORM                                                 0x000000f3
+#define   NV50_2D_SIFC_FORMAT_R8_SNORM                                                 0x000000f4
+#define   NV50_2D_SIFC_FORMAT_R8_SINT                                                  0x000000f5
+#define   NV50_2D_SIFC_FORMAT_R8_UINT                                                  0x000000f6
+#define   NV50_2D_SIFC_FORMAT_A8_UNORM                                                 0x000000f7
+#define   NV50_2D_SIFC_FORMAT_X1R5G5B5_UNORM                                           0x000000f8
+#define   NV50_2D_SIFC_FORMAT_X8B8G8R8_UNORM                                           0x000000f9
+#define   NV50_2D_SIFC_FORMAT_X8B8G8R8_SRGB                                            0x000000fa
+#define  NV50_2D_SIFC_BITMAP_UNK808                                                    0x00000808
+#define  NV50_2D_SIFC_BITMAP_LSB_FIRST                                                 0x0000080c
+#define  NV50_2D_SIFC_BITMAP_LINE_PACK_MODE                                            0x00000810
+#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_PACKED                                    0x00000000
+#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_BYTE                                        0x00000001
+#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_WORD                                        0x00000002
+#define  NV50_2D_SIFC_BITMAP_COLOR_BIT0                                                        0x00000814
+#define  NV50_2D_SIFC_BITMAP_COLOR_BIT1                                                        0x00000818
+#define  NV50_2D_SIFC_BITMAP_WRITE_BIT0_ENABLE                                         0x0000081c
 #define  NV50_2D_SIFC_WIDTH                                                            0x00000838
 #define  NV50_2D_SIFC_HEIGHT                                                           0x0000083c
-#define  NV50_2D_SIFC_SCALE_UNK0840                                                    0x00000840
-#define  NV50_2D_SIFC_SCALE_UNK0844                                                    0x00000844
-#define  NV50_2D_SIFC_SCALE_UNK0848                                                    0x00000848
-#define  NV50_2D_SIFC_SCALE_UNK084C                                                    0x0000084c
-#define  NV50_2D_SIFC_UNK0850                                                          0x00000850
-#define  NV50_2D_SIFC_DST_X                                                            0x00000854
-#define  NV50_2D_SIFC_UNK0858                                                          0x00000858
-#define  NV50_2D_SIFC_DST_Y                                                            0x0000085c
+#define  NV50_2D_SIFC_DX_DU_FRACT                                                      0x00000840
+#define  NV50_2D_SIFC_DX_DU_INT                                                                0x00000844
+#define  NV50_2D_SIFC_DY_DV_FRACT                                                      0x00000848
+#define  NV50_2D_SIFC_DY_DV_INT                                                                0x0000084c
+#define  NV50_2D_SIFC_DST_X_FRACT                                                      0x00000850
+#define  NV50_2D_SIFC_DST_X_INT                                                                0x00000854
+#define  NV50_2D_SIFC_DST_Y_FRACT                                                      0x00000858
+#define  NV50_2D_SIFC_DST_Y_INT                                                                0x0000085c
 #define  NV50_2D_SIFC_DATA                                                             0x00000860
 #define  NV50_2D_BLIT_DST_X                                                            0x000008b0
 #define  NV50_2D_BLIT_DST_Y                                                            0x000008b4
 #define  NV50_2D_BLIT_DST_W                                                            0x000008b8
 #define  NV50_2D_BLIT_DST_H                                                            0x000008bc
-#define  NV50_2D_BLIT_SRC_X                                                            0x000008d4
-#define  NV50_2D_BLIT_SRC_Y                                                            0x000008dc
-
-
-#define NV50_MEMORY_TO_MEMORY_FORMAT                                                   0x00005039
-
-#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH                                   0x00000238
-#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH                                  0x0000023c
+#define  NV50_2D_BLIT_DU_DX_FRACT                                                      0x000008c0
+#define  NV50_2D_BLIT_DU_DX_INT                                                                0x000008c4
+#define  NV50_2D_BLIT_DV_DY_FRACT                                                      0x000008c8
+#define  NV50_2D_BLIT_DV_DY_INT                                                                0x000008cc
+#define  NV50_2D_BLIT_SRC_X_FRACT                                                      0x000008d0
+#define  NV50_2D_BLIT_SRC_X_INT                                                                0x000008d4
+#define  NV50_2D_BLIT_SRC_Y_FRACT                                                      0x000008d8
+#define  NV50_2D_BLIT_SRC_Y_INT                                                                0x000008dc
 
 
 #define NV50TCL                                                                                0x00005097
 
 #define  NV50TCL_NOP                                                                   0x00000100
 #define  NV50TCL_NOTIFY                                                                        0x00000104
+#define  NV50TCL_SERIALIZE                                                             0x00000110
 #define  NV50TCL_DMA_NOTIFY                                                            0x00000180
-#define  NV50TCL_DMA_UNK0(x)                                                           (0x00000184+((x)*4))
-#define  NV50TCL_DMA_UNK0__SIZE                                                                0x0000000b
-#define  NV50TCL_DMA_UNK1(x)                                                           (0x000001c0+((x)*4))
-#define  NV50TCL_DMA_UNK1__SIZE                                                                0x00000008
+#define  NV50TCL_DMA_ZETA                                                              0x00000184
+#define  NV50TCL_DMA_QUERY                                                             0x00000188
+#define  NV50TCL_DMA_VTXBUF0                                                           0x0000018c
+#define  NV50TCL_DMA_LOCAL                                                             0x00000190
+#define  NV50TCL_DMA_STACK                                                             0x00000194
+#define  NV50TCL_DMA_CODE_CB                                                           0x00000198
+#define  NV50TCL_DMA_TSC                                                               0x0000019c
+#define  NV50TCL_DMA_TIC                                                               0x000001a0
+#define  NV50TCL_DMA_TEXTURE                                                           0x000001a4
+#define  NV50TCL_DMA_STRMOUT                                                           0x000001a8
+#define  NV50TCL_DMA_CLIPID                                                            0x000001ac
+#define  NV50TCL_DMA_COLOR(x)                                                          (0x000001c0+((x)*4))
+#define  NV50TCL_DMA_COLOR__SIZE                                                       0x00000008
 #define  NV50TCL_RT_ADDRESS_HIGH(x)                                                    (0x00000200+((x)*32))
 #define  NV50TCL_RT_ADDRESS_HIGH__SIZE                                                 0x00000008
 #define  NV50TCL_RT_ADDRESS_LOW(x)                                                     (0x00000204+((x)*32))
 #define  NV50TCL_RT_ADDRESS_LOW__SIZE                                                  0x00000008
 #define  NV50TCL_RT_FORMAT(x)                                                          (0x00000208+((x)*32))
 #define  NV50TCL_RT_FORMAT__SIZE                                                       0x00000008
-#define   NV50TCL_RT_FORMAT_32BPP                                                      0x000000cf
-#define   NV50TCL_RT_FORMAT_24BPP                                                      0x000000e6
-#define   NV50TCL_RT_FORMAT_16BPP                                                      0x000000e8
-#define   NV50TCL_RT_FORMAT_8BPP                                                       0x000000f3
-#define   NV50TCL_RT_FORMAT_15BPP                                                      0x000000f8
-#define  NV50TCL_RT_TILE_UNK(x)                                                                (0x0000020c+((x)*32))
-#define  NV50TCL_RT_TILE_UNK__SIZE                                                     0x00000008
-#define  NV50TCL_RT_UNK4(x)                                                            (0x00000210+((x)*32))
-#define  NV50TCL_RT_UNK4__SIZE                                                         0x00000008
+#define   NV50TCL_RT_FORMAT_R32G32B32A32_FLOAT                                         0x000000c0
+#define   NV50TCL_RT_FORMAT_R32G32B32A32_SINT                                          0x000000c1
+#define   NV50TCL_RT_FORMAT_R32G32B32A32_UINT                                          0x000000c2
+#define   NV50TCL_RT_FORMAT_R32G32B32X32_FLOAT                                         0x000000c3
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_UNORM                                         0x000000c6
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_SNORM                                         0x000000c7
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_SINT                                          0x000000c8
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_UINT                                          0x000000c9
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_FLOAT                                         0x000000ca
+#define   NV50TCL_RT_FORMAT_R32G32_FLOAT                                               0x000000cb
+#define   NV50TCL_RT_FORMAT_R32G32_SINT                                                        0x000000cc
+#define   NV50TCL_RT_FORMAT_R32G32_UINT                                                        0x000000cd
+#define   NV50TCL_RT_FORMAT_R16G16B16X16_FLOAT                                         0x000000ce
+#define   NV50TCL_RT_FORMAT_A8R8G8B8_UNORM                                             0x000000cf
+#define   NV50TCL_RT_FORMAT_A8R8G8B8_SRGB                                              0x000000d0
+#define   NV50TCL_RT_FORMAT_A2B10G10R10_UNORM                                          0x000000d1
+#define   NV50TCL_RT_FORMAT_A2B10G10R10_UINT                                           0x000000d2
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_UNORM                                             0x000000d5
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_SRGB                                              0x000000d6
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_SNORM                                             0x000000d7
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_SINT                                              0x000000d8
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_UINT                                              0x000000d9
+#define   NV50TCL_RT_FORMAT_R16G16_UNORM                                               0x000000da
+#define   NV50TCL_RT_FORMAT_R16G16_SNORM                                               0x000000db
+#define   NV50TCL_RT_FORMAT_R16G16_SINT                                                        0x000000dc
+#define   NV50TCL_RT_FORMAT_R16G16_UINT                                                        0x000000dd
+#define   NV50TCL_RT_FORMAT_R16G16_FLOAT                                               0x000000de
+#define   NV50TCL_RT_FORMAT_A2R10G10B10_UNORM                                          0x000000df
+#define   NV50TCL_RT_FORMAT_B10G11R11_FLOAT                                            0x000000e0
+#define   NV50TCL_RT_FORMAT_R32_FLOAT                                                  0x000000e5
+#define   NV50TCL_RT_FORMAT_X8R8G8B8_UNORM                                             0x000000e6
+#define   NV50TCL_RT_FORMAT_X8R8G8B8_SRGB                                              0x000000e7
+#define   NV50TCL_RT_FORMAT_R5G6B5_UNORM                                               0x000000e8
+#define   NV50TCL_RT_FORMAT_A1R5G5B5_UNORM                                             0x000000e9
+#define   NV50TCL_RT_FORMAT_R8G8_UNORM                                                 0x000000ea
+#define   NV50TCL_RT_FORMAT_R8G8_SNORM                                                 0x000000eb
+#define   NV50TCL_RT_FORMAT_R8G8_SINT                                                  0x000000ec
+#define   NV50TCL_RT_FORMAT_R8G8_UINT                                                  0x000000ed
+#define   NV50TCL_RT_FORMAT_R16_UNORM                                                  0x000000ee
+#define   NV50TCL_RT_FORMAT_R16_SNORM                                                  0x000000ef
+#define   NV50TCL_RT_FORMAT_R16_SINT                                                   0x000000f0
+#define   NV50TCL_RT_FORMAT_R16_UINT                                                   0x000000f1
+#define   NV50TCL_RT_FORMAT_R16_FLOAT                                                  0x000000f2
+#define   NV50TCL_RT_FORMAT_R8_UNORM                                                   0x000000f3
+#define   NV50TCL_RT_FORMAT_R8_SNORM                                                   0x000000f4
+#define   NV50TCL_RT_FORMAT_R8_SINT                                                    0x000000f5
+#define   NV50TCL_RT_FORMAT_R8_UINT                                                    0x000000f6
+#define   NV50TCL_RT_FORMAT_A8_UNORM                                                   0x000000f7
+#define   NV50TCL_RT_FORMAT_X1R5G5B5_UNORM                                             0x000000f8
+#define   NV50TCL_RT_FORMAT_X8B8G8R8_UNORM                                             0x000000f9
+#define   NV50TCL_RT_FORMAT_X8B8G8R8_SRGB                                              0x000000fa
+#define  NV50TCL_RT_TILE_MODE(x)                                                       (0x0000020c+((x)*32))
+#define  NV50TCL_RT_TILE_MODE__SIZE                                                    0x00000008
+#define  NV50TCL_RT_LAYER_STRIDE(x)                                                    (0x00000210+((x)*32))
+#define  NV50TCL_RT_LAYER_STRIDE__SIZE                                                 0x00000008
 #define  NV50TCL_VTX_ATTR_1F(x)                                                                (0x00000300+((x)*4))
 #define  NV50TCL_VTX_ATTR_1F__SIZE                                                     0x00000010
+#define  NV50TCL_VTX_ATTR_2H(x)                                                                (0x00000340+((x)*4))
+#define  NV50TCL_VTX_ATTR_2H__SIZE                                                     0x00000010
+#define   NV50TCL_VTX_ATTR_2H_X_SHIFT                                                  0
+#define   NV50TCL_VTX_ATTR_2H_X_MASK                                                   0x0000ffff
+#define   NV50TCL_VTX_ATTR_2H_Y_SHIFT                                                  16
+#define   NV50TCL_VTX_ATTR_2H_Y_MASK                                                   0xffff0000
 #define  NV50TCL_VTX_ATTR_2F_X(x)                                                      (0x00000380+((x)*8))
 #define  NV50TCL_VTX_ATTR_2F_X__SIZE                                                   0x00000010
 #define  NV50TCL_VTX_ATTR_2F_Y(x)                                                      (0x00000384+((x)*8))
@@ -5524,8 +7831,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_VTX_ATTR_3F_Y__SIZE                                                   0x00000010
 #define  NV50TCL_VTX_ATTR_3F_Z(x)                                                      (0x00000408+((x)*16))
 #define  NV50TCL_VTX_ATTR_3F_Z__SIZE                                                   0x00000010
-#define  NV50TCL_VTX_ATTR_3F_W(x)                                                      (0x0000040c+((x)*16))
-#define  NV50TCL_VTX_ATTR_3F_W__SIZE                                                   0x00000010
 #define  NV50TCL_VTX_ATTR_4F_X(x)                                                      (0x00000500+((x)*16))
 #define  NV50TCL_VTX_ATTR_4F_X__SIZE                                                   0x00000010
 #define  NV50TCL_VTX_ATTR_4F_Y(x)                                                      (0x00000504+((x)*16))
@@ -5534,12 +7839,30 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_VTX_ATTR_4F_Z__SIZE                                                   0x00000010
 #define  NV50TCL_VTX_ATTR_4F_W(x)                                                      (0x0000050c+((x)*16))
 #define  NV50TCL_VTX_ATTR_4F_W__SIZE                                                   0x00000010
+#define  NV50TCL_VTX_ATTR_4H_0(x)                                                      (0x00000600+((x)*8))
+#define  NV50TCL_VTX_ATTR_4H_0__SIZE                                                   0x00000010
+#define   NV50TCL_VTX_ATTR_4H_0_X_SHIFT                                                        0
+#define   NV50TCL_VTX_ATTR_4H_0_X_MASK                                                 0x0000ffff
+#define   NV50TCL_VTX_ATTR_4H_0_Y_SHIFT                                                        16
+#define   NV50TCL_VTX_ATTR_4H_0_Y_MASK                                                 0xffff0000
+#define  NV50TCL_VTX_ATTR_4H_1(x)                                                      (0x00000604+((x)*8))
+#define  NV50TCL_VTX_ATTR_4H_1__SIZE                                                   0x00000010
+#define   NV50TCL_VTX_ATTR_4H_1_Z_SHIFT                                                        0
+#define   NV50TCL_VTX_ATTR_4H_1_Z_MASK                                                 0x0000ffff
+#define   NV50TCL_VTX_ATTR_4H_1_W_SHIFT                                                        16
+#define   NV50TCL_VTX_ATTR_4H_1_W_MASK                                                 0xffff0000
 #define  NV50TCL_VTX_ATTR_2I(x)                                                                (0x00000680+((x)*4))
 #define  NV50TCL_VTX_ATTR_2I__SIZE                                                     0x00000010
 #define   NV50TCL_VTX_ATTR_2I_X_SHIFT                                                  0
 #define   NV50TCL_VTX_ATTR_2I_X_MASK                                                   0x0000ffff
 #define   NV50TCL_VTX_ATTR_2I_Y_SHIFT                                                  16
 #define   NV50TCL_VTX_ATTR_2I_Y_MASK                                                   0xffff0000
+#define  NV50TCL_VTX_ATTR_2NI(x)                                                       (0x000006c0+((x)*4))
+#define  NV50TCL_VTX_ATTR_2NI__SIZE                                                    0x00000010
+#define   NV50TCL_VTX_ATTR_2NI_X_SHIFT                                                 0
+#define   NV50TCL_VTX_ATTR_2NI_X_MASK                                                  0x0000ffff
+#define   NV50TCL_VTX_ATTR_2NI_Y_SHIFT                                                 16
+#define   NV50TCL_VTX_ATTR_2NI_Y_MASK                                                  0xffff0000
 #define  NV50TCL_VTX_ATTR_4I_0(x)                                                      (0x00000700+((x)*8))
 #define  NV50TCL_VTX_ATTR_4I_0__SIZE                                                   0x00000010
 #define   NV50TCL_VTX_ATTR_4I_0_X_SHIFT                                                        0
@@ -5564,34 +7887,109 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_VTX_ATTR_4NI_1_Z_MASK                                                        0x0000ffff
 #define   NV50TCL_VTX_ATTR_4NI_1_W_SHIFT                                               16
 #define   NV50TCL_VTX_ATTR_4NI_1_W_MASK                                                        0xffff0000
+#define  NV50TCL_VTX_ATTR_4UB(x)                                                       (0x00000800+((x)*4))
+#define  NV50TCL_VTX_ATTR_4UB__SIZE                                                    0x00000010
+#define   NV50TCL_VTX_ATTR_4UB_X_SHIFT                                                 0
+#define   NV50TCL_VTX_ATTR_4UB_X_MASK                                                  0x000000ff
+#define   NV50TCL_VTX_ATTR_4UB_Y_SHIFT                                                 8
+#define   NV50TCL_VTX_ATTR_4UB_Y_MASK                                                  0x0000ff00
+#define   NV50TCL_VTX_ATTR_4UB_Z_SHIFT                                                 16
+#define   NV50TCL_VTX_ATTR_4UB_Z_MASK                                                  0x00ff0000
+#define   NV50TCL_VTX_ATTR_4UB_W_SHIFT                                                 24
+#define   NV50TCL_VTX_ATTR_4UB_W_MASK                                                  0xff000000
+#define  NV50TCL_VTX_ATTR_4B(x)                                                                (0x00000840+((x)*4))
+#define  NV50TCL_VTX_ATTR_4B__SIZE                                                     0x00000010
+#define   NV50TCL_VTX_ATTR_4B_X_SHIFT                                                  0
+#define   NV50TCL_VTX_ATTR_4B_X_MASK                                                   0x000000ff
+#define   NV50TCL_VTX_ATTR_4B_Y_SHIFT                                                  8
+#define   NV50TCL_VTX_ATTR_4B_Y_MASK                                                   0x0000ff00
+#define   NV50TCL_VTX_ATTR_4B_Z_SHIFT                                                  16
+#define   NV50TCL_VTX_ATTR_4B_Z_MASK                                                   0x00ff0000
+#define   NV50TCL_VTX_ATTR_4B_W_SHIFT                                                  24
+#define   NV50TCL_VTX_ATTR_4B_W_MASK                                                   0xff000000
+#define  NV50TCL_VTX_ATTR_4NUB(x)                                                      (0x00000880+((x)*4))
+#define  NV50TCL_VTX_ATTR_4NUB__SIZE                                                   0x00000010
+#define   NV50TCL_VTX_ATTR_4NUB_X_SHIFT                                                        0
+#define   NV50TCL_VTX_ATTR_4NUB_X_MASK                                                 0x000000ff
+#define   NV50TCL_VTX_ATTR_4NUB_Y_SHIFT                                                        8
+#define   NV50TCL_VTX_ATTR_4NUB_Y_MASK                                                 0x0000ff00
+#define   NV50TCL_VTX_ATTR_4NUB_Z_SHIFT                                                        16
+#define   NV50TCL_VTX_ATTR_4NUB_Z_MASK                                                 0x00ff0000
+#define   NV50TCL_VTX_ATTR_4NUB_W_SHIFT                                                        24
+#define   NV50TCL_VTX_ATTR_4NUB_W_MASK                                                 0xff000000
+#define  NV50TCL_VTX_ATTR_4NB(x)                                                       (0x000008c0+((x)*4))
+#define  NV50TCL_VTX_ATTR_4NB__SIZE                                                    0x00000010
+#define   NV50TCL_VTX_ATTR_4NB_X_SHIFT                                                 0
+#define   NV50TCL_VTX_ATTR_4NB_X_MASK                                                  0x000000ff
+#define   NV50TCL_VTX_ATTR_4NB_Y_SHIFT                                                 8
+#define   NV50TCL_VTX_ATTR_4NB_Y_MASK                                                  0x0000ff00
+#define   NV50TCL_VTX_ATTR_4NB_Z_SHIFT                                                 16
+#define   NV50TCL_VTX_ATTR_4NB_Z_MASK                                                  0x00ff0000
+#define   NV50TCL_VTX_ATTR_4NB_W_SHIFT                                                 24
+#define   NV50TCL_VTX_ATTR_4NB_W_MASK                                                  0xff000000
 #define  NV50TCL_VERTEX_ARRAY_FORMAT(x)                                                        (0x00000900+((x)*16))
 #define  NV50TCL_VERTEX_ARRAY_FORMAT__SIZE                                             0x00000010
-#define  NV50TCL_VIEWPORT_UNK0(x)                                                      (0x00000a00+((x)*4))
-#define  NV50TCL_VIEWPORT_UNK0__SIZE                                                   0x00000003
-#define  NV50TCL_VIEWPORT_UNK1(x)                                                      (0x00000a0c+((x)*4))
-#define  NV50TCL_VIEWPORT_UNK1__SIZE                                                   0x00000003
-#define  NV50TCL_VIEWPORT_HORIZ                                                                0x00000c00
+#define   NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_SHIFT                                     0
+#define   NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_MASK                                      0x00000fff
+#define   NV50TCL_VERTEX_ARRAY_FORMAT_ENABLE                                           (1 << 29)
+#define  NV50TCL_VERTEX_ARRAY_START_HIGH(x)                                            (0x00000904+((x)*16))
+#define  NV50TCL_VERTEX_ARRAY_START_HIGH__SIZE                                         0x00000010
+#define  NV50TCL_VERTEX_ARRAY_START_LOW(x)                                             (0x00000908+((x)*16))
+#define  NV50TCL_VERTEX_ARRAY_START_LOW__SIZE                                          0x00000010
+#define  NV50TCL_VIEWPORT_SCALE_X(x)                                                   (0x00000a00+((x)*32))
+#define  NV50TCL_VIEWPORT_SCALE_X__SIZE                                                        0x00000010
+#define  NV50TCL_VIEWPORT_SCALE_Y(x)                                                   (0x00000a04+((x)*32))
+#define  NV50TCL_VIEWPORT_SCALE_Y__SIZE                                                        0x00000010
+#define  NV50TCL_VIEWPORT_SCALE_Z(x)                                                   (0x00000a08+((x)*32))
+#define  NV50TCL_VIEWPORT_SCALE_Z__SIZE                                                        0x00000010
+#define  NV50TCL_VIEWPORT_TRANSLATE_X(x)                                               (0x00000a0c+((x)*32))
+#define  NV50TCL_VIEWPORT_TRANSLATE_X__SIZE                                            0x00000010
+#define  NV50TCL_VIEWPORT_TRANSLATE_Y(x)                                               (0x00000a10+((x)*32))
+#define  NV50TCL_VIEWPORT_TRANSLATE_Y__SIZE                                            0x00000010
+#define  NV50TCL_VIEWPORT_TRANSLATE_Z(x)                                               (0x00000a14+((x)*32))
+#define  NV50TCL_VIEWPORT_TRANSLATE_Z__SIZE                                            0x00000010
+#define  NV50TCL_VIEWPORT_HORIZ(x)                                                     (0x00000c00+((x)*16))
+#define  NV50TCL_VIEWPORT_HORIZ__SIZE                                                  0x00000010
 #define   NV50TCL_VIEWPORT_HORIZ_X_SHIFT                                               0
 #define   NV50TCL_VIEWPORT_HORIZ_X_MASK                                                        0x0000ffff
 #define   NV50TCL_VIEWPORT_HORIZ_W_SHIFT                                               16
 #define   NV50TCL_VIEWPORT_HORIZ_W_MASK                                                        0xffff0000
-#define  NV50TCL_VIEWPORT_VERT                                                         0x00000c04
+#define  NV50TCL_VIEWPORT_VERT(x)                                                      (0x00000c04+((x)*16))
+#define  NV50TCL_VIEWPORT_VERT__SIZE                                                   0x00000010
 #define   NV50TCL_VIEWPORT_VERT_Y_SHIFT                                                        0
 #define   NV50TCL_VIEWPORT_VERT_Y_MASK                                                 0x0000ffff
 #define   NV50TCL_VIEWPORT_VERT_H_SHIFT                                                        16
 #define   NV50TCL_VIEWPORT_VERT_H_MASK                                                 0xffff0000
-#define  NV50TCL_DEPTH_RANGE_NEAR                                                      0x00000c08
-#define  NV50TCL_DEPTH_RANGE_FAR                                                       0x00000c0c
+#define  NV50TCL_DEPTH_RANGE_NEAR(x)                                                   (0x00000c08+((x)*16))
+#define  NV50TCL_DEPTH_RANGE_NEAR__SIZE                                                        0x00000010
+#define  NV50TCL_DEPTH_RANGE_FAR(x)                                                    (0x00000c0c+((x)*16))
+#define  NV50TCL_DEPTH_RANGE_FAR__SIZE                                                 0x00000010
 #define  NV50TCL_VIEWPORT_CLIP_HORIZ(x)                                                        (0x00000d00+((x)*8))
 #define  NV50TCL_VIEWPORT_CLIP_HORIZ__SIZE                                             0x00000008
+#define   NV50TCL_VIEWPORT_CLIP_HORIZ_MIN_SHIFT                                                0
+#define   NV50TCL_VIEWPORT_CLIP_HORIZ_MIN_MASK                                         0x0000ffff
+#define   NV50TCL_VIEWPORT_CLIP_HORIZ_MAX_SHIFT                                                16
+#define   NV50TCL_VIEWPORT_CLIP_HORIZ_MAX_MASK                                         0xffff0000
 #define  NV50TCL_VIEWPORT_CLIP_VERT(x)                                                 (0x00000d04+((x)*8))
 #define  NV50TCL_VIEWPORT_CLIP_VERT__SIZE                                              0x00000008
+#define   NV50TCL_VIEWPORT_CLIP_VERT_MIN_SHIFT                                         0
+#define   NV50TCL_VIEWPORT_CLIP_VERT_MIN_MASK                                          0x0000ffff
+#define   NV50TCL_VIEWPORT_CLIP_VERT_MAX_SHIFT                                         16
+#define   NV50TCL_VIEWPORT_CLIP_VERT_MAX_MASK                                          0xffff0000
+#define  NV50TCL_CLIPID_REGION_HORIZ(x)                                                        (0x00000d40+((x)*8))
+#define  NV50TCL_CLIPID_REGION_HORIZ__SIZE                                             0x00000004
+#define  NV50TCL_CLIPID_REGION_VERT(x)                                                 (0x00000d44+((x)*8))
+#define  NV50TCL_CLIPID_REGION_VERT__SIZE                                              0x00000004
 #define  NV50TCL_VERTEX_BUFFER_FIRST                                                   0x00000d74
 #define  NV50TCL_VERTEX_BUFFER_COUNT                                                   0x00000d78
 #define  NV50TCL_CLEAR_COLOR(x)                                                                (0x00000d80+((x)*4))
 #define  NV50TCL_CLEAR_COLOR__SIZE                                                     0x00000004
 #define  NV50TCL_CLEAR_DEPTH                                                           0x00000d90
+#define  NV50TCL_STACK_ADDRESS_HIGH                                                    0x00000d94
+#define  NV50TCL_STACK_ADDRESS_LOW                                                     0x00000d98
+#define  NV50TCL_STACK_SIZE_LOG                                                                0x00000d9c
 #define  NV50TCL_CLEAR_STENCIL                                                         0x00000da0
+#define  NV50TCL_STRMOUT_PRIMITIVE_COUNT                                               0x00000da8
 #define  NV50TCL_POLYGON_MODE_FRONT                                                    0x00000dac
 #define   NV50TCL_POLYGON_MODE_FRONT_POINT                                             0x00001b00
 #define   NV50TCL_POLYGON_MODE_FRONT_LINE                                              0x00001b01
@@ -5604,40 +8002,106 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_POLYGON_OFFSET_POINT_ENABLE                                           0x00000dc0
 #define  NV50TCL_POLYGON_OFFSET_LINE_ENABLE                                            0x00000dc4
 #define  NV50TCL_POLYGON_OFFSET_FILL_ENABLE                                            0x00000dc8
-#define  NV50TCL_SCISSOR_HORIZ                                                         0x00000e04
-#define   NV50TCL_SCISSOR_HORIZ_L_SHIFT                                                        0
-#define   NV50TCL_SCISSOR_HORIZ_L_MASK                                                 0x0000ffff
-#define   NV50TCL_SCISSOR_HORIZ_R_SHIFT                                                        16
-#define   NV50TCL_SCISSOR_HORIZ_R_MASK                                                 0xffff0000
-#define  NV50TCL_SCISSOR_VERT                                                          0x00000e08
-#define   NV50TCL_SCISSOR_VERT_T_SHIFT                                                 0
-#define   NV50TCL_SCISSOR_VERT_T_MASK                                                  0x0000ffff
-#define   NV50TCL_SCISSOR_VERT_B_SHIFT                                                 16
-#define   NV50TCL_SCISSOR_VERT_B_MASK                                                  0xffff0000
+#define  NV50TCL_WATCHDOG_TIMER                                                                0x00000de4
+#define  NV50TCL_WINDOW_OFFSET_X                                                       0x00000df8
+#define  NV50TCL_WINDOW_OFFSET_Y                                                       0x00000dfc
+#define  NV50TCL_SCISSOR_ENABLE(x)                                                     (0x00000e00+((x)*16))
+#define  NV50TCL_SCISSOR_ENABLE__SIZE                                                  0x00000010
+#define  NV50TCL_SCISSOR_HORIZ(x)                                                      (0x00000e04+((x)*16))
+#define  NV50TCL_SCISSOR_HORIZ__SIZE                                                   0x00000010
+#define   NV50TCL_SCISSOR_HORIZ_MIN_SHIFT                                              0
+#define   NV50TCL_SCISSOR_HORIZ_MIN_MASK                                               0x0000ffff
+#define   NV50TCL_SCISSOR_HORIZ_MAX_SHIFT                                              16
+#define   NV50TCL_SCISSOR_HORIZ_MAX_MASK                                               0xffff0000
+#define  NV50TCL_SCISSOR_VERT(x)                                                       (0x00000e08+((x)*16))
+#define  NV50TCL_SCISSOR_VERT__SIZE                                                    0x00000010
+#define   NV50TCL_SCISSOR_VERT_MIN_SHIFT                                               0
+#define   NV50TCL_SCISSOR_VERT_MIN_MASK                                                        0x0000ffff
+#define   NV50TCL_SCISSOR_VERT_MAX_SHIFT                                               16
+#define   NV50TCL_SCISSOR_VERT_MAX_MASK                                                        0xffff0000
 #define  NV50TCL_CB_ADDR                                                               0x00000f00
 #define   NV50TCL_CB_ADDR_ID_SHIFT                                                     8
-#define   NV50TCL_CB_ADDR_ID_MASK                                                      0xffffff00
+#define   NV50TCL_CB_ADDR_ID_MASK                                                      0x003fff00
 #define   NV50TCL_CB_ADDR_BUFFER_SHIFT                                                 0
-#define   NV50TCL_CB_ADDR_BUFFER_MASK                                                  0x000000ff
+#define   NV50TCL_CB_ADDR_BUFFER_MASK                                                  0x0000007f
 #define  NV50TCL_CB_DATA(x)                                                            (0x00000f04+((x)*4))
 #define  NV50TCL_CB_DATA__SIZE                                                         0x00000010
-#define  NV50TCL_STENCIL_FRONT_FUNC_REF                                                        0x00000f54
-#define  NV50TCL_STENCIL_FRONT_MASK                                                    0x00000f58
-#define  NV50TCL_STENCIL_FRONT_FUNC_MASK                                               0x00000f5c
+#define  NV50TCL_LOCAL_WARPS_LOG_ALLOC                                                 0x00000f44
+#define  NV50TCL_LOCAL_WARPS_NO_CLAMP                                                  0x00000f48
+#define  NV50TCL_STACK_WARPS_LOG_ALLOC                                                 0x00000f4c
+#define  NV50TCL_STACK_WARPS_NO_CLAMP                                                  0x00000f50
+#define  NV50TCL_STENCIL_BACK_FUNC_REF                                                 0x00000f54
+#define  NV50TCL_STENCIL_BACK_MASK                                                     0x00000f58
+#define  NV50TCL_STENCIL_BACK_FUNC_MASK                                                        0x00000f5c
 #define  NV50TCL_GP_ADDRESS_HIGH                                                       0x00000f70
 #define  NV50TCL_GP_ADDRESS_LOW                                                                0x00000f74
 #define  NV50TCL_VP_ADDRESS_HIGH                                                       0x00000f7c
 #define  NV50TCL_VP_ADDRESS_LOW                                                                0x00000f80
+#define  NV50TCL_VERTEX_RUNOUT_HIGH                                                    0x00000f84
+#define  NV50TCL_VERTEX_RUNOUT_LOW                                                     0x00000f88
+#define  NV50TCL_DEPTH_BOUNDS(x)                                                       (0x00000f9c+((x)*4))
+#define  NV50TCL_DEPTH_BOUNDS__SIZE                                                    0x00000002
 #define  NV50TCL_FP_ADDRESS_HIGH                                                       0x00000fa4
 #define  NV50TCL_FP_ADDRESS_LOW                                                                0x00000fa8
+#define  NV50TCL_MSAA_MASK(x)                                                          (0x00000fbc+((x)*4))
+#define  NV50TCL_MSAA_MASK__SIZE                                                       0x00000004
+#define  NV50TCL_CLIPID_ADDRESS_HIGH                                                   0x00000fcc
+#define  NV50TCL_CLIPID_ADDRESS_LOW                                                    0x00000fd0
 #define  NV50TCL_ZETA_ADDRESS_HIGH                                                     0x00000fe0
 #define  NV50TCL_ZETA_ADDRESS_LOW                                                      0x00000fe4
-#define  NV50TCL_UNKFF4                                                                        0x00000ff4
-#define   NV50TCL_UNKFF4_W_SHIFT                                                       16
-#define   NV50TCL_UNKFF4_W_MASK                                                                0xffff0000
-#define  NV50TCL_UNKFF8                                                                        0x00000ff8
-#define   NV50TCL_UNKFF8_H_SHIFT                                                       16
-#define   NV50TCL_UNKFF8_H_MASK                                                                0xffff0000
+#define  NV50TCL_ZETA_FORMAT                                                           0x00000fe8
+#define   NV50TCL_ZETA_FORMAT_Z32_FLOAT                                                        0x0000000a
+#define   NV50TCL_ZETA_FORMAT_Z16_UNORM                                                        0x00000013
+#define   NV50TCL_ZETA_FORMAT_Z24S8_UNORM                                              0x00000014
+#define   NV50TCL_ZETA_FORMAT_X8Z24_UNORM                                              0x00000015
+#define   NV50TCL_ZETA_FORMAT_S8Z24_UNORM                                              0x00000016
+#define   NV50TCL_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM                                    0x00000019
+#define  NV50TCL_ZETA_TILE_MODE                                                                0x00000fec
+#define  NV50TCL_ZETA_LAYER_STRIDE                                                     0x00000ff0
+#define  NV50TCL_SCREEN_SCISSOR_HORIZ                                                  0x00000ff4
+#define   NV50TCL_SCREEN_SCISSOR_HORIZ_W_SHIFT                                         16
+#define   NV50TCL_SCREEN_SCISSOR_HORIZ_W_MASK                                          0xffff0000
+#define   NV50TCL_SCREEN_SCISSOR_HORIZ_X_SHIFT                                         0
+#define   NV50TCL_SCREEN_SCISSOR_HORIZ_X_MASK                                          0x0000ffff
+#define  NV50TCL_SCREEN_SCISSOR_VERT                                                   0x00000ff8
+#define   NV50TCL_SCREEN_SCISSOR_VERT_H_SHIFT                                          16
+#define   NV50TCL_SCREEN_SCISSOR_VERT_H_MASK                                           0xffff0000
+#define   NV50TCL_SCREEN_SCISSOR_VERT_Y_SHIFT                                          0
+#define   NV50TCL_SCREEN_SCISSOR_VERT_Y_MASK                                           0x0000ffff
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_HIGH(x)                                            (0x00001080+((x)*8))
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_HIGH__SIZE                                         0x00000010
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_LOW(x)                                             (0x00001084+((x)*8))
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_LOW__SIZE                                          0x00000010
+#define  NV50TCL_RT_CONTROL                                                            0x0000121c
+#define   NV50TCL_RT_CONTROL_COUNT_SHIFT                                               0
+#define   NV50TCL_RT_CONTROL_COUNT_MASK                                                        0x0000000f
+#define   NV50TCL_RT_CONTROL_MAP0_SHIFT                                                        4
+#define   NV50TCL_RT_CONTROL_MAP0_MASK                                                 0x00000070
+#define   NV50TCL_RT_CONTROL_MAP1_SHIFT                                                        7
+#define   NV50TCL_RT_CONTROL_MAP1_MASK                                                 0x00000380
+#define   NV50TCL_RT_CONTROL_MAP2_SHIFT                                                        10
+#define   NV50TCL_RT_CONTROL_MAP2_MASK                                                 0x00001c00
+#define   NV50TCL_RT_CONTROL_MAP3_SHIFT                                                        13
+#define   NV50TCL_RT_CONTROL_MAP3_MASK                                                 0x0000e000
+#define   NV50TCL_RT_CONTROL_MAP4_SHIFT                                                        16
+#define   NV50TCL_RT_CONTROL_MAP4_MASK                                                 0x00070000
+#define   NV50TCL_RT_CONTROL_MAP5_SHIFT                                                        19
+#define   NV50TCL_RT_CONTROL_MAP5_MASK                                                 0x00380000
+#define   NV50TCL_RT_CONTROL_MAP6_SHIFT                                                        22
+#define   NV50TCL_RT_CONTROL_MAP6_MASK                                                 0x01c00000
+#define   NV50TCL_RT_CONTROL_MAP7_SHIFT                                                        25
+#define   NV50TCL_RT_CONTROL_MAP7_MASK                                                 0x0e000000
+#define  NV50TCL_RT_ARRAY_MODE                                                         0x00001224
+#define   NV50TCL_RT_ARRAY_MODE_LAYERS_SHIFT                                           0
+#define   NV50TCL_RT_ARRAY_MODE_LAYERS_MASK                                            0x0000ffff
+#define   NV50TCL_RT_ARRAY_MODE_VOLUME                                                 (1 << 16)
+#define  NV50TCL_ZETA_HORIZ                                                            0x00001228
+#define  NV50TCL_ZETA_VERT                                                             0x0000122c
+#define  NV50TCL_ZETA_ARRAY_MODE                                                       0x00001230
+#define   NV50TCL_ZETA_ARRAY_MODE_LAYERS_SHIFT                                         0
+#define   NV50TCL_ZETA_ARRAY_MODE_LAYERS_MASK                                          0x0000ffff
+#define   NV50TCL_ZETA_ARRAY_MODE_UNK                                                  (1 << 16)
+#define  NV50TCL_LINKED_TSC                                                            0x00001234
 #define  NV50TCL_RT_HORIZ(x)                                                           (0x00001240+((x)*8))
 #define  NV50TCL_RT_HORIZ__SIZE                                                                0x00000008
 #define  NV50TCL_RT_VERT(x)                                                            (0x00001244+((x)*8))
@@ -5648,20 +8112,45 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_CB_DEF_SET_SIZE_SHIFT                                                        0
 #define   NV50TCL_CB_DEF_SET_SIZE_MASK                                                 0x0000ffff
 #define   NV50TCL_CB_DEF_SET_BUFFER_SHIFT                                              16
-#define   NV50TCL_CB_DEF_SET_BUFFER_MASK                                               0xffff0000
+#define   NV50TCL_CB_DEF_SET_BUFFER_MASK                                               0x007f0000
+#define  NV50TCL_STRMOUT_BUFFERS_CTRL                                                  0x00001294
+#define   NV50TCL_STRMOUT_BUFFERS_CTRL_INTERLEAVED                                     (1 <<  0)
+#define   NV50TCL_STRMOUT_BUFFERS_CTRL_SEPARATE_SHIFT                                  4
+#define   NV50TCL_STRMOUT_BUFFERS_CTRL_SEPARATE_MASK                                   0x000000f0
+#define   NV50TCL_STRMOUT_BUFFERS_CTRL_STRIDE_SHIFT                                    8
+#define   NV50TCL_STRMOUT_BUFFERS_CTRL_STRIDE_MASK                                     0x0000ff00
+#define  NV50TCL_FP_RESULT_COUNT                                                       0x00001298
 #define  NV50TCL_DEPTH_TEST_ENABLE                                                     0x000012cc
 #define  NV50TCL_SHADE_MODEL                                                           0x000012d4
 #define   NV50TCL_SHADE_MODEL_FLAT                                                     0x00001d00
 #define   NV50TCL_SHADE_MODEL_SMOOTH                                                   0x00001d01
+#define  NV50TCL_LOCAL_ADDRESS_HIGH                                                    0x000012d8
+#define  NV50TCL_LOCAL_ADDRESS_LOW                                                     0x000012dc
+#define  NV50TCL_LOCAL_SIZE_LOG                                                                0x000012e0
 #define  NV50TCL_DEPTH_WRITE_ENABLE                                                    0x000012e8
 #define  NV50TCL_ALPHA_TEST_ENABLE                                                     0x000012ec
+#define  NV50TCL_PM_SET(x)                                                             (0x000012f0+((x)*4))
+#define  NV50TCL_PM_SET__SIZE                                                          0x00000004
+#define  NV50TCL_VB_ELEMENT_U8_SETUP                                                   0x00001300
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_OFFSET_SHIFT                                     30
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_OFFSET_MASK                                      0xc0000000
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_COUNT_SHIFT                                      0
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_COUNT_MASK                                       0x3fffffff
+#define  NV50TCL_VB_ELEMENT_U8                                                         0x00001304
+#define   NV50TCL_VB_ELEMENT_U8_I0_SHIFT                                               0
+#define   NV50TCL_VB_ELEMENT_U8_I0_MASK                                                        0x000000ff
+#define   NV50TCL_VB_ELEMENT_U8_I1_SHIFT                                               8
+#define   NV50TCL_VB_ELEMENT_U8_I1_MASK                                                        0x0000ff00
+#define   NV50TCL_VB_ELEMENT_U8_I2_SHIFT                                               16
+#define   NV50TCL_VB_ELEMENT_U8_I2_MASK                                                        0x00ff0000
+#define   NV50TCL_VB_ELEMENT_U8_I3_SHIFT                                               24
+#define   NV50TCL_VB_ELEMENT_U8_I3_MASK                                                        0xff000000
 #define  NV50TCL_DEPTH_TEST_FUNC                                                       0x0000130c
 #define   NV50TCL_DEPTH_TEST_FUNC_NEVER                                                        0x00000200
 #define   NV50TCL_DEPTH_TEST_FUNC_LESS                                                 0x00000201
 #define   NV50TCL_DEPTH_TEST_FUNC_EQUAL                                                        0x00000202
 #define   NV50TCL_DEPTH_TEST_FUNC_LEQUAL                                               0x00000203
 #define   NV50TCL_DEPTH_TEST_FUNC_GREATER                                              0x00000204
-#define   NV50TCL_DEPTH_TEST_FUNC_GREATER                                              0x00000204
 #define   NV50TCL_DEPTH_TEST_FUNC_NOTEQUAL                                             0x00000205
 #define   NV50TCL_DEPTH_TEST_FUNC_GEQUAL                                               0x00000206
 #define   NV50TCL_DEPTH_TEST_FUNC_ALWAYS                                               0x00000207
@@ -5672,12 +8161,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_ALPHA_TEST_FUNC_EQUAL                                                        0x00000202
 #define   NV50TCL_ALPHA_TEST_FUNC_LEQUAL                                               0x00000203
 #define   NV50TCL_ALPHA_TEST_FUNC_GREATER                                              0x00000204
-#define   NV50TCL_ALPHA_TEST_FUNC_GREATER                                              0x00000204
 #define   NV50TCL_ALPHA_TEST_FUNC_NOTEQUAL                                             0x00000205
 #define   NV50TCL_ALPHA_TEST_FUNC_GEQUAL                                               0x00000206
 #define   NV50TCL_ALPHA_TEST_FUNC_ALWAYS                                               0x00000207
 #define  NV50TCL_BLEND_COLOR(x)                                                                (0x0000131c+((x)*4))
 #define  NV50TCL_BLEND_COLOR__SIZE                                                     0x00000004
+#define  NV50TCL_TIC_FLUSH                                                             0x00001330
+#define  NV50TCL_TSC_FLUSH                                                             0x00001334
+#define  NV50TCL_TEX_CACHE_CTL                                                         0x00001338
 #define  NV50TCL_BLEND_EQUATION_RGB                                                    0x00001340
 #define   NV50TCL_BLEND_EQUATION_RGB_FUNC_ADD                                          0x00008006
 #define   NV50TCL_BLEND_EQUATION_RGB_MIN                                               0x00008007
@@ -5685,37 +8176,45 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT                                     0x0000800a
 #define   NV50TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT                             0x0000800b
 #define  NV50TCL_BLEND_FUNC_SRC_RGB                                                    0x00001344
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_ZERO                                              0x00000000
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE                                               0x00000001
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR                                         0x00000300
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR                               0x00000301
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA                                         0x00000302
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA                               0x00000303
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA                                         0x00000304
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA                               0x00000305
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_COLOR                                         0x00000306
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR                               0x00000307
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE                                        0x00000308
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR                                    0x00008001
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR                          0x00008002
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA                                    0x00008003
-#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA                          0x00008004
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ZERO                                              0x00004000
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE                                               0x00004001
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR                                         0x00004300
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR                               0x00004301
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA                                         0x00004302
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA                               0x00004303
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA                                         0x00004304
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA                               0x00004305
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_COLOR                                         0x00004306
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR                               0x00004307
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE                                        0x00004308
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR                                    0x0000c001
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR                          0x0000c002
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA                                    0x0000c003
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA                          0x0000c004
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC1_COLOR                                                0x0000c900
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_COLOR                              0x0000c901
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC1_ALPHA                                                0x0000c902
+#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_ALPHA                              0x0000c903
 #define  NV50TCL_BLEND_FUNC_DST_RGB                                                    0x00001348
-#define   NV50TCL_BLEND_FUNC_DST_RGB_ZERO                                              0x00000000
-#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE                                               0x00000001
-#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_COLOR                                         0x00000300
-#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR                               0x00000301
-#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA                                         0x00000302
-#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA                               0x00000303
-#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_ALPHA                                         0x00000304
-#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA                               0x00000305
-#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_COLOR                                         0x00000306
-#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR                               0x00000307
-#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE                                        0x00000308
-#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR                                    0x00008001
-#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR                          0x00008002
-#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA                                    0x00008003
-#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA                          0x00008004
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ZERO                                              0x00004000
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE                                               0x00004001
+#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_COLOR                                         0x00004300
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR                               0x00004301
+#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA                                         0x00004302
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA                               0x00004303
+#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_ALPHA                                         0x00004304
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA                               0x00004305
+#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_COLOR                                         0x00004306
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR                               0x00004307
+#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE                                        0x00004308
+#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR                                    0x0000c001
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR                          0x0000c002
+#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA                                    0x0000c003
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA                          0x0000c004
+#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC1_COLOR                                                0x0000c900
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_COLOR                              0x0000c901
+#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC1_ALPHA                                                0x0000c902
+#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_ALPHA                              0x0000c903
 #define  NV50TCL_BLEND_EQUATION_ALPHA                                                  0x0000134c
 #define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_ADD                                                0x00008006
 #define   NV50TCL_BLEND_EQUATION_ALPHA_MIN                                             0x00008007
@@ -5723,93 +8222,49 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT                                   0x0000800a
 #define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT                           0x0000800b
 #define  NV50TCL_BLEND_FUNC_SRC_ALPHA                                                  0x00001350
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ZERO                                            0x00000000
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE                                             0x00000001
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR                                       0x00000300
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR                             0x00000301
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA                                       0x00000302
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA                             0x00000303
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA                                       0x00000304
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA                             0x00000305
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR                                       0x00000306
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR                             0x00000307
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE                              0x00000308
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR                                  0x00008001
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR                                0x00008002
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA                                  0x00008003
-#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA                                0x00008004
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ZERO                                            0x00004000
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE                                             0x00004001
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR                                       0x00004300
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR                             0x00004301
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA                                       0x00004302
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA                             0x00004303
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA                                       0x00004304
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA                             0x00004305
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR                                       0x00004306
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR                             0x00004307
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE                              0x00004308
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR                                  0x0000c001
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR                                0x0000c002
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA                                  0x0000c003
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA                                0x0000c004
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC1_COLOR                                      0x0000c900
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_COLOR                            0x0000c901
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC1_ALPHA                                      0x0000c902
+#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_ALPHA                            0x0000c903
 #define  NV50TCL_BLEND_FUNC_DST_ALPHA                                                  0x00001358
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ZERO                                            0x00000000
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE                                             0x00000001
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR                                       0x00000300
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR                             0x00000301
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA                                       0x00000302
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA                             0x00000303
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA                                       0x00000304
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA                             0x00000305
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR                                       0x00000306
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR                             0x00000307
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE                              0x00000308
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR                                  0x00008001
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR                                0x00008002
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA                                  0x00008003
-#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA                                0x00008004
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ZERO                                            0x00004000
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE                                             0x00004001
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR                                       0x00004300
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR                             0x00004301
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA                                       0x00004302
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA                             0x00004303
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA                                       0x00004304
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA                             0x00004305
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR                                       0x00004306
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR                             0x00004307
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE                              0x00004308
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR                                  0x0000c001
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR                                0x0000c002
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA                                  0x0000c003
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA                                0x0000c004
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC1_COLOR                                      0x0000c900
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_COLOR                            0x0000c901
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC1_ALPHA                                      0x0000c902
+#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_ALPHA                            0x0000c903
 #define  NV50TCL_BLEND_ENABLE(x)                                                       (0x00001360+((x)*4))
 #define  NV50TCL_BLEND_ENABLE__SIZE                                                    0x00000008
-#define  NV50TCL_STENCIL_BACK_ENABLE                                                   0x00001380
-#define  NV50TCL_STENCIL_BACK_OP_FAIL                                                  0x00001384
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_ZERO                                            0x00000000
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_INVERT                                          0x0000150a
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_KEEP                                            0x00001e00
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_REPLACE                                         0x00001e01
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR                                            0x00001e02
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR                                            0x00001e03
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP                                       0x00008507
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP                                       0x00008508
-#define  NV50TCL_STENCIL_BACK_OP_ZFAIL                                                 0x00001388
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_ZERO                                           0x00000000
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INVERT                                         0x0000150a
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_KEEP                                           0x00001e00
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_REPLACE                                                0x00001e01
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR                                           0x00001e02
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR                                           0x00001e03
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP                                      0x00008507
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP                                      0x00008508
-#define  NV50TCL_STENCIL_BACK_OP_ZPASS                                                 0x0000138c
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_ZERO                                           0x00000000
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INVERT                                         0x0000150a
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_KEEP                                           0x00001e00
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_REPLACE                                                0x00001e01
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR                                           0x00001e02
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR                                           0x00001e03
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP                                      0x00008507
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP                                      0x00008508
-#define  NV50TCL_STENCIL_BACK_FUNC_FUNC                                                        0x00001390
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NEVER                                         0x00000200
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LESS                                          0x00000201
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                         0x00000202
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                                0x00000203
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                      0x00000205
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                                0x00000206
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                                0x00000207
-#define  NV50TCL_STENCIL_BACK_FUNC_REF                                                 0x00001394
-#define  NV50TCL_STENCIL_BACK_MASK                                                     0x00001398
-#define  NV50TCL_STENCIL_BACK_FUNC_MASK                                                        0x0000139c
-#define  NV50TCL_LINE_WIDTH                                                            0x000013b0
-#define  NV50TCL_VP_START_ID                                                           0x0000140c
-#define  NV50TCL_GP_START_ID                                                           0x00001410
-#define  NV50TCL_FP_START_ID                                                           0x00001414
-#define  NV50TCL_POINT_SIZE                                                            0x00001518
-#define  NV50TCL_TSC_ADDRESS_HIGH                                                      0x0000155c
-#define  NV50TCL_TSC_ADDRESS_LOW                                                       0x00001560
-#define  NV50TCL_POLYGON_OFFSET_FACTOR                                                 0x0000156c
-#define  NV50TCL_LINE_SMOOTH_ENABLE                                                    0x00001570
-#define  NV50TCL_TIC_ADDRESS_HIGH                                                      0x00001574
-#define  NV50TCL_TIC_ADDRESS_LOW                                                       0x00001578
-#define  NV50TCL_STENCIL_FRONT_ENABLE                                                  0x00001594
-#define  NV50TCL_STENCIL_FRONT_OP_FAIL                                                 0x00001598
+#define  NV50TCL_STENCIL_FRONT_ENABLE                                                  0x00001380
+#define  NV50TCL_STENCIL_FRONT_OP_FAIL                                                 0x00001384
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_ZERO                                           0x00000000
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_INVERT                                         0x0000150a
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_KEEP                                           0x00001e00
@@ -5818,7 +8273,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_DECR                                           0x00001e03
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP                                      0x00008507
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP                                      0x00008508
-#define  NV50TCL_STENCIL_FRONT_OP_ZFAIL                                                        0x0000159c
+#define  NV50TCL_STENCIL_FRONT_OP_ZFAIL                                                        0x00001388
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_ZERO                                          0x00000000
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_INVERT                                                0x0000150a
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_KEEP                                          0x00001e00
@@ -5827,7 +8282,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_DECR                                          0x00001e03
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP                                     0x00008507
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP                                     0x00008508
-#define  NV50TCL_STENCIL_FRONT_OP_ZPASS                                                        0x000015a0
+#define  NV50TCL_STENCIL_FRONT_OP_ZPASS                                                        0x0000138c
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_ZERO                                          0x00000000
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_INVERT                                                0x0000150a
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_KEEP                                          0x00001e00
@@ -5836,17 +8291,145 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_DECR                                          0x00001e03
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP                                     0x00008507
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP                                     0x00008508
-#define  NV50TCL_STENCIL_FRONT_FUNC_FUNC                                               0x000015a4
+#define  NV50TCL_STENCIL_FRONT_FUNC_FUNC                                               0x00001390
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_NEVER                                                0x00000200
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_LESS                                         0x00000201
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL                                                0x00000202
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL                                       0x00000203
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
-#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL                                     0x00000205
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL                                       0x00000206
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS                                       0x00000207
+#define  NV50TCL_STENCIL_FRONT_FUNC_REF                                                        0x00001394
+#define  NV50TCL_STENCIL_FRONT_MASK                                                    0x00001398
+#define  NV50TCL_STENCIL_FRONT_FUNC_MASK                                               0x0000139c
+#define  NV50TCL_FRAG_COLOR_CLAMP_EN                                                   0x000013a8
+#define  NV50TCL_Y_ORIGIN_BOTTOM                                                       0x000013ac
+#define  NV50TCL_LINE_WIDTH                                                            0x000013b0
+#define  NV50TCL_TEX_LIMITS(x)                                                         (0x000013b4+((x)*4))
+#define  NV50TCL_TEX_LIMITS__SIZE                                                      0x00000003
+#define   NV50TCL_TEX_LIMITS_SAMPLERS_LOG2_SHIFT                                       0
+#define   NV50TCL_TEX_LIMITS_SAMPLERS_LOG2_MASK                                                0x0000000f
+#define   NV50TCL_TEX_LIMITS_TEXTURES_LOG2_SHIFT                                       4
+#define   NV50TCL_TEX_LIMITS_TEXTURES_LOG2_MASK                                                0x000000f0
+#define  NV50TCL_POINT_COORD_REPLACE_MAP(x)                                            (0x000013c0+((x)*4))
+#define  NV50TCL_POINT_COORD_REPLACE_MAP__SIZE                                         0x00000008
+#define  NV50TCL_VP_START_ID                                                           0x0000140c
+#define  NV50TCL_GP_START_ID                                                           0x00001410
+#define  NV50TCL_FP_START_ID                                                           0x00001414
+#define  NV50TCL_GP_VERTEX_OUTPUT_COUNT                                                        0x00001420
+#define  NV50TCL_VB_ELEMENT_BASE                                                       0x00001434
+#define  NV50TCL_INSTANCE_BASE                                                         0x00001438
+#define  NV50TCL_CODE_CB_FLUSH                                                         0x00001440
+#define  NV50TCL_BIND_TSC(x)                                                           (0x00001444+((x)*8))
+#define  NV50TCL_BIND_TSC__SIZE                                                                0x00000003
+#define   NV50TCL_BIND_TSC_VALID                                                       (1 <<  0)
+#define   NV50TCL_BIND_TSC_SAMPLER_SHIFT                                               4
+#define   NV50TCL_BIND_TSC_SAMPLER_MASK                                                        0x000000f0
+#define   NV50TCL_BIND_TSC_TSC_SHIFT                                                   12
+#define   NV50TCL_BIND_TSC_TSC_MASK                                                    0x001ff000
+#define  NV50TCL_BIND_TIC(x)                                                           (0x00001448+((x)*8))
+#define  NV50TCL_BIND_TIC__SIZE                                                                0x00000003
+#define   NV50TCL_BIND_TIC_VALID                                                       (1 <<  0)
+#define   NV50TCL_BIND_TIC_TEXTURE_SHIFT                                               1
+#define   NV50TCL_BIND_TIC_TEXTURE_MASK                                                        0x000001fe
+#define   NV50TCL_BIND_TIC_TIC_SHIFT                                                   9
+#define   NV50TCL_BIND_TIC_TIC_MASK                                                    0x7ffffe00
+#define  NV50TCL_STRMOUT_MAP(x)                                                                (0x00001480+((x)*4))
+#define  NV50TCL_STRMOUT_MAP__SIZE                                                     0x00000020
+#define  NV50TCL_CLIPID_HEIGHT                                                         0x00001504
+#define  NV50TCL_VP_CLIP_DISTANCE_ENABLE                                               0x00001510
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_0                                            (1 <<  0)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_1                                            (1 <<  1)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_2                                            (1 <<  2)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_3                                            (1 <<  3)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_4                                            (1 <<  4)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_5                                            (1 <<  5)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_6                                            (1 <<  6)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_7                                            (1 <<  7)
+#define  NV50TCL_SAMPLECNT_ENABLE                                                      0x00001514
+#define  NV50TCL_POINT_SIZE                                                            0x00001518
+#define  NV50TCL_POINT_SPRITE_ENABLE                                                   0x00001520
+#define  NV50TCL_SAMPLECNT_RESET                                                       0x00001530
+#define  NV50TCL_ZETA_ENABLE                                                           0x00001538
+#define  NV50TCL_MULTISAMPLE_CTRL                                                      0x0000153c
+#define   NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_COVERAGE                                   (1 <<  0)
+#define   NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_ONE                                                (1 <<  4)
+#define  NV50TCL_NOPERSPECTIVE_BITMAP(x)                                               (0x00001540+((x)*4))
+#define  NV50TCL_NOPERSPECTIVE_BITMAP__SIZE                                            0x00000004
+#define  NV50TCL_COND_ADDRESS_HIGH                                                     0x00001550
+#define  NV50TCL_COND_ADDRESS_LOW                                                      0x00001554
+#define  NV50TCL_COND_MODE                                                             0x00001558
+#define   NV50TCL_COND_MODE_NEVER                                                      0x00000000
+#define   NV50TCL_COND_MODE_ALWAYS                                                     0x00000001
+#define   NV50TCL_COND_MODE_RES                                                                0x00000002
+#define   NV50TCL_COND_MODE_NOT_RES_AND_NOT_ID                                         0x00000003
+#define   NV50TCL_COND_MODE_RES_OR_ID                                                  0x00000004
+#define  NV50TCL_TSC_ADDRESS_HIGH                                                      0x0000155c
+#define  NV50TCL_TSC_ADDRESS_LOW                                                       0x00001560
+#define  NV50TCL_TSC_LIMIT                                                             0x00001564
+#define  NV50TCL_POLYGON_OFFSET_FACTOR                                                 0x0000156c
+#define  NV50TCL_LINE_SMOOTH_ENABLE                                                    0x00001570
+#define  NV50TCL_TIC_ADDRESS_HIGH                                                      0x00001574
+#define  NV50TCL_TIC_ADDRESS_LOW                                                       0x00001578
+#define  NV50TCL_TIC_LIMIT                                                             0x0000157c
+#define  NV50TCL_PM_CONTROL(x)                                                         (0x00001580+((x)*4))
+#define  NV50TCL_PM_CONTROL__SIZE                                                      0x00000004
+#define   NV50TCL_PM_CONTROL_UNK0                                                      (1 <<  0)
+#define   NV50TCL_PM_CONTROL_UNK1_SHIFT                                                        4
+#define   NV50TCL_PM_CONTROL_UNK1_MASK                                                 0x00000070
+#define   NV50TCL_PM_CONTROL_UNK2_SHIFT                                                        8
+#define   NV50TCL_PM_CONTROL_UNK2_MASK                                                 0xffffff00
+#define  NV50TCL_STENCIL_BACK_ENABLE                                                   0x00001594
+#define  NV50TCL_STENCIL_BACK_OP_FAIL                                                  0x00001598
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_ZERO                                            0x00000000
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_INVERT                                          0x0000150a
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_KEEP                                            0x00001e00
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_REPLACE                                         0x00001e01
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR                                            0x00001e02
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR                                            0x00001e03
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP                                       0x00008507
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP                                       0x00008508
+#define  NV50TCL_STENCIL_BACK_OP_ZFAIL                                                 0x0000159c
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_ZERO                                           0x00000000
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INVERT                                         0x0000150a
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_KEEP                                           0x00001e00
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_REPLACE                                                0x00001e01
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR                                           0x00001e02
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR                                           0x00001e03
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP                                      0x00008507
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP                                      0x00008508
+#define  NV50TCL_STENCIL_BACK_OP_ZPASS                                                 0x000015a0
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_ZERO                                           0x00000000
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INVERT                                         0x0000150a
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_KEEP                                           0x00001e00
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_REPLACE                                                0x00001e01
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR                                           0x00001e02
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR                                           0x00001e03
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP                                      0x00008507
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP                                      0x00008508
+#define  NV50TCL_STENCIL_BACK_FUNC_FUNC                                                        0x000015a4
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NEVER                                         0x00000200
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LESS                                          0x00000201
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                         0x00000202
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                                0x00000203
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                      0x00000205
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                                0x00000206
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                                0x00000207
+#define  NV50TCL_FRAMEBUFFER_SRGB                                                      0x000015b8
 #define  NV50TCL_POLYGON_OFFSET_UNITS                                                  0x000015bc
+#define  NV50TCL_GP_BUILTIN_RESULT_EN                                                  0x000015cc
+#define   NV50TCL_GP_BUILTIN_RESULT_EN_VPORT_IDX                                       (1 <<  0)
+#define   NV50TCL_GP_BUILTIN_RESULT_EN_LAYER_IDX                                       (1 << 16)
+#define  NV50TCL_MULTISAMPLE_MODE                                                      0x000015d0
+#define   NV50TCL_MULTISAMPLE_MODE_1X                                                  0x00000000
+#define   NV50TCL_MULTISAMPLE_MODE_2XMS                                                        0x00000001
+#define   NV50TCL_MULTISAMPLE_MODE_4XMS                                                        0x00000002
+#define   NV50TCL_MULTISAMPLE_MODE_8XMS                                                        0x00000004
+#define   NV50TCL_MULTISAMPLE_MODE_4XMS_4XCS                                           0x00000008
+#define   NV50TCL_MULTISAMPLE_MODE_4XMS_12XCS                                          0x00000009
+#define   NV50TCL_MULTISAMPLE_MODE_8XMS_8XCS                                           0x0000000a
 #define  NV50TCL_VERTEX_BEGIN                                                          0x000015dc
 #define   NV50TCL_VERTEX_BEGIN_POINTS                                                  0x00000000
 #define   NV50TCL_VERTEX_BEGIN_LINES                                                   0x00000001
@@ -5858,8 +8441,34 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_VERTEX_BEGIN_QUADS                                                   0x00000007
 #define   NV50TCL_VERTEX_BEGIN_QUAD_STRIP                                              0x00000008
 #define   NV50TCL_VERTEX_BEGIN_POLYGON                                                 0x00000009
+#define   NV50TCL_VERTEX_BEGIN_LINES_ADJACENCY                                         0x0000000a
+#define   NV50TCL_VERTEX_BEGIN_LINE_STRIP_ADJACENCY                                    0x0000000b
+#define   NV50TCL_VERTEX_BEGIN_TRIANGLES_ADJACENCY                                     0x0000000c
+#define   NV50TCL_VERTEX_BEGIN_TRIANGLE_STRIP_ADJACENCY                                        0x0000000d
+#define   NV50TCL_VERTEX_BEGIN_PATCHES                                                 0x0000000e
 #define  NV50TCL_VERTEX_END                                                            0x000015e0
+#define  NV50TCL_EDGEFLAG_ENABLE                                                       0x000015e4
+#define  NV50TCL_VB_ELEMENT_U32                                                                0x000015e8
+#define  NV50TCL_VB_ELEMENT_U16_SETUP                                                  0x000015ec
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_OFFSET_SHIFT                                    30
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_OFFSET_MASK                                     0xc0000000
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_COUNT_SHIFT                                     0
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_COUNT_MASK                                      0x3fffffff
+#define  NV50TCL_VB_ELEMENT_U16                                                                0x000015f0
+#define   NV50TCL_VB_ELEMENT_U16_I0_SHIFT                                              0
+#define   NV50TCL_VB_ELEMENT_U16_I0_MASK                                               0x0000ffff
+#define   NV50TCL_VB_ELEMENT_U16_I1_SHIFT                                              16
+#define   NV50TCL_VB_ELEMENT_U16_I1_MASK                                               0xffff0000
+#define  NV50TCL_VERTEX_BASE_HIGH                                                      0x000015f4
+#define  NV50TCL_VERTEX_BASE_LOW                                                       0x000015f8
 #define  NV50TCL_VERTEX_DATA                                                           0x00001640
+#define  NV50TCL_PRIM_RESTART_ENABLE                                                   0x00001644
+#define  NV50TCL_PRIM_RESTART_INDEX                                                    0x00001648
+#define  NV50TCL_VP_GP_BUILTIN_ATTR_EN                                                 0x0000164c
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_VERTEX_ID                                      (1 <<  0)
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_INSTANCE_ID                                    (1 <<  4)
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_PRIMITIVE_ID                                   (1 <<  8)
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_UNK12                                          (1 << 12)
 #define  NV50TCL_VP_ATTR_EN_0                                                          0x00001650
 #define   NV50TCL_VP_ATTR_EN_0_7_SHIFT                                                 28
 #define   NV50TCL_VP_ATTR_EN_0_7_MASK                                                  0xf0000000
@@ -6150,29 +8759,82 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV50TCL_VP_ATTR_EN_1_8_XNZW                                                 0x0000000d
 #define    NV50TCL_VP_ATTR_EN_1_8_NYZW                                                 0x0000000e
 #define    NV50TCL_VP_ATTR_EN_1_8_XYZW                                                 0x0000000f
+#define  NV50TCL_POINT_SPRITE_CTRL                                                     0x00001660
 #define  NV50TCL_LINE_STIPPLE_ENABLE                                                   0x0000166c
 #define  NV50TCL_LINE_STIPPLE_PATTERN                                                  0x00001680
+#define  NV50TCL_PROVOKING_VERTEX_LAST                                                 0x00001684
+#define  NV50TCL_VERTEX_TWO_SIDE_ENABLE                                                        0x00001688
 #define  NV50TCL_POLYGON_STIPPLE_ENABLE                                                        0x0000168c
-#define  NV50TCL_VP_REG_HPOS                                                           0x000016bc
-#define   NV50TCL_VP_REG_HPOS_X_SHIFT                                                  0
-#define   NV50TCL_VP_REG_HPOS_X_MASK                                                   0x000000ff
-#define   NV50TCL_VP_REG_HPOS_Y_SHIFT                                                  8
-#define   NV50TCL_VP_REG_HPOS_Y_MASK                                                   0x0000ff00
-#define   NV50TCL_VP_REG_HPOS_Z_SHIFT                                                  16
-#define   NV50TCL_VP_REG_HPOS_Z_MASK                                                   0x00ff0000
-#define   NV50TCL_VP_REG_HPOS_W_SHIFT                                                  24
-#define   NV50TCL_VP_REG_HPOS_W_MASK                                                   0xff000000
-#define  NV50TCL_VP_REG_COL0                                                           0x000016c0
-#define   NV50TCL_VP_REG_COL0_X_SHIFT                                                  0
-#define   NV50TCL_VP_REG_COL0_X_MASK                                                   0x000000ff
-#define   NV50TCL_VP_REG_COL0_Y_SHIFT                                                  8
-#define   NV50TCL_VP_REG_COL0_Y_MASK                                                   0x0000ff00
-#define   NV50TCL_VP_REG_COL0_Z_SHIFT                                                  16
-#define   NV50TCL_VP_REG_COL0_Z_MASK                                                   0x00ff0000
-#define   NV50TCL_VP_REG_COL0_W_SHIFT                                                  24
-#define   NV50TCL_VP_REG_COL0_W_MASK                                                   0xff000000
+#define  NV50TCL_SET_PROGRAM_CB                                                                0x00001694
+#define   NV50TCL_SET_PROGRAM_CB_PROGRAM_SHIFT                                         4
+#define   NV50TCL_SET_PROGRAM_CB_PROGRAM_MASK                                          0x000000f0
+#define    NV50TCL_SET_PROGRAM_CB_PROGRAM_VERTEX                                       0x00000000
+#define    NV50TCL_SET_PROGRAM_CB_PROGRAM_GEOMETRY                                     0x00000020
+#define    NV50TCL_SET_PROGRAM_CB_PROGRAM_FRAGMENT                                     0x00000030
+#define   NV50TCL_SET_PROGRAM_CB_INDEX_SHIFT                                           8
+#define   NV50TCL_SET_PROGRAM_CB_INDEX_MASK                                            0x00000f00
+#define   NV50TCL_SET_PROGRAM_CB_BUFFER_SHIFT                                          12
+#define   NV50TCL_SET_PROGRAM_CB_BUFFER_MASK                                           0x0007f000
+#define   NV50TCL_SET_PROGRAM_CB_VALID                                                 (1 <<  0)
+#define  NV50TCL_VP_RESULT_MAP_SIZE                                                    0x000016ac
+#define  NV50TCL_VP_REG_ALLOC_TEMP                                                     0x000016b0
+#define  NV50TCL_VP_REG_ALLOC_RESULT                                                   0x000016b8
+#define  NV50TCL_VP_RESULT_MAP(x)                                                      (0x000016bc+((x)*4))
+#define  NV50TCL_VP_RESULT_MAP__SIZE                                                   0x00000010
+#define   NV50TCL_VP_RESULT_MAP_0_SHIFT                                                        0
+#define   NV50TCL_VP_RESULT_MAP_0_MASK                                                 0x000000ff
+#define   NV50TCL_VP_RESULT_MAP_1_SHIFT                                                        8
+#define   NV50TCL_VP_RESULT_MAP_1_MASK                                                 0x0000ff00
+#define   NV50TCL_VP_RESULT_MAP_2_SHIFT                                                        16
+#define   NV50TCL_VP_RESULT_MAP_2_MASK                                                 0x00ff0000
+#define   NV50TCL_VP_RESULT_MAP_3_SHIFT                                                        24
+#define   NV50TCL_VP_RESULT_MAP_3_MASK                                                 0xff000000
 #define  NV50TCL_POLYGON_STIPPLE_PATTERN(x)                                            (0x00001700+((x)*4))
 #define  NV50TCL_POLYGON_STIPPLE_PATTERN__SIZE                                         0x00000020
+#define  NV50TCL_GP_ENABLE                                                             0x00001798
+#define  NV50TCL_GP_REG_ALLOC_TEMP                                                     0x000017a0
+#define  NV50TCL_GP_REG_ALLOC_RESULT                                                   0x000017a8
+#define  NV50TCL_GP_RESULT_MAP_SIZE                                                    0x000017ac
+#define  NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE                                              0x000017b0
+#define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_POINTS                                      0x00000001
+#define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_LINE_STRIP                                  0x00000002
+#define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_TRIANGLE_STRIP                              0x00000003
+#define  NV50TCL_RASTERIZE_ENABLE                                                      0x000017b4
+#define  NV50TCL_STRMOUT_ENABLE                                                                0x000017b8
+#define  NV50TCL_GP_RESULT_MAP(x)                                                      (0x000017fc+((x)*4))
+#define  NV50TCL_GP_RESULT_MAP__SIZE                                                   0x00000020
+#define   NV50TCL_GP_RESULT_MAP_0_SHIFT                                                        0
+#define   NV50TCL_GP_RESULT_MAP_0_MASK                                                 0x000000ff
+#define   NV50TCL_GP_RESULT_MAP_1_SHIFT                                                        8
+#define   NV50TCL_GP_RESULT_MAP_1_MASK                                                 0x0000ff00
+#define   NV50TCL_GP_RESULT_MAP_2_SHIFT                                                        16
+#define   NV50TCL_GP_RESULT_MAP_2_MASK                                                 0x00ff0000
+#define   NV50TCL_GP_RESULT_MAP_3_SHIFT                                                        24
+#define   NV50TCL_GP_RESULT_MAP_3_MASK                                                 0xff000000
+#define  NV50TCL_MAP_SEMANTIC_0                                                                0x00001904
+#define   NV50TCL_MAP_SEMANTIC_0_FFC0_ID_SHIFT                                         0
+#define   NV50TCL_MAP_SEMANTIC_0_FFC0_ID_MASK                                          0x000000ff
+#define   NV50TCL_MAP_SEMANTIC_0_BFC0_ID_SHIFT                                         8
+#define   NV50TCL_MAP_SEMANTIC_0_BFC0_ID_MASK                                          0x0000ff00
+#define   NV50TCL_MAP_SEMANTIC_0_COLR_NR_SHIFT                                         16
+#define   NV50TCL_MAP_SEMANTIC_0_COLR_NR_MASK                                          0x00ff0000
+#define   NV50TCL_MAP_SEMANTIC_0_CLMP_EN_SHIFT                                         24
+#define   NV50TCL_MAP_SEMANTIC_0_CLMP_EN_MASK                                          0xff000000
+#define  NV50TCL_MAP_SEMANTIC_1                                                                0x00001908
+#define   NV50TCL_MAP_SEMANTIC_1_CLIP_LO_SHIFT                                         0
+#define   NV50TCL_MAP_SEMANTIC_1_CLIP_LO_MASK                                          0x000000ff
+#define   NV50TCL_MAP_SEMANTIC_1_CLIP_HI_SHIFT                                         8
+#define   NV50TCL_MAP_SEMANTIC_1_CLIP_HI_MASK                                          0x0000ff00
+#define  NV50TCL_MAP_SEMANTIC_2                                                                0x0000190c
+#define   NV50TCL_MAP_SEMANTIC_2_LAYER_ID_SHIFT                                                0
+#define   NV50TCL_MAP_SEMANTIC_2_LAYER_ID_MASK                                         0x000000ff
+#define  NV50TCL_MAP_SEMANTIC_3                                                                0x00001910
+#define   NV50TCL_MAP_SEMANTIC_3_PTSZ_EN                                               (1 <<  0)
+#define   NV50TCL_MAP_SEMANTIC_3_PTSZ_ID_SHIFT                                         4
+#define   NV50TCL_MAP_SEMANTIC_3_PTSZ_ID_MASK                                          0x00000ff0
+#define  NV50TCL_MAP_SEMANTIC_4                                                                0x00001914
+#define   NV50TCL_MAP_SEMANTIC_4_PRIM_ID_SHIFT                                         0
+#define   NV50TCL_MAP_SEMANTIC_4_PRIM_ID_MASK                                          0x000000ff
 #define  NV50TCL_CULL_FACE_ENABLE                                                      0x00001918
 #define  NV50TCL_FRONT_FACE                                                            0x0000191c
 #define   NV50TCL_FRONT_FACE_CW                                                                0x00000900
@@ -6181,6 +8843,51 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_CULL_FACE_FRONT                                                      0x00000404
 #define   NV50TCL_CULL_FACE_BACK                                                       0x00000405
 #define   NV50TCL_CULL_FACE_FRONT_AND_BACK                                             0x00000408
+#define  NV50TCL_VIEWPORT_TRANSFORM_EN                                                 0x0000192c
+#define  NV50TCL_VIEW_VOLUME_CLIP_CTRL                                                 0x0000193c
+#define  NV50TCL_VIEWPORT_CLIP_RECTS_EN                                                        0x0000194c
+#define  NV50TCL_VIEWPORT_CLIP_MODE                                                    0x00001950
+#define   NV50TCL_VIEWPORT_CLIP_MODE_INCLUDE                                           0x00000000
+#define   NV50TCL_VIEWPORT_CLIP_MODE_EXCLUDE                                           0x00000001
+#define   NV50TCL_VIEWPORT_CLIP_MODE_UNKNOWN                                           0x00000002
+#define  NV50TCL_FP_CTRL_UNK196C                                                       0x0000196c
+#define  NV50TCL_CLIPID_ENABLE                                                         0x0000197c
+#define  NV50TCL_CLIPID_WIDTH                                                          0x00001980
+#define  NV50TCL_CLIPID_ID                                                             0x00001984
+#define  NV50TCL_FP_INTERPOLANT_CTRL                                                   0x00001988
+#define   NV50TCL_FP_INTERPOLANT_CTRL_UMASK_SHIFT                                      24
+#define   NV50TCL_FP_INTERPOLANT_CTRL_UMASK_MASK                                       0xff000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NONE                                      0x00000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNNN                                      0x01000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYNN                                      0x02000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYNN                                      0x03000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNZN                                      0x04000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNZN                                      0x05000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYZN                                      0x06000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYZN                                      0x07000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNNW                                      0x08000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNNW                                      0x09000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYNW                                      0x0a000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYNW                                      0x0b000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNZW                                      0x0c000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNZW                                      0x0d000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYZW                                      0x0e000000
+#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYZW                                      0x0f000000
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_NONFLAT_SHIFT                              16
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_NONFLAT_MASK                               0x00ff0000
+#define   NV50TCL_FP_INTERPOLANT_CTRL_OFFSET_SHIFT                                     8
+#define   NV50TCL_FP_INTERPOLANT_CTRL_OFFSET_MASK                                      0x0000ff00
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_SHIFT                                      0
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_MASK                                       0x000000ff
+#define  NV50TCL_FP_REG_ALLOC_TEMP                                                     0x0000198c
+#define  NV50TCL_REG_MODE                                                              0x000019a0
+#define   NV50TCL_REG_MODE_PACKED                                                      0x00000001
+#define   NV50TCL_REG_MODE_STRIPED                                                     0x00000002
+#define  NV50TCL_FP_CONTROL                                                            0x000019a8
+#define   NV50TCL_FP_CONTROL_MULTIPLE_RESULTS                                          (1 <<  0)
+#define   NV50TCL_FP_CONTROL_EXPORTS_Z                                                 (1 <<  8)
+#define   NV50TCL_FP_CONTROL_USES_KIL                                                  (1 << 20)
+#define  NV50TCL_DEPTH_BOUNDS_EN                                                       0x000019bc
 #define  NV50TCL_LOGIC_OP_ENABLE                                                       0x000019c4
 #define  NV50TCL_LOGIC_OP                                                              0x000019c8
 #define   NV50TCL_LOGIC_OP_CLEAR                                                       0x00001500
@@ -6200,6 +8907,16 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_LOGIC_OP_NAND                                                                0x0000150e
 #define   NV50TCL_LOGIC_OP_SET                                                         0x0000150f
 #define  NV50TCL_CLEAR_BUFFERS                                                         0x000019d0
+#define   NV50TCL_CLEAR_BUFFERS_Z                                                      (1 <<  0)
+#define   NV50TCL_CLEAR_BUFFERS_S                                                      (1 <<  1)
+#define   NV50TCL_CLEAR_BUFFERS_R                                                      (1 <<  2)
+#define   NV50TCL_CLEAR_BUFFERS_G                                                      (1 <<  3)
+#define   NV50TCL_CLEAR_BUFFERS_B                                                      (1 <<  4)
+#define   NV50TCL_CLEAR_BUFFERS_A                                                      (1 <<  5)
+#define   NV50TCL_CLEAR_BUFFERS_RT_SHIFT                                               6
+#define   NV50TCL_CLEAR_BUFFERS_RT_MASK                                                        0x000003c0
+#define   NV50TCL_CLEAR_BUFFERS_LAYER_SHIFT                                            10
+#define   NV50TCL_CLEAR_BUFFERS_LAYER_MASK                                             0x0007fc00
 #define  NV50TCL_COLOR_MASK(x)                                                         (0x00001a00+((x)*4))
 #define  NV50TCL_COLOR_MASK__SIZE                                                      0x00000008
 #define   NV50TCL_COLOR_MASK_R_SHIFT                                                   0
@@ -6210,50 +8927,1133 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_COLOR_MASK_B_MASK                                                    0x00000f00
 #define   NV50TCL_COLOR_MASK_A_SHIFT                                                   12
 #define   NV50TCL_COLOR_MASK_A_MASK                                                    0x0000f000
+#define  NV50TCL_STRMOUT_ADDRESS_HIGH(x)                                               (0x00001a80+((x)*16))
+#define  NV50TCL_STRMOUT_ADDRESS_HIGH__SIZE                                            0x00000004
+#define  NV50TCL_STRMOUT_ADDRESS_LOW(x)                                                        (0x00001a84+((x)*16))
+#define  NV50TCL_STRMOUT_ADDRESS_LOW__SIZE                                             0x00000004
+#define  NV50TCL_STRMOUT_NUM_ATTRIBS(x)                                                        (0x00001a88+((x)*16))
+#define  NV50TCL_STRMOUT_NUM_ATTRIBS__SIZE                                             0x00000004
+#define  NV50TCL_VERTEX_ARRAY_ATTRIB(x)                                                        (0x00001ac0+((x)*4))
+#define  NV50TCL_VERTEX_ARRAY_ATTRIB__SIZE                                             0x00000010
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_SHIFT                                     0
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_MASK                                      0x0000000f
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_CONST                                            (1 <<  4)
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_OFFSET_SHIFT                                     5
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_OFFSET_MASK                                      0x0007ffe0
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_SHIFT                                     19
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_MASK                                      0x01f80000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32_32                              0x00080000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32                                 0x00100000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16_16                              0x00180000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32                                    0x00200000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16                                 0x00280000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8_8                                  0x00500000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16                                    0x00780000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32                                       0x00900000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8                                    0x00980000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8                                      0x00c00000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16                                       0x00d80000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8                                                0x00e80000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_2_10_10_10                               0x01800000
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SHIFT                                       25
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_MASK                                                0x0e000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT                                      0x0e000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SNORM                                      0x02000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UNORM                                      0x04000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_USCALED                                    0x0a000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED                                    0x0c000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UINT                                       0x08000000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SINT                                       0x06000000
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_BGRA                                             (1 << 31)
+#define  NV50TCL_QUERY_ADDRESS_HIGH                                                    0x00001b00
+#define  NV50TCL_QUERY_ADDRESS_LOW                                                     0x00001b04
+#define  NV50TCL_QUERY_SEQUENCE                                                                0x00001b08
+#define  NV50TCL_QUERY_GET                                                             0x00001b0c
+
+
+#define NV84TCL                                                                                0x00008297
+
+
+
+#define NVA0TCL                                                                                0x00008397
+
+
+
+#define NVA8TCL                                                                                0x00008597
+
 
 
 #define NV50_COMPUTE                                                                   0x000050c0
 
-#define  NV50_COMPUTE_DMA_UNK0                                                         0x000001a0
-#define  NV50_COMPUTE_DMA_STATUS                                                       0x000001a4
-#define  NV50_COMPUTE_DMA_UNK1                                                         0x000001b8
-#define  NV50_COMPUTE_DMA_UNK2                                                         0x000001bc
-#define  NV50_COMPUTE_DMA_UNK3                                                         0x000001c0
-#define  NV50_COMPUTE_UNK4_HIGH                                                                0x00000210
-#define  NV50_COMPUTE_UNK4_LOW                                                         0x00000214
-#define  NV50_COMPUTE_UNK5_HIGH                                                                0x00000218
-#define  NV50_COMPUTE_UNK5_LOW                                                         0x0000021c
-#define  NV50_COMPUTE_UNK6_HIGH                                                                0x00000294
-#define  NV50_COMPUTE_UNK6_LOW                                                         0x00000298
-#define  NV50_COMPUTE_CONST_BASE_HIGH                                                  0x000002a4
-#define  NV50_COMPUTE_CONST_BASE_LO                                                    0x000002a8
-#define  NV50_COMPUTE_CONST_SIZE_SEG                                                   0x000002ac
-#define  NV50_COMPUTE_REG_COUNT                                                                0x000002c0
-#define  NV50_COMPUTE_STATUS_HIGH                                                      0x00000310
-#define  NV50_COMPUTE_STATUS_LOW                                                       0x00000314
-#define  NV50_COMPUTE_EXECUTE                                                          0x0000031c
+#define  NV50_COMPUTE_NOP                                                              0x00000100
+#define  NV50_COMPUTE_NOTIFY                                                           0x00000104
+#define  NV50_COMPUTE_SERIALIZE                                                                0x00000110
+#define  NV50_COMPUTE_DMA_NOTIFY                                                       0x00000180
+#define  NV50_COMPUTE_DMA_GLOBAL                                                       0x000001a0
+#define  NV50_COMPUTE_DMA_QUERY                                                                0x000001a4
+#define  NV50_COMPUTE_DMA_LOCAL                                                                0x000001b8
+#define  NV50_COMPUTE_DMA_STACK                                                                0x000001bc
+#define  NV50_COMPUTE_DMA_CODE_CB                                                      0x000001c0
+#define  NV50_COMPUTE_DMA_TSC                                                          0x000001c4
+#define  NV50_COMPUTE_DMA_TIC                                                          0x000001c8
+#define  NV50_COMPUTE_DMA_TEXTURE                                                      0x000001cc
+#define  NV50_COMPUTE_CP_ADDRESS_HIGH                                                  0x00000210
+#define  NV50_COMPUTE_CP_ADDRESS_LOW                                                   0x00000214
+#define  NV50_COMPUTE_STACK_ADDRESS_HIGH                                               0x00000218
+#define  NV50_COMPUTE_STACK_ADDRESS_LOW                                                        0x0000021c
+#define  NV50_COMPUTE_STACK_SIZE_LOG                                                   0x00000220
+#define  NV50_COMPUTE_TSC_ADDRESS_HIGH                                                 0x0000022c
+#define  NV50_COMPUTE_TSC_ADDRESS_LOW                                                  0x00000230
+#define  NV50_COMPUTE_TSC_LIMIT                                                                0x00000234
+#define  NV50_COMPUTE_CB_ADDR                                                          0x00000238
+#define   NV50_COMPUTE_CB_ADDR_ID_SHIFT                                                        8
+#define   NV50_COMPUTE_CB_ADDR_ID_MASK                                                 0x003fff00
+#define   NV50_COMPUTE_CB_ADDR_BUFFER_SHIFT                                            0
+#define   NV50_COMPUTE_CB_ADDR_BUFFER_MASK                                             0x0000007f
+#define  NV50_COMPUTE_CB_DATA(x)                                                       (0x0000023c+((x)*4))
+#define  NV50_COMPUTE_CB_DATA__SIZE                                                    0x00000010
+#define  NV50_COMPUTE_DELAY1                                                           0x00000284
+#define  NV50_COMPUTE_WATCHDOG_TIMER                                                   0x00000288
+#define  NV50_COMPUTE_DELAY2                                                           0x0000028c
+#define  NV50_COMPUTE_LOCAL_ADDRESS_HIGH                                               0x00000294
+#define  NV50_COMPUTE_LOCAL_ADDRESS_LOW                                                        0x00000298
+#define  NV50_COMPUTE_LOCAL_SIZE_LOG                                                   0x0000029c
+#define  NV50_COMPUTE_CB_DEF_ADDRESS_HIGH                                              0x000002a4
+#define  NV50_COMPUTE_CB_DEF_ADDRESS_LOW                                               0x000002a8
+#define  NV50_COMPUTE_CB_DEF_SET                                                       0x000002ac
+#define   NV50_COMPUTE_CB_DEF_SET_SIZE_SHIFT                                           0
+#define   NV50_COMPUTE_CB_DEF_SET_SIZE_MASK                                            0x0000ffff
+#define   NV50_COMPUTE_CB_DEF_SET_BUFFER_SHIFT                                         16
+#define   NV50_COMPUTE_CB_DEF_SET_BUFFER_MASK                                          0x007f0000
+#define  NV50_COMPUTE_BLOCK_ALLOC                                                      0x000002b4
+#define   NV50_COMPUTE_BLOCK_ALLOC_THREADS_SHIFT                                       0
+#define   NV50_COMPUTE_BLOCK_ALLOC_THREADS_MASK                                                0x0000ffff
+#define   NV50_COMPUTE_BLOCK_ALLOC_BARRIERS_SHIFT                                      16
+#define   NV50_COMPUTE_BLOCK_ALLOC_BARRIERS_MASK                                       0xffff0000
+#define  NV50_COMPUTE_LANES32_ENABLE                                                   0x000002b8
+#define  NV50_COMPUTE_CP_REG_ALLOC_TEMP                                                        0x000002c0
+#define  NV50_COMPUTE_TIC_ADDRESS_HIGH                                                 0x000002c4
+#define  NV50_COMPUTE_TIC_ADDRESS_LOW                                                  0x000002c8
+#define  NV50_COMPUTE_TIC_LIMIT                                                                0x000002cc
+#define  NV50_COMPUTE_PM_SET(x)                                                                (0x000002d0+((x)*4))
+#define  NV50_COMPUTE_PM_SET__SIZE                                                     0x00000004
+#define  NV50_COMPUTE_PM_CONTROL(x)                                                    (0x000002e0+((x)*4))
+#define  NV50_COMPUTE_PM_CONTROL__SIZE                                                 0x00000004
+#define   NV50_COMPUTE_PM_CONTROL_UNK0                                                 (1 <<  0)
+#define   NV50_COMPUTE_PM_CONTROL_UNK1_SHIFT                                           4
+#define   NV50_COMPUTE_PM_CONTROL_UNK1_MASK                                            0x00000070
+#define   NV50_COMPUTE_PM_CONTROL_UNK2_SHIFT                                           8
+#define   NV50_COMPUTE_PM_CONTROL_UNK2_MASK                                            0xffffff00
+#define  NV50_COMPUTE_LOCAL_WARPS_LOG_ALLOC                                            0x000002fc
+#define  NV50_COMPUTE_LOCAL_WARPS_NO_CLAMP                                             0x00000300
+#define  NV50_COMPUTE_STACK_WARPS_LOG_ALLOC                                            0x00000304
+#define  NV50_COMPUTE_STACK_WARPS_NO_CLAMP                                             0x00000308
+#define  NV50_COMPUTE_QUERY_ADDRESS_HIGH                                               0x00000310
+#define  NV50_COMPUTE_QUERY_ADDRESS_LOW                                                        0x00000314
+#define  NV50_COMPUTE_QUERY_COUNTER                                                    0x00000318
+#define  NV50_COMPUTE_QUERY_GET                                                                0x0000031c
+#define  NV50_COMPUTE_COND_ADDRESS_HIGH                                                        0x00000320
+#define  NV50_COMPUTE_COND_ADDRESS_LOW                                                 0x00000324
+#define  NV50_COMPUTE_COND_MODE                                                                0x00000328
+#define   NV50_COMPUTE_COND_MODE_NEVER                                                 0x00000000
+#define   NV50_COMPUTE_COND_MODE_ALWAYS                                                        0x00000001
+#define   NV50_COMPUTE_COND_MODE_RES                                                   0x00000002
+#define   NV50_COMPUTE_COND_MODE_NOT_RES_AND_NOT_ID                                    0x00000003
+#define   NV50_COMPUTE_COND_MODE_RES_OR_ID                                             0x00000004
+#define  NV50_COMPUTE_LAUNCH                                                           0x00000368
 #define  NV50_COMPUTE_USER_PARAM_COUNT                                                 0x00000374
-#define  NV50_COMPUTE_GRIDDIM_YX                                                       0x000003a4
+#define   NV50_COMPUTE_USER_PARAM_COUNT_COUNT_SHIFT                                    8
+#define   NV50_COMPUTE_USER_PARAM_COUNT_COUNT_MASK                                     0x0000ff00
+#define  NV50_COMPUTE_LINKED_TSC                                                       0x00000378
+#define  NV50_COMPUTE_CODE_CB_FLUSH                                                    0x00000380
+#define  NV50_COMPUTE_GRIDDIM                                                          0x000003a4
+#define   NV50_COMPUTE_GRIDDIM_X_SHIFT                                                 0
+#define   NV50_COMPUTE_GRIDDIM_X_MASK                                                  0x0000ffff
+#define   NV50_COMPUTE_GRIDDIM_Y_SHIFT                                                 16
+#define   NV50_COMPUTE_GRIDDIM_Y_MASK                                                  0xffff0000
 #define  NV50_COMPUTE_SHARED_SIZE                                                      0x000003a8
 #define  NV50_COMPUTE_BLOCKDIM_YX                                                      0x000003ac
+#define   NV50_COMPUTE_BLOCKDIM_YX_X_SHIFT                                             0
+#define   NV50_COMPUTE_BLOCKDIM_YX_X_MASK                                              0x0000ffff
+#define   NV50_COMPUTE_BLOCKDIM_YX_Y_SHIFT                                             16
+#define   NV50_COMPUTE_BLOCKDIM_YX_Y_MASK                                              0xffff0000
 #define  NV50_COMPUTE_BLOCKDIM_Z                                                       0x000003b0
-#define  NV50_COMPUTE_CALL_ADDRESS                                                     0x000003b4
-#define  NV50_COMPUTE_GLOBAL_BASE_HIGH(x)                                              (0x00000400+((x)*32))
-#define  NV50_COMPUTE_GLOBAL_BASE_HIGH__SIZE                                           0x00000010
-#define  NV50_COMPUTE_GLOBAL_BASE_LOW(x)                                               (0x00000404+((x)*32))
-#define  NV50_COMPUTE_GLOBAL_BASE_LOW__SIZE                                            0x00000010
-#define  NV50_COMPUTE_GLOBAL_LIMIT_HIGH(x)                                             (0x00000408+((x)*32))
-#define  NV50_COMPUTE_GLOBAL_LIMIT_HIGH__SIZE                                          0x00000010
-#define  NV50_COMPUTE_GLOBAL_LIMIT_LOW(x)                                              (0x0000040c+((x)*32))
-#define  NV50_COMPUTE_GLOBAL_LIMIT_LOW__SIZE                                           0x00000010
-#define  NV50_COMPUTE_GLOBAL_UNK(x)                                                    (0x00000410+((x)*32))
-#define  NV50_COMPUTE_GLOBAL_UNK__SIZE                                                 0x00000010
+#define  NV50_COMPUTE_CP_START_ID                                                      0x000003b4
+#define  NV50_COMPUTE_REG_MODE                                                         0x000003b8
+#define   NV50_COMPUTE_REG_MODE_PACKED                                                 0x00000001
+#define   NV50_COMPUTE_REG_MODE_STRIPED                                                        0x00000002
+#define  NV50_COMPUTE_TEX_LIMITS                                                       0x000003bc
+#define   NV50_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2_SHIFT                                  0
+#define   NV50_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2_MASK                                   0x0000000f
+#define   NV50_COMPUTE_TEX_LIMITS_TEXTURES_LOG2_SHIFT                                  4
+#define   NV50_COMPUTE_TEX_LIMITS_TEXTURES_LOG2_MASK                                   0x000000f0
+#define  NV50_COMPUTE_BIND_TSC                                                         0x000003c0
+#define   NV50_COMPUTE_BIND_TSC_VALID                                                  (1 <<  0)
+#define   NV50_COMPUTE_BIND_TSC_SAMPLER_SHIFT                                          4
+#define   NV50_COMPUTE_BIND_TSC_SAMPLER_MASK                                           0x000000f0
+#define   NV50_COMPUTE_BIND_TSC_TSC_SHIFT                                              12
+#define   NV50_COMPUTE_BIND_TSC_TSC_MASK                                               0x001ff000
+#define  NV50_COMPUTE_BIND_TIC                                                         0x000003c4
+#define   NV50_COMPUTE_BIND_TIC_VALID                                                  (1 <<  0)
+#define   NV50_COMPUTE_BIND_TIC_TEXTURE_SHIFT                                          1
+#define   NV50_COMPUTE_BIND_TIC_TEXTURE_MASK                                           0x000001fe
+#define   NV50_COMPUTE_BIND_TIC_TIC_SHIFT                                              9
+#define   NV50_COMPUTE_BIND_TIC_TIC_MASK                                               0x7ffffe00
+#define  NV50_COMPUTE_SET_PROGRAM_CB                                                   0x000003c8
+#define   NV50_COMPUTE_SET_PROGRAM_CB_INDEX_SHIFT                                      8
+#define   NV50_COMPUTE_SET_PROGRAM_CB_INDEX_MASK                                       0x00000f00
+#define   NV50_COMPUTE_SET_PROGRAM_CB_BUFFER_SHIFT                                     12
+#define   NV50_COMPUTE_SET_PROGRAM_CB_BUFFER_MASK                                      0x0007f000
+#define   NV50_COMPUTE_SET_PROGRAM_CB_VALID                                            (1 <<  0)
+#define  NV50_COMPUTE_GLOBAL_ADDRESS_HIGH(x)                                           (0x00000400+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_ADDRESS_HIGH__SIZE                                                0x00000010
+#define  NV50_COMPUTE_GLOBAL_ADDRESS_LOW(x)                                            (0x00000404+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_ADDRESS_LOW__SIZE                                         0x00000010
+#define  NV50_COMPUTE_GLOBAL_PITCH(x)                                                  (0x00000408+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_PITCH__SIZE                                               0x00000010
+#define  NV50_COMPUTE_GLOBAL_LIMIT(x)                                                  (0x0000040c+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_LIMIT__SIZE                                               0x00000010
+#define  NV50_COMPUTE_GLOBAL_MODE(x)                                                   (0x00000410+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_MODE__SIZE                                                        0x00000010
+#define   NV50_COMPUTE_GLOBAL_MODE_LINEAR                                              (1 <<  0)
+#define   NV50_COMPUTE_GLOBAL_MODE_TILE_MODE_SHIFT                                     8
+#define   NV50_COMPUTE_GLOBAL_MODE_TILE_MODE_MASK                                      0x00000f00
 #define  NV50_COMPUTE_USER_PARAM(x)                                                    (0x00000600+((x)*4))
 #define  NV50_COMPUTE_USER_PARAM__SIZE                                                 0x00000040
 
 
-#define NV54TCL                                                                                0x00008297
-
+#define NVC0TCL                                                                                0x00009097
+
+#define  NVC0TCL_SEMAPHORE_ADDRESS_HIGH                                                        0x00000010
+#define  NVC0TCL_SEMAPHORE_ADDRESS_LOW                                                 0x00000014
+#define  NVC0TCL_NOP                                                                   0x00000100
+#define  NVC0TCL_NOTIFY_ADDRESS_HIGH                                                   0x00000104
+#define  NVC0TCL_NOTIFY_ADDRESS_LOW                                                    0x00000108
+#define  NVC0TCL_NOTIFY                                                                        0x0000010c
+#define  NVC0TCL_SERIALIZE                                                             0x00000110
+#define  NVC0TCL_EARLY_FRAGMENT_TESTS                                                  0x00000210
+#define  NVC0TCL_TESS_MODE                                                             0x00000320
+#define   NVC0TCL_TESS_MODE_PRIM_SHIFT                                                 0
+#define   NVC0TCL_TESS_MODE_PRIM_MASK                                                  0x0000000f
+#define    NVC0TCL_TESS_MODE_PRIM_ISOLINES                                             0x00000000
+#define    NVC0TCL_TESS_MODE_PRIM_TRIANGLES                                            0x00000001
+#define    NVC0TCL_TESS_MODE_PRIM_QUADS                                                        0x00000002
+#define   NVC0TCL_TESS_MODE_SPACING_SHIFT                                              4
+#define   NVC0TCL_TESS_MODE_SPACING_MASK                                               0x000000f0
+#define    NVC0TCL_TESS_MODE_SPACING_EQUAL                                             0x00000000
+#define    NVC0TCL_TESS_MODE_SPACING_FRACTIONAL_ODD                                    0x00000010
+#define    NVC0TCL_TESS_MODE_SPACING_FRACTIONAL_EVEN                                   0x00000020
+#define   NVC0TCL_TESS_MODE_CW                                                         (1 <<  8)
+#define   NVC0TCL_TESS_MODE_CONNECTED                                                  (1 <<  9)
+#define  NVC0TCL_TESS_LEVEL_OUTER(x)                                                   (0x00000324+((x)*4))
+#define  NVC0TCL_TESS_LEVEL_OUTER__SIZE                                                        0x00000004
+#define  NVC0TCL_TESS_LEVEL_INNER(x)                                                   (0x00000334+((x)*4))
+#define  NVC0TCL_TESS_LEVEL_INNER__SIZE                                                        0x00000002
+#define  NVC0TCL_RASTERIZE_ENABLE                                                      0x0000037c
+#define  NVC0TCL_TFB_BUFFER_ENABLE(x)                                                  (0x00000380+((x)*32))
+#define  NVC0TCL_TFB_BUFFER_ENABLE__SIZE                                               0x00000004
+#define  NVC0TCL_TFB_ADDRESS_HIGH(x)                                                   (0x00000384+((x)*32))
+#define  NVC0TCL_TFB_ADDRESS_HIGH__SIZE                                                        0x00000004
+#define  NVC0TCL_TFB_ADDRESS_LOW(x)                                                    (0x00000388+((x)*32))
+#define  NVC0TCL_TFB_ADDRESS_LOW__SIZE                                                 0x00000004
+#define  NVC0TCL_TFB_BUFFER_SIZE(x)                                                    (0x0000038c+((x)*32))
+#define  NVC0TCL_TFB_BUFFER_SIZE__SIZE                                                 0x00000004
+#define  NVC0TCL_TFB_PRIMITIVE_ID(x)                                                   (0x00000390+((x)*32))
+#define  NVC0TCL_TFB_PRIMITIVE_ID__SIZE                                                        0x00000004
+#define  NVC0TCL_TFB_UNK0700(x)                                                                (0x00000700+((x)*16))
+#define  NVC0TCL_TFB_UNK0700__SIZE                                                     0x00000004
+#define  NVC0TCL_TFB_VARYING_COUNT(x)                                                  (0x00000704+((x)*16))
+#define  NVC0TCL_TFB_VARYING_COUNT__SIZE                                               0x00000004
+#define  NVC0TCL_TFB_BUFFER_STRIDE(x)                                                  (0x00000708+((x)*16))
+#define  NVC0TCL_TFB_BUFFER_STRIDE__SIZE                                               0x00000004
+#define  NVC0TCL_TFB_ENABLE                                                            0x00000744
+#define  NVC0TCL_LOCAL_BASE                                                            0x0000077c
+#define  NVC0TCL_UNK0790_ADDRESS_HIGH                                                  0x00000790
+#define  NVC0TCL_UNK0790_ADDRESS_LOW                                                   0x00000794
+#define  NVC0TCL_RT_ADDRESS_HIGH(x)                                                    (0x00000800+((x)*32))
+#define  NVC0TCL_RT_ADDRESS_HIGH__SIZE                                                 0x00000008
+#define  NVC0TCL_RT_ADDRESS_LOW(x)                                                     (0x00000804+((x)*32))
+#define  NVC0TCL_RT_ADDRESS_LOW__SIZE                                                  0x00000008
+#define  NVC0TCL_RT_HORIZ(x)                                                           (0x00000808+((x)*32))
+#define  NVC0TCL_RT_HORIZ__SIZE                                                                0x00000008
+#define  NVC0TCL_RT_VERT(x)                                                            (0x0000080c+((x)*32))
+#define  NVC0TCL_RT_VERT__SIZE                                                         0x00000008
+#define  NVC0TCL_RT_FORMAT(x)                                                          (0x00000810+((x)*32))
+#define  NVC0TCL_RT_FORMAT__SIZE                                                       0x00000008
+#define   NVC0TCL_RT_FORMAT_R32G32B32A32_FLOAT                                         0x000000c0
+#define   NVC0TCL_RT_FORMAT_R32G32B32A32_SINT                                          0x000000c1
+#define   NVC0TCL_RT_FORMAT_R32G32B32A32_UINT                                          0x000000c2
+#define   NVC0TCL_RT_FORMAT_R32G32B32X32_FLOAT                                         0x000000c3
+#define   NVC0TCL_RT_FORMAT_R16G16B16A16_UNORM                                         0x000000c6
+#define   NVC0TCL_RT_FORMAT_R16G16B16A16_SNORM                                         0x000000c7
+#define   NVC0TCL_RT_FORMAT_R16G16B16A16_SINT                                          0x000000c8
+#define   NVC0TCL_RT_FORMAT_R16G16B16A16_UINT                                          0x000000c9
+#define   NVC0TCL_RT_FORMAT_R16G16B16A16_FLOAT                                         0x000000ca
+#define   NVC0TCL_RT_FORMAT_R32G32_FLOAT                                               0x000000cb
+#define   NVC0TCL_RT_FORMAT_R32G32_SINT                                                        0x000000cc
+#define   NVC0TCL_RT_FORMAT_R32G32_UINT                                                        0x000000cd
+#define   NVC0TCL_RT_FORMAT_R16G16B16X16_FLOAT                                         0x000000ce
+#define   NVC0TCL_RT_FORMAT_A8R8G8B8_UNORM                                             0x000000cf
+#define   NVC0TCL_RT_FORMAT_A8R8G8B8_SRGB                                              0x000000d0
+#define   NVC0TCL_RT_FORMAT_A2B10G10R10_UNORM                                          0x000000d1
+#define   NVC0TCL_RT_FORMAT_A2B10G10R10_UINT                                           0x000000d2
+#define   NVC0TCL_RT_FORMAT_A8B8G8R8_UNORM                                             0x000000d5
+#define   NVC0TCL_RT_FORMAT_A8B8G8R8_SRGB                                              0x000000d6
+#define   NVC0TCL_RT_FORMAT_A8B8G8R8_SNORM                                             0x000000d7
+#define   NVC0TCL_RT_FORMAT_A8B8G8R8_SINT                                              0x000000d8
+#define   NVC0TCL_RT_FORMAT_A8B8G8R8_UINT                                              0x000000d9
+#define   NVC0TCL_RT_FORMAT_R16G16_UNORM                                               0x000000da
+#define   NVC0TCL_RT_FORMAT_R16G16_SNORM                                               0x000000db
+#define   NVC0TCL_RT_FORMAT_R16G16_SINT                                                        0x000000dc
+#define   NVC0TCL_RT_FORMAT_R16G16_UINT                                                        0x000000dd
+#define   NVC0TCL_RT_FORMAT_R16G16_FLOAT                                               0x000000de
+#define   NVC0TCL_RT_FORMAT_A2R10G10B10_UNORM                                          0x000000df
+#define   NVC0TCL_RT_FORMAT_B10G11R11_FLOAT                                            0x000000e0
+#define   NVC0TCL_RT_FORMAT_R32_FLOAT                                                  0x000000e5
+#define   NVC0TCL_RT_FORMAT_X8R8G8B8_UNORM                                             0x000000e6
+#define   NVC0TCL_RT_FORMAT_X8R8G8B8_SRGB                                              0x000000e7
+#define   NVC0TCL_RT_FORMAT_R5G6B5_UNORM                                               0x000000e8
+#define   NVC0TCL_RT_FORMAT_A1R5G5B5_UNORM                                             0x000000e9
+#define   NVC0TCL_RT_FORMAT_R8G8_UNORM                                                 0x000000ea
+#define   NVC0TCL_RT_FORMAT_R8G8_SNORM                                                 0x000000eb
+#define   NVC0TCL_RT_FORMAT_R8G8_SINT                                                  0x000000ec
+#define   NVC0TCL_RT_FORMAT_R8G8_UINT                                                  0x000000ed
+#define   NVC0TCL_RT_FORMAT_R16_UNORM                                                  0x000000ee
+#define   NVC0TCL_RT_FORMAT_R16_SNORM                                                  0x000000ef
+#define   NVC0TCL_RT_FORMAT_R16_SINT                                                   0x000000f0
+#define   NVC0TCL_RT_FORMAT_R16_UINT                                                   0x000000f1
+#define   NVC0TCL_RT_FORMAT_R16_FLOAT                                                  0x000000f2
+#define   NVC0TCL_RT_FORMAT_R8_UNORM                                                   0x000000f3
+#define   NVC0TCL_RT_FORMAT_R8_SNORM                                                   0x000000f4
+#define   NVC0TCL_RT_FORMAT_R8_SINT                                                    0x000000f5
+#define   NVC0TCL_RT_FORMAT_R8_UINT                                                    0x000000f6
+#define   NVC0TCL_RT_FORMAT_A8_UNORM                                                   0x000000f7
+#define   NVC0TCL_RT_FORMAT_X1R5G5B5_UNORM                                             0x000000f8
+#define   NVC0TCL_RT_FORMAT_X8B8G8R8_UNORM                                             0x000000f9
+#define   NVC0TCL_RT_FORMAT_X8B8G8R8_SRGB                                              0x000000fa
+#define  NVC0TCL_RT_TILE_MODE(x)                                                       (0x00000814+((x)*32))
+#define  NVC0TCL_RT_TILE_MODE__SIZE                                                    0x00000008
+#define  NVC0TCL_RT_ARRAY_MODE(x)                                                      (0x00000818+((x)*32))
+#define  NVC0TCL_RT_ARRAY_MODE__SIZE                                                   0x00000008
+#define   NVC0TCL_RT_ARRAY_MODE_LAYERS_SHIFT                                           0
+#define   NVC0TCL_RT_ARRAY_MODE_LAYERS_MASK                                            0x0000ffff
+#define   NVC0TCL_RT_ARRAY_MODE_VOLUME                                                 (1 << 16)
+#define  NVC0TCL_RT_LAYER_STRIDE(x)                                                    (0x0000081c+((x)*32))
+#define  NVC0TCL_RT_LAYER_STRIDE__SIZE                                                 0x00000008
+#define  NVC0TCL_VIEWPORT_SCALE_X(x)                                                   (0x00000a00+((x)*32))
+#define  NVC0TCL_VIEWPORT_SCALE_X__SIZE                                                        0x00000010
+#define  NVC0TCL_VIEWPORT_SCALE_Y(x)                                                   (0x00000a04+((x)*32))
+#define  NVC0TCL_VIEWPORT_SCALE_Y__SIZE                                                        0x00000010
+#define  NVC0TCL_VIEWPORT_SCALE_Z(x)                                                   (0x00000a08+((x)*32))
+#define  NVC0TCL_VIEWPORT_SCALE_Z__SIZE                                                        0x00000010
+#define  NVC0TCL_VIEWPORT_TRANSLATE_X(x)                                               (0x00000a0c+((x)*32))
+#define  NVC0TCL_VIEWPORT_TRANSLATE_X__SIZE                                            0x00000010
+#define  NVC0TCL_VIEWPORT_TRANSLATE_Y(x)                                               (0x00000a10+((x)*32))
+#define  NVC0TCL_VIEWPORT_TRANSLATE_Y__SIZE                                            0x00000010
+#define  NVC0TCL_VIEWPORT_TRANSLATE_Z(x)                                               (0x00000a14+((x)*32))
+#define  NVC0TCL_VIEWPORT_TRANSLATE_Z__SIZE                                            0x00000010
+#define  NVC0TCL_VIEWPORT_HORIZ(x)                                                     (0x00000c00+((x)*16))
+#define  NVC0TCL_VIEWPORT_HORIZ__SIZE                                                  0x00000010
+#define   NVC0TCL_VIEWPORT_HORIZ_X_SHIFT                                               0
+#define   NVC0TCL_VIEWPORT_HORIZ_X_MASK                                                        0x0000ffff
+#define   NVC0TCL_VIEWPORT_HORIZ_W_SHIFT                                               16
+#define   NVC0TCL_VIEWPORT_HORIZ_W_MASK                                                        0xffff0000
+#define  NVC0TCL_VIEWPORT_VERT(x)                                                      (0x00000c04+((x)*16))
+#define  NVC0TCL_VIEWPORT_VERT__SIZE                                                   0x00000010
+#define   NVC0TCL_VIEWPORT_VERT_Y_SHIFT                                                        0
+#define   NVC0TCL_VIEWPORT_VERT_Y_MASK                                                 0x0000ffff
+#define   NVC0TCL_VIEWPORT_VERT_H_SHIFT                                                        16
+#define   NVC0TCL_VIEWPORT_VERT_H_MASK                                                 0xffff0000
+#define  NVC0TCL_DEPTH_RANGE_NEAR(x)                                                   (0x00000c08+((x)*16))
+#define  NVC0TCL_DEPTH_RANGE_NEAR__SIZE                                                        0x00000010
+#define  NVC0TCL_DEPTH_RANGE_FAR(x)                                                    (0x00000c0c+((x)*16))
+#define  NVC0TCL_DEPTH_RANGE_FAR__SIZE                                                 0x00000010
+#define  NVC0TCL_VIEWPORT_CLIP_HORIZ(x)                                                        (0x00000d00+((x)*8))
+#define  NVC0TCL_VIEWPORT_CLIP_HORIZ__SIZE                                             0x00000008
+#define   NVC0TCL_VIEWPORT_CLIP_HORIZ_MIN_SHIFT                                                0
+#define   NVC0TCL_VIEWPORT_CLIP_HORIZ_MIN_MASK                                         0x0000ffff
+#define   NVC0TCL_VIEWPORT_CLIP_HORIZ_MAX_SHIFT                                                16
+#define   NVC0TCL_VIEWPORT_CLIP_HORIZ_MAX_MASK                                         0xffff0000
+#define  NVC0TCL_VIEWPORT_CLIP_VERT(x)                                                 (0x00000d04+((x)*8))
+#define  NVC0TCL_VIEWPORT_CLIP_VERT__SIZE                                              0x00000008
+#define   NVC0TCL_VIEWPORT_CLIP_VERT_MIN_SHIFT                                         0
+#define   NVC0TCL_VIEWPORT_CLIP_VERT_MIN_MASK                                          0x0000ffff
+#define   NVC0TCL_VIEWPORT_CLIP_VERT_MAX_SHIFT                                         16
+#define   NVC0TCL_VIEWPORT_CLIP_VERT_MAX_MASK                                          0xffff0000
+#define  NVC0TCL_CLIPID_REGION_HORIZ(x)                                                        (0x00000d40+((x)*8))
+#define  NVC0TCL_CLIPID_REGION_HORIZ__SIZE                                             0x00000004
+#define  NVC0TCL_CLIPID_REGION_VERT(x)                                                 (0x00000d44+((x)*8))
+#define  NVC0TCL_CLIPID_REGION_VERT__SIZE                                              0x00000004
+#define  NVC0TCL_VERTEX_BUFFER_FIRST                                                   0x00000d74
+#define  NVC0TCL_VERTEX_BUFFER_COUNT                                                   0x00000d78
+#define  NVC0TCL_CLEAR_COLOR(x)                                                                (0x00000d80+((x)*4))
+#define  NVC0TCL_CLEAR_COLOR__SIZE                                                     0x00000004
+#define  NVC0TCL_CLEAR_DEPTH                                                           0x00000d90
+#define  NVC0TCL_STACK_ADDRESS_HIGH                                                    0x00000d94
+#define  NVC0TCL_STACK_ADDRESS_LOW                                                     0x00000d98
+#define  NVC0TCL_STACK_SIZE_LOG                                                                0x00000d9c
+#define  NVC0TCL_CLEAR_STENCIL                                                         0x00000da0
+#define  NVC0TCL_POLYGON_SMOOTH_ENABLE                                                 0x00000db4
+#define  NVC0TCL_POLYGON_OFFSET_POINT_ENABLE                                           0x00000dc0
+#define  NVC0TCL_POLYGON_OFFSET_LINE_ENABLE                                            0x00000dc4
+#define  NVC0TCL_POLYGON_OFFSET_FILL_ENABLE                                            0x00000dc8
+#define  NVC0TCL_PATCH_VERTICES                                                                0x00000dcc
+#define  NVC0TCL_WATCHDOG_TIMER                                                                0x00000de4
+#define  NVC0TCL_WINDOW_OFFSET_X                                                       0x00000df8
+#define  NVC0TCL_WINDOW_OFFSET_Y                                                       0x00000dfc
+#define  NVC0TCL_SCISSOR_ENABLE(x)                                                     (0x00000e00+((x)*16))
+#define  NVC0TCL_SCISSOR_ENABLE__SIZE                                                  0x00000010
+#define  NVC0TCL_SCISSOR_HORIZ(x)                                                      (0x00000e04+((x)*16))
+#define  NVC0TCL_SCISSOR_HORIZ__SIZE                                                   0x00000010
+#define   NVC0TCL_SCISSOR_HORIZ_MIN_SHIFT                                              0
+#define   NVC0TCL_SCISSOR_HORIZ_MIN_MASK                                               0x0000ffff
+#define   NVC0TCL_SCISSOR_HORIZ_MAX_SHIFT                                              16
+#define   NVC0TCL_SCISSOR_HORIZ_MAX_MASK                                               0xffff0000
+#define  NVC0TCL_SCISSOR_VERT(x)                                                       (0x00000e08+((x)*16))
+#define  NVC0TCL_SCISSOR_VERT__SIZE                                                    0x00000010
+#define   NVC0TCL_SCISSOR_VERT_MIN_SHIFT                                               0
+#define   NVC0TCL_SCISSOR_VERT_MIN_MASK                                                        0x0000ffff
+#define   NVC0TCL_SCISSOR_VERT_MAX_SHIFT                                               16
+#define   NVC0TCL_SCISSOR_VERT_MAX_MASK                                                        0xffff0000
+#define  NVC0TCL_LOCAL_WARPS_LOG_ALLOC                                                 0x00000f44
+#define  NVC0TCL_LOCAL_WARPS_NO_CLAMP                                                  0x00000f48
+#define  NVC0TCL_STACK_WARPS_LOG_ALLOC                                                 0x00000f4c
+#define  NVC0TCL_STACK_WARPS_NO_CLAMP                                                  0x00000f50
+#define  NVC0TCL_STENCIL_BACK_FUNC_REF                                                 0x00000f54
+#define  NVC0TCL_STENCIL_BACK_MASK                                                     0x00000f58
+#define  NVC0TCL_STENCIL_BACK_FUNC_MASK                                                        0x00000f5c
+#define  NVC0TCL_VERTEX_RUNOUT_HIGH                                                    0x00000f84
+#define  NVC0TCL_VERTEX_RUNOUT_LOW                                                     0x00000f88
+#define  NVC0TCL_DEPTH_BOUNDS(x)                                                       (0x00000f9c+((x)*4))
+#define  NVC0TCL_DEPTH_BOUNDS__SIZE                                                    0x00000002
+#define  NVC0TCL_MSAA_MASK(x)                                                          (0x00000fbc+((x)*4))
+#define  NVC0TCL_MSAA_MASK__SIZE                                                       0x00000004
+#define  NVC0TCL_CLIPID_ADDRESS_HIGH                                                   0x00000fcc
+#define  NVC0TCL_CLIPID_ADDRESS_LOW                                                    0x00000fd0
+#define  NVC0TCL_ZETA_ADDRESS_HIGH                                                     0x00000fe0
+#define  NVC0TCL_ZETA_ADDRESS_LOW                                                      0x00000fe4
+#define  NVC0TCL_ZETA_FORMAT                                                           0x00000fe8
+#define   NVC0TCL_ZETA_FORMAT_Z32_FLOAT                                                        0x0000000a
+#define   NVC0TCL_ZETA_FORMAT_Z16_UNORM                                                        0x00000013
+#define   NVC0TCL_ZETA_FORMAT_Z24S8_UNORM                                              0x00000014
+#define   NVC0TCL_ZETA_FORMAT_X8Z24_UNORM                                              0x00000015
+#define   NVC0TCL_ZETA_FORMAT_S8Z24_UNORM                                              0x00000016
+#define   NVC0TCL_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM                                    0x00000019
+#define  NVC0TCL_ZETA_TILE_MODE                                                                0x00000fec
+#define  NVC0TCL_ZETA_LAYER_STRIDE                                                     0x00000ff0
+#define  NVC0TCL_SCREEN_SCISSOR_HORIZ                                                  0x00000ff4
+#define   NVC0TCL_SCREEN_SCISSOR_HORIZ_W_SHIFT                                         16
+#define   NVC0TCL_SCREEN_SCISSOR_HORIZ_W_MASK                                          0xffff0000
+#define   NVC0TCL_SCREEN_SCISSOR_HORIZ_X_SHIFT                                         0
+#define   NVC0TCL_SCREEN_SCISSOR_HORIZ_X_MASK                                          0x0000ffff
+#define  NVC0TCL_SCREEN_SCISSOR_VERT                                                   0x00000ff8
+#define   NVC0TCL_SCREEN_SCISSOR_VERT_H_SHIFT                                          16
+#define   NVC0TCL_SCREEN_SCISSOR_VERT_H_MASK                                           0xffff0000
+#define   NVC0TCL_SCREEN_SCISSOR_VERT_Y_SHIFT                                          0
+#define   NVC0TCL_SCREEN_SCISSOR_VERT_Y_MASK                                           0x0000ffff
+#define  NVC0TCL_VTX_ATTR_DEFINE                                                       0x0000114c
+#define   NVC0TCL_VTX_ATTR_DEFINE_ATTR_SHIFT                                           0
+#define   NVC0TCL_VTX_ATTR_DEFINE_ATTR_MASK                                            0x0000003f
+#define   NVC0TCL_VTX_ATTR_DEFINE_COMP_SHIFT                                           8
+#define   NVC0TCL_VTX_ATTR_DEFINE_COMP_MASK                                            0x00000f00
+#define   NVC0TCL_VTX_ATTR_DEFINE_SIZE_SHIFT                                           12
+#define   NVC0TCL_VTX_ATTR_DEFINE_SIZE_MASK                                            0x0000f000
+#define   NVC0TCL_VTX_ATTR_DEFINE_TYPE_SHIFT                                           16
+#define   NVC0TCL_VTX_ATTR_DEFINE_TYPE_MASK                                            0x000f0000
+#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_FLOAT                                          0x00070000
+#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_SNORM                                          0x00010000
+#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_UNORM                                          0x00020000
+#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_USCALED                                                0x00050000
+#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_SSCALED                                                0x00060000
+#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_UINT                                           0x00040000
+#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_SINT                                           0x00030000
+#define  NVC0TCL_VTX_ATTR_DATA(x)                                                      (0x00001150+((x)*4))
+#define  NVC0TCL_VTX_ATTR_DATA__SIZE                                                   0x00000004
+#define  NVC0TCL_VERTEX_ATTRIB_FORMAT(x)                                               (0x00001160+((x)*4))
+#define  NVC0TCL_VERTEX_ATTRIB_FORMAT__SIZE                                            0x00000020
+#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_BUFFER_SHIFT                                    0
+#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_BUFFER_MASK                                     0x0000003f
+#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_CONST                                           (1 <<  6)
+#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_OFFSET_SHIFT                                    7
+#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_OFFSET_MASK                                     0x001fff80
+#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_SHIFT                                    21
+#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_MASK                                     0x07e00000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32_32_32_32                             0x00200000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32_32_32                                        0x00400000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16_16_16_16                             0x00600000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32_32                                   0x00800000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16_16_16                                        0x00a00000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8_8_8_8                                 0x01400000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16_16                                   0x01e00000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32                                      0x02400000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8_8_8                                   0x02600000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8_8                                     0x03000000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16                                      0x03600000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8                                       0x03a00000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_2_10_10_10                              0x06000000
+#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SHIFT                                      27
+#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_MASK                                       0x78000000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_FLOAT                                     0x38000000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SNORM                                     0x08000000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_UNORM                                     0x10000000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_USCALED                                   0x28000000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SSCALED                                   0x30000000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_UINT                                      0x20000000
+#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SINT                                      0x18000000
+#define  NVC0TCL_RT_CONTROL                                                            0x0000121c
+#define   NVC0TCL_RT_CONTROL_COUNT_SHIFT                                               0
+#define   NVC0TCL_RT_CONTROL_COUNT_MASK                                                        0x0000000f
+#define   NVC0TCL_RT_CONTROL_MAP0_SHIFT                                                        4
+#define   NVC0TCL_RT_CONTROL_MAP0_MASK                                                 0x00000070
+#define   NVC0TCL_RT_CONTROL_MAP1_SHIFT                                                        7
+#define   NVC0TCL_RT_CONTROL_MAP1_MASK                                                 0x00000380
+#define   NVC0TCL_RT_CONTROL_MAP2_SHIFT                                                        10
+#define   NVC0TCL_RT_CONTROL_MAP2_MASK                                                 0x00001c00
+#define   NVC0TCL_RT_CONTROL_MAP3_SHIFT                                                        13
+#define   NVC0TCL_RT_CONTROL_MAP3_MASK                                                 0x0000e000
+#define   NVC0TCL_RT_CONTROL_MAP4_SHIFT                                                        16
+#define   NVC0TCL_RT_CONTROL_MAP4_MASK                                                 0x00070000
+#define   NVC0TCL_RT_CONTROL_MAP5_SHIFT                                                        19
+#define   NVC0TCL_RT_CONTROL_MAP5_MASK                                                 0x00380000
+#define   NVC0TCL_RT_CONTROL_MAP6_SHIFT                                                        22
+#define   NVC0TCL_RT_CONTROL_MAP6_MASK                                                 0x01c00000
+#define   NVC0TCL_RT_CONTROL_MAP7_SHIFT                                                        25
+#define   NVC0TCL_RT_CONTROL_MAP7_MASK                                                 0x0e000000
+#define  NVC0TCL_ZETA_HORIZ                                                            0x00001228
+#define  NVC0TCL_ZETA_VERT                                                             0x0000122c
+#define  NVC0TCL_ZETA_ARRAY_MODE                                                       0x00001230
+#define   NVC0TCL_ZETA_ARRAY_MODE_LAYERS_SHIFT                                         0
+#define   NVC0TCL_ZETA_ARRAY_MODE_LAYERS_MASK                                          0x0000ffff
+#define   NVC0TCL_ZETA_ARRAY_MODE_UNK                                                  (1 << 16)
+#define  NVC0TCL_LINKED_TSC                                                            0x00001234
+#define  NVC0TCL_FP_RESULT_COUNT                                                       0x00001298
+#define  NVC0TCL_DEPTH_TEST_ENABLE                                                     0x000012cc
+#define  NVC0TCL_SHADE_MODEL                                                           0x000012d4
+#define   NVC0TCL_SHADE_MODEL_FLAT                                                     0x00001d00
+#define   NVC0TCL_SHADE_MODEL_SMOOTH                                                   0x00001d01
+#define  NVC0TCL_BLEND_INDEPENDENT                                                     0x000012e4
+#define  NVC0TCL_DEPTH_WRITE_ENABLE                                                    0x000012e8
+#define  NVC0TCL_ALPHA_TEST_ENABLE                                                     0x000012ec
+#define  NVC0TCL_PM_SET(x)                                                             (0x000012f0+((x)*4))
+#define  NVC0TCL_PM_SET__SIZE                                                          0x00000004
+#define  NVC0TCL_VB_ELEMENT_U8_SETUP                                                   0x00001300
+#define   NVC0TCL_VB_ELEMENT_U8_SETUP_OFFSET_SHIFT                                     30
+#define   NVC0TCL_VB_ELEMENT_U8_SETUP_OFFSET_MASK                                      0xc0000000
+#define   NVC0TCL_VB_ELEMENT_U8_SETUP_COUNT_SHIFT                                      0
+#define   NVC0TCL_VB_ELEMENT_U8_SETUP_COUNT_MASK                                       0x3fffffff
+#define  NVC0TCL_VB_ELEMENT_U8                                                         0x00001304
+#define   NVC0TCL_VB_ELEMENT_U8_I0_SHIFT                                               0
+#define   NVC0TCL_VB_ELEMENT_U8_I0_MASK                                                        0x000000ff
+#define   NVC0TCL_VB_ELEMENT_U8_I1_SHIFT                                               8
+#define   NVC0TCL_VB_ELEMENT_U8_I1_MASK                                                        0x0000ff00
+#define   NVC0TCL_VB_ELEMENT_U8_I2_SHIFT                                               16
+#define   NVC0TCL_VB_ELEMENT_U8_I2_MASK                                                        0x00ff0000
+#define   NVC0TCL_VB_ELEMENT_U8_I3_SHIFT                                               24
+#define   NVC0TCL_VB_ELEMENT_U8_I3_MASK                                                        0xff000000
+#define  NVC0TCL_DEPTH_TEST_FUNC                                                       0x0000130c
+#define   NVC0TCL_DEPTH_TEST_FUNC_NEVER                                                        0x00000200
+#define   NVC0TCL_DEPTH_TEST_FUNC_LESS                                                 0x00000201
+#define   NVC0TCL_DEPTH_TEST_FUNC_EQUAL                                                        0x00000202
+#define   NVC0TCL_DEPTH_TEST_FUNC_LEQUAL                                               0x00000203
+#define   NVC0TCL_DEPTH_TEST_FUNC_GREATER                                              0x00000204
+#define   NVC0TCL_DEPTH_TEST_FUNC_NOTEQUAL                                             0x00000205
+#define   NVC0TCL_DEPTH_TEST_FUNC_GEQUAL                                               0x00000206
+#define   NVC0TCL_DEPTH_TEST_FUNC_ALWAYS                                               0x00000207
+#define  NVC0TCL_ALPHA_TEST_REF                                                                0x00001310
+#define  NVC0TCL_ALPHA_TEST_FUNC                                                       0x00001314
+#define   NVC0TCL_ALPHA_TEST_FUNC_NEVER                                                        0x00000200
+#define   NVC0TCL_ALPHA_TEST_FUNC_LESS                                                 0x00000201
+#define   NVC0TCL_ALPHA_TEST_FUNC_EQUAL                                                        0x00000202
+#define   NVC0TCL_ALPHA_TEST_FUNC_LEQUAL                                               0x00000203
+#define   NVC0TCL_ALPHA_TEST_FUNC_GREATER                                              0x00000204
+#define   NVC0TCL_ALPHA_TEST_FUNC_NOTEQUAL                                             0x00000205
+#define   NVC0TCL_ALPHA_TEST_FUNC_GEQUAL                                               0x00000206
+#define   NVC0TCL_ALPHA_TEST_FUNC_ALWAYS                                               0x00000207
+#define  NVC0TCL_BLEND_COLOR(x)                                                                (0x0000131c+((x)*4))
+#define  NVC0TCL_BLEND_COLOR__SIZE                                                     0x00000004
+#define  NVC0TCL_TIC_FLUSH                                                             0x00001330
+#define  NVC0TCL_TSC_FLUSH                                                             0x00001334
+#define  NVC0TCL_TEX_CACHE_CTL                                                         0x00001338
+#define  NVC0TCL_BLEND_EQUATION_RGB                                                    0x00001340
+#define   NVC0TCL_BLEND_EQUATION_RGB_FUNC_ADD                                          0x00008006
+#define   NVC0TCL_BLEND_EQUATION_RGB_MIN                                               0x00008007
+#define   NVC0TCL_BLEND_EQUATION_RGB_MAX                                               0x00008008
+#define   NVC0TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT                                     0x0000800a
+#define   NVC0TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT                             0x0000800b
+#define  NVC0TCL_BLEND_FUNC_SRC_RGB                                                    0x00001344
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ZERO                                              0x00004000
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE                                               0x00004001
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR                                         0x00004300
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR                               0x00004301
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA                                         0x00004302
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA                               0x00004303
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA                                         0x00004304
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA                               0x00004305
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_DST_COLOR                                         0x00004306
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR                               0x00004307
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE                                        0x00004308
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR                                    0x0000c001
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR                          0x0000c002
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA                                    0x0000c003
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA                          0x0000c004
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_SRC1_COLOR                                                0x0000c900
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_COLOR                              0x0000c901
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_SRC1_ALPHA                                                0x0000c902
+#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_ALPHA                              0x0000c903
+#define  NVC0TCL_BLEND_FUNC_DST_RGB                                                    0x00001348
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_ZERO                                              0x00004000
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE                                               0x00004001
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_SRC_COLOR                                         0x00004300
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR                               0x00004301
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA                                         0x00004302
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA                               0x00004303
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_DST_ALPHA                                         0x00004304
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA                               0x00004305
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_DST_COLOR                                         0x00004306
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR                               0x00004307
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE                                        0x00004308
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR                                    0x0000c001
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR                          0x0000c002
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA                                    0x0000c003
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA                          0x0000c004
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_SRC1_COLOR                                                0x0000c900
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_COLOR                              0x0000c901
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_SRC1_ALPHA                                                0x0000c902
+#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_ALPHA                              0x0000c903
+#define  NVC0TCL_BLEND_EQUATION_ALPHA                                                  0x0000134c
+#define   NVC0TCL_BLEND_EQUATION_ALPHA_FUNC_ADD                                                0x00008006
+#define   NVC0TCL_BLEND_EQUATION_ALPHA_MIN                                             0x00008007
+#define   NVC0TCL_BLEND_EQUATION_ALPHA_MAX                                             0x00008008
+#define   NVC0TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT                                   0x0000800a
+#define   NVC0TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT                           0x0000800b
+#define  NVC0TCL_BLEND_FUNC_SRC_ALPHA                                                  0x00001350
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ZERO                                            0x00004000
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE                                             0x00004001
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR                                       0x00004300
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR                             0x00004301
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA                                       0x00004302
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA                             0x00004303
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA                                       0x00004304
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA                             0x00004305
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR                                       0x00004306
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR                             0x00004307
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE                              0x00004308
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR                                  0x0000c001
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR                                0x0000c002
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA                                  0x0000c003
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA                                0x0000c004
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC1_COLOR                                      0x0000c900
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_COLOR                            0x0000c901
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC1_ALPHA                                      0x0000c902
+#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_ALPHA                            0x0000c903
+#define  NVC0TCL_BLEND_FUNC_DST_ALPHA                                                  0x00001358
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ZERO                                            0x00004000
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE                                             0x00004001
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR                                       0x00004300
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR                             0x00004301
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA                                       0x00004302
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA                             0x00004303
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA                                       0x00004304
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA                             0x00004305
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR                                       0x00004306
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR                             0x00004307
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE                              0x00004308
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR                                  0x0000c001
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR                                0x0000c002
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA                                  0x0000c003
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA                                0x0000c004
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC1_COLOR                                      0x0000c900
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_COLOR                            0x0000c901
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC1_ALPHA                                      0x0000c902
+#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_ALPHA                            0x0000c903
+#define  NVC0TCL_STENCIL_ENABLE                                                                0x00001380
+#define  NVC0TCL_STENCIL_FRONT_OP_FAIL                                                 0x00001384
+#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_ZERO                                           0x00000000
+#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_INVERT                                         0x0000150a
+#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_KEEP                                           0x00001e00
+#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_REPLACE                                                0x00001e01
+#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_INCR                                           0x00001e02
+#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_DECR                                           0x00001e03
+#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP                                      0x00008507
+#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP                                      0x00008508
+#define  NVC0TCL_STENCIL_FRONT_OP_ZFAIL                                                        0x00001388
+#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_ZERO                                          0x00000000
+#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_INVERT                                                0x0000150a
+#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_KEEP                                          0x00001e00
+#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE                                       0x00001e01
+#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_INCR                                          0x00001e02
+#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_DECR                                          0x00001e03
+#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP                                     0x00008507
+#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP                                     0x00008508
+#define  NVC0TCL_STENCIL_FRONT_OP_ZPASS                                                        0x0000138c
+#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_ZERO                                          0x00000000
+#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_INVERT                                                0x0000150a
+#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_KEEP                                          0x00001e00
+#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_REPLACE                                       0x00001e01
+#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_INCR                                          0x00001e02
+#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_DECR                                          0x00001e03
+#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP                                     0x00008507
+#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP                                     0x00008508
+#define  NVC0TCL_STENCIL_FRONT_FUNC_FUNC                                               0x00001390
+#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_NEVER                                                0x00000200
+#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_LESS                                         0x00000201
+#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL                                                0x00000202
+#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL                                       0x00000203
+#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
+#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL                                     0x00000205
+#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL                                       0x00000206
+#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS                                       0x00000207
+#define  NVC0TCL_STENCIL_FRONT_FUNC_REF                                                        0x00001394
+#define  NVC0TCL_STENCIL_FRONT_MASK                                                    0x00001398
+#define  NVC0TCL_STENCIL_FRONT_FUNC_MASK                                               0x0000139c
+#define  NVC0TCL_FRAG_COLOR_CLAMP_EN                                                   0x000013a8
+#define  NVC0TCL_Y_ORIGIN_BOTTOM                                                       0x000013ac
+#define  NVC0TCL_LINE_WIDTH(x)                                                         (0x000013b0+((x)*4))
+#define  NVC0TCL_LINE_WIDTH__SIZE                                                      0x00000002
+#define  NVC0TCL_POINT_COORD_REPLACE_MAP(x)                                            (0x000013c0+((x)*4))
+#define  NVC0TCL_POINT_COORD_REPLACE_MAP__SIZE                                         0x00000008
+#define  NVC0TCL_GP_VERTEX_OUTPUT_COUNT                                                        0x00001420
+#define  NVC0TCL_FENCE                                                                 0x0000142c
+#define  NVC0TCL_VB_ELEMENT_BASE                                                       0x00001434
+#define  NVC0TCL_INSTANCE_BASE                                                         0x00001438
+#define  NVC0TCL_CODE_CB_FLUSH                                                         0x00001440
+#define  NVC0TCL_CLIPID_HEIGHT                                                         0x00001504
+#define  NVC0TCL_VP_CLIP_DISTANCE_ENABLE                                               0x00001510
+#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_0                                            (1 <<  0)
+#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_1                                            (1 <<  1)
+#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_2                                            (1 <<  2)
+#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_3                                            (1 <<  3)
+#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_4                                            (1 <<  4)
+#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_5                                            (1 <<  5)
+#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_6                                            (1 <<  6)
+#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_7                                            (1 <<  7)
+#define  NVC0TCL_SAMPLECNT_ENABLE                                                      0x00001514
+#define  NVC0TCL_POINT_SIZE                                                            0x00001518
+#define  NVC0TCL_POINT_SPRITE_ENABLE                                                   0x00001520
+#define  NVC0TCL_SAMPLECNT_RESET                                                       0x00001530
+#define  NVC0TCL_MULTISAMPLE_ZETA_ENABLE                                               0x00001534
+#define  NVC0TCL_ZETA_ENABLE                                                           0x00001538
+#define  NVC0TCL_MULTISAMPLE_CTRL                                                      0x0000153c
+#define   NVC0TCL_MULTISAMPLE_CTRL_ALPHA_TO_COVERAGE                                   (1 <<  0)
+#define   NVC0TCL_MULTISAMPLE_CTRL_ALPHA_TO_ONE                                                (1 <<  4)
+#define  NVC0TCL_NOPERSPECTIVE_BITMAP(x)                                               (0x00001540+((x)*4))
+#define  NVC0TCL_NOPERSPECTIVE_BITMAP__SIZE                                            0x00000004
+#define  NVC0TCL_COND_ADDRESS_HIGH                                                     0x00001550
+#define  NVC0TCL_COND_ADDRESS_LOW                                                      0x00001554
+#define  NVC0TCL_COND_MODE                                                             0x00001558
+#define   NVC0TCL_COND_MODE_NEVER                                                      0x00000000
+#define   NVC0TCL_COND_MODE_ALWAYS                                                     0x00000001
+#define   NVC0TCL_COND_MODE_RES                                                                0x00000002
+#define   NVC0TCL_COND_MODE_NOT_RES_AND_NOT_ID                                         0x00000003
+#define   NVC0TCL_COND_MODE_RES_OR_ID                                                  0x00000004
+#define  NVC0TCL_TSC_ADDRESS_HIGH                                                      0x0000155c
+#define  NVC0TCL_TSC_ADDRESS_LOW                                                       0x00001560
+#define  NVC0TCL_TSC_LIMIT                                                             0x00001564
+#define  NVC0TCL_POLYGON_OFFSET_FACTOR                                                 0x0000156c
+#define  NVC0TCL_LINE_SMOOTH_ENABLE                                                    0x00001570
+#define  NVC0TCL_TIC_ADDRESS_HIGH                                                      0x00001574
+#define  NVC0TCL_TIC_ADDRESS_LOW                                                       0x00001578
+#define  NVC0TCL_TIC_LIMIT                                                             0x0000157c
+#define  NVC0TCL_PM_CONTROL(x)                                                         (0x00001580+((x)*4))
+#define  NVC0TCL_PM_CONTROL__SIZE                                                      0x00000004
+#define   NVC0TCL_PM_CONTROL_UNK0                                                      (1 <<  0)
+#define   NVC0TCL_PM_CONTROL_UNK1_SHIFT                                                        4
+#define   NVC0TCL_PM_CONTROL_UNK1_MASK                                                 0x00000070
+#define   NVC0TCL_PM_CONTROL_UNK2_SHIFT                                                        8
+#define   NVC0TCL_PM_CONTROL_UNK2_MASK                                                 0xffffff00
+#define  NVC0TCL_STENCIL_TWO_SIDE_ENABLE                                               0x00001594
+#define  NVC0TCL_STENCIL_BACK_OP_FAIL                                                  0x00001598
+#define   NVC0TCL_STENCIL_BACK_OP_FAIL_ZERO                                            0x00000000
+#define   NVC0TCL_STENCIL_BACK_OP_FAIL_INVERT                                          0x0000150a
+#define   NVC0TCL_STENCIL_BACK_OP_FAIL_KEEP                                            0x00001e00
+#define   NVC0TCL_STENCIL_BACK_OP_FAIL_REPLACE                                         0x00001e01
+#define   NVC0TCL_STENCIL_BACK_OP_FAIL_INCR                                            0x00001e02
+#define   NVC0TCL_STENCIL_BACK_OP_FAIL_DECR                                            0x00001e03
+#define   NVC0TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP                                       0x00008507
+#define   NVC0TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP                                       0x00008508
+#define  NVC0TCL_STENCIL_BACK_OP_ZFAIL                                                 0x0000159c
+#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_ZERO                                           0x00000000
+#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_INVERT                                         0x0000150a
+#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_KEEP                                           0x00001e00
+#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_REPLACE                                                0x00001e01
+#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_INCR                                           0x00001e02
+#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_DECR                                           0x00001e03
+#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP                                      0x00008507
+#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP                                      0x00008508
+#define  NVC0TCL_STENCIL_BACK_OP_ZPASS                                                 0x000015a0
+#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_ZERO                                           0x00000000
+#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_INVERT                                         0x0000150a
+#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_KEEP                                           0x00001e00
+#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_REPLACE                                                0x00001e01
+#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_INCR                                           0x00001e02
+#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_DECR                                           0x00001e03
+#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP                                      0x00008507
+#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP                                      0x00008508
+#define  NVC0TCL_STENCIL_BACK_FUNC_FUNC                                                        0x000015a4
+#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_NEVER                                         0x00000200
+#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_LESS                                          0x00000201
+#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                         0x00000202
+#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                                0x00000203
+#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
+#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                      0x00000205
+#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                                0x00000206
+#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                                0x00000207
+#define  NVC0TCL_MULTISAMPLE_COLOR_ENABLE                                              0x000015b4
+#define  NVC0TCL_FRAMEBUFFER_SRGB                                                      0x000015b8
+#define  NVC0TCL_POLYGON_OFFSET_UNITS                                                  0x000015bc
+#define  NVC0TCL_GP_BUILTIN_RESULT_EN                                                  0x000015cc
+#define   NVC0TCL_GP_BUILTIN_RESULT_EN_VPORT                                           (1 <<  0)
+#define   NVC0TCL_GP_BUILTIN_RESULT_EN_LAYER                                           (1 << 16)
+#define  NVC0TCL_MULTISAMPLE_MODE                                                      0x000015d0
+#define   NVC0TCL_MULTISAMPLE_MODE_1X                                                  0x00000000
+#define   NVC0TCL_MULTISAMPLE_MODE_2XMS                                                        0x00000001
+#define   NVC0TCL_MULTISAMPLE_MODE_4XMS                                                        0x00000002
+#define   NVC0TCL_MULTISAMPLE_MODE_8XMS                                                        0x00000004
+#define   NVC0TCL_MULTISAMPLE_MODE_4XMS_4XCS                                           0x00000008
+#define   NVC0TCL_MULTISAMPLE_MODE_4XMS_12XCS                                          0x00000009
+#define   NVC0TCL_MULTISAMPLE_MODE_8XMS_8XCS                                           0x0000000a
+#define  NVC0TCL_EDGEFLAG_ENABLE                                                       0x000015e4
+#define  NVC0TCL_VB_ELEMENT_U32                                                                0x000015e8
+#define  NVC0TCL_VB_ELEMENT_U16_SETUP                                                  0x000015ec
+#define   NVC0TCL_VB_ELEMENT_U16_SETUP_OFFSET_SHIFT                                    30
+#define   NVC0TCL_VB_ELEMENT_U16_SETUP_OFFSET_MASK                                     0xc0000000
+#define   NVC0TCL_VB_ELEMENT_U16_SETUP_COUNT_SHIFT                                     0
+#define   NVC0TCL_VB_ELEMENT_U16_SETUP_COUNT_MASK                                      0x3fffffff
+#define  NVC0TCL_VB_ELEMENT_U16                                                                0x000015f0
+#define   NVC0TCL_VB_ELEMENT_U16_I0_SHIFT                                              0
+#define   NVC0TCL_VB_ELEMENT_U16_I0_MASK                                               0x0000ffff
+#define   NVC0TCL_VB_ELEMENT_U16_I1_SHIFT                                              16
+#define   NVC0TCL_VB_ELEMENT_U16_I1_MASK                                               0xffff0000
+#define  NVC0TCL_VERTEX_BASE_HIGH                                                      0x000015f4
+#define  NVC0TCL_VERTEX_BASE_LOW                                                       0x000015f8
+#define  NVC0TCL_CODE_ADDRESS_HIGH                                                     0x00001608
+#define  NVC0TCL_CODE_ADDRESS_LOW                                                      0x0000160c
+#define  NVC0TCL_VERTEX_BEGIN                                                          0x00001618
+#define   NVC0TCL_VERTEX_BEGIN_MODE_SHIFT                                              0
+#define   NVC0TCL_VERTEX_BEGIN_MODE_MASK                                               0x0000000f
+#define    NVC0TCL_VERTEX_BEGIN_MODE_POINTS                                            0x00000000
+#define    NVC0TCL_VERTEX_BEGIN_MODE_LINES                                             0x00000001
+#define    NVC0TCL_VERTEX_BEGIN_MODE_LINE_LOOP                                         0x00000002
+#define    NVC0TCL_VERTEX_BEGIN_MODE_LINE_STRIP                                                0x00000003
+#define    NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLES                                         0x00000004
+#define    NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLE_STRIP                                    0x00000005
+#define    NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLE_FAN                                      0x00000006
+#define    NVC0TCL_VERTEX_BEGIN_MODE_QUADS                                             0x00000007
+#define    NVC0TCL_VERTEX_BEGIN_MODE_QUAD_STRIP                                                0x00000008
+#define    NVC0TCL_VERTEX_BEGIN_MODE_POLYGON                                           0x00000009
+#define    NVC0TCL_VERTEX_BEGIN_MODE_LINES_ADJACENCY                                   0x0000000a
+#define    NVC0TCL_VERTEX_BEGIN_MODE_LINE_STRIP_ADJACENCY                              0x0000000b
+#define    NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLES_ADJACENCY                               0x0000000c
+#define    NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLE_STRIP_ADJACENCY                          0x0000000d
+#define    NVC0TCL_VERTEX_BEGIN_MODE_PATCHES                                           0x0000000e
+#define   NVC0TCL_VERTEX_BEGIN_INSTANCE                                                        (1 << 26)
+#define  NVC0TCL_VERTEX_END                                                            0x00001614
+#define  NVC0TCL_VERTEX_DATA                                                           0x00001640
+#define  NVC0TCL_PRIM_RESTART_ENABLE                                                   0x00001644
+#define  NVC0TCL_PRIM_RESTART_INDEX                                                    0x00001648
+#define  NVC0TCL_POINT_SMOOTH_ENABLE                                                   0x00001658
+#define  NVC0TCL_POINT_SPRITE_CTRL                                                     0x00001660
+#define  NVC0TCL_LINE_STIPPLE_ENABLE                                                   0x0000166c
+#define  NVC0TCL_LINE_STIPPLE_PATTERN                                                  0x00001680
+#define  NVC0TCL_PROVOKING_VERTEX_LAST                                                 0x00001684
+#define  NVC0TCL_VERTEX_TWO_SIDE_ENABLE                                                        0x00001688
+#define  NVC0TCL_POLYGON_STIPPLE_ENABLE                                                        0x0000168c
+#define  NVC0TCL_POLYGON_STIPPLE_PATTERN(x)                                            (0x00001700+((x)*4))
+#define  NVC0TCL_POLYGON_STIPPLE_PATTERN__SIZE                                         0x00000020
+#define  NVC0TCL_UNK17BC_ADDRESS_HIGH                                                  0x000017bc
+#define  NVC0TCL_UNK17BC_ADDRESS_LOW                                                   0x000017c0
+#define  NVC0TCL_UNK17BC_LIMIT                                                         0x000017c4
+#define  NVC0TCL_VP_POINT_SIZE_EN                                                      0x00001910
+#define  NVC0TCL_CULL_FACE_ENABLE                                                      0x00001918
+#define  NVC0TCL_FRONT_FACE                                                            0x0000191c
+#define   NVC0TCL_FRONT_FACE_CW                                                                0x00000900
+#define   NVC0TCL_FRONT_FACE_CCW                                                       0x00000901
+#define  NVC0TCL_CULL_FACE                                                             0x00001920
+#define   NVC0TCL_CULL_FACE_FRONT                                                      0x00000404
+#define   NVC0TCL_CULL_FACE_BACK                                                       0x00000405
+#define   NVC0TCL_CULL_FACE_FRONT_AND_BACK                                             0x00000408
+#define  NVC0TCL_VIEWPORT_TRANSFORM_EN                                                 0x0000192c
+#define  NVC0TCL_VIEW_VOLUME_CLIP_CTRL                                                 0x0000193c
+#define  NVC0TCL_VIEWPORT_CLIP_RECTS_EN                                                        0x0000194c
+#define  NVC0TCL_VIEWPORT_CLIP_MODE                                                    0x00001950
+#define   NVC0TCL_VIEWPORT_CLIP_MODE_INCLUDE                                           0x00000000
+#define   NVC0TCL_VIEWPORT_CLIP_MODE_EXCLUDE                                           0x00000001
+#define   NVC0TCL_VIEWPORT_CLIP_MODE_UNKNOWN                                           0x00000002
+#define  NVC0TCL_FP_ZORDER_CTRL                                                                0x0000196c
+#define  NVC0TCL_CLIPID_ENABLE                                                         0x0000197c
+#define  NVC0TCL_CLIPID_WIDTH                                                          0x00001980
+#define  NVC0TCL_CLIPID_ID                                                             0x00001984
+#define  NVC0TCL_REG_MODE                                                              0x000019a0
+#define   NVC0TCL_REG_MODE_PACKED                                                      0x00000001
+#define   NVC0TCL_REG_MODE_STRIPED                                                     0x00000002
+#define  NVC0TCL_FP_CONTROL                                                            0x000019a8
+#define   NVC0TCL_FP_CONTROL_MULTIPLE_RESULTS                                          (1 <<  0)
+#define   NVC0TCL_FP_CONTROL_EXPORTS_Z                                                 (1 <<  8)
+#define   NVC0TCL_FP_CONTROL_USES_KIL                                                  (1 << 20)
+#define  NVC0TCL_DEPTH_BOUNDS_EN                                                       0x000019bc
+#define  NVC0TCL_LOGIC_OP_ENABLE                                                       0x000019c4
+#define  NVC0TCL_LOGIC_OP                                                              0x000019c8
+#define   NVC0TCL_LOGIC_OP_CLEAR                                                       0x00001500
+#define   NVC0TCL_LOGIC_OP_AND                                                         0x00001501
+#define   NVC0TCL_LOGIC_OP_AND_REVERSE                                                 0x00001502
+#define   NVC0TCL_LOGIC_OP_COPY                                                                0x00001503
+#define   NVC0TCL_LOGIC_OP_AND_INVERTED                                                        0x00001504
+#define   NVC0TCL_LOGIC_OP_NOOP                                                                0x00001505
+#define   NVC0TCL_LOGIC_OP_XOR                                                         0x00001506
+#define   NVC0TCL_LOGIC_OP_OR                                                          0x00001507
+#define   NVC0TCL_LOGIC_OP_NOR                                                         0x00001508
+#define   NVC0TCL_LOGIC_OP_EQUIV                                                       0x00001509
+#define   NVC0TCL_LOGIC_OP_INVERT                                                      0x0000150a
+#define   NVC0TCL_LOGIC_OP_OR_REVERSE                                                  0x0000150b
+#define   NVC0TCL_LOGIC_OP_COPY_INVERTED                                               0x0000150c
+#define   NVC0TCL_LOGIC_OP_OR_INVERTED                                                 0x0000150d
+#define   NVC0TCL_LOGIC_OP_NAND                                                                0x0000150e
+#define   NVC0TCL_LOGIC_OP_SET                                                         0x0000150f
+#define  NVC0TCL_CLEAR_BUFFERS                                                         0x000019d0
+#define   NVC0TCL_CLEAR_BUFFERS_Z                                                      (1 <<  0)
+#define   NVC0TCL_CLEAR_BUFFERS_S                                                      (1 <<  1)
+#define   NVC0TCL_CLEAR_BUFFERS_R                                                      (1 <<  2)
+#define   NVC0TCL_CLEAR_BUFFERS_G                                                      (1 <<  3)
+#define   NVC0TCL_CLEAR_BUFFERS_B                                                      (1 <<  4)
+#define   NVC0TCL_CLEAR_BUFFERS_A                                                      (1 <<  5)
+#define   NVC0TCL_CLEAR_BUFFERS_RT_SHIFT                                               6
+#define   NVC0TCL_CLEAR_BUFFERS_RT_MASK                                                        0x000003c0
+#define   NVC0TCL_CLEAR_BUFFERS_LAYER_SHIFT                                            10
+#define   NVC0TCL_CLEAR_BUFFERS_LAYER_MASK                                             0x0007fc00
+#define  NVC0TCL_COLOR_MASK(x)                                                         (0x00001a00+((x)*4))
+#define  NVC0TCL_COLOR_MASK__SIZE                                                      0x00000008
+#define   NVC0TCL_COLOR_MASK_R_SHIFT                                                   0
+#define   NVC0TCL_COLOR_MASK_R_MASK                                                    0x0000000f
+#define   NVC0TCL_COLOR_MASK_G_SHIFT                                                   4
+#define   NVC0TCL_COLOR_MASK_G_MASK                                                    0x000000f0
+#define   NVC0TCL_COLOR_MASK_B_SHIFT                                                   8
+#define   NVC0TCL_COLOR_MASK_B_MASK                                                    0x00000f00
+#define   NVC0TCL_COLOR_MASK_A_SHIFT                                                   12
+#define   NVC0TCL_COLOR_MASK_A_MASK                                                    0x0000f000
+#define  NVC0TCL_QUERY_ADDRESS_HIGH                                                    0x00001b00
+#define  NVC0TCL_QUERY_ADDRESS_LOW                                                     0x00001b04
+#define  NVC0TCL_QUERY_SEQUENCE                                                                0x00001b08
+#define  NVC0TCL_QUERY_GET                                                             0x00001b0c
+#define  NVC0TCL_VERTEX_ARRAY_FETCH(x)                                                 (0x00001c00+((x)*16))
+#define  NVC0TCL_VERTEX_ARRAY_FETCH__SIZE                                              0x00000020
+#define   NVC0TCL_VERTEX_ARRAY_FETCH_STRIDE_SHIFT                                      0
+#define   NVC0TCL_VERTEX_ARRAY_FETCH_STRIDE_MASK                                       0x00000fff
+#define   NVC0TCL_VERTEX_ARRAY_FETCH_ENABLE                                            (1 << 12)
+#define  NVC0TCL_BLEND_EQUATIONI_RGB(x)                                                        (0x00001e04+((x)*32))
+#define  NVC0TCL_BLEND_EQUATIONI_RGB__SIZE                                             0x00000008
+#define   NVC0TCL_BLEND_EQUATIONI_RGB_FUNC_ADD                                         0x00008006
+#define   NVC0TCL_BLEND_EQUATIONI_RGB_MIN                                              0x00008007
+#define   NVC0TCL_BLEND_EQUATIONI_RGB_MAX                                              0x00008008
+#define   NVC0TCL_BLEND_EQUATIONI_RGB_FUNC_SUBTRACT                                    0x0000800a
+#define   NVC0TCL_BLEND_EQUATIONI_RGB_FUNC_REVERSE_SUBTRACT                            0x0000800b
+#define  NVC0TCL_BLEND_FUNCI_SRC_RGB(x)                                                        (0x00001e08+((x)*32))
+#define  NVC0TCL_BLEND_FUNCI_SRC_RGB__SIZE                                             0x00000008
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ZERO                                             0x00004000
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE                                              0x00004001
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC_COLOR                                                0x00004300
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC_COLOR                              0x00004301
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC_ALPHA                                                0x00004302
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC_ALPHA                              0x00004303
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_DST_ALPHA                                                0x00004304
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_DST_ALPHA                              0x00004305
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_DST_COLOR                                                0x00004306
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_DST_COLOR                              0x00004307
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC_ALPHA_SATURATE                               0x00004308
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_CONSTANT_COLOR                                   0x0000c001
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_CONSTANT_COLOR                         0x0000c002
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_CONSTANT_ALPHA                                   0x0000c003
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA                         0x0000c004
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC1_COLOR                                       0x0000c900
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC1_COLOR                             0x0000c901
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC1_ALPHA                                       0x0000c902
+#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC1_ALPHA                             0x0000c903
+#define  NVC0TCL_BLEND_FUNCI_DST_RGB(x)                                                        (0x00001e0c+((x)*32))
+#define  NVC0TCL_BLEND_FUNCI_DST_RGB__SIZE                                             0x00000008
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ZERO                                             0x00004000
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE                                              0x00004001
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_SRC_COLOR                                                0x00004300
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC_COLOR                              0x00004301
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_SRC_ALPHA                                                0x00004302
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC_ALPHA                              0x00004303
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_DST_ALPHA                                                0x00004304
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_DST_ALPHA                              0x00004305
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_DST_COLOR                                                0x00004306
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_DST_COLOR                              0x00004307
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_SRC_ALPHA_SATURATE                               0x00004308
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_CONSTANT_COLOR                                   0x0000c001
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_CONSTANT_COLOR                         0x0000c002
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_CONSTANT_ALPHA                                   0x0000c003
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_CONSTANT_ALPHA                         0x0000c004
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_SRC1_COLOR                                       0x0000c900
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC1_COLOR                             0x0000c901
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_SRC1_ALPHA                                       0x0000c902
+#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC1_ALPHA                             0x0000c903
+#define  NVC0TCL_BLEND_EQUATIONI_ALPHA(x)                                              (0x00001e10+((x)*32))
+#define  NVC0TCL_BLEND_EQUATIONI_ALPHA__SIZE                                           0x00000008
+#define   NVC0TCL_BLEND_EQUATIONI_ALPHA_FUNC_ADD                                       0x00008006
+#define   NVC0TCL_BLEND_EQUATIONI_ALPHA_MIN                                            0x00008007
+#define   NVC0TCL_BLEND_EQUATIONI_ALPHA_MAX                                            0x00008008
+#define   NVC0TCL_BLEND_EQUATIONI_ALPHA_FUNC_SUBTRACT                                  0x0000800a
+#define   NVC0TCL_BLEND_EQUATIONI_ALPHA_FUNC_REVERSE_SUBTRACT                          0x0000800b
+#define  NVC0TCL_BLEND_FUNCI_SRC_ALPHA(x)                                              (0x00001e14+((x)*32))
+#define  NVC0TCL_BLEND_FUNCI_SRC_ALPHA__SIZE                                           0x00000008
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ZERO                                           0x00004000
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE                                            0x00004001
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC_COLOR                                      0x00004300
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC_COLOR                            0x00004301
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC_ALPHA                                      0x00004302
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC_ALPHA                            0x00004303
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_DST_ALPHA                                      0x00004304
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_DST_ALPHA                            0x00004305
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_DST_COLOR                                      0x00004306
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_DST_COLOR                            0x00004307
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC_ALPHA_SATURATE                             0x00004308
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_CONSTANT_COLOR                                 0x0000c001
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR                       0x0000c002
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_CONSTANT_ALPHA                                 0x0000c003
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA                       0x0000c004
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC1_COLOR                                     0x0000c900
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC1_COLOR                           0x0000c901
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC1_ALPHA                                     0x0000c902
+#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC1_ALPHA                           0x0000c903
+#define  NVC0TCL_BLEND_FUNCI_DST_ALPHA(x)                                              (0x00001e18+((x)*32))
+#define  NVC0TCL_BLEND_FUNCI_DST_ALPHA__SIZE                                           0x00000008
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ZERO                                           0x00004000
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE                                            0x00004001
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC_COLOR                                      0x00004300
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC_COLOR                            0x00004301
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC_ALPHA                                      0x00004302
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC_ALPHA                            0x00004303
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_DST_ALPHA                                      0x00004304
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_DST_ALPHA                            0x00004305
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_DST_COLOR                                      0x00004306
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_DST_COLOR                            0x00004307
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC_ALPHA_SATURATE                             0x00004308
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_CONSTANT_COLOR                                 0x0000c001
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR                       0x0000c002
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_CONSTANT_ALPHA                                 0x0000c003
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA                       0x0000c004
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC1_COLOR                                     0x0000c900
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC1_COLOR                           0x0000c901
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC1_ALPHA                                     0x0000c902
+#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC1_ALPHA                           0x0000c903
+#define  NVC0TCL_SP_SELECT(x)                                                          (0x00002000+((x)*64))
+#define  NVC0TCL_SP_SELECT__SIZE                                                       0x00000006
+#define   NVC0TCL_SP_SELECT_ENABLE                                                     (1 <<  0)
+#define   NVC0TCL_SP_SELECT_PROGRAM_SHIFT                                              4
+#define   NVC0TCL_SP_SELECT_PROGRAM_MASK                                               0x000000f0
+#define  NVC0TCL_SP_START_ID(x)                                                                (0x00002004+((x)*64))
+#define  NVC0TCL_SP_START_ID__SIZE                                                     0x00000006
+#define  NVC0TCL_SP_GPR_ALLOC(x)                                                       (0x0000200c+((x)*64))
+#define  NVC0TCL_SP_GPR_ALLOC__SIZE                                                    0x00000006
+#define  NVC0TCL_CB_SIZE                                                               0x00002380
+#define  NVC0TCL_CB_BIND(x)                                                            (0x00002410+((x)*32))
+#define  NVC0TCL_CB_BIND__SIZE                                                         0x00000005
+#define   NVC0TCL_CB_BIND_VALID                                                                (1 <<  0)
+#define   NVC0TCL_CB_BIND_INDEX_SHIFT                                                  4
+#define   NVC0TCL_CB_BIND_INDEX_MASK                                                   0x000000f0
+#define  NVC0TCL_BIND_TIC(x)                                                           (0x00002404+((x)*32))
+#define  NVC0TCL_BIND_TIC__SIZE                                                                0x00000005
+#define   NVC0TCL_BIND_TIC_ACTIVE                                                      (1 <<  0)
+#define   NVC0TCL_BIND_TIC_TEXTURE_SHIFT                                               1
+#define   NVC0TCL_BIND_TIC_TEXTURE_MASK                                                        0x000001fe
+#define   NVC0TCL_BIND_TIC_TIC_SHIFT                                                   9
+#define   NVC0TCL_BIND_TIC_TIC_MASK                                                    0x7ffffe00
+#define  NVC0TCL_TEX_LIMITS(x)                                                         (0x00002200+((x)*16))
+#define  NVC0TCL_TEX_LIMITS__SIZE                                                      0x00000005
+#define   NVC0TCL_TEX_LIMITS_SAMPLERS_LOG2_SHIFT                                       0
+#define   NVC0TCL_TEX_LIMITS_SAMPLERS_LOG2_MASK                                                0x0000000f
+#define   NVC0TCL_TEX_LIMITS_TEXTURES_LOG2_SHIFT                                       4
+#define   NVC0TCL_TEX_LIMITS_TEXTURES_LOG2_MASK                                                0x000000f0
+#define  NVC0TCL_CB_ADDR_HIGH                                                          0x00002384
+#define  NVC0TCL_CB_ADDR_LOW                                                           0x00002388
+#define  NVC0TCL_CB_POS                                                                        0x0000238c
+#define  NVC0TCL_CB_DATA(x)                                                            (0x00002390+((x)*4))
+#define  NVC0TCL_CB_DATA__SIZE                                                         0x00000010
+#define  NVC0TCL_TFB_VARYING_LOCS(x)                                                   (0x00002800+((x)*4))
+#define  NVC0TCL_TFB_VARYING_LOCS__SIZE                                                        0x00000080
+#define  NVC0TCL_UNK_UPLOAD_POS                                                                0x00003800
+#define  NVC0TCL_UNK_UPLOAD_DATA                                                       0x00003804
+#define  NVC0TCL_VERTEX_ARRAY_SELECT                                                   0x00003820
+#define  NVC0TCL_VERTEX_ARRAY_ADDRESS                                                  0x00003824
+#define  NVC0TCL_BLEND_ENABLEI                                                         0x00003858
+#define  NVC0TCL_POLYGON_MODE_FRONT                                                    0x00003868
+#define   NVC0TCL_POLYGON_MODE_FRONT_POINT                                             0x00001b00
+#define   NVC0TCL_POLYGON_MODE_FRONT_LINE                                              0x00001b01
+#define   NVC0TCL_POLYGON_MODE_FRONT_FILL                                              0x00001b02
+#define  NVC0TCL_POLYGON_MODE_BACK                                                     0x00003870
+#define   NVC0TCL_POLYGON_MODE_BACK_POINT                                              0x00001b00
+#define   NVC0TCL_POLYGON_MODE_BACK_LINE                                               0x00001b01
+#define   NVC0TCL_POLYGON_MODE_BACK_FILL                                               0x00001b02
+#define  NVC0TCL_GP_SELECT                                                             0x00003878
+#define   NVC0TCL_GP_SELECT_ENABLE                                                     (1 <<  0)
+#define   NVC0TCL_GP_SELECT_PROGRAM_SHIFT                                              4
+#define   NVC0TCL_GP_SELECT_PROGRAM_MASK                                               0x000000f0
+#define  NVC0TCL_TEP_SELECT                                                            0x00003880
+#define   NVC0TCL_TEP_SELECT_ENABLE                                                    (1 <<  0)
+#define   NVC0TCL_TEP_SELECT_PROGRAM_SHIFT                                             4
+#define   NVC0TCL_TEP_SELECT_PROGRAM_MASK                                              0x000000f0
+
+
+#define NVC0_COMPUTE                                                                   0x000090c0
+
+#define  NVC0_COMPUTE_NOP                                                              0x00000100
+#define  NVC0_COMPUTE_NOTIFY                                                           0x00000104
+#define  NVC0_COMPUTE_SERIALIZE                                                                0x00000110
+#define  NVC0_COMPUTE_LOCAL_SIZE                                                       0x00000204
+#define  NVC0_COMPUTE_SHARED_BASE                                                      0x00000214
+#define  NVC0_COMPUTE_GRIDDIM_YX                                                       0x00000238
+#define   NVC0_COMPUTE_GRIDDIM_YX_X_SHIFT                                              0
+#define   NVC0_COMPUTE_GRIDDIM_YX_X_MASK                                               0x0000ffff
+#define   NVC0_COMPUTE_GRIDDIM_YX_Y_SHIFT                                              16
+#define   NVC0_COMPUTE_GRIDDIM_YX_Y_MASK                                               0xffff0000
+#define  NVC0_COMPUTE_GRIDDIM_Z                                                                0x0000023c
+#define  NVC0_COMPUTE_SHARED_SIZE                                                      0x0000024c
+#define  NVC0_COMPUTE_BLOCK_ALLOC                                                      0x00000250
+#define   NVC0_COMPUTE_BLOCK_ALLOC_THREADS_SHIFT                                       0
+#define   NVC0_COMPUTE_BLOCK_ALLOC_THREADS_MASK                                                0x0000ffff
+#define   NVC0_COMPUTE_BLOCK_ALLOC_BARRIERS_SHIFT                                      16
+#define   NVC0_COMPUTE_BLOCK_ALLOC_BARRIERS_MASK                                       0xffff0000
+#define  NVC0_COMPUTE_CP_GPR_ALLOC                                                     0x000002c0
+#define  NVC0_COMPUTE_GLOBAL_BASE                                                      0x000002c8
+#define   NVC0_COMPUTE_GLOBAL_BASE_HIGH_SHIFT                                          0
+#define   NVC0_COMPUTE_GLOBAL_BASE_HIGH_MASK                                           0x000000ff
+#define   NVC0_COMPUTE_GLOBAL_BASE_INDEX_SHIFT                                         16
+#define   NVC0_COMPUTE_GLOBAL_BASE_INDEX_MASK                                          0x00ff0000
+#define   NVC0_COMPUTE_GLOBAL_BASE_FLAGS_SHIFT                                         28
+#define   NVC0_COMPUTE_GLOBAL_BASE_FLAGS_MASK                                          0xf0000000
+#define  NVC0_COMPUTE_LAUNCH                                                           0x00000368
+#define  NVC0_COMPUTE_BLOCKDIM_YX                                                      0x000003ac
+#define   NVC0_COMPUTE_BLOCKDIM_YX_X_SHIFT                                             0
+#define   NVC0_COMPUTE_BLOCKDIM_YX_X_MASK                                              0x0000ffff
+#define   NVC0_COMPUTE_BLOCKDIM_YX_Y_SHIFT                                             16
+#define   NVC0_COMPUTE_BLOCKDIM_YX_Y_MASK                                              0xffff0000
+#define  NVC0_COMPUTE_BLOCKDIM_Z                                                       0x000003b0
+#define  NVC0_COMPUTE_CP_START_ID                                                      0x000003b4
+#define  NVC0_COMPUTE_LOCAL_BASE                                                       0x0000077c
+#define  NVC0_COMPUTE_UNK0790_ADDRESS_HIGH                                             0x00000790
+#define  NVC0_COMPUTE_UNK0790_ADDRESS_LOW                                              0x00000794
+#define  NVC0_COMPUTE_LINKED_TSC                                                       0x00001234
+#define  NVC0_COMPUTE_TSC_ADDRESS_HIGH                                                 0x0000155c
+#define  NVC0_COMPUTE_TSC_ADDRESS_LOW                                                  0x00001560
+#define  NVC0_COMPUTE_TSC_LIMIT                                                                0x00001564
+#define  NVC0_COMPUTE_TIC_ADDRESS_HIGH                                                 0x00001574
+#define  NVC0_COMPUTE_TIC_ADDRESS_LOW                                                  0x00001578
+#define  NVC0_COMPUTE_TIC_LIMIT                                                                0x0000157c
+#define  NVC0_COMPUTE_CODE_ADDRESS_HIGH                                                        0x00001608
+#define  NVC0_COMPUTE_CODE_ADDRESS_LOW                                                 0x0000160c
+#define  NVC0_COMPUTE_CB_BIND                                                          0x00001694
+#define   NVC0_COMPUTE_CB_BIND_INDEX_SHIFT                                             1
+#define   NVC0_COMPUTE_CB_BIND_INDEX_MASK                                              0xfffffffe
+#define   NVC0_COMPUTE_CB_BIND_VALID                                                   (1 <<  0)
+#define  NVC0_COMPUTE_QUERY_ADDRESS_HIGH                                               0x00001b00
+#define  NVC0_COMPUTE_QUERY_ADDRESS_LOW                                                        0x00001b04
+#define  NVC0_COMPUTE_QUERY_SEQUENCE                                                   0x00001b08
+#define  NVC0_COMPUTE_QUERY_GET                                                                0x00001b0c
+#define  NVC0_COMPUTE_CB_ADDRESS_HIGH                                                  0x00002384
+#define  NVC0_COMPUTE_CB_ADDRESS_LOW                                                   0x00002388
+#define  NVC0_COMPUTE_CB_POS                                                           0x0000238c
+#define  NVC0_COMPUTE_CB_DATA                                                          0x00002390
 
 
 #endif /* NOUVEAU_REG_H */