[Nouveau] [PATCH 2/2] nvc0: regenerate rnndb headers

Ilia Mirkin imirkin at alum.mit.edu
Tue Dec 30 19:42:47 PST 2014


The headers hadn't been regenerated in a long time and had seen a number
of manual modifications. A few changes:
 - remove nvc0_2d entirely, use the nv50 header which has the nvc0
   values too
 - remove 3ddefs, it's identical to the nv50 file
 - move macros out into a separate file

Also the upstream rnndb changed the overall chip naming convention; this
was fixed up manually in the generated files until a better solution is
determined.

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
 src/gallium/drivers/nouveau/nvc0/nvc0_2d.xml.h     |  380 -------
 src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h     | 1115 ++++++++++++++++----
 src/gallium/drivers/nouveau/nvc0/nvc0_3ddefs.xml.h |   98 --
 .../drivers/nouveau/nvc0/nvc0_compute.xml.h        |   67 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_context.h    |    5 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_m2mf.xml.h   |   67 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_macros.h     |   32 +
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c     |    6 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_state.c      |    6 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_surface.c    |   22 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_tex.c        |   12 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_transfer.c   |    8 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_winsys.h     |    4 +-
 .../drivers/nouveau/nvc0/nve4_compute.xml.h        |   61 +-
 src/gallium/drivers/nouveau/nvc0/nve4_p2mf.xml.h   |  102 +-
 15 files changed, 1153 insertions(+), 832 deletions(-)
 delete mode 100644 src/gallium/drivers/nouveau/nvc0/nvc0_2d.xml.h
 delete mode 100644 src/gallium/drivers/nouveau/nvc0/nvc0_3ddefs.xml.h
 create mode 100644 src/gallium/drivers/nouveau/nvc0/nvc0_macros.h

diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_2d.xml.h b/src/gallium/drivers/nouveau/nvc0/nvc0_2d.xml.h
deleted file mode 100644
index 9a488c1..0000000
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_2d.xml.h
+++ /dev/null
@@ -1,380 +0,0 @@
-#ifndef NVC0_2D_XML
-#define NVC0_2D_XML
-
-/* Autogenerated file, DO NOT EDIT manually!
-
-This file was generated by the rules-ng-ng headergen tool in this git repository:
-http://0x04.net/cgit/index.cgi/rules-ng-ng
-git clone git://0x04.net/rules-ng-ng
-
-The rules-ng-ng source files this header was generated from are:
-- nvc0_2d.xml    (   9454 bytes, from 2010-10-16 16:03:11)
-- copyright.xml  (   6498 bytes, from 2010-10-03 13:18:37)
-- nv_object.xml  (  11379 bytes, from 2010-10-16 11:43:24)
-- nvchipsets.xml (   2907 bytes, from 2010-10-15 16:28:21)
-- nv_defs.xml    (   4437 bytes, from 2010-07-06 07:43:58)
-- nv50_defs.xml  (   4482 bytes, from 2010-10-03 13:18:37)
-
-Copyright (C) 2006-2010 by the following authors:
-- Artur Huillet <arthur.huillet at free.fr> (ahuillet)
-- Ben Skeggs (darktama, darktama_)
-- B. R. <koala_br at users.sourceforge.net> (koala_br)
-- Carlos Martin <carlosmn at users.sf.net> (carlosmn)
-- Christoph Bumiller <e0425955 at student.tuwien.ac.at> (calim, chrisbmr)
-- Dawid Gajownik <gajownik at users.sf.net> (gajownik)
-- Dmitry Baryshkov
-- Dmitry Eremin-Solenikov <lumag at users.sf.net> (lumag)
-- EdB <edb_ at users.sf.net> (edb_)
-- Erik Waling <erikwailing at users.sf.net> (erikwaling)
-- Francisco Jerez <currojerez at riseup.net> (curro, curro_, currojerez)
-- imirkin <imirkin at users.sf.net> (imirkin)
-- jb17bsome <jb17bsome at bellsouth.net> (jb17bsome)
-- Jeremy Kolb <kjeremy at users.sf.net> (kjeremy)
-- Laurent Carlier <lordheavym at gmail.com> (lordheavy)
-- Luca Barbieri <luca at luca-barbieri.com> (lb, lb1)
-- Maarten Maathuis <madman2003 at gmail.com> (stillunknown)
-- Marcin Koƛcielnicki <koriakin at 0x04.net> (mwk, koriakin)
-- Mark Carey <mark.carey at gmail.com> (careym)
-- Matthieu Castet <matthieu.castet at parrot.com> (mat-c)
-- nvidiaman <nvidiaman at users.sf.net> (nvidiaman)
-- Patrice Mandin <patmandin at gmail.com> (pmandin, pmdata)
-- Pekka Paalanen <pq at iki.fi> (pq, ppaalanen)
-- Peter Popov <ironpeter at users.sf.net> (ironpeter)
-- Richard Hughes <hughsient at users.sf.net> (hughsient)
-- Rudi Cilibrasi <cilibrar at users.sf.net> (cilibrar)
-- Serge Martin
-- Simon Raffeiner
-- Stephane Loeuillet <leroutier at users.sf.net> (leroutier)
-- Stephane Marchesin <stephane.marchesin at gmail.com> (marcheu)
-- sturmflut <sturmflut at users.sf.net> (sturmflut)
-- Sylvain Munaut <tnt at 246tNt.com>
-- Victor Stinner <victor.stinner at haypocalc.com> (haypo)
-- Wladmir van der Laan <laanwj at gmail.com> (miathan6)
-- Younes Manton <younes.m at gmail.com> (ymanton)
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial
-portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-
-
-#define NVC0_2D_DST_FORMAT					0x00000200
-
-#define NVC0_2D_DST_LINEAR					0x00000204
-
-#define NVC0_2D_DST_TILE_MODE					0x00000208
-
-#define NVC0_2D_DST_DEPTH					0x0000020c
-
-#define NVC0_2D_DST_LAYER					0x00000210
-
-#define NVC0_2D_DST_PITCH					0x00000214
-
-#define NVC0_2D_DST_WIDTH					0x00000218
-
-#define NVC0_2D_DST_HEIGHT					0x0000021c
-
-#define NVC0_2D_DST_ADDRESS_HIGH				0x00000220
-
-#define NVC0_2D_DST_ADDRESS_LOW					0x00000224
-
-#define NVC0_2D_UNK228						0x00000228
-
-#define NVC0_2D_SRC_FORMAT					0x00000230
-
-#define NVC0_2D_SRC_LINEAR					0x00000234
-
-#define NVC0_2D_SRC_TILE_MODE					0x00000238
-
-#define NVC0_2D_SRC_DEPTH					0x0000023c
-
-#define NVC0_2D_SRC_LAYER					0x00000240
-
-#define NVC0_2D_SRC_PITCH					0x00000244
-#define NVC0_2D_SRC_PITCH__MAX					0x00040000
-
-#define NVC0_2D_SRC_WIDTH					0x00000248
-#define NVC0_2D_SRC_WIDTH__MAX					0x00010000
-
-#define NVC0_2D_SRC_HEIGHT					0x0000024c
-#define NVC0_2D_SRC_HEIGHT__MAX					0x00010000
-
-#define NVC0_2D_SRC_ADDRESS_HIGH				0x00000250
-
-#define NVC0_2D_SRC_ADDRESS_LOW					0x00000254
-
-#define NVC0_2D_UNK258						0x00000258
-
-#define NVC0_2D_SINGLE_GPC					0x00000260
-
-#define NVC0_2D_COND_ADDRESS_HIGH				0x00000264
-
-#define NVC0_2D_COND_ADDRESS_LOW				0x00000268
-
-#define NVC0_2D_COND_MODE					0x0000026c
-#define NVC0_2D_COND_MODE_NEVER					0x00000000
-#define NVC0_2D_COND_MODE_ALWAYS				0x00000001
-#define NVC0_2D_COND_MODE_RES_NON_ZERO				0x00000002
-#define NVC0_2D_COND_MODE_EQUAL					0x00000003
-#define NVC0_2D_COND_MODE_NOT_EQUAL				0x00000004
-
-#define NVC0_2D_CLIP_X						0x00000280
-
-#define NVC0_2D_CLIP_Y						0x00000284
-
-#define NVC0_2D_CLIP_W						0x00000288
-
-#define NVC0_2D_CLIP_H						0x0000028c
-
-#define NVC0_2D_CLIP_ENABLE					0x00000290
-
-#define NVC0_2D_COLOR_KEY_FORMAT				0x00000294
-#define NVC0_2D_COLOR_KEY_FORMAT_16BPP				0x00000000
-#define NVC0_2D_COLOR_KEY_FORMAT_15BPP				0x00000001
-#define NVC0_2D_COLOR_KEY_FORMAT_24BPP				0x00000002
-#define NVC0_2D_COLOR_KEY_FORMAT_30BPP				0x00000003
-#define NVC0_2D_COLOR_KEY_FORMAT_8BPP				0x00000004
-#define NVC0_2D_COLOR_KEY_FORMAT_16BPP2				0x00000005
-#define NVC0_2D_COLOR_KEY_FORMAT_32BPP				0x00000006
-
-#define NVC0_2D_COLOR_KEY					0x00000298
-
-#define NVC0_2D_COLOR_KEY_ENABLE				0x0000029c
-
-#define NVC0_2D_ROP						0x000002a0
-
-#define NVC0_2D_BETA1						0x000002a4
-
-#define NVC0_2D_BETA4						0x000002a8
-
-#define NVC0_2D_OPERATION					0x000002ac
-#define NVC0_2D_OPERATION_SRCCOPY_AND				0x00000000
-#define NVC0_2D_OPERATION_ROP_AND				0x00000001
-#define NVC0_2D_OPERATION_BLEND					0x00000002
-#define NVC0_2D_OPERATION_SRCCOPY				0x00000003
-#define NVC0_2D_OPERATION_ROP					0x00000004
-#define NVC0_2D_OPERATION_SRCCOPY_PREMULT			0x00000005
-#define NVC0_2D_OPERATION_BLEND_PREMULT				0x00000006
-
-#define NVC0_2D_UNK2B0						0x000002b0
-#define NVC0_2D_UNK2B0_UNK0__MASK				0x0000003f
-#define NVC0_2D_UNK2B0_UNK0__SHIFT				0
-#define NVC0_2D_UNK2B0_UNK1__MASK				0x00003f00
-#define NVC0_2D_UNK2B0_UNK1__SHIFT				8
-
-#define NVC0_2D_PATTERN_SELECT					0x000002b4
-#define NVC0_2D_PATTERN_SELECT_MONO_8X8				0x00000000
-#define NVC0_2D_PATTERN_SELECT_MONO_64X1			0x00000001
-#define NVC0_2D_PATTERN_SELECT_MONO_1X64			0x00000002
-#define NVC0_2D_PATTERN_SELECT_COLOR				0x00000003
-
-#define NVC0_2D_PATTERN_COLOR_FORMAT				0x000002e8
-#define NVC0_2D_PATTERN_COLOR_FORMAT_16BPP			0x00000000
-#define NVC0_2D_PATTERN_COLOR_FORMAT_15BPP			0x00000001
-#define NVC0_2D_PATTERN_COLOR_FORMAT_32BPP			0x00000002
-#define NVC0_2D_PATTERN_COLOR_FORMAT_8BPP			0x00000003
-#define NVC0_2D_PATTERN_COLOR_FORMAT_UNK4			0x00000004
-#define NVC0_2D_PATTERN_COLOR_FORMAT_UNK5			0x00000005
-
-#define NVC0_2D_PATTERN_MONO_FORMAT				0x000002ec
-#define NVC0_2D_PATTERN_MONO_FORMAT_CGA6			0x00000000
-#define NVC0_2D_PATTERN_MONO_FORMAT_LE				0x00000001
-
-#define NVC0_2D_PATTERN_COLOR(i0)			       (0x000002f0 + 0x4*(i0))
-#define NVC0_2D_PATTERN_COLOR__ESIZE				0x00000004
-#define NVC0_2D_PATTERN_COLOR__LEN				0x00000002
-
-#define NVC0_2D_PATTERN_BITMAP(i0)			       (0x000002f8 + 0x4*(i0))
-#define NVC0_2D_PATTERN_BITMAP__ESIZE				0x00000004
-#define NVC0_2D_PATTERN_BITMAP__LEN				0x00000002
-
-#define NVC0_2D_PATTERN_X8R8G8B8(i0)			       (0x00000300 + 0x4*(i0))
-#define NVC0_2D_PATTERN_X8R8G8B8__ESIZE				0x00000004
-#define NVC0_2D_PATTERN_X8R8G8B8__LEN				0x00000040
-#define NVC0_2D_PATTERN_X8R8G8B8_B__MASK			0x000000ff
-#define NVC0_2D_PATTERN_X8R8G8B8_B__SHIFT			0
-#define NVC0_2D_PATTERN_X8R8G8B8_G__MASK			0x0000ff00
-#define NVC0_2D_PATTERN_X8R8G8B8_G__SHIFT			8
-#define NVC0_2D_PATTERN_X8R8G8B8_R__MASK			0x00ff0000
-#define NVC0_2D_PATTERN_X8R8G8B8_R__SHIFT			16
-
-#define NVC0_2D_PATTERN_R5G6B5(i0)			       (0x00000400 + 0x4*(i0))
-#define NVC0_2D_PATTERN_R5G6B5__ESIZE				0x00000004
-#define NVC0_2D_PATTERN_R5G6B5__LEN				0x00000020
-#define NVC0_2D_PATTERN_R5G6B5_B0__MASK				0x0000001f
-#define NVC0_2D_PATTERN_R5G6B5_B0__SHIFT			0
-#define NVC0_2D_PATTERN_R5G6B5_G0__MASK				0x000007e0
-#define NVC0_2D_PATTERN_R5G6B5_G0__SHIFT			5
-#define NVC0_2D_PATTERN_R5G6B5_R0__MASK				0x0000f800
-#define NVC0_2D_PATTERN_R5G6B5_R0__SHIFT			11
-#define NVC0_2D_PATTERN_R5G6B5_B1__MASK				0x001f0000
-#define NVC0_2D_PATTERN_R5G6B5_B1__SHIFT			16
-#define NVC0_2D_PATTERN_R5G6B5_G1__MASK				0x07e00000
-#define NVC0_2D_PATTERN_R5G6B5_G1__SHIFT			21
-#define NVC0_2D_PATTERN_R5G6B5_R1__MASK				0xf8000000
-#define NVC0_2D_PATTERN_R5G6B5_R1__SHIFT			27
-
-#define NVC0_2D_PATTERN_X1R5G5B5(i0)			       (0x00000480 + 0x4*(i0))
-#define NVC0_2D_PATTERN_X1R5G5B5__ESIZE				0x00000004
-#define NVC0_2D_PATTERN_X1R5G5B5__LEN				0x00000020
-#define NVC0_2D_PATTERN_X1R5G5B5_B0__MASK			0x0000001f
-#define NVC0_2D_PATTERN_X1R5G5B5_B0__SHIFT			0
-#define NVC0_2D_PATTERN_X1R5G5B5_G0__MASK			0x000003e0
-#define NVC0_2D_PATTERN_X1R5G5B5_G0__SHIFT			5
-#define NVC0_2D_PATTERN_X1R5G5B5_R0__MASK			0x00007c00
-#define NVC0_2D_PATTERN_X1R5G5B5_R0__SHIFT			10
-#define NVC0_2D_PATTERN_X1R5G5B5_B1__MASK			0x001f0000
-#define NVC0_2D_PATTERN_X1R5G5B5_B1__SHIFT			16
-#define NVC0_2D_PATTERN_X1R5G5B5_G1__MASK			0x03e00000
-#define NVC0_2D_PATTERN_X1R5G5B5_G1__SHIFT			21
-#define NVC0_2D_PATTERN_X1R5G5B5_R1__MASK			0x7c000000
-#define NVC0_2D_PATTERN_X1R5G5B5_R1__SHIFT			26
-
-#define NVC0_2D_PATTERN_Y8(i0)				       (0x00000500 + 0x4*(i0))
-#define NVC0_2D_PATTERN_Y8__ESIZE				0x00000004
-#define NVC0_2D_PATTERN_Y8__LEN					0x00000010
-#define NVC0_2D_PATTERN_Y8_Y0__MASK				0x000000ff
-#define NVC0_2D_PATTERN_Y8_Y0__SHIFT				0
-#define NVC0_2D_PATTERN_Y8_Y1__MASK				0x0000ff00
-#define NVC0_2D_PATTERN_Y8_Y1__SHIFT				8
-#define NVC0_2D_PATTERN_Y8_Y2__MASK				0x00ff0000
-#define NVC0_2D_PATTERN_Y8_Y2__SHIFT				16
-#define NVC0_2D_PATTERN_Y8_Y3__MASK				0xff000000
-#define NVC0_2D_PATTERN_Y8_Y3__SHIFT				24
-
-#define NVC0_2D_DRAW_SHAPE					0x00000580
-#define NVC0_2D_DRAW_SHAPE_POINTS				0x00000000
-#define NVC0_2D_DRAW_SHAPE_LINES				0x00000001
-#define NVC0_2D_DRAW_SHAPE_LINE_STRIP				0x00000002
-#define NVC0_2D_DRAW_SHAPE_TRIANGLES				0x00000003
-#define NVC0_2D_DRAW_SHAPE_RECTANGLES				0x00000004
-
-#define NVC0_2D_DRAW_COLOR_FORMAT				0x00000584
-
-#define NVC0_2D_DRAW_COLOR					0x00000588
-
-#define NVC0_2D_UNK58C						0x0000058c
-#define NVC0_2D_UNK58C_0					0x00000001
-#define NVC0_2D_UNK58C_1					0x00000010
-#define NVC0_2D_UNK58C_2					0x00000100
-#define NVC0_2D_UNK58C_3					0x00001000
-
-#define NVC0_2D_DRAW_POINT16					0x000005e0
-#define NVC0_2D_DRAW_POINT16_X__MASK				0x0000ffff
-#define NVC0_2D_DRAW_POINT16_X__SHIFT				0
-#define NVC0_2D_DRAW_POINT16_Y__MASK				0xffff0000
-#define NVC0_2D_DRAW_POINT16_Y__SHIFT				16
-
-#define NVC0_2D_DRAW_POINT32_X(i0)			       (0x00000600 + 0x8*(i0))
-#define NVC0_2D_DRAW_POINT32_X__ESIZE				0x00000008
-#define NVC0_2D_DRAW_POINT32_X__LEN				0x00000040
-
-#define NVC0_2D_DRAW_POINT32_Y(i0)			       (0x00000604 + 0x8*(i0))
-#define NVC0_2D_DRAW_POINT32_Y__ESIZE				0x00000008
-#define NVC0_2D_DRAW_POINT32_Y__LEN				0x00000040
-
-#define NVC0_2D_SIFC_BITMAP_ENABLE				0x00000800
-
-#define NVC0_2D_SIFC_FORMAT					0x00000804
-
-#define NVC0_2D_SIFC_BITMAP_FORMAT				0x00000808
-#define NVC0_2D_SIFC_BITMAP_FORMAT_I1				0x00000000
-#define NVC0_2D_SIFC_BITMAP_FORMAT_I4				0x00000001
-#define NVC0_2D_SIFC_BITMAP_FORMAT_I8				0x00000002
-
-#define NVC0_2D_SIFC_BITMAP_LSB_FIRST				0x0000080c
-
-#define NVC0_2D_SIFC_BITMAP_LINE_PACK_MODE			0x00000810
-#define NVC0_2D_SIFC_BITMAP_LINE_PACK_MODE_PACKED		0x00000000
-#define NVC0_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_BYTE		0x00000001
-#define NVC0_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_WORD		0x00000002
-
-#define NVC0_2D_SIFC_BITMAP_COLOR_BIT0				0x00000814
-
-#define NVC0_2D_SIFC_BITMAP_COLOR_BIT1				0x00000818
-
-#define NVC0_2D_SIFC_BITMAP_WRITE_BIT0_ENABLE			0x0000081c
-
-#define NVC0_2D_SIFC_WIDTH					0x00000838
-
-#define NVC0_2D_SIFC_HEIGHT					0x0000083c
-
-#define NVC0_2D_SIFC_DX_DU_FRACT				0x00000840
-
-#define NVC0_2D_SIFC_DX_DU_INT					0x00000844
-
-#define NVC0_2D_SIFC_DY_DV_FRACT				0x00000848
-
-#define NVC0_2D_SIFC_DY_DV_INT					0x0000084c
-
-#define NVC0_2D_SIFC_DST_X_FRACT				0x00000850
-
-#define NVC0_2D_SIFC_DST_X_INT					0x00000854
-
-#define NVC0_2D_SIFC_DST_Y_FRACT				0x00000858
-
-#define NVC0_2D_SIFC_DST_Y_INT					0x0000085c
-
-#define NVC0_2D_SIFC_DATA					0x00000860
-
-#define NVC0_2D_UNK0870						0x00000870
-
-#define NVC0_2D_UNK0880						0x00000880
-
-#define NVC0_2D_UNK0884						0x00000884
-
-#define NVC0_2D_UNK0888						0x00000888
-
-#define NVC0_2D_BLIT_CONTROL					0x0000088c
-#define NVC0_2D_BLIT_CONTROL_ORIGIN__MASK			0x00000001
-#define NVC0_2D_BLIT_CONTROL_ORIGIN__SHIFT			0
-#define NVC0_2D_BLIT_CONTROL_ORIGIN_CENTER			0x00000000
-#define NVC0_2D_BLIT_CONTROL_ORIGIN_CORNER			0x00000001
-#define NVC0_2D_BLIT_CONTROL_FILTER__MASK			0x00000010
-#define NVC0_2D_BLIT_CONTROL_FILTER__SHIFT			4
-#define NVC0_2D_BLIT_CONTROL_FILTER_POINT_SAMPLE		0x00000000
-#define NVC0_2D_BLIT_CONTROL_FILTER_BILINEAR			0x00000010
-
-#define NVC0_2D_BLIT_DST_X					0x000008b0
-
-#define NVC0_2D_BLIT_DST_Y					0x000008b4
-
-#define NVC0_2D_BLIT_DST_W					0x000008b8
-
-#define NVC0_2D_BLIT_DST_H					0x000008bc
-
-#define NVC0_2D_BLIT_DU_DX_FRACT				0x000008c0
-
-#define NVC0_2D_BLIT_DU_DX_INT					0x000008c4
-
-#define NVC0_2D_BLIT_DV_DY_FRACT				0x000008c8
-
-#define NVC0_2D_BLIT_DV_DY_INT					0x000008cc
-
-#define NVC0_2D_BLIT_SRC_X_FRACT				0x000008d0
-
-#define NVC0_2D_BLIT_SRC_X_INT					0x000008d4
-
-#define NVC0_2D_BLIT_SRC_Y_FRACT				0x000008d8
-
-#define NVC0_2D_BLIT_SRC_Y_INT					0x000008dc
-
-
-#endif /* NVC0_2D_XML */
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h b/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h
index 57407c5..1be5952 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_3d.xml.h
@@ -4,19 +4,20 @@
 /* Autogenerated file, DO NOT EDIT manually!
 
 This file was generated by the rules-ng-ng headergen tool in this git repository:
-http://0x04.net/cgit/index.cgi/rules-ng-ng
-git clone git://0x04.net/rules-ng-ng
+http://github.com/envytools/envytools/
+git clone https://github.com/envytools/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- nvc0_3d.xml    (  30827 bytes, from 2011-01-13 18:23:07)
-- copyright.xml  (   6452 bytes, from 2010-11-25 23:28:20)
-- nv_defs.xml    (   4437 bytes, from 2010-07-06 07:43:58)
-- nv_3ddefs.xml  (  16394 bytes, from 2010-12-17 15:10:40)
-- nv_object.xml  (  11898 bytes, from 2010-12-23 14:14:20)
-- nvchipsets.xml (   3074 bytes, from 2010-11-07 00:36:28)
-- nv50_defs.xml  (   4487 bytes, from 2010-12-10 00:37:17)
-
-Copyright (C) 2006-2011 by the following authors:
+- rnndb/graph/gf100_3d.xml   (  59971 bytes, from 2014-09-26 00:01:33)
+- rnndb/copyright.xml        (   6456 bytes, from 2014-12-31 02:13:31)
+- rnndb/nv_defs.xml          (   4399 bytes, from 2013-09-07 03:32:45)
+- rnndb/graph/nv_3ddefs.xml  (  16390 bytes, from 2014-09-25 06:32:11)
+- rnndb/fifo/nv_object.xml   (  15326 bytes, from 2014-09-25 06:32:11)
+- rnndb/nvchipsets.xml       (   2759 bytes, from 2014-10-05 01:51:02)
+- rnndb/g80_defs.xml         (  18175 bytes, from 2014-09-25 06:32:11)
+- rnndb/graph/gk104_p2mf.xml (   2376 bytes, from 2014-09-25 06:32:11)
+
+Copyright (C) 2006-2014 by the following authors:
 - Artur Huillet <arthur.huillet at free.fr> (ahuillet)
 - Ben Skeggs (darktama, darktama_)
 - B. R. <koala_br at users.sourceforge.net> (koala_br)
@@ -28,7 +29,7 @@ Copyright (C) 2006-2011 by the following authors:
 - EdB <edb_ at users.sf.net> (edb_)
 - Erik Waling <erikwailing at users.sf.net> (erikwaling)
 - Francisco Jerez <currojerez at riseup.net> (curro)
-- imirkin <imirkin at users.sf.net> (imirkin)
+- Ilia Mirkin <imirkin at alum.mit.edu> (imirkin)
 - jb17bsome <jb17bsome at bellsouth.net> (jb17bsome)
 - Jeremy Kolb <kjeremy at users.sf.net> (kjeremy)
 - Laurent Carlier <lordheavym at gmail.com> (lordheavy)
@@ -76,16 +77,74 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
 
-#define NVC0_3D_NOTIFY_ADDRESS_HIGH				0x00000104
-#define NVC0_3D_NOTIFY_ADDRESS_LOW				0x00000108
-#define NVC0_3D_NOTIFY						0x0000010c
 
-#define NVC0_3D_SERIALIZE					0x00000110
+
+#define NVE4_3D_UNK0144					0x00000144
+
+#define NVE4_3D_UPLOAD						0x00000000
+
+#define NVE4_3D_UPLOAD_LINE_LENGTH_IN				0x00000180
+
+#define NVE4_3D_UPLOAD_LINE_COUNT				0x00000184
+
+#define NVE4_3D_UPLOAD_DST_ADDRESS_HIGH			0x00000188
+
+#define NVE4_3D_UPLOAD_DST_ADDRESS_LOW				0x0000018c
+
+#define NVE4_3D_UPLOAD_DST_PITCH				0x00000190
+
+#define NVE4_3D_UPLOAD_DST_TILE_MODE				0x00000194
+
+#define NVE4_3D_UPLOAD_DST_WIDTH				0x00000198
+
+#define NVE4_3D_UPLOAD_DST_HEIGHT				0x0000019c
+
+#define NVE4_3D_UPLOAD_DST_DEPTH				0x000001a0
+
+#define NVE4_3D_UPLOAD_DST_Z					0x000001a4
+
+#define NVE4_3D_UPLOAD_DST_X					0x000001a8
+
+#define NVE4_3D_UPLOAD_DST_Y					0x000001ac
+
+#define NVE4_3D_UPLOAD_EXEC					0x000001b0
+#define NVE4_3D_UPLOAD_EXEC_LINEAR				0x00000001
+#define NVE4_3D_UPLOAD_EXEC_UNK1__MASK				0x0000007e
+#define NVE4_3D_UPLOAD_EXEC_UNK1__SHIFT			1
+#define NVE4_3D_UPLOAD_EXEC_BUF_NOTIFY				0x00000300
+#define NVE4_3D_UPLOAD_EXEC_UNK12__MASK			0x0000f000
+#define NVE4_3D_UPLOAD_EXEC_UNK12__SHIFT			12
+
+#define NVE4_3D_UPLOAD_DATA					0x000001b4
+
+#define NVE4_3D_UPLOAD_QUERY_ADDRESS_HIGH			0x000001dc
+
+#define NVE4_3D_UPLOAD_QUERY_ADDRESS_LOW			0x000001e0
+
+#define NVE4_3D_UPLOAD_QUERY_SEQUENCE				0x000001e4
+
+#define NVE4_3D_UPLOAD_UNK01F0					0x000001f0
+
+#define NVE4_3D_UPLOAD_UNK01F4					0x000001f4
+
+#define NVE4_3D_UPLOAD_UNK01F8					0x000001f8
+
+#define NVE4_3D_UPLOAD_UNK01FC					0x000001fc
+
+#define NVC0_3D_UNK200						0x00000200
+
+#define NVC0_3D_UNK204						0x00000204
+
+#define NVC0_3D_UNK208						0x00000208
 
 #define NVC0_3D_LINE_WIDTH_SEPARATE				0x0000020c
 
 #define NVC0_3D_FORCE_EARLY_FRAGMENT_TESTS			0x00000210
 
+#define NVC0_3D_UNK214						0x00000214
+
+#define NVC0_3D_UNK218						0x00000218
+
 #define NVC0_3D_MEM_BARRIER					0x0000021c
 #define NVC0_3D_MEM_BARRIER_UNK0				0x00000001
 #define NVC0_3D_MEM_BARRIER_UNK1				0x00000002
@@ -94,36 +153,114 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_MEM_BARRIER_UNK8				0x00000100
 #define NVC0_3D_MEM_BARRIER_UNK12				0x00001000
 
+#define NVC0_3D_UNK0220(i0)				       (0x00000220 + 0x4*(i0))
+#define NVC0_3D_UNK0220__ESIZE					0x00000004
+#define NVC0_3D_UNK0220__LEN					0x00000028
+
+#define NVC0_3D_UNK02C0					0x000002c0
+
+#define NVC0_3D_UNK02C4					0x000002c4
+
+#define NVC0_3D_GLOBAL_BASE					0x000002c8
+#define NVC0_3D_GLOBAL_BASE_HIGH__MASK				0x000000ff
+#define NVC0_3D_GLOBAL_BASE_HIGH__SHIFT			0
+#define NVC0_3D_GLOBAL_BASE_INDEX__MASK			0x00ff0000
+#define NVC0_3D_GLOBAL_BASE_INDEX__SHIFT			16
+#define NVC0_3D_GLOBAL_BASE_READ_OK				0x40000000
+#define NVC0_3D_GLOBAL_BASE_WRITE_OK				0x80000000
+
+#define NVC0_3D_UNK02CC					0x000002cc
+
+#define NVC0_3D_UNK02D0					0x000002d0
+
+#define NVC0_3D_UNK02D4					0x000002d4
+
+#define NVC0_3D_UNK02D8					0x000002d8
+
+#define NVC8_3D_UNK02E0					0x000002e0
+
+#define NVC1_3D_UNK02E4					0x000002e4
+#define NVC1_3D_UNK02E4_UNK0					0x00000001
+#define NVC1_3D_UNK02E4_UNK4					0x00000010
+#define NVC1_3D_UNK02E4_UNK8					0x00000100
+#define NVC1_3D_UNK02E4_UNK12__MASK				0x0000f000
+#define NVC1_3D_UNK02E4_UNK12__SHIFT				12
+
+#define NVC8_3D_UNK02E8					0x000002e8
+
+#define NVC0_3D_UNK02EC					0x000002ec
+#define NVC0_3D_UNK02EC_UNK0					0x00000001
+#define NVC0_3D_UNK02EC_UNK4__MASK				0x00000ff0
+#define NVC0_3D_UNK02EC_UNK4__SHIFT				4
+
+#define NVC8_3D_UNK02F8					0x000002f8
+
+#define NVC8_3D_UNK02FC					0x000002fc
+
+#define NVC0_3D_UNK0300					0x00000300
+
+#define NVC0_3D_UNK0304					0x00000304
+
 #define NVC0_3D_CACHE_SPLIT					0x00000308
 #define NVC1_3D_CACHE_SPLIT_16K_SHARED_48K_L1			0x00000001
 #define NVE4_3D_CACHE_SPLIT_32K_SHARED_32K_L1			0x00000002
 #define NVC0_3D_CACHE_SPLIT_48K_SHARED_16K_L1			0x00000003
 
+#define NVC0_3D_UNK030C					0x0000030c
+
+#define NVC0_3D_UNK0310					0x00000310
+
+#define NVE4_3D_UNK0310					0x00000310
+
+#define NVC0_3D_UNK0314					0x00000314
+
+#define NVC0_3D_UNK0318					0x00000318
+
+#define NVC0_3D_UNK031C					0x0000031c
+
 #define NVC0_3D_TESS_MODE					0x00000320
-#define NVC0_3D_TESS_MODE_PRIM__MASK				0x0000000f
+#define NVC0_3D_TESS_MODE_PRIM__MASK				0x00000003
 #define NVC0_3D_TESS_MODE_PRIM__SHIFT				0
-#define NVC0_3D_TESS_MODE_PRIM_ISOLINES				0x00000000
+#define NVC0_3D_TESS_MODE_PRIM_ISOLINES			0x00000000
 #define NVC0_3D_TESS_MODE_PRIM_TRIANGLES			0x00000001
 #define NVC0_3D_TESS_MODE_PRIM_QUADS				0x00000002
-#define NVC0_3D_TESS_MODE_SPACING__MASK				0x000000f0
+#define NVC0_3D_TESS_MODE_SPACING__MASK			0x00000030
 #define NVC0_3D_TESS_MODE_SPACING__SHIFT			4
-#define NVC0_3D_TESS_MODE_SPACING_EQUAL				0x00000000
+#define NVC0_3D_TESS_MODE_SPACING_EQUAL			0x00000000
 #define NVC0_3D_TESS_MODE_SPACING_FRACTIONAL_ODD		0x00000010
 #define NVC0_3D_TESS_MODE_SPACING_FRACTIONAL_EVEN		0x00000020
 #define NVC0_3D_TESS_MODE_CW					0x00000100
 #define NVC0_3D_TESS_MODE_CONNECTED				0x00000200
 
 #define NVC0_3D_TESS_LEVEL_OUTER(i0)			       (0x00000324 + 0x4*(i0))
-#define NVC0_3D_TESS_LEVEL_OUTER__ESIZE				0x00000004
+#define NVC0_3D_TESS_LEVEL_OUTER__ESIZE			0x00000004
 #define NVC0_3D_TESS_LEVEL_OUTER__LEN				0x00000004
 
 #define NVC0_3D_TESS_LEVEL_INNER(i0)			       (0x00000334 + 0x4*(i0))
-#define NVC0_3D_TESS_LEVEL_INNER__ESIZE				0x00000004
+#define NVC0_3D_TESS_LEVEL_INNER__ESIZE			0x00000004
 #define NVC0_3D_TESS_LEVEL_INNER__LEN				0x00000002
 
+#define NVC0_3D_UNK033C(i0)				       (0x0000033c + 0x4*(i0))
+#define NVC0_3D_UNK033C__ESIZE					0x00000004
+#define NVC0_3D_UNK033C__LEN					0x00000009
+
+#define NVC0_3D_UNK0360					0x00000360
+
+#define NVC0_3D_UNK0364					0x00000364
+
+#define NVC0_3D_UNK0368					0x00000368
+
+#define NVC8_3D_UNK036C					0x0000036c
+
+#define NVC8_3D_UNK0370					0x00000370
+
+#define NVC8_3D_UNK0374					0x00000374
+
+#define NVC8_3D_UNK0378					0x00000378
+
 #define NVC0_3D_RASTERIZE_ENABLE				0x0000037c
 
-#define NVC0_3D_TFB(i0)					       (0x00000380 + 0x20*(i0))
+#define NVC0_3D_TFB(i0)				       (0x00000380 + 0x20*(i0))
 #define NVC0_3D_TFB__ESIZE					0x00000020
 #define NVC0_3D_TFB__LEN					0x00000004
 
@@ -137,9 +274,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_TFB_BUFFER_OFFSET(i0)			       (0x00000390 + 0x20*(i0))
 
+#define NVC0_3D_UNK0400(i0)				       (0x00000400 + 0x4*(i0))
+#define NVC0_3D_UNK0400__ESIZE					0x00000004
+#define NVC0_3D_UNK0400__LEN					0x000000c0
+
 #define NVC0_3D_TFB_STREAM(i0)				       (0x00000700 + 0x10*(i0))
 #define NVC0_3D_TFB_STREAM__ESIZE				0x00000010
-#define NVC0_3D_TFB_STREAM__LEN					0x00000004
+#define NVC0_3D_TFB_STREAM__LEN				0x00000004
 
 #define NVC0_3D_TFB_VARYING_COUNT(i0)			       (0x00000704 + 0x10*(i0))
 #define NVC0_3D_TFB_VARYING_COUNT__ESIZE			0x00000010
@@ -149,15 +290,45 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_TFB_BUFFER_STRIDE__ESIZE			0x00000010
 #define NVC0_3D_TFB_BUFFER_STRIDE__LEN				0x00000004
 
+#define NVC0_3D_UNK0740					0x00000740
+
 #define NVC0_3D_TFB_ENABLE					0x00000744
 
+#define NVC0_3D_UNK0748					0x00000748
+
+#define NVC0_3D_UNK074C					0x0000074c
+
+#define NVC0_3D_UNK0750					0x00000750
+
 #define NVC0_3D_SAMPLE_SHADING					0x00000754
 #define NVC0_3D_SAMPLE_SHADING_MIN_SAMPLES__MASK		0x0000000f
 #define NVC0_3D_SAMPLE_SHADING_MIN_SAMPLES__SHIFT		0
 #define NVC0_3D_SAMPLE_SHADING_ENABLE				0x00000010
 
+#define NVC0_3D_UNK075C					0x0000075c
+
+#define NVC0_3D_UNK0760(i0)				       (0x00000760 + 0x4*(i0))
+#define NVC0_3D_UNK0760__ESIZE					0x00000004
+#define NVC0_3D_UNK0760__LEN					0x00000004
+
+#define NVC0_3D_UNK0770(i0)				       (0x00000770 + 0x4*(i0))
+#define NVC0_3D_UNK0770__ESIZE					0x00000004
+#define NVC0_3D_UNK0770__LEN					0x00000003
+#define NVC0_3D_UNK0770_UNK4__MASK				0x000000f0
+#define NVC0_3D_UNK0770_UNK4__SHIFT				4
+#define NVC0_3D_UNK0770_UNK12__MASK				0x0000f000
+#define NVC0_3D_UNK0770_UNK12__SHIFT				12
+#define NVC0_3D_UNK0770_UNK20__MASK				0x00f00000
+#define NVC0_3D_UNK0770_UNK20__SHIFT				20
+#define NVC0_3D_UNK0770_UNK28__MASK				0xf0000000
+#define NVC0_3D_UNK0770_UNK28__SHIFT				28
+
 #define NVC0_3D_LOCAL_BASE					0x0000077c
 
+#define NVC0_3D_UNK0780(i0)				       (0x00000780 + 0x4*(i0))
+#define NVC0_3D_UNK0780__ESIZE					0x00000004
+#define NVC0_3D_UNK0780__LEN					0x00000004
+
 #define NVC0_3D_TEMP_ADDRESS_HIGH				0x00000790
 
 #define NVC0_3D_TEMP_ADDRESS_LOW				0x00000794
@@ -166,23 +337,61 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_TEMP_SIZE_LOW					0x0000079c
 
-#define NVC0_3D_WARP_TEMP_ALLOC					0x000007a0
+#define NVC0_3D_WARP_TEMP_ALLOC				0x000007a0
+
+#define NVC8_3D_UNK07A4(i0)				       (0x000007a4 + 0x4*(i0))
+#define NVC8_3D_UNK07A4__ESIZE					0x00000004
+#define NVC8_3D_UNK07A4__LEN					0x00000002
+
+#define NVE4_3D_UNK07AC					0x000007ac
+
+#define NVC0_3D_UNK07B0(i0)				       (0x000007b0 + 0x4*(i0))
+#define NVC0_3D_UNK07B0__ESIZE					0x00000004
+#define NVC0_3D_UNK07B0__LEN					0x00000004
 
 #define NVC0_3D_ZCULL_WIDTH					0x000007c0
 
 #define NVC0_3D_ZCULL_HEIGHT					0x000007c4
 
+#define NVC0_3D_ZCULL_UNK07C8					0x000007c8
+
+#define NVC0_3D_ZCULL_UNK07CC					0x000007cc
+
+#define NVC0_3D_UNK07D0(i0)				       (0x000007d0 + 0x4*(i0))
+#define NVC0_3D_UNK07D0__ESIZE					0x00000004
+#define NVC0_3D_UNK07D0__LEN					0x00000003
+#define NVC0_3D_UNK07D0_UNK4__MASK				0x000000f0
+#define NVC0_3D_UNK07D0_UNK4__SHIFT				4
+#define NVC0_3D_UNK07D0_UNK12__MASK				0x0000f000
+#define NVC0_3D_UNK07D0_UNK12__SHIFT				12
+#define NVC0_3D_UNK07D0_UNK20__MASK				0x00f00000
+#define NVC0_3D_UNK07D0_UNK20__SHIFT				20
+#define NVC0_3D_UNK07D0_UNK28__MASK				0xf0000000
+#define NVC0_3D_UNK07D0_UNK28__SHIFT				28
+
+#define NVC0_3D_UNK07DC					0x000007dc
+
+#define NVC0_3D_UNK07E0					0x000007e0
+
+#define NVC0_3D_UNK07E4					0x000007e4
+
 #define NVC0_3D_ZCULL_ADDRESS_HIGH				0x000007e8
 
 #define NVC0_3D_ZCULL_ADDRESS_LOW				0x000007ec
 
 #define NVC0_3D_ZCULL_LIMIT_HIGH				0x000007f0
 
-#define NVC0_3D_ZCULL_LIMIT_LOW					0x000007f4
+#define NVC0_3D_ZCULL_LIMIT_LOW				0x000007f4
+
+#define NVC0_3D_UNK07F8					0x000007f8
+#define NVC0_3D_UNK07F8_UNK0					0x00000001
+#define NVC0_3D_UNK07F8_UNK1					0x00000010
+
+#define NVE4_3D_UNK07FC					0x000007fc
 
 #define NVC0_3D_RT(i0)					       (0x00000800 + 0x40*(i0))
 #define NVC0_3D_RT__ESIZE					0x00000040
-#define NVC0_3D_RT__LEN						0x00000008
+#define NVC0_3D_RT__LEN					0x00000008
 
 #define NVC0_3D_RT_ADDRESS_HIGH(i0)			       (0x00000800 + 0x40*(i0))
 
@@ -215,15 +424,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_RT_UNK14(i0)				       (0x00000824 + 0x40*(i0))
 
 #define NVC0_3D_VIEWPORT_SCALE_X(i0)			       (0x00000a00 + 0x20*(i0))
-#define NVC0_3D_VIEWPORT_SCALE_X__ESIZE				0x00000020
+#define NVC0_3D_VIEWPORT_SCALE_X__ESIZE			0x00000020
 #define NVC0_3D_VIEWPORT_SCALE_X__LEN				0x00000010
 
 #define NVC0_3D_VIEWPORT_SCALE_Y(i0)			       (0x00000a04 + 0x20*(i0))
-#define NVC0_3D_VIEWPORT_SCALE_Y__ESIZE				0x00000020
+#define NVC0_3D_VIEWPORT_SCALE_Y__ESIZE			0x00000020
 #define NVC0_3D_VIEWPORT_SCALE_Y__LEN				0x00000010
 
 #define NVC0_3D_VIEWPORT_SCALE_Z(i0)			       (0x00000a08 + 0x20*(i0))
-#define NVC0_3D_VIEWPORT_SCALE_Z__ESIZE				0x00000020
+#define NVC0_3D_VIEWPORT_SCALE_Z__ESIZE			0x00000020
 #define NVC0_3D_VIEWPORT_SCALE_Z__LEN				0x00000010
 
 #define NVC0_3D_VIEWPORT_TRANSLATE_X(i0)		       (0x00000a0c + 0x20*(i0))
@@ -242,9 +451,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VIEWPORT_HORIZ__ESIZE				0x00000010
 #define NVC0_3D_VIEWPORT_HORIZ__LEN				0x00000010
 #define NVC0_3D_VIEWPORT_HORIZ_X__MASK				0x0000ffff
-#define NVC0_3D_VIEWPORT_HORIZ_X__SHIFT				0
+#define NVC0_3D_VIEWPORT_HORIZ_X__SHIFT			0
 #define NVC0_3D_VIEWPORT_HORIZ_W__MASK				0xffff0000
-#define NVC0_3D_VIEWPORT_HORIZ_W__SHIFT				16
+#define NVC0_3D_VIEWPORT_HORIZ_W__SHIFT			16
 
 #define NVC0_3D_VIEWPORT_VERT(i0)			       (0x00000c04 + 0x10*(i0))
 #define NVC0_3D_VIEWPORT_VERT__ESIZE				0x00000010
@@ -255,7 +464,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VIEWPORT_VERT_H__SHIFT				16
 
 #define NVC0_3D_DEPTH_RANGE_NEAR(i0)			       (0x00000c08 + 0x10*(i0))
-#define NVC0_3D_DEPTH_RANGE_NEAR__ESIZE				0x00000010
+#define NVC0_3D_DEPTH_RANGE_NEAR__ESIZE			0x00000010
 #define NVC0_3D_DEPTH_RANGE_NEAR__LEN				0x00000010
 
 #define NVC0_3D_DEPTH_RANGE_FAR(i0)			       (0x00000c0c + 0x10*(i0))
@@ -278,7 +487,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_CLIP_RECT_VERT_MAX__MASK			0xffff0000
 #define NVC0_3D_CLIP_RECT_VERT_MAX__SHIFT			16
 
-#define NVC0_3D_CLIPID_REGION_HORIZ(i0)			       (0x00000d40 + 0x8*(i0))
+#define NVC0_3D_CLIPID_REGION_HORIZ(i0)		       (0x00000d40 + 0x8*(i0))
 #define NVC0_3D_CLIPID_REGION_HORIZ__ESIZE			0x00000008
 #define NVC0_3D_CLIPID_REGION_HORIZ__LEN			0x00000004
 #define NVC0_3D_CLIPID_REGION_HORIZ_X__MASK			0x0000ffff
@@ -288,12 +497,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_CLIPID_REGION_VERT(i0)			       (0x00000d44 + 0x8*(i0))
 #define NVC0_3D_CLIPID_REGION_VERT__ESIZE			0x00000008
-#define NVC0_3D_CLIPID_REGION_VERT__LEN				0x00000004
+#define NVC0_3D_CLIPID_REGION_VERT__LEN			0x00000004
 #define NVC0_3D_CLIPID_REGION_VERT_Y__MASK			0x0000ffff
 #define NVC0_3D_CLIPID_REGION_VERT_Y__SHIFT			0
 #define NVC0_3D_CLIPID_REGION_VERT_H__MASK			0xffff0000
 #define NVC0_3D_CLIPID_REGION_VERT_H__SHIFT			16
 
+#define NVC0_3D_UNK0D60					0x00000d60
+
 #define NVC0_3D_CALL_LIMIT_LOG					0x00000d64
 
 #define NVC0_3D_COUNTER_ENABLE					0x00000d68
@@ -314,22 +525,58 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_COUNTER_ENABLE_UNK0E				0x00004000
 #define NVC0_3D_COUNTER_ENABLE_UNK0F				0x00008000
 
+#define NVC0_3D_UNK0D6C(i0)				       (0x00000d6c + 0x4*(i0))
+#define NVC0_3D_UNK0D6C__ESIZE					0x00000004
+#define NVC0_3D_UNK0D6C__LEN					0x00000002
+#define NVC0_3D_UNK0D6C_X__MASK				0x0000ffff
+#define NVC0_3D_UNK0D6C_X__SHIFT				0
+#define NVC0_3D_UNK0D6C_Y__MASK				0xffff0000
+#define NVC0_3D_UNK0D6C_Y__SHIFT				16
+
 #define NVC0_3D_VERTEX_BUFFER_FIRST				0x00000d74
 
 #define NVC0_3D_VERTEX_BUFFER_COUNT				0x00000d78
 
 #define NVC0_3D_DEPTH_CLIP_NEGATIVE_Z				0x00000d7c
 
-#define NVC0_3D_CLEAR_COLOR(i0)				       (0x00000d80 + 0x4*(i0))
+#define NVC0_3D_CLEAR_COLOR(i0)			       (0x00000d80 + 0x4*(i0))
 #define NVC0_3D_CLEAR_COLOR__ESIZE				0x00000004
 #define NVC0_3D_CLEAR_COLOR__LEN				0x00000004
 
 #define NVC0_3D_CLEAR_DEPTH					0x00000d90
 
+#define NVC0_3D_UNK0D94					0x00000d94
+
+#define NVE4_3D_UNK0D98					0x00000d98
+
+#define NVC0_3D_UNK0D9C					0x00000d9c
+
 #define NVC0_3D_CLEAR_STENCIL					0x00000da0
 
+#define NVE4_3D_UNK0DA4					0x00000da4
+#define NVE4_3D_UNK0DA4_UNK0					0x00000001
+#define NVE4_3D_UNK0DA4_UNK4					0x00000010
+#define NVE4_3D_UNK0DA4_UNK12					0x00001000
+
+#define NVC0_3D_POLYGON_MODE_FRONT				0x00000dac
+#define NVC0_3D_POLYGON_MODE_FRONT_POINT			0x00001b00
+#define NVC0_3D_POLYGON_MODE_FRONT_LINE			0x00001b01
+#define NVC0_3D_POLYGON_MODE_FRONT_FILL			0x00001b02
+
+#define NVC0_3D_POLYGON_MODE_BACK				0x00000db0
+#define NVC0_3D_POLYGON_MODE_BACK_POINT			0x00001b00
+#define NVC0_3D_POLYGON_MODE_BACK_LINE				0x00001b01
+#define NVC0_3D_POLYGON_MODE_BACK_FILL				0x00001b02
+
 #define NVC0_3D_POLYGON_SMOOTH_ENABLE				0x00000db4
 
+#define NVC0_3D_UNK0DB8					0x00000db8
+
+#define NVC0_3D_ZCULL_UNK0DBC					0x00000dbc
+#define NVC0_3D_ZCULL_UNK0DBC_UNK0				0x00000001
+#define NVC0_3D_ZCULL_UNK0DBC_UNK16__MASK			0x00030000
+#define NVC0_3D_ZCULL_UNK0DBC_UNK16__SHIFT			16
+
 #define NVC0_3D_POLYGON_OFFSET_POINT_ENABLE			0x00000dc0
 
 #define NVC0_3D_POLYGON_OFFSET_LINE_ENABLE			0x00000dc4
@@ -338,13 +585,27 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_PATCH_VERTICES					0x00000dcc
 
+#define NVC0_3D_ZCULL_UNK0DD8					0x00000dd8
+#define NVC0_3D_ZCULL_UNK0DD8_UNK0__MASK			0x00000007
+#define NVC0_3D_ZCULL_UNK0DD8_UNK0__SHIFT			0
+#define NVC0_3D_ZCULL_UNK0DD8_UNK8__MASK			0x00000300
+#define NVC0_3D_ZCULL_UNK0DD8_UNK8__SHIFT			8
+#define NVC0_3D_ZCULL_UNK0DD8_UNK16__MASK			0xffff0000
+#define NVC0_3D_ZCULL_UNK0DD8_UNK16__SHIFT			16
+
+#define NVC0_3D_UNK0DDC					0x00000ddc
+
 #define NVC0_3D_WATCHDOG_TIMER					0x00000de4
 
 #define NVC0_3D_PRIM_RESTART_WITH_DRAW_ARRAYS			0x00000de8
 
-#define NVC0_3D_WINDOW_OFFSET_X					0x00000df8
+#define NVC0_3D_UNK0DEC					0x00000dec
 
-#define NVC0_3D_WINDOW_OFFSET_Y					0x00000dfc
+#define NVC0_3D_UNK0DF4					0x00000df4
+
+#define NVC0_3D_WINDOW_OFFSET_X				0x00000df8
+
+#define NVC0_3D_WINDOW_OFFSET_Y				0x00000dfc
 
 #define NVC0_3D_SCISSOR_ENABLE(i0)			       (0x00000e00 + 0x10*(i0))
 #define NVC0_3D_SCISSOR_ENABLE__ESIZE				0x00000010
@@ -353,18 +614,26 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_SCISSOR_HORIZ(i0)			       (0x00000e04 + 0x10*(i0))
 #define NVC0_3D_SCISSOR_HORIZ__ESIZE				0x00000010
 #define NVC0_3D_SCISSOR_HORIZ__LEN				0x00000010
-#define NVC0_3D_SCISSOR_HORIZ_MIN__MASK				0x0000ffff
+#define NVC0_3D_SCISSOR_HORIZ_MIN__MASK			0x0000ffff
 #define NVC0_3D_SCISSOR_HORIZ_MIN__SHIFT			0
-#define NVC0_3D_SCISSOR_HORIZ_MAX__MASK				0xffff0000
+#define NVC0_3D_SCISSOR_HORIZ_MAX__MASK			0xffff0000
 #define NVC0_3D_SCISSOR_HORIZ_MAX__SHIFT			16
 
 #define NVC0_3D_SCISSOR_VERT(i0)			       (0x00000e08 + 0x10*(i0))
 #define NVC0_3D_SCISSOR_VERT__ESIZE				0x00000010
 #define NVC0_3D_SCISSOR_VERT__LEN				0x00000010
 #define NVC0_3D_SCISSOR_VERT_MIN__MASK				0x0000ffff
-#define NVC0_3D_SCISSOR_VERT_MIN__SHIFT				0
+#define NVC0_3D_SCISSOR_VERT_MIN__SHIFT			0
 #define NVC0_3D_SCISSOR_VERT_MAX__MASK				0xffff0000
-#define NVC0_3D_SCISSOR_VERT_MAX__SHIFT				16
+#define NVC0_3D_SCISSOR_VERT_MAX__SHIFT			16
+
+#define NVC0_3D_UNK0F00(i0)				       (0x00000f00 + 0x4*(i0))
+#define NVC0_3D_UNK0F00__ESIZE					0x00000004
+#define NVC0_3D_UNK0F00__LEN					0x00000004
+
+#define NVE4_3D_UNK0F20(i0)				       (0x00000f20 + 0x4*(i0))
+#define NVE4_3D_UNK0F20__ESIZE					0x00000004
+#define NVE4_3D_UNK0F20__LEN					0x00000005
 
 #define NVC0_3D_STENCIL_BACK_FUNC_REF				0x00000f54
 
@@ -376,14 +645,20 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_VERTEX_RUNOUT_ADDRESS_LOW			0x00000f88
 
+#define NVC0_3D_UNK0F8C					0x00000f8c
+
 #define NVC0_3D_COLOR_MASK_COMMON				0x00000f90
 
+#define NVC0_3D_UNK0F98					0x00000f98
+
 #define NVC0_3D_DEPTH_BOUNDS(i0)			       (0x00000f9c + 0x4*(i0))
 #define NVC0_3D_DEPTH_BOUNDS__ESIZE				0x00000004
 #define NVC0_3D_DEPTH_BOUNDS__LEN				0x00000002
 
 #define NVC0_3D_RT_SEPARATE_FRAG_DATA				0x00000fac
 
+#define NVC0_3D_UNK0FB0					0x00000fb0
+
 #define NVC0_3D_MSAA_MASK(i0)				       (0x00000fbc + 0x4*(i0))
 #define NVC0_3D_MSAA_MASK__ESIZE				0x00000004
 #define NVC0_3D_MSAA_MASK__LEN					0x00000004
@@ -392,6 +667,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_CLIPID_ADDRESS_LOW				0x00000fd0
 
+#define NVC0_3D_UNK0FDC					0x00000fdc
+
 #define NVC0_3D_ZETA_ADDRESS_HIGH				0x00000fe0
 
 #define NVC0_3D_ZETA_ADDRESS_LOW				0x00000fe4
@@ -414,15 +691,92 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_SCREEN_SCISSOR_VERT_Y__MASK			0x0000ffff
 #define NVC0_3D_SCREEN_SCISSOR_VERT_Y__SHIFT			0
 
+#define NVC0_3D_UNK1000					0x00001000
+
+#define NVC0_3D_UNK1008					0x00001008
+
+#define NVC0_3D_UNK100C					0x0000100c
+
+#define NVC0_3D_UNK1010					0x00001010
+
+#define NVC0_3D_UNK1018					0x00001018
+
+#define NVC0_3D_UNK101C					0x0000101c
+
+#define NVC0_3D_UNK1020					0x00001020
+
+#define NVC0_3D_UNK1024					0x00001024
+
+#define NVC0_3D_UNK1040(i0)				       (0x00001040 + 0x4*(i0))
+#define NVC0_3D_UNK1040__ESIZE					0x00000004
+#define NVC0_3D_UNK1040__LEN					0x00000010
+
+#define NVC0_3D_UNK10CC					0x000010cc
+#define NVC0_3D_UNK10CC_UNK0__MASK				0x000000ff
+#define NVC0_3D_UNK10CC_UNK0__SHIFT				0
+#define NVC0_3D_UNK10CC_UNK16__MASK				0x00ff0000
+#define NVC0_3D_UNK10CC_UNK16__SHIFT				16
+
+#define NVC0_3D_UNK10E0					0x000010e0
+#define NVC0_3D_UNK10E0_UNK0__MASK				0x000000ff
+#define NVC0_3D_UNK10E0_UNK0__SHIFT				0
+#define NVC0_3D_UNK10E0_UNK16__MASK				0x00ff0000
+#define NVC0_3D_UNK10E0_UNK16__SHIFT				16
+
+#define NVC0_3D_UNK10E4					0x000010e4
+#define NVC0_3D_UNK10E4_UNK0__MASK				0x000000ff
+#define NVC0_3D_UNK10E4_UNK0__SHIFT				0
+#define NVC0_3D_UNK10E4_UNK16__MASK				0x00ff0000
+#define NVC0_3D_UNK10E4_UNK16__SHIFT				16
+
+#define NVC0_3D_UNK10E8					0x000010e8
+#define NVC0_3D_UNK10E8_UNK0__MASK				0x0000003f
+#define NVC0_3D_UNK10E8_UNK0__SHIFT				0
+#define NVC0_3D_UNK10E8_UNK16__MASK				0x003f0000
+#define NVC0_3D_UNK10E8_UNK16__SHIFT				16
+
+#define NVC0_3D_UNK10EC					0x000010ec
+#define NVC0_3D_UNK10EC_UNK0__MASK				0x000000ff
+#define NVC0_3D_UNK10EC_UNK0__SHIFT				0
+#define NVC0_3D_UNK10EC_UNK16__MASK				0x00ff0000
+#define NVC0_3D_UNK10EC_UNK16__SHIFT				16
+
+#define NVC0_3D_UNK10F0					0x000010f0
+#define NVC0_3D_UNK10F0_UNK0__MASK				0x000000ff
+#define NVC0_3D_UNK10F0_UNK0__SHIFT				0
+#define NVC0_3D_UNK10F0_UNK16__MASK				0x00ff0000
+#define NVC0_3D_UNK10F0_UNK16__SHIFT				16
+
+#define NVC0_3D_UNK10F4					0x000010f4
+#define NVC0_3D_UNK10F4_UNK0					0x00000001
+#define NVC0_3D_UNK10F4_UNK4					0x00000010
+#define NVC0_3D_UNK10F4_UNK8					0x00000100
+
 #define NVC0_3D_CLEAR_FLAGS					0x000010f8
 #define NVC0_3D_CLEAR_FLAGS_STENCIL_MASK			0x00000001
 #define NVC0_3D_CLEAR_FLAGS_UNK4				0x00000010
 #define NVC0_3D_CLEAR_FLAGS_SCISSOR				0x00000100
 #define NVC0_3D_CLEAR_FLAGS_VIEWPORT				0x00001000
 
-#define NVC0_3D_VERTEX_ID					0x00001118
+#define NVC0_3D_UNK10FC					0x000010fc
+
+#define NVC0_3D_UNK110C					0x0000110c
+
+#define NVC0_3D_UNK1110					0x00001110
+
+#define NVC0_3D_WRCACHE_FLUSH					0x00001114
+
+#define NVC0_3D_VERTEX_ID_BASE					0x00001118
+
+#define NVC0_3D_VTX_ATTR_MASK_UNK0DD0_ALT(i0)		       (0x00001120 + 0x4*(i0))
+#define NVC0_3D_VTX_ATTR_MASK_UNK0DD0_ALT__ESIZE		0x00000004
+#define NVC0_3D_VTX_ATTR_MASK_UNK0DD0_ALT__LEN			0x00000004
+
+#define NVC0_3D_UNK1140					0x00001140
 
-#define NVC0_3D_VTX_ATTR_DEFINE					0x0000114c
+#define NVC0_3D_UNK1144					0x00001144
+
+#define NVC0_3D_VTX_ATTR_DEFINE				0x0000114c
 #define NVC0_3D_VTX_ATTR_DEFINE_ATTR__MASK			0x000000ff
 #define NVC0_3D_VTX_ATTR_DEFINE_ATTR__SHIFT			0
 #define NVC0_3D_VTX_ATTR_DEFINE_COMP__MASK			0x00000700
@@ -432,8 +786,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VTX_ATTR_DEFINE_SIZE__MASK			0x00007000
 #define NVC0_3D_VTX_ATTR_DEFINE_SIZE__SHIFT			12
 #define NVC0_3D_VTX_ATTR_DEFINE_SIZE_8				0x00001000
-#define NVC0_3D_VTX_ATTR_DEFINE_SIZE_16				0x00002000
-#define NVC0_3D_VTX_ATTR_DEFINE_SIZE_32				0x00004000
+#define NVC0_3D_VTX_ATTR_DEFINE_SIZE_16			0x00002000
+#define NVC0_3D_VTX_ATTR_DEFINE_SIZE_32			0x00004000
 #define NVC0_3D_VTX_ATTR_DEFINE_TYPE__MASK			0x00070000
 #define NVC0_3D_VTX_ATTR_DEFINE_TYPE__SHIFT			16
 #define NVC0_3D_VTX_ATTR_DEFINE_TYPE_SNORM			0x00010000
@@ -456,36 +810,40 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_CONST			0x00000040
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_OFFSET__MASK		0x001fff80
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_OFFSET__SHIFT		7
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE__MASK			0x07e00000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE__MASK		0x07e00000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE__SHIFT		21
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_32_32_32_32		0x00200000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_32_32_32		0x00400000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_16_16_16_16		0x00600000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_32_32			0x00800000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_32_32		0x00800000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_16_16_16		0x00a00000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_8_8_8_8		0x01400000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_16_16			0x01e00000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_16_16		0x01e00000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_32			0x02400000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_8_8_8			0x02600000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_8_8_8		0x02600000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_8_8			0x03000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_16			0x03600000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_8			0x03a00000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_10_10_10_2		0x06000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_11_11_10		0x06200000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE__MASK			0x38000000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE__MASK		0x38000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE__SHIFT		27
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_SNORM			0x08000000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_UNORM			0x10000000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_SNORM		0x08000000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_UNORM		0x10000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_SINT			0x18000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_UINT			0x20000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_USCALED		0x28000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_SSCALED		0x30000000
-#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_FLOAT			0x38000000
+#define NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_FLOAT		0x38000000
 #define NVC0_3D_VERTEX_ATTRIB_FORMAT_BGRA			0x80000000
 
+#define NVC0_3D_UNK1214					0x00001214
+
+#define NVC0_3D_UNK1218					0x00001218
+
 #define NVC0_3D_RT_CONTROL					0x0000121c
 #define NVC0_3D_RT_CONTROL_COUNT__MASK				0x0000000f
-#define NVC0_3D_RT_CONTROL_COUNT__SHIFT				0
+#define NVC0_3D_RT_CONTROL_COUNT__SHIFT			0
 #define NVC0_3D_RT_CONTROL_MAP0__MASK				0x00000070
 #define NVC0_3D_RT_CONTROL_MAP0__SHIFT				4
 #define NVC0_3D_RT_CONTROL_MAP1__MASK				0x00000380
@@ -503,11 +861,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_RT_CONTROL_MAP7__MASK				0x0e000000
 #define NVC0_3D_RT_CONTROL_MAP7__SHIFT				25
 
+#define NVC0_3D_UNK1220					0x00001220
+
 #define NVC0_3D_ZETA_HORIZ					0x00001228
 
 #define NVC0_3D_ZETA_VERT					0x0000122c
 
-#define NVC0_3D_ZETA_ARRAY_MODE					0x00001230
+#define NVC0_3D_ZETA_ARRAY_MODE				0x00001230
 #define NVC0_3D_ZETA_ARRAY_MODE_LAYERS__MASK			0x0000ffff
 #define NVC0_3D_ZETA_ARRAY_MODE_LAYERS__SHIFT			0
 #define NVC0_3D_ZETA_ARRAY_MODE_UNK				0x00010000
@@ -516,19 +876,35 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_DRAW_TFB_BYTES					0x0000123c
 
-#define NVC0_3D_FP_RESULT_COUNT					0x00001298
+#define NVC0_3D_UNK1284					0x00001284
+
+#define NVC0_3D_UNK1288_TIC_FLUSH				0x00001288
+
+#define NVC0_3D_UNK1290					0x00001290
+
+#define NVC0_3D_UNK12A4					0x000012a4
+
+#define NVC0_3D_UNK12AC					0x000012ac
+
+#define NVC0_3D_UNK12C8					0x000012c8
 
 #define NVC0_3D_DEPTH_TEST_ENABLE				0x000012cc
 
 #define NVC0_3D_D3D_FILL_MODE					0x000012d0
 #define NVC0_3D_D3D_FILL_MODE_POINT				0x00000001
-#define NVC0_3D_D3D_FILL_MODE_WIREFRAME				0x00000002
+#define NVC0_3D_D3D_FILL_MODE_WIREFRAME			0x00000002
 #define NVC0_3D_D3D_FILL_MODE_SOLID				0x00000003
 
 #define NVC0_3D_SHADE_MODEL					0x000012d4
 #define NVC0_3D_SHADE_MODEL_FLAT				0x00001d00
 #define NVC0_3D_SHADE_MODEL_SMOOTH				0x00001d01
 
+#define NVC0_3D_UNK12D8(i0)				       (0x000012d8 + 0x4*(i0))
+#define NVC0_3D_UNK12D8__ESIZE					0x00000004
+#define NVC0_3D_UNK12D8__LEN					0x00000002
+
+#define NVC0_3D_UNK12E0					0x000012e0
+
 #define NVC0_3D_BLEND_INDEPENDENT				0x000012e4
 
 #define NVC0_3D_DEPTH_WRITE_ENABLE				0x000012e8
@@ -538,51 +914,51 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VB_ELEMENT_U8_SETUP				0x00001300
 #define NVC0_3D_VB_ELEMENT_U8_SETUP_OFFSET__MASK		0xc0000000
 #define NVC0_3D_VB_ELEMENT_U8_SETUP_OFFSET__SHIFT		30
-#define NVC0_3D_VB_ELEMENT_U8_SETUP_COUNT__MASK			0x3fffffff
+#define NVC0_3D_VB_ELEMENT_U8_SETUP_COUNT__MASK		0x3fffffff
 #define NVC0_3D_VB_ELEMENT_U8_SETUP_COUNT__SHIFT		0
 
 #define NVC0_3D_VB_ELEMENT_U8					0x00001304
 #define NVC0_3D_VB_ELEMENT_U8_I0__MASK				0x000000ff
-#define NVC0_3D_VB_ELEMENT_U8_I0__SHIFT				0
+#define NVC0_3D_VB_ELEMENT_U8_I0__SHIFT			0
 #define NVC0_3D_VB_ELEMENT_U8_I1__MASK				0x0000ff00
-#define NVC0_3D_VB_ELEMENT_U8_I1__SHIFT				8
+#define NVC0_3D_VB_ELEMENT_U8_I1__SHIFT			8
 #define NVC0_3D_VB_ELEMENT_U8_I2__MASK				0x00ff0000
-#define NVC0_3D_VB_ELEMENT_U8_I2__SHIFT				16
+#define NVC0_3D_VB_ELEMENT_U8_I2__SHIFT			16
 #define NVC0_3D_VB_ELEMENT_U8_I3__MASK				0xff000000
-#define NVC0_3D_VB_ELEMENT_U8_I3__SHIFT				24
+#define NVC0_3D_VB_ELEMENT_U8_I3__SHIFT			24
 
 #define NVC0_3D_D3D_CULL_MODE					0x00001308
 #define NVC0_3D_D3D_CULL_MODE_NONE				0x00000001
 #define NVC0_3D_D3D_CULL_MODE_FRONT				0x00000002
 #define NVC0_3D_D3D_CULL_MODE_BACK				0x00000003
 
-#define NVC0_3D_DEPTH_TEST_FUNC					0x0000130c
+#define NVC0_3D_DEPTH_TEST_FUNC				0x0000130c
 #define NVC0_3D_DEPTH_TEST_FUNC_NEVER				0x00000200
 #define NVC0_3D_DEPTH_TEST_FUNC_LESS				0x00000201
 #define NVC0_3D_DEPTH_TEST_FUNC_EQUAL				0x00000202
 #define NVC0_3D_DEPTH_TEST_FUNC_LEQUAL				0x00000203
-#define NVC0_3D_DEPTH_TEST_FUNC_GREATER				0x00000204
+#define NVC0_3D_DEPTH_TEST_FUNC_GREATER			0x00000204
 #define NVC0_3D_DEPTH_TEST_FUNC_NOTEQUAL			0x00000205
 #define NVC0_3D_DEPTH_TEST_FUNC_GEQUAL				0x00000206
 #define NVC0_3D_DEPTH_TEST_FUNC_ALWAYS				0x00000207
 
 #define NVC0_3D_ALPHA_TEST_REF					0x00001310
 
-#define NVC0_3D_ALPHA_TEST_FUNC					0x00001314
+#define NVC0_3D_ALPHA_TEST_FUNC				0x00001314
 #define NVC0_3D_ALPHA_TEST_FUNC_NEVER				0x00000200
 #define NVC0_3D_ALPHA_TEST_FUNC_LESS				0x00000201
 #define NVC0_3D_ALPHA_TEST_FUNC_EQUAL				0x00000202
 #define NVC0_3D_ALPHA_TEST_FUNC_LEQUAL				0x00000203
-#define NVC0_3D_ALPHA_TEST_FUNC_GREATER				0x00000204
+#define NVC0_3D_ALPHA_TEST_FUNC_GREATER			0x00000204
 #define NVC0_3D_ALPHA_TEST_FUNC_NOTEQUAL			0x00000205
 #define NVC0_3D_ALPHA_TEST_FUNC_GEQUAL				0x00000206
 #define NVC0_3D_ALPHA_TEST_FUNC_ALWAYS				0x00000207
 
-#define NVC0_3D_DRAW_TFB_STRIDE					0x00001318
+#define NVC0_3D_DRAW_TFB_STRIDE				0x00001318
 #define NVC0_3D_DRAW_TFB_STRIDE__MIN				0x00000001
 #define NVC0_3D_DRAW_TFB_STRIDE__MAX				0x00000fff
 
-#define NVC0_3D_BLEND_COLOR(i0)				       (0x0000131c + 0x4*(i0))
+#define NVC0_3D_BLEND_COLOR(i0)			       (0x0000131c + 0x4*(i0))
 #define NVC0_3D_BLEND_COLOR__ESIZE				0x00000004
 #define NVC0_3D_BLEND_COLOR__LEN				0x00000004
 
@@ -597,8 +973,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_TIC_FLUSH_ENTRY__SHIFT				4
 
 #define NVC0_3D_TEX_CACHE_CTL					0x00001338
-#define NVC0_3D_TEX_CACHE_CTL_UNK1__MASK			0x00000030
-#define NVC0_3D_TEX_CACHE_CTL_UNK1__SHIFT			4
+#define NVC0_3D_TEX_CACHE_CTL_UNK0__MASK			0x00000007
+#define NVC0_3D_TEX_CACHE_CTL_UNK0__SHIFT			0
+#define NVE4_3D_TEX_CACHE_CTL_UNK0				0x00000001
+#define NVC0_3D_TEX_CACHE_CTL_ENTRY__MASK			0x03fffff0
+#define NVC0_3D_TEX_CACHE_CTL_ENTRY__SHIFT			4
 
 #define NVC0_3D_BLEND_SEPARATE_ALPHA				0x0000133c
 
@@ -622,6 +1001,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_BLEND_FUNC_SRC_ALPHA				0x00001350
 
+#define NVC0_3D_UNK1354					0x00001354
+
 #define NVC0_3D_BLEND_FUNC_DST_ALPHA				0x00001358
 
 #define NVC0_3D_BLEND_ENABLE_COMMON				0x0000135c
@@ -639,8 +1020,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_STENCIL_FRONT_OP_FAIL_REPLACE			0x00001e01
 #define NVC0_3D_STENCIL_FRONT_OP_FAIL_INCR			0x00001e02
 #define NVC0_3D_STENCIL_FRONT_OP_FAIL_DECR			0x00001e03
-#define NVC0_3D_STENCIL_FRONT_OP_FAIL_INCR_WRAP			0x00008507
-#define NVC0_3D_STENCIL_FRONT_OP_FAIL_DECR_WRAP			0x00008508
+#define NVC0_3D_STENCIL_FRONT_OP_FAIL_INCR_WRAP		0x00008507
+#define NVC0_3D_STENCIL_FRONT_OP_FAIL_DECR_WRAP		0x00008508
 
 #define NVC0_3D_STENCIL_FRONT_OP_ZFAIL				0x00001388
 #define NVC0_3D_STENCIL_FRONT_OP_ZFAIL_ZERO			0x00000000
@@ -662,19 +1043,19 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_STENCIL_FRONT_OP_ZPASS_INCR_WRAP		0x00008507
 #define NVC0_3D_STENCIL_FRONT_OP_ZPASS_DECR_WRAP		0x00008508
 
-#define NVC0_3D_STENCIL_FRONT_FUNC_FUNC				0x00001390
+#define NVC0_3D_STENCIL_FRONT_FUNC_FUNC			0x00001390
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_NEVER			0x00000200
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_LESS			0x00000201
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_EQUAL			0x00000202
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_LEQUAL			0x00000203
-#define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_GREATER			0x00000204
+#define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_GREATER		0x00000204
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL		0x00000205
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_GEQUAL			0x00000206
 #define NVC0_3D_STENCIL_FRONT_FUNC_FUNC_ALWAYS			0x00000207
 
 #define NVC0_3D_STENCIL_FRONT_FUNC_REF				0x00001394
 
-#define NVC0_3D_STENCIL_FRONT_FUNC_MASK				0x00001398
+#define NVC0_3D_STENCIL_FRONT_FUNC_MASK			0x00001398
 
 #define NVC0_3D_STENCIL_FRONT_MASK				0x0000139c
 
@@ -698,20 +1079,47 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_LINE_WIDTH_ALIASED				0x000013b4
 
-#define NVC0_3D_GP_VERTEX_OUTPUT_COUNT				0x00001420
-#define NVC0_3D_GP_VERTEX_OUTPUT_COUNT__MIN			0x00000001
-#define NVC0_3D_GP_VERTEX_OUTPUT_COUNT__MAX			0x00000400
+#define NVC0_3D_UNK1418					0x00001418
+
+#define NVC0_3D_UNK1420					0x00001420
+
+#define NVC0_3D_UNK1424_TSC_FLUSH				0x00001424
+
+#define NVC0_3D_UNK1428_TIC_FLUSH				0x00001428
 
 #define NVC0_3D_VERTEX_ARRAY_FLUSH				0x0000142c
 
-#define NVC0_3D_VB_ELEMENT_BASE					0x00001434
+#define NVC0_3D_UNK1430					0x00001430
+#define NVC0_3D_UNK1430_UNK0					0x00000010
+#define NVC0_3D_UNK1430_UNK1					0x00000100
+
+#define NVC0_3D_VB_ELEMENT_BASE				0x00001434
 
 #define NVC0_3D_VB_INSTANCE_BASE				0x00001438
 
-#define NVC0_3D_CODE_CB_FLUSH					0x00001440
+#define NVC0_3D_UNK143C_CLEAR_FLAGS				0x0000143c
+#define NVC0_3D_UNK143C_CLEAR_FLAGS_STENCIL_MASK		0x00000001
+#define NVC0_3D_UNK143C_CLEAR_FLAGS_CLEAR_RECT__MASK		0x00000010
+#define NVC0_3D_UNK143C_CLEAR_FLAGS_CLEAR_RECT__SHIFT		4
+#define NVC0_3D_UNK143C_CLEAR_FLAGS_CLEAR_RECT_SCISSOR		0x00000000
+#define NVC0_3D_UNK143C_CLEAR_FLAGS_CLEAR_RECT_VIEWPORT	0x00000000
+
+#define NVC0_3D_UNK1444					0x00001444
+
+#define NVC0_3D_UNK1448					0x00001448
+
+#define NVC0_3D_UNK144C					0x0000144c
+
+#define NVC0_3D_UNK1450					0x00001450
+
+#define NVC0_3D_UNK1454					0x00001454
+
+#define NVC0_3D_UNK1464					0x00001464
+
+#define NVC0_3D_UNK1500					0x00001500
 
 #define NVC0_3D_CLIPID_HEIGHT					0x00001504
-#define NVC0_3D_CLIPID_HEIGHT__MAX				0x00002000
+#define NVC0_3D_CLIPID_HEIGHT__MAX				0x00004000
 
 #define NVC0_3D_CLIPID_FILL_RECT_HORIZ				0x00001508
 #define NVC0_3D_CLIPID_FILL_RECT_HORIZ_LOW__MASK		0x0000ffff
@@ -720,7 +1128,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_CLIPID_FILL_RECT_HORIZ_HIGH__SHIFT		16
 
 #define NVC0_3D_CLIPID_FILL_RECT_VERT				0x0000150c
-#define NVC0_3D_CLIPID_FILL_RECT_VERT_LOW__MASK			0x0000ffff
+#define NVC0_3D_CLIPID_FILL_RECT_VERT_LOW__MASK		0x0000ffff
 #define NVC0_3D_CLIPID_FILL_RECT_VERT_LOW__SHIFT		0
 #define NVC0_3D_CLIPID_FILL_RECT_VERT_HIGH__MASK		0xffff0000
 #define NVC0_3D_CLIPID_FILL_RECT_VERT_HIGH__SHIFT		16
@@ -744,7 +1152,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_POINT_SPRITE_ENABLE				0x00001520
 
 #define NVC0_3D_COUNTER_RESET					0x00001530
-#define NVC0_3D_COUNTER_RESET_SAMPLECNT				0x00000001
+#define NVC0_3D_COUNTER_RESET_SAMPLECNT			0x00000001
 #define NVC0_3D_COUNTER_RESET_UNK02				0x00000002
 #define NVC0_3D_COUNTER_RESET_UNK03				0x00000003
 #define NVC0_3D_COUNTER_RESET_UNK04				0x00000004
@@ -776,15 +1184,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_COND_ADDRESS_LOW				0x00001554
 
 #define NVC0_3D_COND_MODE					0x00001558
-#define NVC0_3D_COND_MODE_NEVER					0x00000000
+#define NVC0_3D_COND_MODE_NEVER				0x00000000
 #define NVC0_3D_COND_MODE_ALWAYS				0x00000001
 #define NVC0_3D_COND_MODE_RES_NON_ZERO				0x00000002
-#define NVC0_3D_COND_MODE_EQUAL					0x00000003
+#define NVC0_3D_COND_MODE_EQUAL				0x00000003
 #define NVC0_3D_COND_MODE_NOT_EQUAL				0x00000004
 
 #define NVC0_3D_TSC_ADDRESS_HIGH				0x0000155c
 
-#define NVC0_3D_TSC_ADDRESS_LOW					0x00001560
+#define NVC0_3D_TSC_ADDRESS_LOW				0x00001560
 #define NVC0_3D_TSC_ADDRESS_LOW__ALIGN				0x00000020
 
 #define NVC0_3D_TSC_LIMIT					0x00001564
@@ -796,13 +1204,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_TIC_ADDRESS_HIGH				0x00001574
 
-#define NVC0_3D_TIC_ADDRESS_LOW					0x00001578
+#define NVC0_3D_TIC_ADDRESS_LOW				0x00001578
 
 #define NVC0_3D_TIC_LIMIT					0x0000157c
 
 #define NVC0_3D_ZCULL_REGION					0x00001590
 
-#define NVC0_3D_STENCIL_TWO_SIDE_ENABLE				0x00001594
+#define NVC0_3D_STENCIL_TWO_SIDE_ENABLE			0x00001594
 
 #define NVC0_3D_STENCIL_BACK_OP_FAIL				0x00001598
 #define NVC0_3D_STENCIL_BACK_OP_FAIL_ZERO			0x00000000
@@ -821,8 +1229,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_STENCIL_BACK_OP_ZFAIL_REPLACE			0x00001e01
 #define NVC0_3D_STENCIL_BACK_OP_ZFAIL_INCR			0x00001e02
 #define NVC0_3D_STENCIL_BACK_OP_ZFAIL_DECR			0x00001e03
-#define NVC0_3D_STENCIL_BACK_OP_ZFAIL_INCR_WRAP			0x00008507
-#define NVC0_3D_STENCIL_BACK_OP_ZFAIL_DECR_WRAP			0x00008508
+#define NVC0_3D_STENCIL_BACK_OP_ZFAIL_INCR_WRAP		0x00008507
+#define NVC0_3D_STENCIL_BACK_OP_ZFAIL_DECR_WRAP		0x00008508
 
 #define NVC0_3D_STENCIL_BACK_OP_ZPASS				0x000015a0
 #define NVC0_3D_STENCIL_BACK_OP_ZPASS_ZERO			0x00000000
@@ -831,8 +1239,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_STENCIL_BACK_OP_ZPASS_REPLACE			0x00001e01
 #define NVC0_3D_STENCIL_BACK_OP_ZPASS_INCR			0x00001e02
 #define NVC0_3D_STENCIL_BACK_OP_ZPASS_DECR			0x00001e03
-#define NVC0_3D_STENCIL_BACK_OP_ZPASS_INCR_WRAP			0x00008507
-#define NVC0_3D_STENCIL_BACK_OP_ZPASS_DECR_WRAP			0x00008508
+#define NVC0_3D_STENCIL_BACK_OP_ZPASS_INCR_WRAP		0x00008507
+#define NVC0_3D_STENCIL_BACK_OP_ZPASS_DECR_WRAP		0x00008508
 
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC				0x000015a4
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_NEVER			0x00000200
@@ -840,7 +1248,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_EQUAL			0x00000202
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_LEQUAL			0x00000203
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_GREATER			0x00000204
-#define NVC0_3D_STENCIL_BACK_FUNC_FUNC_NOTEQUAL			0x00000205
+#define NVC0_3D_STENCIL_BACK_FUNC_FUNC_NOTEQUAL		0x00000205
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_GEQUAL			0x00000206
 #define NVC0_3D_STENCIL_BACK_FUNC_FUNC_ALWAYS			0x00000207
 
@@ -850,8 +1258,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_POLYGON_OFFSET_UNITS				0x000015bc
 
+#define NVC0_3D_UNK15C8					0x000015c8
+
 #define NVC0_3D_LAYER						0x000015cc
-#define NVC0_3D_LAYER_IDX__MASK					0x0000ffff
+#define NVC0_3D_LAYER_IDX__MASK				0x0000ffff
 #define NVC0_3D_LAYER_IDX__SHIFT				0
 #define NVC0_3D_LAYER_USE_GP					0x00010000
 
@@ -868,24 +1278,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_MULTISAMPLE_MODE_MS8_CS8			0x0000000a
 #define NVC0_3D_MULTISAMPLE_MODE_MS8_CS24			0x0000000b
 
-#define NVC0_3D_VERTEX_BEGIN_D3D				0x000015d4
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE__MASK		0x0fffffff
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE__SHIFT		0
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_POINTS		0x00000001
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINES		0x00000002
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINE_STRIP		0x00000003
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLES		0x00000004
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLE_STRIP	0x00000005
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINES_ADJACENCY	0x0000000a
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINE_STRIP_ADJACENCY	0x0000000b
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLES_ADJACENCY	0x0000000c
-#define NVC0_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLE_STRIP_ADJACENCY	0x0000000d
-#define NVC0_3D_VERTEX_BEGIN_D3D_INSTANCE_NEXT			0x10000000
-
-#define NVC0_3D_VERTEX_END_D3D					0x000015d8
-#define NVC0_3D_VERTEX_END_D3D_UNK0				0x00000001
-#define NVC0_3D_VERTEX_END_D3D_UNK1				0x00000002
-
 #define NVC0_3D_EDGEFLAG					0x000015e4
 
 #define NVC0_3D_VB_ELEMENT_U32					0x000015e8
@@ -897,46 +1289,52 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VB_ELEMENT_U16_SETUP_COUNT__SHIFT		0
 
 #define NVC0_3D_VB_ELEMENT_U16					0x000015f0
-#define NVC0_3D_VB_ELEMENT_U16_I0__MASK				0x0000ffff
+#define NVC0_3D_VB_ELEMENT_U16_I0__MASK			0x0000ffff
 #define NVC0_3D_VB_ELEMENT_U16_I0__SHIFT			0
-#define NVC0_3D_VB_ELEMENT_U16_I1__MASK				0xffff0000
+#define NVC0_3D_VB_ELEMENT_U16_I1__MASK			0xffff0000
 #define NVC0_3D_VB_ELEMENT_U16_I1__SHIFT			16
 
 #define NVC0_3D_VERTEX_BASE_HIGH				0x000015f4
 
-#define NVC0_3D_VERTEX_BASE_LOW					0x000015f8
+#define NVC0_3D_VERTEX_BASE_LOW				0x000015f8
 
 #define NVC0_3D_ZCULL_WINDOW_OFFSET_X				0x000015fc
 
 #define NVC0_3D_ZCULL_WINDOW_OFFSET_Y				0x00001600
 
 #define NVC0_3D_POINT_COORD_REPLACE				0x00001604
+#define NVC0_3D_POINT_COORD_REPLACE_UNK0__MASK			0x00000003
+#define NVC0_3D_POINT_COORD_REPLACE_UNK0__SHIFT		0
+#define NVC0_3D_POINT_COORD_REPLACE_UNK0_UNK0			0x00000000
+#define NVC0_3D_POINT_COORD_REPLACE_UNK0_UNK1			0x00000001
+#define NVC0_3D_POINT_COORD_REPLACE_UNK0_UNK2			0x00000002
 #define NVC0_3D_POINT_COORD_REPLACE_COORD_ORIGIN__MASK		0x00000004
-#define NVC0_3D_POINT_COORD_REPLACE_COORD_ORIGIN__SHIFT		2
+#define NVC0_3D_POINT_COORD_REPLACE_COORD_ORIGIN__SHIFT	2
 #define NVC0_3D_POINT_COORD_REPLACE_COORD_ORIGIN_LOWER_LEFT	0x00000000
 #define NVC0_3D_POINT_COORD_REPLACE_COORD_ORIGIN_UPPER_LEFT	0x00000004
-#define NVC0_3D_POINT_COORD_REPLACE_ENABLE__MASK		0x000007f8
+#define NVC0_3D_POINT_COORD_REPLACE_ENABLE__MASK		0x00001ff8
 #define NVC0_3D_POINT_COORD_REPLACE_ENABLE__SHIFT		3
 
 #define NVC0_3D_CODE_ADDRESS_HIGH				0x00001608
 
 #define NVC0_3D_CODE_ADDRESS_LOW				0x0000160c
 
+#define NVC0_3D_UNK1610					0x00001610
+
 #define NVC0_3D_VERTEX_END_GL					0x00001614
 #define NVC0_3D_VERTEX_END_GL_UNK0				0x00000001
-#define NVC0_3D_VERTEX_END_GL_UNK1				0x00000002
 
-#define NVC0_3D_VERTEX_BEGIN_GL					0x00001618
-#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE__MASK			0x0fffffff
+#define NVC0_3D_VERTEX_BEGIN_GL				0x00001618
+#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE__MASK		0x0000ffff
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE__SHIFT		0
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_POINTS		0x00000000
-#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINES			0x00000001
+#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINES		0x00000001
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINE_LOOP		0x00000002
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINE_STRIP		0x00000003
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLES		0x00000004
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLE_STRIP	0x00000005
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLE_FAN		0x00000006
-#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_QUADS			0x00000007
+#define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_QUADS		0x00000007
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_QUAD_STRIP		0x00000008
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_POLYGON		0x00000009
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINES_ADJACENCY	0x0000000a
@@ -944,13 +1342,28 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLES_ADJACENCY	0x0000000c
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLE_STRIP_ADJACENCY	0x0000000d
 #define NVC0_3D_VERTEX_BEGIN_GL_PRIMITIVE_PATCHES		0x0000000e
+#define NVC0_3D_VERTEX_BEGIN_GL_UNK24				0x01000000
 #define NVC0_3D_VERTEX_BEGIN_GL_INSTANCE_NEXT			0x04000000
 #define NVC0_3D_VERTEX_BEGIN_GL_INSTANCE_CONT			0x08000000
+#define NVC0_3D_VERTEX_BEGIN_GL_UNK29				0x20000000
+#define NVC0_3D_VERTEX_BEGIN_GL_UNK30				0x40000000
 
 #define NVC0_3D_VERTEX_ID_REPLACE				0x0000161c
 #define NVC0_3D_VERTEX_ID_REPLACE_ENABLE			0x00000001
 #define NVC0_3D_VERTEX_ID_REPLACE_SOURCE__MASK			0x00000ff0
-#define NVC0_3D_VERTEX_ID_REPLACE_SOURCE__SHIFT			4
+#define NVC0_3D_VERTEX_ID_REPLACE_SOURCE__SHIFT		4
+
+#define NVC0_3D_UNK1620					0x00001620
+
+#define NVC0_3D_UNK1624					0x00001624
+
+#define NVC0_3D_UNK162C					0x0000162c
+
+#define NVC0_3D_UNK1634					0x00001634
+
+#define NVC0_3D_UNK1638					0x00001638
+
+#define NVC0_3D_UNK163C					0x0000163c
 
 #define NVC0_3D_VERTEX_DATA					0x00001640
 
@@ -958,11 +1371,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_PRIM_RESTART_INDEX				0x00001648
 
-#define NVC0_3D_VP_GP_BUILTIN_ATTR_EN				0x0000164c
-#define NVC0_3D_VP_GP_BUILTIN_ATTR_EN_VERTEX_ID			0x00000001
-#define NVC0_3D_VP_GP_BUILTIN_ATTR_EN_INSTANCE_ID		0x00000010
-#define NVC0_3D_VP_GP_BUILTIN_ATTR_EN_PRIMITIVE_ID		0x00000100
-#define NVC0_3D_VP_GP_BUILTIN_ATTR_EN_UNK12			0x00001000
+#define NVC0_3D_VERTEX_ID_GEN_MODE				0x0000164c
+#define NVC0_3D_VERTEX_ID_GEN_MODE_DRAW_ARRAYS_ADD_START	0x00001000
 
 #define NVC0_3D_POINT_SMOOTH_ENABLE				0x00001658
 
@@ -971,10 +1381,28 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_POINT_RASTER_RULES_D3D				0x00000001
 
 #define NVC0_3D_TEX_MISC					0x00001664
+#define NVC0_3D_TEX_MISC_UNK					0x00000002
 #define NVC0_3D_TEX_MISC_SEAMLESS_CUBE_MAP			0x00000004
 
+#define NVC0_3D_LINE_SMOOTH_BLUR				0x00001668
+#define NVC0_3D_LINE_SMOOTH_BLUR_LOW				0x00000000
+#define NVC0_3D_LINE_SMOOTH_BLUR_MEDIUM			0x00000001
+#define NVC0_3D_LINE_SMOOTH_BLUR_HIGH				0x00000002
+
 #define NVC0_3D_LINE_STIPPLE_ENABLE				0x0000166c
 
+#define NVC0_3D_COVERAGE_LUT(i0)			       (0x00001670 + 0x4*(i0))
+#define NVC0_3D_COVERAGE_LUT__ESIZE				0x00000004
+#define NVC0_3D_COVERAGE_LUT__LEN				0x00000004
+#define NVC0_3D_COVERAGE_LUT_0__MASK				0x000000ff
+#define NVC0_3D_COVERAGE_LUT_0__SHIFT				0
+#define NVC0_3D_COVERAGE_LUT_1__MASK				0x0000ff00
+#define NVC0_3D_COVERAGE_LUT_1__SHIFT				8
+#define NVC0_3D_COVERAGE_LUT_2__MASK				0x00ff0000
+#define NVC0_3D_COVERAGE_LUT_2__SHIFT				16
+#define NVC0_3D_COVERAGE_LUT_3__MASK				0xff000000
+#define NVC0_3D_COVERAGE_LUT_3__SHIFT				24
+
 #define NVC0_3D_LINE_STIPPLE_PATTERN				0x00001680
 
 #define NVC0_3D_PROVOKING_VERTEX_LAST				0x00001684
@@ -983,11 +1411,33 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_POLYGON_STIPPLE_ENABLE				0x0000168c
 
+#define NVC0_3D_UNK1690					0x00001690
+#define NVC0_3D_UNK1690_ALWAYS_DERIV				0x00000001
+#define NVC0_3D_UNK1690_UNK16					0x00010000
+
+#define NVE4_3D_UNK1690					0x00001690
+
+#define NVC0_3D_UNK169C					0x0000169c
+
+#define NVC0_3D_UNK16A0					0x000016a0
+
+#define NVC0_3D_UNK16A4					0x000016a4
+
+#define NVC0_3D_UNK16A8					0x000016a8
+
+#define NVC0_3D_UNK16B4					0x000016b4
+#define NVC0_3D_UNK16B4_UNK0					0x00000001
+#define NVC0_3D_UNK16B4_UNK1					0x00000002
+
 #define NVC0_3D_POLYGON_STIPPLE_PATTERN(i0)		       (0x00001700 + 0x4*(i0))
 #define NVC0_3D_POLYGON_STIPPLE_PATTERN__ESIZE			0x00000004
 #define NVC0_3D_POLYGON_STIPPLE_PATTERN__LEN			0x00000020
 
-#define NVC0_3D_ZETA_BASE_LAYER					0x0000179c
+#define NVC0_3D_UNK1790					0x00001790
+
+#define NVC0_3D_UNK1794					0x00001794
+
+#define NVC0_3D_ZETA_BASE_LAYER				0x0000179c
 
 #define NVC0_3D_VERTEX_QUARANTINE_ADDRESS_HIGH			0x000017bc
 
@@ -998,16 +1448,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_VERTEX_QUARANTINE_SIZE_32K			0x00000002
 #define NVC0_3D_VERTEX_QUARANTINE_SIZE_64K			0x00000003
 
-#define NVC0_3D_STRMOUT_UNK1780(i0)			       (0x00001780 + 0x4*(i0))
-#define NVC0_3D_STRMOUT_UNK1780__ESIZE				0x00000004
-#define NVC0_3D_STRMOUT_UNK1780__LEN				0x00000004
-
-#define NVC0_3D_UNK17BC_ADDRESS_HIGH				0x000017bc
-
-#define NVC0_3D_UNK17BC_ADDRESS_LOW				0x000017c0
-
-#define NVC0_3D_UNK17BC_LIMIT					0x000017c4
-
 #define NVC0_3D_INDEX_ARRAY_START_HIGH				0x000017c8
 
 #define NVC0_3D_INDEX_ARRAY_START_LOW				0x000017cc
@@ -1016,19 +1456,29 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_INDEX_ARRAY_LIMIT_LOW				0x000017d4
 
-#define NVC0_3D_INDEX_LOG2_SIZE					0x000017d8
+#define NVC0_3D_INDEX_FORMAT					0x000017d8
+#define NVC0_3D_INDEX_FORMAT_I8				0x00000000
+#define NVC0_3D_INDEX_FORMAT_I16				0x00000001
+#define NVC0_3D_INDEX_FORMAT_I32				0x00000002
 
 #define NVC0_3D_INDEX_BATCH_FIRST				0x000017dc
 
 #define NVC0_3D_INDEX_BATCH_COUNT				0x000017e0
 
+#define NVC0_3D_UN17E4(i0)				       (0x000017e4 + 0x4*(i0))
+#define NVC0_3D_UN17E4__ESIZE					0x00000004
+#define NVC0_3D_UN17E4__LEN					0x00000006
+
 #define NVC0_3D_POLYGON_OFFSET_CLAMP				0x0000187c
 
 #define NVC0_3D_VERTEX_ARRAY_PER_INSTANCE(i0)		       (0x00001880 + 0x4*(i0))
 #define NVC0_3D_VERTEX_ARRAY_PER_INSTANCE__ESIZE		0x00000004
 #define NVC0_3D_VERTEX_ARRAY_PER_INSTANCE__LEN			0x00000020
 
-#define NVC0_3D_VP_POINT_SIZE_EN				0x00001910
+#define NVC0_3D_VP_POINT_SIZE					0x00001910
+#define NVC0_3D_VP_POINT_SIZE_ENABLE				0x00000001
+#define NVC0_3D_VP_POINT_SIZE_UNK4__MASK			0x00000ff0
+#define NVC0_3D_VP_POINT_SIZE_UNK4__SHIFT			4
 
 #define NVC0_3D_CULL_FACE_ENABLE				0x00001918
 
@@ -1037,21 +1487,23 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_FRONT_FACE_CCW					0x00000901
 
 #define NVC0_3D_CULL_FACE					0x00001920
-#define NVC0_3D_CULL_FACE_FRONT					0x00000404
+#define NVC0_3D_CULL_FACE_FRONT				0x00000404
 #define NVC0_3D_CULL_FACE_BACK					0x00000405
 #define NVC0_3D_CULL_FACE_FRONT_AND_BACK			0x00000408
 
-#define NVC0_3D_PIXEL_CENTER_INTEGER					0x00001924
+#define NVC0_3D_PIXEL_CENTER_INTEGER				0x00001924
 
 #define NVC0_3D_VIEWPORT_TRANSFORM_EN				0x0000192c
 
+#define NVC0_3D_UNK1930					0x00001930
+
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL				0x0000193c
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_RANGE_0_1		0x00000001
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1__MASK		0x00000006
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1__SHIFT		1
-#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK0			0x00000000
-#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK1			0x00000002
-#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK2			0x00000004
+#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK0		0x00000000
+#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK1		0x00000002
+#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK2		0x00000004
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_CLAMP_NEAR		0x00000008
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_CLAMP_FAR		0x00000010
 #define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK7			0x00000080
@@ -1097,22 +1549,40 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_CLIP_DISTANCE_MODE_7_CLIP			0x00000000
 #define NVC0_3D_CLIP_DISTANCE_MODE_7_CULL			0x10000000
 
+#define NVC0_3D_UNK1944					0x00001944
+
+#define NVC0_3D_UNK1948					0x00001948
+
 #define NVC0_3D_CLIP_RECTS_EN					0x0000194c
 
-#define NVC0_3D_CLIP_RECTS_MODE					0x00001950
+#define NVC0_3D_CLIP_RECTS_MODE				0x00001950
 #define NVC0_3D_CLIP_RECTS_MODE_INSIDE_ANY			0x00000000
 #define NVC0_3D_CLIP_RECTS_MODE_OUTSIDE_ALL			0x00000001
 #define NVC0_3D_CLIP_RECTS_MODE_NEVER				0x00000002
 
 #define NVC0_3D_ZCULL_INVALIDATE				0x00001958
 
-#define NVC0_3D_ZCULL_TEST_MASK					0x0000196c
-#define NVC0_3D_ZCULL_TEST_MASK_FAIL_GT_PASS_LT			0x00000001
-#define NVC0_3D_ZCULL_TEST_MASK_PASS_GT_FAIL_LT			0x00000010
+#define NVC0_3D_ZCULL_UNK1968					0x00001968
+#define NVC0_3D_ZCULL_UNK1968_TESTS_ENABLE			0x00000001
+#define NVC0_3D_ZCULL_UNK1968_UNK4				0x00000010
 
-#define NVC0_3D_FP_ZORDER_CTRL					0x0000196c
-#define NVC0_3D_FP_ZORDER_CTRL_0				0x00000001
-#define NVC0_3D_FP_ZORDER_CTRL_1				0x00000010
+#define NVC0_3D_ZCULL_TEST_MASK				0x0000196c
+#define NVC0_3D_ZCULL_TEST_MASK_FAIL_GT_PASS_LT		0x00000001
+#define NVC0_3D_ZCULL_TEST_MASK_PASS_GT_FAIL_LT		0x00000010
+
+#define NVC0_3D_UNK1970_D3D					0x00001970
+#define NVC0_3D_UNK1970_D3D_POINTS				0x00000001
+#define NVC0_3D_UNK1970_D3D_LINES				0x00000002
+#define NVC0_3D_UNK1970_D3D_LINE_STRIP				0x00000003
+#define NVC0_3D_UNK1970_D3D_TRIANGLES				0x00000004
+#define NVC0_3D_UNK1970_D3D_TRIANGLE_STRIP			0x00000005
+#define NVC0_3D_UNK1970_D3D_LINES_ADJACENCY			0x0000000a
+#define NVC0_3D_UNK1970_D3D_LINE_STRIP_ADJACENCY		0x0000000b
+#define NVC0_3D_UNK1970_D3D_TRIANGLES_ADJACENCY		0x0000000c
+#define NVC0_3D_UNK1970_D3D_TRIANGLE_STRIP_ADJACENCY		0x0000000d
+#define NVC0_3D_UNK1970_D3D_PATCHES				0x0000000e
+
+#define NVC0_3D_UNK1978					0x00001978
 
 #define NVC0_3D_CLIPID_ENABLE					0x0000197c
 
@@ -1122,9 +1592,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_CLIPID_ID					0x00001984
 
-#define NVC0_3D_DEPTH_BOUNDS_EN					0x000019bc
+#define NVC0_3D_DEPTH_BOUNDS_EN				0x000019bc
+
+#define NVC0_3D_UNK19C0					0x000019c0
 
-#define NVC0_3D_LOGIC_OP_ENABLE					0x000019c4
+#define NVC0_3D_LOGIC_OP_ENABLE				0x000019c4
 
 #define NVC0_3D_LOGIC_OP					0x000019c8
 #define NVC0_3D_LOGIC_OP_CLEAR					0x00001500
@@ -1137,7 +1609,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_LOGIC_OP_OR					0x00001507
 #define NVC0_3D_LOGIC_OP_NOR					0x00001508
 #define NVC0_3D_LOGIC_OP_EQUIV					0x00001509
-#define NVC0_3D_LOGIC_OP_INVERT					0x0000150a
+#define NVC0_3D_LOGIC_OP_INVERT				0x0000150a
 #define NVC0_3D_LOGIC_OP_OR_REVERSE				0x0000150b
 #define NVC0_3D_LOGIC_OP_COPY_INVERTED				0x0000150c
 #define NVC0_3D_LOGIC_OP_OR_INVERTED				0x0000150d
@@ -1147,14 +1619,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_ZETA_COMP_ENABLE				0x000019cc
 
 #define NVC0_3D_CLEAR_BUFFERS					0x000019d0
-#define NVC0_3D_CLEAR_BUFFERS_Z					0x00000001
-#define NVC0_3D_CLEAR_BUFFERS_S					0x00000002
-#define NVC0_3D_CLEAR_BUFFERS_R					0x00000004
-#define NVC0_3D_CLEAR_BUFFERS_G					0x00000008
-#define NVC0_3D_CLEAR_BUFFERS_B					0x00000010
-#define NVC0_3D_CLEAR_BUFFERS_A					0x00000020
+#define NVC0_3D_CLEAR_BUFFERS_Z				0x00000001
+#define NVC0_3D_CLEAR_BUFFERS_S				0x00000002
+#define NVC0_3D_CLEAR_BUFFERS_R				0x00000004
+#define NVC0_3D_CLEAR_BUFFERS_G				0x00000008
+#define NVC0_3D_CLEAR_BUFFERS_B				0x00000010
+#define NVC0_3D_CLEAR_BUFFERS_A				0x00000020
 #define NVC0_3D_CLEAR_BUFFERS_RT__MASK				0x000003c0
-#define NVC0_3D_CLEAR_BUFFERS_RT__SHIFT				6
+#define NVC0_3D_CLEAR_BUFFERS_RT__SHIFT			6
 #define NVC0_3D_CLEAR_BUFFERS_LAYER__MASK			0x001ffc00
 #define NVC0_3D_CLEAR_BUFFERS_LAYER__SHIFT			10
 
@@ -1166,12 +1638,18 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_COLOR_MASK(i0)				       (0x00001a00 + 0x4*(i0))
 #define NVC0_3D_COLOR_MASK__ESIZE				0x00000004
-#define NVC0_3D_COLOR_MASK__LEN					0x00000008
+#define NVC0_3D_COLOR_MASK__LEN				0x00000008
 #define NVC0_3D_COLOR_MASK_R					0x0000000f
 #define NVC0_3D_COLOR_MASK_G					0x000000f0
 #define NVC0_3D_COLOR_MASK_B					0x00000f00
 #define NVC0_3D_COLOR_MASK_A					0x0000f000
 
+#define NVC0_3D_DELAY						0x00001a24
+
+#define NVC0_3D_UNK1A2C(i0)				       (0x00001a2c + 0x4*(i0))
+#define NVC0_3D_UNK1A2C__ESIZE					0x00000004
+#define NVC0_3D_UNK1A2C__LEN					0x00000005
+
 #define NVC0_3D_QUERY_ADDRESS_HIGH				0x00001b00
 
 #define NVC0_3D_QUERY_ADDRESS_LOW				0x00001b04
@@ -1181,12 +1659,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_QUERY_GET					0x00001b0c
 #define NVC0_3D_QUERY_GET_MODE__MASK				0x00000003
 #define NVC0_3D_QUERY_GET_MODE__SHIFT				0
-#define NVC0_3D_QUERY_GET_MODE_WRITE_UNK0			0x00000000
+#define NVC0_3D_QUERY_GET_MODE_WRITE				0x00000000
 #define NVC0_3D_QUERY_GET_MODE_SYNC				0x00000001
 #define NVC0_3D_QUERY_GET_MODE_WRITE_UNK2			0x00000002
-#define NVC0_3D_QUERY_GET_FENCE					0x00000010
+#define NVC0_3D_QUERY_GET_MODE_WRITE_INTR_NRHOST		0x00000003
+#define NVC0_3D_QUERY_GET_UNK2					0x00000004
+#define NVC0_3D_QUERY_GET_FENCE				0x00000010
 #define NVC0_3D_QUERY_GET_STREAM__MASK				0x000000e0
-#define NVC0_3D_QUERY_GET_STREAM__SHIFT				5
+#define NVC0_3D_QUERY_GET_STREAM__SHIFT			5
 #define NVC0_3D_QUERY_GET_UNK8					0x00000100
 #define NVC0_3D_QUERY_GET_UNIT__MASK				0x0000f000
 #define NVC0_3D_QUERY_GET_UNIT__SHIFT				12
@@ -1195,19 +1675,19 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_QUERY_GET_SYNC_COND_NEQUAL			0x00000000
 #define NVC0_3D_QUERY_GET_SYNC_COND_GREATER			0x00010000
 #define NVC0_3D_QUERY_GET_INTR					0x00100000
-#define NVC0_3D_QUERY_GET_UNK21					0x00200000
+#define NVC0_3D_QUERY_GET_UNK21				0x00200000
 #define NVC0_3D_QUERY_GET_SELECT__MASK				0x0f800000
-#define NVC0_3D_QUERY_GET_SELECT__SHIFT				23
+#define NVC0_3D_QUERY_GET_SELECT__SHIFT			23
 #define NVC0_3D_QUERY_GET_SELECT_ZERO				0x00000000
 #define NVC0_3D_QUERY_GET_SELECT_SAMPLECNT			0x01000000
 #define NVC0_3D_QUERY_GET_SELECT_EMITTED_PRIMS			0x05800000
 #define NVC0_3D_QUERY_GET_SELECT_GENERATED_PRIMS		0x09000000
-#define NVC0_3D_QUERY_GET_SHORT					0x10000000
+#define NVC0_3D_QUERY_GET_SHORT				0x10000000
 
 #define NVC0_3D_VERTEX_ARRAY_FETCH(i0)			       (0x00001c00 + 0x10*(i0))
 #define NVC0_3D_VERTEX_ARRAY_FETCH__ESIZE			0x00000010
-#define NVC0_3D_VERTEX_ARRAY_FETCH__LEN				0x00000020
-#define NVC0_3D_VERTEX_ARRAY_FETCH_STRIDE__MASK			0x00000fff
+#define NVC0_3D_VERTEX_ARRAY_FETCH__LEN			0x00000020
+#define NVC0_3D_VERTEX_ARRAY_FETCH_STRIDE__MASK		0x00000fff
 #define NVC0_3D_VERTEX_ARRAY_FETCH_STRIDE__SHIFT		0
 #define NVC0_3D_VERTEX_ARRAY_FETCH_ENABLE			0x00001000
 
@@ -1227,16 +1707,18 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_IBLEND__ESIZE					0x00000020
 #define NVC0_3D_IBLEND__LEN					0x00000008
 
-#define NVC0_3D_IBLEND_EQUATION_RGB(i0)			       (0x00001e04 + 0x20*(i0))
+#define NVC0_3D_IBLEND_SEPARATE_ALPHA(i0)		       (0x00001e00 + 0x20*(i0))
+
+#define NVC0_3D_IBLEND_EQUATION_RGB(i0)		       (0x00001e04 + 0x20*(i0))
 #define NVC0_3D_IBLEND_EQUATION_RGB_FUNC_ADD			0x00008006
-#define NVC0_3D_IBLEND_EQUATION_RGB_MIN				0x00008007
-#define NVC0_3D_IBLEND_EQUATION_RGB_MAX				0x00008008
+#define NVC0_3D_IBLEND_EQUATION_RGB_MIN			0x00008007
+#define NVC0_3D_IBLEND_EQUATION_RGB_MAX			0x00008008
 #define NVC0_3D_IBLEND_EQUATION_RGB_FUNC_SUBTRACT		0x0000800a
 #define NVC0_3D_IBLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT	0x0000800b
 
-#define NVC0_3D_IBLEND_FUNC_SRC_RGB(i0)			       (0x00001e08 + 0x20*(i0))
+#define NVC0_3D_IBLEND_FUNC_SRC_RGB(i0)		       (0x00001e08 + 0x20*(i0))
 
-#define NVC0_3D_IBLEND_FUNC_DST_RGB(i0)			       (0x00001e0c + 0x20*(i0))
+#define NVC0_3D_IBLEND_FUNC_DST_RGB(i0)		       (0x00001e0c + 0x20*(i0))
 
 #define NVC0_3D_IBLEND_EQUATION_ALPHA(i0)		       (0x00001e10 + 0x20*(i0))
 #define NVC0_3D_IBLEND_EQUATION_ALPHA_FUNC_ADD			0x00008006
@@ -1259,11 +1741,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_3D_SP(i0)					       (0x00002000 + 0x40*(i0))
 #define NVC0_3D_SP__ESIZE					0x00000040
-#define NVC0_3D_SP__LEN						0x00000006
+#define NVC0_3D_SP__LEN					0x00000006
 
 #define NVC0_3D_SP_SELECT(i0)				       (0x00002000 + 0x40*(i0))
 #define NVC0_3D_SP_SELECT_ENABLE				0x00000001
-#define NVC0_3D_SP_SELECT_PROGRAM__MASK				0x00000070
+#define NVC0_3D_SP_SELECT_PROGRAM__MASK			0x000000f0
 #define NVC0_3D_SP_SELECT_PROGRAM__SHIFT			4
 #define NVC0_3D_SP_SELECT_PROGRAM_VP_A				0x00000000
 #define NVC0_3D_SP_SELECT_PROGRAM_VP_B				0x00000010
@@ -1272,21 +1754,50 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_SP_SELECT_PROGRAM_GP				0x00000040
 #define NVC0_3D_SP_SELECT_PROGRAM_FP				0x00000050
 
-#define NVC0_3D_SP_START_ID(i0)				       (0x00002004 + 0x40*(i0))
+#define NVC0_3D_SP_START_ID(i0)			       (0x00002004 + 0x40*(i0))
+
+#define NVC0_3D_SP_UNK08(i0)				       (0x00002008 + 0x40*(i0))
 
 #define NVC0_3D_SP_GPR_ALLOC(i0)			       (0x0000200c + 0x40*(i0))
 
+#define NVC0_3D_SP_TYPE(i0)				       (0x00002010 + 0x40*(i0))
+#define NVC0_3D_SP_TYPE_VP					0x00000000
+#define NVC0_3D_SP_TYPE_TCP					0x00000001
+#define NVC0_3D_SP_TYPE_TEP					0x00000002
+#define NVC0_3D_SP_TYPE_GP					0x00000003
+#define NVC0_3D_SP_TYPE_FP					0x00000004
+
+#define NVC0_3D_SP_UNK14(i0, i1)			       (0x00002014 + 0x40*(i0) + 0x4*(i1))
+#define NVC0_3D_SP_UNK14__ESIZE				0x00000004
+#define NVC0_3D_SP_UNK14__LEN					0x00000004
+
 #define NVC0_3D_TEX_LIMITS(i0)				       (0x00002200 + 0x10*(i0))
 #define NVC0_3D_TEX_LIMITS__ESIZE				0x00000010
-#define NVC0_3D_TEX_LIMITS__LEN					0x00000005
+#define NVC0_3D_TEX_LIMITS__LEN				0x00000005
+#define NVC0_3D_TEX_LIMITS_SAMPLERS_LOG2__MASK			0x0000000f
+#define NVC0_3D_TEX_LIMITS_SAMPLERS_LOG2__SHIFT		0
+#define NVC0_3D_TEX_LIMITS_SAMPLERS_LOG2__MIN			0x00000000
+#define NVC0_3D_TEX_LIMITS_SAMPLERS_LOG2__MAX			0x00000004
+#define NVC0_3D_TEX_LIMITS_TEXTURES_LOG2__MASK			0x000000f0
+#define NVC0_3D_TEX_LIMITS_TEXTURES_LOG2__SHIFT		4
+#define NVC0_3D_TEX_LIMITS_TEXTURES_LOG2__MIN			0x00000000
+#define NVC0_3D_TEX_LIMITS_TEXTURES_LOG2__MAX			0x00000007
+
+#define NVC0_3D_UNK2204(i0)				       (0x00002204 + 0x10*(i0))
+#define NVC0_3D_UNK2204__ESIZE					0x00000010
+#define NVC0_3D_UNK2204__LEN					0x00000005
+
+#define NVC0_3D_UNK2208(i0)				       (0x00002208 + 0x10*(i0))
+#define NVC0_3D_UNK2208__ESIZE					0x00000010
+#define NVC0_3D_UNK2208__LEN					0x00000005
 
 #define NVC0_3D_FIRMWARE(i0)				       (0x00002300 + 0x4*(i0))
-#define NVC0_3D_FIRMWARE__ESIZE					0x00000004
+#define NVC0_3D_FIRMWARE__ESIZE				0x00000004
 #define NVC0_3D_FIRMWARE__LEN					0x00000020
 
-#define NVC0_3D_CB_SIZE						0x00002380
+#define NVC0_3D_CB_SIZE					0x00002380
 
-#define NVC0_3D_CB_ADDRESS_HIGH					0x00002384
+#define NVC0_3D_CB_ADDRESS_HIGH				0x00002384
 
 #define NVC0_3D_CB_ADDRESS_LOW					0x00002388
 
@@ -1297,63 +1808,247 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_3D_CB_DATA__LEN					0x00000010
 
 #define NVC0_3D_BIND_TSC(i0)				       (0x00002400 + 0x20*(i0))
-#define NVC0_3D_BIND_TSC__ESIZE					0x00000020
+#define NVC0_3D_BIND_TSC__ESIZE				0x00000020
 #define NVC0_3D_BIND_TSC__LEN					0x00000005
-#define NVC0_3D_BIND_TSC_ACTIVE					0x00000001
+#define NVC0_3D_BIND_TSC_ACTIVE				0x00000001
 #define NVC0_3D_BIND_TSC_SAMPLER__MASK				0x00000ff0
-#define NVC0_3D_BIND_TSC_SAMPLER__SHIFT				4
+#define NVC0_3D_BIND_TSC_SAMPLER__SHIFT			4
 #define NVC0_3D_BIND_TSC_TSC__MASK				0x01fff000
 #define NVC0_3D_BIND_TSC_TSC__SHIFT				12
 
 #define NVC0_3D_BIND_TIC(i0)				       (0x00002404 + 0x20*(i0))
-#define NVC0_3D_BIND_TIC__ESIZE					0x00000020
+#define NVC0_3D_BIND_TIC__ESIZE				0x00000020
 #define NVC0_3D_BIND_TIC__LEN					0x00000005
-#define NVC0_3D_BIND_TIC_ACTIVE					0x00000001
+#define NVC0_3D_BIND_TIC_ACTIVE				0x00000001
 #define NVC0_3D_BIND_TIC_TEXTURE__MASK				0x000001fe
-#define NVC0_3D_BIND_TIC_TEXTURE__SHIFT				1
+#define NVC0_3D_BIND_TIC_TEXTURE__SHIFT			1
 #define NVC0_3D_BIND_TIC_TIC__MASK				0x7ffffe00
 #define NVC0_3D_BIND_TIC_TIC__SHIFT				9
 
+#define NVC0_3D_BIND_TSC2(i0)				       (0x00002408 + 0x20*(i0))
+#define NVC0_3D_BIND_TSC2__ESIZE				0x00000020
+#define NVC0_3D_BIND_TSC2__LEN					0x00000005
+#define NVC0_3D_BIND_TSC2_ACTIVE				0x00000001
+#define NVC0_3D_BIND_TSC2_SAMPLER__MASK			0x00000010
+#define NVC0_3D_BIND_TSC2_SAMPLER__SHIFT			4
+#define NVC0_3D_BIND_TSC2_TSC__MASK				0x01fff000
+#define NVC0_3D_BIND_TSC2_TSC__SHIFT				12
+
+#define NVC0_3D_BIND_TIC2(i0)				       (0x0000240c + 0x20*(i0))
+#define NVC0_3D_BIND_TIC2__ESIZE				0x00000020
+#define NVC0_3D_BIND_TIC2__LEN					0x00000005
+#define NVC0_3D_BIND_TIC2_ACTIVE				0x00000001
+#define NVC0_3D_BIND_TIC2_TEXTURE__MASK			0x00000002
+#define NVC0_3D_BIND_TIC2_TEXTURE__SHIFT			1
+#define NVC0_3D_BIND_TIC2_TIC__MASK				0x7ffffe00
+#define NVC0_3D_BIND_TIC2_TIC__SHIFT				9
+
+#define NVE4_3D_UNK2400_TSC(i0)			       (0x00002400 + 0x20*(i0))
+#define NVE4_3D_UNK2400_TSC__ESIZE				0x00000020
+#define NVE4_3D_UNK2400_TSC__LEN				0x00000005
+
+#define NVE4_3D_UNK2400_TIC(i0)			       (0x00002404 + 0x20*(i0))
+#define NVE4_3D_UNK2400_TIC__ESIZE				0x00000020
+#define NVE4_3D_UNK2400_TIC__LEN				0x00000005
+
+#define NVE4_3D_UNK2400_TSC2(i0)			       (0x00002408 + 0x20*(i0))
+#define NVE4_3D_UNK2400_TSC2__ESIZE				0x00000020
+#define NVE4_3D_UNK2400_TSC2__LEN				0x00000005
+
+#define NVE4_3D_UNK2400_TIC2(i0)			       (0x0000240c + 0x20*(i0))
+#define NVE4_3D_UNK2400_TIC2__ESIZE				0x00000020
+#define NVE4_3D_UNK2400_TIC2__LEN				0x00000005
+
 #define NVC0_3D_CB_BIND(i0)				       (0x00002410 + 0x20*(i0))
 #define NVC0_3D_CB_BIND__ESIZE					0x00000020
 #define NVC0_3D_CB_BIND__LEN					0x00000005
 #define NVC0_3D_CB_BIND_VALID					0x00000001
-#define NVC0_3D_CB_BIND_INDEX__MASK				0x000000f0
+#define NVC0_3D_CB_BIND_INDEX__MASK				0x000001f0
 #define NVC0_3D_CB_BIND_INDEX__SHIFT				4
 
+#define NVC0_3D_UNK2500(i0)				       (0x00002500 + 0x20*(i0))
+#define NVC0_3D_UNK2500__ESIZE					0x00000020
+#define NVC0_3D_UNK2500__LEN					0x00000005
+
+#define NVC0_3D_UNK2504(i0)				       (0x00002504 + 0x20*(i0))
+#define NVC0_3D_UNK2504__ESIZE					0x00000020
+#define NVC0_3D_UNK2504__LEN					0x00000005
+
+#define NVC0_3D_UNK2508(i0)				       (0x00002508 + 0x20*(i0))
+#define NVC0_3D_UNK2508__ESIZE					0x00000020
+#define NVC0_3D_UNK2508__LEN					0x00000005
+
+#define NVC0_3D_UNK250C(i0)				       (0x0000250c + 0x20*(i0))
+#define NVC0_3D_UNK250C__ESIZE					0x00000020
+#define NVC0_3D_UNK250C__LEN					0x00000005
+
+#define NVC0_3D_UNK2510(i0)				       (0x00002510 + 0x20*(i0))
+#define NVC0_3D_UNK2510__ESIZE					0x00000020
+#define NVC0_3D_UNK2510__LEN					0x00000005
+
 #define NVC0_3D_VERT_COLOR_CLAMP_EN				0x00002600
 
+#define NVE4_3D_UNK2604					0x00002604
+
 #define NVE4_3D_TEX_CB_INDEX					0x00002608
 #define NVE4_3D_TEX_CB_INDEX__MIN				0x00000000
 #define NVE4_3D_TEX_CB_INDEX__MAX				0x00000010
 
-#define NVC0_3D_TFB_VARYING_LOCS(i0, i1)		       (0x00002800 + 0x80*(i0) + 0x4*(i1))
-#define NVC0_3D_TFB_VARYING_LOCS__ESIZE				0x00000004
-#define NVC0_3D_TFB_VARYING_LOCS__LEN				0x00000020
+#define NVE4_3D_UNK260C					0x0000260c
 
-#define NVC0_3D_MACRO_VERTEX_ARRAY_PER_INSTANCE			0x00003800
+#define NVC0_3D_IMAGE(i0)				       (0x00002700 + 0x20*(i0))
+#define NVC0_3D_IMAGE__ESIZE					0x00000020
+#define NVC0_3D_IMAGE__LEN					0x00000008
 
-#define NVC0_3D_MACRO_VERTEX_ARRAY_SELECT			0x00003808
+#define NVC0_3D_IMAGE_ADDRESS_HIGH(i0)			       (0x00002700 + 0x20*(i0))
 
-#define NVC0_3D_MACRO_BLEND_ENABLES				0x00003810
+#define NVC0_3D_IMAGE_ADDRESS_LOW(i0)			       (0x00002704 + 0x20*(i0))
 
-#define NVC0_3D_MACRO_POLYGON_MODE_FRONT			0x00003818
-#define NVC0_3D_MACRO_POLYGON_MODE_FRONT_POINT			0x00001b00
-#define NVC0_3D_MACRO_POLYGON_MODE_FRONT_LINE			0x00001b01
-#define NVC0_3D_MACRO_POLYGON_MODE_FRONT_FILL			0x00001b02
+#define NVC0_3D_IMAGE_WIDTH(i0)			       (0x00002708 + 0x20*(i0))
 
-#define NVC0_3D_MACRO_POLYGON_MODE_BACK				0x00003820
-#define NVC0_3D_MACRO_POLYGON_MODE_BACK_POINT			0x00001b00
-#define NVC0_3D_MACRO_POLYGON_MODE_BACK_LINE			0x00001b01
-#define NVC0_3D_MACRO_POLYGON_MODE_BACK_FILL			0x00001b02
+#define NVC0_3D_IMAGE_HEIGHT(i0)			       (0x0000270c + 0x20*(i0))
+#define NVC0_3D_IMAGE_HEIGHT_HEIGHT__MASK			0x0000ffff
+#define NVC0_3D_IMAGE_HEIGHT_HEIGHT__SHIFT			0
+#define NVC0_3D_IMAGE_HEIGHT_UNK16				0x00010000
+#define NVC0_3D_IMAGE_HEIGHT_LINEAR				0x00100000
 
-#define NVC0_3D_MACRO_GP_SELECT					0x00003828
+#define NVC0_3D_IMAGE_FORMAT(i0)			       (0x00002710 + 0x20*(i0))
+#define NVC0_3D_IMAGE_FORMAT_UNK0				0x00000001
+#define NVC0_3D_IMAGE_FORMAT_FORMAT_COLOR__MASK		0x00000ff0
+#define NVC0_3D_IMAGE_FORMAT_FORMAT_COLOR__SHIFT		4
+#define NVC0_3D_IMAGE_FORMAT_FORMAT_ZETA__MASK			0x0001f000
+#define NVC0_3D_IMAGE_FORMAT_FORMAT_ZETA__SHIFT		12
 
-#define NVC0_3D_MACRO_TEP_SELECT				0x00003830
+#define NVC0_3D_IMAGE_TILE_MODE(i0)			       (0x00002714 + 0x20*(i0))
 
-#define NVC0_3D_MACRO_DRAW_ARRAYS_INDIRECT			0x00003838
 
-#define NVC0_3D_MACRO_DRAW_ELEMENTS_INDIRECT			0x00003840
+#define NVC0_3D_TFB_VARYING_LOCS(i0, i1)		       (0x00002800 + 0x80*(i0) + 0x4*(i1))
+#define NVC0_3D_TFB_VARYING_LOCS__ESIZE			0x00000004
+#define NVC0_3D_TFB_VARYING_LOCS__LEN				0x00000020
+
+#define NVC0_3D_MP_PM_SET(i0)				       (0x0000335c + 0x4*(i0))
+#define NVC0_3D_MP_PM_SET__ESIZE				0x00000004
+#define NVC0_3D_MP_PM_SET__LEN					0x00000008
+
+#define NVC0_3D_MP_PM_SIGSEL(i0)			       (0x0000337c + 0x4*(i0))
+#define NVC0_3D_MP_PM_SIGSEL__ESIZE				0x00000004
+#define NVC0_3D_MP_PM_SIGSEL__LEN				0x00000008
+
+#define NVE4_3D_MP_PM_A_SIGSEL(i0)			       (0x0000337c + 0x4*(i0))
+#define NVE4_3D_MP_PM_A_SIGSEL__ESIZE				0x00000004
+#define NVE4_3D_MP_PM_A_SIGSEL__LEN				0x00000004
+#define NVE4_3D_MP_PM_A_SIGSEL_NONE				0x00000000
+#define NVE4_3D_MP_PM_A_SIGSEL_USER				0x00000001
+#define NVE4_3D_MP_PM_A_SIGSEL_LAUNCH				0x00000003
+#define NVE4_3D_MP_PM_A_SIGSEL_EXEC				0x00000004
+#define NVE4_3D_MP_PM_A_SIGSEL_ISSUE				0x00000005
+#define NVE4_3D_MP_PM_A_SIGSEL_LDST				0x0000001b
+#define NVE4_3D_MP_PM_A_SIGSEL_BRANCH				0x0000001c
+
+#define NVE4_3D_MP_PM_B_SIGSEL(i0)			       (0x0000338c + 0x4*(i0))
+#define NVE4_3D_MP_PM_B_SIGSEL__ESIZE				0x00000004
+#define NVE4_3D_MP_PM_B_SIGSEL__LEN				0x00000004
+#define NVE4_3D_MP_PM_B_SIGSEL_NONE				0x00000000
+#define NVE4_3D_MP_PM_B_SIGSEL_WARP				0x00000002
+#define NVE4_3D_MP_PM_B_SIGSEL_REPLAY				0x00000008
+#define NVE4_3D_MP_PM_B_SIGSEL_TRANSACTION			0x0000000e
+#define NVE4_3D_MP_PM_B_SIGSEL_L1				0x00000010
+#define NVE4_3D_MP_PM_B_SIGSEL_MEM				0x00000011
+
+#define NVC0_3D_MP_PM_SRCSEL(i0)			       (0x0000339c + 0x4*(i0))
+#define NVC0_3D_MP_PM_SRCSEL__ESIZE				0x00000004
+#define NVC0_3D_MP_PM_SRCSEL__LEN				0x00000008
+#define NVC0_3D_MP_PM_SRCSEL_GRP0__MASK			0x00000007
+#define NVC0_3D_MP_PM_SRCSEL_GRP0__SHIFT			0
+#define NVC0_3D_MP_PM_SRCSEL_SIG0__MASK			0x00000070
+#define NVC0_3D_MP_PM_SRCSEL_SIG0__SHIFT			4
+#define NVC0_3D_MP_PM_SRCSEL_GRP1__MASK			0x00000700
+#define NVC0_3D_MP_PM_SRCSEL_GRP1__SHIFT			8
+#define NVC0_3D_MP_PM_SRCSEL_SIG1__MASK			0x00007000
+#define NVC0_3D_MP_PM_SRCSEL_SIG1__SHIFT			12
+#define NVC0_3D_MP_PM_SRCSEL_GRP2__MASK			0x00070000
+#define NVC0_3D_MP_PM_SRCSEL_GRP2__SHIFT			16
+#define NVC0_3D_MP_PM_SRCSEL_SIG2__MASK			0x00700000
+#define NVC0_3D_MP_PM_SRCSEL_SIG2__SHIFT			20
+#define NVC0_3D_MP_PM_SRCSEL_GRP3__MASK			0x07000000
+#define NVC0_3D_MP_PM_SRCSEL_GRP3__SHIFT			24
+#define NVC0_3D_MP_PM_SRCSEL_SIG3__MASK			0x70000000
+#define NVC0_3D_MP_PM_SRCSEL_SIG3__SHIFT			28
+
+#define NVE4_3D_MP_PM_SRCSEL(i0)			       (0x0000339c + 0x4*(i0))
+#define NVE4_3D_MP_PM_SRCSEL__ESIZE				0x00000004
+#define NVE4_3D_MP_PM_SRCSEL__LEN				0x00000008
+#define NVE4_3D_MP_PM_SRCSEL_GRP0__MASK			0x00000003
+#define NVE4_3D_MP_PM_SRCSEL_GRP0__SHIFT			0
+#define NVE4_3D_MP_PM_SRCSEL_SIG0__MASK			0x0000001c
+#define NVE4_3D_MP_PM_SRCSEL_SIG0__SHIFT			2
+#define NVE4_3D_MP_PM_SRCSEL_GRP1__MASK			0x00000060
+#define NVE4_3D_MP_PM_SRCSEL_GRP1__SHIFT			5
+#define NVE4_3D_MP_PM_SRCSEL_SIG1__MASK			0x00000380
+#define NVE4_3D_MP_PM_SRCSEL_SIG1__SHIFT			7
+#define NVE4_3D_MP_PM_SRCSEL_GRP2__MASK			0x00000c00
+#define NVE4_3D_MP_PM_SRCSEL_GRP2__SHIFT			10
+#define NVE4_3D_MP_PM_SRCSEL_SIG2__MASK			0x00007000
+#define NVE4_3D_MP_PM_SRCSEL_SIG2__SHIFT			12
+#define NVE4_3D_MP_PM_SRCSEL_GRP3__MASK			0x00018000
+#define NVE4_3D_MP_PM_SRCSEL_GRP3__SHIFT			15
+#define NVE4_3D_MP_PM_SRCSEL_SIG3__MASK			0x000e0000
+#define NVE4_3D_MP_PM_SRCSEL_SIG3__SHIFT			17
+#define NVE4_3D_MP_PM_SRCSEL_GRP4__MASK			0x00300000
+#define NVE4_3D_MP_PM_SRCSEL_GRP4__SHIFT			20
+#define NVE4_3D_MP_PM_SRCSEL_SIG4__MASK			0x01c00000
+#define NVE4_3D_MP_PM_SRCSEL_SIG4__SHIFT			22
+#define NVE4_3D_MP_PM_SRCSEL_GRP5__MASK			0x06000000
+#define NVE4_3D_MP_PM_SRCSEL_GRP5__SHIFT			25
+#define NVE4_3D_MP_PM_SRCSEL_SIG5__MASK			0x38000000
+#define NVE4_3D_MP_PM_SRCSEL_SIG5__SHIFT			27
+
+#define NVC0_3D_MP_PM_OP(i0)				       (0x000033bc + 0x4*(i0))
+#define NVC0_3D_MP_PM_OP__ESIZE				0x00000004
+#define NVC0_3D_MP_PM_OP__LEN					0x00000008
+#define NVC0_3D_MP_PM_OP_MODE__MASK				0x00000001
+#define NVC0_3D_MP_PM_OP_MODE__SHIFT				0
+#define NVC0_3D_MP_PM_OP_MODE_LOGOP				0x00000000
+#define NVC0_3D_MP_PM_OP_MODE_LOGOP_PULSE			0x00000001
+#define NVC0_3D_MP_PM_OP_FUNC__MASK				0x000ffff0
+#define NVC0_3D_MP_PM_OP_FUNC__SHIFT				4
+
+#define NVE4_3D_MP_PM_FUNC(i0)				       (0x000033bc + 0x4*(i0))
+#define NVE4_3D_MP_PM_FUNC__ESIZE				0x00000004
+#define NVE4_3D_MP_PM_FUNC__LEN				0x00000008
+#define NVE4_3D_MP_PM_FUNC_MODE__MASK				0x0000000f
+#define NVE4_3D_MP_PM_FUNC_MODE__SHIFT				0
+#define NVE4_3D_MP_PM_FUNC_MODE_LOGOP				0x00000000
+#define NVE4_3D_MP_PM_FUNC_MODE_LOGOP_PULSE			0x00000001
+#define NVE4_3D_MP_PM_FUNC_MODE_B6				0x00000002
+#define NVE4_3D_MP_PM_FUNC_MODE_UNK3				0x00000003
+#define NVE4_3D_MP_PM_FUNC_MODE_LOGOP_B6			0x00000004
+#define NVE4_3D_MP_PM_FUNC_MODE_LOGOP_B6_PULSE			0x00000005
+#define NVE4_3D_MP_PM_FUNC_MODE_UNK6				0x00000006
+#define NVE4_3D_MP_PM_FUNC_MODE_UNK7				0x00000007
+#define NVE4_3D_MP_PM_FUNC_MODE_UNK8				0x00000008
+#define NVE4_3D_MP_PM_FUNC_FUNC__MASK				0x000ffff0
+#define NVE4_3D_MP_PM_FUNC_FUNC__SHIFT				4
+
+#define NVC0_3D_MP_PM_UNK33DC					0x000033dc
+
+#define NVC0_3D_NVRM_MACRO_VERTEX_ARRAY_SELECT			0x00003820
+
+#define NVC0_3D_NVRM_MACRO_BLEND_ENABLES			0x00003858
+
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_FRONT			0x00003868
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_FRONT_POINT		0x00001b00
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_FRONT_LINE		0x00001b01
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_FRONT_FILL		0x00001b02
+
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_BACK			0x00003870
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_BACK_POINT		0x00001b00
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_BACK_LINE		0x00001b01
+#define NVC0_3D_NVRM_MACRO_POLYGON_MODE_BACK_FILL		0x00001b02
+
+#define NVC0_3D_NVRM_MACRO_GP_SELECT				0x00003878
+
+#define NVC0_3D_NVRM_MACRO_TEP_SELECT				0x00003880
 
 
 #endif /* NVC0_3D_XML */
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_3ddefs.xml.h b/src/gallium/drivers/nouveau/nvc0/nvc0_3ddefs.xml.h
deleted file mode 100644
index 84b1522..0000000
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_3ddefs.xml.h
+++ /dev/null
@@ -1,98 +0,0 @@
-#ifndef NV_3DDEFS_XML
-#define NV_3DDEFS_XML
-
-/* Autogenerated file, DO NOT EDIT manually!
-
-This file was generated by the rules-ng-ng headergen tool in this git repository:
-http://0x04.net/cgit/index.cgi/rules-ng-ng
-git clone git://0x04.net/rules-ng-ng
-
-The rules-ng-ng source files this header was generated from are:
-- nvc0_3d.xml    (  26312 bytes, from 2010-10-08 10:10:01)
-- copyright.xml  (   6498 bytes, from 2010-10-03 13:18:37)
-- nv_defs.xml    (   4437 bytes, from 2010-07-06 07:43:58)
-- nv_3ddefs.xml  (  16397 bytes, from 2010-10-08 13:30:38)
-- nv_object.xml  (  11249 bytes, from 2010-10-07 15:31:28)
-- nvchipsets.xml (   2824 bytes, from 2010-07-07 13:41:20)
-- nv50_defs.xml  (   4482 bytes, from 2010-10-03 13:18:37)
-
-Copyright (C) 2006-2010 by the following authors:
-- Artur Huillet <arthur.huillet at free.fr> (ahuillet)
-- Ben Skeggs (darktama, darktama_)
-- B. R. <koala_br at users.sourceforge.net> (koala_br)
-- Carlos Martin <carlosmn at users.sf.net> (carlosmn)
-- Christoph Bumiller <e0425955 at student.tuwien.ac.at> (calim, chrisbmr)
-- Dawid Gajownik <gajownik at users.sf.net> (gajownik)
-- Dmitry Baryshkov
-- Dmitry Eremin-Solenikov <lumag at users.sf.net> (lumag)
-- EdB <edb_ at users.sf.net> (edb_)
-- Erik Waling <erikwailing at users.sf.net> (erikwaling)
-- Francisco Jerez <currojerez at riseup.net> (curro, curro_, currojerez)
-- imirkin <imirkin at users.sf.net> (imirkin)
-- jb17bsome <jb17bsome at bellsouth.net> (jb17bsome)
-- Jeremy Kolb <kjeremy at users.sf.net> (kjeremy)
-- Laurent Carlier <lordheavym at gmail.com> (lordheavy)
-- Luca Barbieri <luca at luca-barbieri.com> (lb, lb1)
-- Maarten Maathuis <madman2003 at gmail.com> (stillunknown)
-- Marcin Koƛcielnicki <koriakin at 0x04.net> (mwk, koriakin)
-- Mark Carey <mark.carey at gmail.com> (careym)
-- Matthieu Castet <matthieu.castet at parrot.com> (mat-c)
-- nvidiaman <nvidiaman at users.sf.net> (nvidiaman)
-- Patrice Mandin <patmandin at gmail.com> (pmandin, pmdata)
-- Pekka Paalanen <pq at iki.fi> (pq, ppaalanen)
-- Peter Popov <ironpeter at users.sf.net> (ironpeter)
-- Richard Hughes <hughsient at users.sf.net> (hughsient)
-- Rudi Cilibrasi <cilibrar at users.sf.net> (cilibrar)
-- Serge Martin
-- Simon Raffeiner
-- Stephane Loeuillet <leroutier at users.sf.net> (leroutier)
-- Stephane Marchesin <stephane.marchesin at gmail.com> (marcheu)
-- sturmflut <sturmflut at users.sf.net> (sturmflut)
-- Sylvain Munaut <tnt at 246tNt.com>
-- Victor Stinner <victor.stinner at haypocalc.com> (haypo)
-- Wladmir van der Laan <laanwj at gmail.com> (miathan6)
-- Younes Manton <younes.m at gmail.com> (ymanton)
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial
-portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-
-#define NV50_3D_BLEND_FACTOR_ZERO				0x00004000
-#define NV50_3D_BLEND_FACTOR_ONE				0x00004001
-#define NV50_3D_BLEND_FACTOR_SRC_COLOR				0x00004300
-#define NV50_3D_BLEND_FACTOR_ONE_MINUS_SRC_COLOR		0x00004301
-#define NV50_3D_BLEND_FACTOR_SRC_ALPHA				0x00004302
-#define NV50_3D_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA		0x00004303
-#define NV50_3D_BLEND_FACTOR_DST_ALPHA				0x00004304
-#define NV50_3D_BLEND_FACTOR_ONE_MINUS_DST_ALPHA		0x00004305
-#define NV50_3D_BLEND_FACTOR_DST_COLOR				0x00004306
-#define NV50_3D_BLEND_FACTOR_ONE_MINUS_DST_COLOR		0x00004307
-#define NV50_3D_BLEND_FACTOR_SRC_ALPHA_SATURATE			0x00004308
-#define NV50_3D_BLEND_FACTOR_CONSTANT_COLOR			0x0000c001
-#define NV50_3D_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR		0x0000c002
-#define NV50_3D_BLEND_FACTOR_CONSTANT_ALPHA			0x0000c003
-#define NV50_3D_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA		0x0000c004
-#define NV50_3D_BLEND_FACTOR_SRC1_COLOR				0x0000c900
-#define NV50_3D_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR		0x0000c901
-#define NV50_3D_BLEND_FACTOR_SRC1_ALPHA				0x0000c902
-#define NV50_3D_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA		0x0000c903
-
-#endif /* NV_3DDEFS_XML */
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_compute.xml.h b/src/gallium/drivers/nouveau/nvc0/nvc0_compute.xml.h
index 35e6bfd..502ae36 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_compute.xml.h
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_compute.xml.h
@@ -4,18 +4,17 @@
 /* Autogenerated file, DO NOT EDIT manually!
 
 This file was generated by the rules-ng-ng headergen tool in this git repository:
-http://0x04.net/cgit/index.cgi/rules-ng-ng
-git clone git://0x04.net/rules-ng-ng
+http://github.com/envytools/envytools/
+git clone https://github.com/envytools/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- nvc0_compute.xml (  11145 bytes, from 2013-04-27 14:00:13)
-- copyright.xml    (   6452 bytes, from 2013-02-27 22:13:22)
-- nvchipsets.xml   (   3954 bytes, from 2013-04-27 14:00:13)
-- nv_object.xml    (  14395 bytes, from 2013-04-27 14:00:13)
-- nv_defs.xml      (   4437 bytes, from 2013-02-27 22:13:22)
-- nv50_defs.xml    (  16652 bytes, from 2013-06-20 13:45:33)
-
-Copyright (C) 2006-2013 by the following authors:
+- rnndb/graph/gf100_compute.xml (  11143 bytes, from 2014-09-25 06:32:11)
+- rnndb/copyright.xml           (   6456 bytes, from 2014-12-31 02:13:31)
+- rnndb/nvchipsets.xml          (   2759 bytes, from 2014-10-05 01:51:02)
+- rnndb/fifo/nv_object.xml      (  15326 bytes, from 2014-09-25 06:32:11)
+- rnndb/g80_defs.xml            (  18175 bytes, from 2014-09-25 06:32:11)
+
+Copyright (C) 2006-2014 by the following authors:
 - Artur Huillet <arthur.huillet at free.fr> (ahuillet)
 - Ben Skeggs (darktama, darktama_)
 - B. R. <koala_br at users.sourceforge.net> (koala_br)
@@ -27,7 +26,7 @@ Copyright (C) 2006-2013 by the following authors:
 - EdB <edb_ at users.sf.net> (edb_)
 - Erik Waling <erikwailing at users.sf.net> (erikwaling)
 - Francisco Jerez <currojerez at riseup.net> (curro)
-- imirkin <imirkin at users.sf.net> (imirkin)
+- Ilia Mirkin <imirkin at alum.mit.edu> (imirkin)
 - jb17bsome <jb17bsome at bellsouth.net> (jb17bsome)
 - Jeremy Kolb <kjeremy at users.sf.net> (kjeremy)
 - Laurent Carlier <lordheavym at gmail.com> (lordheavy)
@@ -81,7 +80,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_COMPUTE_WARP_CSTACK_SIZE				0x0000020c
 
-#define NVC0_COMPUTE_TEX_LIMITS					0x00000210
+#define NVC0_COMPUTE_TEX_LIMITS				0x00000210
 #define NVC0_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2__MASK		0x0000000f
 #define NVC0_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2__SHIFT		0
 #define NVC0_COMPUTE_TEX_LIMITS_SAMPLERS_LOG2__MIN		0x00000000
@@ -105,14 +104,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_COMPUTE_BIND_TSC_ACTIVE				0x00000001
 #define NVC0_COMPUTE_BIND_TSC_SAMPLER__MASK			0x00000ff0
 #define NVC0_COMPUTE_BIND_TSC_SAMPLER__SHIFT			4
-#define NVC0_COMPUTE_BIND_TSC_TSC__MASK				0x01fff000
+#define NVC0_COMPUTE_BIND_TSC_TSC__MASK			0x01fff000
 #define NVC0_COMPUTE_BIND_TSC_TSC__SHIFT			12
 
 #define NVC0_COMPUTE_BIND_TIC					0x0000022c
 #define NVC0_COMPUTE_BIND_TIC_ACTIVE				0x00000001
 #define NVC0_COMPUTE_BIND_TIC_TEXTURE__MASK			0x000001fe
 #define NVC0_COMPUTE_BIND_TIC_TEXTURE__SHIFT			1
-#define NVC0_COMPUTE_BIND_TIC_TIC__MASK				0x7ffffe00
+#define NVC0_COMPUTE_BIND_TIC_TIC__MASK			0x7ffffe00
 #define NVC0_COMPUTE_BIND_TIC_TIC__SHIFT			9
 
 #define NVC0_COMPUTE_BIND_TSC2					0x00000230
@@ -129,10 +128,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_COMPUTE_BIND_TIC2_TIC__MASK			0x7ffffe00
 #define NVC0_COMPUTE_BIND_TIC2_TIC__SHIFT			9
 
-#define NVC0_COMPUTE_GRIDDIM_YX					0x00000238
-#define NVC0_COMPUTE_GRIDDIM_YX_X__MASK				0x0000ffff
+#define NVC0_COMPUTE_GRIDDIM_YX				0x00000238
+#define NVC0_COMPUTE_GRIDDIM_YX_X__MASK			0x0000ffff
 #define NVC0_COMPUTE_GRIDDIM_YX_X__SHIFT			0
-#define NVC0_COMPUTE_GRIDDIM_YX_Y__MASK				0xffff0000
+#define NVC0_COMPUTE_GRIDDIM_YX_Y__MASK			0xffff0000
 #define NVC0_COMPUTE_GRIDDIM_YX_Y__SHIFT			16
 
 #define NVC0_COMPUTE_GRIDDIM_Z					0x0000023c
@@ -148,7 +147,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_COMPUTE_UNK028C					0x0000028c
 
 #define NVC0_COMPUTE_COMPUTE_BEGIN				0x0000029c
-#define NVC0_COMPUTE_COMPUTE_BEGIN_UNK0				0x00000001
+#define NVC0_COMPUTE_COMPUTE_BEGIN_UNK0			0x00000001
 
 #define NVC0_COMPUTE_UNK02A0					0x000002a0
 
@@ -174,7 +173,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_COMPUTE_UNK0360					0x00000360
 #define NVC0_COMPUTE_UNK0360_UNK0				0x00000001
-#define NVC0_COMPUTE_UNK0360_UNK8__MASK				0x00000300
+#define NVC0_COMPUTE_UNK0360_UNK8__MASK			0x00000300
 #define NVC0_COMPUTE_UNK0360_UNK8__SHIFT			8
 #define NVC8_COMPUTE_UNK0360_UNK10__MASK			0x00000c00
 #define NVC8_COMPUTE_UNK0360_UNK10__SHIFT			10
@@ -182,9 +181,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_COMPUTE_LAUNCH					0x00000368
 
 #define NVC0_COMPUTE_UNK036C					0x0000036c
-#define NVC0_COMPUTE_UNK036C_UNK0__MASK				0x00000003
+#define NVC0_COMPUTE_UNK036C_UNK0__MASK			0x00000003
 #define NVC0_COMPUTE_UNK036C_UNK0__SHIFT			0
-#define NVC8_COMPUTE_UNK036C_UNK2__MASK				0x0000000c
+#define NVC8_COMPUTE_UNK036C_UNK2__MASK			0x0000000c
 #define NVC8_COMPUTE_UNK036C_UNK2__SHIFT			2
 
 #define NVC0_COMPUTE_BLOCKDIM_YX				0x000003ac
@@ -193,7 +192,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_COMPUTE_BLOCKDIM_YX_Y__MASK			0xffff0000
 #define NVC0_COMPUTE_BLOCKDIM_YX_Y__SHIFT			16
 
-#define NVC0_COMPUTE_BLOCKDIM_Z					0x000003b0
+#define NVC0_COMPUTE_BLOCKDIM_Z				0x000003b0
 
 #define NVC0_COMPUTE_CP_START_ID				0x000003b4
 
@@ -203,7 +202,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_COMPUTE_MP_LIMIT					0x00000758
 
-#define NVC0_COMPUTE_LOCAL_BASE					0x0000077c
+#define NVC0_COMPUTE_LOCAL_BASE				0x0000077c
 
 #define NVC0_COMPUTE_GRIDID					0x00000780
 
@@ -233,19 +232,19 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_COMPUTE_UNK10F4_UNK4				0x00000010
 #define NVC0_COMPUTE_UNK10F4_UNK8				0x00000100
 
-#define NVC0_COMPUTE_LINKED_TSC					0x00001234
+#define NVC0_COMPUTE_LINKED_TSC				0x00001234
 
 #define NVC0_COMPUTE_UNK1288_TIC_FLUSH				0x00001288
 
 #define NVC0_COMPUTE_UNK12AC					0x000012ac
 
 #define NVC0_COMPUTE_TSC_FLUSH					0x00001330
-#define NVC0_COMPUTE_TSC_FLUSH_SPECIFIC				0x00000001
+#define NVC0_COMPUTE_TSC_FLUSH_SPECIFIC			0x00000001
 #define NVC0_COMPUTE_TSC_FLUSH_ENTRY__MASK			0x03fffff0
 #define NVC0_COMPUTE_TSC_FLUSH_ENTRY__SHIFT			4
 
 #define NVC0_COMPUTE_TIC_FLUSH					0x00001334
-#define NVC0_COMPUTE_TIC_FLUSH_SPECIFIC				0x00000001
+#define NVC0_COMPUTE_TIC_FLUSH_SPECIFIC			0x00000001
 #define NVC0_COMPUTE_TIC_FLUSH_ENTRY__MASK			0x03fffff0
 #define NVC0_COMPUTE_TIC_FLUSH_ENTRY__SHIFT			4
 
@@ -253,7 +252,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_COMPUTE_TEX_CACHE_CTL_UNK0__MASK			0x00000007
 #define NVC0_COMPUTE_TEX_CACHE_CTL_UNK0__SHIFT			0
 #define NVC0_COMPUTE_TEX_CACHE_CTL_ENTRY__MASK			0x03fffff0
-#define NVC0_COMPUTE_TEX_CACHE_CTL_ENTRY__SHIFT			4
+#define NVC0_COMPUTE_TEX_CACHE_CTL_ENTRY__SHIFT		4
 
 #define NVC0_COMPUTE_UNK1354					0x00001354
 
@@ -288,7 +287,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_COMPUTE_TEX_MISC					0x00001664
 #define NVC0_COMPUTE_TEX_MISC_UNK				0x00000001
-#define NVC0_COMPUTE_TEX_MISC_SEAMLESS_CUBE_MAP			0x00000002
+#define NVC0_COMPUTE_TEX_MISC_SEAMLESS_CUBE_MAP		0x00000002
 
 #define NVC0_COMPUTE_UNK1690					0x00001690
 #define NVC0_COMPUTE_UNK1690_ALWAYS_DERIV			0x00000001
@@ -300,9 +299,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_COMPUTE_CB_BIND_INDEX__SHIFT			8
 
 #define NVC0_COMPUTE_FLUSH					0x00001698
-#define NVC0_COMPUTE_FLUSH_CODE					0x00000001
+#define NVC0_COMPUTE_FLUSH_CODE				0x00000001
 #define NVC0_COMPUTE_FLUSH_GLOBAL				0x00000010
-#define NVC0_COMPUTE_FLUSH_UNK8					0x00000100
+#define NVC0_COMPUTE_FLUSH_UNK8				0x00000100
 #define NVC0_COMPUTE_FLUSH_CB					0x00001000
 
 #define NVC0_COMPUTE_UNK1930					0x00001930
@@ -315,7 +314,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVC0_COMPUTE_UNK1A2C__ESIZE				0x00000004
 #define NVC0_COMPUTE_UNK1A2C__LEN				0x00000005
 
-#define NVC0_COMPUTE_QUERY_ADDRESS_HIGH				0x00001b00
+#define NVC0_COMPUTE_QUERY_ADDRESS_HIGH			0x00001b00
 
 #define NVC0_COMPUTE_QUERY_ADDRESS_LOW				0x00001b04
 
@@ -343,7 +342,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_COMPUTE_IMAGE(i0)				       (0x00002700 + 0x20*(i0))
 #define NVC0_COMPUTE_IMAGE__ESIZE				0x00000020
-#define NVC0_COMPUTE_IMAGE__LEN					0x00000008
+#define NVC0_COMPUTE_IMAGE__LEN				0x00000008
 
 #define NVC0_COMPUTE_IMAGE_ADDRESS_HIGH(i0)		       (0x00002700 + 0x20*(i0))
 
@@ -353,8 +352,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_COMPUTE_IMAGE_HEIGHT(i0)			       (0x0000270c + 0x20*(i0))
 #define NVC0_COMPUTE_IMAGE_HEIGHT_HEIGHT__MASK			0x0000ffff
-#define NVC0_COMPUTE_IMAGE_HEIGHT_HEIGHT__SHIFT			0
-#define NVC0_COMPUTE_IMAGE_HEIGHT_UNK16				0x00010000
+#define NVC0_COMPUTE_IMAGE_HEIGHT_HEIGHT__SHIFT		0
+#define NVC0_COMPUTE_IMAGE_HEIGHT_UNK16			0x00010000
 #define NVC0_COMPUTE_IMAGE_HEIGHT_LINEAR			0x00100000
 
 #define NVC0_COMPUTE_IMAGE_FORMAT(i0)			       (0x00002710 + 0x20*(i0))
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_context.h b/src/gallium/drivers/nouveau/nvc0/nvc0_context.h
index 63e73ae..ef251f3 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_context.h
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_context.h
@@ -21,11 +21,12 @@
 #include "nouveau_context.h"
 #include "nouveau_debug.h"
 
-#include "nvc0/nvc0_3ddefs.xml.h"
+#include "nv50/nv50_3ddefs.xml.h"
 #include "nvc0/nvc0_3d.xml.h"
-#include "nvc0/nvc0_2d.xml.h"
+#include "nv50/nv50_2d.xml.h"
 #include "nvc0/nvc0_m2mf.xml.h"
 #include "nvc0/nve4_p2mf.xml.h"
+#include "nvc0/nvc0_macros.h"
 
 /* NOTE: must keep NVC0_NEW_...PROG in consecutive bits in this order */
 #define NVC0_NEW_BLEND        (1 << 0)
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_m2mf.xml.h b/src/gallium/drivers/nouveau/nvc0/nvc0_m2mf.xml.h
index 3bf628d..6c0c51e 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_m2mf.xml.h
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_m2mf.xml.h
@@ -4,17 +4,17 @@
 /* Autogenerated file, DO NOT EDIT manually!
 
 This file was generated by the rules-ng-ng headergen tool in this git repository:
-http://0x04.net/cgit/index.cgi/rules-ng-ng
-git clone git://0x04.net/rules-ng-ng
+http://github.com/envytools/envytools/
+git clone https://github.com/envytools/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- nvc0_m2mf.xml  (   2227 bytes, from 2010-10-16 16:10:29)
-- copyright.xml  (   6498 bytes, from 2010-10-03 13:18:37)
-- nv_object.xml  (  11379 bytes, from 2010-10-16 11:43:24)
-- nvchipsets.xml (   2907 bytes, from 2010-10-15 16:28:21)
-- nv_defs.xml    (   4437 bytes, from 2010-07-06 07:43:58)
+- rnndb/graph/gf100_m2mf.xml (   2783 bytes, from 2014-09-25 06:32:11)
+- rnndb/copyright.xml        (   6456 bytes, from 2014-12-31 02:13:31)
+- rnndb/fifo/nv_object.xml   (  15326 bytes, from 2014-09-25 06:32:11)
+- rnndb/nvchipsets.xml       (   2759 bytes, from 2014-10-05 01:51:02)
+- rnndb/g80_defs.xml         (  18175 bytes, from 2014-09-25 06:32:11)
 
-Copyright (C) 2006-2010 by the following authors:
+Copyright (C) 2006-2014 by the following authors:
 - Artur Huillet <arthur.huillet at free.fr> (ahuillet)
 - Ben Skeggs (darktama, darktama_)
 - B. R. <koala_br at users.sourceforge.net> (koala_br)
@@ -25,8 +25,8 @@ Copyright (C) 2006-2010 by the following authors:
 - Dmitry Eremin-Solenikov <lumag at users.sf.net> (lumag)
 - EdB <edb_ at users.sf.net> (edb_)
 - Erik Waling <erikwailing at users.sf.net> (erikwaling)
-- Francisco Jerez <currojerez at riseup.net> (curro, curro_, currojerez)
-- imirkin <imirkin at users.sf.net> (imirkin)
+- Francisco Jerez <currojerez at riseup.net> (curro)
+- Ilia Mirkin <imirkin at alum.mit.edu> (imirkin)
 - jb17bsome <jb17bsome at bellsouth.net> (jb17bsome)
 - Jeremy Kolb <kjeremy at users.sf.net> (kjeremy)
 - Laurent Carlier <lordheavym at gmail.com> (lordheavy)
@@ -92,25 +92,41 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_M2MF_TILING_DEPTH_OUT				0x0000022c
 
-#define NVC0_M2MF_TILING_POSITION_OUT_Z				0x00000230
+#define NVC0_M2MF_TILING_POSITION_OUT_Z			0x00000230
 
 #define NVC0_M2MF_OFFSET_OUT_HIGH				0x00000238
 
 #define NVC0_M2MF_OFFSET_OUT_LOW				0x0000023c
 
+#define NVC0_M2MF_UNK0240(i0)				       (0x00000240 + 0x4*(i0))
+#define NVC0_M2MF_UNK0240__ESIZE				0x00000004
+#define NVC0_M2MF_UNK0240__LEN					0x0000000f
+
+#define NVC0_M2MF_FIRMWARE(i0)				       (0x0000027c + 0x4*(i0))
+#define NVC0_M2MF_FIRMWARE__ESIZE				0x00000004
+#define NVC0_M2MF_FIRMWARE__LEN				0x00000020
+
+#define NVC0_M2MF_UNK02FC					0x000002fc
+
 #define NVC0_M2MF_EXEC						0x00000300
 #define NVC0_M2MF_EXEC_PUSH					0x00000001
 #define NVC0_M2MF_EXEC_LINEAR_IN				0x00000010
 #define NVC0_M2MF_EXEC_LINEAR_OUT				0x00000100
-#define NVC0_M2MF_EXEC_NOTIFY					0x00002000
-#define NVC0_M2MF_EXEC_INC__MASK				0x00f00000
-#define NVC0_M2MF_EXEC_INC__SHIFT				20
+#define NVC0_M2MF_EXEC_QUERY__MASK				0x00003000
+#define NVC0_M2MF_EXEC_QUERY__SHIFT				12
+#define NVC0_M2MF_EXEC_QUERY_NO				0x00000000
+#define NVC0_M2MF_EXEC_QUERY_UNK1				0x00001000
+#define NVC0_M2MF_EXEC_QUERY_YES				0x00002000
+#define NVC0_M2MF_EXEC_BUF_NOTIFY				0x00030000
+#define NVC0_M2MF_EXEC_QUERY_SHORT				0x00100000
 
 #define NVC0_M2MF_DATA						0x00000304
 
+#define NVC0_M2MF_UNK308					0x00000308
+
 #define NVC0_M2MF_OFFSET_IN_HIGH				0x0000030c
 
-#define NVC0_M2MF_OFFSET_IN_LOW					0x00000310
+#define NVC0_M2MF_OFFSET_IN_LOW				0x00000310
 
 #define NVC0_M2MF_PITCH_IN					0x00000314
 
@@ -120,19 +136,30 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVC0_M2MF_LINE_COUNT					0x00000320
 
-#define NVC0_M2MF_NOTIFY_ADDRESS_HIGH				0x0000032c
+#define NVC0_M2MF_QUERY_ADDRESS_HIGH				0x0000032c
+
+#define NVC0_M2MF_QUERY_ADDRESS_LOW				0x00000330
+
+#define NVC0_M2MF_QUERY_SEQUENCE				0x00000334
+
+#define NVC0_M2MF_COND_ADDRESS_HIGH				0x00000338
 
-#define NVC0_M2MF_NOTIFY_ADDRESS_LOW				0x00000330
+#define NVC0_M2MF_COND_ADDRESS_LOW				0x0000033c
 
-#define NVC0_M2MF_NOTIFY					0x00000334
+#define NVC0_M2MF_COND_MODE					0x00000340
+#define NVC0_M2MF_COND_MODE_NEVER				0x00000000
+#define NVC0_M2MF_COND_MODE_ALWAYS				0x00000001
+#define NVC0_M2MF_COND_MODE_RES_NON_ZERO			0x00000002
+#define NVC0_M2MF_COND_MODE_EQUAL				0x00000003
+#define NVC0_M2MF_COND_MODE_NOT_EQUAL				0x00000004
 
 #define NVC0_M2MF_TILING_POSITION_IN_X				0x00000344
 
 #define NVC0_M2MF_TILING_POSITION_IN_Y				0x00000348
 
-#define NVC0_M2MF_TILING_POSITION_OUT_X				0x0000034c
+#define NVC0_M2MF_TILING_POSITION_OUT_X			0x0000034c
 
-#define NVC0_M2MF_TILING_POSITION_OUT_Y				0x00000350
+#define NVC0_M2MF_TILING_POSITION_OUT_Y			0x00000350
 
 
 #endif /* NVC0_M2MF_XML */
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_macros.h b/src/gallium/drivers/nouveau/nvc0/nvc0_macros.h
new file mode 100644
index 0000000..bf2798a
--- /dev/null
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_macros.h
@@ -0,0 +1,32 @@
+#ifndef __NVC0_MACROS_H__
+#define __NVC0_MACROS_H__
+
+/**
+ * The list of macros defined in the 3d object
+ */
+
+#define NVC0_3D_MACRO_VERTEX_ARRAY_PER_INSTANCE			0x00003800
+
+#define NVC0_3D_MACRO_VERTEX_ARRAY_SELECT			0x00003808
+
+#define NVC0_3D_MACRO_BLEND_ENABLES				0x00003810
+
+#define NVC0_3D_MACRO_POLYGON_MODE_FRONT			0x00003818
+#define NVC0_3D_MACRO_POLYGON_MODE_FRONT_POINT			0x00001b00
+#define NVC0_3D_MACRO_POLYGON_MODE_FRONT_LINE			0x00001b01
+#define NVC0_3D_MACRO_POLYGON_MODE_FRONT_FILL			0x00001b02
+
+#define NVC0_3D_MACRO_POLYGON_MODE_BACK				0x00003820
+#define NVC0_3D_MACRO_POLYGON_MODE_BACK_POINT			0x00001b00
+#define NVC0_3D_MACRO_POLYGON_MODE_BACK_LINE			0x00001b01
+#define NVC0_3D_MACRO_POLYGON_MODE_BACK_FILL			0x00001b02
+
+#define NVC0_3D_MACRO_GP_SELECT					0x00003828
+
+#define NVC0_3D_MACRO_TEP_SELECT				0x00003830
+
+#define NVC0_3D_MACRO_DRAW_ARRAYS_INDIRECT			0x00003838
+
+#define NVC0_3D_MACRO_DRAW_ELEMENTS_INDIRECT			0x00003840
+
+#endif /* __NVC0_MACROS_H__ */
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
index 5032c7f..5069e5a 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
@@ -696,10 +696,10 @@ nvc0_screen_create(struct nouveau_device *dev)
 
    BEGIN_NVC0(push, SUBC_2D(NV01_SUBCHAN_OBJECT), 1);
    PUSH_DATA (push, screen->eng2d->oclass);
