debian/README.source                     |    2 
 debian/changelog                         |   14 
 debian/control                           |    1 
 debian/libdrm-nouveau1.install           |    2 
 debian/libdrm-nouveau1.symbols           |  103 -
 debian/patches/03_revert_abi_change.diff | 2118 -------------------------------
 debian/patches/series                    |    1 
 debian/rules                             |    2 
 debian/xsfbs/xsfbs.mk                    |   35 
 9 files changed, 85 insertions(+), 2193 deletions(-)

New commits:
commit 0005bf184af82c1e74d372383ac266c8621598a7
Author: Sven Joachim <svenj...@gmx.de>
Date:   Sat May 22 17:13:58 2010 +0200

    Include full SONAME in libdrm-nouveau1.install

diff --git a/debian/changelog b/debian/changelog
index 3c3882f..ee6125e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,7 @@ libdrm (2.4.20-3) UNRELEASED; urgency=low
       with an older libdrm-nouveau1 version.
     - Add versioned Breaks against xserver-xorg-video-nouveau to force
       an upgrade of that package and prevent X segfaults.
+  * Include full SONAME in libdrm-nouveau1.install.
   * Update xsfbs to 81fc271788605b52e85c2d11635a0371fb44605e0.
 
  -- Sven Joachim <svenj...@gmx.de>  Sat, 22 May 2010 13:47:34 +0200
diff --git a/debian/libdrm-nouveau1.install b/debian/libdrm-nouveau1.install
index 7650858..b19813f 100644
--- a/debian/libdrm-nouveau1.install
+++ b/debian/libdrm-nouveau1.install
@@ -1 +1 @@
-usr/lib/libdrm_nouveau.so.*
+usr/lib/libdrm_nouveau.so.1*

commit e09302a94cf5446ea4539e75fb07b497ac566989
Author: Sven Joachim <svenj...@gmx.de>
Date:   Sat May 22 14:22:31 2010 +0200

    Update libdrm-nouveau1 to the ABI of Linux 2.6.34
    
    Drop 03_revert_abi_change.diff.  Bump libdrm-nouveau shlibs and
    symbols versions to 2.4.20-3~ to ensure that packages built against
    this version are not used with an older libdrm-nouveau1 version.
    
    Add versioned Breaks against older xserver-xorg-video-nouveau packages
    which would segfault if used with this version of libdrm.

diff --git a/debian/changelog b/debian/changelog
index 6a60758..3c3882f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,5 +1,12 @@
 libdrm (2.4.20-3) UNRELEASED; urgency=low
 
+  * Update libdrm-nouveau1 to the ABI of Linux 2.6.34.
+    - Drop 03_revert_abi_change.diff.
+    - Bump libdrm-nouveau shlibs and symbols versions to 2.4.20-3~
+      to ensure that packages built against this version are not used
+      with an older libdrm-nouveau1 version.
+    - Add versioned Breaks against xserver-xorg-video-nouveau to force
+      an upgrade of that package and prevent X segfaults.
   * Update xsfbs to 81fc271788605b52e85c2d11635a0371fb44605e0.
 
  -- Sven Joachim <svenj...@gmx.de>  Sat, 22 May 2010 13:47:34 +0200
diff --git a/debian/control b/debian/control
index cf271d8..947dce4 100644
--- a/debian/control
+++ b/debian/control
@@ -99,6 +99,7 @@ Section: libs
 Architecture: linux-any
 Depends: ${shlibs:Depends},
  ${misc:Depends},
+Breaks: xserver-xorg-video-nouveau (<< 1:0.0.16)
 Description: Userspace interface to nouveau-specific kernel DRM services -- 
runtime
  This library implements the userspace interface to the nouveau-specific kernel
  DRM services. DRM stands for "Direct Rendering Manager", which is the
diff --git a/debian/libdrm-nouveau1.symbols b/debian/libdrm-nouveau1.symbols
index 48ce118..e71dbab 100644
--- a/debian/libdrm-nouveau1.symbols
+++ b/debian/libdrm-nouveau1.symbols
@@ -1,59 +1,46 @@
 libdrm_nouveau.so.1 libdrm-nouveau1 #MINVER#
-#MISSING: 2.4.12+git20090729.5a73f066# d...@base 2.4.4
- nouveau_bo_b...@base 2.4.4
- nouveau_bo_emit_buf...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_bo_f...@base 2.4.4
- nouveau_bo_handle_...@base 2.4.4
- nouveau_bo_handle_...@base 2.4.4
- nouveau_bo_i...@base 2.4.4
- nouveau_bo_...@base 2.4.4
- nouveau_bo_map_fl...@base 2.4.11-1ubuntu1~
- nouveau_bo_map_ra...@base 2.4.11-1ubuntu1~
- nouveau_bo_...@base 2.4.4
- nouveau_bo_new_t...@base 2.4.11-1ubuntu1~
- nouveau_bo_pend...@base 2.4.16
- nouveau_bo_...@base 2.4.4
- nouveau_bo_...@base 2.4.4
- nouveau_bo_taked...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_bo_t...@base 2.4.4
- nouveau_bo_un...@base 2.4.4
- nouveau_bo_un...@base 2.4.4
- nouveau_bo_u...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_bo_validate_n...@base 2.4.4
- nouveau_bo_w...@base 2.4.11-1ubuntu1~
- nouveau_channel_al...@base 2.4.4
- nouveau_channel_f...@base 2.4.4
- nouveau_device_cl...@base 2.4.4
- nouveau_device_get_pa...@base 2.4.4
- nouveau_device_o...@base 2.4.4
- nouveau_device_open_exist...@base 2.4.4
- nouveau_device_set_pa...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_dma_channel_i...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_dma_kick...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_dma_w...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_e...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_fl...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_signal...@base 2.4.4
-#MISSING: 2.4.12+git20090729.5a73f066# nouveau_fence_w...@base 2.4.4
- nouveau_grobj_al...@base 2.4.4
- nouveau_grobj_autob...@base 2.4.4
- nouveau_grobj_f...@base 2.4.4
- nouveau_grobj_...@base 2.4.4
- nouveau_notifier_al...@base 2.4.4
- nouveau_notifier_f...@base 2.4.4
- nouveau_notifier_re...@base 2.4.4
- nouveau_notifier_return_...@base 2.4.4
- 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
- nouveau_pushbuf_marker_u...@base 2.4.16
- nouveau_resource_al...@base 2.4.4
- nouveau_resource_dest...@base 2.4.18
- nouveau_resource_f...@base 2.4.4
- nouveau_resource_i...@base 2.4.4
+ nouveau_bo_b...@base 2.4.20-3~
+ nouveau_bo_emit_buf...@base 2.4.20-3~
+ nouveau_bo_handle_...@base 2.4.20-3~
+ nouveau_bo_handle_...@base 2.4.20-3~
+ nouveau_bo_i...@base 2.4.20-3~
+ nouveau_bo_...@base 2.4.20-3~
+ nouveau_bo_map_fl...@base 2.4.20-3~
+ nouveau_bo_map_ra...@base 2.4.20-3~
+ nouveau_bo_...@base 2.4.20-3~
+ nouveau_bo_new_t...@base 2.4.20-3~
+ nouveau_bo_pend...@base 2.4.20-3~
+ nouveau_bo_...@base 2.4.20-3~
+ nouveau_bo_taked...@base 2.4.20-3~
+ nouveau_bo_un...@base 2.4.20-3~
+ nouveau_bo_u...@base 2.4.20-3~
+ nouveau_bo_w...@base 2.4.20-3~
+ nouveau_channel_al...@base 2.4.20-3~
+ nouveau_channel_f...@base 2.4.20-3~
+ nouveau_device_cl...@base 2.4.20-3~
+ nouveau_device_get_pa...@base 2.4.20-3~
+ nouveau_device_o...@base 2.4.20-3~
+ nouveau_device_open_exist...@base 2.4.20-3~
+ nouveau_device_set_pa...@base 2.4.20-3~
+ nouveau_grobj_al...@base 2.4.20-3~
+ nouveau_grobj_autob...@base 2.4.20-3~
+ nouveau_grobj_f...@base 2.4.20-3~
+ nouveau_grobj_...@base 2.4.20-3~
+ nouveau_notifier_al...@base 2.4.20-3~
+ nouveau_notifier_f...@base 2.4.20-3~
+ nouveau_notifier_re...@base 2.4.20-3~
+ nouveau_notifier_return_...@base 2.4.20-3~
+ nouveau_notifier_sta...@base 2.4.20-3~
+ nouveau_notifier_wait_sta...@base 2.4.20-3~
+ nouveau_pushbuf_emit_re...@base 2.4.20-3~
+ nouveau_pushbuf_f...@base 2.4.20-3~
+ nouveau_pushbuf_fl...@base 2.4.20-3~
+ nouveau_pushbuf_i...@base 2.4.20-3~
+ nouveau_pushbuf_marker_e...@base 2.4.20-3~
+ nouveau_pushbuf_marker_u...@base 2.4.20-3~
+ nouveau_pushbuf_sub...@base 2.4.20-3~
+ nouveau_reloc_e...@base 2.4.20-3~
+ nouveau_resource_al...@base 2.4.20-3~
+ nouveau_resource_dest...@base 2.4.20-3~
+ nouveau_resource_f...@base 2.4.20-3~
+ nouveau_resource_i...@base 2.4.20-3~
diff --git a/debian/patches/03_revert_abi_change.diff 
b/debian/patches/03_revert_abi_change.diff
deleted file mode 100644
index 63ddc3c..0000000
--- a/debian/patches/03_revert_abi_change.diff
+++ /dev/null
@@ -1,2118 +0,0 @@
-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
-
-diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h
-index a6a9f4a..f745948 100644
---- a/include/drm/nouveau_drm.h
-+++ b/include/drm/nouveau_drm.h
-@@ -25,14 +25,13 @@
- #ifndef __NOUVEAU_DRM_H__
- #define __NOUVEAU_DRM_H__
- 
--#define NOUVEAU_DRM_HEADER_PATCHLEVEL 16
-+#define NOUVEAU_DRM_HEADER_PATCHLEVEL 15
- 
- struct drm_nouveau_channel_alloc {
-       uint32_t     fb_ctxdma_handle;
-       uint32_t     tt_ctxdma_handle;
- 
-       int          channel;
--      uint32_t     pushbuf_domains;
- 
-       /* Notifier memory */
-       uint32_t     notifier_handle;
-@@ -110,58 +109,68 @@ struct drm_nouveau_gem_new {
-       uint32_t align;
- };
- 
--#define NOUVEAU_GEM_MAX_BUFFERS 1024
--struct drm_nouveau_gem_pushbuf_bo_presumed {
--      uint32_t valid;
--      uint32_t domain;
--      uint64_t offset;
--};
--
- struct drm_nouveau_gem_pushbuf_bo {
-       uint64_t user_priv;
-       uint32_t handle;
-       uint32_t read_domains;
-       uint32_t write_domains;
-       uint32_t valid_domains;
--      struct drm_nouveau_gem_pushbuf_bo_presumed presumed;
-+      uint32_t presumed_ok;
-+      uint32_t presumed_domain;
-+      uint64_t presumed_offset;
- };
- 
- #define NOUVEAU_GEM_RELOC_LOW  (1 << 0)
- #define NOUVEAU_GEM_RELOC_HIGH (1 << 1)
- #define NOUVEAU_GEM_RELOC_OR   (1 << 2)
--#define NOUVEAU_GEM_MAX_RELOCS 1024
- struct drm_nouveau_gem_pushbuf_reloc {
--      uint32_t reloc_bo_index;
--      uint32_t reloc_bo_offset;
-       uint32_t bo_index;
-+      uint32_t reloc_index;
-       uint32_t flags;
-       uint32_t data;
-       uint32_t vor;
-       uint32_t tor;
- };
- 
--#define NOUVEAU_GEM_MAX_PUSH 512
--struct drm_nouveau_gem_pushbuf_push {
--      uint32_t bo_index;
--      uint32_t pad;
--      uint64_t offset;
--      uint64_t length;
--};
-+#define NOUVEAU_GEM_MAX_BUFFERS 1024
-+#define NOUVEAU_GEM_MAX_RELOCS 1024
- 
- struct drm_nouveau_gem_pushbuf {
-       uint32_t channel;
-+      uint32_t nr_dwords;
-       uint32_t nr_buffers;
-+      uint32_t nr_relocs;
-+      uint64_t dwords;
-       uint64_t buffers;
-+      uint64_t relocs;
-+};
-+
-+struct drm_nouveau_gem_pushbuf_call {
-+      uint32_t channel;
-+      uint32_t handle;
-+      uint32_t offset;
-+      uint32_t nr_buffers;
-       uint32_t nr_relocs;
--      uint32_t nr_push;
-+      uint32_t nr_dwords;
-+      uint64_t buffers;
-       uint64_t relocs;
--      uint64_t push;
-       uint32_t suffix0;
-       uint32_t suffix1;
-+      /* below only accessed for CALL2 */
-       uint64_t vram_available;
-       uint64_t gart_available;
- };
- 
-+struct drm_nouveau_gem_pin {
-+      uint32_t handle;
-+      uint32_t domain;
-+      uint64_t offset;
-+};
-+
-+struct drm_nouveau_gem_unpin {
-+      uint32_t handle;
-+};
-+
- #define NOUVEAU_GEM_CPU_PREP_NOWAIT                                  
0x00000001
- #define NOUVEAU_GEM_CPU_PREP_NOBLOCK                                 
0x00000002
- #define NOUVEAU_GEM_CPU_PREP_WRITE                                   
0x00000004
-@@ -174,6 +183,14 @@ struct drm_nouveau_gem_cpu_fini {
-       uint32_t handle;
- };
- 
-+struct drm_nouveau_gem_tile {
-+      uint32_t handle;
-+      uint32_t offset;
-+      uint32_t size;
-+      uint32_t tile_mode;
-+      uint32_t tile_flags;
-+};
-+
- enum nouveau_bus_type {
-       NV_AGP     = 0,
-       NV_PCI     = 1,
-@@ -183,17 +200,22 @@ enum nouveau_bus_type {
- struct drm_nouveau_sarea {
- };
- 
--#define DRM_NOUVEAU_GETPARAM           0x00
--#define DRM_NOUVEAU_SETPARAM           0x01
--#define DRM_NOUVEAU_CHANNEL_ALLOC      0x02
--#define DRM_NOUVEAU_CHANNEL_FREE       0x03
--#define DRM_NOUVEAU_GROBJ_ALLOC        0x04
--#define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC  0x05
--#define DRM_NOUVEAU_GPUOBJ_FREE        0x06
-+#define DRM_NOUVEAU_CARD_INIT          0x00
-+#define DRM_NOUVEAU_GETPARAM           0x01
-+#define DRM_NOUVEAU_SETPARAM           0x02
-+#define DRM_NOUVEAU_CHANNEL_ALLOC      0x03
-+#define DRM_NOUVEAU_CHANNEL_FREE       0x04
-+#define DRM_NOUVEAU_GROBJ_ALLOC        0x05
-+#define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC  0x06
-+#define DRM_NOUVEAU_GPUOBJ_FREE        0x07
- #define DRM_NOUVEAU_GEM_NEW            0x40
- #define DRM_NOUVEAU_GEM_PUSHBUF        0x41
--#define DRM_NOUVEAU_GEM_CPU_PREP       0x42
--#define DRM_NOUVEAU_GEM_CPU_FINI       0x43
--#define DRM_NOUVEAU_GEM_INFO           0x44
-+#define DRM_NOUVEAU_GEM_PUSHBUF_CALL   0x42
-+#define DRM_NOUVEAU_GEM_PIN            0x43 /* !KMS only */
-+#define DRM_NOUVEAU_GEM_UNPIN          0x44 /* !KMS only */
-+#define DRM_NOUVEAU_GEM_CPU_PREP       0x45
-+#define DRM_NOUVEAU_GEM_CPU_FINI       0x46
-+#define DRM_NOUVEAU_GEM_INFO           0x47
-+#define DRM_NOUVEAU_GEM_PUSHBUF_CALL2  0x48
- 
- #endif /* __NOUVEAU_DRM_H__ */
-diff --git a/nouveau/Makefile.am b/nouveau/Makefile.am
-index b6d214a..217b7ef 100644
---- a/nouveau/Makefile.am
-+++ b/nouveau/Makefile.am
-@@ -18,8 +18,7 @@ libdrm_nouveau_la_SOURCES = \
-                           nouveau_notifier.c \
-                           nouveau_bo.c \
-                           nouveau_resource.c \
--                          nouveau_private.h \
--                          nouveau_reloc.c
-+                          nouveau_private.h
- 
- libdrm_nouveaucommonincludedir = ${includedir}/nouveau
- libdrm_nouveaucommoninclude_HEADERS = \
-@@ -30,8 +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
---- 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);
-                       return ret;
-               }
-+
-+              if (flags & NOUVEAU_BO_PIN) {
-+                      ret = nouveau_bo_pin((void *)nvbo, nvbo->flags);
-+                      if (ret) {
-+                              nouveau_bo_ref(NULL, (void *)nvbo);
-+                              return ret;
-+                      }
-+              }
-       }
- 
-       *bo = &nvbo->base;
-@@ -211,7 +219,16 @@ int
- nouveau_bo_new(struct nouveau_device *dev, uint32_t flags, int align,
-              int size, struct nouveau_bo **bo)
- {
--      return nouveau_bo_new_tile(dev, flags, align, size, 0, 0, bo);
-+      uint32_t tile_flags = 0;
-+
-+      if (flags & NOUVEAU_BO_TILED) {
-+              if (flags & NOUVEAU_BO_ZTILE)
-+                      tile_flags = 0x2800;
-+              else
-+                      tile_flags = 0x7000;
-+      }
-+
-+      return nouveau_bo_new_tile(dev, flags, align, size, 0, tile_flags, bo);
- }
- 
- int
-@@ -466,6 +483,62 @@ nouveau_bo_unmap(struct nouveau_bo *bo)
- }
- 
- int
-+nouveau_bo_pin(struct nouveau_bo *bo, uint32_t flags)
-+{
-+      struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
-+      struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
-+      struct drm_nouveau_gem_pin req;
-+      int ret;
-+
-+      if (nvbo->pinned)
-+              return 0;
-+
-+      if (!nvbo->handle)
-+              return -EINVAL;
-+
-+      /* Now force it to stay put :) */
-+      req.handle = nvbo->handle;
-+      req.domain = 0;
-+      if (flags & NOUVEAU_BO_VRAM)
-+              req.domain |= NOUVEAU_GEM_DOMAIN_VRAM;
-+      if (flags & NOUVEAU_BO_GART)
-+              req.domain |= NOUVEAU_GEM_DOMAIN_GART;
-+
-+      ret = drmCommandWriteRead(nvdev->fd, DRM_NOUVEAU_GEM_PIN, &req,
-+                                sizeof(struct drm_nouveau_gem_pin));
-+      if (ret)
-+              return ret;
-+      nvbo->offset = req.offset;
-+      nvbo->domain = req.domain;
-+      nvbo->pinned = 1;
-+
-+      /* Fill in public nouveau_bo members */
-+      if (nvbo->domain & NOUVEAU_GEM_DOMAIN_VRAM)
-+              bo->flags = NOUVEAU_BO_VRAM;
-+      if (nvbo->domain & NOUVEAU_GEM_DOMAIN_GART)
-+              bo->flags = NOUVEAU_BO_GART;
-+      bo->offset = nvbo->offset;
-+
-+      return 0;
-+}
-+
-+void
-+nouveau_bo_unpin(struct nouveau_bo *bo)
-+{
-+      struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
-+      struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
-+      struct drm_nouveau_gem_unpin req;
-+
-+      if (!nvbo->pinned)
-+              return;
-+
-+      req.handle = nvbo->handle;
-+      drmCommandWrite(nvdev->fd, DRM_NOUVEAU_GEM_UNPIN, &req, sizeof(req));
-+
-+      nvbo->pinned = bo->offset = bo->flags = 0;
-+}
-+
-+int
- nouveau_bo_busy(struct nouveau_bo *bo, uint32_t access)
- {
-       return nouveau_bo_wait(bo, (access & NOUVEAU_BO_WR), 1, 1);
-@@ -492,7 +565,7 @@ nouveau_bo_pending(struct nouveau_bo *bo)
- struct drm_nouveau_gem_pushbuf_bo *
- nouveau_bo_emit_buffer(struct nouveau_channel *chan, struct nouveau_bo *bo)
- {
--      struct nouveau_pushbuf_priv *nvpb = &nouveau_channel(chan)->pb;
-+      struct nouveau_pushbuf_priv *nvpb = nouveau_pushbuf(chan->pushbuf);
-       struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
-       struct drm_nouveau_gem_pushbuf_bo *pbbo;
-       struct nouveau_bo *ref = NULL;
-@@ -534,8 +607,8 @@ nouveau_bo_emit_buffer(struct nouveau_channel *chan, 
struct nouveau_bo *bo)
-       pbbo->valid_domains = NOUVEAU_GEM_DOMAIN_VRAM | NOUVEAU_GEM_DOMAIN_GART;
-       pbbo->read_domains = 0;
-       pbbo->write_domains = 0;
--      pbbo->presumed.domain = nvbo->domain;
--      pbbo->presumed.offset = nvbo->offset;
--      pbbo->presumed.valid = 1;
-+      pbbo->presumed_domain = nvbo->domain;
-+      pbbo->presumed_offset = nvbo->offset;
-+      pbbo->presumed_ok = 1;
-       return pbbo;
- }
-diff --git a/nouveau/nouveau_bo.h b/nouveau/nouveau_bo.h
-index 1e77ab0..fdad63e 100644
---- a/nouveau/nouveau_bo.h
-+++ b/nouveau/nouveau_bo.h
-@@ -30,9 +30,13 @@
- #define NOUVEAU_BO_WR     (1 << 3)
- #define NOUVEAU_BO_RDWR   (NOUVEAU_BO_RD | NOUVEAU_BO_WR)
- #define NOUVEAU_BO_MAP    (1 << 4)
-+#define NOUVEAU_BO_PIN    (1 << 5)
- #define NOUVEAU_BO_LOW    (1 << 6)
- #define NOUVEAU_BO_HIGH   (1 << 7)
- #define NOUVEAU_BO_OR     (1 << 8)
-+#define NOUVEAU_BO_LOCAL  (1 << 9)
-+#define NOUVEAU_BO_TILED  (1 << 10)
-+#define NOUVEAU_BO_ZTILE  (1 << 11)
- #define NOUVEAU_BO_INVAL  (1 << 12)
- #define NOUVEAU_BO_NOSYNC (1 << 13)
- #define NOUVEAU_BO_NOWAIT (1 << 14)
-@@ -48,6 +52,10 @@ struct nouveau_bo {
- 
-       uint32_t tile_mode;
-       uint32_t tile_flags;
-+
-+      /* Available when buffer is pinned *only* */
-+      uint32_t flags;
-+      uint64_t offset;
- };
- 
- int
-@@ -90,6 +98,12 @@ void
- nouveau_bo_unmap(struct nouveau_bo *);
- 
- int
-+nouveau_bo_pin(struct nouveau_bo *, uint32_t flags);
-+
-+void
-+nouveau_bo_unpin(struct nouveau_bo *);
-+
-+int
- nouveau_bo_busy(struct nouveau_bo *, uint32_t access);
- 
- uint32_t
-diff --git a/nouveau/nouveau_channel.c b/nouveau/nouveau_channel.c
-index 40a0b34..5622c1d 100644
---- a/nouveau/nouveau_channel.c
-+++ b/nouveau/nouveau_channel.c
-@@ -106,7 +106,7 @@ nouveau_channel_free(struct nouveau_channel **chan)
-       struct nouveau_channel_priv *nvchan;
-       struct nouveau_device_priv *nvdev;
-       struct drm_nouveau_channel_free cf;
--      unsigned i;
-+      int i;
- 
-       if (!chan || !*chan)
-               return;
-diff --git a/nouveau/nouveau_channel.h b/nouveau/nouveau_channel.h
-index ddcf8e4..294f749 100644
---- a/nouveau/nouveau_channel.h
-+++ b/nouveau/nouveau_channel.h
-@@ -29,12 +29,11 @@ struct nouveau_subchannel {
- };
- 
- struct nouveau_channel {
--      uint32_t *cur;
--      uint32_t *end;
--
-       struct nouveau_device *device;
-       int id;
- 
-+      struct nouveau_pushbuf *pushbuf;
-+
-       struct nouveau_grobj *nullobj;
-       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
-+++ 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)
-+#define   NV04_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE_SHIFT                  
        12
-+#define   NV04_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE_MASK                   
        0x0000f000
- #define   NV04_TEXTURED_TRIANGLE_BLEND_FOG_ENABLE                             
        (1 << 16)
- #define   NV04_TEXTURED_TRIANGLE_BLEND_BLEND_ENABLE                           
        (1 << 20)
- #define   NV04_TEXTURED_TRIANGLE_BLEND_SRC_SHIFT                              
        24
-@@ -1797,7 +1798,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
- #define    NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_GOURAUD                    
        0x00000080
- #define    NV04_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_PHONG                      
        0x000000c0
- #define   NV04_MULTITEX_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE             
        (1 <<  8)
--#define   NV04_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE                        
                (1 << 12)
-+#define   NV04_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE_SHIFT                  
        12
-+#define   NV04_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE_MASK                   
        0x0000f000
- #define   NV04_MULTITEX_TRIANGLE_BLEND_FOG_ENABLE                             
        (1 << 16)
- #define   NV04_MULTITEX_TRIANGLE_BLEND_BLEND_ENABLE                           
        (1 << 20)
- #define   NV04_MULTITEX_TRIANGLE_BLEND_SRC_SHIFT                              
        24
-@@ -1961,10 +1963,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
- #define   NV10TCL_TX_FORMAT_DMA1                                              
        (1 <<  1)
- #define   NV10TCL_TX_FORMAT_CUBE_MAP                                          
        (1 <<  2)
- #define   NV10TCL_TX_FORMAT_FORMAT_SHIFT                                      
        7
--#define   NV10TCL_TX_FORMAT_FORMAT_MASK                                       
                0x00000f80
-+#define   NV10TCL_TX_FORMAT_FORMAT_MASK                                       
                0x00000780
- #define    NV10TCL_TX_FORMAT_FORMAT_L8                                        
                0x00000000
- #define    NV10TCL_TX_FORMAT_FORMAT_A8                                        
                0x00000080
- #define    NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5                                  
        0x00000100
-+#define    NV10TCL_TX_FORMAT_FORMAT_A8_RECT                                   
        0x00000180
- #define    NV10TCL_TX_FORMAT_FORMAT_A4R4G4B4                                  
        0x00000200
- #define    NV10TCL_TX_FORMAT_FORMAT_R5G6B5                                    
        0x00000280
- #define    NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8                                  
        0x00000300
-@@ -1976,7 +1979,25 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
- #define    NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT                             
        0x00000800
- #define    NV10TCL_TX_FORMAT_FORMAT_R5G6B5_RECT                               
                0x00000880
- #define    NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT                             
        0x00000900
--#define    NV10TCL_TX_FORMAT_FORMAT_A8_RECT                                   
        0x00000980
-+#define    NV10TCL_TX_FORMAT_FORMAT_L8_RECT                                   
        0x00000980
-+#define    NV10TCL_TX_FORMAT_FORMAT_A8L8                                      
        0x00000d00
-+#define    NV10TCL_TX_FORMAT_FORMAT_A8_RECT2                                  
        0x00000d80
-+#define    NV10TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT                             
        0x00000e80
-+#define    NV10TCL_TX_FORMAT_FORMAT_R8G8B8_RECT                               
                0x00000f00
-+#define    NV10TCL_TX_FORMAT_FORMAT_L8A8_RECT                                 
        0x00001000
-+#define    NV10TCL_TX_FORMAT_FORMAT_DSDT                                      
        0x00001400
-+#define    NV10TCL_TX_FORMAT_FORMAT_A16                                       
                0x00001900
-+#define    NV10TCL_TX_FORMAT_FORMAT_HILO16                                    
        0x00001980
-+#define    NV10TCL_TX_FORMAT_FORMAT_A16_RECT                                  
        0x00001a80
-+#define    NV10TCL_TX_FORMAT_FORMAT_HILO16_RECT                               
                0x00001b00
-+#define    NV10TCL_TX_FORMAT_FORMAT_HILO8                                     
        0x00002200
-+#define    NV10TCL_TX_FORMAT_FORMAT_SIGNED_HILO8                              
        0x00002280
-+#define    NV10TCL_TX_FORMAT_FORMAT_HILO8_RECT                                
                0x00002300
-+#define    NV10TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT                         
        0x00002380
-+#define    NV10TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV                           
        0x00002500
-+#define    NV10TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV                           
        0x00002580
-+#define    NV10TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV                              
        0x00002600
-+#define   NV10TCL_TX_FORMAT_NPOT                                              
        (1 << 11)
- #define   NV10TCL_TX_FORMAT_MIPMAP                                            
        (1 << 15)
- #define   NV10TCL_TX_FORMAT_BASE_SIZE_U_SHIFT                                 
        16
- #define   NV10TCL_TX_FORMAT_BASE_SIZE_U_MASK                                  
        0x000f0000
-@@ -2617,7 +2638,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
- #define    NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY                        
                0xc0000000
- #define    NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE                          
        0xe0000000
- #define  NV10TCL_LIGHT_MODEL                                                  
        0x00000294
--#define   NV10TCL_LIGHT_MODEL_VERTEX_SPECULAR                                 
        (1 <<  0)
- #define   NV10TCL_LIGHT_MODEL_SEPARATE_SPECULAR                               
                (1 <<  1)
- #define   NV10TCL_LIGHT_MODEL_LOCAL_VIEWER                                    
        (1 << 16)
- #define  NV10TCL_COLOR_MATERIAL                                               
                0x00000298
-@@ -2866,38 +2886,38 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
- #define    NV10TCL_ENABLED_LIGHTS_7_NONPOSITIONAL                             
        0x00004000
- #define    NV10TCL_ENABLED_LIGHTS_7_POSITIONAL                                
                0x00008000
- #define    NV10TCL_ENABLED_LIGHTS_7_DIRECTIONAL                               
                0x0000c000
--#define  NV10TCL_TX_GEN_MODE_S(x)                                             
        (0x000003c0+((x)*16))
--#define  NV10TCL_TX_GEN_MODE_S__SIZE                                          
        0x00000002
--#define   NV10TCL_TX_GEN_MODE_S_FALSE                                         
        0x00000000
--#define   NV10TCL_TX_GEN_MODE_S_EYE_LINEAR                                    
        0x00002400
--#define   NV10TCL_TX_GEN_MODE_S_OBJECT_LINEAR                                 
        0x00002401
--#define   NV10TCL_TX_GEN_MODE_S_SPHERE_MAP                                    
        0x00002402
--#define   NV10TCL_TX_GEN_MODE_S_NORMAL_MAP                                    
        0x00008511
--#define   NV10TCL_TX_GEN_MODE_S_REFLECTION_MAP                                
                0x00008512
--#define  NV10TCL_TX_GEN_MODE_T(x)                                             
        (0x000003c4+((x)*16))
--#define  NV10TCL_TX_GEN_MODE_T__SIZE                                          
        0x00000002
--#define   NV10TCL_TX_GEN_MODE_T_FALSE                                         
        0x00000000
--#define   NV10TCL_TX_GEN_MODE_T_EYE_LINEAR                                    
        0x00002400
--#define   NV10TCL_TX_GEN_MODE_T_OBJECT_LINEAR                                 
        0x00002401
--#define   NV10TCL_TX_GEN_MODE_T_SPHERE_MAP                                    
        0x00002402
--#define   NV10TCL_TX_GEN_MODE_T_NORMAL_MAP                                    
        0x00008511
--#define   NV10TCL_TX_GEN_MODE_T_REFLECTION_MAP                                
                0x00008512
--#define  NV10TCL_TX_GEN_MODE_R(x)                                             
        (0x000003c8+((x)*16))
--#define  NV10TCL_TX_GEN_MODE_R__SIZE                                          
        0x00000002
--#define   NV10TCL_TX_GEN_MODE_R_FALSE                                         
        0x00000000
--#define   NV10TCL_TX_GEN_MODE_R_EYE_LINEAR                                    
        0x00002400
--#define   NV10TCL_TX_GEN_MODE_R_OBJECT_LINEAR                                 
        0x00002401
--#define   NV10TCL_TX_GEN_MODE_R_SPHERE_MAP                                    
        0x00002402
--#define   NV10TCL_TX_GEN_MODE_R_NORMAL_MAP                                    
        0x00008511
--#define   NV10TCL_TX_GEN_MODE_R_REFLECTION_MAP                                
                0x00008512
--#define  NV10TCL_TX_GEN_MODE_Q(x)                                             
        (0x000003cc+((x)*16))
--#define  NV10TCL_TX_GEN_MODE_Q__SIZE                                          
        0x00000002
--#define   NV10TCL_TX_GEN_MODE_Q_FALSE                                         
        0x00000000
--#define   NV10TCL_TX_GEN_MODE_Q_EYE_LINEAR                                    
        0x00002400
--#define   NV10TCL_TX_GEN_MODE_Q_OBJECT_LINEAR                                 
        0x00002401
--#define   NV10TCL_TX_GEN_MODE_Q_SPHERE_MAP                                    
        0x00002402
--#define   NV10TCL_TX_GEN_MODE_Q_NORMAL_MAP                                    
        0x00008511
--#define   NV10TCL_TX_GEN_MODE_Q_REFLECTION_MAP                                
                0x00008512
-+#define  NV10TCL_TX_GEN_S(x)                                                  
        (0x000003c0+((x)*16))
-+#define  NV10TCL_TX_GEN_S__SIZE                                               
                0x00000002
-+#define   NV10TCL_TX_GEN_S_FALSE                                              
        0x00000000
-+#define   NV10TCL_TX_GEN_S_EYE_LINEAR                                         
        0x00002400
-+#define   NV10TCL_TX_GEN_S_OBJECT_LINEAR                                      
        0x00002401
-+#define   NV10TCL_TX_GEN_S_SPHERE_MAP                                         
        0x00002402
-+#define   NV10TCL_TX_GEN_S_NORMAL_MAP                                         
        0x00008511
-+#define   NV10TCL_TX_GEN_S_REFLECTION_MAP                                     
        0x00008512
-+#define  NV10TCL_TX_GEN_T(x)                                                  
        (0x000003c4+((x)*16))
-+#define  NV10TCL_TX_GEN_T__SIZE                                               
                0x00000002
-+#define   NV10TCL_TX_GEN_T_FALSE                                              
        0x00000000
-+#define   NV10TCL_TX_GEN_T_EYE_LINEAR                                         
        0x00002400
-+#define   NV10TCL_TX_GEN_T_OBJECT_LINEAR                                      
        0x00002401
-+#define   NV10TCL_TX_GEN_T_SPHERE_MAP                                         
        0x00002402
-+#define   NV10TCL_TX_GEN_T_NORMAL_MAP                                         
        0x00008511
-+#define   NV10TCL_TX_GEN_T_REFLECTION_MAP                                     
        0x00008512
-+#define  NV10TCL_TX_GEN_R(x)                                                  
        (0x000003c8+((x)*16))
-+#define  NV10TCL_TX_GEN_R__SIZE                                               
                0x00000002
-+#define   NV10TCL_TX_GEN_R_FALSE                                              
        0x00000000
-+#define   NV10TCL_TX_GEN_R_EYE_LINEAR                                         
        0x00002400
-+#define   NV10TCL_TX_GEN_R_OBJECT_LINEAR                                      
        0x00002401
-+#define   NV10TCL_TX_GEN_R_SPHERE_MAP                                         
        0x00002402
-+#define   NV10TCL_TX_GEN_R_NORMAL_MAP                                         
        0x00008511
-+#define   NV10TCL_TX_GEN_R_REFLECTION_MAP                                     
        0x00008512
-+#define  NV10TCL_TX_GEN_Q(x)                                                  
        (0x000003cc+((x)*16))
-+#define  NV10TCL_TX_GEN_Q__SIZE                                               
                0x00000002
-+#define   NV10TCL_TX_GEN_Q_FALSE                                              
        0x00000000
-+#define   NV10TCL_TX_GEN_Q_EYE_LINEAR                                         
        0x00002400
-+#define   NV10TCL_TX_GEN_Q_OBJECT_LINEAR                                      
        0x00002401
-+#define   NV10TCL_TX_GEN_Q_SPHERE_MAP                                         
        0x00002402
-+#define   NV10TCL_TX_GEN_Q_NORMAL_MAP                                         
        0x00008511
-+#define   NV10TCL_TX_GEN_Q_REFLECTION_MAP                                     
        0x00008512
- #define  NV10TCL_TX_MATRIX_ENABLE(x)                                          
        (0x000003e0+((x)*4))
- #define  NV10TCL_TX_MATRIX_ENABLE__SIZE                                       
                0x00000002
- #define  NV10TCL_VIEW_MATRIX_ENABLE                                           
        0x000003e8
-@@ -2919,38 +2939,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
- #define  NV10TCL_TX0_MATRIX__SIZE                                             
        0x00000010
- #define  NV10TCL_TX1_MATRIX(x)                                                
                (0x00000580+((x)*4))
- #define  NV10TCL_TX1_MATRIX__SIZE                                             
        0x00000010
--#define  NV10TCL_TX_GEN_COEFF_S_A(x)                                          
        (0x00000600+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_S_A__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_S_B(x)                                          
        (0x00000604+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_S_B__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_S_C(x)                                          
        (0x00000608+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_S_C__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_S_D(x)                                          
        (0x0000060c+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_S_D__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_T_A(x)                                          
        (0x00000610+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_T_A__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_T_B(x)                                          
        (0x00000614+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_T_B__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_T_C(x)                                          
        (0x00000618+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_T_C__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_T_D(x)                                          
        (0x0000061c+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_T_D__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_R_A(x)                                          
        (0x00000620+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_R_A__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_R_B(x)                                          
        (0x00000624+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_R_B__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_R_C(x)                                          
        (0x00000628+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_R_C__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_R_D(x)                                          
        (0x0000062c+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_R_D__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_Q_A(x)                                          
        (0x00000630+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_Q_A__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_Q_B(x)                                          
        (0x00000634+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_Q_B__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_Q_C(x)                                          
        (0x00000638+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_Q_C__SIZE                                       
                0x00000002
--#define  NV10TCL_TX_GEN_COEFF_Q_D(x)                                          
        (0x0000063c+((x)*64))
--#define  NV10TCL_TX_GEN_COEFF_Q_D__SIZE                                       
                0x00000002
-+#define  NV10TCL_CLIP_PLANE_A(x)                                              
        (0x00000600+((x)*16))
-+#define  NV10TCL_CLIP_PLANE_A__SIZE                                           
        0x00000008
-+#define  NV10TCL_CLIP_PLANE_B(x)                                              
        (0x00000604+((x)*16))
-+#define  NV10TCL_CLIP_PLANE_B__SIZE                                           
        0x00000008
-+#define  NV10TCL_CLIP_PLANE_C(x)                                              
        (0x00000608+((x)*16))
-+#define  NV10TCL_CLIP_PLANE_C__SIZE                                           
        0x00000008
-+#define  NV10TCL_CLIP_PLANE_D(x)                                              
        (0x0000060c+((x)*16))
-+#define  NV10TCL_CLIP_PLANE_D__SIZE                                           
        0x00000008
- #define  NV10TCL_FOG_EQUATION_CONSTANT                                        
                0x00000680
- #define  NV10TCL_FOG_EQUATION_LINEAR                                          
        0x00000684
- #define  NV10TCL_FOG_EQUATION_QUADRATIC                                       
                0x00000688
-@@ -3126,6 +3122,70 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
- #define   NV10TCL_VTXFMT_STRIDE_SHIFT                                         
        8
- #define   NV10TCL_VTXFMT_STRIDE_MASK                                          
        0x0000ff00
- #define   NV10TCL_VTXFMT_POS_HOMOGENEOUS                                      
        (1 << 24)
-+#define  NV10TCL_VERTEX_ARRAY_OFFSET_POS                                      
        0x00000d00
-+#define  NV10TCL_VERTEX_ARRAY_FORMAT_POS                                      
        0x00000d04
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_TYPE_SHIFT                          
        0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_TYPE_MASK                           
        0x0000000f
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_FIELDS_SHIFT                        
                4
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_FIELDS_MASK                         
        0x000000f0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_STRIDE_SHIFT                        
                8
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_STRIDE_MASK                         
        0x0000ff00
-+#define  NV10TCL_VERTEX_ARRAY_OFFSET_COL                                      
        0x00000d08
-+#define  NV10TCL_VERTEX_ARRAY_FORMAT_COL                                      
        0x00000d0c
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_TYPE_SHIFT                          
        0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_TYPE_MASK                           
        0x0000000f
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_FIELDS_SHIFT                        
                4
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_FIELDS_MASK                         
        0x000000f0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_STRIDE_SHIFT                        
                8
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_STRIDE_MASK                         
        0x0000ff00
-+#define  NV10TCL_VERTEX_ARRAY_OFFSET_COL2                                     
        0x00000d10
-+#define  NV10TCL_VERTEX_ARRAY_FORMAT_COL2                                     
        0x00000d14
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_TYPE_SHIFT                         
        0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_TYPE_MASK                          
        0x0000000f
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_FIELDS_SHIFT                       
                4
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_FIELDS_MASK                        
                0x000000f0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_STRIDE_SHIFT                       
                8
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_STRIDE_MASK                        
                0x0000ff00
-+#define  NV10TCL_VERTEX_ARRAY_OFFSET_TX0                                      
        0x00000d18
-+#define  NV10TCL_VERTEX_ARRAY_FORMAT_TX0                                      
        0x00000d1c
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_TYPE_SHIFT                          
        0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_TYPE_MASK                           
        0x0000000f
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_FIELDS_SHIFT                        
                4
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_FIELDS_MASK                         
        0x000000f0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_STRIDE_SHIFT                        
                8
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_STRIDE_MASK                         
        0x0000ff00
-+#define  NV10TCL_VERTEX_ARRAY_OFFSET_TX1                                      
        0x00000d20
-+#define  NV10TCL_VERTEX_ARRAY_FORMAT_TX1                                      
        0x00000d24
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_TYPE_SHIFT                          
        0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_TYPE_MASK                           
        0x0000000f
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_FIELDS_SHIFT                        
                4
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_FIELDS_MASK                         
        0x000000f0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_STRIDE_SHIFT                        
                8
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_STRIDE_MASK                         
        0x0000ff00
-+#define  NV10TCL_VERTEX_ARRAY_OFFSET_NOR                                      
        0x00000d28
-+#define  NV10TCL_VERTEX_ARRAY_FORMAT_NOR                                      
        0x00000d2c
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_TYPE_SHIFT                          
        0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_TYPE_MASK                           
        0x0000000f
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_FIELDS_SHIFT                        
                4
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_FIELDS_MASK                         
        0x000000f0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_STRIDE_SHIFT                        
                8
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_STRIDE_MASK                         
        0x0000ff00
-+#define  NV10TCL_VERTEX_ARRAY_OFFSET_WGH                                      
        0x00000d30
-+#define  NV10TCL_VERTEX_ARRAY_FORMAT_WGH                                      
        0x00000d34
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_TYPE_SHIFT                          
        0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_TYPE_MASK                           
        0x0000000f
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_FIELDS_SHIFT                        
                4
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_FIELDS_MASK                         
        0x000000f0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_STRIDE_SHIFT                        
                8
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_STRIDE_MASK                         
        0x0000ff00
-+#define  NV10TCL_VERTEX_ARRAY_OFFSET_FOG                                      
        0x00000d38
-+#define  NV10TCL_VERTEX_ARRAY_FORMAT_FOG                                      
        0x00000d3c
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_TYPE_SHIFT                          
        0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_TYPE_MASK                           
        0x0000000f
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_FIELDS_SHIFT                        
                4
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_FIELDS_MASK                         
        0x000000f0
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_STRIDE_SHIFT                        
                8
-+#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_STRIDE_MASK                         
        0x0000ff00
- #define  NV10TCL_VERTEX_BEGIN_END                                             
        0x00000dfc
- #define   NV10TCL_VERTEX_BEGIN_END_STOP                                       
                0x00000000
- #define   NV10TCL_VERTEX_BEGIN_END_POINTS                                     
        0x00000001
-@@ -3965,38 +4025,38 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
- #define    NV20TCL_ENABLED_LIGHTS_7_NONPOSITIONAL                             
        0x00004000
- #define    NV20TCL_ENABLED_LIGHTS_7_POSITIONAL                                
                0x00008000
- #define    NV20TCL_ENABLED_LIGHTS_7_DIRECTIONAL                               
                0x0000c000
--#define  NV20TCL_TX_GEN_MODE_S(x)                                             
        (0x000003c0+((x)*16))
--#define  NV20TCL_TX_GEN_MODE_S__SIZE                                          
        0x00000004
--#define   NV20TCL_TX_GEN_MODE_S_FALSE                                         
        0x00000000
--#define   NV20TCL_TX_GEN_MODE_S_EYE_LINEAR                                    
        0x00002400
--#define   NV20TCL_TX_GEN_MODE_S_OBJECT_LINEAR                                 
        0x00002401
--#define   NV20TCL_TX_GEN_MODE_S_SPHERE_MAP                                    
        0x00002402
--#define   NV20TCL_TX_GEN_MODE_S_NORMAL_MAP                                    
        0x00008511
--#define   NV20TCL_TX_GEN_MODE_S_REFLECTION_MAP                                
                0x00008512
--#define  NV20TCL_TX_GEN_MODE_T(x)                                             
        (0x000003c4+((x)*16))
--#define  NV20TCL_TX_GEN_MODE_T__SIZE                                          
        0x00000004
--#define   NV20TCL_TX_GEN_MODE_T_FALSE                                         
        0x00000000
--#define   NV20TCL_TX_GEN_MODE_T_EYE_LINEAR                                    
        0x00002400
--#define   NV20TCL_TX_GEN_MODE_T_OBJECT_LINEAR                                 
        0x00002401
--#define   NV20TCL_TX_GEN_MODE_T_SPHERE_MAP                                    
        0x00002402
--#define   NV20TCL_TX_GEN_MODE_T_NORMAL_MAP                                    
        0x00008511
--#define   NV20TCL_TX_GEN_MODE_T_REFLECTION_MAP                                
                0x00008512
--#define  NV20TCL_TX_GEN_MODE_R(x)                                             
        (0x000003c8+((x)*16))
--#define  NV20TCL_TX_GEN_MODE_R__SIZE                                          
        0x00000004
--#define   NV20TCL_TX_GEN_MODE_R_FALSE                                         
        0x00000000
--#define   NV20TCL_TX_GEN_MODE_R_EYE_LINEAR                                    
        0x00002400
--#define   NV20TCL_TX_GEN_MODE_R_OBJECT_LINEAR                                 
        0x00002401
--#define   NV20TCL_TX_GEN_MODE_R_SPHERE_MAP                                    
        0x00002402
--#define   NV20TCL_TX_GEN_MODE_R_NORMAL_MAP                                    
        0x00008511
--#define   NV20TCL_TX_GEN_MODE_R_REFLECTION_MAP                                
                0x00008512
--#define  NV20TCL_TX_GEN_MODE_Q(x)                                             
        (0x000003cc+((x)*16))
--#define  NV20TCL_TX_GEN_MODE_Q__SIZE                                          
        0x00000004
--#define   NV20TCL_TX_GEN_MODE_Q_FALSE                                         
        0x00000000
--#define   NV20TCL_TX_GEN_MODE_Q_EYE_LINEAR                                    
        0x00002400
--#define   NV20TCL_TX_GEN_MODE_Q_OBJECT_LINEAR                                 
        0x00002401
--#define   NV20TCL_TX_GEN_MODE_Q_SPHERE_MAP                                    
        0x00002402
--#define   NV20TCL_TX_GEN_MODE_Q_NORMAL_MAP                                    
        0x00008511
--#define   NV20TCL_TX_GEN_MODE_Q_REFLECTION_MAP                                
                0x00008512
-+#define  NV20TCL_TX_GEN_S(x)                                                  
        (0x000003c0+((x)*16))
-+#define  NV20TCL_TX_GEN_S__SIZE                                               
                0x00000004
-+#define   NV20TCL_TX_GEN_S_FALSE                                              
        0x00000000
-+#define   NV20TCL_TX_GEN_S_EYE_LINEAR                                         
        0x00002400
-+#define   NV20TCL_TX_GEN_S_OBJECT_LINEAR                                      
        0x00002401
-+#define   NV20TCL_TX_GEN_S_SPHERE_MAP                                         
        0x00002402
-+#define   NV20TCL_TX_GEN_S_NORMAL_MAP                                         
        0x00008511
-+#define   NV20TCL_TX_GEN_S_REFLECTION_MAP                                     
        0x00008512
-+#define  NV20TCL_TX_GEN_T(x)                                                  
        (0x000003c4+((x)*16))
-+#define  NV20TCL_TX_GEN_T__SIZE                                               
                0x00000004
-+#define   NV20TCL_TX_GEN_T_FALSE                                              
        0x00000000
-+#define   NV20TCL_TX_GEN_T_EYE_LINEAR                                         
        0x00002400
-+#define   NV20TCL_TX_GEN_T_OBJECT_LINEAR                                      
        0x00002401
-+#define   NV20TCL_TX_GEN_T_SPHERE_MAP                                         
        0x00002402
-+#define   NV20TCL_TX_GEN_T_NORMAL_MAP                                         
        0x00008511
-+#define   NV20TCL_TX_GEN_T_REFLECTION_MAP                                     
        0x00008512
-+#define  NV20TCL_TX_GEN_R(x)                                                  
        (0x000003c8+((x)*16))
-+#define  NV20TCL_TX_GEN_R__SIZE                                               
                0x00000004
-+#define   NV20TCL_TX_GEN_R_FALSE                                              
        0x00000000
-+#define   NV20TCL_TX_GEN_R_EYE_LINEAR                                         
        0x00002400
-+#define   NV20TCL_TX_GEN_R_OBJECT_LINEAR                                      
        0x00002401
-+#define   NV20TCL_TX_GEN_R_SPHERE_MAP                                         
        0x00002402
-+#define   NV20TCL_TX_GEN_R_NORMAL_MAP                                         
        0x00008511
-+#define   NV20TCL_TX_GEN_R_REFLECTION_MAP                                     
        0x00008512
-+#define  NV20TCL_TX_GEN_Q(x)                                                  
        (0x000003cc+((x)*16))
-+#define  NV20TCL_TX_GEN_Q__SIZE                                               
                0x00000004
-+#define   NV20TCL_TX_GEN_Q_FALSE                                              
        0x00000000
-+#define   NV20TCL_TX_GEN_Q_EYE_LINEAR                                         
        0x00002400
-+#define   NV20TCL_TX_GEN_Q_OBJECT_LINEAR                                      
        0x00002401
-+#define   NV20TCL_TX_GEN_Q_SPHERE_MAP                                         
        0x00002402
-+#define   NV20TCL_TX_GEN_Q_NORMAL_MAP                                         
        0x00008511
-+#define   NV20TCL_TX_GEN_Q_REFLECTION_MAP                                     
        0x00008512
- #define  NV20TCL_TX_MATRIX_ENABLE(x)                                          
        (0x00000420+((x)*4))
- #define  NV20TCL_TX_MATRIX_ENABLE__SIZE                                       
                0x00000004
- #define  NV20TCL_POINT_SIZE                                                   
        0x0000043c
-@@ -4026,38 +4086,38 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
- #define  NV20TCL_TX2_MATRIX__SIZE                                             
        0x00000010
- #define  NV20TCL_TX3_MATRIX(x)                                                
                (0x00000780+((x)*4))
- #define  NV20TCL_TX3_MATRIX__SIZE                                             
        0x00000010
--#define  NV20TCL_TX_GEN_COEFF_S_A(x)                                          
        (0x00000840+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_S_A__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_S_B(x)                                          
        (0x00000844+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_S_B__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_S_C(x)                                          
        (0x00000848+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_S_C__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_S_D(x)                                          
        (0x0000084c+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_S_D__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_T_A(x)                                          
        (0x00000850+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_T_A__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_T_B(x)                                          
        (0x00000854+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_T_B__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_T_C(x)                                          
        (0x00000858+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_T_C__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_T_D(x)                                          
        (0x0000085c+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_T_D__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_R_A(x)                                          
        (0x00000860+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_R_A__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_R_B(x)                                          
        (0x00000864+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_R_B__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_R_C(x)                                          
        (0x00000868+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_R_C__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_R_D(x)                                          
        (0x0000086c+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_R_D__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_Q_A(x)                                          
        (0x00000870+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_Q_A__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_Q_B(x)                                          
        (0x00000874+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_Q_B__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_Q_C(x)                                          
        (0x00000878+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_Q_C__SIZE                                       
                0x00000004
--#define  NV20TCL_TX_GEN_COEFF_Q_D(x)                                          
        (0x0000087c+((x)*64))
--#define  NV20TCL_TX_GEN_COEFF_Q_D__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX0_CLIP_PLANE_A(x)                                          
        (0x00000840+((x)*16))
-+#define  NV20TCL_TX0_CLIP_PLANE_A__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX0_CLIP_PLANE_B(x)                                          
        (0x00000844+((x)*16))
-+#define  NV20TCL_TX0_CLIP_PLANE_B__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX0_CLIP_PLANE_C(x)                                          
        (0x00000848+((x)*16))
-+#define  NV20TCL_TX0_CLIP_PLANE_C__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX0_CLIP_PLANE_D(x)                                          
        (0x0000084c+((x)*16))
-+#define  NV20TCL_TX0_CLIP_PLANE_D__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX1_CLIP_PLANE_A(x)                                          
        (0x00000880+((x)*16))
-+#define  NV20TCL_TX1_CLIP_PLANE_A__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX1_CLIP_PLANE_B(x)                                          
        (0x00000884+((x)*16))
-+#define  NV20TCL_TX1_CLIP_PLANE_B__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX1_CLIP_PLANE_C(x)                                          
        (0x00000888+((x)*16))
-+#define  NV20TCL_TX1_CLIP_PLANE_C__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX1_CLIP_PLANE_D(x)                                          
        (0x0000088c+((x)*16))
-+#define  NV20TCL_TX1_CLIP_PLANE_D__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX2_CLIP_PLANE_A(x)                                          
        (0x000008c0+((x)*16))
-+#define  NV20TCL_TX2_CLIP_PLANE_A__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX2_CLIP_PLANE_B(x)                                          
        (0x000008c4+((x)*16))
-+#define  NV20TCL_TX2_CLIP_PLANE_B__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX2_CLIP_PLANE_C(x)                                          
        (0x000008c8+((x)*16))
-+#define  NV20TCL_TX2_CLIP_PLANE_C__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX2_CLIP_PLANE_D(x)                                          
        (0x000008cc+((x)*16))
-+#define  NV20TCL_TX2_CLIP_PLANE_D__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX3_CLIP_PLANE_A(x)                                          
        (0x00000900+((x)*16))
-+#define  NV20TCL_TX3_CLIP_PLANE_A__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX3_CLIP_PLANE_B(x)                                          
        (0x00000904+((x)*16))
-+#define  NV20TCL_TX3_CLIP_PLANE_B__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX3_CLIP_PLANE_C(x)                                          
        (0x00000908+((x)*16))
-+#define  NV20TCL_TX3_CLIP_PLANE_C__SIZE                                       
                0x00000004
-+#define  NV20TCL_TX3_CLIP_PLANE_D(x)                                          
        (0x0000090c+((x)*16))
-+#define  NV20TCL_TX3_CLIP_PLANE_D__SIZE                                       
                0x00000004
- #define  NV20TCL_FOG_EQUATION_CONSTANT                                        
                0x000009c0
- #define  NV20TCL_FOG_EQUATION_LINEAR                                          
        0x000009c4
- #define  NV20TCL_FOG_EQUATION_QUADRATIC                                       
                0x000009c8
-@@ -4286,17 +4346,17 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
SOFTWARE.
- #define  NV20TCL_LIGHT_BACK_AMBIENT_G__SIZE                                   
        0x00000008
- #define  NV20TCL_LIGHT_BACK_AMBIENT_B(x)                                      
        (0x00000c08+((x)*64))
- #define  NV20TCL_LIGHT_BACK_AMBIENT_B__SIZE                                   
        0x00000008
--#define  NV20TCL_LIGHT_BACK_DIFFUSE_R(x)                                      
        (0x00000c0c+((x)*64))
-+#define  NV20TCL_LIGHT_BACK_DIFFUSE_R(x)                                      
        (0x00000c0c+((x)*128))
- #define  NV20TCL_LIGHT_BACK_DIFFUSE_R__SIZE                                   
        0x00000008
--#define  NV20TCL_LIGHT_BACK_DIFFUSE_G(x)                                      
        (0x00000c10+((x)*64))
-+#define  NV20TCL_LIGHT_BACK_DIFFUSE_G(x)                                      
        (0x00000c10+((x)*128))
- #define  NV20TCL_LIGHT_BACK_DIFFUSE_G__SIZE                                   
        0x00000008
--#define  NV20TCL_LIGHT_BACK_DIFFUSE_B(x)                                      
        (0x00000c14+((x)*64))
-+#define  NV20TCL_LIGHT_BACK_DIFFUSE_B(x)                                      
        (0x00000c14+((x)*128))
- #define  NV20TCL_LIGHT_BACK_DIFFUSE_B__SIZE                                   
        0x00000008
--#define  NV20TCL_LIGHT_BACK_SPECULAR_R(x)                                     
        (0x00000c18+((x)*64))
-+#define  NV20TCL_LIGHT_BACK_SPECULAR_R(x)                                     
        (0x00000c18+((x)*128))


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1ofqqb-0005wu...@alioth.debian.org

Reply via email to