OSDN Git Service

nouveau: Update nouveau_class.h with new renouveau.xml definitions.
authorMarcin Koƛcielnicki <koriakin@0x04.net>
Tue, 24 Nov 2009 17:23:54 +0000 (17:23 +0000)
committerFrancisco Jerez <currojerez@riseup.net>
Mon, 28 Dec 2009 16:49:10 +0000 (17:49 +0100)
Signed-off-by: Francisco Jerez <currojerez@riseup.net>
nouveau/nouveau_class.h

index 0b8a6f0..4342d5f 100644 (file)
@@ -610,9 +610,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV04_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT                                       0x00000320
 #define  NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT                                           0x00000324
 #define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_SHIFT                          0
-#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_MASK                           0x0000000f
+#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_MASK                           0x000000ff
 #define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_SHIFT                         8
-#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_MASK                          0x00000f00
+#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_MASK                          0x0000ff00
 #define  NV04_MEMORY_TO_MEMORY_FORMAT_BUF_NOTIFY                                       0x00000328
 
 
@@ -915,36 +915,36 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_MASK                      0x000000ff
 #define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_SHIFT                    8
 #define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_MASK                     0xffffff00
-#define  NV03_DX3_TEXTURED_TRIANGLE_SPECULAR(x)                                                (0x00001000+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_SPECULAR__SIZE                                     0x00000040
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I0_SHIFT                                 0
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I0_MASK                                  0x0000000f
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I1_SHIFT                                 4
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I1_MASK                                  0x000000f0
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I2_SHIFT                                 8
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I2_MASK                                  0x00000f00
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I3_SHIFT                                 12
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I3_MASK                                  0x0000f000
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I4_SHIFT                                 16
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I4_MASK                                  0x000f0000
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I5_SHIFT                                 20
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I5_MASK                                  0x00f00000
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_FOG_SHIFT                                        24
-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_FOG_MASK                                 0xff000000
-#define  NV03_DX3_TEXTURED_TRIANGLE_COLOR(x)                                           (0x00001004+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_COLOR__SIZE                                                0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_X(x)                                               (0x00001008+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_X__SIZE                                            0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_Y(x)                                               (0x0000100c+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_Y__SIZE                                            0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_Z(x)                                               (0x00001010+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_Z__SIZE                                            0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_M(x)                                               (0x00001014+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_M__SIZE                                            0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_U(x)                                               (0x00001018+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_U__SIZE                                            0x00000040
-#define  NV03_DX3_TEXTURED_TRIANGLE_V(x)                                               (0x0000101c+((x)*32))
-#define  NV03_DX3_TEXTURED_TRIANGLE_V__SIZE                                            0x00000040
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(x)                               (0x00001000+((x)*32))
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR__SIZE                            0x00000080
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I0_SHIFT                                0
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I0_MASK                         0x0000000f
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I1_SHIFT                                4
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I1_MASK                         0x000000f0
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I2_SHIFT                                8
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I2_MASK                         0x00000f00
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I3_SHIFT                                12
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I3_MASK                         0x0000f000
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I4_SHIFT                                16
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I4_MASK                         0x000f0000
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I5_SHIFT                                20
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I5_MASK                         0x00f00000
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_SHIFT                       24
+#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_MASK                                0xff000000
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_COLOR(x)                                  (0x00001004+((x)*32))
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_COLOR__SIZE                               0x00000080
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SX(x)                                     (0x00001008+((x)*32))
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SX__SIZE                                  0x00000080
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SY(x)                                     (0x0000100c+((x)*32))
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SY__SIZE                                  0x00000080
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SZ(x)                                     (0x00001010+((x)*32))
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SZ__SIZE                                  0x00000080
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_RHW(x)                                    (0x00001014+((x)*32))
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_RHW__SIZE                                 0x00000080
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_TU(x)                                     (0x00001018+((x)*32))
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_TU__SIZE                                  0x00000080
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_TV(x)                                     (0x0000101c+((x)*32))
+#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_TV__SIZE                                  0x00000080
 
 
 #define NV04_GDI_RECTANGLE_TEXT                                                                0x0000004a
@@ -2525,7 +2525,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_ALPHA_FUNC_FUNC_EQUAL                                                        0x00000202
 #define   NV10TCL_ALPHA_FUNC_FUNC_LEQUAL                                               0x00000203
 #define   NV10TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
-#define   NV10TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
 #define   NV10TCL_ALPHA_FUNC_FUNC_NOTEQUAL                                             0x00000205
 #define   NV10TCL_ALPHA_FUNC_FUNC_GEQUAL                                               0x00000206
 #define   NV10TCL_ALPHA_FUNC_FUNC_ALWAYS                                               0x00000207
@@ -2583,7 +2582,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_DEPTH_FUNC_EQUAL                                                     0x00000202
 #define   NV10TCL_DEPTH_FUNC_LEQUAL                                                    0x00000203
 #define   NV10TCL_DEPTH_FUNC_GREATER                                                   0x00000204
-#define   NV10TCL_DEPTH_FUNC_GREATER                                                   0x00000204
 #define   NV10TCL_DEPTH_FUNC_NOTEQUAL                                                  0x00000205
 #define   NV10TCL_DEPTH_FUNC_GEQUAL                                                    0x00000206
 #define   NV10TCL_DEPTH_FUNC_ALWAYS                                                    0x00000207
@@ -2600,7 +2598,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV10TCL_STENCIL_FUNC_FUNC_EQUAL                                              0x00000202
 #define   NV10TCL_STENCIL_FUNC_FUNC_LEQUAL                                             0x00000203
 #define   NV10TCL_STENCIL_FUNC_FUNC_GREATER                                            0x00000204
-#define   NV10TCL_STENCIL_FUNC_FUNC_GREATER                                            0x00000204
 #define   NV10TCL_STENCIL_FUNC_FUNC_NOTEQUAL                                           0x00000205
 #define   NV10TCL_STENCIL_FUNC_FUNC_GEQUAL                                             0x00000206
 #define   NV10TCL_STENCIL_FUNC_FUNC_ALWAYS                                             0x00000207
@@ -3749,7 +3746,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV20TCL_ALPHA_FUNC_FUNC_EQUAL                                                        0x00000202
 #define   NV20TCL_ALPHA_FUNC_FUNC_LEQUAL                                               0x00000203
 #define   NV20TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
-#define   NV20TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
 #define   NV20TCL_ALPHA_FUNC_FUNC_NOTEQUAL                                             0x00000205
 #define   NV20TCL_ALPHA_FUNC_FUNC_GEQUAL                                               0x00000206
 #define   NV20TCL_ALPHA_FUNC_FUNC_ALWAYS                                               0x00000207
@@ -3807,7 +3803,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV20TCL_DEPTH_FUNC_EQUAL                                                     0x00000202
 #define   NV20TCL_DEPTH_FUNC_LEQUAL                                                    0x00000203
 #define   NV20TCL_DEPTH_FUNC_GREATER                                                   0x00000204
-#define   NV20TCL_DEPTH_FUNC_GREATER                                                   0x00000204
 #define   NV20TCL_DEPTH_FUNC_NOTEQUAL                                                  0x00000205
 #define   NV20TCL_DEPTH_FUNC_GEQUAL                                                    0x00000206
 #define   NV20TCL_DEPTH_FUNC_ALWAYS                                                    0x00000207
@@ -3824,7 +3819,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV20TCL_STENCIL_FUNC_FUNC_EQUAL                                              0x00000202
 #define   NV20TCL_STENCIL_FUNC_FUNC_LEQUAL                                             0x00000203
 #define   NV20TCL_STENCIL_FUNC_FUNC_GREATER                                            0x00000204
-#define   NV20TCL_STENCIL_FUNC_FUNC_GREATER                                            0x00000204
 #define   NV20TCL_STENCIL_FUNC_FUNC_NOTEQUAL                                           0x00000205
 #define   NV20TCL_STENCIL_FUNC_FUNC_GEQUAL                                             0x00000206
 #define   NV20TCL_STENCIL_FUNC_FUNC_ALWAYS                                             0x00000207
@@ -4997,7 +4991,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_ALPHA_FUNC_FUNC_EQUAL                                                        0x00000202
 #define   NV34TCL_ALPHA_FUNC_FUNC_LEQUAL                                               0x00000203
 #define   NV34TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
-#define   NV34TCL_ALPHA_FUNC_FUNC_GREATER                                              0x00000204
 #define   NV34TCL_ALPHA_FUNC_FUNC_NOTEQUAL                                             0x00000205
 #define   NV34TCL_ALPHA_FUNC_FUNC_GEQUAL                                               0x00000206
 #define   NV34TCL_ALPHA_FUNC_FUNC_ALWAYS                                               0x00000207
@@ -5105,7 +5098,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                         0x00000202
 #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                                0x00000203
 #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
 #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                      0x00000205
 #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                                0x00000206
 #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                                0x00000207
@@ -5146,7 +5138,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL                                                0x00000202
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL                                       0x00000203
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
-#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL                                     0x00000205
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL                                       0x00000206
 #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS                                       0x00000207
@@ -5952,7 +5943,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV34TCL_DEPTH_FUNC_EQUAL                                                     0x00000202
 #define   NV34TCL_DEPTH_FUNC_LEQUAL                                                    0x00000203
 #define   NV34TCL_DEPTH_FUNC_GREATER                                                   0x00000204
-#define   NV34TCL_DEPTH_FUNC_GREATER                                                   0x00000204
 #define   NV34TCL_DEPTH_FUNC_NOTEQUAL                                                  0x00000205
 #define   NV34TCL_DEPTH_FUNC_GEQUAL                                                    0x00000206
 #define   NV34TCL_DEPTH_FUNC_ALWAYS                                                    0x00000207
@@ -6613,7 +6603,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV40TCL_ALPHA_TEST_FUNC_EQUAL                                                        0x00000202
 #define   NV40TCL_ALPHA_TEST_FUNC_LEQUAL                                               0x00000203
 #define   NV40TCL_ALPHA_TEST_FUNC_GREATER                                              0x00000204
-#define   NV40TCL_ALPHA_TEST_FUNC_GREATER                                              0x00000204
 #define   NV40TCL_ALPHA_TEST_FUNC_NOTEQUAL                                             0x00000205
 #define   NV40TCL_ALPHA_TEST_FUNC_GEQUAL                                               0x00000206
 #define   NV40TCL_ALPHA_TEST_FUNC_ALWAYS                                               0x00000207
@@ -6730,7 +6719,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL                                                0x00000202
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL                                       0x00000203
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
-#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL                                     0x00000205
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL                                       0x00000206
 #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS                                       0x00000207
@@ -6771,7 +6759,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                         0x00000202
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                                0x00000203
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
-#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                      0x00000205
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                                0x00000206
 #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                                0x00000207
@@ -6894,7 +6881,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV40TCL_DEPTH_FUNC_EQUAL                                                     0x00000202
 #define   NV40TCL_DEPTH_FUNC_LEQUAL                                                    0x00000203
 #define   NV40TCL_DEPTH_FUNC_GREATER                                                   0x00000204
-#define   NV40TCL_DEPTH_FUNC_GREATER                                                   0x00000204
 #define   NV40TCL_DEPTH_FUNC_NOTEQUAL                                                  0x00000205
 #define   NV40TCL_DEPTH_FUNC_GEQUAL                                                    0x00000206
 #define   NV40TCL_DEPTH_FUNC_ALWAYS                                                    0x00000207
@@ -7312,41 +7298,65 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50_2D_NOP                                                                   0x00000100
 #define  NV50_2D_NOTIFY                                                                        0x00000104
 #define  NV50_2D_DMA_NOTIFY                                                            0x00000180
-#define  NV50_2D_DMA_IN_MEMORY0                                                                0x00000184
-#define  NV50_2D_DMA_IN_MEMORY1                                                                0x00000188
-#define  NV50_2D_DMA_IN_MEMORY2                                                                0x0000018c
+#define  NV50_2D_DMA_DST                                                               0x00000184
+#define  NV50_2D_DMA_SRC                                                               0x00000188
+#define  NV50_2D_DMA_COND                                                              0x0000018c
 #define  NV50_2D_DST_FORMAT                                                            0x00000200
 #define   NV50_2D_DST_FORMAT_R32G32B32A32_FLOAT                                                0x000000c0
-#define   NV50_2D_DST_FORMAT_R32G32B32_FLOAT                                           0x000000c3
+#define   NV50_2D_DST_FORMAT_R32G32B32A32_SINT                                         0x000000c1
+#define   NV50_2D_DST_FORMAT_R32G32B32A32_UINT                                         0x000000c2
+#define   NV50_2D_DST_FORMAT_R32G32B32X32_FLOAT                                                0x000000c3
 #define   NV50_2D_DST_FORMAT_R16G16B16A16_UNORM                                                0x000000c6
 #define   NV50_2D_DST_FORMAT_R16G16B16A16_SNORM                                                0x000000c7
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_SINT                                         0x000000c8
+#define   NV50_2D_DST_FORMAT_R16G16B16A16_UINT                                         0x000000c9
 #define   NV50_2D_DST_FORMAT_R16G16B16A16_FLOAT                                                0x000000ca
 #define   NV50_2D_DST_FORMAT_R32G32_FLOAT                                              0x000000cb
+#define   NV50_2D_DST_FORMAT_R32G32_SINT                                               0x000000cc
+#define   NV50_2D_DST_FORMAT_R32G32_UINT                                               0x000000cd
 #define   NV50_2D_DST_FORMAT_R16G16B16X16_FLOAT                                                0x000000ce
 #define   NV50_2D_DST_FORMAT_A8R8G8B8_UNORM                                            0x000000cf
+#define   NV50_2D_DST_FORMAT_A8R8G8B8_SRGB                                             0x000000d0
 #define   NV50_2D_DST_FORMAT_A2B10G10R10_UNORM                                         0x000000d1
-#define   NV50_2D_DST_FORMAT_A8B8G8R8_UNORM                                            0x000000d6
+#define   NV50_2D_DST_FORMAT_A2B10G10R10_UINT                                          0x000000d2
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_UNORM                                            0x000000d5
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_SRGB                                             0x000000d6
 #define   NV50_2D_DST_FORMAT_A8B8G8R8_SNORM                                            0x000000d7
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_SINT                                             0x000000d8
+#define   NV50_2D_DST_FORMAT_A8B8G8R8_UINT                                             0x000000d9
 #define   NV50_2D_DST_FORMAT_R16G16_UNORM                                              0x000000da
 #define   NV50_2D_DST_FORMAT_R16G16_SNORM                                              0x000000db
+#define   NV50_2D_DST_FORMAT_R16G16_SINT                                               0x000000dc
+#define   NV50_2D_DST_FORMAT_R16G16_UINT                                               0x000000dd
 #define   NV50_2D_DST_FORMAT_R16G16_FLOAT                                              0x000000de
 #define   NV50_2D_DST_FORMAT_A2R10G10B10_UNORM                                         0x000000df
 #define   NV50_2D_DST_FORMAT_B10G11R11_FLOAT                                           0x000000e0
 #define   NV50_2D_DST_FORMAT_R32_FLOAT                                                 0x000000e5
 #define   NV50_2D_DST_FORMAT_X8R8G8B8_UNORM                                            0x000000e6
+#define   NV50_2D_DST_FORMAT_X8R8G8B8_SRGB                                             0x000000e7
 #define   NV50_2D_DST_FORMAT_R5G6B5_UNORM                                              0x000000e8
-#define   NV50_2D_DST_FORMAT_R16_FLOAT                                                 0x000000e9
+#define   NV50_2D_DST_FORMAT_A1R5G5B5_UNORM                                            0x000000e9
 #define   NV50_2D_DST_FORMAT_R8G8_UNORM                                                        0x000000ea
 #define   NV50_2D_DST_FORMAT_R8G8_SNORM                                                        0x000000eb
+#define   NV50_2D_DST_FORMAT_R8G8_SINT                                                 0x000000ec
+#define   NV50_2D_DST_FORMAT_R8G8_UINT                                                 0x000000ed
 #define   NV50_2D_DST_FORMAT_R16_UNORM                                                 0x000000ee
 #define   NV50_2D_DST_FORMAT_R16_SNORM                                                 0x000000ef
+#define   NV50_2D_DST_FORMAT_R16_SINT                                                  0x000000f0
+#define   NV50_2D_DST_FORMAT_R16_UINT                                                  0x000000f1
+#define   NV50_2D_DST_FORMAT_R16_FLOAT                                                 0x000000f2
 #define   NV50_2D_DST_FORMAT_R8_UNORM                                                  0x000000f3
-#define   NV50_2D_DST_FORMAT_R32_BOOLEAN                                               0x000000f6
+#define   NV50_2D_DST_FORMAT_R8_SNORM                                                  0x000000f4
+#define   NV50_2D_DST_FORMAT_R8_SINT                                                   0x000000f5
+#define   NV50_2D_DST_FORMAT_R8_UINT                                                   0x000000f6
 #define   NV50_2D_DST_FORMAT_A8_UNORM                                                  0x000000f7
-#define   NV50_2D_DST_FORMAT_X1B5G5R5_UNORM                                            0x000000f8
+#define   NV50_2D_DST_FORMAT_X1R5G5B5_UNORM                                            0x000000f8
 #define   NV50_2D_DST_FORMAT_X8B8G8R8_UNORM                                            0x000000f9
+#define   NV50_2D_DST_FORMAT_X8B8G8R8_SRGB                                             0x000000fa
 #define  NV50_2D_DST_LINEAR                                                            0x00000204
 #define  NV50_2D_DST_TILE_MODE                                                         0x00000208
+#define  NV50_2D_DST_DEPTH                                                             0x0000020c
+#define  NV50_2D_DST_LAYER                                                             0x00000210
 #define  NV50_2D_DST_PITCH                                                             0x00000214
 #define  NV50_2D_DST_WIDTH                                                             0x00000218
 #define  NV50_2D_DST_HEIGHT                                                            0x0000021c
@@ -7354,45 +7364,88 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50_2D_DST_ADDRESS_LOW                                                       0x00000224
 #define  NV50_2D_SRC_FORMAT                                                            0x00000230
 #define   NV50_2D_SRC_FORMAT_R32G32B32A32_FLOAT                                                0x000000c0
-#define   NV50_2D_SRC_FORMAT_R32G32B32_FLOAT                                           0x000000c3
+#define   NV50_2D_SRC_FORMAT_R32G32B32A32_SINT                                         0x000000c1
+#define   NV50_2D_SRC_FORMAT_R32G32B32A32_UINT                                         0x000000c2
+#define   NV50_2D_SRC_FORMAT_R32G32B32X32_FLOAT                                                0x000000c3
 #define   NV50_2D_SRC_FORMAT_R16G16B16A16_UNORM                                                0x000000c6
 #define   NV50_2D_SRC_FORMAT_R16G16B16A16_SNORM                                                0x000000c7
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_SINT                                         0x000000c8
+#define   NV50_2D_SRC_FORMAT_R16G16B16A16_UINT                                         0x000000c9
 #define   NV50_2D_SRC_FORMAT_R16G16B16A16_FLOAT                                                0x000000ca
 #define   NV50_2D_SRC_FORMAT_R32G32_FLOAT                                              0x000000cb
+#define   NV50_2D_SRC_FORMAT_R32G32_SINT                                               0x000000cc
+#define   NV50_2D_SRC_FORMAT_R32G32_UINT                                               0x000000cd
 #define   NV50_2D_SRC_FORMAT_R16G16B16X16_FLOAT                                                0x000000ce
 #define   NV50_2D_SRC_FORMAT_A8R8G8B8_UNORM                                            0x000000cf
+#define   NV50_2D_SRC_FORMAT_A8R8G8B8_SRGB                                             0x000000d0
 #define   NV50_2D_SRC_FORMAT_A2B10G10R10_UNORM                                         0x000000d1
-#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UNORM                                            0x000000d6
+#define   NV50_2D_SRC_FORMAT_A2B10G10R10_UINT                                          0x000000d2
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UNORM                                            0x000000d5
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SRGB                                             0x000000d6
 #define   NV50_2D_SRC_FORMAT_A8B8G8R8_SNORM                                            0x000000d7
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SINT                                             0x000000d8
+#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UINT                                             0x000000d9
 #define   NV50_2D_SRC_FORMAT_R16G16_UNORM                                              0x000000da
 #define   NV50_2D_SRC_FORMAT_R16G16_SNORM                                              0x000000db
+#define   NV50_2D_SRC_FORMAT_R16G16_SINT                                               0x000000dc
+#define   NV50_2D_SRC_FORMAT_R16G16_UINT                                               0x000000dd
 #define   NV50_2D_SRC_FORMAT_R16G16_FLOAT                                              0x000000de
 #define   NV50_2D_SRC_FORMAT_A2R10G10B10_UNORM                                         0x000000df
 #define   NV50_2D_SRC_FORMAT_B10G11R11_FLOAT                                           0x000000e0
 #define   NV50_2D_SRC_FORMAT_R32_FLOAT                                                 0x000000e5
 #define   NV50_2D_SRC_FORMAT_X8R8G8B8_UNORM                                            0x000000e6
+#define   NV50_2D_SRC_FORMAT_X8R8G8B8_SRGB                                             0x000000e7
 #define   NV50_2D_SRC_FORMAT_R5G6B5_UNORM                                              0x000000e8
-#define   NV50_2D_SRC_FORMAT_R16_FLOAT                                                 0x000000e9
+#define   NV50_2D_SRC_FORMAT_A1R5G5B5_UNORM                                            0x000000e9
 #define   NV50_2D_SRC_FORMAT_R8G8_UNORM                                                        0x000000ea
 #define   NV50_2D_SRC_FORMAT_R8G8_SNORM                                                        0x000000eb
+#define   NV50_2D_SRC_FORMAT_R8G8_SINT                                                 0x000000ec
+#define   NV50_2D_SRC_FORMAT_R8G8_UINT                                                 0x000000ed
 #define   NV50_2D_SRC_FORMAT_R16_UNORM                                                 0x000000ee
 #define   NV50_2D_SRC_FORMAT_R16_SNORM                                                 0x000000ef
+#define   NV50_2D_SRC_FORMAT_R16_SINT                                                  0x000000f0
+#define   NV50_2D_SRC_FORMAT_R16_UINT                                                  0x000000f1
+#define   NV50_2D_SRC_FORMAT_R16_FLOAT                                                 0x000000f2
 #define   NV50_2D_SRC_FORMAT_R8_UNORM                                                  0x000000f3
-#define   NV50_2D_SRC_FORMAT_R32_BOOLEAN                                               0x000000f6
+#define   NV50_2D_SRC_FORMAT_R8_SNORM                                                  0x000000f4
+#define   NV50_2D_SRC_FORMAT_R8_SINT                                                   0x000000f5
+#define   NV50_2D_SRC_FORMAT_R8_UINT                                                   0x000000f6
 #define   NV50_2D_SRC_FORMAT_A8_UNORM                                                  0x000000f7
-#define   NV50_2D_SRC_FORMAT_X1B5G5R5_UNORM                                            0x000000f8
+#define   NV50_2D_SRC_FORMAT_X1R5G5B5_UNORM                                            0x000000f8
 #define   NV50_2D_SRC_FORMAT_X8B8G8R8_UNORM                                            0x000000f9
+#define   NV50_2D_SRC_FORMAT_X8B8G8R8_SRGB                                             0x000000fa
 #define  NV50_2D_SRC_LINEAR                                                            0x00000234
 #define  NV50_2D_SRC_TILE_MODE                                                         0x00000238
+#define  NV50_2D_SRC_DEPTH                                                             0x0000023c
+#define  NV50_2D_SRC_LAYER                                                             0x00000240
 #define  NV50_2D_SRC_PITCH                                                             0x00000244
 #define  NV50_2D_SRC_WIDTH                                                             0x00000248
 #define  NV50_2D_SRC_HEIGHT                                                            0x0000024c
 #define  NV50_2D_SRC_ADDRESS_HIGH                                                      0x00000250
 #define  NV50_2D_SRC_ADDRESS_LOW                                                       0x00000254
+#define  NV50_2D_COND_ADDRESS_HIGH                                                     0x00000264
+#define  NV50_2D_COND_ADDRESS_LOW                                                      0x00000268
+#define  NV50_2D_COND_MODE                                                             0x0000026c
+#define   NV50_2D_COND_MODE_NEVER                                                      0x00000000
+#define   NV50_2D_COND_MODE_ALWAYS                                                     0x00000001
+#define   NV50_2D_COND_MODE_RES                                                                0x00000002
+#define   NV50_2D_COND_MODE_NOT_RES_AND_NOT_ID                                         0x00000003
+#define   NV50_2D_COND_MODE_RES_OR_ID                                                  0x00000004
 #define  NV50_2D_CLIP_X                                                                        0x00000280
 #define  NV50_2D_CLIP_Y                                                                        0x00000284
-#define  NV50_2D_CLIP_Z                                                                        0x00000288
-#define  NV50_2D_CLIP_W                                                                        0x0000028c
+#define  NV50_2D_CLIP_W                                                                        0x00000288
+#define  NV50_2D_CLIP_H                                                                        0x0000028c
+#define  NV50_2D_CLIP_ENABLE                                                           0x00000290
+#define  NV50_2D_COLOR_KEY_FORMAT                                                      0x00000294
+#define   NV50_2D_COLOR_KEY_FORMAT_16BPP                                               0x00000000
+#define   NV50_2D_COLOR_KEY_FORMAT_15BPP                                               0x00000001
+#define   NV50_2D_COLOR_KEY_FORMAT_24BPP                                               0x00000002
+#define   NV50_2D_COLOR_KEY_FORMAT_30BPP                                               0x00000003
+#define   NV50_2D_COLOR_KEY_FORMAT_8BPP                                                        0x00000004
+#define   NV50_2D_COLOR_KEY_FORMAT_16BPP2                                              0x00000005
+#define   NV50_2D_COLOR_KEY_FORMAT_32BPP                                               0x00000006
+#define  NV50_2D_COLOR_KEY                                                             0x00000298
+#define  NV50_2D_COLOR_KEY_ENABLE                                                      0x0000029c
 #define  NV50_2D_ROP                                                                   0x000002a0
 #define  NV50_2D_OPERATION                                                             0x000002ac
 #define   NV50_2D_OPERATION_SRCCOPY_AND                                                        0x00000000
@@ -7410,89 +7463,159 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50_2D_PATTERN_COLOR__SIZE                                                   0x00000002
 #define  NV50_2D_PATTERN_BITMAP(x)                                                     (0x000002f8+((x)*4))
 #define  NV50_2D_PATTERN_BITMAP__SIZE                                                  0x00000002
-#define  NV50_2D_RECT_FORMAT                                                           0x00000584
-#define   NV50_2D_RECT_FORMAT_R32G32B32A32_FLOAT                                       0x000000c0
-#define   NV50_2D_RECT_FORMAT_R32G32B32_FLOAT                                          0x000000c3
-#define   NV50_2D_RECT_FORMAT_R16G16B16A16_UNORM                                       0x000000c6
-#define   NV50_2D_RECT_FORMAT_R16G16B16A16_SNORM                                       0x000000c7
-#define   NV50_2D_RECT_FORMAT_R16G16B16A16_FLOAT                                       0x000000ca
-#define   NV50_2D_RECT_FORMAT_R32G32_FLOAT                                             0x000000cb
-#define   NV50_2D_RECT_FORMAT_R16G16B16X16_FLOAT                                       0x000000ce
-#define   NV50_2D_RECT_FORMAT_A8R8G8B8_UNORM                                           0x000000cf
-#define   NV50_2D_RECT_FORMAT_A2B10G10R10_UNORM                                                0x000000d1
-#define   NV50_2D_RECT_FORMAT_A8B8G8R8_UNORM                                           0x000000d6
-#define   NV50_2D_RECT_FORMAT_A8B8G8R8_SNORM                                           0x000000d7
-#define   NV50_2D_RECT_FORMAT_R16G16_UNORM                                             0x000000da
-#define   NV50_2D_RECT_FORMAT_R16G16_SNORM                                             0x000000db
-#define   NV50_2D_RECT_FORMAT_R16G16_FLOAT                                             0x000000de
-#define   NV50_2D_RECT_FORMAT_A2R10G10B10_UNORM                                                0x000000df
-#define   NV50_2D_RECT_FORMAT_B10G11R11_FLOAT                                          0x000000e0
-#define   NV50_2D_RECT_FORMAT_R32_FLOAT                                                        0x000000e5
-#define   NV50_2D_RECT_FORMAT_X8R8G8B8_UNORM                                           0x000000e6
-#define   NV50_2D_RECT_FORMAT_R5G6B5_UNORM                                             0x000000e8
-#define   NV50_2D_RECT_FORMAT_R16_FLOAT                                                        0x000000e9
-#define   NV50_2D_RECT_FORMAT_R8G8_UNORM                                               0x000000ea
-#define   NV50_2D_RECT_FORMAT_R8G8_SNORM                                               0x000000eb
-#define   NV50_2D_RECT_FORMAT_R16_UNORM                                                        0x000000ee
-#define   NV50_2D_RECT_FORMAT_R16_SNORM                                                        0x000000ef
-#define   NV50_2D_RECT_FORMAT_R8_UNORM                                                 0x000000f3
-#define   NV50_2D_RECT_FORMAT_R32_BOOLEAN                                              0x000000f6
-#define   NV50_2D_RECT_FORMAT_A8_UNORM                                                 0x000000f7
-#define   NV50_2D_RECT_FORMAT_X1B5G5R5_UNORM                                           0x000000f8
-#define   NV50_2D_RECT_FORMAT_X8B8G8R8_UNORM                                           0x000000f9
-#define  NV50_2D_RECT_COLOR                                                            0x00000588
-#define  NV50_2D_RECT_X1                                                               0x00000600
-#define  NV50_2D_RECT_Y1                                                               0x00000604
-#define  NV50_2D_RECT_X2                                                               0x00000608
-#define  NV50_2D_RECT_Y2                                                               0x0000060c
-#define  NV50_2D_SIFC_UNK0800                                                          0x00000800
+#define  NV50_2D_DRAW_SHAPE                                                            0x00000580
+#define   NV50_2D_DRAW_SHAPE_POINTS                                                    0x00000000
+#define   NV50_2D_DRAW_SHAPE_LINES                                                     0x00000001
+#define   NV50_2D_DRAW_SHAPE_LINE_STRIP                                                        0x00000002
+#define   NV50_2D_DRAW_SHAPE_TRIANGLES                                                 0x00000003
+#define   NV50_2D_DRAW_SHAPE_RECTANGLES                                                        0x00000004
+#define  NV50_2D_DRAW_COLOR_FORMAT                                                     0x00000584
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_FLOAT                                 0x000000c0
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_SINT                                  0x000000c1
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_UINT                                  0x000000c2
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32X32_FLOAT                                 0x000000c3
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_UNORM                                 0x000000c6
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_SNORM                                 0x000000c7
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_SINT                                  0x000000c8
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_UINT                                  0x000000c9
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_FLOAT                                 0x000000ca
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_FLOAT                                       0x000000cb
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_SINT                                                0x000000cc
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_UINT                                                0x000000cd
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16X16_FLOAT                                 0x000000ce
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8R8G8B8_UNORM                                     0x000000cf
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8R8G8B8_SRGB                                      0x000000d0
+#define   NV50_2D_DRAW_COLOR_FORMAT_A2B10G10R10_UNORM                                  0x000000d1
+#define   NV50_2D_DRAW_COLOR_FORMAT_A2B10G10R10_UINT                                   0x000000d2
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_UNORM                                     0x000000d5
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SRGB                                      0x000000d6
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SNORM                                     0x000000d7
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SINT                                      0x000000d8
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_UINT                                      0x000000d9
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_UNORM                                       0x000000da
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_SNORM                                       0x000000db
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_SINT                                                0x000000dc
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_UINT                                                0x000000dd
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_FLOAT                                       0x000000de
+#define   NV50_2D_DRAW_COLOR_FORMAT_A2R10G10B10_UNORM                                  0x000000df
+#define   NV50_2D_DRAW_COLOR_FORMAT_B10G11R11_FLOAT                                    0x000000e0
+#define   NV50_2D_DRAW_COLOR_FORMAT_R32_FLOAT                                          0x000000e5
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8R8G8B8_UNORM                                     0x000000e6
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8R8G8B8_SRGB                                      0x000000e7
+#define   NV50_2D_DRAW_COLOR_FORMAT_R5G6B5_UNORM                                       0x000000e8
+#define   NV50_2D_DRAW_COLOR_FORMAT_A1R5G5B5_UNORM                                     0x000000e9
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_UNORM                                         0x000000ea
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_SNORM                                         0x000000eb
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_SINT                                          0x000000ec
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_UINT                                          0x000000ed
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_UNORM                                          0x000000ee
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_SNORM                                          0x000000ef
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_SINT                                           0x000000f0
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_UINT                                           0x000000f1
+#define   NV50_2D_DRAW_COLOR_FORMAT_R16_FLOAT                                          0x000000f2
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_UNORM                                           0x000000f3
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_SNORM                                           0x000000f4
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_SINT                                            0x000000f5
+#define   NV50_2D_DRAW_COLOR_FORMAT_R8_UINT                                            0x000000f6
+#define   NV50_2D_DRAW_COLOR_FORMAT_A8_UNORM                                           0x000000f7
+#define   NV50_2D_DRAW_COLOR_FORMAT_X1R5G5B5_UNORM                                     0x000000f8
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8B8G8R8_UNORM                                     0x000000f9
+#define   NV50_2D_DRAW_COLOR_FORMAT_X8B8G8R8_SRGB                                      0x000000fa
+#define  NV50_2D_DRAW_COLOR                                                            0x00000588
+#define  NV50_2D_DRAW_POINT16                                                          0x000005e0
+#define   NV50_2D_DRAW_POINT16_X_SHIFT                                                 0
+#define   NV50_2D_DRAW_POINT16_X_MASK                                                  0x0000ffff
+#define   NV50_2D_DRAW_POINT16_Y_SHIFT                                                 16
+#define   NV50_2D_DRAW_POINT16_Y_MASK                                                  0xffff0000
+#define  NV50_2D_DRAW_POINT32_X(x)                                                     (0x00000600+((x)*8))
+#define  NV50_2D_DRAW_POINT32_X__SIZE                                                  0x00000040
+#define  NV50_2D_DRAW_POINT32_Y(x)                                                     (0x00000604+((x)*8))
+#define  NV50_2D_DRAW_POINT32_Y__SIZE                                                  0x00000040
+#define  NV50_2D_SIFC_BITMAP_ENABLE                                                    0x00000800
 #define  NV50_2D_SIFC_FORMAT                                                           0x00000804
 #define   NV50_2D_SIFC_FORMAT_R32G32B32A32_FLOAT                                       0x000000c0
-#define   NV50_2D_SIFC_FORMAT_R32G32B32_FLOAT                                          0x000000c3
+#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_SINT                                                0x000000c1
+#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_UINT                                                0x000000c2
+#define   NV50_2D_SIFC_FORMAT_R32G32B32X32_FLOAT                                       0x000000c3
 #define   NV50_2D_SIFC_FORMAT_R16G16B16A16_UNORM                                       0x000000c6
 #define   NV50_2D_SIFC_FORMAT_R16G16B16A16_SNORM                                       0x000000c7
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_SINT                                                0x000000c8
+#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_UINT                                                0x000000c9
 #define   NV50_2D_SIFC_FORMAT_R16G16B16A16_FLOAT                                       0x000000ca
 #define   NV50_2D_SIFC_FORMAT_R32G32_FLOAT                                             0x000000cb
+#define   NV50_2D_SIFC_FORMAT_R32G32_SINT                                              0x000000cc
+#define   NV50_2D_SIFC_FORMAT_R32G32_UINT                                              0x000000cd
 #define   NV50_2D_SIFC_FORMAT_R16G16B16X16_FLOAT                                       0x000000ce
 #define   NV50_2D_SIFC_FORMAT_A8R8G8B8_UNORM                                           0x000000cf
+#define   NV50_2D_SIFC_FORMAT_A8R8G8B8_SRGB                                            0x000000d0
 #define   NV50_2D_SIFC_FORMAT_A2B10G10R10_UNORM                                                0x000000d1
-#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UNORM                                           0x000000d6
+#define   NV50_2D_SIFC_FORMAT_A2B10G10R10_UINT                                         0x000000d2
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UNORM                                           0x000000d5
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SRGB                                            0x000000d6
 #define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SNORM                                           0x000000d7
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SINT                                            0x000000d8
+#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UINT                                            0x000000d9
 #define   NV50_2D_SIFC_FORMAT_R16G16_UNORM                                             0x000000da
 #define   NV50_2D_SIFC_FORMAT_R16G16_SNORM                                             0x000000db
+#define   NV50_2D_SIFC_FORMAT_R16G16_SINT                                              0x000000dc
+#define   NV50_2D_SIFC_FORMAT_R16G16_UINT                                              0x000000dd
 #define   NV50_2D_SIFC_FORMAT_R16G16_FLOAT                                             0x000000de
 #define   NV50_2D_SIFC_FORMAT_A2R10G10B10_UNORM                                                0x000000df
 #define   NV50_2D_SIFC_FORMAT_B10G11R11_FLOAT                                          0x000000e0
 #define   NV50_2D_SIFC_FORMAT_R32_FLOAT                                                        0x000000e5
 #define   NV50_2D_SIFC_FORMAT_X8R8G8B8_UNORM                                           0x000000e6
+#define   NV50_2D_SIFC_FORMAT_X8R8G8B8_SRGB                                            0x000000e7
 #define   NV50_2D_SIFC_FORMAT_R5G6B5_UNORM                                             0x000000e8
-#define   NV50_2D_SIFC_FORMAT_R16_FLOAT                                                        0x000000e9
+#define   NV50_2D_SIFC_FORMAT_A1R5G5B5_UNORM                                           0x000000e9
 #define   NV50_2D_SIFC_FORMAT_R8G8_UNORM                                               0x000000ea
 #define   NV50_2D_SIFC_FORMAT_R8G8_SNORM                                               0x000000eb
+#define   NV50_2D_SIFC_FORMAT_R8G8_SINT                                                        0x000000ec
+#define   NV50_2D_SIFC_FORMAT_R8G8_UINT                                                        0x000000ed
 #define   NV50_2D_SIFC_FORMAT_R16_UNORM                                                        0x000000ee
 #define   NV50_2D_SIFC_FORMAT_R16_SNORM                                                        0x000000ef
+#define   NV50_2D_SIFC_FORMAT_R16_SINT                                                 0x000000f0
+#define   NV50_2D_SIFC_FORMAT_R16_UINT                                                 0x000000f1
+#define   NV50_2D_SIFC_FORMAT_R16_FLOAT                                                        0x000000f2
 #define   NV50_2D_SIFC_FORMAT_R8_UNORM                                                 0x000000f3
-#define   NV50_2D_SIFC_FORMAT_R32_BOOLEAN                                              0x000000f6
+#define   NV50_2D_SIFC_FORMAT_R8_SNORM                                                 0x000000f4
+#define   NV50_2D_SIFC_FORMAT_R8_SINT                                                  0x000000f5
+#define   NV50_2D_SIFC_FORMAT_R8_UINT                                                  0x000000f6
 #define   NV50_2D_SIFC_FORMAT_A8_UNORM                                                 0x000000f7
-#define   NV50_2D_SIFC_FORMAT_X1B5G5R5_UNORM                                           0x000000f8
+#define   NV50_2D_SIFC_FORMAT_X1R5G5B5_UNORM                                           0x000000f8
 #define   NV50_2D_SIFC_FORMAT_X8B8G8R8_UNORM                                           0x000000f9
+#define   NV50_2D_SIFC_FORMAT_X8B8G8R8_SRGB                                            0x000000fa
+#define  NV50_2D_SIFC_BITMAP_UNK808                                                    0x00000808
+#define  NV50_2D_SIFC_BITMAP_LSB_FIRST                                                 0x0000080c
+#define  NV50_2D_SIFC_BITMAP_LINE_PACK_MODE                                            0x00000810
+#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_PACKED                                    0x00000000
+#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_BYTE                                        0x00000001
+#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_WORD                                        0x00000002
+#define  NV50_2D_SIFC_BITMAP_COLOR_BIT0                                                        0x00000814
+#define  NV50_2D_SIFC_BITMAP_COLOR_BIT1                                                        0x00000818
+#define  NV50_2D_SIFC_BITMAP_WRITE_BIT0_ENABLE                                         0x0000081c
 #define  NV50_2D_SIFC_WIDTH                                                            0x00000838
 #define  NV50_2D_SIFC_HEIGHT                                                           0x0000083c
-#define  NV50_2D_SIFC_SCALE_UNK0840                                                    0x00000840
-#define  NV50_2D_SIFC_SCALE_UNK0844                                                    0x00000844
-#define  NV50_2D_SIFC_SCALE_UNK0848                                                    0x00000848
-#define  NV50_2D_SIFC_SCALE_UNK084C                                                    0x0000084c
-#define  NV50_2D_SIFC_UNK0850                                                          0x00000850
-#define  NV50_2D_SIFC_DST_X                                                            0x00000854
-#define  NV50_2D_SIFC_UNK0858                                                          0x00000858
-#define  NV50_2D_SIFC_DST_Y                                                            0x0000085c
+#define  NV50_2D_SIFC_DX_DU_FRACT                                                      0x00000840
+#define  NV50_2D_SIFC_DX_DU_INT                                                                0x00000844
+#define  NV50_2D_SIFC_DY_DV_FRACT                                                      0x00000848
+#define  NV50_2D_SIFC_DY_DV_INT                                                                0x0000084c
+#define  NV50_2D_SIFC_DST_X_FRACT                                                      0x00000850
+#define  NV50_2D_SIFC_DST_X_INT                                                                0x00000854
+#define  NV50_2D_SIFC_DST_Y_FRACT                                                      0x00000858
+#define  NV50_2D_SIFC_DST_Y_INT                                                                0x0000085c
 #define  NV50_2D_SIFC_DATA                                                             0x00000860
 #define  NV50_2D_BLIT_DST_X                                                            0x000008b0
 #define  NV50_2D_BLIT_DST_Y                                                            0x000008b4
 #define  NV50_2D_BLIT_DST_W                                                            0x000008b8
 #define  NV50_2D_BLIT_DST_H                                                            0x000008bc
-#define  NV50_2D_BLIT_SRC_X                                                            0x000008d4
-#define  NV50_2D_BLIT_SRC_Y                                                            0x000008dc
+#define  NV50_2D_BLIT_DU_DX_FRACT                                                      0x000008c0
+#define  NV50_2D_BLIT_DU_DX_INT                                                                0x000008c4
+#define  NV50_2D_BLIT_DV_DY_FRACT                                                      0x000008c8
+#define  NV50_2D_BLIT_DV_DY_INT                                                                0x000008cc
+#define  NV50_2D_BLIT_SRC_X_FRACT                                                      0x000008d0
+#define  NV50_2D_BLIT_SRC_X_INT                                                                0x000008d4
+#define  NV50_2D_BLIT_SRC_Y_FRACT                                                      0x000008d8
+#define  NV50_2D_BLIT_SRC_Y_INT                                                                0x000008dc
 
 
 #define NV50_MEMORY_TO_MEMORY_FORMAT                                                   0x00005039
@@ -7501,20 +7624,26 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_IN                                   0x00000204
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_IN                                  0x00000208
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_IN                                 0x0000020c
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_IN                                  0x00000210
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Z                             0x00000214
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN                               0x00000218
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X_SHIFT                      0
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X_MASK                       0x0000ffff
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y_SHIFT                      16
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y_MASK                       0xffff0000
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_OUT                                       0x0000021c
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_OUT                                  0x00000220
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_OUT                                 0x00000224
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_OUT                                        0x00000228
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_OUT                                 0x0000022c
+#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Z                            0x00000230
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT                              0x00000234
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X_SHIFT                     0
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X_MASK                      0x0000ffff
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y_SHIFT                     16
+#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y_MASK                      0xffff0000
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH                                   0x00000238
 #define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH                                  0x0000023c
-#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN                                                0x0000030c
-#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT                                       0x00000310
-#define  NV50_MEMORY_TO_MEMORY_FORMAT_PITCH_IN                                         0x00000314
-#define  NV50_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT                                                0x00000318
-#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN                                   0x0000031c
-#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT                                       0x00000320
 
 
 #define NV50TCL                                                                                0x00005097
@@ -7522,10 +7651,19 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_NOP                                                                   0x00000100
 #define  NV50TCL_NOTIFY                                                                        0x00000104
 #define  NV50TCL_DMA_NOTIFY                                                            0x00000180
-#define  NV50TCL_DMA_UNK0(x)                                                           (0x00000184+((x)*4))
-#define  NV50TCL_DMA_UNK0__SIZE                                                                0x0000000b
-#define  NV50TCL_DMA_UNK1(x)                                                           (0x000001c0+((x)*4))
-#define  NV50TCL_DMA_UNK1__SIZE                                                                0x00000008
+#define  NV50TCL_DMA_ZETA                                                              0x00000184
+#define  NV50TCL_DMA_QUERY                                                             0x00000188
+#define  NV50TCL_DMA_VTXBUF0                                                           0x0000018c
+#define  NV50TCL_DMA_LOCAL                                                             0x00000190
+#define  NV50TCL_DMA_STACK                                                             0x00000194
+#define  NV50TCL_DMA_CODE_CB                                                           0x00000198
+#define  NV50TCL_DMA_TSC                                                               0x0000019c
+#define  NV50TCL_DMA_TIC                                                               0x000001a0
+#define  NV50TCL_DMA_TEXTURE                                                           0x000001a4
+#define  NV50TCL_DMA_STRMOUT                                                           0x000001a8
+#define  NV50TCL_DMA_UNK01AC                                                           0x000001ac
+#define  NV50TCL_DMA_COLOR(x)                                                          (0x000001c0+((x)*4))
+#define  NV50TCL_DMA_COLOR__SIZE                                                       0x00000008
 #define  NV50TCL_RT_ADDRESS_HIGH(x)                                                    (0x00000200+((x)*32))
 #define  NV50TCL_RT_ADDRESS_HIGH__SIZE                                                 0x00000008
 #define  NV50TCL_RT_ADDRESS_LOW(x)                                                     (0x00000204+((x)*32))
@@ -7533,40 +7671,68 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_RT_FORMAT(x)                                                          (0x00000208+((x)*32))
 #define  NV50TCL_RT_FORMAT__SIZE                                                       0x00000008
 #define   NV50TCL_RT_FORMAT_R32G32B32A32_FLOAT                                         0x000000c0
-#define   NV50TCL_RT_FORMAT_R32G32B32_FLOAT                                            0x000000c3
+#define   NV50TCL_RT_FORMAT_R32G32B32A32_SINT                                          0x000000c1
+#define   NV50TCL_RT_FORMAT_R32G32B32A32_UINT                                          0x000000c2
+#define   NV50TCL_RT_FORMAT_R32G32B32X32_FLOAT                                         0x000000c3
 #define   NV50TCL_RT_FORMAT_R16G16B16A16_UNORM                                         0x000000c6
 #define   NV50TCL_RT_FORMAT_R16G16B16A16_SNORM                                         0x000000c7
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_SINT                                          0x000000c8
+#define   NV50TCL_RT_FORMAT_R16G16B16A16_UINT                                          0x000000c9
 #define   NV50TCL_RT_FORMAT_R16G16B16A16_FLOAT                                         0x000000ca
 #define   NV50TCL_RT_FORMAT_R32G32_FLOAT                                               0x000000cb
+#define   NV50TCL_RT_FORMAT_R32G32_SINT                                                        0x000000cc
+#define   NV50TCL_RT_FORMAT_R32G32_UINT                                                        0x000000cd
 #define   NV50TCL_RT_FORMAT_R16G16B16X16_FLOAT                                         0x000000ce
 #define   NV50TCL_RT_FORMAT_A8R8G8B8_UNORM                                             0x000000cf
+#define   NV50TCL_RT_FORMAT_A8R8G8B8_SRGB                                              0x000000d0
 #define   NV50TCL_RT_FORMAT_A2B10G10R10_UNORM                                          0x000000d1
-#define   NV50TCL_RT_FORMAT_A8B8G8R8_UNORM                                             0x000000d6
+#define   NV50TCL_RT_FORMAT_A2B10G10R10_UINT                                           0x000000d2
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_UNORM                                             0x000000d5
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_SRGB                                              0x000000d6
 #define   NV50TCL_RT_FORMAT_A8B8G8R8_SNORM                                             0x000000d7
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_SINT                                              0x000000d8
+#define   NV50TCL_RT_FORMAT_A8B8G8R8_UINT                                              0x000000d9
 #define   NV50TCL_RT_FORMAT_R16G16_UNORM                                               0x000000da
 #define   NV50TCL_RT_FORMAT_R16G16_SNORM                                               0x000000db
+#define   NV50TCL_RT_FORMAT_R16G16_SINT                                                        0x000000dc
+#define   NV50TCL_RT_FORMAT_R16G16_UINT                                                        0x000000dd
 #define   NV50TCL_RT_FORMAT_R16G16_FLOAT                                               0x000000de
 #define   NV50TCL_RT_FORMAT_A2R10G10B10_UNORM                                          0x000000df
 #define   NV50TCL_RT_FORMAT_B10G11R11_FLOAT                                            0x000000e0
 #define   NV50TCL_RT_FORMAT_R32_FLOAT                                                  0x000000e5
 #define   NV50TCL_RT_FORMAT_X8R8G8B8_UNORM                                             0x000000e6
+#define   NV50TCL_RT_FORMAT_X8R8G8B8_SRGB                                              0x000000e7
 #define   NV50TCL_RT_FORMAT_R5G6B5_UNORM                                               0x000000e8
-#define   NV50TCL_RT_FORMAT_R16_FLOAT                                                  0x000000e9
+#define   NV50TCL_RT_FORMAT_A1R5G5B5_UNORM                                             0x000000e9
 #define   NV50TCL_RT_FORMAT_R8G8_UNORM                                                 0x000000ea
 #define   NV50TCL_RT_FORMAT_R8G8_SNORM                                                 0x000000eb
+#define   NV50TCL_RT_FORMAT_R8G8_SINT                                                  0x000000ec
+#define   NV50TCL_RT_FORMAT_R8G8_UINT                                                  0x000000ed
 #define   NV50TCL_RT_FORMAT_R16_UNORM                                                  0x000000ee
 #define   NV50TCL_RT_FORMAT_R16_SNORM                                                  0x000000ef
+#define   NV50TCL_RT_FORMAT_R16_SINT                                                   0x000000f0
+#define   NV50TCL_RT_FORMAT_R16_UINT                                                   0x000000f1
+#define   NV50TCL_RT_FORMAT_R16_FLOAT                                                  0x000000f2
 #define   NV50TCL_RT_FORMAT_R8_UNORM                                                   0x000000f3
-#define   NV50TCL_RT_FORMAT_R32_BOOLEAN                                                        0x000000f6
+#define   NV50TCL_RT_FORMAT_R8_SNORM                                                   0x000000f4
+#define   NV50TCL_RT_FORMAT_R8_SINT                                                    0x000000f5
+#define   NV50TCL_RT_FORMAT_R8_UINT                                                    0x000000f6
 #define   NV50TCL_RT_FORMAT_A8_UNORM                                                   0x000000f7
-#define   NV50TCL_RT_FORMAT_X1B5G5R5_UNORM                                             0x000000f8
+#define   NV50TCL_RT_FORMAT_X1R5G5B5_UNORM                                             0x000000f8
 #define   NV50TCL_RT_FORMAT_X8B8G8R8_UNORM                                             0x000000f9
+#define   NV50TCL_RT_FORMAT_X8B8G8R8_SRGB                                              0x000000fa
 #define  NV50TCL_RT_TILE_MODE(x)                                                       (0x0000020c+((x)*32))
 #define  NV50TCL_RT_TILE_MODE__SIZE                                                    0x00000008
-#define  NV50TCL_RT_UNK4(x)                                                            (0x00000210+((x)*32))
-#define  NV50TCL_RT_UNK4__SIZE                                                         0x00000008
+#define  NV50TCL_RT_LAYER_STRIDE(x)                                                    (0x00000210+((x)*32))
+#define  NV50TCL_RT_LAYER_STRIDE__SIZE                                                 0x00000008
 #define  NV50TCL_VTX_ATTR_1F(x)                                                                (0x00000300+((x)*4))
 #define  NV50TCL_VTX_ATTR_1F__SIZE                                                     0x00000010
+#define  NV50TCL_VTX_ATTR_2H(x)                                                                (0x00000340+((x)*4))
+#define  NV50TCL_VTX_ATTR_2H__SIZE                                                     0x00000010
+#define   NV50TCL_VTX_ATTR_2H_X_SHIFT                                                  0
+#define   NV50TCL_VTX_ATTR_2H_X_MASK                                                   0x0000ffff
+#define   NV50TCL_VTX_ATTR_2H_Y_SHIFT                                                  16
+#define   NV50TCL_VTX_ATTR_2H_Y_MASK                                                   0xffff0000
 #define  NV50TCL_VTX_ATTR_2F_X(x)                                                      (0x00000380+((x)*8))
 #define  NV50TCL_VTX_ATTR_2F_X__SIZE                                                   0x00000010
 #define  NV50TCL_VTX_ATTR_2F_Y(x)                                                      (0x00000384+((x)*8))
@@ -7577,8 +7743,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_VTX_ATTR_3F_Y__SIZE                                                   0x00000010
 #define  NV50TCL_VTX_ATTR_3F_Z(x)                                                      (0x00000408+((x)*16))
 #define  NV50TCL_VTX_ATTR_3F_Z__SIZE                                                   0x00000010
-#define  NV50TCL_VTX_ATTR_3F_W(x)                                                      (0x0000040c+((x)*16))
-#define  NV50TCL_VTX_ATTR_3F_W__SIZE                                                   0x00000010
 #define  NV50TCL_VTX_ATTR_4F_X(x)                                                      (0x00000500+((x)*16))
 #define  NV50TCL_VTX_ATTR_4F_X__SIZE                                                   0x00000010
 #define  NV50TCL_VTX_ATTR_4F_Y(x)                                                      (0x00000504+((x)*16))
@@ -7587,12 +7751,30 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_VTX_ATTR_4F_Z__SIZE                                                   0x00000010
 #define  NV50TCL_VTX_ATTR_4F_W(x)                                                      (0x0000050c+((x)*16))
 #define  NV50TCL_VTX_ATTR_4F_W__SIZE                                                   0x00000010
+#define  NV50TCL_VTX_ATTR_4H_0(x)                                                      (0x00000600+((x)*8))
+#define  NV50TCL_VTX_ATTR_4H_0__SIZE                                                   0x00000010
+#define   NV50TCL_VTX_ATTR_4H_0_X_SHIFT                                                        0
+#define   NV50TCL_VTX_ATTR_4H_0_X_MASK                                                 0x0000ffff
+#define   NV50TCL_VTX_ATTR_4H_0_Y_SHIFT                                                        16
+#define   NV50TCL_VTX_ATTR_4H_0_Y_MASK                                                 0xffff0000
+#define  NV50TCL_VTX_ATTR_4H_1(x)                                                      (0x00000604+((x)*8))
+#define  NV50TCL_VTX_ATTR_4H_1__SIZE                                                   0x00000010
+#define   NV50TCL_VTX_ATTR_4H_1_Z_SHIFT                                                        0
+#define   NV50TCL_VTX_ATTR_4H_1_Z_MASK                                                 0x0000ffff
+#define   NV50TCL_VTX_ATTR_4H_1_W_SHIFT                                                        16
+#define   NV50TCL_VTX_ATTR_4H_1_W_MASK                                                 0xffff0000
 #define  NV50TCL_VTX_ATTR_2I(x)                                                                (0x00000680+((x)*4))
 #define  NV50TCL_VTX_ATTR_2I__SIZE                                                     0x00000010
 #define   NV50TCL_VTX_ATTR_2I_X_SHIFT                                                  0
 #define   NV50TCL_VTX_ATTR_2I_X_MASK                                                   0x0000ffff
 #define   NV50TCL_VTX_ATTR_2I_Y_SHIFT                                                  16
 #define   NV50TCL_VTX_ATTR_2I_Y_MASK                                                   0xffff0000
+#define  NV50TCL_VTX_ATTR_2NI(x)                                                       (0x000006c0+((x)*4))
+#define  NV50TCL_VTX_ATTR_2NI__SIZE                                                    0x00000010
+#define   NV50TCL_VTX_ATTR_2NI_X_SHIFT                                                 0
+#define   NV50TCL_VTX_ATTR_2NI_X_MASK                                                  0x0000ffff
+#define   NV50TCL_VTX_ATTR_2NI_Y_SHIFT                                                 16
+#define   NV50TCL_VTX_ATTR_2NI_Y_MASK                                                  0xffff0000
 #define  NV50TCL_VTX_ATTR_4I_0(x)                                                      (0x00000700+((x)*8))
 #define  NV50TCL_VTX_ATTR_4I_0__SIZE                                                   0x00000010
 #define   NV50TCL_VTX_ATTR_4I_0_X_SHIFT                                                        0
@@ -7617,30 +7799,83 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_VTX_ATTR_4NI_1_Z_MASK                                                        0x0000ffff
 #define   NV50TCL_VTX_ATTR_4NI_1_W_SHIFT                                               16
 #define   NV50TCL_VTX_ATTR_4NI_1_W_MASK                                                        0xffff0000
+#define  NV50TCL_VTX_ATTR_4UB(x)                                                       (0x00000800+((x)*4))
+#define  NV50TCL_VTX_ATTR_4UB__SIZE                                                    0x00000010
+#define   NV50TCL_VTX_ATTR_4UB_X_SHIFT                                                 0
+#define   NV50TCL_VTX_ATTR_4UB_X_MASK                                                  0x000000ff
+#define   NV50TCL_VTX_ATTR_4UB_Y_SHIFT                                                 8
+#define   NV50TCL_VTX_ATTR_4UB_Y_MASK                                                  0x0000ff00
+#define   NV50TCL_VTX_ATTR_4UB_Z_SHIFT                                                 16
+#define   NV50TCL_VTX_ATTR_4UB_Z_MASK                                                  0x00ff0000
+#define   NV50TCL_VTX_ATTR_4UB_W_SHIFT                                                 24
+#define   NV50TCL_VTX_ATTR_4UB_W_MASK                                                  0xff000000
+#define  NV50TCL_VTX_ATTR_4B(x)                                                                (0x00000840+((x)*4))
+#define  NV50TCL_VTX_ATTR_4B__SIZE                                                     0x00000010
+#define   NV50TCL_VTX_ATTR_4B_X_SHIFT                                                  0
+#define   NV50TCL_VTX_ATTR_4B_X_MASK                                                   0x000000ff
+#define   NV50TCL_VTX_ATTR_4B_Y_SHIFT                                                  8
+#define   NV50TCL_VTX_ATTR_4B_Y_MASK                                                   0x0000ff00
+#define   NV50TCL_VTX_ATTR_4B_Z_SHIFT                                                  16
+#define   NV50TCL_VTX_ATTR_4B_Z_MASK                                                   0x00ff0000
+#define   NV50TCL_VTX_ATTR_4B_W_SHIFT                                                  24
+#define   NV50TCL_VTX_ATTR_4B_W_MASK                                                   0xff000000
+#define  NV50TCL_VTX_ATTR_4NUB(x)                                                      (0x00000880+((x)*4))
+#define  NV50TCL_VTX_ATTR_4NUB__SIZE                                                   0x00000010
+#define   NV50TCL_VTX_ATTR_4NUB_X_SHIFT                                                        0
+#define   NV50TCL_VTX_ATTR_4NUB_X_MASK                                                 0x000000ff
+#define   NV50TCL_VTX_ATTR_4NUB_Y_SHIFT                                                        8
+#define   NV50TCL_VTX_ATTR_4NUB_Y_MASK                                                 0x0000ff00
+#define   NV50TCL_VTX_ATTR_4NUB_Z_SHIFT                                                        16
+#define   NV50TCL_VTX_ATTR_4NUB_Z_MASK                                                 0x00ff0000
+#define   NV50TCL_VTX_ATTR_4NUB_W_SHIFT                                                        24
+#define   NV50TCL_VTX_ATTR_4NUB_W_MASK                                                 0xff000000
+#define  NV50TCL_VTX_ATTR_4NB(x)                                                       (0x000008c0+((x)*4))
+#define  NV50TCL_VTX_ATTR_4NB__SIZE                                                    0x00000010
+#define   NV50TCL_VTX_ATTR_4NB_X_SHIFT                                                 0
+#define   NV50TCL_VTX_ATTR_4NB_X_MASK                                                  0x000000ff
+#define   NV50TCL_VTX_ATTR_4NB_Y_SHIFT                                                 8
+#define   NV50TCL_VTX_ATTR_4NB_Y_MASK                                                  0x0000ff00
+#define   NV50TCL_VTX_ATTR_4NB_Z_SHIFT                                                 16
+#define   NV50TCL_VTX_ATTR_4NB_Z_MASK                                                  0x00ff0000
+#define   NV50TCL_VTX_ATTR_4NB_W_SHIFT                                                 24
+#define   NV50TCL_VTX_ATTR_4NB_W_MASK                                                  0xff000000
 #define  NV50TCL_VERTEX_ARRAY_FORMAT(x)                                                        (0x00000900+((x)*16))
 #define  NV50TCL_VERTEX_ARRAY_FORMAT__SIZE                                             0x00000010
 #define   NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_SHIFT                                     0
