Merge remote branch 'origin/master' into nv50-compiler
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Thu, 2 Sep 2010 16:31:49 +0000 (18:31 +0200)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Thu, 2 Sep 2010 16:31:49 +0000 (18:31 +0200)
Conflicts:
src/gallium/drivers/nv50/nv50_program.c

1  2 
src/gallium/drivers/nouveau/nouveau_class.h
src/gallium/drivers/nv50/nv50_miptree.c
src/gallium/drivers/nv50/nv50_push.c
src/gallium/drivers/nv50/nv50_tex.c

index f44979e562c1aa57379cad901f853c77bc03d153,20941f379c770de2a0a9130e2606cb59873b522b..d9f35b4c4b9683813c5e228d02bae4702f786d7d
@@@ -735,45 -735,6 +735,45 @@@ WITH THE SOFTWARE OR THE USE OR OTHER D
  #define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH                                 0x0000023c
  
  
 +#define NVC0_MEMORY_TO_MEMORY_FORMAT                                                  0x00009039
 +
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_NOP                                             0x00000100
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_SERIALIZE                                               0x00000110
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_IN                                  0x00000204
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_IN                                 0x00000208
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_IN                                        0x0000020c
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_IN                                 0x00000210
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Z                            0x00000214
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_OUT                                 0x00000220
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_OUT                                        0x00000224
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_OUT                                       0x00000228
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_OUT                                        0x0000022c
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Z                           0x00000230
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH                                 0x00000238
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_LOW                                  0x0000023c
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC                                            0x00000300
 +#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_PUSH                                      (1 <<  0)
 +#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_LINEAR_IN                                 (1 <<  4)
 +#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_LINEAR_OUT                                        (1 <<  8)
 +#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_NOTIFY                                    (1 << 13)
 +#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_INC_SHIFT                                 20
 +#define   NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_INC_MASK                                  0x00f00000
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_DATA                                            0x00000304
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH                                  0x0000030c
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_LOW                                   0x00000310
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_PITCH_IN                                                0x00000314
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT                                               0x00000318
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN                                  0x0000031c
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT                                      0x00000320
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_NOTIFY_ADDRESS_HIGH                             0x0000032c
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_NOTIFY_ADDRESS_LOW                              0x00000330
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_NOTIFY                                          0x00000334
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X                            0x00000344
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y                            0x00000348
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X                           0x0000034c
 +#define  NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y                           0x00000350
 +
 +
  #define NV01_MEMORY_LOCAL_BANKED                                                      0x0000003d
  
  
  #define   NV20TCL_VTXFMT_TYPE_SHIFT                                                   0
  #define   NV20TCL_VTXFMT_TYPE_MASK                                                    0x0000000f
  #define    NV20TCL_VTXFMT_TYPE_FLOAT                                                  0x00000002
 +#define    NV20TCL_VTXFMT_TYPE_HALF                                                   0x00000003
  #define    NV20TCL_VTXFMT_TYPE_UBYTE                                                  0x00000004
  #define    NV20TCL_VTXFMT_TYPE_USHORT                                                 0x00000005
  #define   NV20TCL_VTXFMT_SIZE_SHIFT                                                   4
  #define   NV34TCL_FP_REG_CONTROL_UNK1_MASK                                            0xffff0000
  #define   NV34TCL_FP_REG_CONTROL_UNK0_SHIFT                                           0
  #define   NV34TCL_FP_REG_CONTROL_UNK0_MASK                                            0x0000ffff
+ #define  NV34TCL_FLATSHADE_FIRST                                                      0x00001454
+ #define  NV34TCL_EDGEFLAG_ENABLE                                                      0x0000145c
  #define  NV34TCL_VP_CLIP_PLANES_ENABLE                                                        0x00001478
  #define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE0                                                (1 <<  1)
  #define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE1                                                (1 <<  5)
  #define  NV34TCL_VTXFMT__SIZE                                                         0x00000010
  #define   NV34TCL_VTXFMT_TYPE_SHIFT                                                   0
  #define   NV34TCL_VTXFMT_TYPE_MASK                                                    0x0000000f
- #define    NV34TCL_VTXFMT_TYPE_FLOAT                                                  0x00000002
- #define    NV34TCL_VTXFMT_TYPE_HALF                                                   0x00000003
- #define    NV34TCL_VTXFMT_TYPE_UBYTE                                                  0x00000004
- #define    NV34TCL_VTXFMT_TYPE_USHORT                                                 0x00000005
+ #define    NV34TCL_VTXFMT_TYPE_16_SNORM                                                       0x00000001
+ #define    NV34TCL_VTXFMT_TYPE_32_FLOAT                                                       0x00000002
+ #define    NV34TCL_VTXFMT_TYPE_16_FLOAT                                                       0x00000003
+ #define    NV34TCL_VTXFMT_TYPE_8_UNORM                                                        0x00000004
+ #define    NV34TCL_VTXFMT_TYPE_16_SSCALED                                                     0x00000005
+ #define    NV34TCL_VTXFMT_TYPE_11_11_10_SNORM                                                 0x00000006
+ #define    NV34TCL_VTXFMT_TYPE_8_USCALED                                                      0x00000007
  #define   NV34TCL_VTXFMT_SIZE_SHIFT                                                   4
  #define   NV34TCL_VTXFMT_SIZE_MASK                                                    0x000000f0
  #define   NV34TCL_VTXFMT_STRIDE_SHIFT                                                 8
  #define    NV34TCL_TX_FORMAT_FORMAT_R8G8B8_RECT                                               0x00001e00
  #define    NV34TCL_TX_FORMAT_FORMAT_A8L8_RECT                                         0x00002000
  #define    NV34TCL_TX_FORMAT_FORMAT_DSDT8                                             0x00002800
+ #define    NV34TCL_TX_FORMAT_FORMAT_Z24                                                       0x2a00
+ #define    NV34TCL_TX_FORMAT_FORMAT_Z24_RECT                                          0x2b00 /* XXX: guess! */
+ #define    NV34TCL_TX_FORMAT_FORMAT_Z16                                                       0x2c00
+ #define    NV34TCL_TX_FORMAT_FORMAT_Z16_RECT                                          0x2d00 /* XXX: guess! */
  #define    NV34TCL_TX_FORMAT_FORMAT_HILO16                                            0x00003300
  #define    NV34TCL_TX_FORMAT_FORMAT_HILO16_RECT                                               0x00003600
  #define    NV34TCL_TX_FORMAT_FORMAT_HILO8                                             0x00004400
  #define   NV40TCL_VTXFMT_TYPE_SHIFT                                                   0
  #define   NV40TCL_VTXFMT_TYPE_MASK                                                    0x0000000f
  #define    NV40TCL_VTXFMT_TYPE_FLOAT                                                  0x00000002
 +#define    NV40TCL_VTXFMT_TYPE_HALF                                                   0x00000003
  #define    NV40TCL_VTXFMT_TYPE_UBYTE                                                  0x00000004
  #define    NV40TCL_VTXFMT_TYPE_USHORT                                                 0x00000005
  #define   NV40TCL_VTXFMT_SIZE_SHIFT                                                   4
  #define  NV50TCL_DMA_TIC                                                              0x000001a0
  #define  NV50TCL_DMA_TEXTURE                                                          0x000001a4
  #define  NV50TCL_DMA_STRMOUT                                                          0x000001a8
 -#define  NV50TCL_DMA_UNK01AC                                                          0x000001ac
 +#define  NV50TCL_DMA_CLIPID                                                           0x000001ac
  #define  NV50TCL_DMA_COLOR(x)                                                         (0x000001c0+((x)*4))
  #define  NV50TCL_DMA_COLOR__SIZE                                                      0x00000008
  #define  NV50TCL_RT_ADDRESS_HIGH(x)                                                   (0x00000200+((x)*32))
  #define  NV50TCL_DEPTH_RANGE_FAR__SIZE                                                        0x00000010
  #define  NV50TCL_VIEWPORT_CLIP_HORIZ(x)                                                       (0x00000d00+((x)*8))
  #define  NV50TCL_VIEWPORT_CLIP_HORIZ__SIZE                                            0x00000008
 +#define   NV50TCL_VIEWPORT_CLIP_HORIZ_MIN_SHIFT                                               0
 +#define   NV50TCL_VIEWPORT_CLIP_HORIZ_MIN_MASK                                                0x0000ffff
 +#define   NV50TCL_VIEWPORT_CLIP_HORIZ_MAX_SHIFT                                               16
 +#define   NV50TCL_VIEWPORT_CLIP_HORIZ_MAX_MASK                                                0xffff0000
  #define  NV50TCL_VIEWPORT_CLIP_VERT(x)                                                        (0x00000d04+((x)*8))
  #define  NV50TCL_VIEWPORT_CLIP_VERT__SIZE                                             0x00000008
 +#define   NV50TCL_VIEWPORT_CLIP_VERT_MIN_SHIFT                                                0
 +#define   NV50TCL_VIEWPORT_CLIP_VERT_MIN_MASK                                         0x0000ffff
 +#define   NV50TCL_VIEWPORT_CLIP_VERT_MAX_SHIFT                                                16
 +#define   NV50TCL_VIEWPORT_CLIP_VERT_MAX_MASK                                         0xffff0000
 +#define  NV50TCL_CLIPID_REGION_HORIZ(x)                                                       (0x00000d40+((x)*8))
 +#define  NV50TCL_CLIPID_REGION_HORIZ__SIZE                                            0x00000004
 +#define  NV50TCL_CLIPID_REGION_VERT(x)                                                        (0x00000d44+((x)*8))
 +#define  NV50TCL_CLIPID_REGION_VERT__SIZE                                             0x00000004
  #define  NV50TCL_VERTEX_BUFFER_FIRST                                                  0x00000d74
  #define  NV50TCL_VERTEX_BUFFER_COUNT                                                  0x00000d78
  #define  NV50TCL_CLEAR_COLOR(x)                                                               (0x00000d80+((x)*4))
  #define  NV50TCL_GP_ADDRESS_LOW                                                               0x00000f74
  #define  NV50TCL_VP_ADDRESS_HIGH                                                      0x00000f7c
  #define  NV50TCL_VP_ADDRESS_LOW                                                               0x00000f80
 -#define  NV50TCL_UNK0F84_ADDRESS_HIGH                                                 0x00000f84
 -#define  NV50TCL_UNK0F84_ADDRESS_LOW                                                  0x00000f88
 +#define  NV50TCL_VERTEX_RUNOUT_HIGH                                                   0x00000f84
 +#define  NV50TCL_VERTEX_RUNOUT_LOW                                                    0x00000f88
  #define  NV50TCL_DEPTH_BOUNDS(x)                                                      (0x00000f9c+((x)*4))
  #define  NV50TCL_DEPTH_BOUNDS__SIZE                                                   0x00000002
  #define  NV50TCL_FP_ADDRESS_HIGH                                                      0x00000fa4
  #define  NV50TCL_FP_ADDRESS_LOW                                                               0x00000fa8
  #define  NV50TCL_MSAA_MASK(x)                                                         (0x00000fbc+((x)*4))
  #define  NV50TCL_MSAA_MASK__SIZE                                                      0x00000004
 +#define  NV50TCL_CLIPID_ADDRESS_HIGH                                                  0x00000fcc
 +#define  NV50TCL_CLIPID_ADDRESS_LOW                                                   0x00000fd0
  #define  NV50TCL_ZETA_ADDRESS_HIGH                                                    0x00000fe0
  #define  NV50TCL_ZETA_ADDRESS_LOW                                                     0x00000fe4
  #define  NV50TCL_ZETA_FORMAT                                                          0x00000fe8
  #define   NV50TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT                                    0x0000800a
  #define   NV50TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT                            0x0000800b
  #define  NV50TCL_BLEND_FUNC_SRC_RGB                                                   0x00001344
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_ZERO                                             0x00000000
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE                                              0x00000001
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR                                                0x00000300
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR                              0x00000301
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA                                                0x00000302
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA                              0x00000303
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA                                                0x00000304
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA                              0x00000305
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_COLOR                                                0x00000306
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR                              0x00000307
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE                                       0x00000308
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR                                   0x00008001
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR                         0x00008002
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA                                   0x00008003
 -#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA                         0x00008004
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_ZERO                                             0x00004000
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE                                              0x00004001
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR                                                0x00004300
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR                              0x00004301
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA                                                0x00004302
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA                              0x00004303
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA                                                0x00004304
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA                              0x00004305
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_COLOR                                                0x00004306
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR                              0x00004307
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE                                       0x00004308
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR                                   0x0000c001
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR                         0x0000c002
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA                                   0x0000c003
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA                         0x0000c004
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC1_COLOR                                               0x0000c900
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_COLOR                             0x0000c901
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC1_ALPHA                                               0x0000c902
 +#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_ALPHA                             0x0000c903
  #define  NV50TCL_BLEND_FUNC_DST_RGB                                                   0x00001348
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_ZERO                                             0x00000000
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE                                              0x00000001
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_COLOR                                                0x00000300
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR                              0x00000301
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA                                                0x00000302
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA                              0x00000303
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_ALPHA                                                0x00000304
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA                              0x00000305
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_COLOR                                                0x00000306
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR                              0x00000307
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE                                       0x00000308
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR                                   0x00008001
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR                         0x00008002
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA                                   0x00008003
 -#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA                         0x00008004
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_ZERO                                             0x00004000
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE                                              0x00004001
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_COLOR                                                0x00004300
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR                              0x00004301
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA                                                0x00004302
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA                              0x00004303
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_ALPHA                                                0x00004304
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA                              0x00004305
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_COLOR                                                0x00004306
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR                              0x00004307
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE                                       0x00004308
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR                                   0x0000c001
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR                         0x0000c002
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA                                   0x0000c003
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA                         0x0000c004
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC1_COLOR                                               0x0000c900
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_COLOR                             0x0000c901
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC1_ALPHA                                               0x0000c902
 +#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_ALPHA                             0x0000c903
  #define  NV50TCL_BLEND_EQUATION_ALPHA                                                 0x0000134c
  #define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_ADD                                               0x00008006
  #define   NV50TCL_BLEND_EQUATION_ALPHA_MIN                                            0x00008007
  #define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT                                  0x0000800a
  #define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT                          0x0000800b
  #define  NV50TCL_BLEND_FUNC_SRC_ALPHA                                                 0x00001350
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ZERO                                           0x00000000
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE                                            0x00000001
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR                                      0x00000300
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR                            0x00000301
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA                                      0x00000302
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA                            0x00000303
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA                                      0x00000304
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA                            0x00000305
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR                                      0x00000306
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR                            0x00000307
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE                             0x00000308
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR                                 0x00008001
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR                               0x00008002
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA                                 0x00008003
 -#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA                               0x00008004
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ZERO                                           0x00004000
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE                                            0x00004001
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR                                      0x00004300
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR                            0x00004301
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA                                      0x00004302
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA                            0x00004303
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA                                      0x00004304
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA                            0x00004305
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR                                      0x00004306
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR                            0x00004307
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE                             0x00004308
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR                                 0x0000c001
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR                               0x0000c002
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA                                 0x0000c003
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA                               0x0000c004
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC1_COLOR                                     0x0000c900
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_COLOR                           0x0000c901
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC1_ALPHA                                     0x0000c902
 +#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_ALPHA                           0x0000c903
  #define  NV50TCL_BLEND_FUNC_DST_ALPHA                                                 0x00001358
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ZERO                                           0x00000000
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE                                            0x00000001
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR                                      0x00000300
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR                            0x00000301
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA                                      0x00000302
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA                            0x00000303
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA                                      0x00000304
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA                            0x00000305
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR                                      0x00000306
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR                            0x00000307
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE                             0x00000308
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR                                 0x00008001
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR                               0x00008002
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA                                 0x00008003
 -#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA                               0x00008004
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ZERO                                           0x00004000
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE                                            0x00004001
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR                                      0x00004300
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR                            0x00004301
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA                                      0x00004302
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA                            0x00004303
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA                                      0x00004304
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA                            0x00004305
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR                                      0x00004306
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR                            0x00004307
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE                             0x00004308
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR                                 0x0000c001
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR                               0x0000c002
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA                                 0x0000c003
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA                               0x0000c004
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC1_COLOR                                     0x0000c900
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_COLOR                           0x0000c901
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC1_ALPHA                                     0x0000c902
 +#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_ALPHA                           0x0000c903
  #define  NV50TCL_BLEND_ENABLE(x)                                                      (0x00001360+((x)*4))
  #define  NV50TCL_BLEND_ENABLE__SIZE                                                   0x00000008
  #define  NV50TCL_STENCIL_FRONT_ENABLE                                                 0x00001380
  #define  NV50TCL_FP_START_ID                                                          0x00001414
  #define  NV50TCL_GP_VERTEX_OUTPUT_COUNT                                                       0x00001420
  #define  NV50TCL_VB_ELEMENT_BASE                                                      0x00001434
 +#define  NV50TCL_INSTANCE_BASE                                                                0x00001438
  #define  NV50TCL_CODE_CB_FLUSH                                                                0x00001440
  #define  NV50TCL_BIND_TSC(x)                                                          (0x00001444+((x)*8))
  #define  NV50TCL_BIND_TSC__SIZE                                                               0x00000003
  #define   NV50TCL_BIND_TIC_TIC_MASK                                                   0x7ffffe00
  #define  NV50TCL_STRMOUT_MAP(x)                                                               (0x00001480+((x)*4))
  #define  NV50TCL_STRMOUT_MAP__SIZE                                                    0x00000020
 +#define  NV50TCL_CLIPID_HEIGHT                                                                0x00001504
  #define  NV50TCL_VP_CLIP_DISTANCE_ENABLE                                              0x00001510
  #define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_0                                           (1 <<  0)
  #define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_1                                           (1 <<  1)
  #define  NV50TCL_GP_BUILTIN_RESULT_EN                                                 0x000015cc
  #define   NV50TCL_GP_BUILTIN_RESULT_EN_VPORT_IDX                                      (1 <<  0)
  #define   NV50TCL_GP_BUILTIN_RESULT_EN_LAYER_IDX                                      (1 << 16)
 -#define  NV50TCL_MULTISAMPLE_SAMPLES_LOG2                                             0x000015d0
 +#define  NV50TCL_MULTISAMPLE_MODE                                                     0x000015d0
 +#define   NV50TCL_MULTISAMPLE_MODE_1X                                                 0x00000000
 +#define   NV50TCL_MULTISAMPLE_MODE_2XMS                                                       0x00000001
 +#define   NV50TCL_MULTISAMPLE_MODE_4XMS                                                       0x00000002
 +#define   NV50TCL_MULTISAMPLE_MODE_8XMS                                                       0x00000004
 +#define   NV50TCL_MULTISAMPLE_MODE_4XMS_4XCS                                          0x00000008
 +#define   NV50TCL_MULTISAMPLE_MODE_4XMS_12XCS                                         0x00000009
 +#define   NV50TCL_MULTISAMPLE_MODE_8XMS_8XCS                                          0x0000000a
  #define  NV50TCL_VERTEX_BEGIN                                                         0x000015dc
  #define   NV50TCL_VERTEX_BEGIN_POINTS                                                 0x00000000
  #define   NV50TCL_VERTEX_BEGIN_LINES                                                  0x00000001
  #define   NV50TCL_VERTEX_BEGIN_LINE_STRIP_ADJACENCY                                   0x0000000b
  #define   NV50TCL_VERTEX_BEGIN_TRIANGLES_ADJACENCY                                    0x0000000c
  #define   NV50TCL_VERTEX_BEGIN_TRIANGLE_STRIP_ADJACENCY                                       0x0000000d
 +#define   NV50TCL_VERTEX_BEGIN_PATCHES                                                        0x0000000e
  #define  NV50TCL_VERTEX_END                                                           0x000015e0
  #define  NV50TCL_EDGEFLAG_ENABLE                                                      0x000015e4
  #define  NV50TCL_VB_ELEMENT_U32                                                               0x000015e8
  #define   NV50TCL_VB_ELEMENT_U16_I0_MASK                                              0x0000ffff
  #define   NV50TCL_VB_ELEMENT_U16_I1_SHIFT                                             16
  #define   NV50TCL_VB_ELEMENT_U16_I1_MASK                                              0xffff0000
 +#define  NV50TCL_VERTEX_BASE_HIGH                                                     0x000015f4
 +#define  NV50TCL_VERTEX_BASE_LOW                                                      0x000015f8
  #define  NV50TCL_VERTEX_DATA                                                          0x00001640
  #define  NV50TCL_PRIM_RESTART_ENABLE                                                  0x00001644
  #define  NV50TCL_PRIM_RESTART_INDEX                                                   0x00001648
  #define  NV50TCL_VIEWPORT_TRANSFORM_EN                                                        0x0000192c
  #define  NV50TCL_VIEW_VOLUME_CLIP_CTRL                                                        0x0000193c
  #define  NV50TCL_VIEWPORT_CLIP_RECTS_EN                                                       0x0000194c
 +#define  NV50TCL_VIEWPORT_CLIP_MODE                                                   0x00001950
 +#define   NV50TCL_VIEWPORT_CLIP_MODE_INCLUDE                                          0x00000000
 +#define   NV50TCL_VIEWPORT_CLIP_MODE_EXCLUDE                                          0x00000001
 +#define   NV50TCL_VIEWPORT_CLIP_MODE_UNKNOWN                                          0x00000002
  #define  NV50TCL_FP_CTRL_UNK196C                                                      0x0000196c
 +#define  NV50TCL_CLIPID_ENABLE                                                                0x0000197c
 +#define  NV50TCL_CLIPID_WIDTH                                                         0x00001980
 +#define  NV50TCL_CLIPID_ID                                                            0x00001984
  #define  NV50TCL_FP_INTERPOLANT_CTRL                                                  0x00001988
  #define   NV50TCL_FP_INTERPOLANT_CTRL_UMASK_SHIFT                                     24
  #define   NV50TCL_FP_INTERPOLANT_CTRL_UMASK_MASK                                      0xff000000
  #define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8                                     0x00c00000
  #define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16                                      0x00d80000
  #define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8                                               0x00e80000
 +#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_2_10_10_10                              0x01800000
  #define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SHIFT                                      25
 -#define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_MASK                                               0x7e000000
 -#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT                                     0x7e000000
 -#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UNORM                                     0x24000000
 -#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SNORM                                     0x12000000
 -#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_USCALED                                   0x5a000000
 -#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED                                   0x6c000000
 -#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UINT                                      0x48000000
 -#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SINT                                      0x36000000
 +#define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_MASK                                               0x0e000000
 +#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT                                     0x0e000000
 +#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SNORM                                     0x02000000
 +#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UNORM                                     0x04000000
 +#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_USCALED                                   0x0a000000
 +#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED                                   0x0c000000
 +#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UINT                                      0x08000000
 +#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SINT                                      0x06000000
  #define   NV50TCL_VERTEX_ARRAY_ATTRIB_BGRA                                            (1 << 31)
  #define  NV50TCL_QUERY_ADDRESS_HIGH                                                   0x00001b00
  #define  NV50TCL_QUERY_ADDRESS_LOW                                                    0x00001b04
 -#define  NV50TCL_QUERY_COUNTER                                                                0x00001b08
 +#define  NV50TCL_QUERY_SEQUENCE                                                               0x00001b08
  #define  NV50TCL_QUERY_GET                                                            0x00001b0c
  
  
  #define  NV50_COMPUTE_USER_PARAM__SIZE                                                        0x00000040
  
  
 +#define NVC0TCL                                                                               0x00009097
 +
 +#define  NVC0TCL_SEMAPHORE_ADDRESS_HIGH                                                       0x00000010
 +#define  NVC0TCL_SEMAPHORE_ADDRESS_LOW                                                        0x00000014
 +#define  NVC0TCL_NOP                                                                  0x00000100
 +#define  NVC0TCL_NOTIFY_ADDRESS_HIGH                                                  0x00000104
 +#define  NVC0TCL_NOTIFY_ADDRESS_LOW                                                   0x00000108
 +#define  NVC0TCL_NOTIFY                                                                       0x0000010c
 +#define  NVC0TCL_SERIALIZE                                                            0x00000110
 +#define  NVC0TCL_EARLY_FRAGMENT_TESTS                                                 0x00000210
 +#define  NVC0TCL_TESS_MODE                                                            0x00000320
 +#define   NVC0TCL_TESS_MODE_PRIM_SHIFT                                                        0
 +#define   NVC0TCL_TESS_MODE_PRIM_MASK                                                 0x0000000f
 +#define    NVC0TCL_TESS_MODE_PRIM_ISOLINES                                            0x00000000
 +#define    NVC0TCL_TESS_MODE_PRIM_TRIANGLES                                           0x00000001
 +#define    NVC0TCL_TESS_MODE_PRIM_QUADS                                                       0x00000002
 +#define   NVC0TCL_TESS_MODE_SPACING_SHIFT                                             4
 +#define   NVC0TCL_TESS_MODE_SPACING_MASK                                              0x000000f0
 +#define    NVC0TCL_TESS_MODE_SPACING_EQUAL                                            0x00000000
 +#define    NVC0TCL_TESS_MODE_SPACING_FRACTIONAL_ODD                                   0x00000010
 +#define    NVC0TCL_TESS_MODE_SPACING_FRACTIONAL_EVEN                                  0x00000020
 +#define   NVC0TCL_TESS_MODE_CW                                                                (1 <<  8)
 +#define   NVC0TCL_TESS_MODE_CONNECTED                                                 (1 <<  9)
 +#define  NVC0TCL_TESS_LEVEL_OUTER(x)                                                  (0x00000324+((x)*4))
 +#define  NVC0TCL_TESS_LEVEL_OUTER__SIZE                                                       0x00000004
 +#define  NVC0TCL_TESS_LEVEL_INNER(x)                                                  (0x00000334+((x)*4))
 +#define  NVC0TCL_TESS_LEVEL_INNER__SIZE                                                       0x00000002
 +#define  NVC0TCL_RASTERIZE_ENABLE                                                     0x0000037c
 +#define  NVC0TCL_TFB_BUFFER_ENABLE(x)                                                 (0x00000380+((x)*32))
 +#define  NVC0TCL_TFB_BUFFER_ENABLE__SIZE                                              0x00000004
 +#define  NVC0TCL_TFB_ADDRESS_HIGH(x)                                                  (0x00000384+((x)*32))
 +#define  NVC0TCL_TFB_ADDRESS_HIGH__SIZE                                                       0x00000004
 +#define  NVC0TCL_TFB_ADDRESS_LOW(x)                                                   (0x00000388+((x)*32))
 +#define  NVC0TCL_TFB_ADDRESS_LOW__SIZE                                                        0x00000004
 +#define  NVC0TCL_TFB_BUFFER_SIZE(x)                                                   (0x0000038c+((x)*32))
 +#define  NVC0TCL_TFB_BUFFER_SIZE__SIZE                                                        0x00000004
 +#define  NVC0TCL_TFB_PRIMITIVE_ID(x)                                                  (0x00000390+((x)*32))
 +#define  NVC0TCL_TFB_PRIMITIVE_ID__SIZE                                                       0x00000004
 +#define  NVC0TCL_TFB_UNK0700(x)                                                               (0x00000700+((x)*16))
 +#define  NVC0TCL_TFB_UNK0700__SIZE                                                    0x00000004
 +#define  NVC0TCL_TFB_VARYING_COUNT(x)                                                 (0x00000704+((x)*16))
 +#define  NVC0TCL_TFB_VARYING_COUNT__SIZE                                              0x00000004
 +#define  NVC0TCL_TFB_BUFFER_STRIDE(x)                                                 (0x00000708+((x)*16))
 +#define  NVC0TCL_TFB_BUFFER_STRIDE__SIZE                                              0x00000004
 +#define  NVC0TCL_TFB_ENABLE                                                           0x00000744
 +#define  NVC0TCL_LOCAL_BASE                                                           0x0000077c
 +#define  NVC0TCL_UNK0790_ADDRESS_HIGH                                                 0x00000790
 +#define  NVC0TCL_UNK0790_ADDRESS_LOW                                                  0x00000794
 +#define  NVC0TCL_RT_ADDRESS_HIGH(x)                                                   (0x00000800+((x)*32))
 +#define  NVC0TCL_RT_ADDRESS_HIGH__SIZE                                                        0x00000008
 +#define  NVC0TCL_RT_ADDRESS_LOW(x)                                                    (0x00000804+((x)*32))
 +#define  NVC0TCL_RT_ADDRESS_LOW__SIZE                                                 0x00000008
 +#define  NVC0TCL_RT_HORIZ(x)                                                          (0x00000808+((x)*32))
 +#define  NVC0TCL_RT_HORIZ__SIZE                                                               0x00000008
 +#define  NVC0TCL_RT_VERT(x)                                                           (0x0000080c+((x)*32))
 +#define  NVC0TCL_RT_VERT__SIZE                                                                0x00000008
 +#define  NVC0TCL_RT_FORMAT(x)                                                         (0x00000810+((x)*32))
 +#define  NVC0TCL_RT_FORMAT__SIZE                                                      0x00000008
 +#define   NVC0TCL_RT_FORMAT_R32G32B32A32_FLOAT                                                0x000000c0
 +#define   NVC0TCL_RT_FORMAT_R32G32B32A32_SINT                                         0x000000c1
 +#define   NVC0TCL_RT_FORMAT_R32G32B32A32_UINT                                         0x000000c2
 +#define   NVC0TCL_RT_FORMAT_R32G32B32X32_FLOAT                                                0x000000c3
 +#define   NVC0TCL_RT_FORMAT_R16G16B16A16_UNORM                                                0x000000c6
 +#define   NVC0TCL_RT_FORMAT_R16G16B16A16_SNORM                                                0x000000c7
 +#define   NVC0TCL_RT_FORMAT_R16G16B16A16_SINT                                         0x000000c8
 +#define   NVC0TCL_RT_FORMAT_R16G16B16A16_UINT                                         0x000000c9
 +#define   NVC0TCL_RT_FORMAT_R16G16B16A16_FLOAT                                                0x000000ca
 +#define   NVC0TCL_RT_FORMAT_R32G32_FLOAT                                              0x000000cb
 +#define   NVC0TCL_RT_FORMAT_R32G32_SINT                                                       0x000000cc
 +#define   NVC0TCL_RT_FORMAT_R32G32_UINT                                                       0x000000cd
 +#define   NVC0TCL_RT_FORMAT_R16G16B16X16_FLOAT                                                0x000000ce
 +#define   NVC0TCL_RT_FORMAT_A8R8G8B8_UNORM                                            0x000000cf
 +#define   NVC0TCL_RT_FORMAT_A8R8G8B8_SRGB                                             0x000000d0
 +#define   NVC0TCL_RT_FORMAT_A2B10G10R10_UNORM                                         0x000000d1
 +#define   NVC0TCL_RT_FORMAT_A2B10G10R10_UINT                                          0x000000d2
 +#define   NVC0TCL_RT_FORMAT_A8B8G8R8_UNORM                                            0x000000d5
 +#define   NVC0TCL_RT_FORMAT_A8B8G8R8_SRGB                                             0x000000d6
 +#define   NVC0TCL_RT_FORMAT_A8B8G8R8_SNORM                                            0x000000d7
 +#define   NVC0TCL_RT_FORMAT_A8B8G8R8_SINT                                             0x000000d8
 +#define   NVC0TCL_RT_FORMAT_A8B8G8R8_UINT                                             0x000000d9
 +#define   NVC0TCL_RT_FORMAT_R16G16_UNORM                                              0x000000da
 +#define   NVC0TCL_RT_FORMAT_R16G16_SNORM                                              0x000000db
 +#define   NVC0TCL_RT_FORMAT_R16G16_SINT                                                       0x000000dc
 +#define   NVC0TCL_RT_FORMAT_R16G16_UINT                                                       0x000000dd
 +#define   NVC0TCL_RT_FORMAT_R16G16_FLOAT                                              0x000000de
 +#define   NVC0TCL_RT_FORMAT_A2R10G10B10_UNORM                                         0x000000df
 +#define   NVC0TCL_RT_FORMAT_B10G11R11_FLOAT                                           0x000000e0
 +#define   NVC0TCL_RT_FORMAT_R32_FLOAT                                                 0x000000e5
 +#define   NVC0TCL_RT_FORMAT_X8R8G8B8_UNORM                                            0x000000e6
 +#define   NVC0TCL_RT_FORMAT_X8R8G8B8_SRGB                                             0x000000e7
 +#define   NVC0TCL_RT_FORMAT_R5G6B5_UNORM                                              0x000000e8
 +#define   NVC0TCL_RT_FORMAT_A1R5G5B5_UNORM                                            0x000000e9
 +#define   NVC0TCL_RT_FORMAT_R8G8_UNORM                                                        0x000000ea
 +#define   NVC0TCL_RT_FORMAT_R8G8_SNORM                                                        0x000000eb
 +#define   NVC0TCL_RT_FORMAT_R8G8_SINT                                                 0x000000ec
 +#define   NVC0TCL_RT_FORMAT_R8G8_UINT                                                 0x000000ed
 +#define   NVC0TCL_RT_FORMAT_R16_UNORM                                                 0x000000ee
 +#define   NVC0TCL_RT_FORMAT_R16_SNORM                                                 0x000000ef
 +#define   NVC0TCL_RT_FORMAT_R16_SINT                                                  0x000000f0
 +#define   NVC0TCL_RT_FORMAT_R16_UINT                                                  0x000000f1
 +#define   NVC0TCL_RT_FORMAT_R16_FLOAT                                                 0x000000f2
 +#define   NVC0TCL_RT_FORMAT_R8_UNORM                                                  0x000000f3
 +#define   NVC0TCL_RT_FORMAT_R8_SNORM                                                  0x000000f4
 +#define   NVC0TCL_RT_FORMAT_R8_SINT                                                   0x000000f5
 +#define   NVC0TCL_RT_FORMAT_R8_UINT                                                   0x000000f6
 +#define   NVC0TCL_RT_FORMAT_A8_UNORM                                                  0x000000f7
 +#define   NVC0TCL_RT_FORMAT_X1R5G5B5_UNORM                                            0x000000f8
 +#define   NVC0TCL_RT_FORMAT_X8B8G8R8_UNORM                                            0x000000f9
 +#define   NVC0TCL_RT_FORMAT_X8B8G8R8_SRGB                                             0x000000fa
 +#define  NVC0TCL_RT_TILE_MODE(x)                                                      (0x00000814+((x)*32))
 +#define  NVC0TCL_RT_TILE_MODE__SIZE                                                   0x00000008
 +#define  NVC0TCL_RT_ARRAY_MODE(x)                                                     (0x00000818+((x)*32))
 +#define  NVC0TCL_RT_ARRAY_MODE__SIZE                                                  0x00000008
 +#define   NVC0TCL_RT_ARRAY_MODE_LAYERS_SHIFT                                          0
 +#define   NVC0TCL_RT_ARRAY_MODE_LAYERS_MASK                                           0x0000ffff
 +#define   NVC0TCL_RT_ARRAY_MODE_VOLUME                                                        (1 << 16)
 +#define  NVC0TCL_RT_LAYER_STRIDE(x)                                                   (0x0000081c+((x)*32))
 +#define  NVC0TCL_RT_LAYER_STRIDE__SIZE                                                        0x00000008
 +#define  NVC0TCL_VIEWPORT_SCALE_X(x)                                                  (0x00000a00+((x)*32))
 +#define  NVC0TCL_VIEWPORT_SCALE_X__SIZE                                                       0x00000010
 +#define  NVC0TCL_VIEWPORT_SCALE_Y(x)                                                  (0x00000a04+((x)*32))
 +#define  NVC0TCL_VIEWPORT_SCALE_Y__SIZE                                                       0x00000010
 +#define  NVC0TCL_VIEWPORT_SCALE_Z(x)                                                  (0x00000a08+((x)*32))
 +#define  NVC0TCL_VIEWPORT_SCALE_Z__SIZE                                                       0x00000010
 +#define  NVC0TCL_VIEWPORT_TRANSLATE_X(x)                                              (0x00000a0c+((x)*32))
 +#define  NVC0TCL_VIEWPORT_TRANSLATE_X__SIZE                                           0x00000010
 +#define  NVC0TCL_VIEWPORT_TRANSLATE_Y(x)                                              (0x00000a10+((x)*32))
 +#define  NVC0TCL_VIEWPORT_TRANSLATE_Y__SIZE                                           0x00000010
 +#define  NVC0TCL_VIEWPORT_TRANSLATE_Z(x)                                              (0x00000a14+((x)*32))
 +#define  NVC0TCL_VIEWPORT_TRANSLATE_Z__SIZE                                           0x00000010
 +#define  NVC0TCL_VIEWPORT_HORIZ(x)                                                    (0x00000c00+((x)*16))
 +#define  NVC0TCL_VIEWPORT_HORIZ__SIZE                                                 0x00000010
 +#define   NVC0TCL_VIEWPORT_HORIZ_X_SHIFT                                              0
 +#define   NVC0TCL_VIEWPORT_HORIZ_X_MASK                                                       0x0000ffff
 +#define   NVC0TCL_VIEWPORT_HORIZ_W_SHIFT                                              16
 +#define   NVC0TCL_VIEWPORT_HORIZ_W_MASK                                                       0xffff0000
 +#define  NVC0TCL_VIEWPORT_VERT(x)                                                     (0x00000c04+((x)*16))
 +#define  NVC0TCL_VIEWPORT_VERT__SIZE                                                  0x00000010
 +#define   NVC0TCL_VIEWPORT_VERT_Y_SHIFT                                                       0
 +#define   NVC0TCL_VIEWPORT_VERT_Y_MASK                                                        0x0000ffff
 +#define   NVC0TCL_VIEWPORT_VERT_H_SHIFT                                                       16
 +#define   NVC0TCL_VIEWPORT_VERT_H_MASK                                                        0xffff0000
 +#define  NVC0TCL_DEPTH_RANGE_NEAR(x)                                                  (0x00000c08+((x)*16))
 +#define  NVC0TCL_DEPTH_RANGE_NEAR__SIZE                                                       0x00000010
 +#define  NVC0TCL_DEPTH_RANGE_FAR(x)                                                   (0x00000c0c+((x)*16))
 +#define  NVC0TCL_DEPTH_RANGE_FAR__SIZE                                                        0x00000010
 +#define  NVC0TCL_VIEWPORT_CLIP_HORIZ(x)                                                       (0x00000d00+((x)*8))
 +#define  NVC0TCL_VIEWPORT_CLIP_HORIZ__SIZE                                            0x00000008
 +#define   NVC0TCL_VIEWPORT_CLIP_HORIZ_MIN_SHIFT                                               0
 +#define   NVC0TCL_VIEWPORT_CLIP_HORIZ_MIN_MASK                                                0x0000ffff
 +#define   NVC0TCL_VIEWPORT_CLIP_HORIZ_MAX_SHIFT                                               16
 +#define   NVC0TCL_VIEWPORT_CLIP_HORIZ_MAX_MASK                                                0xffff0000
 +#define  NVC0TCL_VIEWPORT_CLIP_VERT(x)                                                        (0x00000d04+((x)*8))
 +#define  NVC0TCL_VIEWPORT_CLIP_VERT__SIZE                                             0x00000008
 +#define   NVC0TCL_VIEWPORT_CLIP_VERT_MIN_SHIFT                                                0
 +#define   NVC0TCL_VIEWPORT_CLIP_VERT_MIN_MASK                                         0x0000ffff
 +#define   NVC0TCL_VIEWPORT_CLIP_VERT_MAX_SHIFT                                                16
 +#define   NVC0TCL_VIEWPORT_CLIP_VERT_MAX_MASK                                         0xffff0000
 +#define  NVC0TCL_CLIPID_REGION_HORIZ(x)                                                       (0x00000d40+((x)*8))
 +#define  NVC0TCL_CLIPID_REGION_HORIZ__SIZE                                            0x00000004
 +#define  NVC0TCL_CLIPID_REGION_VERT(x)                                                        (0x00000d44+((x)*8))
 +#define  NVC0TCL_CLIPID_REGION_VERT__SIZE                                             0x00000004
 +#define  NVC0TCL_VERTEX_BUFFER_FIRST                                                  0x00000d74
 +#define  NVC0TCL_VERTEX_BUFFER_COUNT                                                  0x00000d78
 +#define  NVC0TCL_CLEAR_COLOR(x)                                                               (0x00000d80+((x)*4))
 +#define  NVC0TCL_CLEAR_COLOR__SIZE                                                    0x00000004
 +#define  NVC0TCL_CLEAR_DEPTH                                                          0x00000d90
 +#define  NVC0TCL_STACK_ADDRESS_HIGH                                                   0x00000d94
 +#define  NVC0TCL_STACK_ADDRESS_LOW                                                    0x00000d98
 +#define  NVC0TCL_STACK_SIZE_LOG                                                               0x00000d9c
 +#define  NVC0TCL_CLEAR_STENCIL                                                                0x00000da0
 +#define  NVC0TCL_POLYGON_SMOOTH_ENABLE                                                        0x00000db4
 +#define  NVC0TCL_POLYGON_OFFSET_POINT_ENABLE                                          0x00000dc0
 +#define  NVC0TCL_POLYGON_OFFSET_LINE_ENABLE                                           0x00000dc4
 +#define  NVC0TCL_POLYGON_OFFSET_FILL_ENABLE                                           0x00000dc8
 +#define  NVC0TCL_PATCH_VERTICES                                                               0x00000dcc
 +#define  NVC0TCL_WATCHDOG_TIMER                                                               0x00000de4
 +#define  NVC0TCL_WINDOW_OFFSET_X                                                      0x00000df8
 +#define  NVC0TCL_WINDOW_OFFSET_Y                                                      0x00000dfc
 +#define  NVC0TCL_SCISSOR_ENABLE(x)                                                    (0x00000e00+((x)*16))
 +#define  NVC0TCL_SCISSOR_ENABLE__SIZE                                                 0x00000010
 +#define  NVC0TCL_SCISSOR_HORIZ(x)                                                     (0x00000e04+((x)*16))
 +#define  NVC0TCL_SCISSOR_HORIZ__SIZE                                                  0x00000010
 +#define   NVC0TCL_SCISSOR_HORIZ_MIN_SHIFT                                             0
 +#define   NVC0TCL_SCISSOR_HORIZ_MIN_MASK                                              0x0000ffff
 +#define   NVC0TCL_SCISSOR_HORIZ_MAX_SHIFT                                             16
 +#define   NVC0TCL_SCISSOR_HORIZ_MAX_MASK                                              0xffff0000
 +#define  NVC0TCL_SCISSOR_VERT(x)                                                      (0x00000e08+((x)*16))
 +#define  NVC0TCL_SCISSOR_VERT__SIZE                                                   0x00000010
 +#define   NVC0TCL_SCISSOR_VERT_MIN_SHIFT                                              0
 +#define   NVC0TCL_SCISSOR_VERT_MIN_MASK                                                       0x0000ffff
 +#define   NVC0TCL_SCISSOR_VERT_MAX_SHIFT                                              16
 +#define   NVC0TCL_SCISSOR_VERT_MAX_MASK                                                       0xffff0000
 +#define  NVC0TCL_LOCAL_WARPS_LOG_ALLOC                                                        0x00000f44
 +#define  NVC0TCL_LOCAL_WARPS_NO_CLAMP                                                 0x00000f48
 +#define  NVC0TCL_STACK_WARPS_LOG_ALLOC                                                        0x00000f4c
 +#define  NVC0TCL_STACK_WARPS_NO_CLAMP                                                 0x00000f50
 +#define  NVC0TCL_STENCIL_BACK_FUNC_REF                                                        0x00000f54
 +#define  NVC0TCL_STENCIL_BACK_MASK                                                    0x00000f58
 +#define  NVC0TCL_STENCIL_BACK_FUNC_MASK                                                       0x00000f5c
 +#define  NVC0TCL_VERTEX_RUNOUT_HIGH                                                   0x00000f84
 +#define  NVC0TCL_VERTEX_RUNOUT_LOW                                                    0x00000f88
 +#define  NVC0TCL_DEPTH_BOUNDS(x)                                                      (0x00000f9c+((x)*4))
 +#define  NVC0TCL_DEPTH_BOUNDS__SIZE                                                   0x00000002
 +#define  NVC0TCL_MSAA_MASK(x)                                                         (0x00000fbc+((x)*4))
 +#define  NVC0TCL_MSAA_MASK__SIZE                                                      0x00000004
 +#define  NVC0TCL_CLIPID_ADDRESS_HIGH                                                  0x00000fcc
 +#define  NVC0TCL_CLIPID_ADDRESS_LOW                                                   0x00000fd0
 +#define  NVC0TCL_ZETA_ADDRESS_HIGH                                                    0x00000fe0
 +#define  NVC0TCL_ZETA_ADDRESS_LOW                                                     0x00000fe4
 +#define  NVC0TCL_ZETA_FORMAT                                                          0x00000fe8
 +#define   NVC0TCL_ZETA_FORMAT_Z32_FLOAT                                                       0x0000000a
 +#define   NVC0TCL_ZETA_FORMAT_Z16_UNORM                                                       0x00000013
 +#define   NVC0TCL_ZETA_FORMAT_Z24S8_UNORM                                             0x00000014
 +#define   NVC0TCL_ZETA_FORMAT_X8Z24_UNORM                                             0x00000015
 +#define   NVC0TCL_ZETA_FORMAT_S8Z24_UNORM                                             0x00000016
 +#define   NVC0TCL_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM                                   0x00000019
 +#define  NVC0TCL_ZETA_TILE_MODE                                                               0x00000fec
 +#define  NVC0TCL_ZETA_LAYER_STRIDE                                                    0x00000ff0
 +#define  NVC0TCL_SCREEN_SCISSOR_HORIZ                                                 0x00000ff4
 +#define   NVC0TCL_SCREEN_SCISSOR_HORIZ_W_SHIFT                                                16
 +#define   NVC0TCL_SCREEN_SCISSOR_HORIZ_W_MASK                                         0xffff0000
 +#define   NVC0TCL_SCREEN_SCISSOR_HORIZ_X_SHIFT                                                0
 +#define   NVC0TCL_SCREEN_SCISSOR_HORIZ_X_MASK                                         0x0000ffff
 +#define  NVC0TCL_SCREEN_SCISSOR_VERT                                                  0x00000ff8
 +#define   NVC0TCL_SCREEN_SCISSOR_VERT_H_SHIFT                                         16
 +#define   NVC0TCL_SCREEN_SCISSOR_VERT_H_MASK                                          0xffff0000
 +#define   NVC0TCL_SCREEN_SCISSOR_VERT_Y_SHIFT                                         0
 +#define   NVC0TCL_SCREEN_SCISSOR_VERT_Y_MASK                                          0x0000ffff
 +#define  NVC0TCL_VTX_ATTR_DEFINE                                                      0x0000114c
 +#define   NVC0TCL_VTX_ATTR_DEFINE_ATTR_SHIFT                                          0
 +#define   NVC0TCL_VTX_ATTR_DEFINE_ATTR_MASK                                           0x0000003f
 +#define   NVC0TCL_VTX_ATTR_DEFINE_COMP_SHIFT                                          8
 +#define   NVC0TCL_VTX_ATTR_DEFINE_COMP_MASK                                           0x00000f00
 +#define   NVC0TCL_VTX_ATTR_DEFINE_SIZE_SHIFT                                          12
 +#define   NVC0TCL_VTX_ATTR_DEFINE_SIZE_MASK                                           0x0000f000
 +#define   NVC0TCL_VTX_ATTR_DEFINE_TYPE_SHIFT                                          16
 +#define   NVC0TCL_VTX_ATTR_DEFINE_TYPE_MASK                                           0x000f0000
 +#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_FLOAT                                         0x00070000
 +#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_SNORM                                         0x00010000
 +#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_UNORM                                         0x00020000
 +#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_USCALED                                               0x00050000
 +#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_SSCALED                                               0x00060000
 +#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_UINT                                          0x00040000
 +#define    NVC0TCL_VTX_ATTR_DEFINE_TYPE_SINT                                          0x00030000
 +#define  NVC0TCL_VTX_ATTR_DATA(x)                                                     (0x00001150+((x)*4))
 +#define  NVC0TCL_VTX_ATTR_DATA__SIZE                                                  0x00000004
 +#define  NVC0TCL_VERTEX_ATTRIB_FORMAT(x)                                              (0x00001160+((x)*4))
 +#define  NVC0TCL_VERTEX_ATTRIB_FORMAT__SIZE                                           0x00000020
 +#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_BUFFER_SHIFT                                   0
 +#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_BUFFER_MASK                                    0x0000003f
 +#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_CONST                                          (1 <<  6)
 +#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_OFFSET_SHIFT                                   7
 +#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_OFFSET_MASK                                    0x001fff80
 +#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_SHIFT                                   21
 +#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_MASK                                    0x07e00000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32_32_32_32                            0x00200000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32_32_32                                       0x00400000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16_16_16_16                            0x00600000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32_32                                  0x00800000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16_16_16                                       0x00a00000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8_8_8_8                                        0x01400000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16_16                                  0x01e00000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32                                     0x02400000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8_8_8                                  0x02600000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8_8                                    0x03000000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16                                     0x03600000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8                                      0x03a00000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_2_10_10_10                             0x06000000
 +#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SHIFT                                     27
 +#define   NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_MASK                                      0x78000000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_FLOAT                                    0x38000000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SNORM                                    0x08000000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_UNORM                                    0x10000000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_USCALED                                  0x28000000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SSCALED                                  0x30000000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_UINT                                     0x20000000
 +#define    NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SINT                                     0x18000000
 +#define  NVC0TCL_RT_CONTROL                                                           0x0000121c
 +#define   NVC0TCL_RT_CONTROL_COUNT_SHIFT                                              0
 +#define   NVC0TCL_RT_CONTROL_COUNT_MASK                                                       0x0000000f
 +#define   NVC0TCL_RT_CONTROL_MAP0_SHIFT                                                       4
 +#define   NVC0TCL_RT_CONTROL_MAP0_MASK                                                        0x00000070
 +#define   NVC0TCL_RT_CONTROL_MAP1_SHIFT                                                       7
 +#define   NVC0TCL_RT_CONTROL_MAP1_MASK                                                        0x00000380
 +#define   NVC0TCL_RT_CONTROL_MAP2_SHIFT                                                       10
 +#define   NVC0TCL_RT_CONTROL_MAP2_MASK                                                        0x00001c00
 +#define   NVC0TCL_RT_CONTROL_MAP3_SHIFT                                                       13
 +#define   NVC0TCL_RT_CONTROL_MAP3_MASK                                                        0x0000e000
 +#define   NVC0TCL_RT_CONTROL_MAP4_SHIFT                                                       16
 +#define   NVC0TCL_RT_CONTROL_MAP4_MASK                                                        0x00070000
 +#define   NVC0TCL_RT_CONTROL_MAP5_SHIFT                                                       19
 +#define   NVC0TCL_RT_CONTROL_MAP5_MASK                                                        0x00380000
 +#define   NVC0TCL_RT_CONTROL_MAP6_SHIFT                                                       22
 +#define   NVC0TCL_RT_CONTROL_MAP6_MASK                                                        0x01c00000
 +#define   NVC0TCL_RT_CONTROL_MAP7_SHIFT                                                       25
 +#define   NVC0TCL_RT_CONTROL_MAP7_MASK                                                        0x0e000000
 +#define  NVC0TCL_ZETA_HORIZ                                                           0x00001228
 +#define  NVC0TCL_ZETA_VERT                                                            0x0000122c
 +#define  NVC0TCL_ZETA_ARRAY_MODE                                                      0x00001230
 +#define   NVC0TCL_ZETA_ARRAY_MODE_LAYERS_SHIFT                                                0
 +#define   NVC0TCL_ZETA_ARRAY_MODE_LAYERS_MASK                                         0x0000ffff
 +#define   NVC0TCL_ZETA_ARRAY_MODE_UNK                                                 (1 << 16)
 +#define  NVC0TCL_LINKED_TSC                                                           0x00001234
 +#define  NVC0TCL_FP_RESULT_COUNT                                                      0x00001298
 +#define  NVC0TCL_DEPTH_TEST_ENABLE                                                    0x000012cc
 +#define  NVC0TCL_SHADE_MODEL                                                          0x000012d4
 +#define   NVC0TCL_SHADE_MODEL_FLAT                                                    0x00001d00
 +#define   NVC0TCL_SHADE_MODEL_SMOOTH                                                  0x00001d01
 +#define  NVC0TCL_BLEND_INDEPENDENT                                                    0x000012e4
 +#define  NVC0TCL_DEPTH_WRITE_ENABLE                                                   0x000012e8
 +#define  NVC0TCL_ALPHA_TEST_ENABLE                                                    0x000012ec
 +#define  NVC0TCL_PM_SET(x)                                                            (0x000012f0+((x)*4))
 +#define  NVC0TCL_PM_SET__SIZE                                                         0x00000004
 +#define  NVC0TCL_VB_ELEMENT_U8_SETUP                                                  0x00001300
 +#define   NVC0TCL_VB_ELEMENT_U8_SETUP_OFFSET_SHIFT                                    30
 +#define   NVC0TCL_VB_ELEMENT_U8_SETUP_OFFSET_MASK                                     0xc0000000
 +#define   NVC0TCL_VB_ELEMENT_U8_SETUP_COUNT_SHIFT                                     0
 +#define   NVC0TCL_VB_ELEMENT_U8_SETUP_COUNT_MASK                                      0x3fffffff
 +#define  NVC0TCL_VB_ELEMENT_U8                                                                0x00001304
 +#define   NVC0TCL_VB_ELEMENT_U8_I0_SHIFT                                              0
 +#define   NVC0TCL_VB_ELEMENT_U8_I0_MASK                                                       0x000000ff
 +#define   NVC0TCL_VB_ELEMENT_U8_I1_SHIFT                                              8
 +#define   NVC0TCL_VB_ELEMENT_U8_I1_MASK                                                       0x0000ff00
 +#define   NVC0TCL_VB_ELEMENT_U8_I2_SHIFT                                              16
 +#define   NVC0TCL_VB_ELEMENT_U8_I2_MASK                                                       0x00ff0000
 +#define   NVC0TCL_VB_ELEMENT_U8_I3_SHIFT                                              24
 +#define   NVC0TCL_VB_ELEMENT_U8_I3_MASK                                                       0xff000000
 +#define  NVC0TCL_DEPTH_TEST_FUNC                                                      0x0000130c
 +#define   NVC0TCL_DEPTH_TEST_FUNC_NEVER                                                       0x00000200
 +#define   NVC0TCL_DEPTH_TEST_FUNC_LESS                                                        0x00000201
 +#define   NVC0TCL_DEPTH_TEST_FUNC_EQUAL                                                       0x00000202
 +#define   NVC0TCL_DEPTH_TEST_FUNC_LEQUAL                                              0x00000203
 +#define   NVC0TCL_DEPTH_TEST_FUNC_GREATER                                             0x00000204
 +#define   NVC0TCL_DEPTH_TEST_FUNC_NOTEQUAL                                            0x00000205
 +#define   NVC0TCL_DEPTH_TEST_FUNC_GEQUAL                                              0x00000206
 +#define   NVC0TCL_DEPTH_TEST_FUNC_ALWAYS                                              0x00000207
 +#define  NVC0TCL_ALPHA_TEST_REF                                                               0x00001310
 +#define  NVC0TCL_ALPHA_TEST_FUNC                                                      0x00001314
 +#define   NVC0TCL_ALPHA_TEST_FUNC_NEVER                                                       0x00000200
 +#define   NVC0TCL_ALPHA_TEST_FUNC_LESS                                                        0x00000201
 +#define   NVC0TCL_ALPHA_TEST_FUNC_EQUAL                                                       0x00000202
 +#define   NVC0TCL_ALPHA_TEST_FUNC_LEQUAL                                              0x00000203
 +#define   NVC0TCL_ALPHA_TEST_FUNC_GREATER                                             0x00000204
 +#define   NVC0TCL_ALPHA_TEST_FUNC_NOTEQUAL                                            0x00000205
 +#define   NVC0TCL_ALPHA_TEST_FUNC_GEQUAL                                              0x00000206
 +#define   NVC0TCL_ALPHA_TEST_FUNC_ALWAYS                                              0x00000207
 +#define  NVC0TCL_BLEND_COLOR(x)                                                               (0x0000131c+((x)*4))
 +#define  NVC0TCL_BLEND_COLOR__SIZE                                                    0x00000004
 +#define  NVC0TCL_TIC_FLUSH                                                            0x00001330
 +#define  NVC0TCL_TSC_FLUSH                                                            0x00001334
 +#define  NVC0TCL_TEX_CACHE_CTL                                                                0x00001338
 +#define  NVC0TCL_BLEND_EQUATION_RGB                                                   0x00001340
 +#define   NVC0TCL_BLEND_EQUATION_RGB_FUNC_ADD                                         0x00008006
 +#define   NVC0TCL_BLEND_EQUATION_RGB_MIN                                              0x00008007
 +#define   NVC0TCL_BLEND_EQUATION_RGB_MAX                                              0x00008008
 +#define   NVC0TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT                                    0x0000800a
 +#define   NVC0TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT                            0x0000800b
 +#define  NVC0TCL_BLEND_FUNC_SRC_RGB                                                   0x00001344
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ZERO                                             0x00004000
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE                                              0x00004001
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR                                                0x00004300
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR                              0x00004301
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA                                                0x00004302
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA                              0x00004303
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA                                                0x00004304
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA                              0x00004305
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_DST_COLOR                                                0x00004306
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR                              0x00004307
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE                                       0x00004308
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR                                   0x0000c001
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR                         0x0000c002
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA                                   0x0000c003
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA                         0x0000c004
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_SRC1_COLOR                                               0x0000c900
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_COLOR                             0x0000c901
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_SRC1_ALPHA                                               0x0000c902
 +#define   NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_ALPHA                             0x0000c903
 +#define  NVC0TCL_BLEND_FUNC_DST_RGB                                                   0x00001348
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_ZERO                                             0x00004000
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE                                              0x00004001
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_SRC_COLOR                                                0x00004300
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR                              0x00004301
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA                                                0x00004302
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA                              0x00004303
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_DST_ALPHA                                                0x00004304
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA                              0x00004305
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_DST_COLOR                                                0x00004306
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR                              0x00004307
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE                                       0x00004308
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR                                   0x0000c001
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR                         0x0000c002
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA                                   0x0000c003
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA                         0x0000c004
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_SRC1_COLOR                                               0x0000c900
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_COLOR                             0x0000c901
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_SRC1_ALPHA                                               0x0000c902
 +#define   NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_ALPHA                             0x0000c903
 +#define  NVC0TCL_BLEND_EQUATION_ALPHA                                                 0x0000134c
 +#define   NVC0TCL_BLEND_EQUATION_ALPHA_FUNC_ADD                                               0x00008006
 +#define   NVC0TCL_BLEND_EQUATION_ALPHA_MIN                                            0x00008007
 +#define   NVC0TCL_BLEND_EQUATION_ALPHA_MAX                                            0x00008008
 +#define   NVC0TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT                                  0x0000800a
 +#define   NVC0TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT                          0x0000800b
 +#define  NVC0TCL_BLEND_FUNC_SRC_ALPHA                                                 0x00001350
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ZERO                                           0x00004000
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE                                            0x00004001
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR                                      0x00004300
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR                            0x00004301
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA                                      0x00004302
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA                            0x00004303
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA                                      0x00004304
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA                            0x00004305
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR                                      0x00004306
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR                            0x00004307
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE                             0x00004308
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR                                 0x0000c001
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR                               0x0000c002
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA                                 0x0000c003
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA                               0x0000c004
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC1_COLOR                                     0x0000c900
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_COLOR                           0x0000c901
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC1_ALPHA                                     0x0000c902
 +#define   NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_ALPHA                           0x0000c903
 +#define  NVC0TCL_BLEND_FUNC_DST_ALPHA                                                 0x00001358
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ZERO                                           0x00004000
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE                                            0x00004001
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR                                      0x00004300
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR                            0x00004301
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA                                      0x00004302
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA                            0x00004303
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA                                      0x00004304
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA                            0x00004305
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR                                      0x00004306
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR                            0x00004307
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE                             0x00004308
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR                                 0x0000c001
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR                               0x0000c002
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA                                 0x0000c003
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA                               0x0000c004
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC1_COLOR                                     0x0000c900
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_COLOR                           0x0000c901
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC1_ALPHA                                     0x0000c902
 +#define   NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_ALPHA                           0x0000c903
 +#define  NVC0TCL_STENCIL_ENABLE                                                               0x00001380
 +#define  NVC0TCL_STENCIL_FRONT_OP_FAIL                                                        0x00001384
 +#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_ZERO                                          0x00000000
 +#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_INVERT                                                0x0000150a
 +#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_KEEP                                          0x00001e00
 +#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_REPLACE                                               0x00001e01
 +#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_INCR                                          0x00001e02
 +#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_DECR                                          0x00001e03
 +#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP                                     0x00008507
 +#define   NVC0TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP                                     0x00008508
 +#define  NVC0TCL_STENCIL_FRONT_OP_ZFAIL                                                       0x00001388
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_ZERO                                         0x00000000
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_INVERT                                               0x0000150a
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_KEEP                                         0x00001e00
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE                                      0x00001e01
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_INCR                                         0x00001e02
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_DECR                                         0x00001e03
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP                                    0x00008507
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP                                    0x00008508
 +#define  NVC0TCL_STENCIL_FRONT_OP_ZPASS                                                       0x0000138c
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_ZERO                                         0x00000000
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_INVERT                                               0x0000150a
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_KEEP                                         0x00001e00
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_REPLACE                                      0x00001e01
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_INCR                                         0x00001e02
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_DECR                                         0x00001e03
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP                                    0x00008507
 +#define   NVC0TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP                                    0x00008508
 +#define  NVC0TCL_STENCIL_FRONT_FUNC_FUNC                                              0x00001390
 +#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_NEVER                                               0x00000200
 +#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_LESS                                                0x00000201
 +#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL                                               0x00000202
 +#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL                                      0x00000203
 +#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                     0x00000204
 +#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL                                    0x00000205
 +#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL                                      0x00000206
 +#define   NVC0TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS                                      0x00000207
 +#define  NVC0TCL_STENCIL_FRONT_FUNC_REF                                                       0x00001394
 +#define  NVC0TCL_STENCIL_FRONT_MASK                                                   0x00001398
 +#define  NVC0TCL_STENCIL_FRONT_FUNC_MASK                                              0x0000139c
 +#define  NVC0TCL_FRAG_COLOR_CLAMP_EN                                                  0x000013a8
 +#define  NVC0TCL_Y_ORIGIN_BOTTOM                                                      0x000013ac
 +#define  NVC0TCL_LINE_WIDTH(x)                                                                (0x000013b0+((x)*4))
 +#define  NVC0TCL_LINE_WIDTH__SIZE                                                     0x00000002
 +#define  NVC0TCL_POINT_COORD_REPLACE_MAP(x)                                           (0x000013c0+((x)*4))
 +#define  NVC0TCL_POINT_COORD_REPLACE_MAP__SIZE                                                0x00000008
 +#define  NVC0TCL_GP_VERTEX_OUTPUT_COUNT                                                       0x00001420
 +#define  NVC0TCL_FENCE                                                                        0x0000142c
 +#define  NVC0TCL_VB_ELEMENT_BASE                                                      0x00001434
 +#define  NVC0TCL_INSTANCE_BASE                                                                0x00001438
 +#define  NVC0TCL_CODE_CB_FLUSH                                                                0x00001440
 +#define  NVC0TCL_CLIPID_HEIGHT                                                                0x00001504
 +#define  NVC0TCL_VP_CLIP_DISTANCE_ENABLE                                              0x00001510
 +#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_0                                           (1 <<  0)
 +#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_1                                           (1 <<  1)
 +#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_2                                           (1 <<  2)
 +#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_3                                           (1 <<  3)
 +#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_4                                           (1 <<  4)
 +#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_5                                           (1 <<  5)
 +#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_6                                           (1 <<  6)
 +#define   NVC0TCL_VP_CLIP_DISTANCE_ENABLE_7                                           (1 <<  7)
 +#define  NVC0TCL_SAMPLECNT_ENABLE                                                     0x00001514
 +#define  NVC0TCL_POINT_SIZE                                                           0x00001518
 +#define  NVC0TCL_POINT_SPRITE_ENABLE                                                  0x00001520
 +#define  NVC0TCL_SAMPLECNT_RESET                                                      0x00001530
 +#define  NVC0TCL_MULTISAMPLE_ZETA_ENABLE                                              0x00001534
 +#define  NVC0TCL_ZETA_ENABLE                                                          0x00001538
 +#define  NVC0TCL_MULTISAMPLE_CTRL                                                     0x0000153c
 +#define   NVC0TCL_MULTISAMPLE_CTRL_ALPHA_TO_COVERAGE                                  (1 <<  0)
 +#define   NVC0TCL_MULTISAMPLE_CTRL_ALPHA_TO_ONE                                               (1 <<  4)
 +#define  NVC0TCL_NOPERSPECTIVE_BITMAP(x)                                              (0x00001540+((x)*4))
 +#define  NVC0TCL_NOPERSPECTIVE_BITMAP__SIZE                                           0x00000004
 +#define  NVC0TCL_COND_ADDRESS_HIGH                                                    0x00001550
 +#define  NVC0TCL_COND_ADDRESS_LOW                                                     0x00001554
 +#define  NVC0TCL_COND_MODE                                                            0x00001558
 +#define   NVC0TCL_COND_MODE_NEVER                                                     0x00000000
 +#define   NVC0TCL_COND_MODE_ALWAYS                                                    0x00000001
 +#define   NVC0TCL_COND_MODE_RES                                                               0x00000002
 +#define   NVC0TCL_COND_MODE_NOT_RES_AND_NOT_ID                                                0x00000003
 +#define   NVC0TCL_COND_MODE_RES_OR_ID                                                 0x00000004
 +#define  NVC0TCL_TSC_ADDRESS_HIGH                                                     0x0000155c
 +#define  NVC0TCL_TSC_ADDRESS_LOW                                                      0x00001560
 +#define  NVC0TCL_TSC_LIMIT                                                            0x00001564
 +#define  NVC0TCL_POLYGON_OFFSET_FACTOR                                                        0x0000156c
 +#define  NVC0TCL_LINE_SMOOTH_ENABLE                                                   0x00001570
 +#define  NVC0TCL_TIC_ADDRESS_HIGH                                                     0x00001574
 +#define  NVC0TCL_TIC_ADDRESS_LOW                                                      0x00001578
 +#define  NVC0TCL_TIC_LIMIT                                                            0x0000157c
 +#define  NVC0TCL_PM_CONTROL(x)                                                                (0x00001580+((x)*4))
 +#define  NVC0TCL_PM_CONTROL__SIZE                                                     0x00000004
 +#define   NVC0TCL_PM_CONTROL_UNK0                                                     (1 <<  0)
 +#define   NVC0TCL_PM_CONTROL_UNK1_SHIFT                                                       4
 +#define   NVC0TCL_PM_CONTROL_UNK1_MASK                                                        0x00000070
 +#define   NVC0TCL_PM_CONTROL_UNK2_SHIFT                                                       8
 +#define   NVC0TCL_PM_CONTROL_UNK2_MASK                                                        0xffffff00
 +#define  NVC0TCL_STENCIL_TWO_SIDE_ENABLE                                              0x00001594
 +#define  NVC0TCL_STENCIL_BACK_OP_FAIL                                                 0x00001598
 +#define   NVC0TCL_STENCIL_BACK_OP_FAIL_ZERO                                           0x00000000
 +#define   NVC0TCL_STENCIL_BACK_OP_FAIL_INVERT                                         0x0000150a
 +#define   NVC0TCL_STENCIL_BACK_OP_FAIL_KEEP                                           0x00001e00
 +#define   NVC0TCL_STENCIL_BACK_OP_FAIL_REPLACE                                                0x00001e01
 +#define   NVC0TCL_STENCIL_BACK_OP_FAIL_INCR                                           0x00001e02
 +#define   NVC0TCL_STENCIL_BACK_OP_FAIL_DECR                                           0x00001e03
 +#define   NVC0TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP                                      0x00008507
 +#define   NVC0TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP                                      0x00008508
 +#define  NVC0TCL_STENCIL_BACK_OP_ZFAIL                                                        0x0000159c
 +#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_ZERO                                          0x00000000
 +#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_INVERT                                                0x0000150a
 +#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_KEEP                                          0x00001e00
 +#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_REPLACE                                               0x00001e01
 +#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_INCR                                          0x00001e02
 +#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_DECR                                          0x00001e03
 +#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP                                     0x00008507
 +#define   NVC0TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP                                     0x00008508
 +#define  NVC0TCL_STENCIL_BACK_OP_ZPASS                                                        0x000015a0
 +#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_ZERO                                          0x00000000
 +#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_INVERT                                                0x0000150a
 +#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_KEEP                                          0x00001e00
 +#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_REPLACE                                               0x00001e01
 +#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_INCR                                          0x00001e02
 +#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_DECR                                          0x00001e03
 +#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP                                     0x00008507
 +#define   NVC0TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP                                     0x00008508
 +#define  NVC0TCL_STENCIL_BACK_FUNC_FUNC                                                       0x000015a4
 +#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_NEVER                                                0x00000200
 +#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_LESS                                         0x00000201
 +#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                                0x00000202
 +#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                               0x00000203
 +#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                      0x00000204
 +#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                     0x00000205
 +#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                               0x00000206
 +#define   NVC0TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                               0x00000207
 +#define  NVC0TCL_MULTISAMPLE_COLOR_ENABLE                                             0x000015b4
 +#define  NVC0TCL_FRAMEBUFFER_SRGB                                                     0x000015b8
 +#define  NVC0TCL_POLYGON_OFFSET_UNITS                                                 0x000015bc
 +#define  NVC0TCL_GP_BUILTIN_RESULT_EN                                                 0x000015cc
 +#define   NVC0TCL_GP_BUILTIN_RESULT_EN_VPORT                                          (1 <<  0)
 +#define   NVC0TCL_GP_BUILTIN_RESULT_EN_LAYER                                          (1 << 16)
 +#define  NVC0TCL_MULTISAMPLE_MODE                                                     0x000015d0
 +#define   NVC0TCL_MULTISAMPLE_MODE_1X                                                 0x00000000
 +#define   NVC0TCL_MULTISAMPLE_MODE_2XMS                                                       0x00000001
 +#define   NVC0TCL_MULTISAMPLE_MODE_4XMS                                                       0x00000002
 +#define   NVC0TCL_MULTISAMPLE_MODE_8XMS                                                       0x00000004
 +#define   NVC0TCL_MULTISAMPLE_MODE_4XMS_4XCS                                          0x00000008
 +#define   NVC0TCL_MULTISAMPLE_MODE_4XMS_12XCS                                         0x00000009
 +#define   NVC0TCL_MULTISAMPLE_MODE_8XMS_8XCS                                          0x0000000a
 +#define  NVC0TCL_EDGEFLAG_ENABLE                                                      0x000015e4
 +#define  NVC0TCL_VB_ELEMENT_U32                                                               0x000015e8
 +#define  NVC0TCL_VB_ELEMENT_U16_SETUP                                                 0x000015ec
 +#define   NVC0TCL_VB_ELEMENT_U16_SETUP_OFFSET_SHIFT                                   30
 +#define   NVC0TCL_VB_ELEMENT_U16_SETUP_OFFSET_MASK                                    0xc0000000
 +#define   NVC0TCL_VB_ELEMENT_U16_SETUP_COUNT_SHIFT                                    0
 +#define   NVC0TCL_VB_ELEMENT_U16_SETUP_COUNT_MASK                                     0x3fffffff
 +#define  NVC0TCL_VB_ELEMENT_U16                                                               0x000015f0
 +#define   NVC0TCL_VB_ELEMENT_U16_I0_SHIFT                                             0
 +#define   NVC0TCL_VB_ELEMENT_U16_I0_MASK                                              0x0000ffff
 +#define   NVC0TCL_VB_ELEMENT_U16_I1_SHIFT                                             16
 +#define   NVC0TCL_VB_ELEMENT_U16_I1_MASK                                              0xffff0000
 +#define  NVC0TCL_VERTEX_BASE_HIGH                                                     0x000015f4
 +#define  NVC0TCL_VERTEX_BASE_LOW                                                      0x000015f8
 +#define  NVC0TCL_CODE_ADDRESS_HIGH                                                    0x00001608
 +#define  NVC0TCL_CODE_ADDRESS_LOW                                                     0x0000160c
 +#define  NVC0TCL_VERTEX_BEGIN                                                         0x00001618
 +#define   NVC0TCL_VERTEX_BEGIN_MODE_SHIFT                                             0
 +#define   NVC0TCL_VERTEX_BEGIN_MODE_MASK                                              0x0000000f
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_POINTS                                           0x00000000
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_LINES                                            0x00000001
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_LINE_LOOP                                                0x00000002
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_LINE_STRIP                                               0x00000003
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLES                                                0x00000004
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLE_STRIP                                   0x00000005
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLE_FAN                                     0x00000006
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_QUADS                                            0x00000007
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_QUAD_STRIP                                               0x00000008
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_POLYGON                                          0x00000009
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_LINES_ADJACENCY                                  0x0000000a
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_LINE_STRIP_ADJACENCY                             0x0000000b
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLES_ADJACENCY                              0x0000000c
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLE_STRIP_ADJACENCY                         0x0000000d
 +#define    NVC0TCL_VERTEX_BEGIN_MODE_PATCHES                                          0x0000000e
 +#define   NVC0TCL_VERTEX_BEGIN_INSTANCE                                                       (1 << 26)
 +#define  NVC0TCL_VERTEX_END                                                           0x00001614
 +#define  NVC0TCL_VERTEX_DATA                                                          0x00001640
 +#define  NVC0TCL_PRIM_RESTART_ENABLE                                                  0x00001644
 +#define  NVC0TCL_PRIM_RESTART_INDEX                                                   0x00001648
 +#define  NVC0TCL_POINT_SMOOTH_ENABLE                                                  0x00001658
 +#define  NVC0TCL_POINT_SPRITE_CTRL                                                    0x00001660
 +#define  NVC0TCL_LINE_STIPPLE_ENABLE                                                  0x0000166c
 +#define  NVC0TCL_LINE_STIPPLE_PATTERN                                                 0x00001680
 +#define  NVC0TCL_PROVOKING_VERTEX_LAST                                                        0x00001684
 +#define  NVC0TCL_VERTEX_TWO_SIDE_ENABLE                                                       0x00001688
 +#define  NVC0TCL_POLYGON_STIPPLE_ENABLE                                                       0x0000168c
 +#define  NVC0TCL_POLYGON_STIPPLE_PATTERN(x)                                           (0x00001700+((x)*4))
 +#define  NVC0TCL_POLYGON_STIPPLE_PATTERN__SIZE                                                0x00000020
 +#define  NVC0TCL_UNK17BC_ADDRESS_HIGH                                                 0x000017bc
 +#define  NVC0TCL_UNK17BC_ADDRESS_LOW                                                  0x000017c0
 +#define  NVC0TCL_UNK17BC_LIMIT                                                                0x000017c4
 +#define  NVC0TCL_VP_POINT_SIZE_EN                                                     0x00001910
 +#define  NVC0TCL_CULL_FACE_ENABLE                                                     0x00001918
 +#define  NVC0TCL_FRONT_FACE                                                           0x0000191c
 +#define   NVC0TCL_FRONT_FACE_CW                                                               0x00000900
 +#define   NVC0TCL_FRONT_FACE_CCW                                                      0x00000901
 +#define  NVC0TCL_CULL_FACE                                                            0x00001920
 +#define   NVC0TCL_CULL_FACE_FRONT                                                     0x00000404
 +#define   NVC0TCL_CULL_FACE_BACK                                                      0x00000405
 +#define   NVC0TCL_CULL_FACE_FRONT_AND_BACK                                            0x00000408
 +#define  NVC0TCL_VIEWPORT_TRANSFORM_EN                                                        0x0000192c
 +#define  NVC0TCL_VIEW_VOLUME_CLIP_CTRL                                                        0x0000193c
 +#define  NVC0TCL_VIEWPORT_CLIP_RECTS_EN                                                       0x0000194c
 +#define  NVC0TCL_VIEWPORT_CLIP_MODE                                                   0x00001950
 +#define   NVC0TCL_VIEWPORT_CLIP_MODE_INCLUDE                                          0x00000000
 +#define   NVC0TCL_VIEWPORT_CLIP_MODE_EXCLUDE                                          0x00000001
 +#define   NVC0TCL_VIEWPORT_CLIP_MODE_UNKNOWN                                          0x00000002
 +#define  NVC0TCL_FP_ZORDER_CTRL                                                               0x0000196c
 +#define  NVC0TCL_CLIPID_ENABLE                                                                0x0000197c
 +#define  NVC0TCL_CLIPID_WIDTH                                                         0x00001980
 +#define  NVC0TCL_CLIPID_ID                                                            0x00001984
 +#define  NVC0TCL_REG_MODE                                                             0x000019a0
 +#define   NVC0TCL_REG_MODE_PACKED                                                     0x00000001
 +#define   NVC0TCL_REG_MODE_STRIPED                                                    0x00000002
 +#define  NVC0TCL_FP_CONTROL                                                           0x000019a8
 +#define   NVC0TCL_FP_CONTROL_MULTIPLE_RESULTS                                         (1 <<  0)
 +#define   NVC0TCL_FP_CONTROL_EXPORTS_Z                                                        (1 <<  8)
 +#define   NVC0TCL_FP_CONTROL_USES_KIL                                                 (1 << 20)
 +#define  NVC0TCL_DEPTH_BOUNDS_EN                                                      0x000019bc
 +#define  NVC0TCL_LOGIC_OP_ENABLE                                                      0x000019c4
 +#define  NVC0TCL_LOGIC_OP                                                             0x000019c8
 +#define   NVC0TCL_LOGIC_OP_CLEAR                                                      0x00001500
 +#define   NVC0TCL_LOGIC_OP_AND                                                                0x00001501
 +#define   NVC0TCL_LOGIC_OP_AND_REVERSE                                                        0x00001502
 +#define   NVC0TCL_LOGIC_OP_COPY                                                               0x00001503
 +#define   NVC0TCL_LOGIC_OP_AND_INVERTED                                                       0x00001504
 +#define   NVC0TCL_LOGIC_OP_NOOP                                                               0x00001505
 +#define   NVC0TCL_LOGIC_OP_XOR                                                                0x00001506
 +#define   NVC0TCL_LOGIC_OP_OR                                                         0x00001507
 +#define   NVC0TCL_LOGIC_OP_NOR                                                                0x00001508
 +#define   NVC0TCL_LOGIC_OP_EQUIV                                                      0x00001509
 +#define   NVC0TCL_LOGIC_OP_INVERT                                                     0x0000150a
 +#define   NVC0TCL_LOGIC_OP_OR_REVERSE                                                 0x0000150b
 +#define   NVC0TCL_LOGIC_OP_COPY_INVERTED                                              0x0000150c
 +#define   NVC0TCL_LOGIC_OP_OR_INVERTED                                                        0x0000150d
 +#define   NVC0TCL_LOGIC_OP_NAND                                                               0x0000150e
 +#define   NVC0TCL_LOGIC_OP_SET                                                                0x0000150f
 +#define  NVC0TCL_CLEAR_BUFFERS                                                                0x000019d0
 +#define   NVC0TCL_CLEAR_BUFFERS_Z                                                     (1 <<  0)
 +#define   NVC0TCL_CLEAR_BUFFERS_S                                                     (1 <<  1)
 +#define   NVC0TCL_CLEAR_BUFFERS_R                                                     (1 <<  2)
 +#define   NVC0TCL_CLEAR_BUFFERS_G                                                     (1 <<  3)
 +#define   NVC0TCL_CLEAR_BUFFERS_B                                                     (1 <<  4)
 +#define   NVC0TCL_CLEAR_BUFFERS_A                                                     (1 <<  5)
 +#define   NVC0TCL_CLEAR_BUFFERS_RT_SHIFT                                              6
 +#define   NVC0TCL_CLEAR_BUFFERS_RT_MASK                                                       0x000003c0
 +#define   NVC0TCL_CLEAR_BUFFERS_LAYER_SHIFT                                           10
 +#define   NVC0TCL_CLEAR_BUFFERS_LAYER_MASK                                            0x0007fc00
 +#define  NVC0TCL_COLOR_MASK(x)                                                                (0x00001a00+((x)*4))
 +#define  NVC0TCL_COLOR_MASK__SIZE                                                     0x00000008
 +#define   NVC0TCL_COLOR_MASK_R_SHIFT                                                  0
 +#define   NVC0TCL_COLOR_MASK_R_MASK                                                   0x0000000f
 +#define   NVC0TCL_COLOR_MASK_G_SHIFT                                                  4
 +#define   NVC0TCL_COLOR_MASK_G_MASK                                                   0x000000f0
 +#define   NVC0TCL_COLOR_MASK_B_SHIFT                                                  8
 +#define   NVC0TCL_COLOR_MASK_B_MASK                                                   0x00000f00
 +#define   NVC0TCL_COLOR_MASK_A_SHIFT                                                  12
 +#define   NVC0TCL_COLOR_MASK_A_MASK                                                   0x0000f000
 +#define  NVC0TCL_QUERY_ADDRESS_HIGH                                                   0x00001b00
 +#define  NVC0TCL_QUERY_ADDRESS_LOW                                                    0x00001b04
 +#define  NVC0TCL_QUERY_SEQUENCE                                                               0x00001b08
 +#define  NVC0TCL_QUERY_GET                                                            0x00001b0c
 +#define  NVC0TCL_VERTEX_ARRAY_FETCH(x)                                                        (0x00001c00+((x)*16))
 +#define  NVC0TCL_VERTEX_ARRAY_FETCH__SIZE                                             0x00000020
 +#define   NVC0TCL_VERTEX_ARRAY_FETCH_STRIDE_SHIFT                                     0
 +#define   NVC0TCL_VERTEX_ARRAY_FETCH_STRIDE_MASK                                      0x00000fff
 +#define   NVC0TCL_VERTEX_ARRAY_FETCH_ENABLE                                           (1 << 12)
 +#define  NVC0TCL_BLEND_EQUATIONI_RGB(x)                                                       (0x00001e04+((x)*32))
 +#define  NVC0TCL_BLEND_EQUATIONI_RGB__SIZE                                            0x00000008
 +#define   NVC0TCL_BLEND_EQUATIONI_RGB_FUNC_ADD                                                0x00008006
 +#define   NVC0TCL_BLEND_EQUATIONI_RGB_MIN                                             0x00008007
 +#define   NVC0TCL_BLEND_EQUATIONI_RGB_MAX                                             0x00008008
 +#define   NVC0TCL_BLEND_EQUATIONI_RGB_FUNC_SUBTRACT                                   0x0000800a
 +#define   NVC0TCL_BLEND_EQUATIONI_RGB_FUNC_REVERSE_SUBTRACT                           0x0000800b
 +#define  NVC0TCL_BLEND_FUNCI_SRC_RGB(x)                                                       (0x00001e08+((x)*32))
 +#define  NVC0TCL_BLEND_FUNCI_SRC_RGB__SIZE                                            0x00000008
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ZERO                                            0x00004000
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE                                             0x00004001
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC_COLOR                                               0x00004300
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC_COLOR                             0x00004301
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC_ALPHA                                               0x00004302
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC_ALPHA                             0x00004303
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_DST_ALPHA                                               0x00004304
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_DST_ALPHA                             0x00004305
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_DST_COLOR                                               0x00004306
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_DST_COLOR                             0x00004307
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC_ALPHA_SATURATE                              0x00004308
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_CONSTANT_COLOR                                  0x0000c001
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_CONSTANT_COLOR                                0x0000c002
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_CONSTANT_ALPHA                                  0x0000c003
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA                                0x0000c004
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC1_COLOR                                      0x0000c900
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC1_COLOR                            0x0000c901
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC1_ALPHA                                      0x0000c902
 +#define   NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC1_ALPHA                            0x0000c903
 +#define  NVC0TCL_BLEND_FUNCI_DST_RGB(x)                                                       (0x00001e0c+((x)*32))
 +#define  NVC0TCL_BLEND_FUNCI_DST_RGB__SIZE                                            0x00000008
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ZERO                                            0x00004000
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE                                             0x00004001
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_SRC_COLOR                                               0x00004300
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC_COLOR                             0x00004301
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_SRC_ALPHA                                               0x00004302
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC_ALPHA                             0x00004303
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_DST_ALPHA                                               0x00004304
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_DST_ALPHA                             0x00004305
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_DST_COLOR                                               0x00004306
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_DST_COLOR                             0x00004307
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_SRC_ALPHA_SATURATE                              0x00004308
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_CONSTANT_COLOR                                  0x0000c001
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_CONSTANT_COLOR                                0x0000c002
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_CONSTANT_ALPHA                                  0x0000c003
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_CONSTANT_ALPHA                                0x0000c004
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_SRC1_COLOR                                      0x0000c900
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC1_COLOR                            0x0000c901
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_SRC1_ALPHA                                      0x0000c902
 +#define   NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC1_ALPHA                            0x0000c903
 +#define  NVC0TCL_BLEND_EQUATIONI_ALPHA(x)                                             (0x00001e10+((x)*32))
 +#define  NVC0TCL_BLEND_EQUATIONI_ALPHA__SIZE                                          0x00000008
 +#define   NVC0TCL_BLEND_EQUATIONI_ALPHA_FUNC_ADD                                      0x00008006
 +#define   NVC0TCL_BLEND_EQUATIONI_ALPHA_MIN                                           0x00008007
 +#define   NVC0TCL_BLEND_EQUATIONI_ALPHA_MAX                                           0x00008008
 +#define   NVC0TCL_BLEND_EQUATIONI_ALPHA_FUNC_SUBTRACT                                 0x0000800a
 +#define   NVC0TCL_BLEND_EQUATIONI_ALPHA_FUNC_REVERSE_SUBTRACT                         0x0000800b
 +#define  NVC0TCL_BLEND_FUNCI_SRC_ALPHA(x)                                             (0x00001e14+((x)*32))
 +#define  NVC0TCL_BLEND_FUNCI_SRC_ALPHA__SIZE                                          0x00000008
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ZERO                                          0x00004000
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE                                           0x00004001
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC_COLOR                                     0x00004300
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC_COLOR                           0x00004301
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC_ALPHA                                     0x00004302
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC_ALPHA                           0x00004303
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_DST_ALPHA                                     0x00004304
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_DST_ALPHA                           0x00004305
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_DST_COLOR                                     0x00004306
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_DST_COLOR                           0x00004307
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC_ALPHA_SATURATE                            0x00004308
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_CONSTANT_COLOR                                        0x0000c001
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR                      0x0000c002
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_CONSTANT_ALPHA                                        0x0000c003
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA                      0x0000c004
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC1_COLOR                                    0x0000c900
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC1_COLOR                          0x0000c901
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC1_ALPHA                                    0x0000c902
 +#define   NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC1_ALPHA                          0x0000c903
 +#define  NVC0TCL_BLEND_FUNCI_DST_ALPHA(x)                                             (0x00001e18+((x)*32))
 +#define  NVC0TCL_BLEND_FUNCI_DST_ALPHA__SIZE                                          0x00000008
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ZERO                                          0x00004000
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE                                           0x00004001
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC_COLOR                                     0x00004300
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC_COLOR                           0x00004301
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC_ALPHA                                     0x00004302
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC_ALPHA                           0x00004303
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_DST_ALPHA                                     0x00004304
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_DST_ALPHA                           0x00004305
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_DST_COLOR                                     0x00004306
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_DST_COLOR                           0x00004307
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC_ALPHA_SATURATE                            0x00004308
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_CONSTANT_COLOR                                        0x0000c001
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR                      0x0000c002
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_CONSTANT_ALPHA                                        0x0000c003
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA                      0x0000c004
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC1_COLOR                                    0x0000c900
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC1_COLOR                          0x0000c901
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC1_ALPHA                                    0x0000c902
 +#define   NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC1_ALPHA                          0x0000c903
 +#define  NVC0TCL_SP_SELECT(x)                                                         (0x00002000+((x)*64))
 +#define  NVC0TCL_SP_SELECT__SIZE                                                      0x00000006
 +#define   NVC0TCL_SP_SELECT_ENABLE                                                    (1 <<  0)
 +#define   NVC0TCL_SP_SELECT_PROGRAM_SHIFT                                             4
 +#define   NVC0TCL_SP_SELECT_PROGRAM_MASK                                              0x000000f0
 +#define  NVC0TCL_SP_START_ID(x)                                                               (0x00002004+((x)*64))
 +#define  NVC0TCL_SP_START_ID__SIZE                                                    0x00000006
 +#define  NVC0TCL_SP_GPR_ALLOC(x)                                                      (0x0000200c+((x)*64))
 +#define  NVC0TCL_SP_GPR_ALLOC__SIZE                                                   0x00000006
 +#define  NVC0TCL_CB_SIZE                                                              0x00002380
 +#define  NVC0TCL_CB_BIND(x)                                                           (0x00002410+((x)*32))
 +#define  NVC0TCL_CB_BIND__SIZE                                                                0x00000005
 +#define   NVC0TCL_CB_BIND_VALID                                                               (1 <<  0)
 +#define   NVC0TCL_CB_BIND_INDEX_SHIFT                                                 4
 +#define   NVC0TCL_CB_BIND_INDEX_MASK                                                  0x000000f0
 +#define  NVC0TCL_BIND_TIC(x)                                                          (0x00002404+((x)*32))
 +#define  NVC0TCL_BIND_TIC__SIZE                                                               0x00000005
 +#define   NVC0TCL_BIND_TIC_ACTIVE                                                     (1 <<  0)
 +#define   NVC0TCL_BIND_TIC_TEXTURE_SHIFT                                              1
 +#define   NVC0TCL_BIND_TIC_TEXTURE_MASK                                                       0x000001fe
 +#define   NVC0TCL_BIND_TIC_TIC_SHIFT                                                  9
 +#define   NVC0TCL_BIND_TIC_TIC_MASK                                                   0x7ffffe00
 +#define  NVC0TCL_TEX_LIMITS(x)                                                                (0x00002200+((x)*16))
 +#define  NVC0TCL_TEX_LIMITS__SIZE                                                     0x00000005
 +#define   NVC0TCL_TEX_LIMITS_SAMPLERS_LOG2_SHIFT                                      0
 +#define   NVC0TCL_TEX_LIMITS_SAMPLERS_LOG2_MASK                                               0x0000000f
 +#define   NVC0TCL_TEX_LIMITS_TEXTURES_LOG2_SHIFT                                      4
 +#define   NVC0TCL_TEX_LIMITS_TEXTURES_LOG2_MASK                                               0x000000f0
 +#define  NVC0TCL_CB_ADDR_HIGH                                                         0x00002384
 +#define  NVC0TCL_CB_ADDR_LOW                                                          0x00002388
 +#define  NVC0TCL_CB_POS                                                                       0x0000238c
 +#define  NVC0TCL_CB_DATA(x)                                                           (0x00002390+((x)*4))
 +#define  NVC0TCL_CB_DATA__SIZE                                                                0x00000010
 +#define  NVC0TCL_TFB_VARYING_LOCS(x)                                                  (0x00002800+((x)*4))
 +#define  NVC0TCL_TFB_VARYING_LOCS__SIZE                                                       0x00000080
 +#define  NVC0TCL_UNK_UPLOAD_POS                                                               0x00003800
 +#define  NVC0TCL_UNK_UPLOAD_DATA                                                      0x00003804
 +#define  NVC0TCL_VERTEX_ARRAY_SELECT                                                  0x00003820
 +#define  NVC0TCL_VERTEX_ARRAY_ADDRESS                                                 0x00003824
 +#define  NVC0TCL_BLEND_ENABLEI                                                                0x00003858
 +#define  NVC0TCL_POLYGON_MODE_FRONT                                                   0x00003868
 +#define   NVC0TCL_POLYGON_MODE_FRONT_POINT                                            0x00001b00
 +#define   NVC0TCL_POLYGON_MODE_FRONT_LINE                                             0x00001b01
 +#define   NVC0TCL_POLYGON_MODE_FRONT_FILL                                             0x00001b02
 +#define  NVC0TCL_POLYGON_MODE_BACK                                                    0x00003870
 +#define   NVC0TCL_POLYGON_MODE_BACK_POINT                                             0x00001b00
 +#define   NVC0TCL_POLYGON_MODE_BACK_LINE                                              0x00001b01
 +#define   NVC0TCL_POLYGON_MODE_BACK_FILL                                              0x00001b02
 +#define  NVC0TCL_GP_SELECT                                                            0x00003878
 +#define   NVC0TCL_GP_SELECT_ENABLE                                                    (1 <<  0)
 +#define   NVC0TCL_GP_SELECT_PROGRAM_SHIFT                                             4
 +#define   NVC0TCL_GP_SELECT_PROGRAM_MASK                                              0x000000f0
 +#define  NVC0TCL_TEP_SELECT                                                           0x00003880
 +#define   NVC0TCL_TEP_SELECT_ENABLE                                                   (1 <<  0)
 +#define   NVC0TCL_TEP_SELECT_PROGRAM_SHIFT                                            4
 +#define   NVC0TCL_TEP_SELECT_PROGRAM_MASK                                             0x000000f0
 +
 +
 +#define NVC0_COMPUTE                                                                  0x000090c0
 +
 +#define  NVC0_COMPUTE_NOP                                                             0x00000100
 +#define  NVC0_COMPUTE_NOTIFY                                                          0x00000104
 +#define  NVC0_COMPUTE_SERIALIZE                                                               0x00000110
 +#define  NVC0_COMPUTE_LOCAL_SIZE                                                      0x00000204
 +#define  NVC0_COMPUTE_SHARED_BASE                                                     0x00000214
 +#define  NVC0_COMPUTE_GRIDDIM_YX                                                      0x00000238
 +#define   NVC0_COMPUTE_GRIDDIM_YX_X_SHIFT                                             0
 +#define   NVC0_COMPUTE_GRIDDIM_YX_X_MASK                                              0x0000ffff
 +#define   NVC0_COMPUTE_GRIDDIM_YX_Y_SHIFT                                             16
 +#define   NVC0_COMPUTE_GRIDDIM_YX_Y_MASK                                              0xffff0000
 +#define  NVC0_COMPUTE_GRIDDIM_Z                                                               0x0000023c
 +#define  NVC0_COMPUTE_SHARED_SIZE                                                     0x0000024c
 +#define  NVC0_COMPUTE_BLOCK_ALLOC                                                     0x00000250
 +#define   NVC0_COMPUTE_BLOCK_ALLOC_THREADS_SHIFT                                      0
 +#define   NVC0_COMPUTE_BLOCK_ALLOC_THREADS_MASK                                               0x0000ffff
 +#define   NVC0_COMPUTE_BLOCK_ALLOC_BARRIERS_SHIFT                                     16
 +#define   NVC0_COMPUTE_BLOCK_ALLOC_BARRIERS_MASK                                      0xffff0000
 +#define  NVC0_COMPUTE_CP_GPR_ALLOC                                                    0x000002c0
 +#define  NVC0_COMPUTE_GLOBAL_BASE                                                     0x000002c8
 +#define   NVC0_COMPUTE_GLOBAL_BASE_HIGH_SHIFT                                         0
 +#define   NVC0_COMPUTE_GLOBAL_BASE_HIGH_MASK                                          0x000000ff
 +#define   NVC0_COMPUTE_GLOBAL_BASE_INDEX_SHIFT                                                16
 +#define   NVC0_COMPUTE_GLOBAL_BASE_INDEX_MASK                                         0x00ff0000
 +#define   NVC0_COMPUTE_GLOBAL_BASE_FLAGS_SHIFT                                                28
 +#define   NVC0_COMPUTE_GLOBAL_BASE_FLAGS_MASK                                         0xf0000000
 +#define  NVC0_COMPUTE_LAUNCH                                                          0x00000368
 +#define  NVC0_COMPUTE_BLOCKDIM_YX                                                     0x000003ac
 +#define   NVC0_COMPUTE_BLOCKDIM_YX_X_SHIFT                                            0
 +#define   NVC0_COMPUTE_BLOCKDIM_YX_X_MASK                                             0x0000ffff
 +#define   NVC0_COMPUTE_BLOCKDIM_YX_Y_SHIFT                                            16
 +#define   NVC0_COMPUTE_BLOCKDIM_YX_Y_MASK                                             0xffff0000
 +#define  NVC0_COMPUTE_BLOCKDIM_Z                                                      0x000003b0
 +#define  NVC0_COMPUTE_CP_START_ID                                                     0x000003b4
 +#define  NVC0_COMPUTE_LOCAL_BASE                                                      0x0000077c
 +#define  NVC0_COMPUTE_UNK0790_ADDRESS_HIGH                                            0x00000790
 +#define  NVC0_COMPUTE_UNK0790_ADDRESS_LOW                                             0x00000794
 +#define  NVC0_COMPUTE_LINKED_TSC                                                      0x00001234
 +#define  NVC0_COMPUTE_TSC_ADDRESS_HIGH                                                        0x0000155c
 +#define  NVC0_COMPUTE_TSC_ADDRESS_LOW                                                 0x00001560
 +#define  NVC0_COMPUTE_TSC_LIMIT                                                               0x00001564
 +#define  NVC0_COMPUTE_TIC_ADDRESS_HIGH                                                        0x00001574
 +#define  NVC0_COMPUTE_TIC_ADDRESS_LOW                                                 0x00001578
 +#define  NVC0_COMPUTE_TIC_LIMIT                                                               0x0000157c
 +#define  NVC0_COMPUTE_CODE_ADDRESS_HIGH                                                       0x00001608
 +#define  NVC0_COMPUTE_CODE_ADDRESS_LOW                                                        0x0000160c
 +#define  NVC0_COMPUTE_CB_BIND                                                         0x00001694
 +#define   NVC0_COMPUTE_CB_BIND_INDEX_SHIFT                                            1
 +#define   NVC0_COMPUTE_CB_BIND_INDEX_MASK                                             0xfffffffe
 +#define   NVC0_COMPUTE_CB_BIND_VALID                                                  (1 <<  0)
 +#define  NVC0_COMPUTE_QUERY_ADDRESS_HIGH                                              0x00001b00
 +#define  NVC0_COMPUTE_QUERY_ADDRESS_LOW                                                       0x00001b04
 +#define  NVC0_COMPUTE_QUERY_SEQUENCE                                                  0x00001b08
 +#define  NVC0_COMPUTE_QUERY_GET                                                               0x00001b0c
 +#define  NVC0_COMPUTE_CB_ADDRESS_HIGH                                                 0x00002384
 +#define  NVC0_COMPUTE_CB_ADDRESS_LOW                                                  0x00002388
 +#define  NVC0_COMPUTE_CB_POS                                                          0x0000238c
 +#define  NVC0_COMPUTE_CB_DATA                                                         0x00002390
 +
 +
  #endif /* NOUVEAU_REG_H */
index 12b5ad106caaf4136574e1fdd0a73c5d72533552,c0f5cc10dd7d4dcf4743947191042f07cb4aff43..dd0e8fd41b1b4a238853bc1ab804770397106602
@@@ -159,9 -159,6 +159,9 @@@ nv50_miptree_create(struct pipe_screen 
        case PIPE_FORMAT_Z24_UNORM_S8_USCALED:
                tile_flags = 0x2800;
                break;
 +      case PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED:
 +              tile_flags = 0xe000;
 +              break;
        case PIPE_FORMAT_R32G32B32A32_FLOAT:
        case PIPE_FORMAT_R32G32B32_FLOAT:
                tile_flags = 0x7400;
@@@ -238,7 -235,8 +238,8 @@@ nv50_miptree_from_handle(struct pipe_sc
        unsigned stride;
  
        /* Only supports 2D, non-mipmapped textures for the moment */
-       if (template->target != PIPE_TEXTURE_2D ||
+       if ((template->target != PIPE_TEXTURE_2D &&
+             template->target != PIPE_TEXTURE_RECT) ||
            template->last_level != 0 ||
            template->depth0 != 1)
                return NULL;
index 0091927a9822c842b14b88133bdbf6012b81e343,57c0010bf4d214606b34e76f3accf4d4f5a48280..380f69406a27d8925d3be34e4fdda4bd89ac06b0
@@@ -108,8 -108,9 +108,9 @@@ emit_vertex(struct push_context *ctx, u
     int i;
  
     if (ctx->edgeflag_attr < 16) {
-       float *edgeflag = (uint8_t *)ctx->attr[ctx->edgeflag_attr].map +
-                         ctx->attr[ctx->edgeflag_attr].stride * n;
+       float *edgeflag = (float *)
+          ((uint8_t *)ctx->attr[ctx->edgeflag_attr].map +
+           ctx->attr[ctx->edgeflag_attr].stride * n);
  
        if (*edgeflag != ctx->edgeflag) {
           BEGIN_RING(chan, tesla, NV50TCL_EDGEFLAG_ENABLE, 1);
@@@ -227,7 -228,7 +228,7 @@@ nv50_push_elements_instanced(struct pip
     ctx.idxbuf = NULL;
     ctx.vtx_size = 0;
     ctx.edgeflag = 0.5f;
 -   ctx.edgeflag_attr = nv50->vertprog->cfg.edgeflag_in;
 +   ctx.edgeflag_attr = nv50->vertprog->vp.edgeflag;
  
     /* map vertex buffers, determine vertex size */
     for (i = 0; i < nv50->vtxelt->num_elements; i++) {
index 55358183703583c33da22c4f8ce157083e6d7cd6,d41d9c51029a3821ff23dd3fc3114f6d6ab6785a..658324ec5bebc1aba6c266c860b3b1971946e24b
  
  #include "util/u_format.h"
  
 -#define _MIXED(pf, t0, t1, t2, t3, cr, cg, cb, ca, f)         \
 -[PIPE_FORMAT_##pf] = (                                                \
 -      NV50TIC_0_0_MAPR_##cr | NV50TIC_0_0_TYPER_##t0 |        \
 -      NV50TIC_0_0_MAPG_##cg | NV50TIC_0_0_TYPEG_##t1 |        \
 -      NV50TIC_0_0_MAPB_##cb | NV50TIC_0_0_TYPEB_##t2 |        \
 -      NV50TIC_0_0_MAPA_##ca | NV50TIC_0_0_TYPEA_##t3 |        \
 -      NV50TIC_0_0_FMT_##f)
 -
 -#define _(pf, t, cr, cg, cb, ca, f) _MIXED(pf, t, t, t, t, cr, cg, cb, ca, f)
 -
 -static const uint32_t nv50_texture_formats[PIPE_FORMAT_COUNT] =
 -{
 -      _(B8G8R8A8_UNORM, UNORM, C2, C1, C0, C3,  8_8_8_8),
 -      _(B8G8R8A8_SRGB,  UNORM, C2, C1, C0, C3,  8_8_8_8),
 -      _(B8G8R8X8_UNORM, UNORM, C2, C1, C0, ONE, 8_8_8_8),
 -      _(B8G8R8X8_SRGB,  UNORM, C2, C1, C0, ONE, 8_8_8_8),
 -      _(B5G5R5A1_UNORM, UNORM, C2, C1, C0, C3,  1_5_5_5),
 -      _(B4G4R4A4_UNORM, UNORM, C2, C1, C0, C3,  4_4_4_4),
 -
 -      _(B5G6R5_UNORM, UNORM, C2, C1, C0, ONE, 5_6_5),
 -
 -      _(L8_UNORM, UNORM, C0, C0, C0, ONE, 8),
 -      _(L8_SRGB,  UNORM, C0, C0, C0, ONE, 8),
 -      _(A8_UNORM, UNORM, ZERO, ZERO, ZERO, C0, 8),
 -      _(I8_UNORM, UNORM, C0, C0, C0, C0, 8),
 -
 -      _(L8A8_UNORM, UNORM, C0, C0, C0, C1, 8_8),
 -      _(L8A8_SRGB,  UNORM, C0, C0, C0, C1, 8_8),
 -
 -      _(DXT1_RGB, UNORM, C0, C1, C2, ONE, DXT1),
 -      _(DXT1_RGBA, UNORM, C0, C1, C2, C3, DXT1),
 -      _(DXT3_RGBA, UNORM, C0, C1, C2, C3, DXT3),
 -      _(DXT5_RGBA, UNORM, C0, C1, C2, C3, DXT5),
 -
 -      _MIXED(S8_USCALED_Z24_UNORM, UINT, UNORM, UINT, UINT, C1, C1, C1, ONE, 24_8),
 -      _MIXED(Z24_UNORM_S8_USCALED, UNORM, UINT, UINT, UINT, C0, C0, C0, ONE, 8_24),
 -
 -      _(R16G16B16A16_SNORM, UNORM, C0, C1, C2, C3, 16_16_16_16),
 -      _(R16G16B16A16_UNORM, SNORM, C0, C1, C2, C3, 16_16_16_16),
 -      _(R32G32B32A32_FLOAT, FLOAT, C0, C1, C2, C3, 32_32_32_32),
 -
 -      _(R16G16_SNORM, SNORM, C0, C1, ZERO, ONE, 16_16),
 -      _(R16G16_UNORM, UNORM, C0, C1, ZERO, ONE, 16_16),
 -
 -      _MIXED(Z32_FLOAT, FLOAT, UINT, UINT, UINT, C0, C0, C0, ONE, 32_DEPTH)
 -};
 -
 -#undef _
 -#undef _MIXED
 -
  static INLINE uint32_t
  nv50_tic_swizzle(uint32_t tc, unsigned swz)
  {
@@@ -56,7 -106,7 +56,7 @@@ nv50_tex_construct(struct nv50_sampler_
        struct nv50_miptree *mt = nv50_miptree(view->pipe.texture);
        uint32_t swz[4], *tic = view->tic;
  
 -      tic[0] = nv50_texture_formats[view->pipe.format];
 +      tic[0] = nv50_format_table[view->pipe.format].tic;
  
        swz[0] = nv50_tic_swizzle(tic[0], view->pipe.swizzle_r);
        swz[1] = nv50_tic_swizzle(tic[0], view->pipe.swizzle_g);
        case PIPE_TEXTURE_2D:
                tic[2] |= NV50TIC_0_2_TARGET_2D;
                break;
+       case PIPE_TEXTURE_RECT:
+               tic[2] |= NV50TIC_0_2_TARGET_RECT;
+               break;
        case PIPE_TEXTURE_3D:
                tic[2] |= NV50TIC_0_2_TARGET_3D;
                break;