-   BEGIN_NVC0(push, NVC0_2D(SINGLE_GPC), 1);
+   BEGIN_NVC0(push, SUBC_2D(NVC0_2D_SINGLE_GPC), 1);
    PUSH_DATA (push, 0);
    BEGIN_NVC0(push, NVC0_2D(OPERATION), 1);
-   PUSH_DATA (push, NVC0_2D_OPERATION_SRCCOPY);
+   PUSH_DATA (push, NV50_2D_OPERATION_SRCCOPY);
    BEGIN_NVC0(push, NVC0_2D(CLIP_ENABLE), 1);
    PUSH_DATA (push, 0);
    BEGIN_NVC0(push, NVC0_2D(COLOR_KEY_ENABLE), 1);
@@ -709,7 +709,7 @@ nvc0_screen_create(struct nouveau_device *dev)
    BEGIN_NVC0(push, SUBC_2D(0x0888), 1);
    PUSH_DATA (push, 1);
    BEGIN_NVC0(push, NVC0_2D(COND_MODE), 1);
-   PUSH_DATA (push, NVC0_2D_COND_MODE_ALWAYS);
+   PUSH_DATA (push, NV50_2D_COND_MODE_ALWAYS);
 
    BEGIN_NVC0(push, SUBC_2D(NVC0_GRAPH_NOTIFY_ADDRESS_HIGH), 2);
    PUSH_DATAh(push, screen->fence.bo->offset + 16);
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c
index 728618f..b6666ca 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c
@@ -53,7 +53,7 @@ nvc0_colormask(unsigned mask)
 }
 
 #define NVC0_BLEND_FACTOR_CASE(a, b) \
-   case PIPE_BLENDFACTOR_##a: return NV50_3D_BLEND_FACTOR_##b
+   case PIPE_BLENDFACTOR_##a: return NV50_BLEND_FACTOR_##b
 
 static INLINE uint32_t
 nvc0_blend_fac(unsigned factor)
@@ -79,7 +79,7 @@ nvc0_blend_fac(unsigned factor)
    NVC0_BLEND_FACTOR_CASE(INV_SRC1_COLOR, ONE_MINUS_SRC1_COLOR);
    NVC0_BLEND_FACTOR_CASE(INV_SRC1_ALPHA, ONE_MINUS_SRC1_ALPHA);
    default:
-      return NV50_3D_BLEND_FACTOR_ZERO;
+      return NV50_BLEND_FACTOR_ZERO;
    }
 }
 
@@ -248,7 +248,7 @@ nvc0_rasterizer_state_create(struct pipe_context *pipe,
 
     }
 
-    SB_IMMED_3D(so, VP_POINT_SIZE_EN, cso->point_size_per_vertex);
+    SB_IMMED_3D(so, VP_POINT_SIZE, cso->point_size_per_vertex);
     if (!cso->point_size_per_vertex) {
        SB_BEGIN_3D(so, POINT_SIZE, 1);
        SB_DATA    (so, fui(cso->point_size));
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
index 980fd12..4130d36 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_surface.c
@@ -88,7 +88,7 @@ nvc0_2d_texture_set(struct nouveau_pushbuf *push, boolean dst,
    struct nouveau_bo *bo = mt->base.bo;
    uint32_t width, height, depth;
    uint32_t format;
-   uint32_t mthd = dst ? NVC0_2D_DST_FORMAT : NVC0_2D_SRC_FORMAT;
+   uint32_t mthd = dst ? NV50_2D_DST_FORMAT : NV50_2D_SRC_FORMAT;
    uint32_t offset = mt->level[level].offset;
 
    format = nvc0_2d_format(pformat, dst, dst_src_pformat_equal);
@@ -1214,10 +1214,10 @@ nvc0_blit_eng2d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
    boolean b;
 
    mode = nv50_blit_get_filter(info) ?
-      NVC0_2D_BLIT_CONTROL_FILTER_BILINEAR :
-      NVC0_2D_BLIT_CONTROL_FILTER_POINT_SAMPLE;
+      NV50_2D_BLIT_CONTROL_FILTER_BILINEAR :
+      NV50_2D_BLIT_CONTROL_FILTER_POINT_SAMPLE;
    mode |= (src->base.base.nr_samples > dst->base.base.nr_samples) ?
-      NVC0_2D_BLIT_CONTROL_ORIGIN_CORNER : NVC0_2D_BLIT_CONTROL_ORIGIN_CENTER;
+      NV50_2D_BLIT_CONTROL_ORIGIN_CORNER : NV50_2D_BLIT_CONTROL_ORIGIN_CENTER;
 
    du_dx = ((int64_t)info->src.box.width << 32) / info->dst.box.width;
    dv_dy = ((int64_t)info->src.box.height << 32) / info->dst.box.height;
@@ -1241,13 +1241,13 @@ nvc0_blit_eng2d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
    if (mask != 0xffffffff) {
       IMMED_NVC0(push, NVC0_2D(ROP), 0xca); /* DPSDxax */
       IMMED_NVC0(push, NVC0_2D(PATTERN_COLOR_FORMAT),
-                       NVC0_2D_PATTERN_COLOR_FORMAT_32BPP);
-      BEGIN_NVC0(push, NVC0_2D(PATTERN_COLOR(0)), 4);
+                       NV50_2D_PATTERN_COLOR_FORMAT_A8R8G8B8);
+      BEGIN_NVC0(push, NVC0_2D(PATTERN_BITMAP_COLOR(0)), 4);
       PUSH_DATA (push, 0x00000000);
       PUSH_DATA (push, mask);
       PUSH_DATA (push, 0xffffffff);
       PUSH_DATA (push, 0xffffffff);
-      IMMED_NVC0(push, NVC0_2D(OPERATION), NVC0_2D_OPERATION_ROP);
+      IMMED_NVC0(push, NVC0_2D(OPERATION), NV50_2D_OPERATION_ROP);
    } else
    if (info->src.format != info->dst.format) {
       if (info->src.format == PIPE_FORMAT_R8_UNORM ||
@@ -1259,13 +1259,13 @@ nvc0_blit_eng2d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
          mask = 0xffff0000; /* also makes condition for OPERATION reset true */
          BEGIN_NVC0(push, NVC0_2D(BETA4), 2);
          PUSH_DATA (push, mask);
-         PUSH_DATA (push, NVC0_2D_OPERATION_SRCCOPY_PREMULT);
+         PUSH_DATA (push, NV50_2D_OPERATION_SRCCOPY_PREMULT);
       } else
       if (info->src.format == PIPE_FORMAT_A8_UNORM) {
          mask = 0xff000000;
          BEGIN_NVC0(push, NVC0_2D(BETA4), 2);
          PUSH_DATA (push, mask);
-         PUSH_DATA (push, NVC0_2D_OPERATION_SRCCOPY_PREMULT);
+         PUSH_DATA (push, NV50_2D_OPERATION_SRCCOPY_PREMULT);
       }
    }
 
@@ -1361,9 +1361,9 @@ nvc0_blit_eng2d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
    if (info->scissor_enable)
       IMMED_NVC0(push, NVC0_2D(CLIP_ENABLE), 0);
    if (mask != 0xffffffff)
-      IMMED_NVC0(push, NVC0_2D(OPERATION), NVC0_2D_OPERATION_SRCCOPY);
+      IMMED_NVC0(push, NVC0_2D(OPERATION), NV50_2D_OPERATION_SRCCOPY);
    if (nvc0->cond_query && info->render_condition_enable)
-      IMMED_NVC0(push, NVC0_2D(COND_MODE), NVC0_2D_COND_MODE_ALWAYS);
+      IMMED_NVC0(push, NVC0_2D(COND_MODE), NV50_2D_COND_MODE_ALWAYS);
 }
 
 static void
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c b/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
index db6b603..457f27c 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
@@ -318,13 +318,13 @@ nve4_validate_tic(struct nvc0_context *nvc0, unsigned s)
          tic->id = nvc0_screen_tic_alloc(nvc0->screen, tic);
 
          PUSH_SPACE(push, 16);
-         BEGIN_NVC0(push, NVE4_P2MF(DST_ADDRESS_HIGH), 2);
+         BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_DST_ADDRESS_HIGH), 2);
          PUSH_DATAh(push, txc->offset + (tic->id * 32));
          PUSH_DATA (push, txc->offset + (tic->id * 32));
-         BEGIN_NVC0(push, NVE4_P2MF(LINE_LENGTH_IN), 2);
+         BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_LINE_LENGTH_IN), 2);
          PUSH_DATA (push, 32);
          PUSH_DATA (push, 1);
-         BEGIN_1IC0(push, NVE4_P2MF(EXEC), 9);
+         BEGIN_1IC0(push, NVE4_P2MF(UPLOAD_EXEC), 9);
          PUSH_DATA (push, 0x1001);
          PUSH_DATAp(push, &tic->tic[0], 8);
 
@@ -437,13 +437,13 @@ nve4_validate_tsc(struct nvc0_context *nvc0, int s)
          tsc->id = nvc0_screen_tsc_alloc(nvc0->screen, tsc);
 
          PUSH_SPACE(push, 16);
-         BEGIN_NVC0(push, NVE4_P2MF(DST_ADDRESS_HIGH), 2);
+         BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_DST_ADDRESS_HIGH), 2);
          PUSH_DATAh(push, txc->offset + 65536 + (tsc->id * 32));
          PUSH_DATA (push, txc->offset + 65536 + (tsc->id * 32));
-         BEGIN_NVC0(push, NVE4_P2MF(LINE_LENGTH_IN), 2);
+         BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_LINE_LENGTH_IN), 2);
          PUSH_DATA (push, 32);
          PUSH_DATA (push, 1);
-         BEGIN_1IC0(push, NVE4_P2MF(EXEC), 9);
+         BEGIN_1IC0(push, NVE4_P2MF(UPLOAD_EXEC), 9);
          PUSH_DATA (push, 0x1001);
          PUSH_DATAp(push, &tsc->tsc[0], 8);
 
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_transfer.c b/src/gallium/drivers/nouveau/nvc0/nvc0_transfer.c
index 82f1ffc..45c6f7c 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_transfer.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_transfer.c
@@ -243,14 +243,14 @@ nve4_p2mf_push_linear(struct nouveau_context *nv,
       nr = MIN2(count, nr - 8);
       nr = MIN2(nr, (NV04_PFIFO_MAX_PACKET_LEN - 1));
 
-      BEGIN_NVC0(push, NVE4_P2MF(DST_ADDRESS_HIGH), 2);
+      BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_DST_ADDRESS_HIGH), 2);
       PUSH_DATAh(push, dst->offset + offset);
       PUSH_DATA (push, dst->offset + offset);
-      BEGIN_NVC0(push, NVE4_P2MF(LINE_LENGTH_IN), 2);
+      BEGIN_NVC0(push, NVE4_P2MF(UPLOAD_LINE_LENGTH_IN), 2);
       PUSH_DATA (push, MIN2(size, nr * 4));
       PUSH_DATA (push, 1);
       /* must not be interrupted (trap on QUERY fence, 0x50 works however) */
-      BEGIN_1IC0(push, NVE4_P2MF(EXEC), nr + 1);
+      BEGIN_1IC0(push, NVE4_P2MF(UPLOAD_EXEC), nr + 1);
       PUSH_DATA (push, 0x1001);
       PUSH_DATAp(push, src, nr);
 
@@ -290,7 +290,7 @@ nvc0_m2mf_copy_linear(struct nouveau_context *nv,
       PUSH_DATA (push, bytes);
       PUSH_DATA (push, 1);
       BEGIN_NVC0(push, NVC0_M2MF(EXEC), 1);
-      PUSH_DATA (push, (1 << NVC0_M2MF_EXEC_INC__SHIFT) |
+      PUSH_DATA (push, NVC0_M2MF_EXEC_QUERY_SHORT |
                  NVC0_M2MF_EXEC_LINEAR_IN | NVC0_M2MF_EXEC_LINEAR_OUT);
 
       srcoff += bytes;
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_winsys.h b/src/gallium/drivers/nouveau/nvc0/nvc0_winsys.h
index a83b31d..725e889 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_winsys.h
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_winsys.h
@@ -60,13 +60,15 @@ PUSH_REFN(struct nouveau_pushbuf *push, struct nouveau_bo *bo, uint32_t flags)
 #define NVE4_P2MF(n) SUBC_P2MF(NVE4_P2MF_##n)
 
 #define SUBC_2D(m) 3, (m)
-#define NVC0_2D(n) SUBC_2D(NVC0_2D_##n)
+#define NVC0_2D(n) SUBC_2D(NV50_2D_##n)
 
 #define SUBC_COPY(m) 4, (m)
 #define NVE4_COPY(m) SUBC_COPY(NVE4_COPY_##n)
 
 #define SUBC_SW(m) 7, (m)
 
+#define NVC0_3D_SERIALIZE NV50_GRAPH_SERIALIZE
+
 static INLINE uint32_t
 NVC0_FIFO_PKHDR_SQ(int subc, int mthd, unsigned size)
 {
diff --git a/src/gallium/drivers/nouveau/nvc0/nve4_compute.xml.h b/src/gallium/drivers/nouveau/nvc0/nve4_compute.xml.h
index e971fc1..41e0cc2 100644
--- a/src/gallium/drivers/nouveau/nvc0/nve4_compute.xml.h
+++ b/src/gallium/drivers/nouveau/nvc0/nve4_compute.xml.h
@@ -4,19 +4,18 @@
 /* Autogenerated file, DO NOT EDIT manually!
 
 This file was generated by the rules-ng-ng headergen tool in this git repository:
-http://0x04.net/cgit/index.cgi/rules-ng-ng
-git clone git://0x04.net/rules-ng-ng
+http://github.com/envytools/envytools/
+git clone https://github.com/envytools/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- nve4_compute.xml (  10168 bytes, from 2013-06-04 13:57:02)
-- copyright.xml    (   6452 bytes, from 2012-04-16 22:51:01)
-- nvchipsets.xml   (   3954 bytes, from 2013-06-04 13:57:02)
-- nv_object.xml    (  14395 bytes, from 2013-06-04 13:57:02)
-- nv_defs.xml      (   4437 bytes, from 2012-04-16 22:51:01)
-- nv50_defs.xml    (  16877 bytes, from 2013-07-17 09:10:01)
-- nve4_p2mf.xml    (   2373 bytes, from 2013-06-04 13:57:02)
-
-Copyright (C) 2006-2013 by the following authors:
+- rnndb/graph/gk104_compute.xml (  10182 bytes, from 2014-09-25 06:32:11)
+- rnndb/copyright.xml           (   6456 bytes, from 2014-12-31 02:13:31)
+- rnndb/nvchipsets.xml          (   2759 bytes, from 2014-10-05 01:51:02)
+- rnndb/fifo/nv_object.xml      (  15326 bytes, from 2014-09-25 06:32:11)
+- rnndb/g80_defs.xml            (  18175 bytes, from 2014-09-25 06:32:11)
+- rnndb/graph/gk104_p2mf.xml    (   2376 bytes, from 2014-09-25 06:32:11)
+
+Copyright (C) 2006-2014 by the following authors:
 - Artur Huillet <arthur.huillet at free.fr> (ahuillet)
 - Ben Skeggs (darktama, darktama_)
 - B. R. <koala_br at users.sourceforge.net> (koala_br)
@@ -28,7 +27,7 @@ Copyright (C) 2006-2013 by the following authors:
 - EdB <edb_ at users.sf.net> (edb_)
 - Erik Waling <erikwailing at users.sf.net> (erikwaling)
 - Francisco Jerez <currojerez at riseup.net> (curro)
-- imirkin <imirkin at users.sf.net> (imirkin)
+- Ilia Mirkin <imirkin at alum.mit.edu> (imirkin)
 - jb17bsome <jb17bsome at bellsouth.net> (jb17bsome)
 - Jeremy Kolb <kjeremy at users.sf.net> (kjeremy)
 - Laurent Carlier <lordheavym at gmail.com> (lordheavy)
@@ -106,7 +105,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_UPLOAD_DST_Y				0x000001ac
 
 #define NVE4_COMPUTE_UPLOAD_EXEC				0x000001b0
-#define NVE4_COMPUTE_UPLOAD_EXEC_LINEAR				0x00000001
+#define NVE4_COMPUTE_UPLOAD_EXEC_LINEAR			0x00000001
 #define NVE4_COMPUTE_UPLOAD_EXEC_UNK1__MASK			0x0000007e
 #define NVE4_COMPUTE_UPLOAD_EXEC_UNK1__SHIFT			1
 #define NVE4_COMPUTE_UPLOAD_EXEC_BUF_NOTIFY			0x00000300
@@ -142,9 +141,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_UNK244_TIC_FLUSH				0x00000244
 
 #define NVE4_COMPUTE_UNK0248					0x00000248
-#define NVE4_COMPUTE_UNK0248_UNK0__MASK				0x0000003f
+#define NVE4_COMPUTE_UNK0248_UNK0__MASK			0x0000003f
 #define NVE4_COMPUTE_UNK0248_UNK0__SHIFT			0
-#define NVE4_COMPUTE_UNK0248_UNK8__MASK				0x00ffff00
+#define NVE4_COMPUTE_UNK0248_UNK8__MASK			0x00ffff00
 #define NVE4_COMPUTE_UNK0248_UNK8__SHIFT			8
 
 #define NVE4_COMPUTE_UNK0274					0x00000274
@@ -186,7 +185,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_FIRMWARE__ESIZE				0x00000004
 #define NVE4_COMPUTE_FIRMWARE__LEN				0x00000020
 
-#define NVE4_COMPUTE_LOCAL_BASE					0x0000077c
+#define NVE4_COMPUTE_LOCAL_BASE				0x0000077c
 
 #define NVE4_COMPUTE_TEMP_ADDRESS_HIGH				0x00000790
 
@@ -207,19 +206,19 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_UNK1288_TIC_FLUSH				0x00001288
 
 #define NVE4_COMPUTE_TSC_FLUSH					0x00001330
-#define NVE4_COMPUTE_TSC_FLUSH_SPECIFIC				0x00000001
+#define NVE4_COMPUTE_TSC_FLUSH_SPECIFIC			0x00000001
 #define NVE4_COMPUTE_TSC_FLUSH_ENTRY__MASK			0x03fffff0
 #define NVE4_COMPUTE_TSC_FLUSH_ENTRY__SHIFT			4
 
 #define NVE4_COMPUTE_TIC_FLUSH					0x00001334
-#define NVE4_COMPUTE_TIC_FLUSH_SPECIFIC				0x00000001
+#define NVE4_COMPUTE_TIC_FLUSH_SPECIFIC			0x00000001
 #define NVE4_COMPUTE_TIC_FLUSH_ENTRY__MASK			0x03fffff0
 #define NVE4_COMPUTE_TIC_FLUSH_ENTRY__SHIFT			4
 
 #define NVE4_COMPUTE_TEX_CACHE_CTL				0x00001338
-#define NVE4_COMPUTE_TEX_CACHE_CTL_UNK0				0x00000001
+#define NVE4_COMPUTE_TEX_CACHE_CTL_UNK0			0x00000001
 #define NVE4_COMPUTE_TEX_CACHE_CTL_ENTRY__MASK			0x03fffff0
-#define NVE4_COMPUTE_TEX_CACHE_CTL_ENTRY__SHIFT			4
+#define NVE4_COMPUTE_TEX_CACHE_CTL_ENTRY__SHIFT		4
 
 #define NVE4_COMPUTE_UNK1424_TSC_FLUSH				0x00001424
 
@@ -253,7 +252,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_UNK1690					0x00001690
 
 #define NVE4_COMPUTE_FLUSH					0x00001698
-#define NVE4_COMPUTE_FLUSH_CODE					0x00000001
+#define NVE4_COMPUTE_FLUSH_CODE				0x00000001
 #define NVE4_COMPUTE_FLUSH_GLOBAL				0x00000010
 #define NVE4_COMPUTE_FLUSH_CB					0x00001000
 
@@ -265,7 +264,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_UNK1A2C__ESIZE				0x00000004
 #define NVE4_COMPUTE_UNK1A2C__LEN				0x00000005
 
-#define NVE4_COMPUTE_QUERY_ADDRESS_HIGH				0x00001b00
+#define NVE4_COMPUTE_QUERY_ADDRESS_HIGH			0x00001b00
 
 #define NVE4_COMPUTE_QUERY_ADDRESS_LOW				0x00001b04
 
@@ -287,7 +286,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_MP_PM_SET__ESIZE				0x00000004
 #define NVE4_COMPUTE_MP_PM_SET__LEN				0x00000008
 
-#define NVE4_COMPUTE_MP_PM_A_SIGSEL(i0)			       (0x0000337c + 0x4*(i0))
+#define NVE4_COMPUTE_MP_PM_A_SIGSEL(i0)		       (0x0000337c + 0x4*(i0))
 #define NVE4_COMPUTE_MP_PM_A_SIGSEL__ESIZE			0x00000004
 #define NVE4_COMPUTE_MP_PM_A_SIGSEL__LEN			0x00000004
 #define NVE4_COMPUTE_MP_PM_A_SIGSEL_NONE			0x00000000
@@ -298,15 +297,15 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_MP_PM_A_SIGSEL_LDST			0x0000001b
 #define NVE4_COMPUTE_MP_PM_A_SIGSEL_BRANCH			0x0000001c
 
-#define NVE4_COMPUTE_MP_PM_B_SIGSEL(i0)			       (0x0000338c + 0x4*(i0))
+#define NVE4_COMPUTE_MP_PM_B_SIGSEL(i0)		       (0x0000338c + 0x4*(i0))
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL__ESIZE			0x00000004
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL__LEN			0x00000004
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL_NONE			0x00000000
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL_WARP			0x00000002
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL_REPLAY			0x00000008
-#define NVE4_COMPUTE_MP_PM_B_SIGSEL_TRANSACTION			0x0000000e
+#define NVE4_COMPUTE_MP_PM_B_SIGSEL_TRANSACTION		0x0000000e
 #define NVE4_COMPUTE_MP_PM_B_SIGSEL_L1				0x00000010
-#define NVE4_COMPUTE_MP_PM_B_SIGSEL_MEM				0x00000011
+#define NVE4_COMPUTE_MP_PM_B_SIGSEL_MEM			0x00000011
 
 #define NVE4_COMPUTE_MP_PM_SRCSEL(i0)			       (0x0000339c + 0x4*(i0))
 #define NVE4_COMPUTE_MP_PM_SRCSEL__ESIZE			0x00000004
@@ -343,7 +342,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_MP_PM_FUNC_MODE__SHIFT			0
 #define NVE4_COMPUTE_MP_PM_FUNC_MODE_LOGOP			0x00000000
 #define NVE4_COMPUTE_MP_PM_FUNC_MODE_LOGOP_PULSE		0x00000001
-#define NVE4_COMPUTE_MP_PM_FUNC_MODE_B6				0x00000002
+#define NVE4_COMPUTE_MP_PM_FUNC_MODE_B6			0x00000002
 #define NVE4_COMPUTE_MP_PM_FUNC_MODE_UNK3			0x00000003
 #define NVE4_COMPUTE_MP_PM_FUNC_MODE_LOGOP_B6			0x00000004
 #define NVE4_COMPUTE_MP_PM_FUNC_MODE_LOGOP_B6_PULSE		0x00000005
@@ -357,7 +356,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVE4_COMPUTE_LAUNCH_DESC__SIZE				0x00000100
 #define NVE4_COMPUTE_LAUNCH_DESC_6				0x00000018
-#define NVE4_COMPUTE_LAUNCH_DESC_6_NOTIFY__MASK			0x00000c00
+#define NVE4_COMPUTE_LAUNCH_DESC_6_NOTIFY__MASK		0x00000c00
 #define NVE4_COMPUTE_LAUNCH_DESC_6_NOTIFY__SHIFT		10
 
 #define NVE4_COMPUTE_LAUNCH_DESC_PROG_START			0x00000020
@@ -374,7 +373,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 #define NVE4_COMPUTE_LAUNCH_DESC_17				0x00000044
 #define NVE4_COMPUTE_LAUNCH_DESC_17_SHARED_ALLOC__MASK		0x0000ffff
-#define NVE4_COMPUTE_LAUNCH_DESC_17_SHARED_ALLOC__SHIFT		0
+#define NVE4_COMPUTE_LAUNCH_DESC_17_SHARED_ALLOC__SHIFT	0
 
 #define NVE4_COMPUTE_LAUNCH_DESC_18				0x00000048
 #define NVE4_COMPUTE_LAUNCH_DESC_18_BLOCKDIM_X__MASK		0xffff0000
@@ -406,13 +405,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #define NVE4_COMPUTE_LAUNCH_DESC_CB_CONFIG_1__LEN		0x00000008
 #define NVE4_COMPUTE_LAUNCH_DESC_CB_CONFIG_1_ADDRESS_HIGH__MASK	0x000000ff
 #define NVE4_COMPUTE_LAUNCH_DESC_CB_CONFIG_1_ADDRESS_HIGH__SHIFT	0
-#define NVE4_COMPUTE_LAUNCH_DESC_CB_CONFIG_1_SIZE__MASK		0xffff8000
+#define NVE4_COMPUTE_LAUNCH_DESC_CB_CONFIG_1_SIZE__MASK	0xffff8000
 #define NVE4_COMPUTE_LAUNCH_DESC_CB_CONFIG_1_SIZE__SHIFT	15
 
 #define NVE4_COMPUTE_LAUNCH_DESC_45				0x000000b4
 #define NVE4_COMPUTE_LAUNCH_DESC_45_LOCAL_POS_ALLOC__MASK	0x000fffff
 #define NVE4_COMPUTE_LAUNCH_DESC_45_LOCAL_POS_ALLOC__SHIFT	0
-#define NVE4_COMPUTE_LAUNCH_DESC_45_BARRIER_ALLOC__MASK		0xf8000000
+#define NVE4_COMPUTE_LAUNCH_DESC_45_BARRIER_ALLOC__MASK	0xf8000000
 #define NVE4_COMPUTE_LAUNCH_DESC_45_BARRIER_ALLOC__SHIFT	27
 
 #define NVE4_COMPUTE_LAUNCH_DESC_46				0x000000b8
diff --git a/src/gallium/drivers/nouveau/nvc0/nve4_p2mf.xml.h b/src/gallium/drivers/nouveau/nvc0/nve4_p2mf.xml.h
index 68a742f..3852ab8 100644
--- a/src/gallium/drivers/nouveau/nvc0/nve4_p2mf.xml.h
+++ b/src/gallium/drivers/nouveau/nvc0/nve4_p2mf.xml.h
@@ -1,21 +1,23 @@
-#ifndef RNNDB_NVE4_P2MF_XML
-#define RNNDB_NVE4_P2MF_XML
+#ifndef NVE4_P2MF_XML
+#define NVE4_P2MF_XML
 
 /* Autogenerated file, DO NOT EDIT manually!
 
 This file was generated by the rules-ng-ng headergen tool in this git repository:
-http://0x04.net/cgit/index.cgi/rules-ng-ng
-git clone git://0x04.net/rules-ng-ng
+http://github.com/envytools/envytools/
+git clone https://github.com/envytools/envytools.git
 
 The rules-ng-ng source files this header was generated from are:
-- rnndb/nve4_p2mf.xml    (   1400 bytes, from 2012-04-14 21:29:11)
-- ./rnndb/copyright.xml  (   6452 bytes, from 2011-08-11 18:25:12)
-- ./rnndb/nv_object.xml  (  12736 bytes, from 2012-04-14 21:30:24)
-- ./rnndb/nvchipsets.xml (   3701 bytes, from 2012-03-22 20:40:59)
-- ./rnndb/nv_defs.xml    (   4437 bytes, from 2011-08-11 18:25:12)
-- ./rnndb/nv50_defs.xml  (   5468 bytes, from 2011-08-11 18:25:12)
-
-Copyright (C) 2006-2012 by the following authors:
+- rnndb/graph/gf100_3d.xml   (  60037 bytes, from 2014-12-31 02:40:43)
+- rnndb/copyright.xml        (   6456 bytes, from 2014-12-31 02:13:31)
+- rnndb/nv_defs.xml          (   4399 bytes, from 2013-09-07 03:32:45)
+- rnndb/graph/nv_3ddefs.xml  (  16390 bytes, from 2014-09-25 06:32:11)
+- rnndb/fifo/nv_object.xml   (  15326 bytes, from 2014-09-25 06:32:11)
+- rnndb/nvchipsets.xml       (   2759 bytes, from 2014-10-05 01:51:02)
+- rnndb/g80_defs.xml         (  18175 bytes, from 2014-09-25 06:32:11)
+- rnndb/graph/gk104_p2mf.xml (   2376 bytes, from 2014-09-25 06:32:11)
+
+Copyright (C) 2006-2014 by the following authors:
 - Artur Huillet <arthur.huillet at free.fr> (ahuillet)
 - Ben Skeggs (darktama, darktama_)
 - B. R. <koala_br at users.sourceforge.net> (koala_br)
@@ -27,7 +29,7 @@ Copyright (C) 2006-2012 by the following authors:
 - EdB <edb_ at users.sf.net> (edb_)
 - Erik Waling <erikwailing at users.sf.net> (erikwaling)
 - Francisco Jerez <currojerez at riseup.net> (curro)
-- imirkin <imirkin at users.sf.net> (imirkin)
+- Ilia Mirkin <imirkin at alum.mit.edu> (imirkin)
 - jb17bsome <jb17bsome at bellsouth.net> (jb17bsome)
 - Jeremy Kolb <kjeremy at users.sf.net> (kjeremy)
 - Laurent Carlier <lordheavym at gmail.com> (lordheavy)
@@ -75,33 +77,75 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
 
 
-#define NVE4_P2MF_LINE_LENGTH_IN				0x00000180
 
-#define NVE4_P2MF_LINE_COUNT					0x00000184
+#define NVE4_P2MF_UNK0144					0x00000144
 
-#define NVE4_P2MF_DST_ADDRESS_HIGH				0x00000188
+#define NVE4_P2MF_UPLOAD					0x00000000
 
-#define NVE4_P2MF_DST_ADDRESS_LOW				0x0000018c
+#define NVE4_P2MF_UPLOAD_LINE_LENGTH_IN			0x00000180
 
-#define NVE4_P2MF_DST_TILE_MODE					0x00000194
+#define NVE4_P2MF_UPLOAD_LINE_COUNT				0x00000184
 
-#define NVE4_P2MF_DST_PITCH					0x00000198
+#define NVE4_P2MF_UPLOAD_DST_ADDRESS_HIGH			0x00000188
 
-#define NVE4_P2MF_DST_HEIGHT					0x0000019c
+#define NVE4_P2MF_UPLOAD_DST_ADDRESS_LOW			0x0000018c
 
-#define NVE4_P2MF_DST_DEPTH					0x000001a0
+#define NVE4_P2MF_UPLOAD_DST_PITCH				0x00000190
 
-#define NVE4_P2MF_DST_Z						0x000001a4
+#define NVE4_P2MF_UPLOAD_DST_TILE_MODE				0x00000194
 
-#define NVE4_P2MF_DST_X						0x000001a8
+#define NVE4_P2MF_UPLOAD_DST_WIDTH				0x00000198
 
-#define NVE4_P2MF_DST_Y						0x000001ac
+#define NVE4_P2MF_UPLOAD_DST_HEIGHT				0x0000019c
 
-#define NVE4_P2MF_EXEC						0x000001b0
-#define NVE4_P2MF_EXEC_LINEAR					0x00000001
-#define NVE4_P2MF_EXEC_UNK12					0x00001000
+#define NVE4_P2MF_UPLOAD_DST_DEPTH				0x000001a0
 
-#define NVE4_P2MF_DATA						0x000001b4
+#define NVE4_P2MF_UPLOAD_DST_Z					0x000001a4
 
+#define NVE4_P2MF_UPLOAD_DST_X					0x000001a8
 
-#endif /* RNNDB_NVE4_P2MF_XML */
+#define NVE4_P2MF_UPLOAD_DST_Y					0x000001ac
+
+#define NVE4_P2MF_UPLOAD_EXEC					0x000001b0
+#define NVE4_P2MF_UPLOAD_EXEC_LINEAR				0x00000001
+#define NVE4_P2MF_UPLOAD_EXEC_UNK1__MASK			0x0000007e
+#define NVE4_P2MF_UPLOAD_EXEC_UNK1__SHIFT			1
+#define NVE4_P2MF_UPLOAD_EXEC_BUF_NOTIFY			0x00000300
+#define NVE4_P2MF_UPLOAD_EXEC_UNK12__MASK			0x0000f000
+#define NVE4_P2MF_UPLOAD_EXEC_UNK12__SHIFT			12
+
+#define NVE4_P2MF_UPLOAD_DATA					0x000001b4
+
+#define NVE4_P2MF_UPLOAD_QUERY_ADDRESS_HIGH			0x000001dc
+
+#define NVE4_P2MF_UPLOAD_QUERY_ADDRESS_LOW			0x000001e0
+
+#define NVE4_P2MF_UPLOAD_QUERY_SEQUENCE			0x000001e4
+
+#define NVE4_P2MF_UPLOAD_UNK01F0				0x000001f0
+
+#define NVE4_P2MF_UPLOAD_UNK01F4				0x000001f4
+
+#define NVE4_P2MF_UPLOAD_UNK01F8				0x000001f8
+
+#define NVE4_P2MF_UPLOAD_UNK01FC				0x000001fc
+
+#define NVE4_P2MF_FIRMWARE(i0)				       (0x00000200 + 0x4*(i0))
+#define NVE4_P2MF_FIRMWARE__ESIZE				0x00000004
+#define NVE4_P2MF_FIRMWARE__LEN				0x00000020
+
+#define NVE4_P2MF_COND_ADDRESS_HIGH				0x00001550
+
+#define NVE4_P2MF_COND_ADDRESS_LOW				0x00001554
+
+#define NVE4_P2MF_COND_MODE					0x00001558
+#define NVE4_P2MF_COND_MODE_NEVER				0x00000000
+#define NVE4_P2MF_COND_MODE_ALWAYS				0x00000001
+#define NVE4_P2MF_COND_MODE_RES_NON_ZERO			0x00000002
+#define NVE4_P2MF_COND_MODE_EQUAL				0x00000003
+#define NVE4_P2MF_COND_MODE_NOT_EQUAL				0x00000004
+
+#define NVE4_P2MF_UNK1944					0x00001944
+
+
+#endif /* NVE4_P2MF_XML */
-- 
2.0.5



More information about the Nouveau mailing list