[Nouveau] [DRM PATCH 1/5] nouveau: update nouveau_class.h

Marcin Slusarz marcin.slusarz at gmail.com
Fri Dec 25 13:37:10 PST 2009


---
 nouveau/nouveau_class.h |  865 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 643 insertions(+), 222 deletions(-)

diff --git a/nouveau/nouveau_class.h b/nouveau/nouveau_class.h
index 0b8a6f0..fadbebb 100644
--- a/nouveau/nouveau_class.h
+++ b/nouveau/nouveau_class.h
@@ -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
 
 
@@ -7317,34 +7317,56 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50_2D_DMA_IN_MEMORY2								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_PITCH								0x00000214
@@ -7354,34 +7376,56 @@ 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_PITCH								0x00000244
@@ -7412,34 +7456,56 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #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_R32G32B32A32_SINT						0x000000c1
+#define   NV50_2D_RECT_FORMAT_R32G32B32A32_UINT						0x000000c2
+#define   NV50_2D_RECT_FORMAT_R32G32B32X32_FLOAT					0x000000c3
 #define   NV50_2D_RECT_FORMAT_R16G16B16A16_UNORM					0x000000c6
 #define   NV50_2D_RECT_FORMAT_R16G16B16A16_SNORM					0x000000c7
+#define   NV50_2D_RECT_FORMAT_R16G16B16A16_SINT						0x000000c8
+#define   NV50_2D_RECT_FORMAT_R16G16B16A16_UINT						0x000000c9
 #define   NV50_2D_RECT_FORMAT_R16G16B16A16_FLOAT					0x000000ca
 #define   NV50_2D_RECT_FORMAT_R32G32_FLOAT						0x000000cb
+#define   NV50_2D_RECT_FORMAT_R32G32_SINT						0x000000cc
+#define   NV50_2D_RECT_FORMAT_R32G32_UINT						0x000000cd
 #define   NV50_2D_RECT_FORMAT_R16G16B16X16_FLOAT					0x000000ce
 #define   NV50_2D_RECT_FORMAT_A8R8G8B8_UNORM						0x000000cf
+#define   NV50_2D_RECT_FORMAT_A8R8G8B8_SRGB						0x000000d0
 #define   NV50_2D_RECT_FORMAT_A2B10G10R10_UNORM						0x000000d1
-#define   NV50_2D_RECT_FORMAT_A8B8G8R8_UNORM						0x000000d6
+#define   NV50_2D_RECT_FORMAT_A2B10G10R10_UINT						0x000000d2
+#define   NV50_2D_RECT_FORMAT_A8B8G8R8_UNORM						0x000000d5
+#define   NV50_2D_RECT_FORMAT_A8B8G8R8_SRGB						0x000000d6
 #define   NV50_2D_RECT_FORMAT_A8B8G8R8_SNORM						0x000000d7
+#define   NV50_2D_RECT_FORMAT_A8B8G8R8_SINT						0x000000d8
+#define   NV50_2D_RECT_FORMAT_A8B8G8R8_UINT						0x000000d9
 #define   NV50_2D_RECT_FORMAT_R16G16_UNORM						0x000000da
 #define   NV50_2D_RECT_FORMAT_R16G16_SNORM						0x000000db
+#define   NV50_2D_RECT_FORMAT_R16G16_SINT						0x000000dc
+#define   NV50_2D_RECT_FORMAT_R16G16_UINT						0x000000dd
 #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_X8R8G8B8_SRGB						0x000000e7
 #define   NV50_2D_RECT_FORMAT_R5G6B5_UNORM						0x000000e8
-#define   NV50_2D_RECT_FORMAT_R16_FLOAT							0x000000e9
+#define   NV50_2D_RECT_FORMAT_A1R5G5B5_UNORM						0x000000e9
 #define   NV50_2D_RECT_FORMAT_R8G8_UNORM						0x000000ea
 #define   NV50_2D_RECT_FORMAT_R8G8_SNORM						0x000000eb
+#define   NV50_2D_RECT_FORMAT_R8G8_SINT							0x000000ec
+#define   NV50_2D_RECT_FORMAT_R8G8_UINT							0x000000ed
 #define   NV50_2D_RECT_FORMAT_R16_UNORM							0x000000ee
 #define   NV50_2D_RECT_FORMAT_R16_SNORM							0x000000ef
+#define   NV50_2D_RECT_FORMAT_R16_SINT							0x000000f0
+#define   NV50_2D_RECT_FORMAT_R16_UINT							0x000000f1
+#define   NV50_2D_RECT_FORMAT_R16_FLOAT							0x000000f2
 #define   NV50_2D_RECT_FORMAT_R8_UNORM							0x000000f3
-#define   NV50_2D_RECT_FORMAT_R32_BOOLEAN						0x000000f6
+#define   NV50_2D_RECT_FORMAT_R8_SNORM							0x000000f4
+#define   NV50_2D_RECT_FORMAT_R8_SINT							0x000000f5
+#define   NV50_2D_RECT_FORMAT_R8_UINT							0x000000f6
 #define   NV50_2D_RECT_FORMAT_A8_UNORM							0x000000f7
-#define   NV50_2D_RECT_FORMAT_X1B5G5R5_UNORM						0x000000f8
+#define   NV50_2D_RECT_FORMAT_X1R5G5B5_UNORM						0x000000f8
 #define   NV50_2D_RECT_FORMAT_X8B8G8R8_UNORM						0x000000f9
+#define   NV50_2D_RECT_FORMAT_X8B8G8R8_SRGB						0x000000fa
 #define  NV50_2D_RECT_COLOR								0x00000588
 #define  NV50_2D_RECT_X1								0x00000600
 #define  NV50_2D_RECT_Y1								0x00000604
@@ -7448,34 +7514,56 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define  NV50_2D_SIFC_UNK0800								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_WIDTH								0x00000838
 #define  NV50_2D_SIFC_HEIGHT								0x0000083c
 #define  NV50_2D_SIFC_SCALE_UNK0840							0x00000840
@@ -7501,20 +7589,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 +7616,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 +7636,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 +7708,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 +7716,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 +7764,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 +7850,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 +7866,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 +7909,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 +7926,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 +7970,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,8 +7982,27 @@ 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
@@ -7850,83 +8104,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 +8114,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 +8123,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,7 +8132,7 @@ 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
@@ -7963,7 +8142,127 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #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_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 +8280,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 +8593,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 +8605,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 +8631,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 +8656,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 +8696,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 +8728,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 +8757,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 +8784,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,40 +8793,130 @@ 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
 
@@ -8512,4 +8929,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
 
+#define NVA8TCL										0x00008597
+
+
+
 #endif /* NOUVEAU_REG_H */
-- 
1.6.6.rc3



More information about the Nouveau mailing list