nouveau : use new nouveau_reg.h with correct Bracket in macro
authorMatthieu Castet <castet.matthieu@free.fr>
Fri, 14 Sep 2007 22:25:09 +0000 (00:25 +0200)
committerMatthieu Castet <castet.matthieu@free.fr>
Fri, 14 Sep 2007 22:25:09 +0000 (00:25 +0200)
src/mesa/drivers/dri/nouveau/nouveau_context.c
src/mesa/drivers/dri/nouveau/nouveau_object.c
src/mesa/drivers/dri/nouveau/nouveau_reg.h
src/mesa/drivers/dri/nouveau/nv10_state.c
src/mesa/drivers/dri/nouveau/nv10_swtcl.c

index f9f33eceeb115298d61539884511c89d9952648b..f36483a3d49450f0d7161ff8e1adb3a1228bac3b 100644 (file)
@@ -348,7 +348,7 @@ nouveauDoSwapBuffers(nouveauContextPtr nmesa, __DRIdrawablePrivate *dPriv)
        }
 
        for (i=0; i<nbox; i++, box++) {
-               BEGIN_RING_SIZE(NvSubImageBlit, NV10_IMAGE_BLIT_SET_POINT, 3);
+               BEGIN_RING_SIZE(NvSubImageBlit, NV_IMAGE_BLIT_POINT_IN, 3);
                OUT_RING       (((box->y1 - dPriv->y) << 16) |
                                (box->x1 - dPriv->x));
                OUT_RING       ((box->y1 << 16) | box->x1);
index 83867574d32ed6cd909095609578bbf2ae1fc48b..8f33093f1a5d8bd0e6e95c3518869da7d28c3ef3 100644 (file)
@@ -39,7 +39,7 @@ void nouveauObjectInit(nouveauContextPtr nmesa)
                nouveauCreateContextObject(nmesa, NvCtxSurf3D, NV04_CONTEXT_SURFACES_3D);
        }
        if (nmesa->screen->card->type>=NV_11) {
-               nouveauCreateContextObject(nmesa, NvImageBlit, NV10_IMAGE_BLIT);
+               nouveauCreateContextObject(nmesa, NvImageBlit, NV11_IMAGE_BLIT);
        } else {
                nouveauCreateContextObject(nmesa, NvImageBlit, NV_IMAGE_BLIT);
        }
@@ -56,9 +56,9 @@ void nouveauObjectInit(nouveauContextPtr nmesa)
        OUT_RING(NvDmaFB);
 
        nouveauObjectOnSubchannel(nmesa, NvSubImageBlit, NvImageBlit);
-       BEGIN_RING_SIZE(NvSubImageBlit, NV10_IMAGE_BLIT_SET_CONTEXT_SURFACES_2D, 1);
+       BEGIN_RING_SIZE(NvSubImageBlit, NV_IMAGE_BLIT_SET_SURFACES_2D, 1);
        OUT_RING(NvCtxSurf2D);
-       BEGIN_RING_SIZE(NvSubImageBlit, NV10_IMAGE_BLIT_SET_OPERATION, 1);
+       BEGIN_RING_SIZE(NvSubImageBlit, NV_IMAGE_BLIT_OPERATION, 1);
        OUT_RING(3); /* SRCCOPY */
 
        if ((nmesa->screen->card->type>=NV_10) && (nmesa->screen->card->type<NV_20)) {
index e08a5e4f7bd1252c1c7afec674f8254c0d87d6d6..6b90bab0766592450d8e3ffa3d13acea07ca4912 100644 (file)
@@ -43,7 +43,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 **************************************************************************
 
-   Created from objects.c rev. 1.398
+   Created from objects.c rev. 1.440
 */
 
 #ifndef _NOUVEAU_REG_H
@@ -53,8 +53,17 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 Object NV01_CONTEXT_CLIP_RECTANGLE used on: NV03 NV04 NV10 NV15 NV20 NV40 G70
 */
 #define                        NV01_CONTEXT_CLIP_RECTANGLE                             0x00000019
+#      define          NV01_CONTEXT_CLIP_RECTANGLE_NOP                         0x00000100
+#      define          NV01_CONTEXT_CLIP_RECTANGLE_NOTIFY                      0x00000104
+#      define          NV01_CONTEXT_CLIP_RECTANGLE_DMA_NOTIFY                  0x00000180
 #      define          NV01_CONTEXT_CLIP_RECTANGLE_SET_POINT                   0x00000300      /* Parameters: x y */
+#               define         NV01_CONTEXT_CLIP_RECTANGLE_SET_POINT_X_MASK    0x0000ffff
+#               define         NV01_CONTEXT_CLIP_RECTANGLE_SET_POINT_Y_MASK    0xffff0000
+#               define         NV01_CONTEXT_CLIP_RECTANGLE_SET_POINT_Y_SHIFT   16
 #      define          NV01_CONTEXT_CLIP_RECTANGLE_SET_SIZE                    0x00000304      /* Parameters: width height */
+#               define         NV01_CONTEXT_CLIP_RECTANGLE_SET_SIZE_WIDTH_MASK 0x0000ffff
+#               define         NV01_CONTEXT_CLIP_RECTANGLE_SET_SIZE_HEIGHT_MASK        0xffff0000
+#               define         NV01_CONTEXT_CLIP_RECTANGLE_SET_SIZE_HEIGHT_SHIFT       16
 
 /****************************************** 
 Object NV_MEMORY_TO_MEMORY_FORMAT used on: NV04 NV10 NV15 NV20 NV30 NV40 G70
@@ -72,31 +81,69 @@ Object NV_MEMORY_TO_MEMORY_FORMAT used on: NV04 NV10 NV15 NV20 NV30 NV40 G70
 #      define          NV_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN               0x0000031c
 #      define          NV_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT                   0x00000320
 #      define          NV_MEMORY_TO_MEMORY_FORMAT_FORMAT                       0x00000324      /* Parameters: src_inc dst_inc */
+#               define         NV_MEMORY_TO_MEMORY_FORMAT_FORMAT_SRC_INC_MASK  0x00000007
+#               define         NV_MEMORY_TO_MEMORY_FORMAT_FORMAT_DST_INC_MASK  0x00000700
+#               define         NV_MEMORY_TO_MEMORY_FORMAT_FORMAT_DST_INC_SHIFT 8
 #      define          NV_MEMORY_TO_MEMORY_FORMAT_BUF_NOTIFY                   0x00000328
 
 /****************************************** 
 Object NV03_PRIMITIVE_RASTER_OP used on: NV03 NV04 NV10 NV15 NV20 NV30 NV40 G70
 */
 #define                        NV03_PRIMITIVE_RASTER_OP                                0x00000043
-#      define          NV03_PRIMITIVE_RASTER_OP_NOTIFY                         0x00000100
+#      define          NV03_PRIMITIVE_RASTER_OP_NOP                            0x00000100
+#      define          NV03_PRIMITIVE_RASTER_OP_NOTIFY                         0x00000104
 #      define          NV03_PRIMITIVE_RASTER_OP_DMA_NOTIFY                     0x00000180
 #      define          NV03_PRIMITIVE_RASTER_OP_LOGIC_OP                       0x00000300      /* Parameters: logic_op */
+#               define         NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_MASK 0x000000f0
+#               define         NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_SHIFT        4
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_CLEAR        0x0000
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_NOR  0x0001
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_AND_INVERTED 0x0002
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_COPY_INVERTED        0x0003
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_AND_REVERSE  0x0004
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_INVERT       0x0005
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_XOR  0x0006
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_NAND 0x0007
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_AND  0x0008
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_EQUIV        0x0009
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_NOOP 0x000a
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_OR_INVERTED  0x000b
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_COPY 0x000c
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_OR_REVERSE   0x000d
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_OR   0x000e
+#               define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_SET  0x000f
 
 /****************************************** 
 Object NV04_GDI_RECTANGLE_TEXT used on: NV04 NV10 NV15 NV20 NV30 NV40 G70
 */
 #define                        NV04_GDI_RECTANGLE_TEXT                                 0x0000004a
+#      define          NV04_GDI_RECTANGLE_TEXT_NOP                             0x00000100
+#      define          NV04_GDI_RECTANGLE_TEXT_NOTIFY                          0x00000104
 #      define          NV04_GDI_RECTANGLE_TEXT_SET_DMA_NOTIFY                  0x00000180
+#      define          NV04_GDI_RECTANGLE_TEXT_SET_DMA_FONTS                   0x00000184
 #      define          NV04_GDI_RECTANGLE_TEXT_PATTERN                         0x00000188
 #      define          NV04_GDI_RECTANGLE_TEXT_ROP5                            0x0000018c
 #      define          NV04_GDI_RECTANGLE_TEXT_SURFACE                         0x00000198
 #      define          NV04_GDI_RECTANGLE_TEXT_OPERATION                       0x000002fc
 #      define          NV04_GDI_RECTANGLE_TEXT_FORMAT                          0x00000300
+#      define          NV04_GDI_RECTANGLE_TEXT_MONO_FORMAT                     0x00000304
 #      define          NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_TL                 0x000005f4      /* Parameters: left top */
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_TL_LEFT_MASK       0x0000ffff
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_TL_TOP_MASK        0xffff0000
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_TL_TOP_SHIFT       16
 #      define          NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_BR                 0x000005f8      /* Parameters: right bottom */
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_BR_RIGHT_MASK      0x0000ffff
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_BR_BOTTOM_MASK     0xffff0000
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_BR_BOTTOM_SHIFT    16
 #      define          NV04_GDI_RECTANGLE_TEXT_FILL_VALUE                      0x000005fc
 #      define          NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_TL                 0x00000600      /* Parameters: left top */
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_TL_LEFT_MASK       0x0000ffff
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_TL_TOP_MASK        0xffff0000
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_TL_TOP_SHIFT       16
 #      define          NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_BR                 0x00000604      /* Parameters: right bottom */
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_BR_RIGHT_MASK      0x0000ffff
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_BR_BOTTOM_MASK     0xffff0000
+#               define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_BR_BOTTOM_SHIFT    16
 
 /****************************************** 
 Object NV04_SWIZZLED_SURFACE used on: NV04 NV10 NV15 
@@ -104,7 +151,12 @@ Object NV04_SWIZZLED_SURFACE used on: NV04 NV10 NV15
 #define                        NV04_SWIZZLED_SURFACE                                   0x00000052
 #      define          NV04_SWIZZLED_SURFACE_DMA_NOTIFY                        0x00000180
 #      define          NV04_SWIZZLED_SURFACE_DMA_IMAGE                         0x00000184
-#      define          NV04_SWIZZLED_SURFACE_FORMAT                            0x00000300      /* Parameters: log2(height) log2(width) color */
+#      define          NV04_SWIZZLED_SURFACE_FORMAT                            0x00000300      /* Parameters: log2_height log2_width color */
+#               define         NV04_SWIZZLED_SURFACE_FORMAT_LOG2_HEIGHT_MASK   0xff000000
+#               define         NV04_SWIZZLED_SURFACE_FORMAT_LOG2_HEIGHT_SHIFT  24
+#               define         NV04_SWIZZLED_SURFACE_FORMAT_LOG2_WIDTH_MASK    0x00ff0000
+#               define         NV04_SWIZZLED_SURFACE_FORMAT_LOG2_WIDTH_SHIFT   16
+#               define         NV04_SWIZZLED_SURFACE_FORMAT_COLOR_MASK 0x0000ffff
 #      define          NV04_SWIZZLED_SURFACE_OFFSET                            0x00000304
 
 /****************************************** 
@@ -115,10 +167,31 @@ Object NV04_CONTEXT_SURFACES_3D used on: NV04
 #      define          NV04_CONTEXT_SURFACES_3D_DMA_COLOR                      0x00000184
 #      define          NV04_CONTEXT_SURFACES_3D_DMA_ZETA                       0x00000188
 #      define          NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL                0x000002f8      /* Parameters: x width */
+#               define         NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_X_MASK 0x0000ffff
+#               define         NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_WIDTH_MASK     0xffff0000
+#               define         NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_WIDTH_SHIFT    16
 #      define          NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL                  0x000002fc      /* Parameters: y height */
+#               define         NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_Y_MASK   0x0000ffff
+#               define         NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_HEIGHT_MASK      0xffff0000
+#               define         NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_HEIGHT_SHIFT     16
 #      define          NV04_CONTEXT_SURFACES_3D_FORMAT                         0x00000300      /* Parameters: color type width height */
+#               define         NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_MASK      0x000000ff
+#               define         NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_MASK       0x0000ff00
+#               define         NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_SHIFT      8
+#               define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_pitch      0x0001
+#               define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_swizzle    0x0002
+#               define         NV04_CONTEXT_SURFACES_3D_FORMAT_WIDTH_MASK      0x00ff0000
+#               define         NV04_CONTEXT_SURFACES_3D_FORMAT_WIDTH_SHIFT     16
+#               define         NV04_CONTEXT_SURFACES_3D_FORMAT_HEIGHT_MASK     0xff000000
+#               define         NV04_CONTEXT_SURFACES_3D_FORMAT_HEIGHT_SHIFT    24
 #      define          NV04_CONTEXT_SURFACES_3D_CLIP_SIZE                      0x00000304      /* Parameters: width height */
+#               define         NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_WIDTH_MASK   0x0000ffff
+#               define         NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_HEIGHT_MASK  0xffff8000
+#               define         NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_HEIGHT_SHIFT 15
 #      define          NV04_CONTEXT_SURFACES_3D_PITCH                          0x00000308      /* Parameters: color zeta */
+#               define         NV04_CONTEXT_SURFACES_3D_PITCH_COLOR_MASK       0x0000ffff
+#               define         NV04_CONTEXT_SURFACES_3D_PITCH_ZETA_MASK        0xffff0000
+#               define         NV04_CONTEXT_SURFACES_3D_PITCH_ZETA_SHIFT       16
 #      define          NV04_CONTEXT_SURFACES_3D_OFFSET_COLOR                   0x0000030c
 #      define          NV04_CONTEXT_SURFACES_3D_OFFSET_ZETA                    0x00000310
 
@@ -134,20 +207,137 @@ Object NV04_DX5_TEXTURED_TRIANGLE used on: NV04
 #      define          NV04_DX5_TEXTURED_TRIANGLE_SURFACE                      0x0000018c
 #      define          NV04_DX5_TEXTURED_TRIANGLE_COLOR_KEY                    0x00000300
 #      define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_OFFSET               0x00000304
-#      define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT               0x00000308      /* Parameters: color mipmaps log(u) log(v) wrap_s wrap_t */
+#      define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT               0x00000308      /* Parameters: color mipmaps log_u log_v wrap_s wrap_t */
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_MASK    0x00000f00
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_SHIFT   8
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_Y8      0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_A1R5G5B5        0x0002
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_X1R5G5B5        0x0003
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_A4R4G4B4        0x0004
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_R5G6B5  0x0005
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_A8R8G8B8        0x0006
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_X8R8G8B8        0x0007
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_MIPMAPS_MASK  0x0000f000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_MIPMAPS_SHIFT 12
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_LOG_U_MASK    0x000f0000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_LOG_U_SHIFT   16
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_LOG_V_MASK    0x00f00000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_LOG_V_SHIFT   20
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_S_MASK   0x07000000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_S_SHIFT  24
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_S_REPEAT 0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_S_MIRRORED       0x0002
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_S_CLAMP  0x0003
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_T_MASK   0x70000000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_T_SHIFT  28
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_T_REPEAT 0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_T_MIRRORED       0x0002
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_T_CLAMP  0x0003
 #      define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER               0x0000030c      /* Parameters: magfilter minfilter lodbias */
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_MASK        0x70000000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_SHIFT       28
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_NEAREST     0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_LINEAR      0x0002
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_NEAREST_MIPMAP_NEAREST      0x0003
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_LINEAR_MIPMAP_NEAREST       0x0004
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_NEAREST_MIPMAP_LINEAR       0x0005
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_LINEAR_MIPMAP_LINEAR        0x0006
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_MASK        0x07000000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_SHIFT       24
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_NEAREST     0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_LINEAR      0x0002
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_NEAREST_MIPMAP_NEAREST      0x0003
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_LINEAR_MIPMAP_NEAREST       0x0004
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_NEAREST_MIPMAP_LINEAR       0x0005
+#               define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_LINEAR_MIPMAP_LINEAR        0x0006
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_LODBIAS_MASK  0x00ff0000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_LODBIAS_SHIFT 16
 #      define          NV04_DX5_TEXTURED_TRIANGLE_BLEND                        0x00000310      /* Parameters: texture benable dst src */
+#               define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_TEXTURE_MASK   0x0000000f
+#               define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_BENABLE_MASK   0x00100000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_BENABLE        (1 << 20)
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_BENABLE_TRUE   0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_BENABLE_FALSE  0x0000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_MASK       0xf0000000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_SHIFT      28
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_0  0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_1  0x0002
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_src_col    0x0003
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_inv_src_col        0x0004
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_src_a      0x0005
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_inv_src_a  0x0006
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_dst_col    0x0009
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_inv_dst_col        0x000a
+#               define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_MASK       0x0f000000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_SHIFT      24
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_0  0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_1  0x0002
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_src_col    0x0003
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_inv_src_col        0x0004
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_src_a      0x0005
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_inv_src_a  0x0006
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_dst_col    0x0009
+#               define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_inv_dst_col        0x000a
 #      define          NV04_DX5_TEXTURED_TRIANGLE_CONTROL                      0x00000314      /* Parameters: alpharef alphafunc alphaenable zenable zwrite zfunc cullmode */
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAREF_MASK        0x000000ff
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_MASK       0x00000f00
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_SHIFT      8
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_NEVER      0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_LESS       0x0002
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_EQUAL      0x0003
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_LEQUAL     0x0004
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_GREATER    0x0005
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_NOTEQUAL   0x0006
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_GEQUAL     0x0007
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_ALWAYS     0x0008
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAENABLE_MASK     0x00001000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAENABLE  (1 << 12)
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAENABLE_TRUE     0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAENABLE_FALSE    0x0000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZENABLE_MASK 0x00004000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZENABLE      (1 << 14)
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZENABLE_TRUE 0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZENABLE_FALSE        0x0000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZWRITE_MASK  0x01000000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZWRITE       (1 << 24)
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZWRITE_TRUE  0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZWRITE_FALSE 0x0000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_MASK   0x000f0000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_SHIFT  16
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_NEVER  0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_LESS   0x0002
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_EQUAL  0x0003
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_LEQUAL 0x0004
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_GREATER        0x0005
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_NOTEQUAL       0x0006
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_GEQUAL 0x0007
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_ALWAYS 0x0008
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULLMODE_MASK        0x00300000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULLMODE_SHIFT       20
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULLMODE_NONE        0x0001
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULLMODE_CW  0x0002
+#               define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULLMODE_CCW 0x0003
 #      define          NV04_DX5_TEXTURED_TRIANGLE_FOG_COLOR                    0x00000318
-#      define          NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SX( d)              (0x00000400 + d * 0x0020)
-#      define          NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SY( d)              (0x00000404 + d * 0x0020)
-#      define          NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SZ( d)              (0x00000408 + d * 0x0020)
-#      define          NV04_DX5_TEXTURED_TRIANGLE_INV_W( d)                    (0x0000040c + d * 0x0020)
-#      define          NV04_DX5_TEXTURED_TRIANGLE_COLOR( d)                    (0x00000410 + d * 0x0020)
-#      define          NV04_DX5_TEXTURED_TRIANGLE_SPECULAR( d)                 (0x00000414 + d * 0x0020)
-#      define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_S( d)                (0x00000418 + d * 0x0020)
-#      define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_T( d)                (0x0000041c + d * 0x0020)
+#      define          NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SX( d)              (0x00000400 + (d) * 0x0020)
+#      define          NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SY( d)              (0x00000404 + (d) * 0x0020)
+#      define          NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SZ( d)              (0x00000408 + (d) * 0x0020)
+#      define          NV04_DX5_TEXTURED_TRIANGLE_INV_W( d)                    (0x0000040c + (d) * 0x0020)
+#      define          NV04_DX5_TEXTURED_TRIANGLE_COLOR( d)                    (0x00000410 + (d) * 0x0020)
+#      define          NV04_DX5_TEXTURED_TRIANGLE_SPECULAR( d)                 (0x00000414 + (d) * 0x0020)
+#      define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_S( d)                (0x00000418 + (d) * 0x0020)
+#      define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_T( d)                (0x0000041c + (d) * 0x0020)
 #      define          NV04_DX5_TEXTURED_TRIANGLE_DRAW                         0x00000600      /* Parameters: v0 v1 v2 v3 v4 v5 */
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V0_MASK 0x0000000f
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V1_MASK 0x000000f0
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V1_SHIFT        4
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V2_MASK 0x00000f00
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V2_SHIFT        8
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V3_MASK 0x0000f000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V3_SHIFT        12
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V4_MASK 0x000f0000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V4_SHIFT        16
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V5_MASK 0x00f00000
+#               define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V5_SHIFT        20
 
 /****************************************** 
 Object NV04_DX6_MULTITEX_TRIANGLE used on: NV04 NV10 NV15 
@@ -161,31 +351,252 @@ Object NV04_DX6_MULTITEX_TRIANGLE used on: NV04 NV10 NV15
 #      define          NV04_DX6_MULTITEX_TRIANGLE_SURFACE                      0x0000018c
 #      define          NV04_DX6_MULTITEX_TRIANGLE_OFFSET0                      0x00000308
 #      define          NV04_DX6_MULTITEX_TRIANGLE_OFFSET1                      0x0000030c
-#      define          NV04_DX6_MULTITEX_TRIANGLE_FORMAT0                      0x00000310      /* Parameters: color mipmaps log(u) log(v) wrap_s wrap_t */
-#      define          NV04_DX6_MULTITEX_TRIANGLE_FORMAT1                      0x00000314      /* Parameters: color mipmaps log(u) log(v) wrap_s wrap_t */
+#      define          NV04_DX6_MULTITEX_TRIANGLE_FORMAT0                      0x00000310      /* Parameters: color mipmaps log_u log_v wrap_s wrap_t */
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_MASK   0x00000f00
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_SHIFT  8
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_Y8     0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_A1R5G5B5       0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_X1R5G5B5       0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_A4R4G4B4       0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_R5G6B5 0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_A8R8G8B8       0x0006
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_X8R8G8B8       0x0007
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_MIPMAPS_MASK 0x0000f000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_MIPMAPS_SHIFT        12
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_LOG_U_MASK   0x000f0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_LOG_U_SHIFT  16
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_LOG_V_MASK   0x00f00000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_LOG_V_SHIFT  20
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_S_MASK  0x07000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_S_SHIFT 24
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_S_REPEAT        0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_S_MIRRORED      0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_S_CLAMP 0x0003
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_T_MASK  0x70000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_T_SHIFT 28
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_T_REPEAT        0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_T_MIRRORED      0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_T_CLAMP 0x0003
+#      define          NV04_DX6_MULTITEX_TRIANGLE_FORMAT1                      0x00000314      /* Parameters: color mipmaps log_u log_v wrap_s wrap_t */
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_MASK   0x00000f00
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_SHIFT  8
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_Y8     0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_A1R5G5B5       0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_X1R5G5B5       0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_A4R4G4B4       0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_R5G6B5 0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_A8R8G8B8       0x0006
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_X8R8G8B8       0x0007
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_MIPMAPS_MASK 0x0000f000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_MIPMAPS_SHIFT        12
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_LOG_U_MASK   0x000f0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_LOG_U_SHIFT  16
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_LOG_V_MASK   0x00f00000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_LOG_V_SHIFT  20
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_S_MASK  0x07000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_S_SHIFT 24
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_S_REPEAT        0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_S_MIRRORED      0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_S_CLAMP 0x0003
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_T_MASK  0x70000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_T_SHIFT 28
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_T_REPEAT        0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_T_MIRRORED      0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_T_CLAMP 0x0003
 #      define          NV04_DX6_MULTITEX_TRIANGLE_FILTER0                      0x00000318      /* Parameters: magfilter minfilter lodbias */
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_MASK       0x70000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_SHIFT      28
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_NEAREST    0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_LINEAR     0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_NEAREST_MIPMAP_NEAREST     0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_LINEAR_MIPMAP_NEAREST      0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_NEAREST_MIPMAP_LINEAR      0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_LINEAR_MIPMAP_LINEAR       0x0006
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_MASK       0x07000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_SHIFT      24
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_NEAREST    0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_LINEAR     0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_NEAREST_MIPMAP_NEAREST     0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_LINEAR_MIPMAP_NEAREST      0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_NEAREST_MIPMAP_LINEAR      0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_LINEAR_MIPMAP_LINEAR       0x0006
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_LODBIAS_MASK 0x00ff0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_LODBIAS_SHIFT        16
 #      define          NV04_DX6_MULTITEX_TRIANGLE_FILTER1                      0x0000031c      /* Parameters: magfilter minfilter lodbias */
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_MASK       0x70000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_SHIFT      28
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_NEAREST    0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_LINEAR     0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_NEAREST_MIPMAP_NEAREST     0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_LINEAR_MIPMAP_NEAREST      0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_NEAREST_MIPMAP_LINEAR      0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_LINEAR_MIPMAP_LINEAR       0x0006
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_MASK       0x07000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_SHIFT      24
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_NEAREST    0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_LINEAR     0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_NEAREST_MIPMAP_NEAREST     0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_LINEAR_MIPMAP_NEAREST      0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_NEAREST_MIPMAP_LINEAR      0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_LINEAR_MIPMAP_LINEAR       0x0006
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_LODBIAS_MASK 0x00ff0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_LODBIAS_SHIFT        16
 #      define          NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA              0x00000320
 #      define          NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR              0x00000324
 #      define          NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA              0x0000032c
 #      define          NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR              0x00000330
 #      define          NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR               0x00000334
 #      define          NV04_DX6_MULTITEX_TRIANGLE_BLEND                        0x00000338      /* Parameters: benable dst src */
+#               define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_BENABLE_MASK   0x00100000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_BENABLE        (1 << 20)
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_BENABLE_TRUE   0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_BENABLE_FALSE  0x0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_MASK       0xf0000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_SHIFT      28
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_0  0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_1  0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_src_col    0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_inv_src_col        0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_src_a      0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_inv_src_a  0x0006
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_dst_col    0x0009
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_inv_dst_col        0x000a
+#               define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_MASK       0x0f000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_SHIFT      24
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_0  0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_1  0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_src_col    0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_inv_src_col        0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_src_a      0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_inv_src_a  0x0006
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_dst_col    0x0009
+#               define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_inv_dst_col        0x000a
 #      define          NV04_DX6_MULTITEX_TRIANGLE_CONTROL0                     0x0000033c      /* Parameters: red_write green_write blue_write alpha_write alpha_write stencil_write alpharef alphafunc alphaenable zenable zwrite zfunc cullmode */
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE_MASK      0x08000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE   (1 << 27)
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE_TRUE      0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE_FALSE     0x0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE_MASK    0x10000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE (1 << 28)
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE_TRUE    0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE_FALSE   0x0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE_MASK     0x20000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE  (1 << 29)
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE_TRUE     0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE_FALSE    0x0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_MASK    0x04000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE (1 << 26)
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_TRUE    0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_FALSE   0x0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_MASK    0x04000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE (1 << 26)
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_TRUE    0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_FALSE   0x0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE_MASK  0x02000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE       (1 << 25)
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE_TRUE  0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE_FALSE 0x0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAREF_MASK       0x000000ff
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_MASK      0x00000f00
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_SHIFT     8
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_NEVER     0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_LESS      0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_EQUAL     0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_LEQUAL    0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_GREATER   0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_NOTEQUAL  0x0006
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_GEQUAL    0x0007
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_ALWAYS    0x0008
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAENABLE_MASK    0x00001000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAENABLE (1 << 12)
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAENABLE_TRUE    0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAENABLE_FALSE   0x0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZENABLE_MASK        0x00004000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZENABLE     (1 << 14)
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZENABLE_TRUE        0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZENABLE_FALSE       0x0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZWRITE_MASK 0x01000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZWRITE      (1 << 24)
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZWRITE_TRUE 0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZWRITE_FALSE        0x0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_MASK  0x000f0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_SHIFT 16
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_NEVER 0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_LESS  0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_EQUAL 0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_LEQUAL        0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_GREATER       0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_NOTEQUAL      0x0006
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_GEQUAL        0x0007
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_ALWAYS        0x0008
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULLMODE_MASK       0x00300000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULLMODE_SHIFT      20
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULLMODE_NONE       0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULLMODE_CW 0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULLMODE_CCW        0x0003
 #      define          NV04_DX6_MULTITEX_TRIANGLE_CONTROL1                     0x00000340      /* Parameters: stencil_enable stencil_mask_write stencil_mask_read stencilref stencilfunc */
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_ENABLE_MASK 0x00000001
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_MASK     0xff000000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_SHIFT    24
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_MASK      0x00ff0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_SHIFT     16
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILREF_MASK     0x0000ff00
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILREF_SHIFT    8
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_MASK    0x000000f0
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_SHIFT   4
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_NEVER   0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_LESS    0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_EQUAL   0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_LEQUAL  0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_GREATER 0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_NOTEQUAL        0x0006
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_GEQUAL  0x0007
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_ALWAYS  0x0008
 #      define          NV04_DX6_MULTITEX_TRIANGLE_CONTROL2                     0x00000344      /* Parameters: stencil_fail stencil_zfail stencil_zpass */
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_FAIL_MASK   0x0000000f
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_MASK  0x000000f0
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_SHIFT 4
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_KEEP  0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_ZERO  0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_REPLACE       0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_INCR  0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_DECR  0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_INVERT        0x0006
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_INCR_WRAP     0x0007
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_DECR_WRAP     0x0008
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_MASK  0x00000f00
+#               define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_SHIFT 8
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_KEEP  0x0001
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_ZERO  0x0002
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_REPLACE       0x0003
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_INCR  0x0004
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_DECR  0x0005
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_INVERT        0x0006
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_INCR_WRAP     0x0007
+#               define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_DECR_WRAP     0x0008
 #      define          NV04_DX6_MULTITEX_TRIANGLE_FOG_COLOR                    0x00000348
-#      define          NV04_DX6_MULTITEX_TRIANGLE_TLVERTEX_SX( d)              (0x00000400 + d * 0x0028)
-#      define          NV04_DX6_MULTITEX_TRIANGLE_TLVERTEX_SY( d)              (0x00000404 + d * 0x0028)
-#      define          NV04_DX6_MULTITEX_TRIANGLE_TLVERTEX_SZ( d)              (0x00000408 + d * 0x0028)
-#      define          NV04_DX6_MULTITEX_TRIANGLE_INV_W( d)                    (0x0000040c + d * 0x0028)
-#      define          NV04_DX6_MULTITEX_TRIANGLE_COLOR( d)                    (0x00000410 + d * 0x0028)
-#      define          NV04_DX6_MULTITEX_TRIANGLE_SPECULAR( d)                 (0x00000414 + d * 0x0028)
-#      define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE0_S( d)               (0x00000418 + d * 0x0028)
-#      define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE0_T( d)               (0x0000041c + d * 0x0028)
-#      define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE1_S( d)               (0x00000420 + d * 0x0028)
-#      define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE1_T( d)               (0x00000424 + d * 0x0028)
+#      define          NV04_DX6_MULTITEX_TRIANGLE_TLVERTEX_SX( d)              (0x00000400 + (d) * 0x0028)
+#      define          NV04_DX6_MULTITEX_TRIANGLE_TLVERTEX_SY( d)              (0x00000404 + (d) * 0x0028)
+#      define          NV04_DX6_MULTITEX_TRIANGLE_TLVERTEX_SZ( d)              (0x00000408 + (d) * 0x0028)
+#      define          NV04_DX6_MULTITEX_TRIANGLE_INV_W( d)                    (0x0000040c + (d) * 0x0028)
+#      define          NV04_DX6_MULTITEX_TRIANGLE_COLOR( d)                    (0x00000410 + (d) * 0x0028)
+#      define          NV04_DX6_MULTITEX_TRIANGLE_SPECULAR( d)                 (0x00000414 + (d) * 0x0028)
+#      define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE0_S( d)               (0x00000418 + (d) * 0x0028)
+#      define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE0_T( d)               (0x0000041c + (d) * 0x0028)
+#      define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE1_S( d)               (0x00000420 + (d) * 0x0028)
+#      define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE1_T( d)               (0x00000424 + (d) * 0x0028)
 #      define          NV04_DX6_MULTITEX_TRIANGLE_DRAW                         0x00000540      /* Parameters: v0 v1 v2 v3 v4 v5 */
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V0_MASK 0x0000000f
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V1_MASK 0x000000f0
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V1_SHIFT        4
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V2_MASK 0x00000f00
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V2_SHIFT        8
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V3_MASK 0x0000f000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V3_SHIFT        12
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V4_MASK 0x000f0000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V4_SHIFT        16
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V5_MASK 0x00f00000
+#               define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V5_SHIFT        20
 
 /****************************************** 
 Object NV04_COLOR_KEY used on: NV04 NV10 NV15 NV20 NV40 
@@ -207,7 +618,13 @@ Object NV04_SOLID_LINE used on: NV04
 #      define          NV04_SOLID_LINE_COLOR_FORMAT                            0x00000300
 #      define          NV04_SOLID_LINE_COLOR_VALUE                             0x00000304
 #      define          NV04_SOLID_LINE_START                                   0x00000400      /* Parameters: x y */
+#               define         NV04_SOLID_LINE_START_X_MASK    0x0000ffff
+#               define         NV04_SOLID_LINE_START_Y_MASK    0xffff0000
+#               define         NV04_SOLID_LINE_START_Y_SHIFT   16
 #      define          NV04_SOLID_LINE_END                                     0x00000400      /* Parameters: x y */
+#               define         NV04_SOLID_LINE_END_X_MASK      0x0000ffff
+#               define         NV04_SOLID_LINE_END_Y_MASK      0xffff0000
+#               define         NV04_SOLID_LINE_END_Y_SHIFT     16
 
 /****************************************** 
 Object NV04_UNK005E used on: NV04 
@@ -230,21 +647,64 @@ Object NV05_SCALED_IMAGE_FROM_MEMORY used on: NV04
 Object NV04_SCALED_IMAGE_FROM_MEMORY used on: NV04 
 */
 #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_FORMAT              0x00000300
 #      define          NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION                 0x00000304
 #      define          NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POS                  0x00000308      /* Parameters: x y */
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_X_MASK   0x0000ffff
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_Y_MASK   0xffff0000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_Y_SHIFT  16
 #      define          NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE                 0x0000030c      /* Parameters: width height */
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_WIDTH_MASK      0x0000ffff
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_HEIGHT_MASK     0xffff0000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_HEIGHT_SHIFT    16
 #      define          NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POS                   0x00000310      /* Parameters: x y */
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POS_X_MASK    0x0000ffff
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POS_Y_MASK    0xffff0000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POS_Y_SHIFT   16
 #      define          NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE                  0x00000314      /* Parameters: width height */
-#      define          NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX                     0x00000318      /* Parameters: int frac*0x100000 */
-#      define          NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY                     0x0000031c      /* Parameters: int frac*0x100000 */
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_WIDTH_MASK       0x0000ffff
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_HEIGHT_MASK      0xffff0000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_HEIGHT_SHIFT     16
+#      define          NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX                     0x00000318      /* Parameters: int frac_mul_0x100000 */
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX_INT_MASK    0xfff00000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX_INT_SHIFT   20
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX_FRAC_MUL_0X100000_MASK      0x000fffff
+#      define          NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY                     0x0000031c      /* Parameters: int frac_mul_0x100000 */
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY_INT_MASK    0xfff00000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY_INT_SHIFT   20
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY_FRAC_MUL_0X100000_MASK      0x000fffff
 #      define          NV04_SCALED_IMAGE_FROM_MEMORY_SIZE                      0x00000400      /* Parameters: width height */
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_WIDTH_MASK   0x0000ffff
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_HEIGHT_MASK  0xffff0000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_HEIGHT_SHIFT 16
 #      define          NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT                    0x00000404      /* Parameters: pitch origin filter */
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_MASK 0x0000ffff
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_MASK        0x00ff0000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_SHIFT       16
+#               define NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER      0x0001
+#               define NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CORNER      0x0002
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_MASK        0xff000000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_SHIFT       24
+#               define NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE        0x0001
+#               define NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_BILINEAR    0x0002
 #      define          NV04_SCALED_IMAGE_FROM_MEMORY_OFFSET                    0x00000408
-#      define          NV04_SCALED_IMAGE_FROM_MEMORY_POINT                     0x0000040c      /* Parameters: u_int u_frac*0x10 v_int v_frac*0x10 */
+#      define          NV04_SCALED_IMAGE_FROM_MEMORY_POINT                     0x0000040c      /* Parameters: u_int u_frac_mul_0x10 v_int v_frac_mul_0x10 */
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_U_INT_MASK  0xfff00000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_U_INT_SHIFT 20
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_U_FRAC_MUL_0X10_MASK        0x000f0000
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_U_FRAC_MUL_0X10_SHIFT       16
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_V_INT_MASK  0x0000fff0
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_V_INT_SHIFT 4
+#               define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_V_FRAC_MUL_0X10_MASK        0x0000000f
 
 /****************************************** 
 Object NV_IMAGE_FROM_CPU used on: NV04 
@@ -266,43 +726,63 @@ Object NV05_IMAGE_FROM_CPU used on: NV04
 #      define          NV05_IMAGE_FROM_CPU_CLIP_RECTANGLE                      0x00000188
 #      define          NV05_IMAGE_FROM_CPU_PATTERN                             0x0000018c
 #      define          NV05_IMAGE_FROM_CPU_ROP                                 0x00000190
+#      define          NV05_IMAGE_FROM_CPU_BETA1                               0x00000194
+#      define          NV05_IMAGE_FROM_CPU_BETA4                               0x00000198
 #      define          NV05_IMAGE_FROM_CPU_SURFACE                             0x0000019c
 #      define          NV05_IMAGE_FROM_CPU_OPERATION                           0x000002fc
 #      define          NV05_IMAGE_FROM_CPU_FORMAT                              0x00000300
 #      define          NV05_IMAGE_FROM_CPU_POINT                               0x00000304      /* Parameters: x y */
+#               define         NV05_IMAGE_FROM_CPU_POINT_X_MASK        0x0000ffff
+#               define         NV05_IMAGE_FROM_CPU_POINT_Y_MASK        0xffff0000
+#               define         NV05_IMAGE_FROM_CPU_POINT_Y_SHIFT       16
 #      define          NV05_IMAGE_FROM_CPU_SIZE_OUT                            0x00000308      /* Parameters: x y */
+#               define         NV05_IMAGE_FROM_CPU_SIZE_OUT_X_MASK     0x0000ffff
+#               define         NV05_IMAGE_FROM_CPU_SIZE_OUT_Y_MASK     0xffff0000
+#               define         NV05_IMAGE_FROM_CPU_SIZE_OUT_Y_SHIFT    16
 #      define          NV05_IMAGE_FROM_CPU_SIZE_IN                             0x0000030c      /* Parameters: x y */
-#      define          NV05_IMAGE_FROM_CPU_COLOR( d)                           (0x00000400 + d * 0x0004)
+#               define         NV05_IMAGE_FROM_CPU_SIZE_IN_X_MASK      0x0000ffff
+#               define         NV05_IMAGE_FROM_CPU_SIZE_IN_Y_MASK      0xffff0000
+#               define         NV05_IMAGE_FROM_CPU_SIZE_IN_Y_SHIFT     16
+#      define          NV05_IMAGE_FROM_CPU_COLOR( d)                           (0x00000400 + (d) * 0x0004)
 
 /****************************************** 
-Object NV_IMAGE_BLIT used on: NV04 NV10 NV15 NV20 NV40 
+Object NV_IMAGE_BLIT used on: NV04 NV10 NV15 NV20 
 */
 #define                        NV_IMAGE_BLIT                                           0x0000005f
-#      define          NV_IMAGE_BLIT_DMA_NOTIFY                                0x00000180
-#      define          NV_IMAGE_BLIT_COLOR_KEY                                 0x00000184
-#      define          NV_IMAGE_BLIT_CLIP_RECTANGLE                            0x00000188
-#      define          NV_IMAGE_BLIT_PATTERN                                   0x0000018c
-#      define          NV_IMAGE_BLIT_ROP5                                      0x00000190
-#      define          NV_IMAGE_BLIT_SURFACE                                   0x0000019c
+#      define          NV_IMAGE_BLIT_SET_DMA_NOTIFY                            0x00000180
+#      define          NV_IMAGE_BLIT_SET_COLOR_KEY                             0x00000184
+#      define          NV_IMAGE_BLIT_SET_CLIP_RECTANGLE                        0x00000188
+#      define          NV_IMAGE_BLIT_SET_PATTERN                               0x0000018c
+#      define          NV_IMAGE_BLIT_SET_ROP5                                  0x00000190
+#      define          NV_IMAGE_BLIT_SET_SURFACES_2D                           0x0000019c
 #      define          NV_IMAGE_BLIT_OPERATION                                 0x000002fc
 #      define          NV_IMAGE_BLIT_POINT_IN                                  0x00000300      /* Parameters: x y */
+#               define         NV_IMAGE_BLIT_POINT_IN_X_MASK   0x0000ffff
+#               define         NV_IMAGE_BLIT_POINT_IN_Y_MASK   0xffff0000
+#               define         NV_IMAGE_BLIT_POINT_IN_Y_SHIFT  16
 #      define          NV_IMAGE_BLIT_POINT_OUT                                 0x00000304      /* Parameters: x y */
+#               define         NV_IMAGE_BLIT_POINT_OUT_X_MASK  0x0000ffff
+#               define         NV_IMAGE_BLIT_POINT_OUT_Y_MASK  0xffff0000
+#               define         NV_IMAGE_BLIT_POINT_OUT_Y_SHIFT 16
 #      define          NV_IMAGE_BLIT_SIZE                                      0x00000308      /* Parameters: width height */
+#               define         NV_IMAGE_BLIT_SIZE_WIDTH_MASK   0x0000ffff
+#               define         NV_IMAGE_BLIT_SIZE_HEIGHT_MASK  0xffff0000
+#               define         NV_IMAGE_BLIT_SIZE_HEIGHT_SHIFT 16
 
 /****************************************** 
-Object NV10_TCL_PRIMITIVE_3D used on: NV1
+Object NV11_IMAGE_BLIT used on: NV15 NV2
 */
-#define                        NV10_TCL_PRIMITIVE_3D                                   0x00000056
+#define                        NV11_IMAGE_BLIT                                         0x0000009f
 
 /****************************************** 
-Object NV17_TCL_PRIMITIVE_3D used on: NV15 
+Object NV30_IMAGE_BLIT used on: NV30 NV40 G70
 */
-#define                        NV17_TCL_PRIMITIVE_3D                                   0x00000099
+#define                        NV30_IMAGE_BLIT                                         0x0000009f
 
 /****************************************** 
-Object NV11_TCL_PRIMITIVE_3D used on: NV15 
+Object NV10_TCL_PRIMITIVE_3D used on: NV10 
 */
-#define                        NV11_TCL_PRIMITIVE_3D                                   0x00000096
+#define                        NV10_TCL_PRIMITIVE_3D                                   0x00000056
 #      define          NV10_TCL_PRIMITIVE_3D_NOP                               0x00000100
 #      define          NV10_TCL_PRIMITIVE_3D_NOTIFY                            0x00000104
 #      define          NV10_TCL_PRIMITIVE_3D_SET_DMA_NOTIFY                    0x00000180
@@ -311,40 +791,687 @@ Object NV11_TCL_PRIMITIVE_3D used on: NV15
 #      define          NV10_TCL_PRIMITIVE_3D_SET_DISPLAY_LIST                  0x0000018c
 #      define          NV10_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY2                0x00000194
 #      define          NV10_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY3                0x00000198
-#      define          NV17_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY4                0x000001ac
-#      define          NV17_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY5                0x000001b0
 #      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ                    0x00000200      /* Parameters: width x */
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_WIDTH_MASK 0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_WIDTH_SHIFT        16
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_X_MASK     0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_VERT                     0x00000204      /* Parameters: height y */
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_VERT_HEIGHT_MASK 0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_VERT_HEIGHT_SHIFT        16
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_VERT_Y_MASK      0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT                     0x00000208      /* Parameters: type color */
+#               define         NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_MASK   0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_SHIFT  8
+#               define NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_pitch  0x0001
+#               define NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_swizzle        0x0002
+#               define         NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT_COLOR_MASK  0x000000ff
 #      define          NV10_TCL_PRIMITIVE_3D_BUFFER_PITCH                      0x0000020c      /* Parameters: depth/stencil buffer pitch color buffer pitch */
+#               define         NV10_TCL_PRIMITIVE_3D_BUFFER_PITCH_DEPTH_STENCIL_BUFFER_PITCH_MASK      0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_BUFFER_PITCH_DEPTH_STENCIL_BUFFER_PITCH_SHIFT     16
+#               define         NV10_TCL_PRIMITIVE_3D_BUFFER_PITCH_COLOR_BUFFER_PITCH_MASK      0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_COLOR_OFFSET                      0x00000210
 #      define          NV10_TCL_PRIMITIVE_3D_DEPTH_OFFSET                      0x00000214
-#      define          NV10_TCL_PRIMITIVE_3D_TX_OFFSET(d)                      (0x00000218 + d * 0x0004)
-#      define          NV10_TCL_PRIMITIVE_3D_TX_FORMAT(d)                      (0x00000220 + d * 0x0004)       /* Parameters: wrap_t wrap_s log2(height) log2(width) lod npot format cube_map */
-#      define          NV10_TCL_PRIMITIVE_3D_TX_ENABLE(d)                      (0x00000228 + d * 0x0004)       /* Parameters: enable anisotropy */
-#      define          NV10_TCL_PRIMITIVE_3D_TX_NPOT_PITCH(d)                  (0x00000230 + d * 0x0004)       /* Parameters: pitch */
-#      define          NV10_TCL_PRIMITIVE_3D_TX_NPOT_SIZE(d)                   (0x00000240 + d * 0x0004)       /* Parameters: width height */
-#      define          NV10_TCL_PRIMITIVE_3D_TX_FILTER(d)                      (0x00000248 + d * 0x0004)       /* Parameters: mag_filter min_filter */
-#      define          NV10_TCL_PRIMITIVE_3D_TX_PALETTE_OFFSET(d)              (0x00000250 + d * 0x0004)
-#      define          NV10_TCL_PRIMITIVE_3D_TX_MATRIX_ENABLE(d)               (0x000003e0 + d * 0x0004)
-#      define          NV10_TCL_PRIMITIVE_3D_TX_MATRIX(x,y)                    (0x00000540 + y * 0x0010 + x * 0x0004)
-#      define          NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA(d)                    (0x00000260 + d * 0x0004)       /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
-#      define          NV10_TCL_PRIMITIVE_3D_RC_IN_RGB(d)                      (0x00000268 + d * 0x0004)       /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
-#      define          NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA(d)                   (0x00000278 + d * 0x0004)       /* Parameters: scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
-#      define          NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB(d)                     (0x00000280 + d * 0x0004)       /* Parameters: rc1_tx_units_enabled rc1_rc_enabled scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
+#      define          NV10_TCL_PRIMITIVE_3D_TX_OFFSET(d)                      (0x00000218 + (d) * 0x0004)
+#      define          NV10_TCL_PRIMITIVE_3D_TX_FORMAT(d)                      (0x00000220 + (d) * 0x0004)     /* Parameters: wrap_t wrap_s log2_height log2_width lod npot format cube_map */
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_MASK     0xf0000000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_SHIFT    28
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_REPEAT   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_MIRRORED_REPEAT  0x0002
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_CLAMP_TO_EDGE    0x0003
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_CLAMP_TO_BORDER  0x0004
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_CLAMP    0x0005
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_MASK     0x0f000000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_SHIFT    24
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_REPEAT   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_MIRRORED_REPEAT  0x0002
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_CLAMP_TO_EDGE    0x0003
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_CLAMP_TO_BORDER  0x0004
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_CLAMP    0x0005
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_HEIGHT_MASK        0x00f00000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_HEIGHT_SHIFT       20
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_WIDTH_MASK 0x000f0000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_WIDTH_SHIFT        16
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOD_MASK        0x0000f000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOD_SHIFT       12
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_NPOT_MASK       0x00000800
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_NPOT    (1 << 11)
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_NPOT_TRUE       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_NPOT_FALSE      0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_MASK     0x00000780
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_SHIFT    7
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R5G5B5A1 0x0002
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8_RECT  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R4G4B4A4 0x0004
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R8G8B8A8 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_INDEX8   0x000b
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT1     0x000c
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT3     0x000e
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT5     0x000f
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R5G5B5A1_RECT    0x0010
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R8G8B8A8_RECT    0x0012
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8_RECT  0x0013
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8A8     0x001a
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8_RECT_2        0x001b
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R4G4B4A4_RECT    0x001d
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8A8_RECT        0x0020
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_MASK   0x00000004
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP        (1 << 2)
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_TRUE   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_FALSE  0x0000
+#      define          NV10_TCL_PRIMITIVE_3D_TX_ENABLE(d)                      (0x00000228 + (d) * 0x0004)     /* Parameters: enable anisotropy */
+#               define         NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_MASK     0x40000000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE  (1 << 30)
+#               define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_TRUE     0x0001
+#               define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_FALSE    0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_MASK 0x00000030
+#               define         NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_SHIFT        4
+#               define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_1    0x0000
+#               define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_2    0x0001
+#               define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_4    0x0002
+#               define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_8    0x0003
+#      define          NV10_TCL_PRIMITIVE_3D_TX_NPOT_PITCH(d)                  (0x00000230 + (d) * 0x0004)     /* Parameters: pitch */
+#               define         NV10_TCL_PRIMITIVE_3D_TX_NPOT_PITCH_PITCH_MASK  0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_NPOT_PITCH_PITCH_SHIFT 16
+#      define          NV10_TCL_PRIMITIVE_3D_TX_NPOT_SIZE(d)                   (0x00000240 + (d) * 0x0004)     /* Parameters: width height */
+#               define         NV10_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_WIDTH_MASK   0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_WIDTH_SHIFT  16
+#               define         NV10_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_HEIGHT_MASK  0x0000ffff
+#      define          NV10_TCL_PRIMITIVE_3D_TX_FILTER(d)                      (0x00000248 + (d) * 0x0004)     /* Parameters: mag_filter min_filter */
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_MASK 0xf0000000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_SHIFT        28
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST      0x0001
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR       0x0002
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST_MIPMAP_NEAREST       0x0003
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR_MIPMAP_NEAREST        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST_MIPMAP_LINEAR        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR_MIPMAP_LINEAR 0x0006
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_MASK 0x0f000000
+#               define         NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_SHIFT        24
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST      0x0001
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR       0x0002
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST_MIPMAP_NEAREST       0x0003
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR_MIPMAP_NEAREST        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST_MIPMAP_LINEAR        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR_MIPMAP_LINEAR 0x0006
+#      define          NV10_TCL_PRIMITIVE_3D_TX_PALETTE_OFFSET(d)              (0x00000250 + (d) * 0x0004)
+#      define          NV10_TCL_PRIMITIVE_3D_TX_MATRIX_ENABLE(d)               (0x000003e0 + (d) * 0x0004)
+#      define          NV10_TCL_PRIMITIVE_3D_TX_MATRIX(x,y)                    (0x00000540 + (y) * 0x0010 + (x) * 0x0004)
+#      define          NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA(d)                    (0x00000260 + (d) * 0x0004)     /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_MASK     0xe0000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SHIFT    29
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_MASK     0x10000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE  (1 << 28)
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_BLUE     0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_MASK       0x0f000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SHIFT      24
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_ZERO       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_FOG        0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE1_ARB       0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE0_ARB       0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_NV  0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE1_NV  0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_E_TIMES_F_NV       0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_MASK     0x00e00000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SHIFT    21
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_MASK     0x00100000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE  (1 << 20)
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_BLUE     0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_MASK       0x000f0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SHIFT      16
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_ZERO       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_FOG        0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE1_ARB       0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE0_ARB       0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_NV  0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE1_NV  0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_E_TIMES_F_NV       0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_MASK     0x0000e000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SHIFT    13
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_MASK     0x00001000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE  (1 << 12)
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_BLUE     0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_MASK       0x00000f00
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SHIFT      8
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_ZERO       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_FOG        0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE1_ARB       0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE0_ARB       0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_NV  0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE1_NV  0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_E_TIMES_F_NV       0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_MASK     0x000000e0
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SHIFT    5
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_MASK     0x00000010
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE  (1 << 4)
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_BLUE     0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_INPUT_MASK       0x0000000f
+#      define          NV10_TCL_PRIMITIVE_3D_RC_IN_RGB(d)                      (0x00000268 + (d) * 0x0004)     /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_MASK       0xe0000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SHIFT      29
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_MASK       0x10000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE    (1 << 28)
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_MASK 0x0f000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SHIFT        24
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_ZERO 0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_FOG  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE1_ARB 0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE0_ARB 0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_NV    0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE1_NV    0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_MASK       0x00e00000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SHIFT      21
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_MASK       0x00100000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE    (1 << 20)
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_MASK 0x000f0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SHIFT        16
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_ZERO 0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_FOG  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE1_ARB 0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE0_ARB 0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_NV    0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE1_NV    0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_MASK       0x0000e000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SHIFT      13
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_MASK       0x00001000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE    (1 << 12)
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_MASK 0x00000f00
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SHIFT        8
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_ZERO 0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_FOG  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE1_ARB 0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE0_ARB 0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_NV    0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE1_NV    0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_MASK       0x000000e0
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SHIFT      5
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_MASK       0x00000010
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE    (1 << 4)
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_INPUT_MASK 0x0000000f
+#      define          NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA(d)                   (0x00000278 + (d) * 0x0004)     /* Parameters: scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_MASK   0x00030000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SHIFT  16
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_NONE   0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO_NV        0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR_NV       0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF_NV   0x0003
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_MASK    0x00008000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS (1 << 15)
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_NONE    0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV    0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_MASK 0x00004000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM      (1 << 14)
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_TRUE 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_FALSE        0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_MASK  0x00002000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT       (1 << 13)
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_TRUE  0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_FALSE 0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_MASK  0x00001000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT       (1 << 12)
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_TRUE  0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_FALSE 0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_MASK      0x00000f00
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT     8
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_ZERO      0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0_NV        0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1_NV        0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_FOG       0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR_NV  0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1_ARB      0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0_ARB      0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_NV 0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV 0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV    0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV      0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_MASK       0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SHIFT      4
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_ZERO       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_FOG        0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1_ARB       0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0_ARB       0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_NV  0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV  0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV       0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_OUTPUT_MASK       0x0000000f
+#      define          NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB(d)                     (0x00000280 + (d) * 0x0004)     /* Parameters: rc1_tx_units_enabled rc1_rc_enabled scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_TX_UNITS_ENABLED_MASK      0x30000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_TX_UNITS_ENABLED_SHIFT     28
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_RC_ENABLED_MASK    0x08000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_RC_ENABLED (1 << 27)
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_RC_ENABLED_TRUE    0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_RC_ENABLED_FALSE   0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_MASK     0x00030000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SHIFT    16
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_NONE     0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_TWO_NV  0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_FOUR_NV 0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF_NV     0x0003
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_MASK      0x00008000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS   (1 << 15)
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_NONE      0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_MASK   0x00004000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM        (1 << 14)
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_TRUE   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_FALSE  0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_MASK    0x00002000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13)
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_TRUE    0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_FALSE   0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_MASK    0x00001000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12)
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_TRUE    0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_FALSE   0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_MASK        0x00000f00
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SHIFT       8
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_ZERO        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0_NV  0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1_NV  0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_FOG 0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR_NV    0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR_NV  0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1_ARB        0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0_ARB        0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_NV   0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV   0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV      0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV        0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SHIFT        4
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_ZERO 0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_FOG  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE1_ARB 0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE0_ARB 0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_NV    0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV    0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV 0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_OUTPUT_MASK 0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_RC_COLOR0                         0x00000270      /* Parameters: a r g b */
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_A_MASK  0xff000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_A_SHIFT 24
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_R_MASK  0x00ff0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_R_SHIFT 16
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_G_MASK  0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_G_SHIFT 8
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_B_MASK  0x000000ff
 #      define          NV10_TCL_PRIMITIVE_3D_RC_COLOR1                         0x00000274      /* Parameters: a r g b */
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_A_MASK  0xff000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_A_SHIFT 24
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_R_MASK  0x00ff0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_R_SHIFT 16
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_G_MASK  0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_G_SHIFT 8
+#               define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_B_MASK  0x000000ff
 #      define          NV10_TCL_PRIMITIVE_3D_RC_FINAL0                         0x00000288      /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_MASK       0xe0000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SHIFT      29
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_MASK       0x10000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE    (1 << 28)
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_MASK 0x0f000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SHIFT        24
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_ZERO 0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_FOG  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE1_ARB 0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE0_ARB 0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_NV    0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE1_NV    0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_MASK       0x00e00000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SHIFT      21
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_MASK       0x00100000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE    (1 << 20)
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_MASK 0x000f0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SHIFT        16
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_ZERO 0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_FOG  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE1_ARB 0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE0_ARB 0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_NV    0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE1_NV    0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_MASK       0x0000e000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SHIFT      13
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_MASK       0x00001000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE    (1 << 12)
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_MASK 0x00000f00
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SHIFT        8
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_ZERO 0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_FOG  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE1_ARB 0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE0_ARB 0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_NV    0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE1_NV    0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_MASK       0x000000e0
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SHIFT      5
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_MASK       0x00000010
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE    (1 << 4)
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_INPUT_MASK 0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_RC_FINAL1                         0x0000028c      /* Parameters: vare_mapping vare_component_usage vare_input varf_mapping varf_component_usage varf_input varg_mapping varg_component_usage varg_input color_sum_clamp */
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_MASK       0xe0000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SHIFT      29
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_MASK       0x10000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE    (1 << 28)
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_MASK 0x0f000000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SHIFT        24
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_ZERO 0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_FOG  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE1_ARB 0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE0_ARB 0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_NV    0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE1_NV    0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_MASK       0x00e00000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SHIFT      21
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_MASK       0x00100000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE    (1 << 20)
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_MASK 0x000f0000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SHIFT        16
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_ZERO 0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_FOG  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE1_ARB 0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE0_ARB 0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_NV    0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE1_NV    0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_MASK       0x0000e000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SHIFT      13
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_MASK       0x00001000
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE    (1 << 12)
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_RGB        0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_MASK 0x00000f00
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SHIFT        8
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_ZERO 0x0000
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_FOG  0x0003
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE1_ARB 0x0008
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE0_ARB 0x0009
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_NV    0x000c
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE1_NV    0x000d
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_MASK    0x00000080
+#               define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP (1 << 7)
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_TRUE    0x0001
+#               define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_FALSE   0x0000
 #      define          NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL                       0x00000294      /* Parameters: local_viewer color_control */