-#define   NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_MASK                                      0x000000ff
-#define  NV50TCL_UNK0904_OFFSET_HIGH(x)                                                        (0x00000904+((x)*16))
-#define  NV50TCL_UNK0904_OFFSET_HIGH__SIZE                                             0x00000010
-#define  NV50TCL_UNK0904_OFFSET_LOW(x)                                                 (0x00000908+((x)*16))
-#define  NV50TCL_UNK0904_OFFSET_LOW__SIZE                                              0x00000010
-#define  NV50TCL_VIEWPORT_SCALE(x)                                                     (0x00000a00+((x)*4))
-#define  NV50TCL_VIEWPORT_SCALE__SIZE                                                  0x00000003
-#define  NV50TCL_VIEWPORT_TRANSLATE(x)                                                 (0x00000a0c+((x)*4))
-#define  NV50TCL_VIEWPORT_TRANSLATE__SIZE                                              0x00000003
-#define  NV50TCL_VIEWPORT_HORIZ                                                                0x00000c00
+#define   NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_MASK                                      0x00000fff
+#define   NV50TCL_VERTEX_ARRAY_FORMAT_ENABLE                                           (1 << 29)
+#define  NV50TCL_VERTEX_ARRAY_START_HIGH(x)                                            (0x00000904+((x)*16))
+#define  NV50TCL_VERTEX_ARRAY_START_HIGH__SIZE                                         0x00000010
+#define  NV50TCL_VERTEX_ARRAY_START_LOW(x)                                             (0x00000908+((x)*16))
+#define  NV50TCL_VERTEX_ARRAY_START_LOW__SIZE                                          0x00000010
+#define  NV50TCL_VIEWPORT_SCALE_X(x)                                                   (0x00000a00+((x)*32))
+#define  NV50TCL_VIEWPORT_SCALE_X__SIZE                                                        0x00000010
+#define  NV50TCL_VIEWPORT_SCALE_Y(x)                                                   (0x00000a04+((x)*32))
+#define  NV50TCL_VIEWPORT_SCALE_Y__SIZE                                                        0x00000010
+#define  NV50TCL_VIEWPORT_SCALE_Z(x)                                                   (0x00000a08+((x)*32))
+#define  NV50TCL_VIEWPORT_SCALE_Z__SIZE                                                        0x00000010
+#define  NV50TCL_VIEWPORT_TRANSLATE_X(x)                                               (0x00000a0c+((x)*32))
+#define  NV50TCL_VIEWPORT_TRANSLATE_X__SIZE                                            0x00000010
+#define  NV50TCL_VIEWPORT_TRANSLATE_Y(x)                                               (0x00000a10+((x)*32))
+#define  NV50TCL_VIEWPORT_TRANSLATE_Y__SIZE                                            0x00000010
+#define  NV50TCL_VIEWPORT_TRANSLATE_Z(x)                                               (0x00000a14+((x)*32))
+#define  NV50TCL_VIEWPORT_TRANSLATE_Z__SIZE                                            0x00000010
+#define  NV50TCL_VIEWPORT_HORIZ(x)                                                     (0x00000c00+((x)*16))
+#define  NV50TCL_VIEWPORT_HORIZ__SIZE                                                  0x00000010
 #define   NV50TCL_VIEWPORT_HORIZ_X_SHIFT                                               0
 #define   NV50TCL_VIEWPORT_HORIZ_X_MASK                                                        0x0000ffff
 #define   NV50TCL_VIEWPORT_HORIZ_W_SHIFT                                               16
 #define   NV50TCL_VIEWPORT_HORIZ_W_MASK                                                        0xffff0000
-#define  NV50TCL_VIEWPORT_VERT                                                         0x00000c04
+#define  NV50TCL_VIEWPORT_VERT(x)                                                      (0x00000c04+((x)*16))
+#define  NV50TCL_VIEWPORT_VERT__SIZE                                                   0x00000010
 #define   NV50TCL_VIEWPORT_VERT_Y_SHIFT                                                        0
 #define   NV50TCL_VIEWPORT_VERT_Y_MASK                                                 0x0000ffff
 #define   NV50TCL_VIEWPORT_VERT_H_SHIFT                                                        16
 #define   NV50TCL_VIEWPORT_VERT_H_MASK                                                 0xffff0000
-#define  NV50TCL_DEPTH_RANGE_NEAR                                                      0x00000c08
-#define  NV50TCL_DEPTH_RANGE_FAR                                                       0x00000c0c
+#define  NV50TCL_DEPTH_RANGE_NEAR(x)                                                   (0x00000c08+((x)*16))
+#define  NV50TCL_DEPTH_RANGE_NEAR__SIZE                                                        0x00000010
+#define  NV50TCL_DEPTH_RANGE_FAR(x)                                                    (0x00000c0c+((x)*16))
+#define  NV50TCL_DEPTH_RANGE_FAR__SIZE                                                 0x00000010
 #define  NV50TCL_VIEWPORT_CLIP_HORIZ(x)                                                        (0x00000d00+((x)*8))
 #define  NV50TCL_VIEWPORT_CLIP_HORIZ__SIZE                                             0x00000008
 #define  NV50TCL_VIEWPORT_CLIP_VERT(x)                                                 (0x00000d04+((x)*8))
@@ -7650,8 +7885,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_CLEAR_COLOR(x)                                                                (0x00000d80+((x)*4))
 #define  NV50TCL_CLEAR_COLOR__SIZE                                                     0x00000004
 #define  NV50TCL_CLEAR_DEPTH                                                           0x00000d90
+#define  NV50TCL_STACK_ADDRESS_HIGH                                                    0x00000d94
+#define  NV50TCL_STACK_ADDRESS_LOW                                                     0x00000d98
 #define  NV50TCL_CLEAR_STENCIL                                                         0x00000da0
-#define  NV50TCL_STRMOUT_UNK0DA8                                                       0x00000da8
+#define  NV50TCL_STRMOUT_PRIMITIVE_COUNT                                               0x00000da8
 #define  NV50TCL_POLYGON_MODE_FRONT                                                    0x00000dac
 #define   NV50TCL_POLYGON_MODE_FRONT_POINT                                             0x00001b00
 #define   NV50TCL_POLYGON_MODE_FRONT_LINE                                              0x00001b01
@@ -7664,29 +7901,33 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_POLYGON_OFFSET_POINT_ENABLE                                           0x00000dc0
 #define  NV50TCL_POLYGON_OFFSET_LINE_ENABLE                                            0x00000dc4
 #define  NV50TCL_POLYGON_OFFSET_FILL_ENABLE                                            0x00000dc8
-#define  NV50TCL_WINDOW_LEFT                                                           0x00000df8
-#define  NV50TCL_WINDOW_BOTTOM                                                         0x00000dfc
-#define  NV50TCL_SCISSOR_ENABLE                                                                0x00000e00
-#define  NV50TCL_SCISSOR_HORIZ                                                         0x00000e04
-#define   NV50TCL_SCISSOR_HORIZ_L_SHIFT                                                        0
-#define   NV50TCL_SCISSOR_HORIZ_L_MASK                                                 0x0000ffff
-#define   NV50TCL_SCISSOR_HORIZ_R_SHIFT                                                        16
-#define   NV50TCL_SCISSOR_HORIZ_R_MASK                                                 0xffff0000
-#define  NV50TCL_SCISSOR_VERT                                                          0x00000e08
-#define   NV50TCL_SCISSOR_VERT_B_SHIFT                                                 0
-#define   NV50TCL_SCISSOR_VERT_B_MASK                                                  0x0000ffff
-#define   NV50TCL_SCISSOR_VERT_T_SHIFT                                                 16
-#define   NV50TCL_SCISSOR_VERT_T_MASK                                                  0xffff0000
+#define  NV50TCL_WATCHDOG_TIMER                                                                0x00000de4
+#define  NV50TCL_WINDOW_OFFSET_X                                                       0x00000df8
+#define  NV50TCL_WINDOW_OFFSET_Y                                                       0x00000dfc
+#define  NV50TCL_SCISSOR_ENABLE(x)                                                     (0x00000e00+((x)*16))
+#define  NV50TCL_SCISSOR_ENABLE__SIZE                                                  0x00000010
+#define  NV50TCL_SCISSOR_HORIZ(x)                                                      (0x00000e04+((x)*16))
+#define  NV50TCL_SCISSOR_HORIZ__SIZE                                                   0x00000010
+#define   NV50TCL_SCISSOR_HORIZ_MIN_SHIFT                                              0
+#define   NV50TCL_SCISSOR_HORIZ_MIN_MASK                                               0x0000ffff
+#define   NV50TCL_SCISSOR_HORIZ_MAX_SHIFT                                              16
+#define   NV50TCL_SCISSOR_HORIZ_MAX_MASK                                               0xffff0000
+#define  NV50TCL_SCISSOR_VERT(x)                                                       (0x00000e08+((x)*16))
+#define  NV50TCL_SCISSOR_VERT__SIZE                                                    0x00000010
+#define   NV50TCL_SCISSOR_VERT_MIN_SHIFT                                               0
+#define   NV50TCL_SCISSOR_VERT_MIN_MASK                                                        0x0000ffff
+#define   NV50TCL_SCISSOR_VERT_MAX_SHIFT                                               16
+#define   NV50TCL_SCISSOR_VERT_MAX_MASK                                                        0xffff0000
 #define  NV50TCL_CB_ADDR                                                               0x00000f00
 #define   NV50TCL_CB_ADDR_ID_SHIFT                                                     8
-#define   NV50TCL_CB_ADDR_ID_MASK                                                      0xffffff00
+#define   NV50TCL_CB_ADDR_ID_MASK                                                      0x003fff00
 #define   NV50TCL_CB_ADDR_BUFFER_SHIFT                                                 0
-#define   NV50TCL_CB_ADDR_BUFFER_MASK                                                  0x000000ff
+#define   NV50TCL_CB_ADDR_BUFFER_MASK                                                  0x0000007f
 #define  NV50TCL_CB_DATA(x)                                                            (0x00000f04+((x)*4))
 #define  NV50TCL_CB_DATA__SIZE                                                         0x00000010
-#define  NV50TCL_STENCIL_FRONT_FUNC_REF                                                        0x00000f54
-#define  NV50TCL_STENCIL_FRONT_MASK                                                    0x00000f58
-#define  NV50TCL_STENCIL_FRONT_FUNC_MASK                                               0x00000f5c
+#define  NV50TCL_STENCIL_BACK_FUNC_REF                                                 0x00000f54
+#define  NV50TCL_STENCIL_BACK_MASK                                                     0x00000f58
+#define  NV50TCL_STENCIL_BACK_FUNC_MASK                                                        0x00000f5c
 #define  NV50TCL_GP_ADDRESS_HIGH                                                       0x00000f70
 #define  NV50TCL_GP_ADDRESS_LOW                                                                0x00000f74
 #define  NV50TCL_VP_ADDRESS_HIGH                                                       0x00000f7c
@@ -7703,12 +7944,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_ZETA_ADDRESS_LOW                                                      0x00000fe4
 #define  NV50TCL_ZETA_FORMAT                                                           0x00000fe8
 #define   NV50TCL_ZETA_FORMAT_Z32_FLOAT                                                        0x0000000a
+#define   NV50TCL_ZETA_FORMAT_Z16_UNORM                                                        0x00000013
 #define   NV50TCL_ZETA_FORMAT_Z24S8_UNORM                                              0x00000014
 #define   NV50TCL_ZETA_FORMAT_X8Z24_UNORM                                              0x00000015
 #define   NV50TCL_ZETA_FORMAT_S8Z24_UNORM                                              0x00000016
 #define   NV50TCL_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM                                    0x00000019
 #define  NV50TCL_ZETA_TILE_MODE                                                                0x00000fec
-#define  NV50TCL_ZETA_UNK                                                              0x00000ff0
+#define  NV50TCL_ZETA_LAYER_STRIDE                                                     0x00000ff0
 #define  NV50TCL_SCREEN_SCISSOR_HORIZ                                                  0x00000ff4
 #define   NV50TCL_SCREEN_SCISSOR_HORIZ_W_SHIFT                                         16
 #define   NV50TCL_SCREEN_SCISSOR_HORIZ_W_MASK                                          0xffff0000
@@ -7719,12 +7961,40 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_SCREEN_SCISSOR_VERT_H_MASK                                           0xffff0000
 #define   NV50TCL_SCREEN_SCISSOR_VERT_Y_SHIFT                                          0
 #define   NV50TCL_SCREEN_SCISSOR_VERT_Y_MASK                                           0x0000ffff
-#define  NV50TCL_UNK1080_OFFSET_HIGH(x)                                                        (0x00001080+((x)*8))
-#define  NV50TCL_UNK1080_OFFSET_HIGH__SIZE                                             0x00000010
-#define  NV50TCL_UNK1080_OFFSET_LOW(x)                                                 (0x00001084+((x)*8))
-#define  NV50TCL_UNK1080_OFFSET_LOW__SIZE                                              0x00000010
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_HIGH(x)                                            (0x00001080+((x)*8))
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_HIGH__SIZE                                         0x00000010
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_LOW(x)                                             (0x00001084+((x)*8))
+#define  NV50TCL_VERTEX_ARRAY_LIMIT_LOW__SIZE                                          0x00000010
+#define  NV50TCL_RT_CONTROL                                                            0x0000121c
+#define   NV50TCL_RT_CONTROL_COUNT_SHIFT                                               0
+#define   NV50TCL_RT_CONTROL_COUNT_MASK                                                        0x0000000f
+#define   NV50TCL_RT_CONTROL_MAP0_SHIFT                                                        4
+#define   NV50TCL_RT_CONTROL_MAP0_MASK                                                 0x00000070
+#define   NV50TCL_RT_CONTROL_MAP1_SHIFT                                                        7
+#define   NV50TCL_RT_CONTROL_MAP1_MASK                                                 0x00000380
+#define   NV50TCL_RT_CONTROL_MAP2_SHIFT                                                        10
+#define   NV50TCL_RT_CONTROL_MAP2_MASK                                                 0x00001c00
+#define   NV50TCL_RT_CONTROL_MAP3_SHIFT                                                        13
+#define   NV50TCL_RT_CONTROL_MAP3_MASK                                                 0x0000e000
+#define   NV50TCL_RT_CONTROL_MAP4_SHIFT                                                        16
+#define   NV50TCL_RT_CONTROL_MAP4_MASK                                                 0x00070000
+#define   NV50TCL_RT_CONTROL_MAP5_SHIFT                                                        19
+#define   NV50TCL_RT_CONTROL_MAP5_MASK                                                 0x00380000
+#define   NV50TCL_RT_CONTROL_MAP6_SHIFT                                                        22
+#define   NV50TCL_RT_CONTROL_MAP6_MASK                                                 0x01c00000
+#define   NV50TCL_RT_CONTROL_MAP7_SHIFT                                                        25
+#define   NV50TCL_RT_CONTROL_MAP7_MASK                                                 0x0e000000
+#define  NV50TCL_RT_ARRAY_MODE                                                         0x00001224
+#define   NV50TCL_RT_ARRAY_MODE_LAYERS_SHIFT                                           0
+#define   NV50TCL_RT_ARRAY_MODE_LAYERS_MASK                                            0x0000ffff
+#define   NV50TCL_RT_ARRAY_MODE_VOLUME                                                 (1 << 16)
 #define  NV50TCL_ZETA_HORIZ                                                            0x00001228
 #define  NV50TCL_ZETA_VERT                                                             0x0000122c
+#define  NV50TCL_ZETA_ARRAY_MODE                                                       0x00001230
+#define   NV50TCL_ZETA_ARRAY_MODE_LAYERS_SHIFT                                         0
+#define   NV50TCL_ZETA_ARRAY_MODE_LAYERS_MASK                                          0x0000ffff
+#define   NV50TCL_ZETA_ARRAY_MODE_UNK                                                  (1 << 16)
+#define  NV50TCL_LINKED_TSC                                                            0x00001234
 #define  NV50TCL_RT_HORIZ(x)                                                           (0x00001240+((x)*8))
 #define  NV50TCL_RT_HORIZ__SIZE                                                                0x00000008
 #define  NV50TCL_RT_VERT(x)                                                            (0x00001244+((x)*8))
@@ -7735,7 +8005,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_CB_DEF_SET_SIZE_SHIFT                                                        0
 #define   NV50TCL_CB_DEF_SET_SIZE_MASK                                                 0x0000ffff
 #define   NV50TCL_CB_DEF_SET_BUFFER_SHIFT                                              16
-#define   NV50TCL_CB_DEF_SET_BUFFER_MASK                                               0xffff0000
+#define   NV50TCL_CB_DEF_SET_BUFFER_MASK                                               0x007f0000
 #define  NV50TCL_STRMOUT_BUFFERS_CTRL                                                  0x00001294
 #define   NV50TCL_STRMOUT_BUFFERS_CTRL_INTERLEAVED                                     (1 <<  0)
 #define   NV50TCL_STRMOUT_BUFFERS_CTRL_SEPARATE_SHIFT                                  4
@@ -7747,15 +8017,33 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_SHADE_MODEL                                                           0x000012d4
 #define   NV50TCL_SHADE_MODEL_FLAT                                                     0x00001d00
 #define   NV50TCL_SHADE_MODEL_SMOOTH                                                   0x00001d01
+#define  NV50TCL_LOCAL_BASE_HIGH                                                       0x000012d8
+#define  NV50TCL_LOCAL_BASE_LOW                                                                0x000012dc
+#define  NV50TCL_LOCAL_SIZE_LOG                                                                0x000012e0
 #define  NV50TCL_DEPTH_WRITE_ENABLE                                                    0x000012e8
 #define  NV50TCL_ALPHA_TEST_ENABLE                                                     0x000012ec
+#define  NV50TCL_PM_SET(x)                                                             (0x000012f0+((x)*4))
+#define  NV50TCL_PM_SET__SIZE                                                          0x00000004
+#define  NV50TCL_VB_ELEMENT_U8_SETUP                                                   0x00001300
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_OFFSET_SHIFT                                     30
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_OFFSET_MASK                                      0xc0000000
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_COUNT_SHIFT                                      0
+#define   NV50TCL_VB_ELEMENT_U8_SETUP_COUNT_MASK                                       0x3fffffff
+#define  NV50TCL_VB_ELEMENT_U8                                                         0x00001304
+#define   NV50TCL_VB_ELEMENT_U8_I0_SHIFT                                               0
+#define   NV50TCL_VB_ELEMENT_U8_I0_MASK                                                        0x000000ff
+#define   NV50TCL_VB_ELEMENT_U8_I1_SHIFT                                               8
+#define   NV50TCL_VB_ELEMENT_U8_I1_MASK                                                        0x0000ff00
+#define   NV50TCL_VB_ELEMENT_U8_I2_SHIFT                                               16
+#define   NV50TCL_VB_ELEMENT_U8_I2_MASK                                                        0x00ff0000
+#define   NV50TCL_VB_ELEMENT_U8_I3_SHIFT                                               24
+#define   NV50TCL_VB_ELEMENT_U8_I3_MASK                                                        0xff000000
 #define  NV50TCL_DEPTH_TEST_FUNC                                                       0x0000130c
 #define   NV50TCL_DEPTH_TEST_FUNC_NEVER                                                        0x00000200
 #define   NV50TCL_DEPTH_TEST_FUNC_LESS                                                 0x00000201
 #define   NV50TCL_DEPTH_TEST_FUNC_EQUAL                                                        0x00000202
 #define   NV50TCL_DEPTH_TEST_FUNC_LEQUAL                                               0x00000203
 #define   NV50TCL_DEPTH_TEST_FUNC_GREATER                                              0x00000204
-#define   NV50TCL_DEPTH_TEST_FUNC_GREATER                                              0x00000204
 #define   NV50TCL_DEPTH_TEST_FUNC_NOTEQUAL                                             0x00000205
 #define   NV50TCL_DEPTH_TEST_FUNC_GEQUAL                                               0x00000206
 #define   NV50TCL_DEPTH_TEST_FUNC_ALWAYS                                               0x00000207
@@ -7766,7 +8054,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_ALPHA_TEST_FUNC_EQUAL                                                        0x00000202
 #define   NV50TCL_ALPHA_TEST_FUNC_LEQUAL                                               0x00000203
 #define   NV50TCL_ALPHA_TEST_FUNC_GREATER                                              0x00000204
-#define   NV50TCL_ALPHA_TEST_FUNC_GREATER                                              0x00000204
 #define   NV50TCL_ALPHA_TEST_FUNC_NOTEQUAL                                             0x00000205
 #define   NV50TCL_ALPHA_TEST_FUNC_GEQUAL                                               0x00000206
 #define   NV50TCL_ALPHA_TEST_FUNC_ALWAYS                                               0x00000207
@@ -7850,83 +8137,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA                                0x00008004
 #define  NV50TCL_BLEND_ENABLE(x)                                                       (0x00001360+((x)*4))
 #define  NV50TCL_BLEND_ENABLE__SIZE                                                    0x00000008
-#define  NV50TCL_STENCIL_BACK_ENABLE                                                   0x00001380
-#define  NV50TCL_STENCIL_BACK_OP_FAIL                                                  0x00001384
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_ZERO                                            0x00000000
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_INVERT                                          0x0000150a
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_KEEP                                            0x00001e00
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_REPLACE                                         0x00001e01
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR                                            0x00001e02
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR                                            0x00001e03
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP                                       0x00008507
-#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP                                       0x00008508
-#define  NV50TCL_STENCIL_BACK_OP_ZFAIL                                                 0x00001388
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_ZERO                                           0x00000000
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INVERT                                         0x0000150a
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_KEEP                                           0x00001e00
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_REPLACE                                                0x00001e01
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR                                           0x00001e02
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR                                           0x00001e03
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP                                      0x00008507
-#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP                                      0x00008508
-#define  NV50TCL_STENCIL_BACK_OP_ZPASS                                                 0x0000138c
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_ZERO                                           0x00000000
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INVERT                                         0x0000150a
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_KEEP                                           0x00001e00
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_REPLACE                                                0x00001e01
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR                                           0x00001e02
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR                                           0x00001e03
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP                                      0x00008507
-#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP                                      0x00008508
-#define  NV50TCL_STENCIL_BACK_FUNC_FUNC                                                        0x00001390
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NEVER                                         0x00000200
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LESS                                          0x00000201
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                         0x00000202
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                                0x00000203
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                      0x00000205
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                                0x00000206
-#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                                0x00000207
-#define  NV50TCL_STENCIL_BACK_FUNC_REF                                                 0x00001394
-#define  NV50TCL_STENCIL_BACK_MASK                                                     0x00001398
-#define  NV50TCL_STENCIL_BACK_FUNC_MASK                                                        0x0000139c
-#define  NV50TCL_FRAG_COLOR_CLAMP_EN                                                   0x000013a8
-#define  NV50TCL_LINE_WIDTH                                                            0x000013b0
-#define  NV50TCL_POINT_COORD_REPLACE_MAP(x)                                            (0x000013c0+((x)*4))
-#define  NV50TCL_POINT_COORD_REPLACE_MAP__SIZE                                         0x00000008
-#define  NV50TCL_VP_START_ID                                                           0x0000140c
-#define  NV50TCL_GP_START_ID                                                           0x00001410
-#define  NV50TCL_FP_START_ID                                                           0x00001414
-#define  NV50TCL_GP_VERTEX_OUTPUT_COUNT                                                        0x00001420
-#define  NV50TCL_SET_SAMPLER_TEX                                                       0x00001458
-#define   NV50TCL_SET_SAMPLER_TEX_SAMPLER_SHIFT                                                1
-#define   NV50TCL_SET_SAMPLER_TEX_SAMPLER_MASK                                         0x000001fe
-#define   NV50TCL_SET_SAMPLER_TEX_TIC_SHIFT                                            9
-#define   NV50TCL_SET_SAMPLER_TEX_TIC_MASK                                             0x0001fe00
-#define   NV50TCL_SET_SAMPLER_TEX_VALID                                                        (1 <<  0)
-#define  NV50TCL_STRMOUT_MAP(x)                                                                (0x00001480+((x)*4))
-#define  NV50TCL_STRMOUT_MAP__SIZE                                                     0x00000020
-#define  NV50TCL_VP_CLIP_DISTANCE_ENABLE                                               0x00001510
-#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_0                                            (1 <<  0)
-#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_1                                            (1 <<  1)
-#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_2                                            (1 <<  2)
-#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_3                                            (1 <<  3)
-#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_4                                            (1 <<  4)
-#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_5                                            (1 <<  5)
-#define  NV50TCL_POINT_SIZE                                                            0x00001518
-#define  NV50TCL_POINT_SPRITE_ENABLE                                                   0x00001520
-#define  NV50TCL_MULTISAMPLE_CTRL                                                      0x0000153c
-#define   NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_COVERAGE                                   (1 <<  0)
-#define   NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_ONE                                                (1 <<  4)
-#define  NV50TCL_TSC_ADDRESS_HIGH                                                      0x0000155c
-#define  NV50TCL_TSC_ADDRESS_LOW                                                       0x00001560
-#define  NV50TCL_POLYGON_OFFSET_FACTOR                                                 0x0000156c
-#define  NV50TCL_LINE_SMOOTH_ENABLE                                                    0x00001570
-#define  NV50TCL_TIC_ADDRESS_HIGH                                                      0x00001574
-#define  NV50TCL_TIC_ADDRESS_LOW                                                       0x00001578
-#define  NV50TCL_STENCIL_FRONT_ENABLE                                                  0x00001594
-#define  NV50TCL_STENCIL_FRONT_OP_FAIL                                                 0x00001598
+#define  NV50TCL_STENCIL_FRONT_ENABLE                                                  0x00001380
+#define  NV50TCL_STENCIL_FRONT_OP_FAIL                                                 0x00001384
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_ZERO                                           0x00000000
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_INVERT                                         0x0000150a
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_KEEP                                           0x00001e00
@@ -7935,7 +8147,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_DECR                                           0x00001e03
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP                                      0x00008507
 #define   NV50TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP                                      0x00008508
-#define  NV50TCL_STENCIL_FRONT_OP_ZFAIL                                                        0x0000159c
+#define  NV50TCL_STENCIL_FRONT_OP_ZFAIL                                                        0x00001388
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_ZERO                                          0x00000000
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_INVERT                                                0x0000150a
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_KEEP                                          0x00001e00
@@ -7944,7 +8156,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_DECR                                          0x00001e03
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP                                     0x00008507
 #define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP                                     0x00008508
-#define  NV50TCL_STENCIL_FRONT_OP_ZPASS                                                        0x000015a0
+#define  NV50TCL_STENCIL_FRONT_OP_ZPASS                                                        0x0000138c
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_ZERO                                          0x00000000
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_INVERT                                                0x0000150a
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_KEEP                                          0x00001e00
@@ -7953,17 +8165,135 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_DECR                                          0x00001e03
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP                                     0x00008507
 #define   NV50TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP                                     0x00008508
-#define  NV50TCL_STENCIL_FRONT_FUNC_FUNC                                               0x000015a4
+#define  NV50TCL_STENCIL_FRONT_FUNC_FUNC                                               0x00001390
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_NEVER                                                0x00000200
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_LESS                                         0x00000201
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL                                                0x00000202
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL                                       0x00000203
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
-#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GREATER                                      0x00000204
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL                                     0x00000205
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL                                       0x00000206
 #define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS                                       0x00000207
+#define  NV50TCL_STENCIL_FRONT_FUNC_REF                                                        0x00001394
+#define  NV50TCL_STENCIL_FRONT_MASK                                                    0x00001398
+#define  NV50TCL_STENCIL_FRONT_FUNC_MASK                                               0x0000139c
+#define  NV50TCL_FRAG_COLOR_CLAMP_EN                                                   0x000013a8
+#define  NV50TCL_Y_ORIGIN_BOTTOM                                                       0x000013ac
+#define  NV50TCL_LINE_WIDTH                                                            0x000013b0
+#define  NV50TCL_TEX_LIMITS(x)                                                         (0x000013b4+((x)*4))
+#define  NV50TCL_TEX_LIMITS__SIZE                                                      0x00000003
+#define   NV50TCL_TEX_LIMITS_SAMPLERS_LOG2_SHIFT                                       0
+#define   NV50TCL_TEX_LIMITS_SAMPLERS_LOG2_MASK                                                0x0000000f
+#define   NV50TCL_TEX_LIMITS_TEXTURES_LOG2_SHIFT                                       4
+#define   NV50TCL_TEX_LIMITS_TEXTURES_LOG2_MASK                                                0x000000f0
+#define  NV50TCL_POINT_COORD_REPLACE_MAP(x)                                            (0x000013c0+((x)*4))
+#define  NV50TCL_POINT_COORD_REPLACE_MAP__SIZE                                         0x00000008
+#define  NV50TCL_VP_START_ID                                                           0x0000140c
+#define  NV50TCL_GP_START_ID                                                           0x00001410
+#define  NV50TCL_FP_START_ID                                                           0x00001414
+#define  NV50TCL_GP_VERTEX_OUTPUT_COUNT                                                        0x00001420
+#define  NV50TCL_VB_ELEMENT_BASE                                                       0x00001434
+#define  NV50TCL_CODE_CB_FLUSH                                                         0x00001440
+#define  NV50TCL_BIND_TSC(x)                                                           (0x00001444+((x)*8))
+#define  NV50TCL_BIND_TSC__SIZE                                                                0x00000003
+#define   NV50TCL_BIND_TSC_VALID                                                       (1 <<  0)
+#define   NV50TCL_BIND_TSC_SAMPLER_SHIFT                                               4
+#define   NV50TCL_BIND_TSC_SAMPLER_MASK                                                        0x000000f0
+#define   NV50TCL_BIND_TSC_TSC_SHIFT                                                   12
+#define   NV50TCL_BIND_TSC_TSC_MASK                                                    0x001ff000
+#define  NV50TCL_BIND_TIC(x)                                                           (0x00001448+((x)*8))
+#define  NV50TCL_BIND_TIC__SIZE                                                                0x00000003
+#define   NV50TCL_BIND_TIC_VALID                                                       (1 <<  0)
+#define   NV50TCL_BIND_TIC_TEXTURE_SHIFT                                               1
+#define   NV50TCL_BIND_TIC_TEXTURE_MASK                                                        0x000001fe
+#define   NV50TCL_BIND_TIC_TIC_SHIFT                                                   9
+#define   NV50TCL_BIND_TIC_TIC_MASK                                                    0x7ffffe00
+#define  NV50TCL_STRMOUT_MAP(x)                                                                (0x00001480+((x)*4))
+#define  NV50TCL_STRMOUT_MAP__SIZE                                                     0x00000020
+#define  NV50TCL_VP_CLIP_DISTANCE_ENABLE                                               0x00001510
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_0                                            (1 <<  0)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_1                                            (1 <<  1)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_2                                            (1 <<  2)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_3                                            (1 <<  3)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_4                                            (1 <<  4)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_5                                            (1 <<  5)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_6                                            (1 <<  6)
+#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_7                                            (1 <<  7)
+#define  NV50TCL_SAMPLECNT_ENABLE                                                      0x00001514
+#define  NV50TCL_POINT_SIZE                                                            0x00001518
+#define  NV50TCL_POINT_SPRITE_ENABLE                                                   0x00001520
+#define  NV50TCL_SAMPLECNT_RESET                                                       0x00001530
+#define  NV50TCL_ZETA_ENABLE                                                           0x00001538
+#define  NV50TCL_MULTISAMPLE_CTRL                                                      0x0000153c
+#define   NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_COVERAGE                                   (1 <<  0)
+#define   NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_ONE                                                (1 <<  4)
+#define  NV50TCL_NOPERSPECTIVE_BITMAP(x)                                               (0x00001540+((x)*4))
+#define  NV50TCL_NOPERSPECTIVE_BITMAP__SIZE                                            0x00000004
+#define  NV50TCL_COND_ADDRESS_HIGH                                                     0x00001550
+#define  NV50TCL_COND_ADDRESS_LOW                                                      0x00001554
+#define  NV50TCL_COND_MODE                                                             0x00001558
+#define   NV50TCL_COND_MODE_NEVER                                                      0x00000000
+#define   NV50TCL_COND_MODE_ALWAYS                                                     0x00000001
+#define   NV50TCL_COND_MODE_RES                                                                0x00000002
+#define   NV50TCL_COND_MODE_NOT_RES_AND_NOT_ID                                         0x00000003
+#define   NV50TCL_COND_MODE_RES_OR_ID                                                  0x00000004
+#define  NV50TCL_TSC_ADDRESS_HIGH                                                      0x0000155c
+#define  NV50TCL_TSC_ADDRESS_LOW                                                       0x00001560
+#define  NV50TCL_TSC_LIMIT                                                             0x00001564
+#define  NV50TCL_POLYGON_OFFSET_FACTOR                                                 0x0000156c
+#define  NV50TCL_LINE_SMOOTH_ENABLE                                                    0x00001570
+#define  NV50TCL_TIC_ADDRESS_HIGH                                                      0x00001574
+#define  NV50TCL_TIC_ADDRESS_LOW                                                       0x00001578
+#define  NV50TCL_TIC_LIMIT                                                             0x0000157c
+#define  NV50TCL_PM_CONTROL(x)                                                         (0x00001580+((x)*4))
+#define  NV50TCL_PM_CONTROL__SIZE                                                      0x00000004
+#define   NV50TCL_PM_CONTROL_UNK0                                                      (1 <<  0)
+#define   NV50TCL_PM_CONTROL_UNK1_SHIFT                                                        4
+#define   NV50TCL_PM_CONTROL_UNK1_MASK                                                 0x00000070
+#define   NV50TCL_PM_CONTROL_UNK2_SHIFT                                                        8
+#define   NV50TCL_PM_CONTROL_UNK2_MASK                                                 0xffffff00
+#define  NV50TCL_STENCIL_BACK_ENABLE                                                   0x00001594
+#define  NV50TCL_STENCIL_BACK_OP_FAIL                                                  0x00001598
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_ZERO                                            0x00000000
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_INVERT                                          0x0000150a
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_KEEP                                            0x00001e00
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_REPLACE                                         0x00001e01
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR                                            0x00001e02
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR                                            0x00001e03
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP                                       0x00008507
+#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP                                       0x00008508
+#define  NV50TCL_STENCIL_BACK_OP_ZFAIL                                                 0x0000159c
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_ZERO                                           0x00000000
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INVERT                                         0x0000150a
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_KEEP                                           0x00001e00
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_REPLACE                                                0x00001e01
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR                                           0x00001e02
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR                                           0x00001e03
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP                                      0x00008507
+#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP                                      0x00008508
+#define  NV50TCL_STENCIL_BACK_OP_ZPASS                                                 0x000015a0
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_ZERO                                           0x00000000
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INVERT                                         0x0000150a
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_KEEP                                           0x00001e00
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_REPLACE                                                0x00001e01
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR                                           0x00001e02
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR                                           0x00001e03
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP                                      0x00008507
+#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP                                      0x00008508
+#define  NV50TCL_STENCIL_BACK_FUNC_FUNC                                                        0x000015a4
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NEVER                                         0x00000200
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LESS                                          0x00000201
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_EQUAL                                         0x00000202
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL                                                0x00000203
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GREATER                                       0x00000204
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL                                      0x00000205
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL                                                0x00000206
+#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS                                                0x00000207
+#define  NV50TCL_FRAMEBUFFER_SRGB                                                      0x000015b8
 #define  NV50TCL_POLYGON_OFFSET_UNITS                                                  0x000015bc
+#define  NV50TCL_GP_BUILTIN_RESULT_EN                                                  0x000015cc
+#define   NV50TCL_GP_BUILTIN_RESULT_EN_VPORT_IDX                                       (1 <<  0)
+#define   NV50TCL_GP_BUILTIN_RESULT_EN_LAYER_IDX                                       (1 << 16)
 #define  NV50TCL_MULTISAMPLE_SAMPLES_LOG2                                              0x000015d0
 #define  NV50TCL_VERTEX_BEGIN                                                          0x000015dc
 #define   NV50TCL_VERTEX_BEGIN_POINTS                                                  0x00000000
@@ -7981,9 +8311,26 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_VERTEX_BEGIN_TRIANGLES_ADJACENCY                                     0x0000000c
 #define   NV50TCL_VERTEX_BEGIN_TRIANGLE_STRIP_ADJACENCY                                        0x0000000d
 #define  NV50TCL_VERTEX_END                                                            0x000015e0
+#define  NV50TCL_EDGEFLAG_ENABLE                                                       0x000015e4
+#define  NV50TCL_VB_ELEMENT_U32                                                                0x000015e8
+#define  NV50TCL_VB_ELEMENT_U16_SETUP                                                  0x000015ec
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_OFFSET_SHIFT                                    30
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_OFFSET_MASK                                     0xc0000000
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_COUNT_SHIFT                                     0
+#define   NV50TCL_VB_ELEMENT_U16_SETUP_COUNT_MASK                                      0x3fffffff
+#define  NV50TCL_VB_ELEMENT_U16                                                                0x000015f0
+#define   NV50TCL_VB_ELEMENT_U16_I0_SHIFT                                              0
+#define   NV50TCL_VB_ELEMENT_U16_I0_MASK                                               0x0000ffff
+#define   NV50TCL_VB_ELEMENT_U16_I1_SHIFT                                              16
+#define   NV50TCL_VB_ELEMENT_U16_I1_MASK                                               0xffff0000
 #define  NV50TCL_VERTEX_DATA                                                           0x00001640
 #define  NV50TCL_PRIM_RESTART_ENABLE                                                   0x00001644
 #define  NV50TCL_PRIM_RESTART_INDEX                                                    0x00001648
+#define  NV50TCL_VP_GP_BUILTIN_ATTR_EN                                                 0x0000164c
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_VERTEX_ID                                      (1 <<  0)
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_INSTANCE_ID                                    (1 <<  4)
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_PRIMITIVE_ID                                   (1 <<  8)
+#define   NV50TCL_VP_GP_BUILTIN_ATTR_EN_UNK12                                          (1 << 12)
 #define  NV50TCL_VP_ATTR_EN_0                                                          0x00001650
 #define   NV50TCL_VP_ATTR_EN_0_7_SHIFT                                                 28
 #define   NV50TCL_VP_ATTR_EN_0_7_MASK                                                  0xf0000000
@@ -8277,6 +8624,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_POINT_SPRITE_CTRL                                                     0x00001660
 #define  NV50TCL_LINE_STIPPLE_ENABLE                                                   0x0000166c
 #define  NV50TCL_LINE_STIPPLE_PATTERN                                                  0x00001680
+#define  NV50TCL_PROVOKING_VERTEX_LAST                                                 0x00001684
 #define  NV50TCL_VERTEX_TWO_SIDE_ENABLE                                                        0x00001688
 #define  NV50TCL_POLYGON_STIPPLE_ENABLE                                                        0x0000168c
 #define  NV50TCL_SET_PROGRAM_CB                                                                0x00001694
@@ -8288,7 +8636,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_SET_PROGRAM_CB_INDEX_SHIFT                                           8
 #define   NV50TCL_SET_PROGRAM_CB_INDEX_MASK                                            0x00000f00
 #define   NV50TCL_SET_PROGRAM_CB_BUFFER_SHIFT                                          12
-#define   NV50TCL_SET_PROGRAM_CB_BUFFER_MASK                                           0x000ff000
+#define   NV50TCL_SET_PROGRAM_CB_BUFFER_MASK                                           0x0007f000
 #define   NV50TCL_SET_PROGRAM_CB_VALID                                                 (1 <<  0)
 #define  NV50TCL_VP_RESULT_MAP_SIZE                                                    0x000016ac
 #define  NV50TCL_VP_REG_ALLOC_TEMP                                                     0x000016b0
@@ -8314,6 +8662,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_LINE_STRIP                                  0x00000002
 #define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_TRIANGLE_STRIP                              0x00000003
 #define  NV50TCL_RASTERIZE_ENABLE                                                      0x000017b4
+#define  NV50TCL_STRMOUT_ENABLE                                                                0x000017b8
 #define  NV50TCL_GP_RESULT_MAP(x)                                                      (0x000017fc+((x)*4))
 #define  NV50TCL_GP_RESULT_MAP__SIZE                                                   0x00000008
 #define   NV50TCL_GP_RESULT_MAP_0_SHIFT                                                        0
@@ -8338,23 +8687,16 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_MAP_SEMANTIC_1_CLIP_LO_MASK                                          0x000000ff
 #define   NV50TCL_MAP_SEMANTIC_1_CLIP_HI_SHIFT                                         8
 #define   NV50TCL_MAP_SEMANTIC_1_CLIP_HI_MASK                                          0x0000ff00
-#define   NV50TCL_MAP_SEMANTIC_1_UNKN_02_SHIFT                                         16
-#define   NV50TCL_MAP_SEMANTIC_1_UNKN_02_MASK                                          0x00ff0000
-#define   NV50TCL_MAP_SEMANTIC_1_UNKN_03_SHIFT                                         24
-#define   NV50TCL_MAP_SEMANTIC_1_UNKN_03_MASK                                          0xff000000
 #define  NV50TCL_MAP_SEMANTIC_2                                                                0x0000190c
-#define   NV50TCL_MAP_SEMANTIC_2_UNKN_00_SHIFT                                         0
-#define   NV50TCL_MAP_SEMANTIC_2_UNKN_00_MASK                                          0x000000ff
-#define   NV50TCL_MAP_SEMANTIC_2_UNKN_01_SHIFT                                         8
-#define   NV50TCL_MAP_SEMANTIC_2_UNKN_01_MASK                                          0x0000ff00
-#define   NV50TCL_MAP_SEMANTIC_2_UNKN_02_SHIFT                                         16
-#define   NV50TCL_MAP_SEMANTIC_2_UNKN_02_MASK                                          0x00ff0000
-#define   NV50TCL_MAP_SEMANTIC_2_UNKN_03_SHIFT                                         24
-#define   NV50TCL_MAP_SEMANTIC_2_UNKN_03_MASK                                          0xff000000
+#define   NV50TCL_MAP_SEMANTIC_2_LAYER_ID_SHIFT                                                0
+#define   NV50TCL_MAP_SEMANTIC_2_LAYER_ID_MASK                                         0x000000ff
 #define  NV50TCL_MAP_SEMANTIC_3                                                                0x00001910
 #define   NV50TCL_MAP_SEMANTIC_3_PTSZ_EN                                               (1 <<  0)
 #define   NV50TCL_MAP_SEMANTIC_3_PTSZ_ID_SHIFT                                         4
 #define   NV50TCL_MAP_SEMANTIC_3_PTSZ_ID_MASK                                          0x00000ff0
+#define  NV50TCL_MAP_SEMANTIC_4                                                                0x00001914
+#define   NV50TCL_MAP_SEMANTIC_4_PRIM_ID_SHIFT                                         0
+#define   NV50TCL_MAP_SEMANTIC_4_PRIM_ID_MASK                                          0x000000ff
 #define  NV50TCL_CULL_FACE_ENABLE                                                      0x00001918
 #define  NV50TCL_FRONT_FACE                                                            0x0000191c
 #define   NV50TCL_FRONT_FACE_CW                                                                0x00000900
@@ -8385,16 +8727,18 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNZW                                      0x0d000000
 #define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYZW                                      0x0e000000
 #define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYZW                                      0x0f000000
-#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_SHIFT                                      16
-#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_MASK                                       0x00ff0000
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_NONFLAT_SHIFT                              16
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_NONFLAT_MASK                               0x00ff0000
 #define   NV50TCL_FP_INTERPOLANT_CTRL_OFFSET_SHIFT                                     8
 #define   NV50TCL_FP_INTERPOLANT_CTRL_OFFSET_MASK                                      0x0000ff00
-#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_UNK_SHIFT                                  0
-#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_UNK_MASK                                   0x000000ff
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_SHIFT                                      0
+#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_MASK                                       0x000000ff
 #define  NV50TCL_FP_REG_ALLOC_TEMP                                                     0x0000198c
-#define  NV50TCL_FP_CTRL_UNK19A8                                                       0x000019a8
-#define   NV50TCL_FP_CTRL_UNK19A8_DEP                                                  (1 << 20)
-#define   NV50TCL_FP_CTRL_UNK19A8_KIL                                                  (1 <<  8)
+#define  NV50TCL_WARP_HALVES                                                           0x000019a0
+#define  NV50TCL_FP_CONTROL                                                            0x000019a8
+#define   NV50TCL_FP_CONTROL_MULTIPLE_RESULTS                                          (1 <<  0)
+#define   NV50TCL_FP_CONTROL_EXPORTS_Z                                                 (1 <<  8)
+#define   NV50TCL_FP_CONTROL_USES_KIL                                                  (1 << 20)
 #define  NV50TCL_DEPTH_BOUNDS_EN                                                       0x000019bc
 #define  NV50TCL_LOGIC_OP_ENABLE                                                       0x000019c4
 #define  NV50TCL_LOGIC_OP                                                              0x000019c8
@@ -8415,6 +8759,16 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define   NV50TCL_LOGIC_OP_NAND                                                                0x0000150e
 #define   NV50TCL_LOGIC_OP_SET                                                         0x0000150f
 #define  NV50TCL_CLEAR_BUFFERS                                                         0x000019d0
+#define   NV50TCL_CLEAR_BUFFERS_Z                                                      (1 <<  0)
+#define   NV50TCL_CLEAR_BUFFERS_S                                                      (1 <<  1)
+#define   NV50TCL_CLEAR_BUFFERS_R                                                      (1 <<  2)
+#define   NV50TCL_CLEAR_BUFFERS_G                                                      (1 <<  3)
+#define   NV50TCL_CLEAR_BUFFERS_B                                                      (1 <<  4)
+#define   NV50TCL_CLEAR_BUFFERS_A                                                      (1 <<  5)
+#define   NV50TCL_CLEAR_BUFFERS_RT_SHIFT                                               6
+#define   NV50TCL_CLEAR_BUFFERS_RT_MASK                                                        0x000003c0
+#define   NV50TCL_CLEAR_BUFFERS_LAYER_SHIFT                                            10
+#define   NV50TCL_CLEAR_BUFFERS_LAYER_MASK                                             0x0007fc00
 #define  NV50TCL_COLOR_MASK(x)                                                         (0x00001a00+((x)*4))
 #define  NV50TCL_COLOR_MASK__SIZE                                                      0x00000008
 #define   NV50TCL_COLOR_MASK_R_SHIFT                                                   0
@@ -8434,23 +8788,26 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50TCL_VERTEX_ARRAY_ATTRIB(x)                                                        (0x00001ac0+((x)*4))
 #define  NV50TCL_VERTEX_ARRAY_ATTRIB__SIZE                                             0x00000010
 #define   NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_SHIFT                                     0
-#define   NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_MASK                                      0x000000ff
-#define   NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_SHIFT                                       16
-#define   NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_MASK                                                0x00ff0000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32_32_32_32                                        0x00080000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32_32_32                                   0x00100000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32_32                                      0x00200000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32                                         0x00900000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16_16_16_16                                        0x00180000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16_16_16                                   0x00280000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16_16                                      0x00780000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16                                         0x00d80000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8_8_8_8                                    0x00500000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8_8_8                                      0x00980000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8_8                                                0x00c00000
-#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8                                          0x00e80000
-#define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SHIFT                                       24
-#define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_MASK                                                0xff000000
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_MASK                                      0x0000000f
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_CONST                                            (1 <<  4)
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_OFFSET_SHIFT                                     5
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_OFFSET_MASK                                      0x0007ffe0
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_SHIFT                                     19
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_MASK                                      0x01f80000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32_32                              0x00080000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32                                 0x00100000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16_16                              0x00180000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32_32                                    0x00200000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16                                 0x00280000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8_8                                  0x00500000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16_16                                    0x00780000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_32                                       0x00900000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8                                    0x00980000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8                                      0x00c00000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16                                       0x00d80000
+#define    NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8                                                0x00e80000
+#define   NV50TCL_VERTEX_ARRAY_ATTRIB_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
@@ -8458,6 +8815,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #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_BGRA                                             (1 << 31)
 #define  NV50TCL_QUERY_ADDRESS_HIGH                                                    0x00001b00
 #define  NV50TCL_QUERY_ADDRESS_LOW                                                     0x00001b04
 #define  NV50TCL_QUERY_COUNTER                                                         0x00001b08
@@ -8466,45 +8824,135 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NV50_COMPUTE                                                                   0x000050c0
 
-#define  NV50_COMPUTE_DMA_UNK0                                                         0x000001a0
-#define  NV50_COMPUTE_DMA_STATUS                                                       0x000001a4
-#define  NV50_COMPUTE_DMA_UNK1                                                         0x000001b8
-#define  NV50_COMPUTE_DMA_UNK2                                                         0x000001bc
-#define  NV50_COMPUTE_DMA_UNK3                                                         0x000001c0
-#define  NV50_COMPUTE_UNK4_HIGH                                                                0x00000210
-#define  NV50_COMPUTE_UNK4_LOW                                                         0x00000214
-#define  NV50_COMPUTE_UNK5_HIGH                                                                0x00000218
-#define  NV50_COMPUTE_UNK5_LOW                                                         0x0000021c
-#define  NV50_COMPUTE_UNK6_HIGH                                                                0x00000294
-#define  NV50_COMPUTE_UNK6_LOW                                                         0x00000298
-#define  NV50_COMPUTE_CONST_BASE_HIGH                                                  0x000002a4
-#define  NV50_COMPUTE_CONST_BASE_LO                                                    0x000002a8
-#define  NV50_COMPUTE_CONST_SIZE_SEG                                                   0x000002ac
-#define  NV50_COMPUTE_REG_COUNT                                                                0x000002c0
-#define  NV50_COMPUTE_STATUS_HIGH                                                      0x00000310
-#define  NV50_COMPUTE_STATUS_LOW                                                       0x00000314
-#define  NV50_COMPUTE_EXECUTE                                                          0x0000031c
+#define  NV50_COMPUTE_NOP                                                              0x00000100
+#define  NV50_COMPUTE_NOTIFY                                                           0x00000104
+#define  NV50_COMPUTE_DMA_NOTIFY                                                       0x00000180
+#define  NV50_COMPUTE_DMA_GLOBAL                                                       0x000001a0
+#define  NV50_COMPUTE_DMA_QUERY                                                                0x000001a4
+#define  NV50_COMPUTE_DMA_LOCAL                                                                0x000001b8
+#define  NV50_COMPUTE_DMA_STACK                                                                0x000001bc
+#define  NV50_COMPUTE_DMA_CODE_CB                                                      0x000001c0
+#define  NV50_COMPUTE_DMA_TSC                                                          0x000001c4
+#define  NV50_COMPUTE_DMA_TIC                                                          0x000001c8
+#define  NV50_COMPUTE_DMA_TEXTURE                                                      0x000001cc
+#define  NV50_COMPUTE_CP_ADDRESS_HIGH                                                  0x00000210
+#define  NV50_COMPUTE_CP_ADDRESS_LOW                                                   0x00000214
+#define  NV50_COMPUTE_STACK_ADDRESS_HIGH                                               0x00000218
+#define  NV50_COMPUTE_STACK_ADDRESS_LOW                                                        0x0000021c
+#define  NV50_COMPUTE_TSC_ADDRESS_HIGH                                                 0x0000022c
+#define  NV50_COMPUTE_TSC_ADDRESS_LOW                                                  0x00000230
+#define  NV50_COMPUTE_TSC_LIMIT                                                                0x00000234
+#define  NV50_COMPUTE_CB_ADDR                                                          0x00000238
+#define   NV50_COMPUTE_CB_ADDR_ID_SHIFT                                                        8
+#define   NV50_COMPUTE_CB_ADDR_ID_MASK                                                 0x003fff00
+#define   NV50_COMPUTE_CB_ADDR_BUFFER_SHIFT                                            0
+#define   NV50_COMPUTE_CB_ADDR_BUFFER_MASK                                             0x0000007f
+#define  NV50_COMPUTE_CB_DATA(x)                                                       (0x0000023c+((x)*4))
+#define  NV50_COMPUTE_CB_DATA__SIZE                                                    0x00000010
+#define  NV50_COMPUTE_DELAY1                                                           0x00000284
+#define  NV50_COMPUTE_WATCHDOG_TIMER                                                   0x00000288
+#define  NV50_COMPUTE_DELAY2                                                           0x0000028c
+#define  NV50_COMPUTE_LOCAL_BASE_HIGH                                                  0x00000294
+#define  NV50_COMPUTE_LOCAL_BASE_LOW                                                   0x00000298
+#define  NV50_COMPUTE_LOCAL_SIZE_LOG                                                   0x0000029c
+#define  NV50_COMPUTE_CB_DEF_ADDRESS_HIGH                                              0x000002a4
+#define  NV50_COMPUTE_CB_DEF_ADDRESS_LOW                                               0x000002a8
+#define  NV50_COMPUTE_CB_DEF_SET                                                       0x000002ac
+#define   NV50_COMPUTE_CB_DEF_SET_SIZE_SHIFT                                           0
+#define   NV50_COMPUTE_CB_DEF_SET_SIZE_MASK                                            0x0000ffff
+#define   NV50_COMPUTE_CB_DEF_SET_BUFFER_SHIFT                                         16
+#define   NV50_COMPUTE_CB_DEF_SET_BUFFER_MASK                                          0x007f0000
+#define  NV50_COMPUTE_BLOCK_ALLOC                                                      0x000002b4
+#define   NV50_COMPUTE_BLOCK_ALLOC_THREADS_SHIFT                                       0
+#define   NV50_COMPUTE_BLOCK_ALLOC_THREADS_MASK                                                0x0000ffff
+#define   NV50_COMPUTE_BLOCK_ALLOC_BARRIERS_SHIFT                                      16
+#define   NV50_COMPUTE_BLOCK_ALLOC_BARRIERS_MASK                                       0xffff0000
+#define  NV50_COMPUTE_CP_REG_ALLOC_TEMP                                                        0x000002c0
+#define  NV50_COMPUTE_TIC_ADDRESS_HIGH                                                 0x000002c4
+#define  NV50_COMPUTE_TIC_ADDRESS_LOW                                                  0x000002c8
+#define  NV50_COMPUTE_TIC_LIMIT                                                                0x000002cc
+#define  NV50_COMPUTE_PM_SET(x)                                                                (0x000002d0+((x)*4))
+#define  NV50_COMPUTE_PM_SET__SIZE                                                     0x00000004
+#define  NV50_COMPUTE_PM_CONTROL(x)                                                    (0x000002e0+((x)*4))
+#define  NV50_COMPUTE_PM_CONTROL__SIZE                                                 0x00000004
+#define   NV50_COMPUTE_PM_CONTROL_UNK0                                                 (1 <<  0)
+#define   NV50_COMPUTE_PM_CONTROL_UNK1_SHIFT                                           4
+#define   NV50_COMPUTE_PM_CONTROL_UNK1_MASK                                            0x00000070
+#define   NV50_COMPUTE_PM_CONTROL_UNK2_SHIFT                                           8
+#define   NV50_COMPUTE_PM_CONTROL_UNK2_MASK                                            0xffffff00
+#define  NV50_COMPUTE_QUERY_ADDRESS_HIGH                                               0x00000310
+#define  NV50_COMPUTE_QUERY_ADDRESS_LOW                                                        0x00000314
+#define  NV50_COMPUTE_QUERY_COUNTER                                                    0x00000318
+#define  NV50_COMPUTE_QUERY_GET                                                                0x0000031c
+#define  NV50_COMPUTE_COND_ADDRESS_HIGH                                                        0x00000320
+#define  NV50_COMPUTE_COND_ADDRESS_LOW                                                 0x00000324
+#define  NV50_COMPUTE_COND_MODE                                                                0x00000328
+#define   NV50_COMPUTE_COND_MODE_NEVER                                                 0x00000000
+#define   NV50_COMPUTE_COND_MODE_ALWAYS                                                        0x00000001
+#define   NV50_COMPUTE_COND_MODE_RES                                                   0x00000002
+#define   NV50_COMPUTE_COND_MODE_NOT_RES_AND_NOT_ID                                    0x00000003
+#define   NV50_COMPUTE_COND_MODE_RES_OR_ID                                             0x00000004
+#define  NV50_COMPUTE_LAUNCH                                                           0x00000368
 #define  NV50_COMPUTE_USER_PARAM_COUNT                                                 0x00000374
-#define  NV50_COMPUTE_GRIDDIM_YX                                                       0x000003a4
+#define   NV50_COMPUTE_USER_PARAM_COUNT_COUNT_SHIFT                                    8
+#define   NV50_COMPUTE_USER_PARAM_COUNT_COUNT_MASK                                     0x0000ff00
+#define  NV50_COMPUTE_LINKED_TSC                                                       0x00000378
+#define  NV50_COMPUTE_CODE_CB_FLUSH                                                    0x00000380
+#define  NV50_COMPUTE_GRIDDIM                                                          0x000003a4
+#define   NV50_COMPUTE_GRIDDIM_X_SHIFT                                                 0
+#define   NV50_COMPUTE_GRIDDIM_X_MASK                                                  0x0000ffff
+#define   NV50_COMPUTE_GRIDDIM_Y_SHIFT                                                 16
+#define   NV50_COMPUTE_GRIDDIM_Y_MASK                                                  0xffff0000
 #define  NV50_COMPUTE_SHARED_SIZE                                                      0x000003a8
 #define  NV50_COMPUTE_BLOCKDIM_YX                                                      0x000003ac
+#define   NV50_COMPUTE_BLOCKDIM_YX_X_SHIFT                                             0
+#define   NV50_COMPUTE_BLOCKDIM_YX_X_MASK                                              0x0000ffff
+#define   NV50_COMPUTE_BLOCKDIM_YX_Y_SHIFT                                             16
+#define   NV50_COMPUTE_BLOCKDIM_YX_Y_MASK                                              0xffff0000
 #define  NV50_COMPUTE_BLOCKDIM_Z                                                       0x000003b0
-#define  NV50_COMPUTE_CALL_ADDRESS                                                     0x000003b4
+#define  NV50_COMPUTE_CP_START_ID                                                      0x000003b4
+#define  NV50_COMPUTE_WARP_HALVES                                                      0x000003b8
+#define  NV50_COMPUTE_TEX_LIMITS                                                       0x000003bc
+#define   NV50_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2_SHIFT                                  0
+#define   NV50_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2_MASK                                   0x0000000f
+#define   NV50_COMPUTE_TEX_LIMITS_TEXTURES_LOG2_SHIFT                                  4
+#define   NV50_COMPUTE_TEX_LIMITS_TEXTURES_LOG2_MASK                                   0x000000f0
+#define  NV50_COMPUTE_BIND_TSC                                                         0x000003c0
+#define   NV50_COMPUTE_BIND_TSC_VALID                                                  (1 <<  0)
+#define   NV50_COMPUTE_BIND_TSC_SAMPLER_SHIFT                                          4
+#define   NV50_COMPUTE_BIND_TSC_SAMPLER_MASK                                           0x000000f0
+#define   NV50_COMPUTE_BIND_TSC_TSC_SHIFT                                              12
+#define   NV50_COMPUTE_BIND_TSC_TSC_MASK                                               0x001ff000
+#define  NV50_COMPUTE_BIND_TIC                                                         0x000003c4
+#define   NV50_COMPUTE_BIND_TIC_VALID                                                  (1 <<  0)
+#define   NV50_COMPUTE_BIND_TIC_TEXTURE_SHIFT                                          1
+#define   NV50_COMPUTE_BIND_TIC_TEXTURE_MASK                                           0x000001fe
+#define   NV50_COMPUTE_BIND_TIC_TIC_SHIFT                                              9
+#define   NV50_COMPUTE_BIND_TIC_TIC_MASK                                               0x7ffffe00
+#define  NV50_COMPUTE_SET_PROGRAM_CB                                                   0x000003c8
+#define   NV50_COMPUTE_SET_PROGRAM_CB_INDEX_SHIFT                                      8
+#define   NV50_COMPUTE_SET_PROGRAM_CB_INDEX_MASK                                       0x00000f00
+#define   NV50_COMPUTE_SET_PROGRAM_CB_BUFFER_SHIFT                                     12
+#define   NV50_COMPUTE_SET_PROGRAM_CB_BUFFER_MASK                                      0x0007f000
+#define   NV50_COMPUTE_SET_PROGRAM_CB_VALID                                            (1 <<  0)
 #define  NV50_COMPUTE_GLOBAL_BASE_HIGH(x)                                              (0x00000400+((x)*32))
 #define  NV50_COMPUTE_GLOBAL_BASE_HIGH__SIZE                                           0x00000010
 #define  NV50_COMPUTE_GLOBAL_BASE_LOW(x)                                               (0x00000404+((x)*32))
 #define  NV50_COMPUTE_GLOBAL_BASE_LOW__SIZE                                            0x00000010
-#define  NV50_COMPUTE_GLOBAL_LIMIT_HIGH(x)                                             (0x00000408+((x)*32))
-#define  NV50_COMPUTE_GLOBAL_LIMIT_HIGH__SIZE                                          0x00000010
-#define  NV50_COMPUTE_GLOBAL_LIMIT_LOW(x)                                              (0x0000040c+((x)*32))
-#define  NV50_COMPUTE_GLOBAL_LIMIT_LOW__SIZE                                           0x00000010
-#define  NV50_COMPUTE_GLOBAL_UNK(x)                                                    (0x00000410+((x)*32))
-#define  NV50_COMPUTE_GLOBAL_UNK__SIZE                                                 0x00000010
+#define  NV50_COMPUTE_GLOBAL_PITCH(x)                                                  (0x00000408+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_PITCH__SIZE                                               0x00000010
+#define  NV50_COMPUTE_GLOBAL_LIMIT(x)                                                  (0x0000040c+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_LIMIT__SIZE                                               0x00000010
+#define  NV50_COMPUTE_GLOBAL_MODE(x)                                                   (0x00000410+((x)*32))
+#define  NV50_COMPUTE_GLOBAL_MODE__SIZE                                                        0x00000010
+#define   NV50_COMPUTE_GLOBAL_MODE_LINEAR                                              (1 <<  0)
+#define   NV50_COMPUTE_GLOBAL_MODE_TILE_MODE_SHIFT                                     8
+#define   NV50_COMPUTE_GLOBAL_MODE_TILE_MODE_MASK                                      0x00000f00
 #define  NV50_COMPUTE_USER_PARAM(x)                                                    (0x00000600+((x)*4))
 #define  NV50_COMPUTE_USER_PARAM__SIZE                                                 0x00000040
 
 
-#define NV54TCL                                                                                0x00008297
+#define NV84TCL                                                                                0x00008297
 
 
 
@@ -8512,4 +8960,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
 
+#define NVA8TCL                                                                                0x00008597
+
+
+
 #endif /* NOUVEAU_REG_H */