[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

libdrm: Changes to 'ubuntu'



 debian/changelog                                                     |   60 
 debian/control                                                       |    4 
 debian/copyright                                                     |   46 
 debian/libdrm-nouveau1.symbols                                       |    1 
 debian/libdrm-radeon1.symbols                                        |   37 
 debian/patches/02_fix_kms_detection_with_linux_backport_modules.diff |   33 
 debian/patches/03_update_nouveau_defines_1.diff                      | 1620 ++++
 debian/patches/04_update_nouveau_defines_2.diff                      | 4032 ++++++++++
 debian/patches/05_update_nouveau_defines_3.diff                      |  117 
 debian/patches/06_nouveau_free_objects_on_channel_close.diff         |   78 
 debian/patches/07_nouveau_fix_mem_leak_on_channel_free.diff          |   28 
 debian/patches/08_nouveau_no_flush_notify_on_channel_free.diff       |   22 
 debian/patches/series                                                |    7 
 debian/rules                                                         |   16 
 14 files changed, 6066 insertions(+), 35 deletions(-)

New commits:
commit 61adb70b692f3746c7386c93bb39dd87e3667d27
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date:   Mon Feb 1 14:38:30 2010 +1100

    Update libdrm-nouveau1.symbols for new symbol added in 06_nouveau_free_objects_on_channel_close.

diff --git a/debian/changelog b/debian/changelog
index d5375a3..bf5d8e6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -23,6 +23,8 @@ libdrm (2.4.17-1ubuntu1) UNRELEASED; urgency=low
   * debian/patches/07_nouveau_fix_mem_leak_on_channel_free.diff:
     + Patches taken from git.  Fix a couple of memory leaks when freeing
       channels
+  * debian/libdrm-nouveau1.symbols:
+    + Add new symbol added in 06_nouveau_free_objects_on_channel_close.
   * debian/patches/08_nouveau_no_flush_notify_on_channel_free.diff:
     + Patch taken from git.  Avoid calling flush_notify when part of the 
       channel's context might be freed.
diff --git a/debian/libdrm-nouveau1.symbols b/debian/libdrm-nouveau1.symbols
index 58eab28..538e61e 100644
--- a/debian/libdrm-nouveau1.symbols
+++ b/debian/libdrm-nouveau1.symbols
@@ -48,6 +48,7 @@ libdrm_nouveau.so.1 libdrm-nouveau1 #MINVER#
  nouveau_notifier_status@Base 2.4.4
  nouveau_notifier_wait_status@Base 2.4.4
  nouveau_pushbuf_emit_reloc@Base 2.4.4
+ nouveau_pushbuf_fini@Base 2.4.17-1ubuntu1~
  nouveau_pushbuf_flush@Base 2.4.4
  nouveau_pushbuf_init@Base 2.4.4
  nouveau_pushbuf_marker_emit@Base 2.4.16

commit 0aeb2401c69f7c755e21d1e2ff75c7734c3ab719
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date:   Mon Feb 1 13:54:57 2010 +1100

    libdrm-nouveau: Pull some memory-leak fixes from git

diff --git a/debian/changelog b/debian/changelog
index 6905713..d5375a3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -17,8 +17,16 @@ libdrm (2.4.17-1ubuntu1) UNRELEASED; urgency=low
   * debian/patches/03_update_nouveau_defines_1.diff:
   * debian/patches/04_update_nouveau_defines_2.diff:
   * debian/patches/05_update_nouveau_defines_3.diff:
-    + Update #defines in nouveau headers to make allow recent DDXs to build.
-
+    + Patches taken from git.  Update #defines in nouveau headers to make allow
+      recent DDXs to build.
+  * debian/patches/06_nouveau_free_objects_on_channel_close.diff:
+  * debian/patches/07_nouveau_fix_mem_leak_on_channel_free.diff:
+    + Patches taken from git.  Fix a couple of memory leaks when freeing
+      channels
+  * debian/patches/08_nouveau_no_flush_notify_on_channel_free.diff:
+    + Patch taken from git.  Avoid calling flush_notify when part of the 
+      channel's context might be freed.
+  
  -- Christopher James Halse Rogers <raof@ubuntu.com>  Mon, 01 Feb 2010 12:50:59 +1100
 
 libdrm (2.4.17-1) unstable; urgency=low
diff --git a/debian/patches/06_nouveau_free_objects_on_channel_close.diff b/debian/patches/06_nouveau_free_objects_on_channel_close.diff
new file mode 100644
index 0000000..3b847e7
--- /dev/null
+++ b/debian/patches/06_nouveau_free_objects_on_channel_close.diff
@@ -0,0 +1,78 @@
+commit cd2e4ba9aac65d10cf790990a8b86feed1cdd774
+Author: Younes Manton <younes.m@gmail.com>
+Date:   Mon Dec 28 18:00:09 2009 -0500
+
+    nouveau: Unreference pushbuf objects on channel destruction.
+    
+    - unreference pushbuf objects on channel destruction
+    
+    Based on Krzysztof Smiechowicz's patch.
+
+diff --git a/nouveau/nouveau_channel.c b/nouveau/nouveau_channel.c
+index 674c5c3..638aee3 100644
+--- a/nouveau/nouveau_channel.c
++++ b/nouveau/nouveau_channel.c
+@@ -111,6 +111,7 @@ nouveau_channel_free(struct nouveau_channel **chan)
+ 
+ 	FIRE_RING(&nvchan->base);
+ 
++	nouveau_pushbuf_fini(&nvchan->base);
+ 	nouveau_bo_unmap(nvchan->notifier_bo);
+ 	nouveau_bo_ref(NULL, &nvchan->notifier_bo);
+ 
+diff --git a/nouveau/nouveau_private.h b/nouveau/nouveau_private.h
+index 784afc9..39758d1 100644
+--- a/nouveau/nouveau_private.h
++++ b/nouveau/nouveau_private.h
+@@ -64,6 +64,8 @@ struct nouveau_pushbuf_priv {
+ 
+ int
+ nouveau_pushbuf_init(struct nouveau_channel *);
++void
++nouveau_pushbuf_fini(struct nouveau_channel *);
+ 
+ struct nouveau_channel_priv {
+ 	struct nouveau_channel base;
+diff --git a/nouveau/nouveau_pushbuf.c b/nouveau/nouveau_pushbuf.c
+index b90e923..7da3a47 100644
+--- a/nouveau/nouveau_pushbuf.c
++++ b/nouveau/nouveau_pushbuf.c
+@@ -80,13 +80,13 @@ nouveau_pushbuf_space(struct nouveau_channel *chan, unsigned min)
+ 		nvpb->pushbuf = NULL;
+ 	}
+ 
+-	nvpb->size = min < PB_MIN_USER_DWORDS ? PB_MIN_USER_DWORDS : min;	
++	nvpb->size = min < PB_MIN_USER_DWORDS ? PB_MIN_USER_DWORDS : min;
+ 	nvpb->pushbuf = malloc(sizeof(uint32_t) * nvpb->size);
+ 
+ 	nvpb->base.channel = chan;
+ 	nvpb->base.remaining = nvpb->size;
+ 	nvpb->base.cur = nvpb->pushbuf;
+-	
++
+ 	return 0;
+ }
+ 
+@@ -165,11 +165,21 @@ nouveau_pushbuf_init(struct nouveau_channel *chan)
+ 			       sizeof(struct drm_nouveau_gem_pushbuf_bo));
+ 	nvpb->relocs = calloc(NOUVEAU_GEM_MAX_RELOCS,
+ 			      sizeof(struct drm_nouveau_gem_pushbuf_reloc));
+-	
++
+ 	chan->pushbuf = &nvpb->base;
+ 	return 0;
+ }
+ 
++void
++nouveau_pushbuf_fini(struct nouveau_channel *chan)
++{
++	struct nouveau_channel_priv *nvchan = nouveau_channel(chan);
++	struct nouveau_pushbuf_priv *nvpb = &nvchan->pb;
++	nouveau_pushbuf_fini_call(chan);
++	free(nvpb->buffers);
++	free(nvpb->relocs);
++}
++
+ int
+ nouveau_pushbuf_flush(struct nouveau_channel *chan, unsigned min)
+ {
diff --git a/debian/patches/07_nouveau_fix_mem_leak_on_channel_free.diff b/debian/patches/07_nouveau_fix_mem_leak_on_channel_free.diff
new file mode 100644
index 0000000..1f7dd1e
--- /dev/null
+++ b/debian/patches/07_nouveau_fix_mem_leak_on_channel_free.diff
@@ -0,0 +1,28 @@
+commit a03dcc21040775e660afcfc3dc37a324d2dd2ed3
+Author: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date:   Tue Jan 12 15:32:39 2010 +0100
+
+    nouveau: fix memory leak in nouveau_channel_free
+
+diff --git a/nouveau/nouveau_channel.c b/nouveau/nouveau_channel.c
+index 638aee3..14cf4c6 100644
+--- a/nouveau/nouveau_channel.c
++++ b/nouveau/nouveau_channel.c
+@@ -102,6 +102,7 @@ nouveau_channel_free(struct nouveau_channel **chan)
+ 	struct nouveau_channel_priv *nvchan;
+ 	struct nouveau_device_priv *nvdev;
+ 	struct drm_nouveau_channel_free cf;
++	int i;
+ 
+ 	if (!chan || !*chan)
+ 		return;
+@@ -115,6 +116,9 @@ nouveau_channel_free(struct nouveau_channel **chan)
+ 	nouveau_bo_unmap(nvchan->notifier_bo);
+ 	nouveau_bo_ref(NULL, &nvchan->notifier_bo);
+ 
++	for (i = 0; i < nvchan->drm.nr_subchan; i++)
++		free(nvchan->base.subc[i].gr);
++
+ 	nouveau_grobj_free(&nvchan->base.vram);
+ 	nouveau_grobj_free(&nvchan->base.gart);
+ 	nouveau_grobj_free(&nvchan->base.nullobj);
diff --git a/debian/patches/08_nouveau_no_flush_notify_on_channel_free.diff b/debian/patches/08_nouveau_no_flush_notify_on_channel_free.diff
new file mode 100644
index 0000000..0193c24
--- /dev/null
+++ b/debian/patches/08_nouveau_no_flush_notify_on_channel_free.diff
@@ -0,0 +1,22 @@
+commit 3d3d87f3a70089f645facb2bff5a0b93ec0a0efd
+Author: Marcin Slusarz <marcin.slusarz@gmail.com>
+Date:   Tue Jan 12 15:38:29 2010 +0100
+
+    nouveau: disable flush_notify on channel_free
+    
+    We don't want do call flush_notify when we will FIRE the RING
+    a couple of lines later, because grobj bound to this channel
+    might be already freed.
+
+diff --git a/nouveau/nouveau_channel.c b/nouveau/nouveau_channel.c
+index 14cf4c6..01d6681 100644
+--- a/nouveau/nouveau_channel.c
++++ b/nouveau/nouveau_channel.c
+@@ -107,6 +107,7 @@ nouveau_channel_free(struct nouveau_channel **chan)
+ 	if (!chan || !*chan)
+ 		return;
+ 	nvchan = nouveau_channel(*chan);
++	(*chan)->flush_notify = NULL;
+ 	*chan = NULL;
+ 	nvdev = nouveau_device(nvchan->base.device);
+ 
diff --git a/debian/patches/series b/debian/patches/series
index b9bccd1..4950390 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,6 @@
 03_update_nouveau_defines_1.diff
 04_update_nouveau_defines_2.diff
 05_update_nouveau_defines_3.diff
+06_nouveau_free_objects_on_channel_close.diff
+07_nouveau_fix_mem_leak_on_channel_free.diff
+08_nouveau_no_flush_notify_on_channel_free.diff

commit a1fab2b3ac2e4455a0e6d8363fbb3919a3b207b3
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date:   Mon Feb 1 13:21:01 2010 +1100

    Backport a series of patches from libdrm git updating the #define names for nouveau, so recent DDXs can build

diff --git a/debian/changelog b/debian/changelog
index 1132fe5..6905713 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -14,6 +14,10 @@ libdrm (2.4.17-1ubuntu1) UNRELEASED; urgency=low
       /sys/.../drm/.  linux-backport-modules-nouveau has the drm module renamed
       to lbm_drm to avoid conflicts with other modules' drm.  This fixes
       drmCheckModesettingAvailable when using linux-backports-modules-nouveau.
+  * debian/patches/03_update_nouveau_defines_1.diff:
+  * debian/patches/04_update_nouveau_defines_2.diff:
+  * debian/patches/05_update_nouveau_defines_3.diff:
+    + Update #defines in nouveau headers to make allow recent DDXs to build.
 
  -- Christopher James Halse Rogers <raof@ubuntu.com>  Mon, 01 Feb 2010 12:50:59 +1100
 
diff --git a/debian/patches/03_update_nouveau_defines_1.diff b/debian/patches/03_update_nouveau_defines_1.diff
new file mode 100644
index 0000000..6648590
--- /dev/null
+++ b/debian/patches/03_update_nouveau_defines_1.diff
@@ -0,0 +1,1620 @@
+commit 5fd00ddc9f35ac99c93a40d34a5d5019b91e8750
+Author: Marcin Kościelnicki <koriakin@0x04.net>
+Date:   Tue Nov 24 17:23:54 2009 +0000
+
+    nouveau: Update nouveau_class.h with new renouveau.xml definitions.
+    
+    Signed-off-by: Francisco Jerez <currojerez@riseup.net>
+
+diff --git a/nouveau/nouveau_class.h b/nouveau/nouveau_class.h
+index 0b8a6f0..4342d5f 100644
+--- a/nouveau/nouveau_class.h
++++ b/nouveau/nouveau_class.h
+@@ -610,9 +610,9 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define  NV04_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT					0x00000320
+ #define  NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT						0x00000324
+ #define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_SHIFT				0
+-#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_MASK				0x0000000f
++#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_MASK				0x000000ff
+ #define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_SHIFT				8
+-#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_MASK				0x00000f00
++#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_MASK				0x0000ff00
+ #define  NV04_MEMORY_TO_MEMORY_FORMAT_BUF_NOTIFY					0x00000328
+ 
+ 
+@@ -915,36 +915,36 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_MASK			0x000000ff
+ #define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_SHIFT			8
+ #define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_MASK			0xffffff00
+-#define  NV03_DX3_TEXTURED_TRIANGLE_SPECULAR(x)						(0x00001000+((x)*32))
+-#define  NV03_DX3_TEXTURED_TRIANGLE_SPECULAR__SIZE					0x00000040
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I0_SHIFT					0
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I0_MASK					0x0000000f
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I1_SHIFT					4
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I1_MASK					0x000000f0
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I2_SHIFT					8
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I2_MASK					0x00000f00
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I3_SHIFT					12
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I3_MASK					0x0000f000
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I4_SHIFT					16
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I4_MASK					0x000f0000
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I5_SHIFT					20
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I5_MASK					0x00f00000
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_FOG_SHIFT					24
+-#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_FOG_MASK					0xff000000
+-#define  NV03_DX3_TEXTURED_TRIANGLE_COLOR(x)						(0x00001004+((x)*32))
+-#define  NV03_DX3_TEXTURED_TRIANGLE_COLOR__SIZE						0x00000040
+-#define  NV03_DX3_TEXTURED_TRIANGLE_X(x)						(0x00001008+((x)*32))
+-#define  NV03_DX3_TEXTURED_TRIANGLE_X__SIZE						0x00000040
+-#define  NV03_DX3_TEXTURED_TRIANGLE_Y(x)						(0x0000100c+((x)*32))
+-#define  NV03_DX3_TEXTURED_TRIANGLE_Y__SIZE						0x00000040
+-#define  NV03_DX3_TEXTURED_TRIANGLE_Z(x)						(0x00001010+((x)*32))
+-#define  NV03_DX3_TEXTURED_TRIANGLE_Z__SIZE						0x00000040
+-#define  NV03_DX3_TEXTURED_TRIANGLE_M(x)						(0x00001014+((x)*32))
+-#define  NV03_DX3_TEXTURED_TRIANGLE_M__SIZE						0x00000040
+-#define  NV03_DX3_TEXTURED_TRIANGLE_U(x)						(0x00001018+((x)*32))
+-#define  NV03_DX3_TEXTURED_TRIANGLE_U__SIZE						0x00000040
+-#define  NV03_DX3_TEXTURED_TRIANGLE_V(x)						(0x0000101c+((x)*32))
+-#define  NV03_DX3_TEXTURED_TRIANGLE_V__SIZE						0x00000040
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(x)				(0x00001000+((x)*32))
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR__SIZE				0x00000080
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I0_SHIFT				0
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I0_MASK				0x0000000f
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I1_SHIFT				4
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I1_MASK				0x000000f0
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I2_SHIFT				8
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I2_MASK				0x00000f00
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I3_SHIFT				12
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I3_MASK				0x0000f000
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I4_SHIFT				16
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I4_MASK				0x000f0000
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I5_SHIFT				20
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_I5_MASK				0x00f00000
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_SHIFT			24
++#define   NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_MASK				0xff000000
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_COLOR(x)					(0x00001004+((x)*32))
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_COLOR__SIZE				0x00000080
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SX(x)					(0x00001008+((x)*32))
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SX__SIZE					0x00000080
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SY(x)					(0x0000100c+((x)*32))
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SY__SIZE					0x00000080
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SZ(x)					(0x00001010+((x)*32))
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_SZ__SIZE					0x00000080
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_RHW(x)					(0x00001014+((x)*32))
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_RHW__SIZE					0x00000080
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_TU(x)					(0x00001018+((x)*32))
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_TU__SIZE					0x00000080
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_TV(x)					(0x0000101c+((x)*32))
++#define  NV03_DX3_TEXTURED_TRIANGLE_TLVERTEX_TV__SIZE					0x00000080
+ 
+ 
+ #define NV04_GDI_RECTANGLE_TEXT								0x0000004a
+@@ -2525,7 +2525,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV10TCL_ALPHA_FUNC_FUNC_EQUAL							0x00000202
+ #define   NV10TCL_ALPHA_FUNC_FUNC_LEQUAL						0x00000203
+ #define   NV10TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
+-#define   NV10TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
+ #define   NV10TCL_ALPHA_FUNC_FUNC_NOTEQUAL						0x00000205
+ #define   NV10TCL_ALPHA_FUNC_FUNC_GEQUAL						0x00000206
+ #define   NV10TCL_ALPHA_FUNC_FUNC_ALWAYS						0x00000207
+@@ -2583,7 +2582,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV10TCL_DEPTH_FUNC_EQUAL							0x00000202
+ #define   NV10TCL_DEPTH_FUNC_LEQUAL							0x00000203
+ #define   NV10TCL_DEPTH_FUNC_GREATER							0x00000204
+-#define   NV10TCL_DEPTH_FUNC_GREATER							0x00000204
+ #define   NV10TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
+ #define   NV10TCL_DEPTH_FUNC_GEQUAL							0x00000206
+ #define   NV10TCL_DEPTH_FUNC_ALWAYS							0x00000207
+@@ -2600,7 +2598,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV10TCL_STENCIL_FUNC_FUNC_EQUAL						0x00000202
+ #define   NV10TCL_STENCIL_FUNC_FUNC_LEQUAL						0x00000203
+ #define   NV10TCL_STENCIL_FUNC_FUNC_GREATER						0x00000204
+-#define   NV10TCL_STENCIL_FUNC_FUNC_GREATER						0x00000204
+ #define   NV10TCL_STENCIL_FUNC_FUNC_NOTEQUAL						0x00000205
+ #define   NV10TCL_STENCIL_FUNC_FUNC_GEQUAL						0x00000206
+ #define   NV10TCL_STENCIL_FUNC_FUNC_ALWAYS						0x00000207
+@@ -3749,7 +3746,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV20TCL_ALPHA_FUNC_FUNC_EQUAL							0x00000202
+ #define   NV20TCL_ALPHA_FUNC_FUNC_LEQUAL						0x00000203
+ #define   NV20TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
+-#define   NV20TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
+ #define   NV20TCL_ALPHA_FUNC_FUNC_NOTEQUAL						0x00000205
+ #define   NV20TCL_ALPHA_FUNC_FUNC_GEQUAL						0x00000206
+ #define   NV20TCL_ALPHA_FUNC_FUNC_ALWAYS						0x00000207
+@@ -3807,7 +3803,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV20TCL_DEPTH_FUNC_EQUAL							0x00000202
+ #define   NV20TCL_DEPTH_FUNC_LEQUAL							0x00000203
+ #define   NV20TCL_DEPTH_FUNC_GREATER							0x00000204
+-#define   NV20TCL_DEPTH_FUNC_GREATER							0x00000204
+ #define   NV20TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
+ #define   NV20TCL_DEPTH_FUNC_GEQUAL							0x00000206
+ #define   NV20TCL_DEPTH_FUNC_ALWAYS							0x00000207
+@@ -3824,7 +3819,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV20TCL_STENCIL_FUNC_FUNC_EQUAL						0x00000202
+ #define   NV20TCL_STENCIL_FUNC_FUNC_LEQUAL						0x00000203
+ #define   NV20TCL_STENCIL_FUNC_FUNC_GREATER						0x00000204
+-#define   NV20TCL_STENCIL_FUNC_FUNC_GREATER						0x00000204
+ #define   NV20TCL_STENCIL_FUNC_FUNC_NOTEQUAL						0x00000205
+ #define   NV20TCL_STENCIL_FUNC_FUNC_GEQUAL						0x00000206
+ #define   NV20TCL_STENCIL_FUNC_FUNC_ALWAYS						0x00000207
+@@ -4997,7 +4991,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV34TCL_ALPHA_FUNC_FUNC_EQUAL							0x00000202
+ #define   NV34TCL_ALPHA_FUNC_FUNC_LEQUAL						0x00000203
+ #define   NV34TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
+-#define   NV34TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
+ #define   NV34TCL_ALPHA_FUNC_FUNC_NOTEQUAL						0x00000205
+ #define   NV34TCL_ALPHA_FUNC_FUNC_GEQUAL						0x00000206
+ #define   NV34TCL_ALPHA_FUNC_FUNC_ALWAYS						0x00000207
+@@ -5105,7 +5098,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_EQUAL						0x00000202
+ #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL						0x00000203
+ #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
+-#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
+ #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL					0x00000205
+ #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL						0x00000206
+ #define   NV34TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS						0x00000207
+@@ -5146,7 +5138,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL						0x00000202
+ #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL					0x00000203
+ #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
+-#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
+ #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL					0x00000205
+ #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL					0x00000206
+ #define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS					0x00000207
+@@ -5952,7 +5943,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV34TCL_DEPTH_FUNC_EQUAL							0x00000202
+ #define   NV34TCL_DEPTH_FUNC_LEQUAL							0x00000203
+ #define   NV34TCL_DEPTH_FUNC_GREATER							0x00000204
+-#define   NV34TCL_DEPTH_FUNC_GREATER							0x00000204
+ #define   NV34TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
+ #define   NV34TCL_DEPTH_FUNC_GEQUAL							0x00000206
+ #define   NV34TCL_DEPTH_FUNC_ALWAYS							0x00000207
+@@ -6613,7 +6603,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV40TCL_ALPHA_TEST_FUNC_EQUAL							0x00000202
+ #define   NV40TCL_ALPHA_TEST_FUNC_LEQUAL						0x00000203
+ #define   NV40TCL_ALPHA_TEST_FUNC_GREATER						0x00000204
+-#define   NV40TCL_ALPHA_TEST_FUNC_GREATER						0x00000204
+ #define   NV40TCL_ALPHA_TEST_FUNC_NOTEQUAL						0x00000205
+ #define   NV40TCL_ALPHA_TEST_FUNC_GEQUAL						0x00000206
+ #define   NV40TCL_ALPHA_TEST_FUNC_ALWAYS						0x00000207
+@@ -6730,7 +6719,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL						0x00000202
+ #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL					0x00000203
+ #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
+-#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
+ #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL					0x00000205
+ #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL					0x00000206
+ #define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS					0x00000207
+@@ -6771,7 +6759,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_EQUAL						0x00000202
+ #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL						0x00000203
+ #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
+-#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
+ #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL					0x00000205
+ #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL						0x00000206
+ #define   NV40TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS						0x00000207
+@@ -6894,7 +6881,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define   NV40TCL_DEPTH_FUNC_EQUAL							0x00000202
+ #define   NV40TCL_DEPTH_FUNC_LEQUAL							0x00000203
+ #define   NV40TCL_DEPTH_FUNC_GREATER							0x00000204
+-#define   NV40TCL_DEPTH_FUNC_GREATER							0x00000204
+ #define   NV40TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
+ #define   NV40TCL_DEPTH_FUNC_GEQUAL							0x00000206
+ #define   NV40TCL_DEPTH_FUNC_ALWAYS							0x00000207
+@@ -7312,41 +7298,65 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define  NV50_2D_NOP									0x00000100
+ #define  NV50_2D_NOTIFY									0x00000104
+ #define  NV50_2D_DMA_NOTIFY								0x00000180
+-#define  NV50_2D_DMA_IN_MEMORY0								0x00000184
+-#define  NV50_2D_DMA_IN_MEMORY1								0x00000188
+-#define  NV50_2D_DMA_IN_MEMORY2								0x0000018c
++#define  NV50_2D_DMA_DST								0x00000184
++#define  NV50_2D_DMA_SRC								0x00000188
++#define  NV50_2D_DMA_COND								0x0000018c
+ #define  NV50_2D_DST_FORMAT								0x00000200
+ #define   NV50_2D_DST_FORMAT_R32G32B32A32_FLOAT						0x000000c0
+-#define   NV50_2D_DST_FORMAT_R32G32B32_FLOAT						0x000000c3
++#define   NV50_2D_DST_FORMAT_R32G32B32A32_SINT						0x000000c1
++#define   NV50_2D_DST_FORMAT_R32G32B32A32_UINT						0x000000c2
++#define   NV50_2D_DST_FORMAT_R32G32B32X32_FLOAT						0x000000c3
+ #define   NV50_2D_DST_FORMAT_R16G16B16A16_UNORM						0x000000c6
+ #define   NV50_2D_DST_FORMAT_R16G16B16A16_SNORM						0x000000c7
++#define   NV50_2D_DST_FORMAT_R16G16B16A16_SINT						0x000000c8
++#define   NV50_2D_DST_FORMAT_R16G16B16A16_UINT						0x000000c9
+ #define   NV50_2D_DST_FORMAT_R16G16B16A16_FLOAT						0x000000ca
+ #define   NV50_2D_DST_FORMAT_R32G32_FLOAT						0x000000cb
++#define   NV50_2D_DST_FORMAT_R32G32_SINT						0x000000cc
++#define   NV50_2D_DST_FORMAT_R32G32_UINT						0x000000cd
+ #define   NV50_2D_DST_FORMAT_R16G16B16X16_FLOAT						0x000000ce
+ #define   NV50_2D_DST_FORMAT_A8R8G8B8_UNORM						0x000000cf
++#define   NV50_2D_DST_FORMAT_A8R8G8B8_SRGB						0x000000d0
+ #define   NV50_2D_DST_FORMAT_A2B10G10R10_UNORM						0x000000d1
+-#define   NV50_2D_DST_FORMAT_A8B8G8R8_UNORM						0x000000d6
++#define   NV50_2D_DST_FORMAT_A2B10G10R10_UINT						0x000000d2
++#define   NV50_2D_DST_FORMAT_A8B8G8R8_UNORM						0x000000d5
++#define   NV50_2D_DST_FORMAT_A8B8G8R8_SRGB						0x000000d6
+ #define   NV50_2D_DST_FORMAT_A8B8G8R8_SNORM						0x000000d7
++#define   NV50_2D_DST_FORMAT_A8B8G8R8_SINT						0x000000d8
++#define   NV50_2D_DST_FORMAT_A8B8G8R8_UINT						0x000000d9
+ #define   NV50_2D_DST_FORMAT_R16G16_UNORM						0x000000da
+ #define   NV50_2D_DST_FORMAT_R16G16_SNORM						0x000000db
++#define   NV50_2D_DST_FORMAT_R16G16_SINT						0x000000dc
++#define   NV50_2D_DST_FORMAT_R16G16_UINT						0x000000dd
+ #define   NV50_2D_DST_FORMAT_R16G16_FLOAT						0x000000de
+ #define   NV50_2D_DST_FORMAT_A2R10G10B10_UNORM						0x000000df
+ #define   NV50_2D_DST_FORMAT_B10G11R11_FLOAT						0x000000e0
+ #define   NV50_2D_DST_FORMAT_R32_FLOAT							0x000000e5
+ #define   NV50_2D_DST_FORMAT_X8R8G8B8_UNORM						0x000000e6
++#define   NV50_2D_DST_FORMAT_X8R8G8B8_SRGB						0x000000e7
+ #define   NV50_2D_DST_FORMAT_R5G6B5_UNORM						0x000000e8
+-#define   NV50_2D_DST_FORMAT_R16_FLOAT							0x000000e9
++#define   NV50_2D_DST_FORMAT_A1R5G5B5_UNORM						0x000000e9
+ #define   NV50_2D_DST_FORMAT_R8G8_UNORM							0x000000ea
+ #define   NV50_2D_DST_FORMAT_R8G8_SNORM							0x000000eb
++#define   NV50_2D_DST_FORMAT_R8G8_SINT							0x000000ec
++#define   NV50_2D_DST_FORMAT_R8G8_UINT							0x000000ed
+ #define   NV50_2D_DST_FORMAT_R16_UNORM							0x000000ee
+ #define   NV50_2D_DST_FORMAT_R16_SNORM							0x000000ef
++#define   NV50_2D_DST_FORMAT_R16_SINT							0x000000f0
++#define   NV50_2D_DST_FORMAT_R16_UINT							0x000000f1
++#define   NV50_2D_DST_FORMAT_R16_FLOAT							0x000000f2
+ #define   NV50_2D_DST_FORMAT_R8_UNORM							0x000000f3
+-#define   NV50_2D_DST_FORMAT_R32_BOOLEAN						0x000000f6
++#define   NV50_2D_DST_FORMAT_R8_SNORM							0x000000f4
++#define   NV50_2D_DST_FORMAT_R8_SINT							0x000000f5
++#define   NV50_2D_DST_FORMAT_R8_UINT							0x000000f6
+ #define   NV50_2D_DST_FORMAT_A8_UNORM							0x000000f7
+-#define   NV50_2D_DST_FORMAT_X1B5G5R5_UNORM						0x000000f8
++#define   NV50_2D_DST_FORMAT_X1R5G5B5_UNORM						0x000000f8
+ #define   NV50_2D_DST_FORMAT_X8B8G8R8_UNORM						0x000000f9
++#define   NV50_2D_DST_FORMAT_X8B8G8R8_SRGB						0x000000fa
+ #define  NV50_2D_DST_LINEAR								0x00000204
+ #define  NV50_2D_DST_TILE_MODE								0x00000208
++#define  NV50_2D_DST_DEPTH								0x0000020c
++#define  NV50_2D_DST_LAYER								0x00000210
+ #define  NV50_2D_DST_PITCH								0x00000214
+ #define  NV50_2D_DST_WIDTH								0x00000218
+ #define  NV50_2D_DST_HEIGHT								0x0000021c
+@@ -7354,45 +7364,88 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define  NV50_2D_DST_ADDRESS_LOW							0x00000224
+ #define  NV50_2D_SRC_FORMAT								0x00000230
+ #define   NV50_2D_SRC_FORMAT_R32G32B32A32_FLOAT						0x000000c0
+-#define   NV50_2D_SRC_FORMAT_R32G32B32_FLOAT						0x000000c3
++#define   NV50_2D_SRC_FORMAT_R32G32B32A32_SINT						0x000000c1
++#define   NV50_2D_SRC_FORMAT_R32G32B32A32_UINT						0x000000c2
++#define   NV50_2D_SRC_FORMAT_R32G32B32X32_FLOAT						0x000000c3
+ #define   NV50_2D_SRC_FORMAT_R16G16B16A16_UNORM						0x000000c6
+ #define   NV50_2D_SRC_FORMAT_R16G16B16A16_SNORM						0x000000c7
++#define   NV50_2D_SRC_FORMAT_R16G16B16A16_SINT						0x000000c8
++#define   NV50_2D_SRC_FORMAT_R16G16B16A16_UINT						0x000000c9
+ #define   NV50_2D_SRC_FORMAT_R16G16B16A16_FLOAT						0x000000ca
+ #define   NV50_2D_SRC_FORMAT_R32G32_FLOAT						0x000000cb
++#define   NV50_2D_SRC_FORMAT_R32G32_SINT						0x000000cc
++#define   NV50_2D_SRC_FORMAT_R32G32_UINT						0x000000cd
+ #define   NV50_2D_SRC_FORMAT_R16G16B16X16_FLOAT						0x000000ce
+ #define   NV50_2D_SRC_FORMAT_A8R8G8B8_UNORM						0x000000cf
++#define   NV50_2D_SRC_FORMAT_A8R8G8B8_SRGB						0x000000d0
+ #define   NV50_2D_SRC_FORMAT_A2B10G10R10_UNORM						0x000000d1
+-#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UNORM						0x000000d6
++#define   NV50_2D_SRC_FORMAT_A2B10G10R10_UINT						0x000000d2
++#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UNORM						0x000000d5
++#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SRGB						0x000000d6
+ #define   NV50_2D_SRC_FORMAT_A8B8G8R8_SNORM						0x000000d7
++#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SINT						0x000000d8
++#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UINT						0x000000d9
+ #define   NV50_2D_SRC_FORMAT_R16G16_UNORM						0x000000da
+ #define   NV50_2D_SRC_FORMAT_R16G16_SNORM						0x000000db
++#define   NV50_2D_SRC_FORMAT_R16G16_SINT						0x000000dc
++#define   NV50_2D_SRC_FORMAT_R16G16_UINT						0x000000dd
+ #define   NV50_2D_SRC_FORMAT_R16G16_FLOAT						0x000000de
+ #define   NV50_2D_SRC_FORMAT_A2R10G10B10_UNORM						0x000000df
+ #define   NV50_2D_SRC_FORMAT_B10G11R11_FLOAT						0x000000e0
+ #define   NV50_2D_SRC_FORMAT_R32_FLOAT							0x000000e5
+ #define   NV50_2D_SRC_FORMAT_X8R8G8B8_UNORM						0x000000e6
++#define   NV50_2D_SRC_FORMAT_X8R8G8B8_SRGB						0x000000e7
+ #define   NV50_2D_SRC_FORMAT_R5G6B5_UNORM						0x000000e8
+-#define   NV50_2D_SRC_FORMAT_R16_FLOAT							0x000000e9
++#define   NV50_2D_SRC_FORMAT_A1R5G5B5_UNORM						0x000000e9
+ #define   NV50_2D_SRC_FORMAT_R8G8_UNORM							0x000000ea
+ #define   NV50_2D_SRC_FORMAT_R8G8_SNORM							0x000000eb
++#define   NV50_2D_SRC_FORMAT_R8G8_SINT							0x000000ec
++#define   NV50_2D_SRC_FORMAT_R8G8_UINT							0x000000ed
+ #define   NV50_2D_SRC_FORMAT_R16_UNORM							0x000000ee
+ #define   NV50_2D_SRC_FORMAT_R16_SNORM							0x000000ef
++#define   NV50_2D_SRC_FORMAT_R16_SINT							0x000000f0
++#define   NV50_2D_SRC_FORMAT_R16_UINT							0x000000f1
++#define   NV50_2D_SRC_FORMAT_R16_FLOAT							0x000000f2
+ #define   NV50_2D_SRC_FORMAT_R8_UNORM							0x000000f3
+-#define   NV50_2D_SRC_FORMAT_R32_BOOLEAN						0x000000f6
++#define   NV50_2D_SRC_FORMAT_R8_SNORM							0x000000f4
++#define   NV50_2D_SRC_FORMAT_R8_SINT							0x000000f5
++#define   NV50_2D_SRC_FORMAT_R8_UINT							0x000000f6
+ #define   NV50_2D_SRC_FORMAT_A8_UNORM							0x000000f7
+-#define   NV50_2D_SRC_FORMAT_X1B5G5R5_UNORM						0x000000f8
++#define   NV50_2D_SRC_FORMAT_X1R5G5B5_UNORM						0x000000f8
+ #define   NV50_2D_SRC_FORMAT_X8B8G8R8_UNORM						0x000000f9
++#define   NV50_2D_SRC_FORMAT_X8B8G8R8_SRGB						0x000000fa
+ #define  NV50_2D_SRC_LINEAR								0x00000234
+ #define  NV50_2D_SRC_TILE_MODE								0x00000238
++#define  NV50_2D_SRC_DEPTH								0x0000023c
++#define  NV50_2D_SRC_LAYER								0x00000240
+ #define  NV50_2D_SRC_PITCH								0x00000244
+ #define  NV50_2D_SRC_WIDTH								0x00000248
+ #define  NV50_2D_SRC_HEIGHT								0x0000024c
+ #define  NV50_2D_SRC_ADDRESS_HIGH							0x00000250
+ #define  NV50_2D_SRC_ADDRESS_LOW							0x00000254
++#define  NV50_2D_COND_ADDRESS_HIGH							0x00000264
++#define  NV50_2D_COND_ADDRESS_LOW							0x00000268
++#define  NV50_2D_COND_MODE								0x0000026c
++#define   NV50_2D_COND_MODE_NEVER							0x00000000
++#define   NV50_2D_COND_MODE_ALWAYS							0x00000001
++#define   NV50_2D_COND_MODE_RES								0x00000002
++#define   NV50_2D_COND_MODE_NOT_RES_AND_NOT_ID						0x00000003
++#define   NV50_2D_COND_MODE_RES_OR_ID							0x00000004
+ #define  NV50_2D_CLIP_X									0x00000280
+ #define  NV50_2D_CLIP_Y									0x00000284
+-#define  NV50_2D_CLIP_Z									0x00000288
+-#define  NV50_2D_CLIP_W									0x0000028c
++#define  NV50_2D_CLIP_W									0x00000288
++#define  NV50_2D_CLIP_H									0x0000028c
++#define  NV50_2D_CLIP_ENABLE								0x00000290
++#define  NV50_2D_COLOR_KEY_FORMAT							0x00000294
++#define   NV50_2D_COLOR_KEY_FORMAT_16BPP						0x00000000
++#define   NV50_2D_COLOR_KEY_FORMAT_15BPP						0x00000001
++#define   NV50_2D_COLOR_KEY_FORMAT_24BPP						0x00000002
++#define   NV50_2D_COLOR_KEY_FORMAT_30BPP						0x00000003
++#define   NV50_2D_COLOR_KEY_FORMAT_8BPP							0x00000004
++#define   NV50_2D_COLOR_KEY_FORMAT_16BPP2						0x00000005
++#define   NV50_2D_COLOR_KEY_FORMAT_32BPP						0x00000006
++#define  NV50_2D_COLOR_KEY								0x00000298
++#define  NV50_2D_COLOR_KEY_ENABLE							0x0000029c
+ #define  NV50_2D_ROP									0x000002a0
+ #define  NV50_2D_OPERATION								0x000002ac
+ #define   NV50_2D_OPERATION_SRCCOPY_AND							0x00000000
+@@ -7410,89 +7463,159 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define  NV50_2D_PATTERN_COLOR__SIZE							0x00000002
+ #define  NV50_2D_PATTERN_BITMAP(x)							(0x000002f8+((x)*4))
+ #define  NV50_2D_PATTERN_BITMAP__SIZE							0x00000002
+-#define  NV50_2D_RECT_FORMAT								0x00000584
+-#define   NV50_2D_RECT_FORMAT_R32G32B32A32_FLOAT					0x000000c0
+-#define   NV50_2D_RECT_FORMAT_R32G32B32_FLOAT						0x000000c3
+-#define   NV50_2D_RECT_FORMAT_R16G16B16A16_UNORM					0x000000c6
+-#define   NV50_2D_RECT_FORMAT_R16G16B16A16_SNORM					0x000000c7
+-#define   NV50_2D_RECT_FORMAT_R16G16B16A16_FLOAT					0x000000ca
+-#define   NV50_2D_RECT_FORMAT_R32G32_FLOAT						0x000000cb
+-#define   NV50_2D_RECT_FORMAT_R16G16B16X16_FLOAT					0x000000ce
+-#define   NV50_2D_RECT_FORMAT_A8R8G8B8_UNORM						0x000000cf
+-#define   NV50_2D_RECT_FORMAT_A2B10G10R10_UNORM						0x000000d1
+-#define   NV50_2D_RECT_FORMAT_A8B8G8R8_UNORM						0x000000d6
+-#define   NV50_2D_RECT_FORMAT_A8B8G8R8_SNORM						0x000000d7
+-#define   NV50_2D_RECT_FORMAT_R16G16_UNORM						0x000000da
+-#define   NV50_2D_RECT_FORMAT_R16G16_SNORM						0x000000db
+-#define   NV50_2D_RECT_FORMAT_R16G16_FLOAT						0x000000de
+-#define   NV50_2D_RECT_FORMAT_A2R10G10B10_UNORM						0x000000df
+-#define   NV50_2D_RECT_FORMAT_B10G11R11_FLOAT						0x000000e0
+-#define   NV50_2D_RECT_FORMAT_R32_FLOAT							0x000000e5
+-#define   NV50_2D_RECT_FORMAT_X8R8G8B8_UNORM						0x000000e6
+-#define   NV50_2D_RECT_FORMAT_R5G6B5_UNORM						0x000000e8
+-#define   NV50_2D_RECT_FORMAT_R16_FLOAT							0x000000e9
+-#define   NV50_2D_RECT_FORMAT_R8G8_UNORM						0x000000ea
+-#define   NV50_2D_RECT_FORMAT_R8G8_SNORM						0x000000eb
+-#define   NV50_2D_RECT_FORMAT_R16_UNORM							0x000000ee
+-#define   NV50_2D_RECT_FORMAT_R16_SNORM							0x000000ef
+-#define   NV50_2D_RECT_FORMAT_R8_UNORM							0x000000f3
+-#define   NV50_2D_RECT_FORMAT_R32_BOOLEAN						0x000000f6
+-#define   NV50_2D_RECT_FORMAT_A8_UNORM							0x000000f7
+-#define   NV50_2D_RECT_FORMAT_X1B5G5R5_UNORM						0x000000f8
+-#define   NV50_2D_RECT_FORMAT_X8B8G8R8_UNORM						0x000000f9
+-#define  NV50_2D_RECT_COLOR								0x00000588
+-#define  NV50_2D_RECT_X1								0x00000600
+-#define  NV50_2D_RECT_Y1								0x00000604
+-#define  NV50_2D_RECT_X2								0x00000608
+-#define  NV50_2D_RECT_Y2								0x0000060c
+-#define  NV50_2D_SIFC_UNK0800								0x00000800
++#define  NV50_2D_DRAW_SHAPE								0x00000580
++#define   NV50_2D_DRAW_SHAPE_POINTS							0x00000000
++#define   NV50_2D_DRAW_SHAPE_LINES							0x00000001
++#define   NV50_2D_DRAW_SHAPE_LINE_STRIP							0x00000002
++#define   NV50_2D_DRAW_SHAPE_TRIANGLES							0x00000003
++#define   NV50_2D_DRAW_SHAPE_RECTANGLES							0x00000004
++#define  NV50_2D_DRAW_COLOR_FORMAT							0x00000584
++#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_FLOAT					0x000000c0
++#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_SINT					0x000000c1
++#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32A32_UINT					0x000000c2
++#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32B32X32_FLOAT					0x000000c3
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_UNORM					0x000000c6
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_SNORM					0x000000c7
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_SINT					0x000000c8
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_UINT					0x000000c9
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16A16_FLOAT					0x000000ca
++#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_FLOAT					0x000000cb
++#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_SINT						0x000000cc
++#define   NV50_2D_DRAW_COLOR_FORMAT_R32G32_UINT						0x000000cd
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16B16X16_FLOAT					0x000000ce
++#define   NV50_2D_DRAW_COLOR_FORMAT_A8R8G8B8_UNORM					0x000000cf
++#define   NV50_2D_DRAW_COLOR_FORMAT_A8R8G8B8_SRGB					0x000000d0
++#define   NV50_2D_DRAW_COLOR_FORMAT_A2B10G10R10_UNORM					0x000000d1
++#define   NV50_2D_DRAW_COLOR_FORMAT_A2B10G10R10_UINT					0x000000d2
++#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_UNORM					0x000000d5
++#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SRGB					0x000000d6
++#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SNORM					0x000000d7
++#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_SINT					0x000000d8
++#define   NV50_2D_DRAW_COLOR_FORMAT_A8B8G8R8_UINT					0x000000d9
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_UNORM					0x000000da
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_SNORM					0x000000db
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_SINT						0x000000dc
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_UINT						0x000000dd
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16G16_FLOAT					0x000000de
++#define   NV50_2D_DRAW_COLOR_FORMAT_A2R10G10B10_UNORM					0x000000df
++#define   NV50_2D_DRAW_COLOR_FORMAT_B10G11R11_FLOAT					0x000000e0
++#define   NV50_2D_DRAW_COLOR_FORMAT_R32_FLOAT						0x000000e5
++#define   NV50_2D_DRAW_COLOR_FORMAT_X8R8G8B8_UNORM					0x000000e6
++#define   NV50_2D_DRAW_COLOR_FORMAT_X8R8G8B8_SRGB					0x000000e7
++#define   NV50_2D_DRAW_COLOR_FORMAT_R5G6B5_UNORM					0x000000e8
++#define   NV50_2D_DRAW_COLOR_FORMAT_A1R5G5B5_UNORM					0x000000e9
++#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_UNORM						0x000000ea
++#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_SNORM						0x000000eb
++#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_SINT						0x000000ec
++#define   NV50_2D_DRAW_COLOR_FORMAT_R8G8_UINT						0x000000ed
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16_UNORM						0x000000ee
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16_SNORM						0x000000ef
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16_SINT						0x000000f0
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16_UINT						0x000000f1
++#define   NV50_2D_DRAW_COLOR_FORMAT_R16_FLOAT						0x000000f2
++#define   NV50_2D_DRAW_COLOR_FORMAT_R8_UNORM						0x000000f3
++#define   NV50_2D_DRAW_COLOR_FORMAT_R8_SNORM						0x000000f4
++#define   NV50_2D_DRAW_COLOR_FORMAT_R8_SINT						0x000000f5
++#define   NV50_2D_DRAW_COLOR_FORMAT_R8_UINT						0x000000f6
++#define   NV50_2D_DRAW_COLOR_FORMAT_A8_UNORM						0x000000f7
++#define   NV50_2D_DRAW_COLOR_FORMAT_X1R5G5B5_UNORM					0x000000f8
++#define   NV50_2D_DRAW_COLOR_FORMAT_X8B8G8R8_UNORM					0x000000f9
++#define   NV50_2D_DRAW_COLOR_FORMAT_X8B8G8R8_SRGB					0x000000fa
++#define  NV50_2D_DRAW_COLOR								0x00000588
++#define  NV50_2D_DRAW_POINT16								0x000005e0
++#define   NV50_2D_DRAW_POINT16_X_SHIFT							0
++#define   NV50_2D_DRAW_POINT16_X_MASK							0x0000ffff
++#define   NV50_2D_DRAW_POINT16_Y_SHIFT							16
++#define   NV50_2D_DRAW_POINT16_Y_MASK							0xffff0000
++#define  NV50_2D_DRAW_POINT32_X(x)							(0x00000600+((x)*8))
++#define  NV50_2D_DRAW_POINT32_X__SIZE							0x00000040
++#define  NV50_2D_DRAW_POINT32_Y(x)							(0x00000604+((x)*8))
++#define  NV50_2D_DRAW_POINT32_Y__SIZE							0x00000040
++#define  NV50_2D_SIFC_BITMAP_ENABLE							0x00000800
+ #define  NV50_2D_SIFC_FORMAT								0x00000804
+ #define   NV50_2D_SIFC_FORMAT_R32G32B32A32_FLOAT					0x000000c0
+-#define   NV50_2D_SIFC_FORMAT_R32G32B32_FLOAT						0x000000c3
++#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_SINT						0x000000c1
++#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_UINT						0x000000c2
++#define   NV50_2D_SIFC_FORMAT_R32G32B32X32_FLOAT					0x000000c3
+ #define   NV50_2D_SIFC_FORMAT_R16G16B16A16_UNORM					0x000000c6
+ #define   NV50_2D_SIFC_FORMAT_R16G16B16A16_SNORM					0x000000c7
++#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_SINT						0x000000c8
++#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_UINT						0x000000c9
+ #define   NV50_2D_SIFC_FORMAT_R16G16B16A16_FLOAT					0x000000ca
+ #define   NV50_2D_SIFC_FORMAT_R32G32_FLOAT						0x000000cb
++#define   NV50_2D_SIFC_FORMAT_R32G32_SINT						0x000000cc
++#define   NV50_2D_SIFC_FORMAT_R32G32_UINT						0x000000cd
+ #define   NV50_2D_SIFC_FORMAT_R16G16B16X16_FLOAT					0x000000ce
+ #define   NV50_2D_SIFC_FORMAT_A8R8G8B8_UNORM						0x000000cf
++#define   NV50_2D_SIFC_FORMAT_A8R8G8B8_SRGB						0x000000d0
+ #define   NV50_2D_SIFC_FORMAT_A2B10G10R10_UNORM						0x000000d1
+-#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UNORM						0x000000d6
++#define   NV50_2D_SIFC_FORMAT_A2B10G10R10_UINT						0x000000d2
++#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UNORM						0x000000d5
++#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SRGB						0x000000d6
+ #define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SNORM						0x000000d7
++#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SINT						0x000000d8
++#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UINT						0x000000d9
+ #define   NV50_2D_SIFC_FORMAT_R16G16_UNORM						0x000000da
+ #define   NV50_2D_SIFC_FORMAT_R16G16_SNORM						0x000000db
++#define   NV50_2D_SIFC_FORMAT_R16G16_SINT						0x000000dc
++#define   NV50_2D_SIFC_FORMAT_R16G16_UINT						0x000000dd
+ #define   NV50_2D_SIFC_FORMAT_R16G16_FLOAT						0x000000de
+ #define   NV50_2D_SIFC_FORMAT_A2R10G10B10_UNORM						0x000000df
+ #define   NV50_2D_SIFC_FORMAT_B10G11R11_FLOAT						0x000000e0
+ #define   NV50_2D_SIFC_FORMAT_R32_FLOAT							0x000000e5
+ #define   NV50_2D_SIFC_FORMAT_X8R8G8B8_UNORM						0x000000e6
++#define   NV50_2D_SIFC_FORMAT_X8R8G8B8_SRGB						0x000000e7
+ #define   NV50_2D_SIFC_FORMAT_R5G6B5_UNORM						0x000000e8
+-#define   NV50_2D_SIFC_FORMAT_R16_FLOAT							0x000000e9
++#define   NV50_2D_SIFC_FORMAT_A1R5G5B5_UNORM						0x000000e9
+ #define   NV50_2D_SIFC_FORMAT_R8G8_UNORM						0x000000ea
+ #define   NV50_2D_SIFC_FORMAT_R8G8_SNORM						0x000000eb
++#define   NV50_2D_SIFC_FORMAT_R8G8_SINT							0x000000ec
++#define   NV50_2D_SIFC_FORMAT_R8G8_UINT							0x000000ed
+ #define   NV50_2D_SIFC_FORMAT_R16_UNORM							0x000000ee
+ #define   NV50_2D_SIFC_FORMAT_R16_SNORM							0x000000ef
++#define   NV50_2D_SIFC_FORMAT_R16_SINT							0x000000f0
++#define   NV50_2D_SIFC_FORMAT_R16_UINT							0x000000f1
++#define   NV50_2D_SIFC_FORMAT_R16_FLOAT							0x000000f2
+ #define   NV50_2D_SIFC_FORMAT_R8_UNORM							0x000000f3
+-#define   NV50_2D_SIFC_FORMAT_R32_BOOLEAN						0x000000f6
++#define   NV50_2D_SIFC_FORMAT_R8_SNORM							0x000000f4
++#define   NV50_2D_SIFC_FORMAT_R8_SINT							0x000000f5
++#define   NV50_2D_SIFC_FORMAT_R8_UINT							0x000000f6
+ #define   NV50_2D_SIFC_FORMAT_A8_UNORM							0x000000f7
+-#define   NV50_2D_SIFC_FORMAT_X1B5G5R5_UNORM						0x000000f8
++#define   NV50_2D_SIFC_FORMAT_X1R5G5B5_UNORM						0x000000f8
+ #define   NV50_2D_SIFC_FORMAT_X8B8G8R8_UNORM						0x000000f9
++#define   NV50_2D_SIFC_FORMAT_X8B8G8R8_SRGB						0x000000fa
++#define  NV50_2D_SIFC_BITMAP_UNK808							0x00000808
++#define  NV50_2D_SIFC_BITMAP_LSB_FIRST							0x0000080c
++#define  NV50_2D_SIFC_BITMAP_LINE_PACK_MODE						0x00000810
++#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_PACKED					0x00000000
++#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_BYTE					0x00000001
++#define   NV50_2D_SIFC_BITMAP_LINE_PACK_MODE_ALIGN_WORD					0x00000002
++#define  NV50_2D_SIFC_BITMAP_COLOR_BIT0							0x00000814
++#define  NV50_2D_SIFC_BITMAP_COLOR_BIT1							0x00000818
++#define  NV50_2D_SIFC_BITMAP_WRITE_BIT0_ENABLE						0x0000081c
+ #define  NV50_2D_SIFC_WIDTH								0x00000838
+ #define  NV50_2D_SIFC_HEIGHT								0x0000083c
+-#define  NV50_2D_SIFC_SCALE_UNK0840							0x00000840
+-#define  NV50_2D_SIFC_SCALE_UNK0844							0x00000844
+-#define  NV50_2D_SIFC_SCALE_UNK0848							0x00000848
+-#define  NV50_2D_SIFC_SCALE_UNK084C							0x0000084c
+-#define  NV50_2D_SIFC_UNK0850								0x00000850
+-#define  NV50_2D_SIFC_DST_X								0x00000854
+-#define  NV50_2D_SIFC_UNK0858								0x00000858
+-#define  NV50_2D_SIFC_DST_Y								0x0000085c
++#define  NV50_2D_SIFC_DX_DU_FRACT							0x00000840
++#define  NV50_2D_SIFC_DX_DU_INT								0x00000844
++#define  NV50_2D_SIFC_DY_DV_FRACT							0x00000848
++#define  NV50_2D_SIFC_DY_DV_INT								0x0000084c
++#define  NV50_2D_SIFC_DST_X_FRACT							0x00000850
++#define  NV50_2D_SIFC_DST_X_INT								0x00000854
++#define  NV50_2D_SIFC_DST_Y_FRACT							0x00000858
++#define  NV50_2D_SIFC_DST_Y_INT								0x0000085c
+ #define  NV50_2D_SIFC_DATA								0x00000860
+ #define  NV50_2D_BLIT_DST_X								0x000008b0
+ #define  NV50_2D_BLIT_DST_Y								0x000008b4
+ #define  NV50_2D_BLIT_DST_W								0x000008b8
+ #define  NV50_2D_BLIT_DST_H								0x000008bc
+-#define  NV50_2D_BLIT_SRC_X								0x000008d4
+-#define  NV50_2D_BLIT_SRC_Y								0x000008dc
++#define  NV50_2D_BLIT_DU_DX_FRACT							0x000008c0
++#define  NV50_2D_BLIT_DU_DX_INT								0x000008c4
++#define  NV50_2D_BLIT_DV_DY_FRACT							0x000008c8
++#define  NV50_2D_BLIT_DV_DY_INT								0x000008cc
++#define  NV50_2D_BLIT_SRC_X_FRACT							0x000008d0
++#define  NV50_2D_BLIT_SRC_X_INT								0x000008d4
++#define  NV50_2D_BLIT_SRC_Y_FRACT							0x000008d8
++#define  NV50_2D_BLIT_SRC_Y_INT								0x000008dc
+ 
+ 
+ #define NV50_MEMORY_TO_MEMORY_FORMAT							0x00005039
+@@ -7501,20 +7624,26 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_IN					0x00000204
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_IN					0x00000208
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_IN					0x0000020c
++#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_IN					0x00000210
++#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Z				0x00000214
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN				0x00000218
++#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X_SHIFT			0
++#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X_MASK			0x0000ffff
++#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y_SHIFT			16
++#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y_MASK			0xffff0000
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_OUT					0x0000021c
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_OUT					0x00000220
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_OUT					0x00000224
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_OUT					0x00000228
++#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_OUT					0x0000022c
++#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Z				0x00000230
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT				0x00000234
++#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X_SHIFT			0
++#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X_MASK			0x0000ffff
++#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y_SHIFT			16
++#define   NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y_MASK			0xffff0000
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH					0x00000238
+ #define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH					0x0000023c
+-#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN						0x0000030c
+-#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT					0x00000310
+-#define  NV50_MEMORY_TO_MEMORY_FORMAT_PITCH_IN						0x00000314
+-#define  NV50_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT						0x00000318
+-#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN					0x0000031c
+-#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT					0x00000320
+ 
+ 
+ #define NV50TCL										0x00005097
+@@ -7522,10 +7651,19 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define  NV50TCL_NOP									0x00000100
+ #define  NV50TCL_NOTIFY									0x00000104
+ #define  NV50TCL_DMA_NOTIFY								0x00000180
+-#define  NV50TCL_DMA_UNK0(x)								(0x00000184+((x)*4))
+-#define  NV50TCL_DMA_UNK0__SIZE								0x0000000b
+-#define  NV50TCL_DMA_UNK1(x)								(0x000001c0+((x)*4))
+-#define  NV50TCL_DMA_UNK1__SIZE								0x00000008
++#define  NV50TCL_DMA_ZETA								0x00000184
++#define  NV50TCL_DMA_QUERY								0x00000188
++#define  NV50TCL_DMA_VTXBUF0								0x0000018c
++#define  NV50TCL_DMA_LOCAL								0x00000190
++#define  NV50TCL_DMA_STACK								0x00000194
++#define  NV50TCL_DMA_CODE_CB								0x00000198
++#define  NV50TCL_DMA_TSC								0x0000019c
++#define  NV50TCL_DMA_TIC								0x000001a0
++#define  NV50TCL_DMA_TEXTURE								0x000001a4
++#define  NV50TCL_DMA_STRMOUT								0x000001a8
++#define  NV50TCL_DMA_UNK01AC								0x000001ac
++#define  NV50TCL_DMA_COLOR(x)								(0x000001c0+((x)*4))
++#define  NV50TCL_DMA_COLOR__SIZE							0x00000008
+ #define  NV50TCL_RT_ADDRESS_HIGH(x)							(0x00000200+((x)*32))
+ #define  NV50TCL_RT_ADDRESS_HIGH__SIZE							0x00000008
+ #define  NV50TCL_RT_ADDRESS_LOW(x)							(0x00000204+((x)*32))
+@@ -7533,40 +7671,68 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define  NV50TCL_RT_FORMAT(x)								(0x00000208+((x)*32))
+ #define  NV50TCL_RT_FORMAT__SIZE							0x00000008
+ #define   NV50TCL_RT_FORMAT_R32G32B32A32_FLOAT						0x000000c0
+-#define   NV50TCL_RT_FORMAT_R32G32B32_FLOAT						0x000000c3
++#define   NV50TCL_RT_FORMAT_R32G32B32A32_SINT						0x000000c1
++#define   NV50TCL_RT_FORMAT_R32G32B32A32_UINT						0x000000c2
++#define   NV50TCL_RT_FORMAT_R32G32B32X32_FLOAT						0x000000c3
+ #define   NV50TCL_RT_FORMAT_R16G16B16A16_UNORM						0x000000c6
+ #define   NV50TCL_RT_FORMAT_R16G16B16A16_SNORM						0x000000c7
++#define   NV50TCL_RT_FORMAT_R16G16B16A16_SINT						0x000000c8
++#define   NV50TCL_RT_FORMAT_R16G16B16A16_UINT						0x000000c9
+ #define   NV50TCL_RT_FORMAT_R16G16B16A16_FLOAT						0x000000ca
+ #define   NV50TCL_RT_FORMAT_R32G32_FLOAT						0x000000cb
++#define   NV50TCL_RT_FORMAT_R32G32_SINT							0x000000cc
++#define   NV50TCL_RT_FORMAT_R32G32_UINT							0x000000cd
+ #define   NV50TCL_RT_FORMAT_R16G16B16X16_FLOAT						0x000000ce
+ #define   NV50TCL_RT_FORMAT_A8R8G8B8_UNORM						0x000000cf
++#define   NV50TCL_RT_FORMAT_A8R8G8B8_SRGB						0x000000d0
+ #define   NV50TCL_RT_FORMAT_A2B10G10R10_UNORM						0x000000d1
+-#define   NV50TCL_RT_FORMAT_A8B8G8R8_UNORM						0x000000d6
++#define   NV50TCL_RT_FORMAT_A2B10G10R10_UINT						0x000000d2
++#define   NV50TCL_RT_FORMAT_A8B8G8R8_UNORM						0x000000d5
++#define   NV50TCL_RT_FORMAT_A8B8G8R8_SRGB						0x000000d6
+ #define   NV50TCL_RT_FORMAT_A8B8G8R8_SNORM						0x000000d7
++#define   NV50TCL_RT_FORMAT_A8B8G8R8_SINT						0x000000d8
++#define   NV50TCL_RT_FORMAT_A8B8G8R8_UINT						0x000000d9
+ #define   NV50TCL_RT_FORMAT_R16G16_UNORM						0x000000da
+ #define   NV50TCL_RT_FORMAT_R16G16_SNORM						0x000000db
++#define   NV50TCL_RT_FORMAT_R16G16_SINT							0x000000dc
++#define   NV50TCL_RT_FORMAT_R16G16_UINT							0x000000dd
+ #define   NV50TCL_RT_FORMAT_R16G16_FLOAT						0x000000de
+ #define   NV50TCL_RT_FORMAT_A2R10G10B10_UNORM						0x000000df
+ #define   NV50TCL_RT_FORMAT_B10G11R11_FLOAT						0x000000e0
+ #define   NV50TCL_RT_FORMAT_R32_FLOAT							0x000000e5
+ #define   NV50TCL_RT_FORMAT_X8R8G8B8_UNORM						0x000000e6
++#define   NV50TCL_RT_FORMAT_X8R8G8B8_SRGB						0x000000e7
+ #define   NV50TCL_RT_FORMAT_R5G6B5_UNORM						0x000000e8
+-#define   NV50TCL_RT_FORMAT_R16_FLOAT							0x000000e9
++#define   NV50TCL_RT_FORMAT_A1R5G5B5_UNORM						0x000000e9
+ #define   NV50TCL_RT_FORMAT_R8G8_UNORM							0x000000ea
+ #define   NV50TCL_RT_FORMAT_R8G8_SNORM							0x000000eb
++#define   NV50TCL_RT_FORMAT_R8G8_SINT							0x000000ec
++#define   NV50TCL_RT_FORMAT_R8G8_UINT							0x000000ed
+ #define   NV50TCL_RT_FORMAT_R16_UNORM							0x000000ee
+ #define   NV50TCL_RT_FORMAT_R16_SNORM							0x000000ef
++#define   NV50TCL_RT_FORMAT_R16_SINT							0x000000f0
++#define   NV50TCL_RT_FORMAT_R16_UINT							0x000000f1
++#define   NV50TCL_RT_FORMAT_R16_FLOAT							0x000000f2
+ #define   NV50TCL_RT_FORMAT_R8_UNORM							0x000000f3
+-#define   NV50TCL_RT_FORMAT_R32_BOOLEAN							0x000000f6
++#define   NV50TCL_RT_FORMAT_R8_SNORM							0x000000f4
++#define   NV50TCL_RT_FORMAT_R8_SINT							0x000000f5
++#define   NV50TCL_RT_FORMAT_R8_UINT							0x000000f6
+ #define   NV50TCL_RT_FORMAT_A8_UNORM							0x000000f7
+-#define   NV50TCL_RT_FORMAT_X1B5G5R5_UNORM						0x000000f8
++#define   NV50TCL_RT_FORMAT_X1R5G5B5_UNORM						0x000000f8
+ #define   NV50TCL_RT_FORMAT_X8B8G8R8_UNORM						0x000000f9
++#define   NV50TCL_RT_FORMAT_X8B8G8R8_SRGB						0x000000fa
+ #define  NV50TCL_RT_TILE_MODE(x)							(0x0000020c+((x)*32))
+ #define  NV50TCL_RT_TILE_MODE__SIZE							0x00000008
+-#define  NV50TCL_RT_UNK4(x)								(0x00000210+((x)*32))
+-#define  NV50TCL_RT_UNK4__SIZE								0x00000008
++#define  NV50TCL_RT_LAYER_STRIDE(x)							(0x00000210+((x)*32))
++#define  NV50TCL_RT_LAYER_STRIDE__SIZE							0x00000008
+ #define  NV50TCL_VTX_ATTR_1F(x)								(0x00000300+((x)*4))
+ #define  NV50TCL_VTX_ATTR_1F__SIZE							0x00000010
++#define  NV50TCL_VTX_ATTR_2H(x)								(0x00000340+((x)*4))
++#define  NV50TCL_VTX_ATTR_2H__SIZE							0x00000010
++#define   NV50TCL_VTX_ATTR_2H_X_SHIFT							0
++#define   NV50TCL_VTX_ATTR_2H_X_MASK							0x0000ffff
++#define   NV50TCL_VTX_ATTR_2H_Y_SHIFT							16
++#define   NV50TCL_VTX_ATTR_2H_Y_MASK							0xffff0000
+ #define  NV50TCL_VTX_ATTR_2F_X(x)							(0x00000380+((x)*8))
+ #define  NV50TCL_VTX_ATTR_2F_X__SIZE							0x00000010
+ #define  NV50TCL_VTX_ATTR_2F_Y(x)							(0x00000384+((x)*8))
+@@ -7577,8 +7743,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define  NV50TCL_VTX_ATTR_3F_Y__SIZE							0x00000010
+ #define  NV50TCL_VTX_ATTR_3F_Z(x)							(0x00000408+((x)*16))
+ #define  NV50TCL_VTX_ATTR_3F_Z__SIZE							0x00000010
+-#define  NV50TCL_VTX_ATTR_3F_W(x)							(0x0000040c+((x)*16))
+-#define  NV50TCL_VTX_ATTR_3F_W__SIZE							0x00000010
+ #define  NV50TCL_VTX_ATTR_4F_X(x)							(0x00000500+((x)*16))
+ #define  NV50TCL_VTX_ATTR_4F_X__SIZE							0x00000010
+ #define  NV50TCL_VTX_ATTR_4F_Y(x)							(0x00000504+((x)*16))
+@@ -7587,12 +7751,30 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ #define  NV50TCL_VTX_ATTR_4F_Z__SIZE							0x00000010
+ #define  NV50TCL_VTX_ATTR_4F_W(x)							(0x0000050c+((x)*16))
+ #define  NV50TCL_VTX_ATTR_4F_W__SIZE							0x00000010
++#define  NV50TCL_VTX_ATTR_4H_0(x)							(0x00000600+((x)*8))
++#define  NV50TCL_VTX_ATTR_4H_0__SIZE							0x00000010
++#define   NV50TCL_VTX_ATTR_4H_0_X_SHIFT							0
++#define   NV50TCL_VTX_ATTR_4H_0_X_MASK							0x0000ffff
++#define   NV50TCL_VTX_ATTR_4H_0_Y_SHIFT							16
++#define   NV50TCL_VTX_ATTR_4H_0_Y_MASK							0xffff0000
++#define  NV50TCL_VTX_ATTR_4H_1(x)							(0x00000604+((x)*8))


Reply to: