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: