libdrm: Changes to 'debian-unstable'
.gitignore | 1
ChangeLog | 677 +
Makefile.am | 1
configure.ac | 63
debian/changelog | 66
debian/control | 1
debian/copyright | 291
debian/libdrm-intel1.symbols | 4
debian/libdrm-nouveau1.install | 2
debian/libdrm-radeon1.symbols | 21
debian/libkms1.install | 1
debian/libkms1.symbols | 14
debian/patches/02_build_libkms_against_in_tree_drm.diff | 17
debian/patches/03_revert_abi_change.diff | 9131 +++++++++++++++-
debian/patches/04_fix_nouveau_bo_new_tile_segfault.diff | 21
debian/patches/series | 2
debian/rules | 15
include/drm/Makefile.am | 2
include/drm/drm.h | 2
include/drm/drm_mode.h | 37
include/drm/i915_drm.h | 59
include/drm/radeon_drm.h | 1
include/drm/vmwgfx_drm.h | 63
intel/Makefile.am | 3
intel/intel_atomic.h | 93
intel/intel_bufmgr.c | 32
intel/intel_bufmgr.h | 9
intel/intel_bufmgr_fake.c | 4
intel/intel_bufmgr_gem.c | 507
intel/intel_bufmgr_priv.h | 19
intel/intel_chipset.h | 90
intel/libdrm_intel.pc.in | 2
libdrm.pc.in | 2
libkms/Makefile.am | 8
libkms/intel.c | 2
libkms/internal.h | 2
libkms/libkms.pc.in | 2
libkms/linux.c | 4
libkms/nouveau.c | 220
nouveau/Makefile.am | 3
nouveau/libdrm_nouveau.pc.in | 3
nouveau/nouveau_bo.c | 2
nouveau/nouveau_channel.c | 2
nouveau/nouveau_class.h | 9041 ---------------
nouveau/nouveau_private.h | 1
nouveau/nouveau_reloc.c | 6
radeon/Makefile.am | 6
radeon/bof.c | 477
radeon/bof.h | 90
radeon/libdrm_radeon.pc.in | 2
radeon/radeon_bo.h | 1
radeon/radeon_bo_gem.c | 9
radeon/radeon_bo_gem.h | 1
radeon/radeon_cs.c | 6
radeon/radeon_cs.h | 4
radeon/radeon_cs_gem.c | 231
radeon/radeon_cs_int.h | 1
tests/Makefile.am | 10
tests/kmstest/main.c | 1
tests/modeprint/modeprint.c | 4
tests/modetest/modetest.c | 29
tests/vbltest/Makefile.am | 11
tests/vbltest/vbltest.c | 188
xf86atomic.h | 99
xf86drmMode.h | 2
65 files changed, 12268 insertions(+), 9453 deletions(-)
New commits:
commit 752295ba101d84b8e3e695621fa41ce9406104e1
Author: Julien Cristau <jcristau@debian.org>
Date: Tue Aug 24 19:32:36 2010 +0200
Drop 04_fix_nouveau_bo_new_tile_segfault.diff, applied upstream.
diff --git a/debian/changelog b/debian/changelog
index 9fcae3c..6be4f93 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,7 @@ libdrm (2.4.21-2) UNRELEASED; urgency=low
* Revert nouveau ABI update.
* Don't build libkms and vmwgfx.
+ * Drop 04_fix_nouveau_bo_new_tile_segfault.diff, applied upstream.
-- Julien Cristau <jcristau@debian.org> Tue, 24 Aug 2010 18:27:59 +0200
diff --git a/debian/patches/04_fix_nouveau_bo_new_tile_segfault.diff b/debian/patches/04_fix_nouveau_bo_new_tile_segfault.diff
deleted file mode 100644
index c8cc948..0000000
--- a/debian/patches/04_fix_nouveau_bo_new_tile_segfault.diff
+++ /dev/null
@@ -1,21 +0,0 @@
-Index: b/nouveau/nouveau_bo.c
-===================================================================
---- a/nouveau/nouveau_bo.c
-+++ b/nouveau/nouveau_bo.c
-@@ -198,14 +198,14 @@
- if (flags & (NOUVEAU_BO_VRAM | NOUVEAU_BO_GART)) {
- ret = nouveau_bo_kalloc(nvbo, NULL);
- if (ret) {
-- nouveau_bo_ref(NULL, (void *)nvbo);
-+ nouveau_bo_ref(NULL, (void *)&nvbo);
- return ret;
- }
-
- if (flags & NOUVEAU_BO_PIN) {
- ret = nouveau_bo_pin((void *)nvbo, nvbo->flags);
- if (ret) {
-- nouveau_bo_ref(NULL, (void *)nvbo);
-+ nouveau_bo_ref(NULL, (void *)&nvbo);
- return ret;
- }
- }
commit bc33639127b41cf0b0a4439b3e8ad822c4701889
Author: Julien Cristau <jcristau@debian.org>
Date: Tue Aug 24 19:28:26 2010 +0200
Don't build libkms and vmwgfx.
diff --git a/debian/changelog b/debian/changelog
index e83db4b..9fcae3c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
libdrm (2.4.21-2) UNRELEASED; urgency=low
* Revert nouveau ABI update.
+ * Don't build libkms and vmwgfx.
-- Julien Cristau <jcristau@debian.org> Tue, 24 Aug 2010 18:27:59 +0200
diff --git a/debian/control b/debian/control
index 6dbf6db..5968b3b 100644
--- a/debian/control
+++ b/debian/control
@@ -24,7 +24,6 @@ Depends:
libdrm-intel1 (= ${binary:Version}) [amd64 i386 kfreebsd-amd64 kfreebsd-i386],
libdrm-radeon1 (= ${binary:Version}) [linux-any],
libdrm-nouveau1 (= ${binary:Version}) [linux-any],
- libkms1 (= ${binary:Version}) [linux-any],
${misc:Depends},
Replaces:
linux-libc-dev (<< 2.6.32-10)
@@ -146,22 +145,3 @@ Description: Userspace interface to radeon-specific kernel DRM services -- debug
Linux to provide hardware-accelerated OpenGL drivers.
.
This package provides the debugging symbols for the libdrm-radeon1 package.
-
-Package: libkms1
-Section: libs
-Architecture: linux-any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: Userspace interface to kernel DRM buffer management
- This library implements a unified userspace interface to the different buffer
- management interfaces of the kernel DRM hardware drivers.
-
-Package: libkms1-dbg
-Section: debug
-Priority: extra
-Architecture: linux-any
-Depends: libkms1 (= ${binary:Version}), ${misc:Depends}
-Description: Userspace interface to kernel DRM buffer management -- debugging symbols
- This library implements a unified userspace interface to the different buffer
- management interfaces of the kernel DRM hardware drivers.
- .
- This package provides the debugging symbols for the libkms1 package.
diff --git a/debian/rules b/debian/rules
index 52ea2fb..09c0813 100755
--- a/debian/rules
+++ b/debian/rules
@@ -24,9 +24,9 @@ else
endif
ifeq (linux, $(DEB_HOST_ARCH_OS))
confflags += --enable-udev
- confflags += --enable-libkms
- LIBKMS = yes
- confflags += --enable-vmwgfx-experimental-api
+ confflags += --disable-libkms
+ LIBKMS = no
+ confflags += --disable-vmwgfx-experimental-api
confflags += --enable-nouveau-experimental-api
NOUVEAU = yes
confflags += --enable-radeon
commit 0775301a3d50a33faa4e85091230f1e83d832eca
Author: Julien Cristau <jcristau@debian.org>
Date: Tue Aug 24 19:18:07 2010 +0200
Regenerate ABI revert patch
diff --git a/debian/patches/03_revert_abi_change.diff b/debian/patches/03_revert_abi_change.diff
index 63ddc3c..4fd03e0 100644
--- a/debian/patches/03_revert_abi_change.diff
+++ b/debian/patches/03_revert_abi_change.diff
@@ -1,9 +1,39 @@
-Revert nouveau ABI change to match what is in 2.6.33.
+From e2fd682feb27986451db7c39880fc4d719ea7cfa Mon Sep 17 00:00:00 2001
+From: Julien Cristau <jcristau@debian.org>
+Date: Tue, 24 Aug 2010 19:12:17 +0200
+Subject: [PATCH] Revert nouveau ABI change to match what is in 2.6.33.
-This reverts commits after b496c63143e9a4ca02011582329bce2df99d9b7c
-except those that only touch the build system:
- e73af7f560c95ba9c665bead7fc8eb1471db9975
- 976e779f9cd0571dd2c218580485b39d37bd18a0
+Revert "nouveau: stop shipping nouveau_class.h"
+Revert "nouveau: fix annoying compiler warning"
+Revert "nouveau: remove unused field from nouveau_bo"
+Revert "nouveau: Regenerate nouveau_class.h."
+Revert "nouveau: Fix up the stride of NV20TCL_LIGHT_BACK_*."
+Revert "nouveau: Small lighting related addition to nouveau_class.h."
+Revert "nouveau: Update nouveau_class.h."
+Revert "nouveau: make sure initial kalloc for user bo ends up in the right place"
+Revert "nouveau: Update nouveau_class.h."
+Revert "nv30: update for 8 texture units"
+Revert "nv30: update for front/back stencil inversion"
+Revert "nouveau: bump MAX_PUSH to 512"
+Revert "nouveau: interface changes for 0.0.16 DRM"
+---
+ include/drm/nouveau_drm.h | 86 +-
+ nouveau/Makefile.am | 5 +-
+ nouveau/nouveau_bo.c | 83 +-
+ nouveau/nouveau_bo.h | 14 +
+ nouveau/nouveau_channel.c | 2 +-
+ nouveau/nouveau_channel.h | 5 +-
+ nouveau/nouveau_class.h | 9041 +++++++++++++++++++++++++++++++++++++++++++++
+ nouveau/nouveau_device.c | 8 +-
+ nouveau/nouveau_private.h | 14 +-
+ nouveau/nouveau_pushbuf.c | 375 ++-
+ nouveau/nouveau_pushbuf.h | 26 +-
+ nouveau/nouveau_reloc.c | 138 -
+ nouveau/nouveau_reloc.h | 32 -
+ 13 files changed, 9447 insertions(+), 382 deletions(-)
+ create mode 100644 nouveau/nouveau_class.h
+ delete mode 100644 nouveau/nouveau_reloc.c
+ delete mode 100644 nouveau/nouveau_reloc.h
diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h
index a6a9f4a..f745948 100644
@@ -163,7 +193,7 @@ index a6a9f4a..f745948 100644
#endif /* __NOUVEAU_DRM_H__ */
diff --git a/nouveau/Makefile.am b/nouveau/Makefile.am
-index b6d214a..217b7ef 100644
+index de3f4df..217b7ef 100644
--- a/nouveau/Makefile.am
+++ b/nouveau/Makefile.am
@@ -18,8 +18,7 @@ libdrm_nouveau_la_SOURCES = \
@@ -176,26 +206,21 @@ index b6d214a..217b7ef 100644
libdrm_nouveaucommonincludedir = ${includedir}/nouveau
libdrm_nouveaucommoninclude_HEADERS = \
-@@ -30,8 +29,7 @@ libdrm_nouveaucommoninclude_HEADERS = \
+@@ -30,7 +29,7 @@ libdrm_nouveaucommoninclude_HEADERS = \
nouveau_pushbuf.h \
nouveau_bo.h \
nouveau_resource.h \
-- nouveau_class.h \
- nouveau_reloc.h
+ nouveau_class.h
libdrm_nouveauincludedir = ${includedir}/libdrm
diff --git a/nouveau/nouveau_bo.c b/nouveau/nouveau_bo.c
-index 32b23b6..10cc8a6 100644
+index 32b23b6..b296e36 100644
--- a/nouveau/nouveau_bo.c
+++ b/nouveau/nouveau_bo.c
-@@ -198,9 +198,17 @@ nouveau_bo_new_tile(struct nouveau_device *dev, uint32_t flags, int align,
- if (flags & (NOUVEAU_BO_VRAM | NOUVEAU_BO_GART)) {
- ret = nouveau_bo_kalloc(nvbo, NULL);
- if (ret) {
-- nouveau_bo_ref(NULL, (void *)&nvbo);
-+ nouveau_bo_ref(NULL, (void *)nvbo);
+@@ -201,6 +201,14 @@ nouveau_bo_new_tile(struct nouveau_device *dev, uint32_t flags, int align,
+ nouveau_bo_ref(NULL, (void *)&nvbo);
return ret;
}
+
@@ -386,47 +411,1992 @@ index ddcf8e4..294f749 100644
struct nouveau_grobj *vram;
struct nouveau_grobj *gart;
diff --git a/nouveau/nouveau_class.h b/nouveau/nouveau_class.h
-index 0167cbc..8e7d0ff 100644
---- a/nouveau/nouveau_class.h
+new file mode 100644
+index 0000000..8e7d0ff
+--- /dev/null
+++ b/nouveau/nouveau_class.h
-@@ -1549,7 +1549,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- #define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_GOURAUD 0x00000080
- #define NV04_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_PHONG 0x000000c0
- #define NV04_TEXTURED_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE (1 << 8)
--#define NV04_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE (1 << 12)
+@@ -0,0 +1,9041 @@
++/*************************************************************************
++
++ Autogenerated file, do not edit !
++
++ This file was generated by renouveau-gen from renouveau.xml, the
++ XML database of nvidia objects and methods. renouveau-gen and
++ renouveau.xml can be found in CVS module renouveau of sourceforge.net
++ project nouveau:
++
++cvs -z3 -d:pserver:anonymous@nouveau.cvs.sourceforge.net:/cvsroot/nouveau co -P renouveau
++
++**************************************************************************
++
++ Copyright (C) 2006-2008 :
++ Dmitry Baryshkov,
++ Laurent Carlier,
++ Matthieu Castet,
++ Dawid Gajownik,
++ Jeremy Kolb,
++ Stephane Loeuillet,
++ Patrice Mandin,
++ Stephane Marchesin,
++ Serge Martin,
++ Sylvain Munaut,
++ Simon Raffeiner,
++ Ben Skeggs,
++ Erik Waling,
++ koala_br,
++
++All Rights Reserved.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice (including the
++next paragraph) shall be included in all copies or substantial
++portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++*************************************************************************/
++
++
++#ifndef NOUVEAU_REG_H
++#define NOUVEAU_REG_H 1
++
++
++#define NV01_ROOT 0x00000001
++
++
++
++#define NV01_CONTEXT_DMA 0x00000002
++
++
++
++#define NV01_DEVICE 0x00000003
++
++
++
++#define NV01_TIMER 0x00000004
++
++#define NV01_TIMER_SYNCHRONIZE 0x00000100
++#define NV01_TIMER_STOP_ALARM 0x00000104
++#define NV01_TIMER_DMA_NOTIFY 0x00000180
++#define NV01_TIMER_TIME(x) (0x00000300+((x)*4))
++#define NV01_TIMER_TIME__SIZE 0x00000002
++#define NV01_TIMER_ALARM_NOTIFY 0x00000308
++
++
++#define NV01_CONTEXT_BETA1 0x00000012
++
++#define NV01_CONTEXT_BETA1_NOP 0x00000100
++#define NV01_CONTEXT_BETA1_NOTIFY 0x00000104
++#define NV01_CONTEXT_BETA1_DMA_NOTIFY 0x00000180
++#define NV01_CONTEXT_BETA1_BETA_1D31 0x00000300
++
++
++#define NV01_CONTEXT_COLOR_KEY 0x00000017
++
++#define NV01_CONTEXT_COLOR_KEY_NOP 0x00000100
++#define NV01_CONTEXT_COLOR_KEY_NOTIFY 0x00000104
++#define NV01_CONTEXT_COLOR_KEY_DMA_NOTIFY 0x00000180
++#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT 0x00000300
++#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16A8Y8 0x00000001
++#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X24Y8 0x00000002
++#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16A1R5G5B5 0x00000003
++#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X17R5G5B5 0x00000004
++#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A8R8G8B8 0x00000005
++#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X8R8G8B8 0x00000006
++#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A16Y16 0x00000007
++#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16Y16 0x00000008
++#define NV01_CONTEXT_COLOR_KEY_COLOR 0x00000304
++
++
++#define NV04_CONTEXT_COLOR_KEY 0x00000057
++
++
++
++#define NV01_CONTEXT_PATTERN 0x00000018
++
++#define NV01_CONTEXT_PATTERN_NOP 0x00000100
++#define NV01_CONTEXT_PATTERN_NOTIFY 0x00000104
++#define NV01_CONTEXT_PATTERN_DMA_NOTIFY 0x00000180
++#define NV01_CONTEXT_PATTERN_COLOR_FORMAT 0x00000300
++#define NV01_CONTEXT_PATTERN_MONOCHROME_FORMAT 0x00000304
++#define NV01_CONTEXT_PATTERN_SHAPE 0x00000308
++#define NV01_CONTEXT_PATTERN_COLOR(x) (0x00000310+((x)*4))
++#define NV01_CONTEXT_PATTERN_COLOR__SIZE 0x00000002
++#define NV01_CONTEXT_PATTERN_PATTERN(x) (0x00000318+((x)*4))
++#define NV01_CONTEXT_PATTERN_PATTERN__SIZE 0x00000002
++
++
++#define NV01_CONTEXT_CLIP_RECTANGLE 0x00000019
++
++#define NV01_CONTEXT_CLIP_RECTANGLE_NOP 0x00000100
++#define NV01_CONTEXT_CLIP_RECTANGLE_NOTIFY 0x00000104
++#define NV01_CONTEXT_CLIP_RECTANGLE_DMA_NOTIFY 0x00000180
++#define NV01_CONTEXT_CLIP_RECTANGLE_POINT 0x00000300
++#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_X_SHIFT 0
++#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_X_MASK 0x0000ffff
++#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y_SHIFT 16
++#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y_MASK 0xffff0000
++#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE 0x00000304
++#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W_SHIFT 0
++#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W_MASK 0x0000ffff
++#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H_SHIFT 16
++#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H_MASK 0xffff0000
++
++
++#define NV01_RENDER_SOLID_LINE 0x0000001c
++
++#define NV01_RENDER_SOLID_LINE_NOP 0x00000100
++#define NV01_RENDER_SOLID_LINE_NOTIFY 0x00000104
++#define NV01_RENDER_SOLID_LINE_PATCH 0x0000010c
++#define NV01_RENDER_SOLID_LINE_DMA_NOTIFY 0x00000180
++#define NV01_RENDER_SOLID_LINE_CLIP_RECTANGLE 0x00000184
++#define NV01_RENDER_SOLID_LINE_PATTERN 0x00000188
++#define NV01_RENDER_SOLID_LINE_ROP 0x0000018c
++#define NV01_RENDER_SOLID_LINE_BETA1 0x00000190
++#define NV01_RENDER_SOLID_LINE_SURFACE 0x00000194
++#define NV01_RENDER_SOLID_LINE_OPERATION 0x000002fc
++#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_AND 0x00000000
++#define NV01_RENDER_SOLID_LINE_OPERATION_ROP_AND 0x00000001
++#define NV01_RENDER_SOLID_LINE_OPERATION_BLEND_AND 0x00000002
++#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY 0x00000003
++#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_PREMULT 0x00000004
++#define NV01_RENDER_SOLID_LINE_OPERATION_BLEND_PREMULT 0x00000005
++#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT 0x00000300
++#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16A8Y8 0x00000001
++#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X24Y8 0x00000002
++#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16A1R5G5B5 0x00000003
++#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X17R5G5B5 0x00000004
++#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A8R8G8B8 0x00000005
++#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X8R8G8B8 0x00000006
++#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A16Y16 0x00000007
++#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16Y16 0x00000008
++#define NV01_RENDER_SOLID_LINE_COLOR 0x00000304
++#define NV01_RENDER_SOLID_LINE_LINE_POINT0(x) (0x00000400+((x)*8))
++#define NV01_RENDER_SOLID_LINE_LINE_POINT0__SIZE 0x00000010
++#define NV01_RENDER_SOLID_LINE_LINE_POINT0_X_SHIFT 0
++#define NV01_RENDER_SOLID_LINE_LINE_POINT0_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_LINE_LINE_POINT0_Y_SHIFT 16
++#define NV01_RENDER_SOLID_LINE_LINE_POINT0_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_LINE_LINE_POINT1(x) (0x00000404+((x)*8))
++#define NV01_RENDER_SOLID_LINE_LINE_POINT1__SIZE 0x00000010
++#define NV01_RENDER_SOLID_LINE_LINE_POINT1_X_SHIFT 0
++#define NV01_RENDER_SOLID_LINE_LINE_POINT1_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_LINE_LINE_POINT1_Y_SHIFT 16
++#define NV01_RENDER_SOLID_LINE_LINE_POINT1_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_X(x) (0x00000480+((x)*16))
++#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_X__SIZE 0x00000010
++#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y(x) (0x00000484+((x)*16))
++#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y__SIZE 0x00000010
++#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_X(x) (0x00000488+((x)*16))
++#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_X__SIZE 0x00000010
++#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y(x) (0x0000048c+((x)*16))
++#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y__SIZE 0x00000010
++#define NV01_RENDER_SOLID_LINE_POLYLINE(x) (0x00000500+((x)*4))
++#define NV01_RENDER_SOLID_LINE_POLYLINE__SIZE 0x00000020
++#define NV01_RENDER_SOLID_LINE_POLYLINE_X_SHIFT 0
++#define NV01_RENDER_SOLID_LINE_POLYLINE_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_LINE_POLYLINE_Y_SHIFT 16
++#define NV01_RENDER_SOLID_LINE_POLYLINE_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X(x) (0x00000580+((x)*8))
++#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X__SIZE 0x00000010
++#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y(x) (0x00000584+((x)*8))
++#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y__SIZE 0x00000010
++#define NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR(x) (0x00000600+((x)*8))
++#define NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR__SIZE 0x00000010
++#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT(x) (0x00000604+((x)*8))
++#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT__SIZE 0x00000010
++#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X_SHIFT 0
++#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y_SHIFT 16
++#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y_MASK 0xffff0000
++
++
++#define NV04_RENDER_SOLID_LINE 0x0000005c
++
++#define NV04_RENDER_SOLID_LINE_BETA4 0x00000194
++#define NV04_RENDER_SOLID_LINE_SURFACE 0x00000198
++
++
++#define NV01_RENDER_SOLID_TRIANGLE 0x0000001d
++
++#define NV01_RENDER_SOLID_TRIANGLE_NOP 0x00000100
++#define NV01_RENDER_SOLID_TRIANGLE_NOTIFY 0x00000104
++#define NV01_RENDER_SOLID_TRIANGLE_PATCH 0x0000010c
++#define NV01_RENDER_SOLID_TRIANGLE_DMA_NOTIFY 0x00000180
++#define NV01_RENDER_SOLID_TRIANGLE_CLIP_RECTANGLE 0x00000184
++#define NV01_RENDER_SOLID_TRIANGLE_PATTERN 0x00000188
++#define NV01_RENDER_SOLID_TRIANGLE_ROP 0x0000018c
++#define NV01_RENDER_SOLID_TRIANGLE_BETA1 0x00000190
++#define NV01_RENDER_SOLID_TRIANGLE_SURFACE 0x00000194
++#define NV01_RENDER_SOLID_TRIANGLE_OPERATION 0x000002fc
++#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_AND 0x00000000
++#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_ROP_AND 0x00000001
++#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_AND 0x00000002
++#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY 0x00000003
++#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_PREMULT 0x00000004
++#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_PREMULT 0x00000005
++#define NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT 0x00000300
++#define NV01_RENDER_SOLID_TRIANGLE_COLOR 0x00000304
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0 0x00000310
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X_SHIFT 0
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y_SHIFT 16
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1 0x00000314
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X_SHIFT 0
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y_SHIFT 16
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2 0x00000318
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X_SHIFT 0
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y_SHIFT 16
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_X 0x00000320
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_Y 0x00000324
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_X 0x00000328
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_Y 0x0000032c
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_X 0x00000330
++#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_Y 0x00000334
++#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH(x) (0x00000400+((x)*4))
++#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH__SIZE 0x00000020
++#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X_SHIFT 0
++#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y_SHIFT 16
++#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X(x) (0x00000480+((x)*8))
++#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X__SIZE 0x00000010
++#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y(x) (0x00000484+((x)*8))
++#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y__SIZE 0x00000010
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR(x) (0x00000500+((x)*16))
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR__SIZE 0x00000008
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0(x) (0x00000504+((x)*16))
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0__SIZE 0x00000008
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X_SHIFT 0
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y_SHIFT 16
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1(x) (0x00000508+((x)*16))
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1__SIZE 0x00000008
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X_SHIFT 0
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y_SHIFT 16
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2(x) (0x0000050c+((x)*16))
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2__SIZE 0x00000008
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X_SHIFT 0
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y_SHIFT 16
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR(x) (0x00000580+((x)*8))
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR__SIZE 0x00000010
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT(x) (0x00000584+((x)*8))
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT__SIZE 0x00000010
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X_SHIFT 0
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y_SHIFT 16
++#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y_MASK 0xffff0000
++
++
++#define NV04_RENDER_SOLID_TRIANGLE 0x0000005d
++
++#define NV04_RENDER_SOLID_TRIANGLE_BETA4 0x00000194
++#define NV04_RENDER_SOLID_TRIANGLE_SURFACE 0x00000198
++
++
++#define NV01_RENDER_SOLID_RECTANGLE 0x0000001e
++
++#define NV01_RENDER_SOLID_RECTANGLE_NOP 0x00000100
++#define NV01_RENDER_SOLID_RECTANGLE_NOTIFY 0x00000104
++#define NV01_RENDER_SOLID_RECTANGLE_PATCH 0x0000010c
++#define NV01_RENDER_SOLID_RECTANGLE_DMA_NOTIFY 0x00000180
++#define NV01_RENDER_SOLID_RECTANGLE_CLIP_RECTANGLE 0x00000184
++#define NV01_RENDER_SOLID_RECTANGLE_PATTERN 0x00000188
++#define NV01_RENDER_SOLID_RECTANGLE_ROP 0x0000018c
++#define NV01_RENDER_SOLID_RECTANGLE_BETA1 0x00000190
++#define NV01_RENDER_SOLID_RECTANGLE_SURFACE 0x00000194
++#define NV01_RENDER_SOLID_RECTANGLE_OPERATION 0x000002fc
++#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_AND 0x00000000
++#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_ROP_AND 0x00000001
++#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_AND 0x00000002
++#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY 0x00000003
++#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_PREMULT 0x00000004
++#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_PREMULT 0x00000005
++#define NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT 0x00000300
++#define NV01_RENDER_SOLID_RECTANGLE_COLOR 0x00000304
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT(x) (0x00000400+((x)*8))
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT__SIZE 0x00000010
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X_SHIFT 0
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y_SHIFT 16
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y_MASK 0xffff0000
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE(x) (0x00000404+((x)*8))
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE__SIZE 0x00000010
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W_SHIFT 0
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W_MASK 0x0000ffff
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H_SHIFT 16
++#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H_MASK 0xffff0000
++
++
++#define NV04_RENDER_SOLID_RECTANGLE 0x0000005e
++
++#define NV04_RENDER_SOLID_RECTANGLE_BETA4 0x00000194
++#define NV04_RENDER_SOLID_RECTANGLE_SURFACE 0x00000198
++
++
++#define NV01_IMAGE_BLIT 0x0000001f
++
++#define NV01_IMAGE_BLIT_NOP 0x00000100
++#define NV01_IMAGE_BLIT_NOTIFY 0x00000104
++#define NV01_IMAGE_BLIT_PATCH 0x0000010c
++#define NV01_IMAGE_BLIT_DMA_NOTIFY 0x00000180
++#define NV01_IMAGE_BLIT_COLOR_KEY 0x00000184
++#define NV01_IMAGE_BLIT_CLIP_RECTANGLE 0x00000188
++#define NV01_IMAGE_BLIT_PATTERN 0x0000018c
++#define NV01_IMAGE_BLIT_ROP 0x00000190
++#define NV01_IMAGE_BLIT_BETA1 0x00000194
++#define NV01_IMAGE_BLIT_SURFACE 0x0000019c
++#define NV01_IMAGE_BLIT_OPERATION 0x000002fc
++#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY_AND 0x00000000
++#define NV01_IMAGE_BLIT_OPERATION_ROP_AND 0x00000001
++#define NV01_IMAGE_BLIT_OPERATION_BLEND_AND 0x00000002
++#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY 0x00000003
++#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY_PREMULT 0x00000004
++#define NV01_IMAGE_BLIT_OPERATION_BLEND_PREMULT 0x00000005
++#define NV01_IMAGE_BLIT_IMAGE_INPUT 0x00000204
++#define NV01_IMAGE_BLIT_POINT_IN 0x00000300
++#define NV01_IMAGE_BLIT_POINT_IN_X_SHIFT 0
++#define NV01_IMAGE_BLIT_POINT_IN_X_MASK 0x0000ffff
++#define NV01_IMAGE_BLIT_POINT_IN_Y_SHIFT 16
++#define NV01_IMAGE_BLIT_POINT_IN_Y_MASK 0xffff0000
++#define NV01_IMAGE_BLIT_POINT_OUT 0x00000304
++#define NV01_IMAGE_BLIT_POINT_OUT_X_SHIFT 0
++#define NV01_IMAGE_BLIT_POINT_OUT_X_MASK 0x0000ffff
++#define NV01_IMAGE_BLIT_POINT_OUT_Y_SHIFT 16
++#define NV01_IMAGE_BLIT_POINT_OUT_Y_MASK 0xffff0000
++#define NV01_IMAGE_BLIT_SIZE 0x00000308
++#define NV01_IMAGE_BLIT_SIZE_W_SHIFT 0
++#define NV01_IMAGE_BLIT_SIZE_W_MASK 0x0000ffff
++#define NV01_IMAGE_BLIT_SIZE_H_SHIFT 16
++#define NV01_IMAGE_BLIT_SIZE_H_MASK 0xffff0000
++
++
++#define NV04_IMAGE_BLIT 0x0000005f
++
++#define NV04_IMAGE_BLIT_ROP 0x00000190
++#define NV04_IMAGE_BLIT_BETA4 0x00000198
++#define NV04_IMAGE_BLIT_SURFACE 0x0000019c
++
++
++#define NV12_IMAGE_BLIT 0x0000009f
++
++#define NV12_IMAGE_BLIT_WAIT_FOR_IDLE 0x00000108
++
++
++#define NV01_IMAGE_FROM_CPU 0x00000021
++
++#define NV01_IMAGE_FROM_CPU_NOP 0x00000100
++#define NV01_IMAGE_FROM_CPU_NOTIFY 0x00000104
++#define NV01_IMAGE_FROM_CPU_PATCH 0x0000010c
++#define NV01_IMAGE_FROM_CPU_DMA_NOTIFY 0x00000180
++#define NV01_IMAGE_FROM_CPU_COLOR_KEY 0x00000184
++#define NV01_IMAGE_FROM_CPU_CLIP_RECTANGLE 0x00000188
++#define NV01_IMAGE_FROM_CPU_PATTERN 0x0000018c
++#define NV01_IMAGE_FROM_CPU_ROP 0x00000190
++#define NV01_IMAGE_FROM_CPU_BETA1 0x00000194
++#define NV01_IMAGE_FROM_CPU_SURFACE 0x00000198
++#define NV01_IMAGE_FROM_CPU_OPERATION 0x000002fc
++#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_AND 0x00000000
++#define NV01_IMAGE_FROM_CPU_OPERATION_ROP_AND 0x00000001
++#define NV01_IMAGE_FROM_CPU_OPERATION_BLEND_AND 0x00000002
++#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY 0x00000003
++#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_PREMULT 0x00000004
++#define NV01_IMAGE_FROM_CPU_OPERATION_BLEND_PREMULT 0x00000005
++#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT 0x00000300
++#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_Y8 0x00000001
++#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A1R5G5B5 0x00000002
++#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X1R5G5B5 0x00000003
++#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A8R8G8B8 0x00000004
++#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X8R8G8B8 0x00000005
++#define NV01_IMAGE_FROM_CPU_POINT 0x00000304
++#define NV01_IMAGE_FROM_CPU_POINT_X_SHIFT 0
++#define NV01_IMAGE_FROM_CPU_POINT_X_MASK 0x0000ffff
++#define NV01_IMAGE_FROM_CPU_POINT_Y_SHIFT 16
++#define NV01_IMAGE_FROM_CPU_POINT_Y_MASK 0xffff0000
++#define NV01_IMAGE_FROM_CPU_SIZE_OUT 0x00000308
++#define NV01_IMAGE_FROM_CPU_SIZE_OUT_W_SHIFT 0
++#define NV01_IMAGE_FROM_CPU_SIZE_OUT_W_MASK 0x0000ffff
++#define NV01_IMAGE_FROM_CPU_SIZE_OUT_H_SHIFT 16
++#define NV01_IMAGE_FROM_CPU_SIZE_OUT_H_MASK 0xffff0000
++#define NV01_IMAGE_FROM_CPU_SIZE_IN 0x0000030c
++#define NV01_IMAGE_FROM_CPU_SIZE_IN_W_SHIFT 0
++#define NV01_IMAGE_FROM_CPU_SIZE_IN_W_MASK 0x0000ffff
++#define NV01_IMAGE_FROM_CPU_SIZE_IN_H_SHIFT 16
++#define NV01_IMAGE_FROM_CPU_SIZE_IN_H_MASK 0xffff0000
++#define NV01_IMAGE_FROM_CPU_COLOR(x) (0x00000400+((x)*4))
++#define NV01_IMAGE_FROM_CPU_COLOR__SIZE 0x00000020
++
++
++#define NV04_IMAGE_FROM_CPU 0x00000061
++
++#define NV04_IMAGE_FROM_CPU_BETA4 0x00000198
++#define NV04_IMAGE_FROM_CPU_SURFACE 0x0000019c
++
++
++#define NV05_IMAGE_FROM_CPU 0x00000065
++
++#define NV05_IMAGE_FROM_CPU_COLOR_CONVERSION 0x000002f8
++
++
++#define NV10_IMAGE_FROM_CPU 0x0000008a
++
++#define NV10_IMAGE_FROM_CPU_WAIT_FOR_IDLE 0x00000108
++
++
++#define NV30_IMAGE_FROM_CPU 0x0000038a
++
++
++
++#define NV40_IMAGE_FROM_CPU 0x0000308a
++
++
++
++#define NV01_NULL 0x00000030
++
++
++
++#define NV03_STRETCHED_IMAGE_FROM_CPU 0x00000036
++
++#define NV03_STRETCHED_IMAGE_FROM_CPU_NOP 0x00000100
++#define NV03_STRETCHED_IMAGE_FROM_CPU_NOTIFY 0x00000104
++#define NV03_STRETCHED_IMAGE_FROM_CPU_PATCH 0x0000010c
++#define NV03_STRETCHED_IMAGE_FROM_CPU_DMA_NOTIFY 0x00000180
++#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_KEY 0x00000184
++#define NV03_STRETCHED_IMAGE_FROM_CPU_PATTERN 0x00000188
++#define NV03_STRETCHED_IMAGE_FROM_CPU_ROP 0x0000018c
++#define NV03_STRETCHED_IMAGE_FROM_CPU_BETA1 0x00000190
++#define NV03_STRETCHED_IMAGE_FROM_CPU_SURFACE 0x00000194
++#define NV03_STRETCHED_IMAGE_FROM_CPU_OPERATION 0x000002fc
++#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_FORMAT 0x00000300
++#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN 0x00000304
++#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W_SHIFT 0
++#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W_MASK 0x0000ffff
++#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H_SHIFT 16
++#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H_MASK 0xffff0000
++#define NV03_STRETCHED_IMAGE_FROM_CPU_DX_DU 0x00000308
++#define NV03_STRETCHED_IMAGE_FROM_CPU_DY_DV 0x0000030c
++#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT 0x00000310
++#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X_SHIFT 0
++#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X_MASK 0x0000ffff
++#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y_SHIFT 16
++#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y_MASK 0xffff0000
++#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE 0x00000314
++#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W_SHIFT 0
++#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W_MASK 0x0000ffff
++#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H_SHIFT 16
++#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H_MASK 0xffff0000
++#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4 0x00000318
++#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X_SHIFT 0
++#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X_MASK 0x0000ffff
++#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y_SHIFT 16
++#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y_MASK 0xffff0000
++#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR(x) (0x00000400+((x)*4))
++#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR__SIZE 0x00000020
++
++
++#define NV04_STRETCHED_IMAGE_FROM_CPU 0x00000076
++
++#define NV04_STRETCHED_IMAGE_FROM_CPU_BETA4 0x00000194
++#define NV04_STRETCHED_IMAGE_FROM_CPU_SURFACE 0x00000198
++
++
++#define NV05_STRETCHED_IMAGE_FROM_CPU 0x00000066
++
++#define NV05_STRETCHED_IMAGE_FROM_CPU_COLOR_CONVERSION 0x000002f8
++
++
++#define NV30_STRETCHED_IMAGE_FROM_CPU 0x00000366
++
++
++
++#define NV40_STRETCHED_IMAGE_FROM_CPU 0x00003066
++
++
++
++#define NV03_SCALED_IMAGE_FROM_MEMORY 0x00000037
++
++#define NV03_SCALED_IMAGE_FROM_MEMORY_NOP 0x00000100
++#define NV03_SCALED_IMAGE_FROM_MEMORY_NOTIFY 0x00000104
++#define NV03_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY 0x00000180
++#define NV03_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE 0x00000184
++#define NV03_SCALED_IMAGE_FROM_MEMORY_PATTERN 0x00000188
++#define NV03_SCALED_IMAGE_FROM_MEMORY_ROP 0x0000018c
++#define NV03_SCALED_IMAGE_FROM_MEMORY_BETA1 0x00000190
++#define NV03_SCALED_IMAGE_FROM_MEMORY_SURFACE 0x00000194
++#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT 0x00000300
++#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A1R5G5B5 0x00000001
++#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X1R5G5B5 0x00000002
++#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A8R8G8B8 0x00000003
++#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X8R8G8B8 0x00000004
++#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_V8YB8U8YA8 0x00000005
++#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_YB8V8YA8U8 0x00000006
++#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_R5G6B5 0x00000007
++#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_Y8 0x00000008
++#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_AY8 0x00000009
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION 0x00000304
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_AND 0x00000000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_ROP_AND 0x00000001
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_AND 0x00000002
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY 0x00000003
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_PREMULT 0x00000004
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_PREMULT 0x00000005
++#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT 0x00000308
++#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_SHIFT 0
++#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_MASK 0x0000ffff
++#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_SHIFT 16
++#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_MASK 0xffff0000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE 0x0000030c
++#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_SHIFT 0
++#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_MASK 0x0000ffff
++#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_SHIFT 16
++#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_MASK 0xffff0000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT 0x00000310
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_SHIFT 0
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_MASK 0x0000ffff
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_SHIFT 16
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_MASK 0xffff0000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE 0x00000314
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_SHIFT 0
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_MASK 0x0000ffff
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_SHIFT 16
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_MASK 0xffff0000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_DU_DX 0x00000318
++#define NV03_SCALED_IMAGE_FROM_MEMORY_DV_DY 0x0000031c
++#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE 0x00000400
++#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W_SHIFT 0
++#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W_MASK 0x0000ffff
++#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_SHIFT 16
++#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_MASK 0xffff0000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT 0x00000404
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_SHIFT 0
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_MASK 0x0000ffff
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_SHIFT 16
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_MASK 0x00ff0000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER 0x00010000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CORNER 0x00020000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_SHIFT 24
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_MASK 0xff000000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE 0x00000000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_BILINEAR 0x01000000
++#define NV03_SCALED_IMAGE_FROM_MEMORY_OFFSET 0x00000408
++#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT 0x0000040c
++#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U_SHIFT 0
++#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U_MASK 0x0000ffff
++#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V_SHIFT 16
++#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V_MASK 0xffff0000
++
++
++#define NV04_SCALED_IMAGE_FROM_MEMORY 0x00000077
++
++#define NV04_SCALED_IMAGE_FROM_MEMORY_BETA4 0x00000194
++#define NV04_SCALED_IMAGE_FROM_MEMORY_SURFACE 0x00000198
++
++
++#define NV05_SCALED_IMAGE_FROM_MEMORY 0x00000063
++
++#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION 0x000002fc
++#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER 0x00000000
++#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE 0x00000001
++#define NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_SUBTR_TRUNCATE 0x00000002
++
++
++#define NV10_SCALED_IMAGE_FROM_MEMORY 0x00000089
++
++#define NV10_SCALED_IMAGE_FROM_MEMORY_WAIT_FOR_IDLE 0x00000108
++
++
++#define NV30_SCALED_IMAGE_FROM_MEMORY 0x00000389
++
++
++
++#define NV40_SCALED_IMAGE_FROM_MEMORY 0x00003089
++
++
++
++#define NV04_DVD_SUBPICTURE 0x00000038
++
++#define NV04_DVD_SUBPICTURE_NOP 0x00000100
++#define NV04_DVD_SUBPICTURE_NOTIFY 0x00000104
++#define NV04_DVD_SUBPICTURE_DMA_NOTIFY 0x00000180
++#define NV04_DVD_SUBPICTURE_DMA_OVERLAY 0x00000184
++#define NV04_DVD_SUBPICTURE_DMA_IMAGEIN 0x00000188
++#define NV04_DVD_SUBPICTURE_DMA_IMAGEOUT 0x0000018c
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_POINT 0x00000300
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_X_SHIFT 0
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_X_MASK 0x0000ffff
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_Y_SHIFT 16
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_Y_MASK 0xffff0000
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE 0x00000304
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_W_SHIFT 0
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_W_MASK 0x0000ffff
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_H_SHIFT 16
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_H_MASK 0xffff0000
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT 0x00000308
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_PITCH_SHIFT 0
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_PITCH_MASK 0x0000ffff
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_COLOR_SHIFT 16
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_COLOR_MASK 0xffff0000
++#define NV04_DVD_SUBPICTURE_IMAGEOUT_OFFSET 0x0000030c
++#define NV04_DVD_SUBPICTURE_IMAGEIN_DELTA_DU_DX 0x00000310
++#define NV04_DVD_SUBPICTURE_IMAGEIN_DELTA_DV_DY 0x00000314
++#define NV04_DVD_SUBPICTURE_IMAGEIN_SIZE 0x00000318
++#define NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_W_SHIFT 0
++#define NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_W_MASK 0x0000ffff
++#define NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_H_SHIFT 16
++#define NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_H_MASK 0xffff0000
++#define NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT 0x0000031c
++#define NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_PITCH_SHIFT 0
++#define NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_PITCH_MASK 0x0000ffff
++#define NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_COLOR_SHIFT 16
++#define NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_COLOR_MASK 0xffff0000
++#define NV04_DVD_SUBPICTURE_IMAGEIN_OFFSET 0x00000320
++#define NV04_DVD_SUBPICTURE_IMAGEIN_POINT 0x00000324
++#define NV04_DVD_SUBPICTURE_IMAGEIN_POINT_U_SHIFT 0
++#define NV04_DVD_SUBPICTURE_IMAGEIN_POINT_U_MASK 0x0000ffff
++#define NV04_DVD_SUBPICTURE_IMAGEIN_POINT_V_SHIFT 16
++#define NV04_DVD_SUBPICTURE_IMAGEIN_POINT_V_MASK 0xffff0000
++#define NV04_DVD_SUBPICTURE_OVERLAY_DELTA_DU_DX 0x00000328
++#define NV04_DVD_SUBPICTURE_OVERLAY_DELTA_DV_DY 0x0000032c
++#define NV04_DVD_SUBPICTURE_OVERLAY_SIZE 0x00000330
++#define NV04_DVD_SUBPICTURE_OVERLAY_SIZE_W_SHIFT 0
++#define NV04_DVD_SUBPICTURE_OVERLAY_SIZE_W_MASK 0x0000ffff
++#define NV04_DVD_SUBPICTURE_OVERLAY_SIZE_H_SHIFT 16
++#define NV04_DVD_SUBPICTURE_OVERLAY_SIZE_H_MASK 0xffff0000
++#define NV04_DVD_SUBPICTURE_OVERLAY_FORMAT 0x00000334
++#define NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_PITCH_SHIFT 0
++#define NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_PITCH_MASK 0x0000ffff
++#define NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_COLOR_SHIFT 16
++#define NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_COLOR_MASK 0xffff0000
++#define NV04_DVD_SUBPICTURE_OVERLAY_OFFSET 0x00000338
++#define NV04_DVD_SUBPICTURE_OVERLAY_POINT 0x0000033c
++#define NV04_DVD_SUBPICTURE_OVERLAY_POINT_U_SHIFT 0
++#define NV04_DVD_SUBPICTURE_OVERLAY_POINT_U_MASK 0x0000ffff
++#define NV04_DVD_SUBPICTURE_OVERLAY_POINT_V_SHIFT 16
++#define NV04_DVD_SUBPICTURE_OVERLAY_POINT_V_MASK 0xffff0000
++
++
++#define NV10_DVD_SUBPICTURE 0x00000088
++
++#define NV10_DVD_SUBPICTURE_WAIT_FOR_IDLE 0x00000108
++
++
++#define NV04_MEMORY_TO_MEMORY_FORMAT 0x00000039
++
++#define NV04_MEMORY_TO_MEMORY_FORMAT_NOP 0x00000100
++#define NV04_MEMORY_TO_MEMORY_FORMAT_NOTIFY 0x00000104
++#define NV04_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY 0x00000180
++#define NV04_MEMORY_TO_MEMORY_FORMAT_DMA_BUFFER_IN 0x00000184
++#define NV04_MEMORY_TO_MEMORY_FORMAT_DMA_BUFFER_OUT 0x00000188
++#define NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN 0x0000030c
++#define NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT 0x00000310
++#define NV04_MEMORY_TO_MEMORY_FORMAT_PITCH_IN 0x00000314
++#define NV04_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT 0x00000318
++#define NV04_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN 0x0000031c
++#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 0x000000ff
++#define NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_SHIFT 8
Reply to: