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