+#               define         NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_LOCAL_VIEWER_MASK     0x00010000
+#               define         NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_LOCAL_VIEWER  (1 << 16)
+#               define NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_LOCAL_VIEWER_TRUE     0x0001
+#               define NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_LOCAL_VIEWER_FALSE    0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_COLOR_CONTROL_MASK    0x00000002
+#               define         NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_COLOR_CONTROL 1 // Nothing to shift
+#               define NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_COLOR_CONTROL_SINGLE_COLOR    0x0000
+#               define NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_COLOR_CONTROL_SEPARATE_SPECULAR_COLOR 0x0001
 #      define          NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE             0x00000298      /* Parameters: specular diffuse ambient emission */
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_SPECULAR_MASK       0x00000008
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_SPECULAR    (1 << 3)
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_SPECULAR_TRUE       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_SPECULAR_FALSE      0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_DIFFUSE_MASK        0x00000004
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_DIFFUSE     (1 << 2)
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_DIFFUSE_TRUE        0x0001
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_DIFFUSE_FALSE       0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_AMBIENT_MASK        0x00000002
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_AMBIENT     1 // Nothing to shift
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_AMBIENT_TRUE        0x0001
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_AMBIENT_FALSE       0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_EMISSION_MASK       0x00000001
 #      define          NV10_TCL_PRIMITIVE_3D_FOG_MODE                          0x0000029c
 #      define          NV10_TCL_PRIMITIVE_3D_FOG_COORD_DIST                    0x000002a0
 #      define          NV10_TCL_PRIMITIVE_3D_FOG_ENABLE                        0x000002a4
 #      define          NV10_TCL_PRIMITIVE_3D_FOG_COLOR                         0x000002a8      /* Parameters: a b g r */
-#      define          NV17_TCL_PRIMITIVE_3D_COLOR_MASK_ENABLE                 0x000002bc
-#      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(d)            (0x000002c0 + d * 0x0004)       /* Parameters: x2 x1 */
-#      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT(d)             (0x000002e0 + d * 0x0004)       /* Parameters: y2 y1 */
+#               define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_A_MASK  0xff000000
+#               define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_A_SHIFT 24
+#               define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_B_MASK  0x00ff0000
+#               define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_B_SHIFT 16
+#               define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_G_MASK  0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_G_SHIFT 8
+#               define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_R_MASK  0x000000ff
+#      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_MODE                0x000002b4
+#      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(d)            (0x000002c0 + (d) * 0x0004)     /* Parameters: enable clip at x2 x2 enable clip at x1 x1 */
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X2_MASK        0x08000000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X2     (1 << 27)
+#               define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X2_TRUE        0x0001
+#               define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X2_FALSE       0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_MASK       0x07ff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_SHIFT      16
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X1_MASK        0x00000800
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X1     (1 << 11)
+#               define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X1_TRUE        0x0001
+#               define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X1_FALSE       0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X1_MASK       0x000007ff
+#      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT(d)             (0x000002e0 + (d) * 0x0004)     /* Parameters: enable clip at y2 y2 enable clip at y1 y1 */
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y2_MASK 0x08000000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y2      (1 << 27)
+#               define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y2_TRUE 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y2_FALSE        0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_MASK        0x07ff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_SHIFT       16
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y1_MASK 0x00000800
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y1      (1 << 11)
+#               define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y1_TRUE 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y1_FALSE        0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y1_MASK        0x000007ff
 #      define          NV10_TCL_PRIMITIVE_3D_ALPHA_FUNC_ENABLE                 0x00000300
 #      define          NV10_TCL_PRIMITIVE_3D_BLEND_FUNC_ENABLE                 0x00000304
 #      define          NV10_TCL_PRIMITIVE_3D_CULL_FACE_ENABLE                  0x00000308
@@ -365,9 +1492,29 @@ Object NV11_TCL_PRIMITIVE_3D used on: NV15
 #      define          NV10_TCL_PRIMITIVE_3D_BLEND_FUNC_SRC                    0x00000344
 #      define          NV10_TCL_PRIMITIVE_3D_BLEND_FUNC_DST                    0x00000348
 #      define          NV10_TCL_PRIMITIVE_3D_BLEND_COLOR                       0x0000034c      /* Parameters: a r g b */
+#               define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_A_MASK        0xff000000
+#               define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_A_SHIFT       24
+#               define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_R_MASK        0x00ff0000
+#               define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_R_SHIFT       16
+#               define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_G_MASK        0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_G_SHIFT       8
+#               define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_B_MASK        0x000000ff
 #      define          NV10_TCL_PRIMITIVE_3D_BLEND_EQUATION                    0x00000350
 #      define          NV10_TCL_PRIMITIVE_3D_DEPTH_FUNC                        0x00000354
 #      define          NV10_TCL_PRIMITIVE_3D_COLOR_MASK                        0x00000358      /* Parameters: a r g b */
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_A_MASK 0xff000000
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_A_SHIFT        24
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_A_TRUE 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_A_FALSE        0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_R_MASK 0x00ff0000
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_R_SHIFT        16
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_R_TRUE 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_R_FALSE        0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_G_MASK 0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_G_SHIFT        8
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_G_TRUE 0x0001
+#               define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_G_FALSE        0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_B_MASK 0x000000ff
 #      define          NV10_TCL_PRIMITIVE_3D_DEPTH_WRITE_ENABLE                0x0000035c
 #      define          NV10_TCL_PRIMITIVE_3D_STENCIL_MASK                      0x00000360
 #      define          NV10_TCL_PRIMITIVE_3D_STENCIL_FUNC_FUNC                 0x00000364
@@ -392,19 +1539,58 @@ Object NV11_TCL_PRIMITIVE_3D used on: NV15
 #      define          NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_B                  0x000003b0
 #      define          NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_A                  0x000003b4
 #      define          NV10_TCL_PRIMITIVE_3D_COLOR_CONTROL                     0x000003b8      /* Parameters: color_control */
+#               define         NV10_TCL_PRIMITIVE_3D_COLOR_CONTROL_COLOR_CONTROL_MASK  0x00000001
 #      define          NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS                    0x000003bc      /* Parameters: light 7 light 6 light 5 light 4 light 3 light 2 light 1 light 0 */
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_MASK       0x00004000
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7    (1 << 14)
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_TRUE       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_FALSE      0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_MASK       0x00001000
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6    (1 << 12)
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_TRUE       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_FALSE      0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_MASK       0x00000400
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5    (1 << 10)
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_TRUE       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_FALSE      0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_MASK       0x00000100
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4    (1 << 8)
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_TRUE       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_FALSE      0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_MASK       0x00000040
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3    (1 << 6)
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_TRUE       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_FALSE      0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_MASK       0x00000010
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2    (1 << 4)
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_TRUE       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_FALSE      0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_MASK       0x00000004
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1    (1 << 2)
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_TRUE       0x0001
+#               define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_FALSE      0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0_MASK       0x00000001
 #      define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE( d)             (0x000003c0 + (d) * 0x0004)
 #      define          NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE                0x000003e8      /* Parameters: projection modelview0 modelview1 */
+#               define         NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_PROJECTION_MASK        0x00000004
+#               define         NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_PROJECTION     (1 << 2)
+#               define NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_PROJECTION_TRUE        0x0001
+#               define NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_PROJECTION_FALSE       0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_MODELVIEW0_MASK        0x00000002
+#               define         NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_MODELVIEW0     1 // Nothing to shift
+#               define NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_MODELVIEW0_TRUE        0x0001
+#               define NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_MODELVIEW0_FALSE       0x0000
+#               define         NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_MODELVIEW1_MASK        0x00000001
 #      define          NV10_TCL_PRIMITIVE_3D_POINT_SIZE                        0x000003ec
-#      define          NV10_TCL_PRIMITIVE_3D_MODELVIEW0_MATRIX( d)             (0x00000400 + d * 0x0004)
-#      define          NV10_TCL_PRIMITIVE_3D_MODELVIEW1_MATRIX( d)             (0x00000440 + d * 0x0004)
-#      define          NV10_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW0_MATRIX( d)     (0x00000480 + d * 0x0004)
-#      define          NV10_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW1_MATRIX( d)     (0x000004c0 + d * 0x0004)
-#      define          NV10_TCL_PRIMITIVE_3D_PROJECTION_MATRIX( d)             (0x00000500 + d * 0x0004)
+#      define          NV10_TCL_PRIMITIVE_3D_MODELVIEW0_MATRIX( d)             (0x00000400 + (d) * 0x0004)
+#      define          NV10_TCL_PRIMITIVE_3D_MODELVIEW1_MATRIX( d)             (0x00000440 + (d) * 0x0004)
+#      define          NV10_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW0_MATRIX( d)     (0x00000480 + (d) * 0x0004)
+#      define          NV10_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW1_MATRIX( d)     (0x000004c0 + (d) * 0x0004)
+#      define          NV10_TCL_PRIMITIVE_3D_PROJECTION_MATRIX( d)             (0x00000500 + (d) * 0x0004)
 #      define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_A(d)                   (0x00000600 + (d) * 0x0010)
-#      define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_B(d)                   (0x00000604 + d * 0x0010)
-#      define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_C(d)                   (0x00000608 + d * 0x0010)
-#      define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_D(d)                   (0x0000060c + d * 0x0010)
+#      define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_B(d)                   (0x00000604 + (d) * 0x0010)
+#      define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_C(d)                   (0x00000608 + (d) * 0x0010)
+#      define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_D(d)                   (0x0000060c + (d) * 0x0010)
 #      define          NV10_TCL_PRIMITIVE_3D_FOG_EQUATION_CONSTANT             0x00000680
 #      define          NV10_TCL_PRIMITIVE_3D_FOG_EQUATION_LINEAR               0x00000684
 #      define          NV10_TCL_PRIMITIVE_3D_FOG_EQUATION_QUADRATIC            0x00000688
@@ -429,34 +1615,34 @@ Object NV11_TCL_PRIMITIVE_3D used on: NV15
 #      define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_F                 0x0000070c
 #      define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_G                 0x00000710
 #      define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_H                 0x00000714
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(d)     (0x00000800 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(d)     (0x00000804 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(d)     (0x00000808 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(d)     (0x0000080c + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(d)     (0x00000810 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(d)     (0x00000814 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(d)    (0x00000818 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(d)    (0x0000081c + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(d)    (0x00000820 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_X(d)            (0x00000828 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Y(d)            (0x0000082c + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Z(d)            (0x00000830 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_X(d)              (0x00000834 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Y(d)              (0x00000838 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Z(d)              (0x0000083c + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_A(d)            (0x00000840 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_EXPONENT(d)            (0x00000844 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_B(d)            (0x00000848 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_X(d)               (0x0000084c + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Y(d)               (0x00000850 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Z(d)               (0x00000854 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_C(d)            (0x00000858 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_POSITION_X(d)               (0x0000085c + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_POSITION_Y(d)               (0x00000860 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_POSITION_Z(d)               (0x00000864 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_CONSTANT_ATTENUATION(d)     (0x00000868 + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_LINEAR_ATTENUATION(d)       (0x0000086c + d * 0x0080)
-#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_QUADRATIC_ATTENUATION(d)    (0x00000870 + d * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(d)     (0x00000800 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(d)     (0x00000804 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(d)     (0x00000808 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(d)     (0x0000080c + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(d)     (0x00000810 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(d)     (0x00000814 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(d)    (0x00000818 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(d)    (0x0000081c + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(d)    (0x00000820 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_X(d)            (0x00000828 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Y(d)            (0x0000082c + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Z(d)            (0x00000830 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_X(d)              (0x00000834 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Y(d)              (0x00000838 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Z(d)              (0x0000083c + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_A(d)            (0x00000840 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_EXPONENT(d)            (0x00000844 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_B(d)            (0x00000848 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_X(d)               (0x0000084c + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Y(d)               (0x00000850 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Z(d)               (0x00000854 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_C(d)            (0x00000858 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_POSITION_X(d)               (0x0000085c + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_POSITION_Y(d)               (0x00000860 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_POSITION_Z(d)               (0x00000864 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_CONSTANT_ATTENUATION(d)     (0x00000868 + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_LINEAR_ATTENUATION(d)       (0x0000086c + (d) * 0x0080)
+#      define          NV10_TCL_PRIMITIVE_3D_LIGHT_QUADRATIC_ATTENUATION(d)    (0x00000870 + (d) * 0x0080)
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_POS_3F_X                   0x00000c00
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_POS_3F_Y                   0x00000c04
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_POS_3F_Z                   0x00000c08
@@ -468,7 +1654,11 @@ Object NV11_TCL_PRIMITIVE_3D used on: NV15
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_Y                   0x00000c34
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_Z                   0x00000c38
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY                  0x00000c40      /* Parameters: y x */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_MASK   0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_SHIFT  16
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_X_MASK   0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z                   0x00000c44      /* Parameters: z */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z_Z_MASK    0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4F_R                   0x00000c50
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4F_G                   0x00000c54
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4F_B                   0x00000c58
@@ -477,66 +1667,163 @@ Object NV11_TCL_PRIMITIVE_3D used on: NV15
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_3F_G                   0x00000c64
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_3F_B                   0x00000c68
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I                     0x00000c6c      /* Parameters: a b g r */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_MASK      0xff000000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_SHIFT     24
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_MASK      0x00ff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_SHIFT     16
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_MASK      0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_SHIFT     8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_R_MASK      0x000000ff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_R                  0x00000c80
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_G                  0x00000c84
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_B                  0x00000c88
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I                    0x00000c8c      /* Parameters: a b g r */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_MASK     0xff000000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_SHIFT    24
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_MASK     0x00ff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_SHIFT    16
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_MASK     0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_SHIFT    8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_R_MASK     0x000000ff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_S                   0x00000c90
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_T                   0x00000c94
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2I                     0x00000c98      /* Parameters: t s */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_MASK      0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_SHIFT     16
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_S_MASK      0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_S                   0x00000ca0
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_T                   0x00000ca4
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_R                   0x00000ca8
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_Q                   0x00000cac
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST                  0x00000cb0      /* Parameters: t s */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_MASK   0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_SHIFT  16
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_S_MASK   0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ                  0x00000cb4      /* Parameters: q r */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_MASK   0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_SHIFT  16
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_R_MASK   0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_S                   0x00000cb8
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_T                   0x00000cbc
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2I                     0x00000cc0      /* Parameters: t s */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_MASK      0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_SHIFT     16
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_S_MASK      0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_S                   0x00000cc8
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_T                   0x00000ccc
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_R                   0x00000cd0
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_Q                   0x00000cd4
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST                  0x00000cd8      /* Parameters: t s */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_MASK   0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_SHIFT  16
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_S_MASK   0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ                  0x00000cdc      /* Parameters: q r */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_MASK   0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_SHIFT  16
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_R_MASK   0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_FOG_1F                     0x00000ce0
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_WGH_1F                     0x00000ce4
 #      define          NV10_TCL_PRIMITIVE_3D_EDGEFLAG_ENABLE                   0x00000cec
-#      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR( d)                   (0x00000d04 + ((d) * 0x0008))   /* Parameters: stride fields type */
+#      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR( d)                   (0x00000d04 + (d) * 0x0008)     /* Parameters: stride fields type */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR_STRIDE_MASK   0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR_STRIDE_SHIFT  8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR_FIELDS_MASK   0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR_FIELDS_SHIFT  4
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR_TYPE_MASK     0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_VALIDATE             0x00000cf0
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_POS           0x00000d00
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS           0x00000d04      /* Parameters: stride fields type */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS_STRIDE_MASK       0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS_STRIDE_SHIFT      8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS_FIELDS_MASK       0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS_FIELDS_SHIFT      4
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS_TYPE_MASK 0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_COL           0x00000d08
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL           0x00000d0c      /* Parameters: stride fields type */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL_STRIDE_MASK       0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL_STRIDE_SHIFT      8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL_FIELDS_MASK       0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL_FIELDS_SHIFT      4
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL_TYPE_MASK 0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_COL2          0x00000d10
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2          0x00000d14      /* Parameters: stride fields type */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2_STRIDE_MASK      0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2_STRIDE_SHIFT     8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2_FIELDS_MASK      0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2_FIELDS_SHIFT     4
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2_TYPE_MASK        0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_TX0           0x00000d18
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0           0x00000d1c      /* Parameters: stride fields type */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0_STRIDE_MASK       0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0_STRIDE_SHIFT      8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0_FIELDS_MASK       0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0_FIELDS_SHIFT      4
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0_TYPE_MASK 0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_TX1           0x00000d20
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1           0x00000d24      /* Parameters: stride fields type */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1_STRIDE_MASK       0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1_STRIDE_SHIFT      8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1_FIELDS_MASK       0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1_FIELDS_SHIFT      4
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1_TYPE_MASK 0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_NOR           0x00000d28
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR           0x00000d2c      /* Parameters: stride fields type */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR_STRIDE_MASK       0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR_STRIDE_SHIFT      8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR_FIELDS_MASK       0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR_FIELDS_SHIFT      4
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR_TYPE_MASK 0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_WGH           0x00000d30
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH           0x00000d34      /* Parameters: stride fields type */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH_STRIDE_MASK       0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH_STRIDE_SHIFT      8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH_FIELDS_MASK       0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH_FIELDS_SHIFT      4
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH_TYPE_MASK 0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_FOG           0x00000d38
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG           0x00000d3c      /* Parameters: stride fields type */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG_STRIDE_MASK       0x0000ff00
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG_STRIDE_SHIFT      8
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG_FIELDS_MASK       0x000000f0
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG_FIELDS_SHIFT      4
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG_TYPE_MASK 0x0000000f
 #      define          NV10_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_ENABLE             0x00000d40
 #      define          NV10_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_OP                 0x00000d44
-#      define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH            0x00000d5c      /* Parameters: pitch */
-#      define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_OFFSET           0x00000d60
-#      define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_FILL_VALUE              0x00000d68
-#      define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_CLEAR_ENABLE            0x00000d6c
 #      define          NV10_TCL_PRIMITIVE_3D_BEGIN_END                         0x00000dfc
 #      define          NV10_TCL_PRIMITIVE_3D_INDEX_DATA                        0x00000e00      /* Parameters: index1 index0 */
+#               define         NV10_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX1_MASK    0xffff0000
+#               define         NV10_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX1_SHIFT   16
+#               define         NV10_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX0_MASK    0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_BEGIN_END           0x000013fc
-#      define          NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_DRAW_ARRAYS         0x00001400      /* Parameters: count-1 first */
+#      define          NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_DRAW_ARRAYS         0x00001400      /* Parameters: count_minus_1 first */
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_DRAW_ARRAYS_COUNT_MINUS_1_MASK      0xff000000
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_DRAW_ARRAYS_COUNT_MINUS_1_SHIFT     24
+#               define         NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_DRAW_ARRAYS_FIRST_MASK      0x0000ffff
 #      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_X                 0x00001638
 #      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_Y                 0x0000163c
 #      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_Z                 0x00001640
 #      define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_W                 0x00001644
-#      define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_ENABLE                  0x00001658
 #      define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_DATA                 0x00001800
 
+/****************************************** 
+Object NV11_TCL_PRIMITIVE_3D used on: NV15 
+*/
+#define                        NV11_TCL_PRIMITIVE_3D                                   0x00000096
+
+/****************************************** 
+Object NV17_TCL_PRIMITIVE_3D used on: NV15 
+*/
+#define                        NV17_TCL_PRIMITIVE_3D                                   0x00000099
+#      define          NV17_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY4                0x000001ac
+#      define          NV17_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY5                0x000001b0
+#      define          NV17_TCL_PRIMITIVE_3D_COLOR_MASK_ENABLE                 0x000002bc
+#      define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH            0x00000d5c      /* Parameters: pitch */
+#               define         NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH_PITCH_MASK 0x0000ffff
+#      define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_OFFSET           0x00000d60
+#      define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_FILL_VALUE              0x00000d68
+#      define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_CLEAR_ENABLE            0x00000d6c
+#      define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_ENABLE                  0x00001658
+
 /****************************************** 
 Object NV10_IMAGE_FROM_CPU used on: NV10 NV15 NV20 NV30 NV40 G70
 */
@@ -549,8 +1836,17 @@ Object NV10_IMAGE_FROM_CPU used on: NV10 NV15 NV20 NV30 NV40 G70
 #      define          NV10_IMAGE_FROM_CPU_OPERATION                           0x000002fc
 #      define          NV10_IMAGE_FROM_CPU_FORMAT                              0x00000300
 #      define          NV10_IMAGE_FROM_CPU_POINT                               0x00000304      /* Parameters: x y */
+#               define         NV10_IMAGE_FROM_CPU_POINT_X_MASK        0x0000ffff
+#               define         NV10_IMAGE_FROM_CPU_POINT_Y_MASK        0xffff0000
+#               define         NV10_IMAGE_FROM_CPU_POINT_Y_SHIFT       16
 #      define          NV10_IMAGE_FROM_CPU_SIZE_OUT                            0x00000308      /* Parameters: width height */
+#               define         NV10_IMAGE_FROM_CPU_SIZE_OUT_WIDTH_MASK 0x0000ffff
+#               define         NV10_IMAGE_FROM_CPU_SIZE_OUT_HEIGHT_MASK        0xffff0000
+#               define         NV10_IMAGE_FROM_CPU_SIZE_OUT_HEIGHT_SHIFT       16
 #      define          NV10_IMAGE_FROM_CPU_SIZE_IN                             0x0000030c      /* Parameters: width height */
+#               define         NV10_IMAGE_FROM_CPU_SIZE_IN_WIDTH_MASK  0x0000ffff
+#               define         NV10_IMAGE_FROM_CPU_SIZE_IN_HEIGHT_MASK 0xffff0000
+#               define         NV10_IMAGE_FROM_CPU_SIZE_IN_HEIGHT_SHIFT        16
 #      define          NV10_IMAGE_FROM_CPU_HLINE                               0x00000400
 
 /****************************************** 
@@ -561,26 +1857,22 @@ Object NV10_PRIMITIVE_2D used on: NV10 NV15 NV20 NV30 NV40 G70
 #      define          NV10_PRIMITIVE_2D_SET_SURFACE                           0x00000184
 #      define          NV10_PRIMITIVE_2D_SET_FORMAT                            0x00000300
 #      define          NV10_PRIMITIVE_2D_SET_POINT                             0x00000304      /* Parameters: x y */
+#               define         NV10_PRIMITIVE_2D_SET_POINT_X_MASK      0x0000ffff
+#               define         NV10_PRIMITIVE_2D_SET_POINT_Y_MASK      0xffff0000
+#               define         NV10_PRIMITIVE_2D_SET_POINT_Y_SHIFT     16
 #      define          NV10_PRIMITIVE_2D_SET_SIZE                              0x00000308      /* Parameters: width height */
+#               define         NV10_PRIMITIVE_2D_SET_SIZE_WIDTH_MASK   0x0000ffff
+#               define         NV10_PRIMITIVE_2D_SET_SIZE_HEIGHT_MASK  0xffff0000
+#               define         NV10_PRIMITIVE_2D_SET_SIZE_HEIGHT_SHIFT 16
 #      define          NV10_PRIMITIVE_2D_SET_CLIP_HORIZ                        0x0000030c      /* Parameters: width x */
+#               define         NV10_PRIMITIVE_2D_SET_CLIP_HORIZ_WIDTH_MASK     0xffff0000
+#               define         NV10_PRIMITIVE_2D_SET_CLIP_HORIZ_WIDTH_SHIFT    16
+#               define         NV10_PRIMITIVE_2D_SET_CLIP_HORIZ_X_MASK 0x0000ffff
 #      define          NV10_PRIMITIVE_2D_SET_CLIP_VERT                         0x00000310      /* Parameters: height y */
-#      define          NV10_PRIMITIVE_2D_SET_DATA( d)                          (0x00000400 + d * 0x0004)
-
-/****************************************** 
-Object NV10_IMAGE_BLIT used on: NV10 NV15 NV20 NV30 NV40 G70
-*/
-#define                        NV10_IMAGE_BLIT                                         0x0000009f
-#      define          NV10_IMAGE_BLIT_NOP                                     0x00000100
-#      define          NV10_IMAGE_BLIT_NOTIFY                                  0x00000104
-#      define          NV10_IMAGE_BLIT_SET_DMA_NOTIFY                          0x00000180
-#      define          NV10_IMAGE_BLIT_SET_CONTEXT_CLIP_RECTANGLE              0x00000188
-#      define          NV10_IMAGE_BLIT_SET_IMAGE_PATTERN                       0x0000018c
-#      define          NV10_IMAGE_BLIT_SET_RASTER_OP                           0x00000190
-#      define          NV10_IMAGE_BLIT_SET_CONTEXT_SURFACES_2D                 0x0000019c
-#      define          NV10_IMAGE_BLIT_SET_OPERATION                           0x000002fc
-#      define          NV10_IMAGE_BLIT_SET_POINT                               0x00000300      /* Parameters: x y */
-#      define          NV10_IMAGE_BLIT_SET_PITCH                               0x00000304      /* Parameters: skip */
-#      define          NV10_IMAGE_BLIT_SET_SIZE                                0x00000308      /* Parameters: width height */
+#               define         NV10_PRIMITIVE_2D_SET_CLIP_VERT_HEIGHT_MASK     0xffff0000
+#               define         NV10_PRIMITIVE_2D_SET_CLIP_VERT_HEIGHT_SHIFT    16
+#               define         NV10_PRIMITIVE_2D_SET_CLIP_VERT_Y_MASK  0x0000ffff
+#      define          NV10_PRIMITIVE_2D_SET_DATA( d)                          (0x00000400 + (d) * 0x0004)
 
 /****************************************** 
 Object NV10_VIDEO_DISPLAY used on: NV10 NV15 NV20 NV30 NV40 G70
@@ -592,6 +1884,9 @@ Object NV10_VIDEO_DISPLAY used on: NV10 NV15 NV20 NV30 NV40 G70
 #      define          NV10_VIDEO_DISPLAY_SET_DMA_IN_MEMORY1                   0x00000188
 #      define          NV10_VIDEO_DISPLAY_SET_OBJECT3                          0x0000019c
 #      define          NV10_VIDEO_DISPLAY_SIZE                                 0x000002f8      /* Parameters: height width */
+#               define         NV10_VIDEO_DISPLAY_SIZE_HEIGHT_MASK     0xffff0000
+#               define         NV10_VIDEO_DISPLAY_SIZE_HEIGHT_SHIFT    16
+#               define         NV10_VIDEO_DISPLAY_SIZE_WIDTH_MASK      0x0000ffff
 #      define          NV10_VIDEO_DISPLAY_OFFSET                               0x00000300
 
 /****************************************** 
@@ -613,13 +1908,36 @@ Object NV10_SCALED_IMAGE_FROM_MEMORY used on: NV10 NV15 NV20 NV30 NV40 G70
 #      define          NV10_SCALED_IMAGE_FROM_MEMORY_SET_SURFACE               0x00000198
 #      define          NV10_SCALED_IMAGE_FROM_MEMORY_OPERATION                 0x00000304
 #      define          NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_POS                  0x00000308      /* Parameters: x y */
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_X_MASK   0x0000ffff
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_Y_MASK   0xffff0000
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_Y_SHIFT  16
 #      define          NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE                 0x0000030c      /* Parameters: width height */
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_WIDTH_MASK      0x0000ffff
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_HEIGHT_MASK     0xffff0000
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_HEIGHT_SHIFT    16
 #      define          NV10_SCALED_IMAGE_FROM_MEMORY_OUT_POS                   0x00000310      /* Parameters: x y */
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_POS_X_MASK    0x0000ffff
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_POS_Y_MASK    0xffff0000
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_POS_Y_SHIFT   16
 #      define          NV10_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE                  0x00000314      /* Parameters: width height */
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_WIDTH_MASK       0x0000ffff
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_HEIGHT_MASK      0xffff0000
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_HEIGHT_SHIFT     16
 #      define          NV10_SCALED_IMAGE_FROM_MEMORY_SIZE                      0x00000400      /* Parameters: width height */
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_SIZE_WIDTH_MASK   0x0000ffff
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_SIZE_HEIGHT_MASK  0xffff0000
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_SIZE_HEIGHT_SHIFT 16
 #      define          NV10_SCALED_IMAGE_FROM_MEMORY_FORMAT                    0x00000404      /* Parameters: pitch */
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_MASK 0x0000ffff
 #      define          NV10_SCALED_IMAGE_FROM_MEMORY_OFFSET                    0x00000408
-#      define          NV10_SCALED_IMAGE_FROM_MEMORY_POINT                     0x0000040c      /* Parameters: u_int u_frac*0x10 v_int v_frac*0x10 */
+#      define          NV10_SCALED_IMAGE_FROM_MEMORY_POINT                     0x0000040c      /* Parameters: u_int u_frac_mul_0x10 v_int v_frac_mul_0x10 */
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_U_INT_MASK  0xfff00000
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_U_INT_SHIFT 20
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_U_FRAC_MUL_0X10_MASK        0x000f0000
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_U_FRAC_MUL_0X10_SHIFT       16
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_V_INT_MASK  0x0000fff0
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_V_INT_SHIFT 4
+#               define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_V_FRAC_MUL_0X10_MASK        0x0000000f
 
 /****************************************** 
 Object NV10_CONTEXT_SURFACES_2D used on: NV10 NV15 NV20 NV30 NV40 G70
@@ -629,7 +1947,19 @@ Object NV10_CONTEXT_SURFACES_2D used on: NV10 NV15 NV20 NV30 NV40 G70
 #      define          NV10_CONTEXT_SURFACES_2D_SET_DMA_IN_MEMORY0             0x00000184
 #      define          NV10_CONTEXT_SURFACES_2D_SET_DMA_IN_MEMORY1             0x00000188
 #      define          NV10_CONTEXT_SURFACES_2D_FORMAT                         0x00000300      /* Parameters: color type width height */
+#               define         NV10_CONTEXT_SURFACES_2D_FORMAT_COLOR_MASK      0x000000ff
+#               define         NV10_CONTEXT_SURFACES_2D_FORMAT_TYPE_MASK       0x0000ff80
+#               define         NV10_CONTEXT_SURFACES_2D_FORMAT_TYPE_SHIFT      7
+#               define NV10_CONTEXT_SURFACES_2D_FORMAT_TYPE_pitch      0x0001
+#               define NV10_CONTEXT_SURFACES_2D_FORMAT_TYPE_swizzle    0x0002
+#               define         NV10_CONTEXT_SURFACES_2D_FORMAT_WIDTH_MASK      0x00ff0000
+#               define         NV10_CONTEXT_SURFACES_2D_FORMAT_WIDTH_SHIFT     16
+#               define         NV10_CONTEXT_SURFACES_2D_FORMAT_HEIGHT_MASK     0xff000000
+#               define         NV10_CONTEXT_SURFACES_2D_FORMAT_HEIGHT_SHIFT    24
 #      define          NV10_CONTEXT_SURFACES_2D_PITCH                          0x00000304      /* Parameters: src dst */
+#               define         NV10_CONTEXT_SURFACES_2D_PITCH_SRC_MASK 0x0000ffff
+#               define         NV10_CONTEXT_SURFACES_2D_PITCH_DST_MASK 0xffff0000
+#               define         NV10_CONTEXT_SURFACES_2D_PITCH_DST_SHIFT        16
 #      define          NV10_CONTEXT_SURFACES_2D_OFFSET_SRC                     0x00000308
 #      define          NV10_CONTEXT_SURFACES_2D_OFFSET_DST                     0x0000030c
 
@@ -643,6 +1973,9 @@ Object NV04_CONTEXT_SURFACES_2D used on: NV04 NV10 NV15
 #      define          NV04_CONTEXT_SURFACES_2D_SET_DMA_IMAGE_DST              0x00000188
 #      define          NV04_CONTEXT_SURFACES_2D_FORMAT                         0x00000300
 #      define          NV04_CONTEXT_SURFACES_2D_PITCH                          0x00000304      /* Parameters: src dst */
+#               define         NV04_CONTEXT_SURFACES_2D_PITCH_SRC_MASK 0x0000ffff
+#               define         NV04_CONTEXT_SURFACES_2D_PITCH_DST_MASK 0xffff0000
+#               define         NV04_CONTEXT_SURFACES_2D_PITCH_DST_SHIFT        16
 #      define          NV04_CONTEXT_SURFACES_2D_OFFSET_SRC                     0x00000308
 #      define          NV04_CONTEXT_SURFACES_2D_OFFSET_DST                     0x0000030c
 
@@ -665,7 +1998,12 @@ Object NV20_SWIZZLED_SURFACE used on: NV20 NV30 NV40 G70
 #define                        NV20_SWIZZLED_SURFACE                                   0x0000009e
 #      define          NV20_SWIZZLED_SURFACE_SET_OBJECT0                       0x00000180
 #      define          NV20_SWIZZLED_SURFACE_SET_OBJECT1                       0x00000184
-#      define          NV20_SWIZZLED_SURFACE_FORMAT                            0x00000300      /* Parameters: log2(height) log2(width) color */
+#      define          NV20_SWIZZLED_SURFACE_FORMAT                            0x00000300      /* Parameters: log2_height log2_width color */
+#               define         NV20_SWIZZLED_SURFACE_FORMAT_LOG2_HEIGHT_MASK   0xff000000
+#               define         NV20_SWIZZLED_SURFACE_FORMAT_LOG2_HEIGHT_SHIFT  24
+#               define         NV20_SWIZZLED_SURFACE_FORMAT_LOG2_WIDTH_MASK    0x00ff0000
+#               define         NV20_SWIZZLED_SURFACE_FORMAT_LOG2_WIDTH_SHIFT   16
+#               define         NV20_SWIZZLED_SURFACE_FORMAT_COLOR_MASK 0x0000ffff
 #      define          NV20_SWIZZLED_SURFACE_OFFSET                            0x00000304
 
 /****************************************** 
@@ -686,20 +2024,79 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV20
 #      define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT9                       0x000001ac
 #      define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT10                      0x000001b0
 #      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ                    0x00000200      /* Parameters: width x */
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_WIDTH_MASK 0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_WIDTH_SHIFT        16
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_X_MASK     0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_VERT                     0x00000204      /* Parameters: height y */
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_VERT_HEIGHT_MASK 0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_VERT_HEIGHT_SHIFT        16
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_VERT_Y_MASK      0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT                     0x00000208      /* Parameters: type color */
-#      define          NV20_TCL_PRIMITIVE_3D_BUFFER_PITCH                      0x0000020c      /* Parameters: depth/stencil buffer pitch color buffer pitch */
+#               define         NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_MASK   0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_SHIFT  8
+#               define NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_pitch  0x0001
+#               define NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_swizzle        0x0002
+#               define         NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT_COLOR_MASK  0x000000ff
+#      define          NV20_TCL_PRIMITIVE_3D_BUFFER_PITCH                      0x0000020c      /* Parameters: zs_pitch color_pitch */
+#               define         NV20_TCL_PRIMITIVE_3D_BUFFER_PITCH_ZS_PITCH_MASK        0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_BUFFER_PITCH_ZS_PITCH_SHIFT       16
+#               define         NV20_TCL_PRIMITIVE_3D_BUFFER_PITCH_COLOR_PITCH_MASK     0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_COLOR_OFFSET                      0x00000210
 #      define          NV20_TCL_PRIMITIVE_3D_DEPTH_OFFSET                      0x00000214
 #      define          NV20_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH            0x0000022c      /* Parameters: pitch */
+#               define         NV20_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH_PITCH_MASK 0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_OFFSET           0x00000230
 #      define          NV20_TCL_PRIMITIVE_3D_LIGHT_CONTROL                     0x00000294
 #      define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL            0x00000298      /* Parameters: back_specular back_ambient back_diffuse back_emission front_specular front_ambient front_diffuse front_emission */
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_SPECULAR_MASK 0x00004000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_SPECULAR      (1 << 14)
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_SPECULAR_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_SPECULAR_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_AMBIENT_MASK  0x00001000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_AMBIENT       (1 << 12)
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_AMBIENT_TRUE  0x0001
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_AMBIENT_FALSE 0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_DIFFUSE_MASK  0x00000400
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_DIFFUSE       (1 << 10)
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_DIFFUSE_TRUE  0x0001
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_DIFFUSE_FALSE 0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_EMISSION_MASK 0x00000100
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_EMISSION      (1 << 8)
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_EMISSION_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_EMISSION_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_SPECULAR_MASK        0x00000040
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_SPECULAR     (1 << 6)
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_SPECULAR_TRUE        0x0001
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_SPECULAR_FALSE       0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_AMBIENT_MASK 0x00000010
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_AMBIENT      (1 << 4)
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_AMBIENT_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_AMBIENT_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_DIFFUSE_MASK 0x00000004
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_DIFFUSE      (1 << 2)
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_DIFFUSE_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_DIFFUSE_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_EMISSION_MASK        0x00000001
 #      define          NV20_TCL_PRIMITIVE_3D_FOG_MODE                          0x0000029c
 #      define          NV20_TCL_PRIMITIVE_3D_FOG_COORD_DIST                    0x000002a0
 #      define          NV20_TCL_PRIMITIVE_3D_FOG_ENABLE                        0x000002a4
-#      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(d)            (0x000002c0 + d * 0x0004)       /* Parameters: x2 x1 */
-#      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT(d)             (0x000002e0 + d * 0x0004)       /* Parameters: y2 y1 */
+#      define          NV20_TCL_PRIMITIVE_3D_FOG_COLOR                         0x000002a8      /* Parameters: a b g r */
+#               define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_A_MASK  0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_A_SHIFT 24
+#               define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_B_MASK  0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_B_SHIFT 16
+#               define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_G_MASK  0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_G_SHIFT 8
+#               define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_R_MASK  0x000000ff
+#      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_MODE                0x000002b4
+#      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(d)            (0x000002c0 + (d) * 0x0004)     /* Parameters: x2 x1 */
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_MASK       0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_SHIFT      16
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X1_MASK       0x0000ffff
+#      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT(d)             (0x000002e0 + (d) * 0x0004)     /* Parameters: y2 y1 */
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_MASK        0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_SHIFT       16
+#               define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y1_MASK        0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_ALPHA_FUNC_ENABLE                 0x00000300
 #      define          NV20_TCL_PRIMITIVE_3D_BLEND_FUNC_ENABLE                 0x00000304
 #      define          NV20_TCL_PRIMITIVE_3D_CULL_FACE_ENABLE                  0x00000308
@@ -719,9 +2116,29 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV20
 #      define          NV20_TCL_PRIMITIVE_3D_BLEND_FUNC_SRC                    0x00000344
 #      define          NV20_TCL_PRIMITIVE_3D_BLEND_FUNC_DST                    0x00000348
 #      define          NV20_TCL_PRIMITIVE_3D_BLEND_COLOR                       0x0000034c      /* Parameters: a r g b */
+#               define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_A_MASK        0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_A_SHIFT       24
+#               define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_R_MASK        0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_R_SHIFT       16
+#               define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_G_MASK        0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_G_SHIFT       8
+#               define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_B_MASK        0x000000ff
 #      define          NV20_TCL_PRIMITIVE_3D_BLEND_EQUATION                    0x00000350
 #      define          NV20_TCL_PRIMITIVE_3D_DEPTH_FUNC                        0x00000354
 #      define          NV20_TCL_PRIMITIVE_3D_COLOR_MASK                        0x00000358      /* Parameters: a r g b */
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_A_MASK 0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_A_SHIFT        24
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_A_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_A_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_R_MASK 0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_R_SHIFT        16
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_R_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_R_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_G_MASK 0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_G_SHIFT        8
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_G_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_G_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_B_MASK 0x000000ff
 #      define          NV20_TCL_PRIMITIVE_3D_DEPTH_WRITE_ENABLE                0x0000035c
 #      define          NV20_TCL_PRIMITIVE_3D_STENCIL_MASK                      0x00000360
 #      define          NV20_TCL_PRIMITIVE_3D_STENCIL_FUNC_FUNC                 0x00000364
@@ -747,17 +2164,49 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV20
 #      define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_A            0x000003b4
 #      define          NV20_TCL_PRIMITIVE_3D_SEPARATE_SPECULAR_ENABLE          0x000003b8
 #      define          NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS                    0x000003bc      /* Parameters: light 7 light 6 light 5 light 4 light 3 light 2 light 1 light 0 */
-#      define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE(d)              (0x000003c0 + d * 0x0004)
-#      define          NV20_TCL_PRIMITIVE_3D_TX_MATRIX_ENABLE(d)               (0x00000420 + d * 0x0004)
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_MASK       0x00002000
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7    (1 << 13)
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_TRUE       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_FALSE      0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_MASK       0x00008000
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6    (1 << 15)
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_TRUE       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_FALSE      0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_MASK       0x00000200
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5    (1 << 9)
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_TRUE       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_FALSE      0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_MASK       0x00000800
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4    (1 << 11)
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_TRUE       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_FALSE      0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_MASK       0x00000020
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3    (1 << 5)
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_TRUE       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_FALSE      0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_MASK       0x00000080
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2    (1 << 7)
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_TRUE       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_FALSE      0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_MASK       0x00000002
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1    1 // Nothing to shift
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_TRUE       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_FALSE      0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0_MASK       0x00000008
+#               define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0    (1 << 3)
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0_TRUE       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0_FALSE      0x0000
+#      define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE(d)              (0x000003c0 + (d) * 0x0004)
+#      define          NV20_TCL_PRIMITIVE_3D_TX_MATRIX_ENABLE(d)               (0x00000420 + (d) * 0x0004)
 #      define          NV20_TCL_PRIMITIVE_3D_POINT_SIZE                        0x0000043c
-#      define          NV20_TCL_PRIMITIVE_3D_MODELVIEW_MATRIX( d)              (0x00000480 + d * 0x0004)
-#      define          NV20_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW_MATRIX( d)      (0x00000580 + d * 0x0004)
-#      define          NV20_TCL_PRIMITIVE_3D_PROJECTION_MATRIX( d)             (0x00000680 + d * 0x0004)
-#      define          NV20_TCL_PRIMITIVE_3D_TX_MATRIX(x,y)                    (0x000006c0 + y * 0x0010 + x * 0x0004)
-#      define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_A(d)                   (0x00000840 + d * 0x0010)
-#      define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_B(d)                   (0x00000844 + d * 0x0010)
-#      define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_C(d)                   (0x00000848 + d * 0x0010)
-#      define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_D(d)                   (0x0000084c + d * 0x0010)
+#      define          NV20_TCL_PRIMITIVE_3D_MODELVIEW_MATRIX( d)              (0x00000480 + (d) * 0x0004)
+#      define          NV20_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW_MATRIX( d)      (0x00000580 + (d) * 0x0004)
+#      define          NV20_TCL_PRIMITIVE_3D_PROJECTION_MATRIX( d)             (0x00000680 + (d) * 0x0004)
+#      define          NV20_TCL_PRIMITIVE_3D_TX_MATRIX(x,y)                    (0x000006c0 + (y) * 0x0010 + (x) * 0x0004)
+#      define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_A(d)                   (0x00000840 + (d) * 0x0010)
+#      define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_B(d)                   (0x00000844 + (d) * 0x0010)
+#      define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_C(d)                   (0x00000848 + (d) * 0x0010)
+#      define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_D(d)                   (0x0000084c + (d) * 0x0010)
 #      define          NV20_TCL_PRIMITIVE_3D_FOG_EQUATION_CONSTANT             0x000009c0
 #      define          NV20_TCL_PRIMITIVE_3D_FOG_EQUATION_LINEAR               0x000009c4
 #      define          NV20_TCL_PRIMITIVE_3D_FOG_EQUATION_QUADRATIC            0x000009c8
@@ -768,6 +2217,16 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV20
 #      define          NV20_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_E        0x000009f0
 #      define          NV20_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_F        0x000009f4
 #      define          NV20_TCL_PRIMITIVE_3D_POINT_SPRITE                      0x00000a1c      /* Parameters: coord_replace r_mode enable */
+#               define         NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_MASK   0x00000800
+#               define         NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE        (1 << 11)
+#               define NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_TRUE   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_FALSE  0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_MASK  0x00000006
+#               define         NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_SHIFT 1
+#               define NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_ZERO       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_R  0x0001
+#               define NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_S  0x0002
+#               define         NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_ENABLE_MASK  0x00000001
 #      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_OX                       0x00000a20
 #      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_OY                       0x00000a24
 #      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_DEPTH_AVG_S              0x00000a28
@@ -796,59 +2255,754 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV20
 #      define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R    0x00000a10
 #      define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G    0x00000a14
 #      define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B    0x00000a18
-#      define          NV20_TCL_PRIMITIVE_3D_TX_OFFSET(d)                      (0x00001b00 + d * 0x0040)
-#      define          NV20_TCL_PRIMITIVE_3D_TX_FORMAT(d)                      (0x00001b04 + d * 0x0040)       /* Parameters: log2(height) log2(width) lod format cube_map */
-#      define          NV20_TCL_PRIMITIVE_3D_TX_WRAP(d)                        (0x00001b08 + d * 0x0040)       /* Parameters: wrap_s wrap_t wrap_r */
-#      define          NV20_TCL_PRIMITIVE_3D_TX_ENABLE(d)                      (0x00001b0c + d * 0x0040)       /* Parameters: enable anisotropy */
-#      define          NV20_TCL_PRIMITIVE_3D_TX_NPOT_PITCH(d)                  (0x00001b10 + d * 0x0040)       /* Parameters: pitch */
-#      define          NV20_TCL_PRIMITIVE_3D_TX_FILTER(d)                      (0x00001b14 + d * 0x0040)       /* Parameters: mag_filter min_filter */
-#      define          NV20_TCL_PRIMITIVE_3D_TX_NPOT_SIZE(d)                   (0x00001b1c + d * 0x0040)       /* Parameters: width height */
-#      define          NV20_TCL_PRIMITIVE_3D_TX_PALETTE_OFFSET(d)              (0x00001b20 + d * 0x0040)
+#      define          NV20_TCL_PRIMITIVE_3D_TX_OFFSET(d)                      (0x00001b00 + (d) * 0x0040)
+#      define          NV20_TCL_PRIMITIVE_3D_TX_FORMAT(d)                      (0x00001b04 + (d) * 0x0040)     /* Parameters: log2_height log2_width lod format cube_map */
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_HEIGHT_MASK        0x0f000000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_HEIGHT_SHIFT       24
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_WIDTH_MASK 0x00f00000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_WIDTH_SHIFT        20
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOD_MASK        0x000f0000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOD_SHIFT       16
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_MASK     0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_SHIFT    8
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R5G5B5A1 0x0002
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8_RECT  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R4G4B4A4 0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R8G8B8A8 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_INDEX8   0x000b
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT1     0x000c
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT3     0x000e
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT5     0x000f
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R5G5B5A1_RECT    0x0010
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R8G8B8A8_RECT    0x0012
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8_RECT  0x0013
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8A8     0x001a
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8_RECT_2        0x001b
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R4G4B4A4_RECT    0x001d
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8A8_RECT        0x0020
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_MASK   0x00000004
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP        (1 << 2)
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_TRUE   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_FALSE  0x0000
+#      define          NV20_TCL_PRIMITIVE_3D_TX_WRAP(d)                        (0x00001b08 + (d) * 0x0040)     /* Parameters: wrap_s wrap_t wrap_r */
+#               define         NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_S_MASK       0x000000ff
+#               define         NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_MASK       0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_SHIFT      8
+#               define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_REPEAT     0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_MIRRORED_REPEAT    0x0002
+#               define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_CLAMP_TO_EDGE      0x0003
+#               define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_CLAMP_TO_BORDER    0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_CLAMP      0x0005
+#               define         NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_MASK       0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_SHIFT      16
+#               define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_REPEAT     0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_MIRRORED_REPEAT    0x0002
+#               define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_CLAMP_TO_EDGE      0x0003
+#               define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_CLAMP_TO_BORDER    0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_CLAMP      0x0005
+#      define          NV20_TCL_PRIMITIVE_3D_TX_ENABLE(d)                      (0x00001b0c + (d) * 0x0040)     /* Parameters: enable anisotropy */
+#               define         NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_MASK     0x40000000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE  (1 << 30)
+#               define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_TRUE     0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_FALSE    0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_MASK 0x00000030
+#               define         NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_SHIFT        4
+#               define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_1    0x0000
+#               define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_2    0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_4    0x0002
+#               define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_8    0x0003
+#      define          NV20_TCL_PRIMITIVE_3D_TX_NPOT_PITCH(d)                  (0x00001b10 + (d) * 0x0040)     /* Parameters: pitch */
+#               define         NV20_TCL_PRIMITIVE_3D_TX_NPOT_PITCH_PITCH_MASK  0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_NPOT_PITCH_PITCH_SHIFT 16
+#      define          NV20_TCL_PRIMITIVE_3D_TX_FILTER(d)                      (0x00001b14 + (d) * 0x0040)     /* Parameters: mag_filter min_filter */
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_MASK 0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_SHIFT        24
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST      0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR       0x0002
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST_MIPMAP_NEAREST       0x0003
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR_MIPMAP_NEAREST        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST_MIPMAP_LINEAR        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR_MIPMAP_LINEAR 0x0006
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_MASK 0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_SHIFT        16
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST      0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR       0x0002
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST_MIPMAP_NEAREST       0x0003
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR_MIPMAP_NEAREST        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST_MIPMAP_LINEAR        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR_MIPMAP_LINEAR 0x0006
+#      define          NV20_TCL_PRIMITIVE_3D_TX_NPOT_SIZE(d)                   (0x00001b1c + (d) * 0x0040)     /* Parameters: width height */
+#               define         NV20_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_WIDTH_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_WIDTH_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_HEIGHT_MASK  0x0000ffff
+#      define          NV20_TCL_PRIMITIVE_3D_TX_PALETTE_OFFSET(d)              (0x00001b20 + (d) * 0x0040)
+#      define          NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR(d)                (0x00001b24 + (d) * 0x0040)     /* Parameters: a r g b */
+#               define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_A_MASK    0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_A_SHIFT   24
+#               define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_A_TRUE    0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_A_FALSE   0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_R_MASK    0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_R_SHIFT   16
+#               define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_R_TRUE    0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_R_FALSE   0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_G_MASK    0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_G_SHIFT   8
+#               define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_G_TRUE    0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_G_FALSE   0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_B_MASK    0x000000ff
 #      define          NV20_TCL_PRIMITIVE_3D_RC_ENABLE                         0x00001e60      /* Parameters: number of rc enabled */
+#               define         NV20_TCL_PRIMITIVE_3D_RC_ENABLE_NUMBER_OF_RC_ENABLED_MASK       0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP                      0x00001e70      /* Parameters: op0 op1 op2 op3 */
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP0_MASK     0x0000001f
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_MASK     0x000003e0
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_SHIFT    5
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_NONE     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_TEXTURE_2D       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_PASS_THROUGH     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_CULL_FRAGMENT    0x0005
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_DOT_PRODUCT_TEXTURE_2D   0x0009
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_DEPENDANT_AR     0x000f
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_DEPENDANT_GB     0x0010
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_DOT_PRODUCT      0x0011
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_MASK     0x00007c00
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_SHIFT    10
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_NONE     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_TEXTURE_2D       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_PASS_THROUGH     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_CULL_FRAGMENT    0x0005
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_DOT_PRODUCT_TEXTURE_2D   0x0009
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_DEPENDANT_AR     0x000f
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_DEPENDANT_GB     0x0010
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_DOT_PRODUCT      0x0011
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_MASK     0x000f8000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_SHIFT    15
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_NONE     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_TEXTURE_2D       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_PASS_THROUGH     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_CULL_FRAGMENT    0x0005
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_DOT_PRODUCT_TEXTURE_2D   0x0009
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_DEPENDANT_AR     0x000f
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_DEPENDANT_GB     0x0010
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_DOT_PRODUCT      0x0011
 #      define          NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE               0x000017f8      /* Parameters: cull0 cull1 cull2 cull3 */
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL0_MASK    0x0000000f
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_MASK    0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_SHIFT   4
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_gggg    0x0000
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_lggg    0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_glgg    0x0002
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_llgg    0x0003
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_gglg    0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_lglg    0x0005
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_gllg    0x0006
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_lllg    0x0007
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_gggl    0x0008
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_lggl    0x0009
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_glgl    0x000a
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_llgl    0x000b
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_ggll    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_lgll    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_glll    0x000e
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_llll    0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_MASK    0x00000f00
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_SHIFT   8
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_gggg    0x0000
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_lggg    0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_glgg    0x0002
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_llgg    0x0003
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_gglg    0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_lglg    0x0005
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_gllg    0x0006
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_lllg    0x0007
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_gggl    0x0008
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_lggl    0x0009
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_glgl    0x000a
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_llgl    0x000b
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_ggll    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_lgll    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_glll    0x000e
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_llll    0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_MASK    0x0000f000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_SHIFT   12
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_gggg    0x0000
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_lggg    0x0001
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_glgg    0x0002
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_llgg    0x0003
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_gglg    0x0004
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_lglg    0x0005
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_gllg    0x0006
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_lllg    0x0007
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_gggl    0x0008
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_lggl    0x0009
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_glgl    0x000a
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_llgl    0x000b
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_ggll    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_lgll    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_glll    0x000e
+#               define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_llll    0x000f
 #      define          NV20_TCL_PRIMITIVE_3D_TX_SHADER_PREVIOUS                0x00001e78      /* Parameters: prev2 prev3 */
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_PREVIOUS_PREV2_MASK     0x00030000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_PREVIOUS_PREV2_SHIFT    16
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_PREVIOUS_PREV3_MASK     0x00300000
+#               define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_PREVIOUS_PREV3_SHIFT    20
 #      define          NV20_TCL_PRIMITIVE_3D_RC_COLOR0                         0x00001e20      /* Parameters: a r g b */
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_A_MASK  0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_A_SHIFT 24
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_R_MASK  0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_R_SHIFT 16
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_G_MASK  0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_G_SHIFT 8
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_B_MASK  0x000000ff
 #      define          NV20_TCL_PRIMITIVE_3D_RC_COLOR1                         0x00001e24      /* Parameters: a r g b */
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_A_MASK  0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_A_SHIFT 24
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_R_MASK  0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_R_SHIFT 16
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_G_MASK  0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_G_SHIFT 8
+#               define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_B_MASK  0x000000ff
 #      define          NV20_TCL_PRIMITIVE_3D_RC_FINAL0                         0x00000288      /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_MASK       0xe0000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SHIFT      29
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_MASK       0x10000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE    (1 << 28)
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_MASK 0x0f000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SHIFT        24
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_ZERO 0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_FOG  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE1_ARB 0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE0_ARB 0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_NV    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE1_NV    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_MASK       0x00e00000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SHIFT      21
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_MASK       0x00100000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE    (1 << 20)
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_MASK 0x000f0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SHIFT        16
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_ZERO 0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_FOG  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE1_ARB 0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE0_ARB 0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_NV    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE1_NV    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_MASK       0x0000e000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SHIFT      13
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_MASK       0x00001000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE    (1 << 12)
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_MASK 0x00000f00
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SHIFT        8
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_ZERO 0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_FOG  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE1_ARB 0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE0_ARB 0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_NV    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE1_NV    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_MASK       0x000000e0
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SHIFT      5
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_MASK       0x00000010
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE    (1 << 4)
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_INPUT_MASK 0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_RC_FINAL1                         0x0000028c      /* Parameters: vare_mapping vare_component_usage vare_input varf_mapping varf_component_usage varf_input varg_mapping varg_component_usage varg_input color_sum_clamp */
-#      define          NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA(d)                    (0x00000260 + d * 0x0004)       /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
-#      define          NV20_TCL_PRIMITIVE_3D_RC_IN_RGB(d)                      (0x00000ac0 + d * 0x0004)       /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
-#      define          NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0(d)             (0x00000a60 + d * 0x0004)       /* Parameters: a r g b */
-#      define          NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1(d)             (0x00000a80 + d * 0x0004)       /* Parameters: a r g b */
-#      define          NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA(d)                   (0x00000aa0 + d * 0x0004)       /* Parameters: scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
-#      define          NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB(d)                     (0x00001e40 + d * 0x0004)       /* Parameters: scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_POSITION_X(d)               (0x0000105c + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_POSITION_Y(d)               (0x00001060 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_POSITION_Z(d)               (0x00001064 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_X(d)            (0x00001028 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Y(d)            (0x0000102c + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Z(d)            (0x00001030 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_X(d)              (0x00001034 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Y(d)              (0x00001038 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Z(d)              (0x0000103c + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(d)     (0x00001000 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(d)     (0x00001004 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(d)     (0x00001008 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(d)     (0x0000100c + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(d)     (0x00001010 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(d)     (0x00001014 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(d)    (0x00001018 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(d)    (0x0000101c + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(d)    (0x00001020 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_BACK_SIDE_PRODUCT_AMBIENT(d)        (0x00000c00 + d * 0x0040)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_BACK_SIDE_PRODUCT_DIFFUSE(d)        (0x00000c0c + d * 0x0040)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_BACK_SIDE_PRODUCT_SPECULAR(d)       (0x00000c18 + d * 0x0040)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_CONSTANT_ATTENUATION(d)     (0x00001068 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_LINEAR_ATTENUATION(d)       (0x0000106c + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_QUADRATIC_ATTENUATION(d)    (0x00001070 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_A(d)            (0x00001040 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_EXPONENT(d)            (0x00001044 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_B(d)            (0x00001048 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_X(d)               (0x0000104c + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Y(d)               (0x00001050 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Z(d)               (0x00001054 + d * 0x0080)
-#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_C(d)            (0x00001058 + d * 0x0080)
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_MASK       0xe0000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SHIFT      29
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_MASK       0x10000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE    (1 << 28)
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_MASK 0x0f000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SHIFT        24
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_ZERO 0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_FOG  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE1_ARB 0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE0_ARB 0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_NV    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE1_NV    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_MASK       0x00e00000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SHIFT      21
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_MASK       0x00100000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE    (1 << 20)
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_MASK 0x000f0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SHIFT        16
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_ZERO 0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_FOG  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE1_ARB 0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE0_ARB 0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_NV    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE1_NV    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_MASK       0x0000e000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SHIFT      13
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_MASK       0x00001000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE    (1 << 12)
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_MASK 0x00000f00
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SHIFT        8
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_ZERO 0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_FOG  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE1_ARB 0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE0_ARB 0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_NV    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE1_NV    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_MASK    0x00000080
+#               define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP (1 << 7)
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_TRUE    0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_FALSE   0x0000
+#      define          NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA(d)                    (0x00000260 + (d) * 0x0004)     /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_MASK     0xe0000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SHIFT    29
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_MASK     0x10000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE  (1 << 28)
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_BLUE     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_MASK       0x0f000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SHIFT      24
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_ZERO       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_FOG        0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE1_ARB       0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE0_ARB       0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_NV  0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE1_NV  0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_E_TIMES_F_NV       0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_MASK     0x00e00000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SHIFT    21
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_MASK     0x00100000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE  (1 << 20)
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_BLUE     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_MASK       0x000f0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SHIFT      16
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_ZERO       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_FOG        0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE1_ARB       0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE0_ARB       0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_NV  0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE1_NV  0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_E_TIMES_F_NV       0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_MASK     0x0000e000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SHIFT    13
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_MASK     0x00001000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE  (1 << 12)
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_BLUE     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_MASK       0x00000f00
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SHIFT      8
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_ZERO       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_FOG        0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE1_ARB       0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE0_ARB       0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_NV  0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE1_NV  0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_E_TIMES_F_NV       0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_MASK     0x000000e0
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SHIFT    5
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_MASK     0x00000010
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE  (1 << 4)
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_BLUE     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_INPUT_MASK       0x0000000f
+#      define          NV20_TCL_PRIMITIVE_3D_RC_IN_RGB(d)                      (0x00000ac0 + (d) * 0x0004)     /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_MASK       0xe0000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SHIFT      29
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_MASK       0x10000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE    (1 << 28)
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_MASK 0x0f000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SHIFT        24
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_ZERO 0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_FOG  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE1_ARB 0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE0_ARB 0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_NV    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE1_NV    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_MASK       0x00e00000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SHIFT      21
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_MASK       0x00100000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE    (1 << 20)
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_MASK 0x000f0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SHIFT        16
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_ZERO 0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_FOG  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE1_ARB 0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE0_ARB 0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_NV    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE1_NV    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_MASK       0x0000e000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SHIFT      13
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_MASK       0x00001000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE    (1 << 12)
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_MASK 0x00000f00
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SHIFT        8
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_ZERO 0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_FOG  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE1_ARB 0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE0_ARB 0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_NV    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE1_NV    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_MASK       0x000000e0
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SHIFT      5
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_MASK       0x00000010
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE    (1 << 4)
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_RGB        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_INPUT_MASK 0x0000000f
+#      define          NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0(d)             (0x00000a60 + (d) * 0x0004)     /* Parameters: a r g b */
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_A_MASK 0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_A_SHIFT        24
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_R_MASK 0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_R_SHIFT        16
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_G_MASK 0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_G_SHIFT        8
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_B_MASK 0x000000ff
+#      define          NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1(d)             (0x00000a80 + (d) * 0x0004)     /* Parameters: a r g b */
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_A_MASK 0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_A_SHIFT        24
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_R_MASK 0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_R_SHIFT        16
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_G_MASK 0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_G_SHIFT        8
+#               define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_B_MASK 0x000000ff
+#      define          NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA(d)                   (0x00000aa0 + (d) * 0x0004)     /* Parameters: scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_MASK   0x00030000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SHIFT  16
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_NONE   0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO_NV        0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR_NV       0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF_NV   0x0003
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_MASK    0x00008000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS (1 << 15)
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_NONE    0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV    0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_MASK 0x00004000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM      (1 << 14)
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_MASK  0x00002000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT       (1 << 13)
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_TRUE  0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_FALSE 0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_MASK  0x00001000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT       (1 << 12)
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_TRUE  0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_FALSE 0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_MASK      0x00000f00
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT     8
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_ZERO      0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0_NV        0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1_NV        0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_FOG       0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR_NV  0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR_NV        0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1_ARB      0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0_ARB      0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_NV 0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV 0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV    0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV      0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_MASK       0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SHIFT      4
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_ZERO       0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_FOG        0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1_ARB       0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0_ARB       0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_NV  0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV  0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV       0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_OUTPUT_MASK       0x0000000f
+#      define          NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB(d)                     (0x00001e40 + (d) * 0x0004)     /* Parameters: scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_MASK     0x00030000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SHIFT    16
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_NONE     0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_TWO_NV  0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_FOUR_NV 0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF_NV     0x0003
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_MASK      0x00008000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS   (1 << 15)
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_NONE      0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV      0x0001
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_MASK   0x00004000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM        (1 << 14)
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_TRUE   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_FALSE  0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_MASK    0x00002000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13)
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_TRUE    0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_FALSE   0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_MASK    0x00001000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12)
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_TRUE    0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_FALSE   0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_MASK        0x00000f00
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SHIFT       8
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_ZERO        0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0_NV  0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1_NV  0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_FOG 0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR_NV    0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR_NV  0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1_ARB        0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0_ARB        0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_NV   0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV   0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV      0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV        0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SHIFT        4
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_ZERO 0x0000
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_FOG  0x0003
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE1_ARB 0x0008
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE0_ARB 0x0009
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_NV    0x000c
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV    0x000d
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV 0x000f
+#               define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_OUTPUT_MASK 0x0000000f
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_POSITION_X(d)               (0x0000105c + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_POSITION_Y(d)               (0x00001060 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_POSITION_Z(d)               (0x00001064 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_X(d)            (0x00001028 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Y(d)            (0x0000102c + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Z(d)            (0x00001030 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_X(d)              (0x00001034 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Y(d)              (0x00001038 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Z(d)              (0x0000103c + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(d)     (0x00001000 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(d)     (0x00001004 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(d)     (0x00001008 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(d)     (0x0000100c + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(d)     (0x00001010 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(d)     (0x00001014 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(d)    (0x00001018 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(d)    (0x0000101c + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(d)    (0x00001020 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_BACK_SIDE_PRODUCT_AMBIENT(d)        (0x00000c00 + (d) * 0x0040)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_BACK_SIDE_PRODUCT_DIFFUSE(d)        (0x00000c0c + (d) * 0x0040)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_BACK_SIDE_PRODUCT_SPECULAR(d)       (0x00000c18 + (d) * 0x0040)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_CONSTANT_ATTENUATION(d)     (0x00001068 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_LINEAR_ATTENUATION(d)       (0x0000106c + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_QUADRATIC_ATTENUATION(d)    (0x00001070 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_A(d)            (0x00001040 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_EXPONENT(d)            (0x00001044 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_B(d)            (0x00001048 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_X(d)               (0x0000104c + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Y(d)               (0x00001050 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Z(d)               (0x00001054 + (d) * 0x0080)
+#      define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_C(d)            (0x00001058 + (d) * 0x0080)
 #      define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_A         0x00001e28
 #      define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_B         0x00001e2c
 #      define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_C         0x00001e30
@@ -856,7 +3010,7 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV20
 #      define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_E         0x00001e38
 #      define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_F         0x00001e3c
 #      define          NV20_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_ENABLE            0x0000147c
-#      define          NV20_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_PATTERN(d)        (0x00001480 + d * 0x0004)
+#      define          NV20_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_PATTERN(d)        (0x00001480 + (d) * 0x0004)
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_3F_X                   0x00001500
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_3F_Y                   0x00001504
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_3F_Z                   0x00001508
@@ -865,12 +3019,22 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV20
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4F_Z                   0x00001520
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4F_W                   0x00001524
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY                  0x00001528      /* Parameters: y x */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_Y_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_Y_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_X_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW                  0x0000152c      /* Parameters: w z */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_W_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_W_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_Z_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_X                   0x00001530
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_Y                   0x00001534
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_Z                   0x00001538
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY                  0x00001540      /* Parameters: y x */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_X_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z                   0x00001544      /* Parameters: z */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z_Z_MASK    0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4F_R                   0x00001550
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4F_G                   0x00001554
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4F_B                   0x00001558
@@ -879,81 +3043,291 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV20
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_3F_G                   0x00001564
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_3F_B                   0x00001568
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I                     0x0000156c      /* Parameters: a b g r */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_MASK      0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_SHIFT     24
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_MASK      0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_SHIFT     16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_MASK      0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_SHIFT     8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_R_MASK      0x000000ff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_R                  0x00001580
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_G                  0x00001584
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_B                  0x00001588
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I                    0x0000158c      /* Parameters: a b g r */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_MASK     0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_SHIFT    24
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_MASK     0x00ff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_SHIFT    16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_MASK     0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_SHIFT    8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_R_MASK     0x000000ff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_S                   0x00001590
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_T                   0x00001594
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2I                     0x00001598      /* Parameters: t s */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_MASK      0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_SHIFT     16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_S_MASK      0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_S                   0x000015a0
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_T                   0x000015a4
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_R                   0x000015a8
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_Q                   0x000015ac
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST                  0x000015b0      /* Parameters: t s */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_S_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ                  0x000015b4      /* Parameters: q r */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_R_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_S                   0x000015b8
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_T                   0x000015bc
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2I                     0x000015c0      /* Parameters: t s */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_MASK      0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_SHIFT     16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_S_MASK      0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_S                   0x000015c8
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_T                   0x000015cc
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_R                   0x000015d0
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_Q                   0x000015d4
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST                  0x000015d8      /* Parameters: t s */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_S_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ                  0x000015dc      /* Parameters: q r */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_R_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2F_S                   0x000015e0
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2F_T                   0x000015e4
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2I                     0x000015e8      /* Parameters: t s */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_T_MASK      0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_T_SHIFT     16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_S_MASK      0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_S                   0x000015f0
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_T                   0x000015f4
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_R                   0x000015f8
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_Q                   0x000015fc
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST                  0x00001600      /* Parameters: t s */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_S_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ                  0x00001604      /* Parameters: q r */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_R_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2F_S                   0x00001608
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2F_T                   0x0000160c
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2I                     0x00001610      /* Parameters: t s */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_T_MASK      0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_T_SHIFT     16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_S_MASK      0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_S                   0x00001620
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_T                   0x00001624
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_R                   0x00001628
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_Q                   0x0000162c
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST                  0x00001630      /* Parameters: t s */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_S_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ                  0x00001634      /* Parameters: q r */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_MASK   0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_SHIFT  16
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_R_MASK   0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_FOG_1F                     0x00001698
 #      define          NV20_TCL_PRIMITIVE_3D_EDGE_FLAG                         0x000016bc
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS              0x00001720      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH              0x00001724      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR              0x00001728      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL              0x0000172c      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2             0x00001730      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG              0x00001734      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6                  0x00001738      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7                  0x0000173c      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0              0x00001740      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1              0x00001744      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2             0x00001748      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3             0x0000174c      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4             0x00001750      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5             0x00001754      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6             0x00001758      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7             0x0000175c      /* Parameters: enabled? offset */
-#      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR( d)                   (0x00001760 + d * 0x0004)
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS              0x00001720      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS_ENABLED_MASK 0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS_ENABLED      (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS_ENABLED_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS_ENABLED_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS_OFFSET_MASK  0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH              0x00001724      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH_ENABLED_MASK 0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH_ENABLED      (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH_ENABLED_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH_ENABLED_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH_OFFSET_MASK  0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR              0x00001728      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR_ENABLED_MASK 0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR_ENABLED      (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR_ENABLED_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR_ENABLED_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR_OFFSET_MASK  0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL              0x0000172c      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL_ENABLED_MASK 0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL_ENABLED      (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL_ENABLED_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL_ENABLED_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL_OFFSET_MASK  0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2             0x00001730      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2_ENABLED_MASK        0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2_ENABLED     (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2_ENABLED_TRUE        0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2_ENABLED_FALSE       0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2_OFFSET_MASK 0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG              0x00001734      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG_ENABLED_MASK 0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG_ENABLED      (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG_ENABLED_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG_ENABLED_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG_OFFSET_MASK  0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6                  0x00001738      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6_ENABLED_MASK     0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6_ENABLED  (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6_ENABLED_TRUE     0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6_ENABLED_FALSE    0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6_OFFSET_MASK      0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7                  0x0000173c      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7_ENABLED_MASK     0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7_ENABLED  (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7_ENABLED_TRUE     0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7_ENABLED_FALSE    0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7_OFFSET_MASK      0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0              0x00001740      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0_ENABLED_MASK 0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0_ENABLED      (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0_ENABLED_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0_ENABLED_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0_OFFSET_MASK  0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1              0x00001744      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1_ENABLED_MASK 0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1_ENABLED      (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1_ENABLED_TRUE 0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1_ENABLED_FALSE        0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1_OFFSET_MASK  0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2             0x00001748      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2_ENABLED_MASK        0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2_ENABLED     (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2_ENABLED_TRUE        0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2_ENABLED_FALSE       0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2_OFFSET_MASK 0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3             0x0000174c      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3_ENABLED_MASK        0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3_ENABLED     (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3_ENABLED_TRUE        0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3_ENABLED_FALSE       0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3_OFFSET_MASK 0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4             0x00001750      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4_ENABLED_MASK        0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4_ENABLED     (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4_ENABLED_TRUE        0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4_ENABLED_FALSE       0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4_OFFSET_MASK 0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5             0x00001754      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5_ENABLED_MASK        0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5_ENABLED     (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5_ENABLED_TRUE        0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5_ENABLED_FALSE       0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5_OFFSET_MASK 0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6             0x00001758      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6_ENABLED_MASK        0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6_ENABLED     (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6_ENABLED_TRUE        0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6_ENABLED_FALSE       0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6_OFFSET_MASK 0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7             0x0000175c      /* Parameters: enabled offset */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7_ENABLED_MASK        0x80000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7_ENABLED     (1 << 31)
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7_ENABLED_TRUE        0x0001
+#               define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7_ENABLED_FALSE       0x0000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7_OFFSET_MASK 0x1fffffff
+#      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR( d)                   (0x00001760 + (d) * 0x0004)
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS                  0x00001760      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS_STRIDE_MASK      0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS_STRIDE_SHIFT     8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS_FIELDS_MASK      0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS_FIELDS_SHIFT     4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS_TYPE_MASK        0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH                  0x00001764      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH_STRIDE_MASK      0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH_STRIDE_SHIFT     8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH_FIELDS_MASK      0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH_FIELDS_SHIFT     4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH_TYPE_MASK        0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR                  0x00001768      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR_STRIDE_MASK      0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR_STRIDE_SHIFT     8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR_FIELDS_MASK      0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR_FIELDS_SHIFT     4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR_TYPE_MASK        0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL                  0x0000176c      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL_STRIDE_MASK      0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL_STRIDE_SHIFT     8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL_FIELDS_MASK      0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL_FIELDS_SHIFT     4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL_TYPE_MASK        0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2                 0x00001770      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2_STRIDE_MASK     0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2_STRIDE_SHIFT    8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2_FIELDS_MASK     0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2_FIELDS_SHIFT    4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2_TYPE_MASK       0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG                  0x00001774      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG_STRIDE_MASK      0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG_STRIDE_SHIFT     8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG_FIELDS_MASK      0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG_FIELDS_SHIFT     4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG_TYPE_MASK        0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6                      0x00001778      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6_STRIDE_MASK  0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6_STRIDE_SHIFT 8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6_FIELDS_MASK  0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6_FIELDS_SHIFT 4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6_TYPE_MASK    0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7                      0x0000177c      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7_STRIDE_MASK  0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7_STRIDE_SHIFT 8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7_FIELDS_MASK  0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7_FIELDS_SHIFT 4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7_TYPE_MASK    0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0                  0x00001780      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0_STRIDE_MASK      0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0_STRIDE_SHIFT     8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0_FIELDS_MASK      0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0_FIELDS_SHIFT     4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0_TYPE_MASK        0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1                  0x00001784      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1_STRIDE_MASK      0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1_STRIDE_SHIFT     8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1_FIELDS_MASK      0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1_FIELDS_SHIFT     4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1_TYPE_MASK        0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2                 0x00001788      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2_STRIDE_MASK     0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2_STRIDE_SHIFT    8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2_FIELDS_MASK     0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2_FIELDS_SHIFT    4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2_TYPE_MASK       0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3                 0x0000178c      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3_STRIDE_MASK     0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3_STRIDE_SHIFT    8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3_FIELDS_MASK     0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3_FIELDS_SHIFT    4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3_TYPE_MASK       0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4                 0x00001790      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4_STRIDE_MASK     0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4_STRIDE_SHIFT    8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4_FIELDS_MASK     0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4_FIELDS_SHIFT    4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4_TYPE_MASK       0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5                 0x00001794      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5_STRIDE_MASK     0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5_STRIDE_SHIFT    8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5_FIELDS_MASK     0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5_FIELDS_SHIFT    4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5_TYPE_MASK       0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6                 0x00001798      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6_STRIDE_MASK     0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6_STRIDE_SHIFT    8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6_FIELDS_MASK     0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6_FIELDS_SHIFT    4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6_TYPE_MASK       0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7                 0x0000179c      /* Parameters: stride fields type */
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7_STRIDE_MASK     0x0000ff00
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7_STRIDE_SHIFT    8
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7_FIELDS_MASK     0x000000f0
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7_FIELDS_SHIFT    4
+#               define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7_TYPE_MASK       0x0000000f
 #      define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R     0x000017a0
 #      define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G     0x000017a4
 #      define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B     0x000017a8
@@ -966,12 +3340,35 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV20
 #      define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_TWO_SIDE_ENABLE       0x000017c4
 #      define          NV20_TCL_PRIMITIVE_3D_BEGIN_END                         0x000017fc
 #      define          NV20_TCL_PRIMITIVE_3D_SCISSOR_X2_X1                     0x00001c30      /* Parameters: x2 x1 */
+#               define         NV20_TCL_PRIMITIVE_3D_SCISSOR_X2_X1_X2_MASK     0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_SCISSOR_X2_X1_X2_SHIFT    16
+#               define         NV20_TCL_PRIMITIVE_3D_SCISSOR_X2_X1_X1_MASK     0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_SCISSOR_Y2_Y1                     0x00001c50      /* Parameters: y2 y1 */
+#               define         NV20_TCL_PRIMITIVE_3D_SCISSOR_Y2_Y1_Y2_MASK     0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_SCISSOR_Y2_Y1_Y2_SHIFT    16
+#               define         NV20_TCL_PRIMITIVE_3D_SCISSOR_Y2_Y1_Y1_MASK     0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_CLEAR_VALUE_DEPTH                 0x00001d8c
 #      define          NV20_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB                  0x00001d90
 #      define          NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS               0x00001d94      /* Parameters: clear color a clear color b clear color g clear color r clear depth clear stencil */
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_A_MASK    0x00000080
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_A (1 << 7)
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_B_MASK    0x00000040
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_B (1 << 6)
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_G_MASK    0x00000020
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_G (1 << 5)
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_R_MASK    0x00000010
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_R (1 << 4)
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_DEPTH_MASK      0x00000002
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_DEPTH   1 // Nothing to shift
+#               define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_STENCIL_MASK    0x00000001
 #      define          NV20_TCL_PRIMITIVE_3D_INDEX_DATA                        0x00001800      /* Parameters: index1 index0 */
+#               define         NV20_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX1_MASK    0xffff0000
+#               define         NV20_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX1_SHIFT   16
+#               define         NV20_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX0_MASK    0x0000ffff
 #      define          NV20_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH                   0x00001810      /* Parameters: count_vertices offset_vertices */
+#               define         NV20_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_COUNT_VERTICES_MASK       0xff000000
+#               define         NV20_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_COUNT_VERTICES_SHIFT      24
+#               define         NV20_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_OFFSET_VERTICES_MASK      0x00ffffff
 #      define          NV20_TCL_PRIMITIVE_3D_VERTEX_DATA                       0x00001818
 #      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_X                 0x00001f00
 #      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_Y                 0x00001f04
@@ -979,7 +3376,7 @@ Object NV20_TCL_PRIMITIVE_3D used on: NV20
 #      define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_W                 0x00001f0c
 
 /****************************************** 
-Object NV30_TCL_PRIMITIVE_3D used on: NV30 NV40 G70
+Object NV30_TCL_PRIMITIVE_3D used on: NV30 
 */
 #define                        NV30_TCL_PRIMITIVE_3D                                   0x00000097
 #      define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT0                       0x00000180
@@ -988,25 +3385,61 @@ Object NV30_TCL_PRIMITIVE_3D used on: NV30 NV40 G70
 #      define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT3                       0x0000018c
 #      define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT4                       0x00000194
 #      define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT5                       0x00000198
+#      define          NV30_TCL_PRIMITIVE_3D_SET_VB_SRC0_OBJECT                0x0000019c
+#      define          NV30_TCL_PRIMITIVE_3D_SET_VB_SRC1_OBJECT                0x000001a0
 #      define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT6                       0x000001a4
 #      define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT7                       0x000001a8
 #      define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT8                       0x000001ac
+#      define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT8B                      0x000001b0
 #      define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT9                       0x000001b4
 #      define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT10                      0x000001b8
-#      define          NV30_TCL_PRIMITIVE_3D_SET_VB_SRC0_OBJECT                0x0000019c
-#      define          NV30_TCL_PRIMITIVE_3D_SET_VB_SRC1_OBJECT                0x000001a0
-#      define          NV30_TCL_PRIMITIVE_3D_BUFFER0_PITCH                     0x0000020c      /* Parameters: depth/stencil buffer pitch color0 buffer pitch */
+#      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM0        0x00000200      /* Parameters: width x_offset */
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM0_WIDTH_MASK     0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM0_WIDTH_SHIFT    16
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM0_X_OFFSET_MASK  0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM1        0x00000204      /* Parameters: height y_offset */
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM1_HEIGHT_MASK    0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM1_HEIGHT_SHIFT   16
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM1_Y_OFFSET_MASK  0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_BUFFER0_PITCH                     0x0000020c      /* Parameters: zs_pitch color0_pitch */
+#               define         NV30_TCL_PRIMITIVE_3D_BUFFER0_PITCH_ZS_PITCH_MASK       0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_BUFFER0_PITCH_ZS_PITCH_SHIFT      16
+#               define         NV30_TCL_PRIMITIVE_3D_BUFFER0_PITCH_COLOR0_PITCH_MASK   0x0000ffff
 #      define          NV30_TCL_PRIMITIVE_3D_COLOR0_OFFSET                     0x00000210
 #      define          NV30_TCL_PRIMITIVE_3D_DEPTH_OFFSET                      0x00000214
 #      define          NV30_TCL_PRIMITIVE_3D_COLOR1_OFFSET                     0x00000218
 #      define          NV30_TCL_PRIMITIVE_3D_BUFFER1_PITCH                     0x0000021c      /* Parameters: color1 buffer pitch */
+#               define         NV30_TCL_PRIMITIVE_3D_BUFFER1_PITCH_COLOR1_BUFFER_PITCH_MASK    0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS                   0x00000220      /* Parameters: BUF0 BUF1 BUF2 BUF3 */
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF0_MASK 0x00000001
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF1_MASK 0x00000002
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF1      1 // Nothing to shift
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF1_TRUE 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF1_FALSE        0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF2_MASK 0x00000004
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF2      (1 << 2)
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF2_TRUE 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF2_FALSE        0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF3_MASK 0x00000008
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF3      (1 << 3)
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF3_TRUE 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF3_FALSE        0x0000
 #      define          NV30_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH            0x0000022c      /* Parameters: pitch */
+#               define         NV30_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH_PITCH_MASK 0x0000ffff
 #      define          NV30_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_OFFSET           0x00000230
-#      define          NV30_TCL_PRIMITIVE_3D_TX_MATRIX_ENABLE(d)               (0x00000240 + d * 0x0004)
+#      define          NV30_TCL_PRIMITIVE_3D_TX_MATRIX_ENABLE(d)               (0x00000240 + (d) * 0x0004)
 #      define          NV30_TCL_PRIMITIVE_3D_BUFFER2_PITCH                     0x00000280
 #      define          NV30_TCL_PRIMITIVE_3D_BUFFER3_PITCH                     0x00000284
 #      define          NV30_TCL_PRIMITIVE_3D_BUFFER2_OFFSET                    0x00000288
 #      define          NV30_TCL_PRIMITIVE_3D_BUFFER3_OFFSET                    0x0000028c
+#      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS0        0x000002c0      /* Parameters: width x_offset */
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS0_WIDTH_MASK     0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS0_WIDTH_SHIFT    16
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS0_X_OFFSET_MASK  0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS1        0x000002c4      /* Parameters: height y_offset */
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS1_HEIGHT_MASK    0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS1_HEIGHT_SHIFT   16
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS1_Y_OFFSET_MASK  0x0000ffff
 #      define          NV30_TCL_PRIMITIVE_3D_DITHER_ENABLE                     0x00000300
 #      define          NV30_TCL_PRIMITIVE_3D_ALPHA_FUNC_ENABLE                 0x00000304
 #      define          NV30_TCL_PRIMITIVE_3D_ALPHA_FUNC_FUNC                   0x00000308
@@ -1015,8 +3448,28 @@ Object NV30_TCL_PRIMITIVE_3D used on: NV30 NV40 G70
 #      define          NV30_TCL_PRIMITIVE_3D_BLEND_FUNC_SRC                    0x00000314
 #      define          NV30_TCL_PRIMITIVE_3D_BLEND_FUNC_DST                    0x00000318
 #      define          NV30_TCL_PRIMITIVE_3D_BLEND_COLOR                       0x0000031c      /* Parameters: a r g b */
+#               define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_A_MASK        0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_A_SHIFT       24
+#               define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_R_MASK        0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_R_SHIFT       16
+#               define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_G_MASK        0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_G_SHIFT       8
+#               define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_B_MASK        0x000000ff
 #      define          NV30_TCL_PRIMITIVE_3D_BLEND_EQUATION                    0x00000320
 #      define          NV30_TCL_PRIMITIVE_3D_COLOR_MASK                        0x00000324      /* Parameters: a r g b */
+#               define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_A_MASK 0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_A_SHIFT        24
+#               define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_A_TRUE 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_A_FALSE        0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_R_MASK 0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_R_SHIFT        16
+#               define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_R_TRUE 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_R_FALSE        0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_G_MASK 0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_G_SHIFT        8
+#               define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_G_TRUE 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_G_FALSE        0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_B_MASK 0x000000ff
 #      define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_ENABLE               0x00000328
 #      define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_MASK                 0x0000032c
 #      define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_FUNC_FUNC            0x00000330
@@ -1035,8 +3488,16 @@ Object NV30_TCL_PRIMITIVE_3D used on: NV30 NV40 G70
 #      define          NV30_TCL_PRIMITIVE_3D_STENCIL_FRONT_OP_ZPASS            0x00000364
 #      define          NV30_TCL_PRIMITIVE_3D_SHADE_MODEL                       0x00000368
 #      define          NV30_TCL_PRIMITIVE_3D_FOG_ENABLE                        0x0000036c
-#      define          NV30_TCL_PRIMITIVE_3D_FOG_COLOR                         0x00000370
-#      define          NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123              0x00000370      /* Parameters: buffer3 b buffer3 g buffer3 r buffer3 a buffer2 b buffer2 g buffer2 r buffer2 a buffer1 b buffer1 g buffer1 r buffer1 a */
+#      define          NV30_TCL_PRIMITIVE_3D_FOG_COLOR                         0x00000370      /* Parameters: a b g r */
+#               define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_A_MASK  0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_A_SHIFT 24
+#               define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_B_MASK  0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_B_SHIFT 16
+#               define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_G_MASK  0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_G_SHIFT 8
+#               define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_R_MASK  0x000000ff
+#      define          NV30_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_ENABLE             0x00000374
+#      define          NV30_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_OP                 0x00000378
 #      define          NV30_TCL_PRIMITIVE_3D_NORMALIZE_ENABLE                  0x0000037c
 #      define          NV30_TCL_PRIMITIVE_3D_DEPTH_RANGE_NEAR                  0x00000394
 #      define          NV30_TCL_PRIMITIVE_3D_DEPTH_RANGE_FAR                   0x00000398
@@ -1046,50 +3507,563 @@ Object NV30_TCL_PRIMITIVE_3D used on: NV30 NV40 G70
 #      define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_A            0x000003b4
 #      define          NV30_TCL_PRIMITIVE_3D_LINE_WIDTH_SMOOTH                 0x000003b8
 #      define          NV30_TCL_PRIMITIVE_3D_LINE_SMOOTH_ENABLE                0x000003bc
-#      define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE(d)              (0x00000400 + d * 0x0004)
-#      define          NV30_TCL_PRIMITIVE_3D_MODELVIEW_MATRIX( d)              (0x00000480 + d * 0x0004)
-#      define          NV30_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW_MATRIX( d)      (0x00000580 + d * 0x0004)
-#      define          NV30_TCL_PRIMITIVE_3D_PROJECTION_MATRIX( d)             (0x00000680 + d * 0x0004)
-#      define          NV30_TCL_PRIMITIVE_3D_TX_MATRIX(x,y)                    (0x000006c0 + y * 0x0010 + x * 0x0004)
-#      define          NV30_TCL_PRIMITIVE_3D_FP_ACTIVE_PROGRAM                 0x000008e4
+#      define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE(d)              (0x00000400 + (d) * 0x0004)
+#      define          NV30_TCL_PRIMITIVE_3D_MODELVIEW_MATRIX( d)              (0x00000480 + (d) * 0x0004)
+#      define          NV30_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW_MATRIX( d)      (0x00000580 + (d) * 0x0004)
+#      define          NV30_TCL_PRIMITIVE_3D_PROJECTION_MATRIX( d)             (0x00000680 + (d) * 0x0004)
+#      define          NV30_TCL_PRIMITIVE_3D_TX_MATRIX(x,y)                    (0x000006c0 + (y) * 0x0010 + (x) * 0x0004)
+#      define          NV30_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS                0x000008c0      /* Parameters: width x_offset */
+#               define         NV30_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_WIDTH_MASK     0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_WIDTH_SHIFT    16
+#               define         NV30_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_X_OFFSET_MASK  0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS               0x000008c4      /* Parameters: height y_offset */
+#               define         NV30_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_HEIGHT_MASK   0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_HEIGHT_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_Y_OFFSET_MASK 0x0000ffff
 #      define          NV30_TCL_PRIMITIVE_3D_FOG_COORD_DIST                    0x000008c8
 #      define          NV30_TCL_PRIMITIVE_3D_FOG_MODE                          0x000008cc
 #      define          NV30_TCL_PRIMITIVE_3D_FOG_EQUATION_CONSTANT             0x000008d0
 #      define          NV30_TCL_PRIMITIVE_3D_FOG_EQUATION_LINEAR               0x000008d4
 #      define          NV30_TCL_PRIMITIVE_3D_FOG_EQUATION_QUADRATIC            0x000008d8
+#      define          NV30_TCL_PRIMITIVE_3D_FP_ACTIVE_PROGRAM                 0x000008e4
 #      define          NV30_TCL_PRIMITIVE_3D_RC_COLOR0                         0x000008ec      /* Parameters: a r g b */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_A_MASK  0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_A_SHIFT 24
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_R_MASK  0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_R_SHIFT 16
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_G_MASK  0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_G_SHIFT 8
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_B_MASK  0x000000ff
 #      define          NV30_TCL_PRIMITIVE_3D_RC_COLOR1                         0x000008f0      /* Parameters: a r g b */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_A_MASK  0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_A_SHIFT 24
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_R_MASK  0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_R_SHIFT 16
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_G_MASK  0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_G_SHIFT 8
+#               define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_B_MASK  0x000000ff
 #      define          NV30_TCL_PRIMITIVE_3D_RC_FINAL0                         0x000008f4      /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_MASK       0xe0000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SHIFT      29
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_MASK       0x10000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE    (1 << 28)
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_MASK 0x0f000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SHIFT        24
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_ZERO 0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_FOG  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE1_ARB 0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE0_ARB 0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_NV    0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE1_NV    0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_MASK       0x00e00000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SHIFT      21
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_MASK       0x00100000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE    (1 << 20)
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_MASK 0x000f0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SHIFT        16
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_ZERO 0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_FOG  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE1_ARB 0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE0_ARB 0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_NV    0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE1_NV    0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_MASK       0x0000e000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SHIFT      13
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_MASK       0x00001000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE    (1 << 12)
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_MASK 0x00000f00
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SHIFT        8
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_ZERO 0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_FOG  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE1_ARB 0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE0_ARB 0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_NV    0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE1_NV    0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_MASK       0x000000e0
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SHIFT      5
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_MASK       0x00000010
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE    (1 << 4)
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_INPUT_MASK 0x0000000f
 #      define          NV30_TCL_PRIMITIVE_3D_RC_FINAL1                         0x000008f8      /* Parameters: vare_mapping vare_component_usage vare_input varf_mapping varf_component_usage varf_input varg_mapping varg_component_usage varg_input color_sum_clamp */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_MASK       0xe0000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SHIFT      29
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_MASK       0x10000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE    (1 << 28)
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_MASK 0x0f000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SHIFT        24
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_ZERO 0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_FOG  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE1_ARB 0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE0_ARB 0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_NV    0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE1_NV    0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_MASK       0x00e00000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SHIFT      21
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_MASK       0x00100000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE    (1 << 20)
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_MASK 0x000f0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SHIFT        16
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_ZERO 0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_FOG  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE1_ARB 0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE0_ARB 0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_NV    0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE1_NV    0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_MASK       0x0000e000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SHIFT      13
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_MASK       0x00001000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE    (1 << 12)
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_MASK 0x00000f00
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SHIFT        8
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_ZERO 0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_FOG  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE1_ARB 0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE0_ARB 0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_NV    0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE1_NV    0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_MASK    0x00000080
+#               define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP (1 << 7)
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_TRUE    0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_FALSE   0x0000
 #      define          NV30_TCL_PRIMITIVE_3D_RC_ENABLE                         0x000008fc      /* Parameters: number of rc enabled */
-#      define          NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA(d)                    (0x00000900 + d * 0x0020)       /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
-#      define          NV30_TCL_PRIMITIVE_3D_RC_IN_RGB(d)                      (0x00000904 + d * 0x0020)       /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
-#      define          NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0(d)             (0x00000908 + d * 0x0020)       /* Parameters: a r g b */
-#      define          NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1(d)             (0x0000090c + d * 0x0020)       /* Parameters: a r g b */
-#      define          NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA(d)                   (0x00000910 + d * 0x0020)       /* Parameters: scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
-#      define          NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB(d)                     (0x00000914 + d * 0x0020)       /* Parameters: scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
-#      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM0        0x00000200      /* Parameters: width x_offset */
-#      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM1        0x00000204      /* Parameters: height y_offset */
-#      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS0        0x000002c0      /* Parameters: width x_offset */
-#      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS1        0x000002c4      /* Parameters: height y_offset */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_ENABLE_NUMBER_OF_RC_ENABLED_MASK       0x0000000f
+#      define          NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA(d)                    (0x00000900 + (d) * 0x0020)     /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_MASK     0xe0000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SHIFT    29
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_MASK     0x10000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE  (1 << 28)
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_BLUE     0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_MASK       0x0f000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SHIFT      24
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_ZERO       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_FOG        0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE1_ARB       0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE0_ARB       0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_NV  0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE1_NV  0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_E_TIMES_F_NV       0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_MASK     0x00e00000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SHIFT    21
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_MASK     0x00100000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE  (1 << 20)
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_BLUE     0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_MASK       0x000f0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SHIFT      16
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_ZERO       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_FOG        0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE1_ARB       0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE0_ARB       0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_NV  0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE1_NV  0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_E_TIMES_F_NV       0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_MASK     0x0000e000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SHIFT    13
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_MASK     0x00001000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE  (1 << 12)
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_BLUE     0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_MASK       0x00000f00
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SHIFT      8
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_ZERO       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_FOG        0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE1_ARB       0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE0_ARB       0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_NV  0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE1_NV  0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_E_TIMES_F_NV       0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_MASK     0x000000e0
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SHIFT    5
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_INVERT_NV       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NORMAL_NV 0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NEGATE_NV 0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_IDENTITY_NV       0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_NEGATE_NV 0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_MASK     0x00000010
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE  (1 << 4)
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_BLUE     0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_ALPHA    0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_INPUT_MASK       0x0000000f
+#      define          NV30_TCL_PRIMITIVE_3D_RC_IN_RGB(d)                      (0x00000904 + (d) * 0x0020)     /* Parameters: vara_mapping vara_component_usage vara_input varb_mapping varb_component_usage varb_input varc_mapping varc_component_usage varc_input vard_mapping vard_component_usage vard_input */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_MASK       0xe0000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SHIFT      29
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_MASK       0x10000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE    (1 << 28)
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_MASK 0x0f000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SHIFT        24
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_ZERO 0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_FOG  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE1_ARB 0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE0_ARB 0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_NV    0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE1_NV    0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_MASK       0x00e00000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SHIFT      21
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_MASK       0x00100000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE    (1 << 20)
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_MASK 0x000f0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SHIFT        16
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_ZERO 0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_FOG  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE1_ARB 0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE0_ARB 0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_NV    0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE1_NV    0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_MASK       0x0000e000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SHIFT      13
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_MASK       0x00001000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE    (1 << 12)
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_MASK 0x00000f00
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SHIFT        8
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_ZERO 0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_FOG  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE1_ARB 0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE0_ARB 0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_NV    0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE1_NV    0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_E_TIMES_F_NV 0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_MASK       0x000000e0
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SHIFT      5
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_MASK       0x00000010
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE    (1 << 4)
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_RGB        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_ALPHA      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_INPUT_MASK 0x0000000f
+#      define          NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0(d)             (0x00000908 + (d) * 0x0020)     /* Parameters: a r g b */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_A_MASK 0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_A_SHIFT        24
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_R_MASK 0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_R_SHIFT        16
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_G_MASK 0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_G_SHIFT        8
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_B_MASK 0x000000ff
+#      define          NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1(d)             (0x0000090c + (d) * 0x0020)     /* Parameters: a r g b */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_A_MASK 0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_A_SHIFT        24
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_R_MASK 0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_R_SHIFT        16
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_G_MASK 0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_G_SHIFT        8
+#               define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_B_MASK 0x000000ff
+#      define          NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA(d)                   (0x00000910 + (d) * 0x0020)     /* Parameters: scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_MASK   0x00030000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SHIFT  16
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_NONE   0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO_NV        0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR_NV       0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF_NV   0x0003
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_MASK    0x00008000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS (1 << 15)
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_NONE    0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV    0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_MASK 0x00004000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM      (1 << 14)
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_TRUE 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_FALSE        0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_MASK  0x00002000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT       (1 << 13)
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_TRUE  0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_FALSE 0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_MASK  0x00001000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT       (1 << 12)
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_TRUE  0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_FALSE 0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_MASK      0x00000f00
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT     8
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_ZERO      0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0_NV        0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1_NV        0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_FOG       0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR_NV  0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR_NV        0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1_ARB      0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0_ARB      0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_NV 0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV 0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV    0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV      0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_MASK       0x000000f0
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SHIFT      4
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_ZERO       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0_NV 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1_NV 0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_FOG        0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR_NV   0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR_NV 0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1_ARB       0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0_ARB       0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_NV  0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV  0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV       0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_OUTPUT_MASK       0x0000000f
+#      define          NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB(d)                     (0x00000914 + (d) * 0x0020)     /* Parameters: scale bias mux_sum ab_dot_product cd_dot_product sum_output ab_output cd_output */
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_MASK     0x00030000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SHIFT    16
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_NONE     0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_TWO_NV  0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_FOUR_NV 0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF_NV     0x0003
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_MASK      0x00008000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS   (1 << 15)
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_NONE      0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV      0x0001
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_MASK   0x00004000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM        (1 << 14)
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_TRUE   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_FALSE  0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_MASK    0x00002000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13)
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_TRUE    0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_FALSE   0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_MASK    0x00001000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12)
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_TRUE    0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_FALSE   0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_MASK        0x00000f00
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SHIFT       8
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_ZERO        0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0_NV  0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1_NV  0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_FOG 0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR_NV    0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR_NV  0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1_ARB        0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0_ARB        0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_NV   0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV   0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV      0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV        0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SHIFT        4
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_ZERO 0x0000
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0_NV   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1_NV   0x0002
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_FOG  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR_NV     0x0004
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR_NV   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE1_ARB 0x0008
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE0_ARB 0x0009
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_NV    0x000c
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV    0x000d
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
+#               define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV 0x000f
+#               define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_OUTPUT_MASK 0x0000000f
 #      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0                   0x00000a00      /* Parameters: width x_offset */
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_WIDTH_MASK        0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_WIDTH_SHIFT       16
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_X_OFFSET_MASK     0x0000ffff
 #      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1                   0x00000a04      /* Parameters: height y_offset */
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_HEIGHT_MASK       0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_HEIGHT_SHIFT      16
+#               define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_Y_OFFSET_MASK     0x0000ffff
 #      define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R    0x00000a10
 #      define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G    0x00000a14
 #      define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B    0x00000a18
-#      define          NV30_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS                0x000008c0      /* Parameters: width x_offset */
-#      define          NV30_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS               0x000008c4      /* Parameters: height y_offset */
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_SPRITE                      0x00001ee8      /* Parameters: coord_replace r_mode enable */
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_SIZE                        0x00001ee0
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_A                 0x00001ec0
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_B                 0x00001ec4
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_C                 0x00001ec8
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_D                 0x00001ecc
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_E                 0x00001ed0
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_F                 0x00001ed4
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_G                 0x00001ed8
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_H                 0x00001edc
-#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETERS_ENABLE           0x00001ee4
 #      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_OX                  0x00000a20
 #      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_OY                  0x00000a24
 #      define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_NPF_DIV2            0x00000a28
@@ -1106,48 +4080,48 @@ Object NV30_TCL_PRIMITIVE_3D used on: NV30 NV40 G70
 #      define          NV30_TCL_PRIMITIVE_3D_DEPTH_TEST_ENABLE                 0x00000a74
 #      define          NV30_TCL_PRIMITIVE_3D_POLYGON_OFFSET_FACTOR             0x00000a78
 #      define          NV30_TCL_PRIMITIVE_3D_POLYGON_OFFSET_UNITS              0x00000a7c
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY                  0x00000a90      /* Parameters: y x */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_MASK   0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_X_MASK   0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z                   0x00000a94      /* Parameters: z */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z_Z_MASK    0x0000ffff
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_INST0                   0x00000b80
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_INST1                   0x00000b84
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_INST2                   0x00000b88
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_INST3                   0x00000b8c
-#      define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_R             0x000017b0
-#      define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_G             0x000017b4
-#      define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_B             0x000017b8
-#      define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_A             0x000017c0
-#      define          NV30_TCL_PRIMITIVE_3D_OCC_QUERY_OR_COLOR_BUFF_ENABLE    0x000017c8
-#      define          NV30_TCL_PRIMITIVE_3D_STORE_RESULT                      0x00001800
-#      define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_A(d)                   (0x00000e00 + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_B(d)                   (0x00000e04 + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_C(d)                   (0x00000e08 + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_D(d)                   (0x00000e0c + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(d)     (0x00001000 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(d)     (0x00001004 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(d)     (0x00001008 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(d)     (0x0000100c + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(d)     (0x00001010 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(d)     (0x00001014 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(d)    (0x00001018 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(d)    (0x0000101c + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(d)    (0x00001020 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_X(d)            (0x00001028 + d * 0x0080)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Y(d)            (0x0000102c + d * 0x0080)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Z(d)            (0x00001030 + d * 0x0080)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_X(d)              (0x00001034 + d * 0x0080)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Y(d)              (0x00001038 + d * 0x0080)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Z(d)              (0x0000103c + d * 0x0080)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_CONSTANT_ATTENUATION(d)     (0x00001228 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_LINEAR_ATTENUATION(d)       (0x0000122c + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_QUADRATIC_ATTENUATION(d)    (0x00001230 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_A(d)            (0x00001200 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_EXPONENT(d)            (0x00001204 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_B(d)            (0x00001208 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_X(d)               (0x0000120c + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Y(d)               (0x00001210 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Z(d)               (0x00001214 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_C(d)            (0x00001218 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_POSITION_X(d)               (0x0000121c + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_POSITION_Y(d)               (0x00001220 + d * 0x0040)
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_POSITION_Z(d)               (0x00001224 + d * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_A(d)                   (0x00000e00 + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_B(d)                   (0x00000e04 + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_C(d)                   (0x00000e08 + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_D(d)                   (0x00000e0c + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(d)     (0x00001000 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(d)     (0x00001004 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(d)     (0x00001008 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(d)     (0x0000100c + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(d)     (0x00001010 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(d)     (0x00001014 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(d)    (0x00001018 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(d)    (0x0000101c + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(d)    (0x00001020 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_X(d)            (0x00001028 + (d) * 0x0080)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Y(d)            (0x0000102c + (d) * 0x0080)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Z(d)            (0x00001030 + (d) * 0x0080)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_X(d)              (0x00001034 + (d) * 0x0080)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Y(d)              (0x00001038 + (d) * 0x0080)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Z(d)              (0x0000103c + (d) * 0x0080)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_A(d)            (0x00001200 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_EXPONENT(d)            (0x00001204 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_B(d)            (0x00001208 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_X(d)               (0x0000120c + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Y(d)               (0x00001210 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Z(d)               (0x00001214 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_C(d)            (0x00001218 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_POSITION_X(d)               (0x0000121c + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_POSITION_Y(d)               (0x00001220 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_POSITION_Z(d)               (0x00001224 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_CONSTANT_ATTENUATION(d)     (0x00001228 + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_LINEAR_ATTENUATION(d)       (0x0000122c + (d) * 0x0040)
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_QUADRATIC_ATTENUATION(d)    (0x00001230 + (d) * 0x0040)
 #      define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_A        0x00001400
 #      define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_B        0x00001404
 #      define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_C        0x00001408
@@ -1155,27 +4129,303 @@ Object NV30_TCL_PRIMITIVE_3D used on: NV30 NV40 G70
 #      define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_E        0x00001410
 #      define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_F        0x00001414
 #      define          NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS                    0x00001420      /* Parameters: light 7 light 6 light 5 light 4 light 3 light 2 light 1 light 0 */
-#      define          NV30_TCL_PRIMITIVE_3D_UNK1D6C_OFFSET                    0x00001d6c
-#      define          NV30_TCL_PRIMITIVE_3D_UNK1D70_VALUE                     0x00001d70
-#      define          NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_ENABLE               0x00001db4
-#      define          NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN              0x00001db8      /* Parameters: factor pattern */
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_MASK       0x00008000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7    (1 << 15)
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_MASK       0x00002000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6    (1 << 13)
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_MASK       0x00000800
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5    (1 << 11)
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_MASK       0x00000200
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4    (1 << 9)
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_MASK       0x00000080
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3    (1 << 7)
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_MASK       0x00000020
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2    (1 << 5)
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_MASK       0x00000008
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1    (1 << 3)
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0_MASK       0x00000001
+#      define          NV30_TCL_PRIMITIVE_3D_SET_CLIPPING_PLANES               0x00001478
+#      define          NV30_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_ENABLE            0x0000147c
+#      define          NV30_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_PATTERN( d)       (0x00001480 + (d) * 0x0004)
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3F_X( d)                 (0x00001500 + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3F_Y( d)                 (0x00001504 + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3F_Z( d)                 (0x00001508 + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3F_W( d)                 (0x0000150c + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_VB_POINTER( d)                    (0x00001680 + (d) * 0x0004)     /* Parameters: source offset */
+#               define         NV30_TCL_PRIMITIVE_3D_VB_POINTER_SOURCE_MASK    0x80000000
+#               define         NV30_TCL_PRIMITIVE_3D_VB_POINTER_SOURCE (1 << 31)
+#               define         NV30_TCL_PRIMITIVE_3D_VB_POINTER_OFFSET_MASK    0x1fffffff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_UNK_0                      0x00001718
+#      define          NV30_TCL_PRIMITIVE_3D_VTXFMT( d)                        (0x00001740 + (d) * 0x0004)     /* Parameters: stride ncomp type */
+#               define         NV30_TCL_PRIMITIVE_3D_VTXFMT_STRIDE_MASK        0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_VTXFMT_STRIDE_SHIFT       8
+#               define         NV30_TCL_PRIMITIVE_3D_VTXFMT_NCOMP_MASK 0x000000f0
+#               define         NV30_TCL_PRIMITIVE_3D_VTXFMT_NCOMP_SHIFT        4
+#               define         NV30_TCL_PRIMITIVE_3D_VTXFMT_TYPE_MASK  0x0000000f
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R     0x000017a0
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G     0x000017a4
+#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B     0x000017a8
+#      define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_R             0x000017b0
+#      define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_G             0x000017b4
+#      define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_B             0x000017b8
+#      define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_A             0x000017c0
+#      define          NV30_TCL_PRIMITIVE_3D_OCC_QUERY_OR_COLOR_BUFF_ENABLE    0x000017c8
+#      define          NV30_TCL_PRIMITIVE_3D_STORE_RESULT                      0x00001800
 #      define          NV30_TCL_PRIMITIVE_3D_BEGIN_END                         0x00001808
+#      define          NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U16                    0x0000180c      /* Parameters: 1 0 */
+#               define         NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U16_1_MASK     0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U16_1_SHIFT    24
+#               define         NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U16_0_MASK     0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U32                    0x00001810
+#      define          NV30_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH                   0x00001814      /* Parameters: count_vertices offset_vertices */
+#               define         NV30_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_COUNT_VERTICES_MASK       0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_COUNT_VERTICES_SHIFT      24
+#               define         NV30_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_OFFSET_VERTICES_MASK      0x00ffffff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_DATA                       0x00001818
+#      define          NV30_TCL_PRIMITIVE_3D_SET_DISPLAY_LIST_MEM_OFFSET       0x0000181c
+#      define          NV30_TCL_PRIMITIVE_3D_EXECUTE_DISPLAY_LIST              0x00001824      /* Parameters: length start offset */
+#               define         NV30_TCL_PRIMITIVE_3D_EXECUTE_DISPLAY_LIST_LENGTH_MASK  0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_EXECUTE_DISPLAY_LIST_LENGTH_SHIFT 24
+#               define         NV30_TCL_PRIMITIVE_3D_EXECUTE_DISPLAY_LIST_START_OFFSET_MASK    0x00ffffff
+#      define          NV30_TCL_PRIMITIVE_3D_POLYGON_MODE_FRONT                0x00001828
+#      define          NV30_TCL_PRIMITIVE_3D_POLYGON_MODE_BACK                 0x0000182c
 #      define          NV30_TCL_PRIMITIVE_3D_CULL_FACE                         0x00001830
 #      define          NV30_TCL_PRIMITIVE_3D_FRONT_FACE                        0x00001834
 #      define          NV30_TCL_PRIMITIVE_3D_POLYGON_SMOOTH_ENABLE             0x00001838
 #      define          NV30_TCL_PRIMITIVE_3D_CULL_FACE_ENABLE                  0x0000183c
+#      define          NV30_TCL_PRIMITIVE_3D_TX_DEPTH_UNIT( d)                 (0x00001840 + (d) * 0x0004)     /* Parameters: depth NPOT pitch */
+#               define         NV30_TCL_PRIMITIVE_3D_TX_DEPTH_UNIT_DEPTH_MASK  0xfff00000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_DEPTH_UNIT_DEPTH_SHIFT 20
+#               define         NV30_TCL_PRIMITIVE_3D_TX_DEPTH_UNIT_NPOT_PITCH_MASK     0x000fffff
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2F_X( d)                 (0x00001880 + (d) * 0x0008)
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2F_Y( d)                 (0x00001884 + (d) * 0x0008)
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2I( d)                   (0x00001900 + (d) * 0x0004)     /* Parameters: x y */
+#               define         NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2I_X_MASK        0x0000ffff
+#               define         NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2I_Y_MASK        0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2I_Y_SHIFT       16
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I                     0x0000194c      /* Parameters: a b g r */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_MASK      0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_SHIFT     24
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_MASK      0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_SHIFT     16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_MASK      0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_SHIFT     8
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_R_MASK      0x000000ff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I                    0x00001950      /* Parameters: a b g r */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_MASK     0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_SHIFT    24
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_MASK     0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_SHIFT    16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_MASK     0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_SHIFT    8
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_R_MASK     0x000000ff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST                  0x000019c0      /* Parameters: t s */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_MASK   0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_S_MASK   0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ                  0x000019c4      /* Parameters: q r */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_MASK   0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_R_MASK   0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST                  0x000019c8      /* Parameters: t s */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_MASK   0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_S_MASK   0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ                  0x000019cc      /* Parameters: q r */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_MASK   0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_R_MASK   0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST                  0x000019d0      /* Parameters: t s */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_MASK   0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_S_MASK   0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ                  0x000019d4      /* Parameters: q r */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_MASK   0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_R_MASK   0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST                  0x000019d8      /* Parameters: t s */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_MASK   0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_S_MASK   0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ                  0x000019dc      /* Parameters: q r */
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_MASK   0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_R_MASK   0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_TX_ADDRESS_UNIT( d)               (0x00001a00 + (d) * 0x0020)
+#      define          NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT( d)                (0x00001a04 + (d) * 0x0020)     /* Parameters: mipmap type format ncomp cubic */
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_MIPMAP_MASK        0x000f0000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_MIPMAP_SHIFT       16
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_TYPE_MASK  0x00006000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_TYPE_SHIFT 13
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_TYPE_POT   0x0000
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_TYPE_NPOT  0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_TYPE_RECT  0x0003
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_MASK        0x00001f00
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_SHIFT       8
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_L8  0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_A1R5G5B5    0x0002
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_A4R4G4B4    0x0003
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_R5G6B5      0x0004
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_A8R8G8B8    0x0005
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_DXT1        0x0006
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_DXT3        0x0007
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_DXT5        0x0008
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_L16 0x0014
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_L16A16      0x0015
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_L8A8        0x0018
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_SL8A8       0x0019
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_RGBA_F16    0x001a
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_RGBA_F32    0x001b
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_L_F32       0x001c
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_LA_F16      0x001f
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_NCOMP_MASK 0x000000f0
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_NCOMP_SHIFT        4
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_CUBIC_MASK 0x00000004
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_CUBIC      (1 << 2)
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_CUBIC_TRUE 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_CUBIC_FALSE        0x0000
+#      define          NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT( d)                  (0x00001a08 + (d) * 0x0020)     /* Parameters: wrap_s wrap_t wrap_r */
+#               define         NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_S_MASK  0x000000ff
+#               define         NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_MASK  0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_SHIFT 8
+#               define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_REPEAT        0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_MIRRORED_REPEAT       0x0002
+#               define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_CLAMP_TO_EDGE 0x0003
+#               define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_CLAMP_TO_BORDER       0x0004
+#               define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_CLAMP 0x0005
+#               define         NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_MASK  0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_SHIFT 16
+#               define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_REPEAT        0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_MIRRORED_REPEAT       0x0002
+#               define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_CLAMP_TO_EDGE 0x0003
+#               define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_CLAMP_TO_BORDER       0x0004
+#               define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_CLAMP 0x0005
+#      define          NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT( d)                (0x00001a0c + (d) * 0x0020)     /* Parameters: nv40_enable nv30_enable anisotropy */
+#               define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV40_ENABLE_MASK   0x80000000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV40_ENABLE        (1 << 31)
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV40_ENABLE_TRUE   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV40_ENABLE_FALSE  0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV30_ENABLE_MASK   0x40000000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV30_ENABLE        (1 << 30)
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV30_ENABLE_TRUE   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV30_ENABLE_FALSE  0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_MASK    0x00000070
+#               define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_SHIFT   4
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_1       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_2       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_4       0x0002
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_NV40_6_NV30_8   0x0003
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_8       0x0004
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_10      0x0005
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_12      0x0006
+#               define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_16      0x0007
+#      define          NV30_TCL_PRIMITIVE_3D_TX_SWIZZLE_UNIT( d)               (0x00001a10 + (d) * 0x0020)
+#      define          NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT( d)                (0x00001a14 + (d) * 0x0020)     /* Parameters: filter_min filter_mag */
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_MASK    0x000f0000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_SHIFT   16
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_NEAREST 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_LINEAR  0x0002
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_NEAREST_MIPMAP_NEAREST  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_LINEAR_MIPMAP_NEAREST   0x0004
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_NEAREST_MIPMAP_LINEAR   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_LINEAR_MIPMAP_LINEAR    0x0006
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_MASK    0x0f000000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_SHIFT   24
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_NEAREST 0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_LINEAR  0x0002
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_NEAREST_MIPMAP_NEAREST  0x0003
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_LINEAR_MIPMAP_NEAREST   0x0004
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_NEAREST_MIPMAP_LINEAR   0x0005
+#               define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_LINEAR_MIPMAP_LINEAR    0x0006
+#      define          NV30_TCL_PRIMITIVE_3D_TX_XY_DIM_UNIT( d)                (0x00001a18 + (d) * 0x0020)     /* Parameters: width height */
+#               define         NV30_TCL_PRIMITIVE_3D_TX_XY_DIM_UNIT_WIDTH_MASK 0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_XY_DIM_UNIT_WIDTH_SHIFT        16
+#               define         NV30_TCL_PRIMITIVE_3D_TX_XY_DIM_UNIT_HEIGHT_MASK        0x0000ffff
+#      define          NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT( d)          (0x00001a1c + (d) * 0x0020)     /* Parameters: a r g b */
+#               define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_A_MASK       0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_A_SHIFT      24
+#               define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_A_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_A_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_R_MASK       0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_R_SHIFT      16
+#               define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_R_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_R_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_G_MASK       0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_G_SHIFT      8
+#               define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_G_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_G_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_B_MASK       0x000000ff
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4F_X( d)                 (0x00001c00 + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4F_Y( d)                 (0x00001c04 + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4F_Z( d)                 (0x00001c08 + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4F_W( d)                 (0x00001c0c + (d) * 0x0010)
+#      define          NV30_TCL_PRIMITIVE_3D_FP_CONTROL                        0x00001d60      /* Parameters: uses_kil */
+#               define         NV30_TCL_PRIMITIVE_3D_FP_CONTROL_USES_KIL_MASK  0x00000080
+#               define         NV30_TCL_PRIMITIVE_3D_FP_CONTROL_USES_KIL       (1 << 7)
+#               define NV30_TCL_PRIMITIVE_3D_FP_CONTROL_USES_KIL_TRUE  0x0001
+#               define NV30_TCL_PRIMITIVE_3D_FP_CONTROL_USES_KIL_FALSE 0x0000
+#      define          NV30_TCL_PRIMITIVE_3D_UNK1D6C_OFFSET                    0x00001d6c
+#      define          NV30_TCL_PRIMITIVE_3D_UNK1D70_VALUE                     0x00001d70
 #      define          NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_DEPTH                 0x00001d8c
 #      define          NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB                  0x00001d90      /* Parameters: a r g b */
+#               define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_A_MASK   0xff000000
+#               define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_A_SHIFT  24
+#               define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_R_MASK   0x00ff0000
+#               define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_R_SHIFT  16
+#               define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_G_MASK   0x0000ff00
+#               define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_G_SHIFT  8
+#               define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_B_MASK   0x000000ff
 #      define          NV30_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS               0x00001d94
+#      define          NV30_TCL_PRIMITIVE_3D_DO_VERTICES                       0x00001dac
+#      define          NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_ENABLE               0x00001db4
+#      define          NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN              0x00001db8      /* Parameters: factor pattern */
+#               define         NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_FACTOR_MASK  0x0000ffff
+#               define         NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_PATTERN_MASK 0xffff0000
+#               define         NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_PATTERN_SHIFT        16
 #      define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_A         0x00001e20
 #      define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_B         0x00001e24
 #      define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_C         0x00001e28
 #      define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_D         0x00001e2c
 #      define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_E         0x00001e30
 #      define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_F         0x00001e34
-#      define          NV30_TCL_PRIMITIVE_3D_DO_VERTICES                       0x00001dac
+#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_FOG_1F                     0x00001e54
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_FROM_ID                 0x00001e9c
 #      define          NV30_TCL_PRIMITIVE_3D_VP_PROGRAM_START_ID               0x00001ea0
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_A                 0x00001ec0
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_B                 0x00001ec4
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_C                 0x00001ec8
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_D                 0x00001ecc
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_E                 0x00001ed0
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_F                 0x00001ed4
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_G                 0x00001ed8
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_H                 0x00001edc
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_SIZE                        0x00001ee0
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETERS_ENABLE           0x00001ee4
+#      define          NV30_TCL_PRIMITIVE_3D_POINT_SPRITE                      0x00001ee8      /* Parameters: coord_replace r_mode enable */
+#               define         NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_MASK   0x00000800
+#               define         NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE        (1 << 11)
+#               define NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_TRUE   0x0001
+#               define NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_FALSE  0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_MASK  0x00000006
+#               define         NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_SHIFT 1
+#               define NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_ZERO       0x0000
+#               define NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_R  0x0001
+#               define NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_S  0x0002
+#               define         NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_ENABLE_MASK  0x00000001
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_ID                0x00001efc
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P0_X              0x00001f00
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P0_Y              0x00001f04
@@ -1193,86 +4443,192 @@ Object NV30_TCL_PRIMITIVE_3D used on: NV30 NV40 G70
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P3_Y              0x00001f34
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P3_Z              0x00001f38
 #      define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P3_W              0x00001f3c
-#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3X(d)                    (0x00001500 + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3Y(d)                    (0x00001504 + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3Z(d)                    (0x00001508 + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3W(d)                    (0x0000150c + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4X(d)                    (0x00001c00 + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4Y(d)                    (0x00001c04 + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4Z(d)                    (0x00001c08 + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4W(d)                    (0x00001c0c + d * 0x0010)
-#      define          NV30_TCL_PRIMITIVE_3D_VB_POINTER_ATTR(d)                (0x00001680 + d * 0x0004)       /* Parameters: source: offset */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY                  0x00000a90      /* Parameters: y x */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z                   0x00000a94      /* Parameters: z */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_S                   0x000018c0
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_T                   0x000018c4
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_S                   0x000018c8
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_T                   0x000018cc
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_2F_S                   0x000018d0
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_2F_T                   0x000018d4
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_2F_S                   0x000018d8
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_2F_T                   0x000018dc
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_2I                     0x00001920      /* Parameters: t s */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_2I                     0x00001924      /* Parameters: t s */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_2I                     0x00001928      /* Parameters: t s */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_2I                     0x0000192c      /* Parameters: t s */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I                     0x0000194c      /* Parameters: a b g r */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I                    0x00001950      /* Parameters: a b g r */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST                  0x000019c0      /* Parameters: t s */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ                  0x000019c4      /* Parameters: q r */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST                  0x000019c8      /* Parameters: t s */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ                  0x000019cc      /* Parameters: q r */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST                  0x000019d0      /* Parameters: t s */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ                  0x000019d4      /* Parameters: q r */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST                  0x000019d8      /* Parameters: t s */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ                  0x000019dc      /* Parameters: q r */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_FOG_1F                     0x00001e54
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_UNK_0                      0x00001718
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR( d)                   (0x00001740 + d * 0x0004)
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS                  0x00001740      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH                  0x00001744      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR                  0x00001748      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL                  0x0000174c      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2                 0x00001750      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG                  0x00001754      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR6                      0x00001758      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR7                      0x0000175c      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0                  0x00001760      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1                  0x00001764      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2                 0x00001768      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3                 0x0000176c      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4                 0x00001770      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5                 0x00001774      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6                 0x00001778      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7                 0x0000177c      /* Parameters: stride fields type */
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R     0x000017a0
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G     0x000017a4
-#      define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B     0x000017a8
-#      define          NV30_TCL_PRIMITIVE_3D_FP_ACTIVE_PROGRAM                 0x000008e4
-#      define          NV30_TCL_PRIMITIVE_3D_TX_ADDRESS_UNIT(d)                (0x00001a00 + d * 0x0020)
-#      define          NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT(d)                 (0x00001a04 + d * 0x0020)       /* Parameters: mipmap type format ncomp cubic */
-#      define          NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT(d)                   (0x00001a08 + d * 0x0020)       /* Parameters: wrap_s wrap_t wrap_r */
-#      define          NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT(d)                 (0x00001a0c + d * 0x0020)       /* Parameters: nv40_enable nv30_enable anisotropy */
-#      define          NV30_TCL_PRIMITIVE_3D_TX_SWIZZLE_UNIT(d)                (0x00001a10 + d * 0x0020)
-#      define          NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT(d)                 (0x00001a14 + d * 0x0020)       /* Parameters: filter_min filter_mag */
-#      define          NV30_TCL_PRIMITIVE_3D_TX_XY_DIM_UNIT(d)                 (0x00001a18 + d * 0x0020)       /* Parameters: width height */
-#      define          NV30_TCL_PRIMITIVE_3D_TX_UNK07_UNIT(d)                  (0x00001a1c + d * 0x0020)
-#      define          NV30_TCL_PRIMITIVE_3D_TX_DEPTH_UNIT(d)                  (0x00001840 + d * 0x0004)       /* Parameters: depth NPOT pitch */
-#      define          NV30_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH                   0x00001814      /* Parameters: count_vertices offset_vertices */
-#      define          NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U16                    0x0000180c      /* Parameters: 1: 0: */
-#      define          NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U32                    0x00001810
-#      define          NV30_TCL_PRIMITIVE_3D_VERTEX_DATA                       0x00001818
-#      define          NV30_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_ENABLE             0x00000374
-#      define          NV30_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_OP                 0x00000378
-#      define          NV30_TCL_PRIMITIVE_3D_SET_DISPLAY_LIST_MEM_OFFSET       0x0000181c
-#      define          NV30_TCL_PRIMITIVE_3D_EXECUTE_DISPLAY_LIST              0x00001824      /* Parameters: length start offset */
-#      define          NV30_TCL_PRIMITIVE_3D_POLYGON_MODE_FRONT                0x00001828
-#      define          NV30_TCL_PRIMITIVE_3D_POLYGON_MODE_BACK                 0x0000182c
-#      define          NV30_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_ENABLE            0x0000147c
-#      define          NV30_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_PATTERN( d)       (0x00001480 + d * 0x0004)
-#      define          NV30_TCL_PRIMITIVE_3D_SET_CLIPPING_PLANES               0x00001478
-#      define          NV30_TCL_PRIMITIVE_3D_VP_IN_REG                         0x00001ff0      /* Parameters: vertex pos weight normal primary color secondary color fogcoord texture coords 0 texture ccords 1 texture coords 2 texture coords 3 texture coords 4 texture coords 5 texture coords 6 texture coords 7 */
-#      define          NV30_TCL_PRIMITIVE_3D_VP_OUT_REG                        0x00001ff4      /* Parameters: primary color secondary color backface primary color backface secondary color fogcoord pointsize clip plane 0 clip plane 1 clip plane 2 clip plane 3 clip plane 4 clip plane 5 texture coords 0 texture coords 1 texture coords 2 texture coords 3 texture coords 4 texture coords 5 texture coords 6 texture coords 7 */
+#      define          NV30_TCL_PRIMITIVE_3D_VP_IN_REG                         0x00001ff0      /* Parameters: POS WEIGHT NORMAL COL0 COL1 FOGC TEX0 TEX1 TEX2 TEX3 TEX4 TEX5 TEX6 TEX7 */
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_POS_MASK        0x00000001
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_WEIGHT_MASK     0x00000002
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_WEIGHT  1 // Nothing to shift
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_WEIGHT_TRUE     0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_WEIGHT_FALSE    0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_NORMAL_MASK     0x00000004
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_NORMAL  (1 << 2)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_NORMAL_TRUE     0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_NORMAL_FALSE    0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL0_MASK       0x00000008
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL0    (1 << 3)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL0_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL0_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL1_MASK       0x00000010
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL1    (1 << 4)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL1_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL1_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_FOGC_MASK       0x00000020
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_FOGC    (1 << 5)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_FOGC_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_FOGC_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX0_MASK       0x00000100
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX0    (1 << 8)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX0_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX0_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX1_MASK       0x00000200
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX1    (1 << 9)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX1_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX1_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX2_MASK       0x00000400
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX2    (1 << 10)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX2_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX2_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX3_MASK       0x00000800
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX3    (1 << 11)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX3_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX3_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX4_MASK       0x00001000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX4    (1 << 12)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX4_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX4_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX5_MASK       0x00002000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX5    (1 << 13)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX5_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX5_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX6_MASK       0x00004000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX6    (1 << 14)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX6_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX6_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX7_MASK       0x00008000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX7    (1 << 15)
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX7_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX7_FALSE      0x0000
+#      define          NV30_TCL_PRIMITIVE_3D_VP_OUT_REG                        0x00001ff4      /* Parameters: COL0 COL1 BFC0 BFC1 FOGC PSZ CLP0 CLP1 CLP2 CLP3 CLP4 CLP5 TEX0 TEX1 TEX2 TEX3 TEX4 TEX5 TEX6 TEX7 */
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_COL0_MASK      0x00000001
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_COL1_MASK      0x00000002
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_COL1   1 // Nothing to shift
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_COL1_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_COL1_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC0_MASK      0x00000004
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC0   (1 << 2)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC0_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC0_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC1_MASK      0x00000008
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC1   (1 << 3)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC1_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC1_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_FOGC_MASK      0x00000010
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_FOGC   (1 << 4)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_FOGC_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_FOGC_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_PSZ_MASK       0x00000020
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_PSZ    (1 << 5)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_PSZ_TRUE       0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_PSZ_FALSE      0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP0_MASK      0x00000040
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP0   (1 << 6)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP0_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP0_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP1_MASK      0x00000080
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP1   (1 << 7)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP1_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP1_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP2_MASK      0x00000100
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP2   (1 << 8)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP2_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP2_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP3_MASK      0x00000200
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP3   (1 << 9)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP3_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP3_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP4_MASK      0x00000400
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP4   (1 << 10)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP4_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP4_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP5_MASK      0x00000800
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP5   (1 << 11)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP5_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP5_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX0_MASK      0x00004000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX0   (1 << 14)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX0_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX0_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX1_MASK      0x00008000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX1   (1 << 15)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX1_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX1_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX2_MASK      0x00010000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX2   (1 << 16)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX2_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX2_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX3_MASK      0x00020000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX3   (1 << 17)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX3_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX3_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX4_MASK      0x00040000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX4   (1 << 18)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX4_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX4_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX5_MASK      0x00080000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX5   (1 << 19)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX5_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX5_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX6_MASK      0x00100000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX6   (1 << 20)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX6_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX6_FALSE     0x0000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX7_MASK      0x00200000
+#               define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX7   (1 << 21)
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX7_TRUE      0x0001
+#               define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX7_FALSE     0x0000
+
+/****************************************** 
+Object NV40_TCL_PRIMITIVE_3D used on: NV40 G70
+*/
+#define                        NV40_TCL_PRIMITIVE_3D                                   0x00000097
+#      define          NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123              0x00000370      /* Parameters: buffer3 b buffer3 g buffer3 r buffer3 a buffer2 b buffer2 g buffer2 r buffer2 a buffer1 b buffer1 g buffer1 r buffer1 a */
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_B_MASK       0x00008000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_B    (1 << 15)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_B_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_B_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_G_MASK       0x00004000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_G    (1 << 14)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_G_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_G_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_R_MASK       0x00002000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_R    (1 << 13)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_R_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_R_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_A_MASK       0x00001000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_A    (1 << 12)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_A_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_A_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_B_MASK       0x00000800
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_B    (1 << 11)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_B_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_B_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_G_MASK       0x00000400
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_G    (1 << 10)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_G_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_G_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_R_MASK       0x00000200
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_R    (1 << 9)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_R_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_R_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_A_MASK       0x00000100
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_A    (1 << 8)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_A_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_A_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_B_MASK       0x00000080
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_B    (1 << 7)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_B_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_B_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_G_MASK       0x00000040
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_G    (1 << 6)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_G_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_G_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_R_MASK       0x00000020
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_R    (1 << 5)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_R_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_R_FALSE      0x0000
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_A_MASK       0x00000010
+#               define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_A    (1 << 4)
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_A_TRUE       0x0001
+#               define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_A_FALSE      0x0000
 
 /****************************************** 
 Object NV30_CLEAR_BUFFER used on: NV30 NV40 G70
@@ -1288,8 +4644,8 @@ Object NV30_CLEAR_BUFFER used on: NV30 NV40 G70
 Object NV50_TCL_PRIMITIVE_3D used on: 
 */
 #define                        NV50_TCL_PRIMITIVE_3D                                   0x00000097
-#      define          NV50_TCL_PRIMITIVE_3D_SET_OBJECT_0( d)                  (0x00000180 + d * 0x0004)
-#      define          NV50_TCL_PRIMITIVE_3D_SET_OBJECT_1( d)                  (0x000001c0 + d * 0x0004)
+#      define          NV50_TCL_PRIMITIVE_3D_SET_OBJECT_0( d)                  (0x00000180 + (d) * 0x0004)
+#      define          NV50_TCL_PRIMITIVE_3D_SET_OBJECT_1( d)                  (0x000001c0 + (d) * 0x0004)
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_FOG_1F                     0x00000314
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_2F_X                   0x00000380
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_2F_Y                   0x00000384
@@ -1338,23 +4694,83 @@ Object NV50_TCL_PRIMITIVE_3D used on:
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_R                   0x000005b8
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_Q                   0x000005bc
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_2I                     0x000006a0      /* Parameters: t s */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_MASK      0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_SHIFT     16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_S_MASK      0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_2I                     0x000006a4      /* Parameters: t s */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_MASK      0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_SHIFT     16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_S_MASK      0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_2I                     0x000006a8      /* Parameters: t s */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_T_MASK      0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_T_SHIFT     16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_S_MASK      0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_2I                     0x000006ac      /* Parameters: t s */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_T_MASK      0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_T_SHIFT     16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_S_MASK      0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY                  0x00000700      /* Parameters: y x */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_Y_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_Y_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_X_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW                  0x00000704      /* Parameters: w z */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_W_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_W_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_Z_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST                  0x00000740      /* Parameters: t s */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_S_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ                  0x00000744      /* Parameters: q r */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_R_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST                  0x00000748      /* Parameters: t s */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_S_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ                  0x0000074c      /* Parameters: q r */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_R_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST                  0x00000750      /* Parameters: t s */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_S_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ                  0x00000754      /* Parameters: q r */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_R_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST                  0x00000758      /* Parameters: t s */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_S_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ                  0x0000075c      /* Parameters: q r */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_R_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY                  0x00000790      /* Parameters: y x */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_MASK   0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_SHIFT  16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_X_MASK   0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z                   0x00000794      /* Parameters: z */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z_Z_MASK    0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I                     0x0000088c      /* Parameters: a b g r */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_MASK      0xff000000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_SHIFT     24
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_MASK      0x00ff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_SHIFT     16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_MASK      0x0000ff00
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_SHIFT     8
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_R_MASK      0x000000ff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I                    0x00000890      /* Parameters: a b g r */
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_MASK     0xff000000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_SHIFT    24
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_MASK     0x00ff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_SHIFT    16
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_MASK     0x0000ff00
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_SHIFT    8
+#               define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_R_MASK     0x000000ff
 #      define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_UNK0_X                   0x00000a00
 #      define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_UNK0_Y                   0x00000a04
 #      define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_UNK0_Z                   0x00000a08
@@ -1363,8 +4779,14 @@ Object NV50_TCL_PRIMITIVE_3D used on:
 #      define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_UNK1_Z                   0x00000a14
 #      define          NV50_TCL_PRIMITIVE_3D_DEPTH_RANGE_NEAR                  0x00000c08
 #      define          NV50_TCL_PRIMITIVE_3D_DEPTH_RANGE_FAR                   0x00000c0c
-#      define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(d)            (0x00000d00 + d * 0x0008)       /* Parameters: x2 x1 */
-#      define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT(d)             (0x00000d04 + d * 0x0008)       /* Parameters: y2 y1 */
+#      define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(d)            (0x00000d00 + (d) * 0x0008)     /* Parameters: x2 x1 */
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_MASK       0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_SHIFT      16
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X1_MASK       0x0000ffff
+#      define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT(d)             (0x00000d04 + (d) * 0x0008)     /* Parameters: y2 y1 */
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_MASK        0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_SHIFT       16
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y1_MASK        0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_BUFFER_FIRST               0x00000d74
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_BUFFER_COUNT               0x00000d78
 #      define          NV50_TCL_PRIMITIVE_3D_CLEAR_COLOR_R                     0x00000d80
@@ -1380,7 +4802,13 @@ Object NV50_TCL_PRIMITIVE_3D used on:
 #      define          NV50_TCL_PRIMITIVE_3D_POLYGON_OFFSET_LINE_ENABLE        0x00000dc4
 #      define          NV50_TCL_PRIMITIVE_3D_POLYGON_OFFSET_FILL_ENABLE        0x00000dc8
 #      define          NV50_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS                0x00000e04      /* Parameters: w x */
+#               define         NV50_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_W_MASK 0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_W_SHIFT        16
+#               define         NV50_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_X_MASK 0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS               0x00000e08      /* Parameters: h y */
+#               define         NV50_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_H_MASK        0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_H_SHIFT       16
+#               define         NV50_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_Y_MASK        0x0000ffff
 #      define          NV50_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_ID                0x00000f00
 #      define          NV50_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_X                 0x00000f04
 #      define          NV50_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_Y                 0x00000f08
@@ -1429,15 +4857,44 @@ Object NV50_TCL_PRIMITIVE_3D used on:
 #      define          NV50_TCL_PRIMITIVE_3D_VERTEX_DATA                       0x00001640
 #      define          NV50_TCL_PRIMITIVE_3D_LINE_STIPPLE_ENABLE               0x0000166c
 #      define          NV50_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN              0x00001680      /* Parameters: pattern factor */
+#               define         NV50_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_PATTERN_MASK 0x00ffff00
+#               define         NV50_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_PATTERN_SHIFT        8
+#               define         NV50_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_FACTOR_MASK  0x000000ff
 #      define          NV50_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_ENABLE            0x0000168c
-#      define          NV50_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_PATTERN( d)       (0x00001700 + d * 0x0004)
+#      define          NV50_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_PATTERN( d)       (0x00001700 + (d) * 0x0004)
 #      define          NV50_TCL_PRIMITIVE_3D_CULL_FACE_ENABLE                  0x00001918
 #      define          NV50_TCL_PRIMITIVE_3D_FRONT_FACE                        0x0000191c
 #      define          NV50_TCL_PRIMITIVE_3D_CULL_FACE                         0x00001920
 #      define          NV50_TCL_PRIMITIVE_3D_LOGIC_OP_ENABLE                   0x000019c4
 #      define          NV50_TCL_PRIMITIVE_3D_LOGIC_OP_OP                       0x000019c8
 #      define          NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS                     0x000019d0      /* Parameters: color stencil depth */
-#      define          NV50_TCL_PRIMITIVE_3D_COLOR_MASK( d)                    (0x00001a00 + d * 0x0004)       /* Parameters: a b g r */
+#               define         NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS_COLOR_MASK  0x0000003c
+#               define         NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS_COLOR_SHIFT 2
+#               define         NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS_STENCIL_MASK        0x00000002
+#               define         NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS_STENCIL     1 // Nothing to shift
+#               define         NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS_DEPTH_MASK  0x00000001
+#      define          NV50_TCL_PRIMITIVE_3D_COLOR_MASK( d)                    (0x00001a00 + (d) * 0x0004)     /* Parameters: a b g r */
+#               define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_A_MASK 0x0000f000
+#               define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_A_SHIFT        12
+#               define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_A_TRUE 0x0001
+#               define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_A_FALSE        0x0000
+#               define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_B_MASK 0x00000f00
+#               define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_B_SHIFT        8
+#               define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_B_TRUE 0x0001
+#               define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_B_FALSE        0x0000
+#               define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_G_MASK 0x000000f0
+#               define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_G_SHIFT        4
+#               define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_G_TRUE 0x0001
+#               define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_G_FALSE        0x0000
+#               define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_R_MASK 0x0000000f
+#      define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0                   0x00000c00      /* Parameters: width x_offset */
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_WIDTH_MASK        0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_WIDTH_SHIFT       16
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_X_OFFSET_MASK     0x0000ffff
+#      define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1                   0x00000c04      /* Parameters: height y_offset */
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_HEIGHT_MASK       0xffff0000
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_HEIGHT_SHIFT      16
+#               define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_Y_OFFSET_MASK     0x0000ffff
 
 /****************************************** 
 Object NV_DMA_FROM_MEMORY used on: NV03 NV04 NV10 NV15 NV20 NV30 NV40 G70
@@ -1468,13 +4925,49 @@ Object NvType0046 used on: NV04
 #      define          NvType0046_PITCH1                                       0x00000304
 #      define          NvType0046_PITCH2                                       0x0000030c
 #      define          NvType0046_SIZE                                         0x00000340      /* Parameters: width height */
+#               define         NvType0046_SIZE_WIDTH_MASK      0x0000ffff
+#               define         NvType0046_SIZE_HEIGHT_MASK     0xffff0000
+#               define         NvType0046_SIZE_HEIGHT_SHIFT    16
 #      define          NvType0046_WIDTH                                        0x00000344      /* Parameters: visible_width blank_width */
+#               define         NvType0046_WIDTH_VISIBLE_WIDTH_MASK     0x0000ffff
+#               define         NvType0046_WIDTH_BLANK_WIDTH_MASK       0xffff0000
+#               define         NvType0046_WIDTH_BLANK_WIDTH_SHIFT      16
 #      define          NvType0046_HSYNC                                        0x00000348      /* Parameters: hsync_start hsync_len */
+#               define         NvType0046_HSYNC_HSYNC_START_MASK       0x0000ffff
+#               define         NvType0046_HSYNC_HSYNC_LEN_MASK 0xffff0000
+#               define         NvType0046_HSYNC_HSYNC_LEN_SHIFT        16
 #      define          NvType0046_HEIGHT                                       0x0000034c      /* Parameters: visible_height blank_height */
+#               define         NvType0046_HEIGHT_VISIBLE_HEIGHT_MASK   0x0000ffff
+#               define         NvType0046_HEIGHT_BLANK_HEIGHT_MASK     0xffff0000
+#               define         NvType0046_HEIGHT_BLANK_HEIGHT_SHIFT    16
 #      define          NvType0046_VSYNC                                        0x00000350      /* Parameters: vsync_start vsync_len */
+#               define         NvType0046_VSYNC_VSYNC_START_MASK       0x0000ffff
+#               define         NvType0046_VSYNC_VSYNC_LEN_MASK 0xffff0000
+#               define         NvType0046_VSYNC_VSYNC_LEN_SHIFT        16
 #      define          NvType0046_FULL_SIZE                                    0x00000354      /* Parameters: full_width full_height */
+#               define         NvType0046_FULL_SIZE_FULL_WIDTH_MASK    0x0000ffff
+#               define         NvType0046_FULL_SIZE_FULL_HEIGHT_MASK   0xffff0000
+#               define         NvType0046_FULL_SIZE_FULL_HEIGHT_SHIFT  16
 #      define          NvType0046_PIXEL_CLK                                    0x00000358
-#      define          NvType0046_FLAGS                                        0x0000035c      /* Parameters: doublescan -hsync -vsync depth */
+#      define          NvType0046_FLAGS                                        0x0000035c      /* Parameters: doublescan neg_hsync neg_vsync depth */
+#               define         NvType0046_FLAGS_DOUBLESCAN_MASK        0x00000002
+#               define         NvType0046_FLAGS_DOUBLESCAN     1 // Nothing to shift
+#               define NvType0046_FLAGS_DOUBLESCAN_TRUE        0x0001
+#               define NvType0046_FLAGS_DOUBLESCAN_FALSE       0x0000
+#               define         NvType0046_FLAGS_NEG_HSYNC_MASK 0x00000008
+#               define         NvType0046_FLAGS_NEG_HSYNC      (1 << 3)
+#               define NvType0046_FLAGS_NEG_HSYNC_TRUE 0x0001
+#               define NvType0046_FLAGS_NEG_HSYNC_FALSE        0x0000
+#               define         NvType0046_FLAGS_NEG_VSYNC_MASK 0x00000010
+#               define         NvType0046_FLAGS_NEG_VSYNC      (1 << 4)
+#               define NvType0046_FLAGS_NEG_VSYNC_TRUE 0x0001
+#               define NvType0046_FLAGS_NEG_VSYNC_FALSE        0x0000
+#               define         NvType0046_FLAGS_DEPTH_MASK     0x00030000
+#               define         NvType0046_FLAGS_DEPTH_SHIFT    16
+#               define NvType0046_FLAGS_DEPTH_8 bpp    0x0000
+#               define NvType0046_FLAGS_DEPTH_16 bpp   0x0001
+#               define NvType0046_FLAGS_DEPTH_15 bpp   0x0002
+#               define NvType0046_FLAGS_DEPTH_24 bpp   0x0003
 
 /****************************************** 
 Object NvType0047 used on: NV04 
index 2ba5d79684a5def97a4566f98843955017e76e7a..148f9fdd5ecc774a76457d37cc818deddd6f6ad2 100644 (file)
@@ -840,7 +840,7 @@ static GLboolean nv10InitCard(nouveauContextPtr nmesa)
         OUT_RING(0);
 
        /* Clipping regions */
-       BEGIN_RING_SIZE(NvSub3D, 0x2b4, 1); /* clip_mode */
+       BEGIN_RING_SIZE(NvSub3D, NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_MODE, 1);
        OUT_RING  (0);
        BEGIN_RING_SIZE(NvSub3D,
              NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(0), 1);
index a9bcc5df17ab721057a66588ce87c223530b38e0..0a42acefd6704f8400e31f84d48ed499e3e00450 100644 (file)
@@ -74,7 +74,7 @@ static inline void nv10StartPrimitive(struct nouveau_context* nmesa,uint32_t pri
                BEGIN_RING_SIZE(NvSub3D,NV30_TCL_PRIMITIVE_3D_VERTEX_DATA|NONINC_METHOD,size);
 }
 
-inline void nv10FinishPrimitive(struct nouveau_context *nmesa)
+void nv10FinishPrimitive(struct nouveau_context *nmesa)
 {
        if ((nmesa->screen->card->type>=NV_10) && (nmesa->screen->card->type<=NV_17))
                BEGIN_RING_SIZE(NvSub3D,NV10_TCL_PRIMITIVE_3D_BEGIN_END,1);
@@ -516,7 +516,7 @@ static inline void nv10OutputVertexFormat(struct nouveau_context* nmesa)
        } else {
                BEGIN_RING_SIZE(NvSub3D, NV30_TCL_PRIMITIVE_3D_DO_VERTICES, 1);
                OUT_RING(0);
-               BEGIN_RING_CACHE(NvSub3D,NV30_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS,slots);
+               BEGIN_RING_CACHE(NvSub3D,NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0,slots);
                for(i=0;i<slots;i++)
                {
                        int size=attr_size[i];