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 <r...@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_sta...@base 2.4.4 nouveau_notifier_wait_sta...@base 2.4.4 nouveau_pushbuf_emit_re...@base 2.4.4 + nouveau_pushbuf_f...@base 2.4.17-1ubuntu1~ nouveau_pushbuf_fl...@base 2.4.4 nouveau_pushbuf_i...@base 2.4.4 nouveau_pushbuf_marker_e...@base 2.4.16 commit 0aeb2401c69f7c755e21d1e2ff75c7734c3ab719 Author: Christopher James Halse Rogers <r...@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 <r...@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 <youne...@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.slus...@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.slus...@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 <r...@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 <r...@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 <koria...@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 <curroje...@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)) -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org