diff options
| author | Luca Barbieri <luca@luca-barbieri.com> | 2010-09-05 10:45:55 +0200 | 
|---|---|---|
| committer | Luca Barbieri <luca@luca-barbieri.com> | 2010-09-05 17:52:26 +0200 | 
| commit | 7d53a3b7a4418283a7813c2233753ddd2901a4b7 (patch) | |
| tree | 635e7613514017eae28a99d5c8f8fe66bef37cce | |
| parent | d46c5ce7b6a707b491a28345e3ee2adfce201632 (diff) | |
nvfx: move nv04_2d to rules-ng-ng
| -rw-r--r-- | src/gallium/drivers/nouveau/nv_m2mf.xml.h | 155 | ||||
| -rw-r--r-- | src/gallium/drivers/nvfx/nv01_2d.xml.h | 1343 | ||||
| -rw-r--r-- | src/gallium/drivers/nvfx/nv04_2d.c | 37 | 
3 files changed, 1518 insertions, 17 deletions
| diff --git a/src/gallium/drivers/nouveau/nv_m2mf.xml.h b/src/gallium/drivers/nouveau/nv_m2mf.xml.h new file mode 100644 index 0000000000..ffdaf95de6 --- /dev/null +++ b/src/gallium/drivers/nouveau/nv_m2mf.xml.h @@ -0,0 +1,155 @@ +#ifndef NV_M2MF_XML +#define NV_M2MF_XML + +/* Autogenerated file, DO NOT EDIT manually! + +This file was generated by the rules-ng-ng headergen tool in this git repository: +http://0x04.net/cgit/index.cgi/rules-ng-ng +git clone git://0x04.net/rules-ng-ng + +The rules-ng-ng source files this header was generated from are: +- nv_m2mf.xml    (   2710 bytes, from 2010-08-05 19:38:53) +- copyright.xml  (   6503 bytes, from 2010-04-10 23:15:50) +- nv_object.xml  (  10424 bytes, from 2010-08-05 19:38:53) +- nvchipsets.xml (   2824 bytes, from 2010-08-05 19:38:53) +- nv_defs.xml    (   4437 bytes, from 2010-08-05 19:38:53) + +Copyright (C) 2006-2010 by the following authors: +- Artur Huillet <arthur.huillet@free.fr> (ahuillet) +- Ben Skeggs (darktama, darktama_) +- B. R. <koala_br@users.sourceforge.net> (koala_br) +- Carlos Martin <carlosmn@users.sf.net> (carlosmn) +- Christoph Bumiller <e0425955@student.tuwien.ac.at> (calim, chrisbmr) +- Dawid Gajownik <gajownik@users.sf.net> (gajownik) +- Dmitry Baryshkov +- Dmitry Eremin-Solenikov <lumag@users.sf.net> (lumag) +- EdB <edb_@users.sf.net> (edb_) +- Erik Waling <erikwailing@users.sf.net> (erikwaling) +- Francisco Jerez <currojerez@riseup.net> (curro, curro_, currojerez) +- imirkin <imirkin@users.sf.net> (imirkin) +- jb17bsome <jb17bsome@bellsouth.net> (jb17bsome) +- Jeremy Kolb <kjeremy@users.sf.net> (kjeremy) +- Laurent Carlier <lordheavym@gmail.com> (lordheavy) +- Luca Barbieri <luca@luca-barbieri.com> (lb, lb1) +- Maarten Maathuis <madman2003@gmail.com> (stillunknown) +- Marcin Kościelnicki <koriakin@0x04.net> (mwk, koriakin) +- Mark Carey <mark.carey@gmail.com> (careym) +- Matthieu Castet <matthieu.castet@parrot.com> (mat-c) +- nvidiaman <nvidiaman@users.sf.net> (nvidiaman) +- Patrice Mandin <mandin.patrice@orange.fr> (pmandin, pmdata) +- Pekka Paalanen <pq@iki.fi> (pq, ppaalanen) +- Peter Popov <ironpeter@users.sf.net> (ironpeter) +- Richard Hughes <hughsient@users.sf.net> (hughsient) +- Rudi Cilibrasi <cilibrar@users.sf.net> (cilibrar) +- Serge Martin +- Simon Raffeiner +- Stephane Loeuillet <leroutier@users.sf.net> (leroutier) +- Stephane Marchesin <stephane.marchesin@gmail.com> (marcheu) +- sturmflut <sturmflut@users.sf.net> (sturmflut) +- Sylvain Munaut <tnt@246tNt.com> +- Victor Stinner <victor.stinner@haypocalc.com> (haypo) +- Wladmir van der Laan <laanwj@gmail.com> (miathan6) +- Younes Manton <younes.m@gmail.com> (ymanton) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + + + +#define NV04_M2MF_DMA_NOTIFY					0x00000180 + +#define NV04_M2MF_DMA_BUFFER_IN					0x00000184 + +#define NV04_M2MF_DMA_BUFFER_OUT				0x00000188 + + +#define NV50_M2MF_LINEAR_IN					0x00000200 + +#define NV50_M2MF_TILING_MODE_IN				0x00000204 + +#define NV50_M2MF_TILING_PITCH_IN				0x00000208 + +#define NV50_M2MF_TILING_HEIGHT_IN				0x0000020c + +#define NV50_M2MF_TILING_DEPTH_IN				0x00000210 + +#define NV50_M2MF_TILING_POSITION_IN_Z				0x00000214 + +#define NV50_M2MF_TILING_POSITION_IN				0x00000218 +#define NV50_M2MF_TILING_POSITION_IN_X__MASK			0x0000ffff +#define NV50_M2MF_TILING_POSITION_IN_X__SHIFT			0 +#define NV50_M2MF_TILING_POSITION_IN_Y__MASK			0xffff0000 +#define NV50_M2MF_TILING_POSITION_IN_Y__SHIFT			16 + +#define NV50_M2MF_LINEAR_OUT					0x0000021c + +#define NV50_M2MF_TILING_MODE_OUT				0x00000220 + +#define NV50_M2MF_TILING_PITCH_OUT				0x00000224 + +#define NV50_M2MF_TILING_HEIGHT_OUT				0x00000228 + +#define NV50_M2MF_TILING_DEPTH_OUT				0x0000022c + +#define NV50_M2MF_TILING_POSITION_OUT_Z				0x00000230 + +#define NV50_M2MF_TILING_POSITION_OUT				0x00000234 +#define NV50_M2MF_TILING_POSITION_OUT_X__MASK			0x0000ffff +#define NV50_M2MF_TILING_POSITION_OUT_X__SHIFT			0 +#define NV50_M2MF_TILING_POSITION_OUT_Y__MASK			0xffff0000 +#define NV50_M2MF_TILING_POSITION_OUT_Y__SHIFT			16 + +#define NV50_M2MF_OFFSET_IN_HIGH				0x00000238 + +#define NV50_M2MF_OFFSET_OUT_HIGH				0x0000023c + +#define NV04_M2MF_OFFSET_IN					0x0000030c + +#define NV04_M2MF_OFFSET_OUT					0x00000310 + +#define NV04_M2MF_PITCH_IN					0x00000314 + +#define NV04_M2MF_PITCH_OUT					0x00000318 + +#define NV04_M2MF_LINE_LENGTH_IN				0x0000031c + +#define NV04_M2MF_LINE_COUNT					0x00000320 + +#define NV04_M2MF_FORMAT					0x00000324 +#define NV04_M2MF_FORMAT_INPUT_INC__MASK			0x000000ff +#define NV04_M2MF_FORMAT_INPUT_INC__SHIFT			0 +#define NV04_M2MF_FORMAT_INPUT_INC_1				0x00000001 +#define NV04_M2MF_FORMAT_INPUT_INC_2				0x00000002 +#define NV04_M2MF_FORMAT_INPUT_INC_4				0x00000004 +#define NV50_M2MF_FORMAT_INPUT_INC_8				0x00000008 +#define NV50_M2MF_FORMAT_INPUT_INC_16				0x00000010 +#define NV04_M2MF_FORMAT_OUTPUT_INC__MASK			0x0000ff00 +#define NV04_M2MF_FORMAT_OUTPUT_INC__SHIFT			8 +#define NV04_M2MF_FORMAT_OUTPUT_INC_1				0x00000100 +#define NV04_M2MF_FORMAT_OUTPUT_INC_2				0x00000200 +#define NV04_M2MF_FORMAT_OUTPUT_INC_4				0x00000400 +#define NV50_M2MF_FORMAT_OUTPUT_INC_8				0x00000800 +#define NV50_M2MF_FORMAT_OUTPUT_INC_16				0x00001000 + +#define NV04_M2MF_BUF_NOTIFY					0x00000328 + + +#endif /* NV_M2MF_XML */ diff --git a/src/gallium/drivers/nvfx/nv01_2d.xml.h b/src/gallium/drivers/nvfx/nv01_2d.xml.h new file mode 100644 index 0000000000..b963eb7edc --- /dev/null +++ b/src/gallium/drivers/nvfx/nv01_2d.xml.h @@ -0,0 +1,1343 @@ +#ifndef NV01_2D_XML +#define NV01_2D_XML + +/* Autogenerated file, DO NOT EDIT manually! + +This file was generated by the rules-ng-ng headergen tool in this git repository: +http://0x04.net/cgit/index.cgi/rules-ng-ng +git clone git://0x04.net/rules-ng-ng + +The rules-ng-ng source files this header was generated from are: +- nv01_2d.xml    (  33462 bytes, from 2010-08-05 19:38:53) +- copyright.xml  (   6503 bytes, from 2010-04-10 23:15:50) +- nv_defs.xml    (   4437 bytes, from 2010-08-05 19:38:53) +- nv_object.xml  (  10424 bytes, from 2010-08-05 19:38:53) +- nvchipsets.xml (   2824 bytes, from 2010-08-05 19:38:53) + +Copyright (C) 2006-2010 by the following authors: +- Artur Huillet <arthur.huillet@free.fr> (ahuillet) +- Ben Skeggs (darktama, darktama_) +- B. R. <koala_br@users.sourceforge.net> (koala_br) +- Carlos Martin <carlosmn@users.sf.net> (carlosmn) +- Christoph Bumiller <e0425955@student.tuwien.ac.at> (calim, chrisbmr) +- Dawid Gajownik <gajownik@users.sf.net> (gajownik) +- Dmitry Baryshkov +- Dmitry Eremin-Solenikov <lumag@users.sf.net> (lumag) +- EdB <edb_@users.sf.net> (edb_) +- Erik Waling <erikwailing@users.sf.net> (erikwaling) +- Francisco Jerez <currojerez@riseup.net> (curro, curro_, currojerez) +- imirkin <imirkin@users.sf.net> (imirkin) +- jb17bsome <jb17bsome@bellsouth.net> (jb17bsome) +- Jeremy Kolb <kjeremy@users.sf.net> (kjeremy) +- Laurent Carlier <lordheavym@gmail.com> (lordheavy) +- Luca Barbieri <luca@luca-barbieri.com> (lb, lb1) +- Maarten Maathuis <madman2003@gmail.com> (stillunknown) +- Marcin Kościelnicki <koriakin@0x04.net> (mwk, koriakin) +- Mark Carey <mark.carey@gmail.com> (careym) +- Matthieu Castet <matthieu.castet@parrot.com> (mat-c) +- nvidiaman <nvidiaman@users.sf.net> (nvidiaman) +- Patrice Mandin <mandin.patrice@orange.fr> (pmandin, pmdata) +- Pekka Paalanen <pq@iki.fi> (pq, ppaalanen) +- Peter Popov <ironpeter@users.sf.net> (ironpeter) +- Richard Hughes <hughsient@users.sf.net> (hughsient) +- Rudi Cilibrasi <cilibrar@users.sf.net> (cilibrar) +- Serge Martin +- Simon Raffeiner +- Stephane Loeuillet <leroutier@users.sf.net> (leroutier) +- Stephane Marchesin <stephane.marchesin@gmail.com> (marcheu) +- sturmflut <sturmflut@users.sf.net> (sturmflut) +- Sylvain Munaut <tnt@246tNt.com> +- Victor Stinner <victor.stinner@haypocalc.com> (haypo) +- Wladmir van der Laan <laanwj@gmail.com> (miathan6) +- Younes Manton <younes.m@gmail.com> (ymanton) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + + + +#define NV01_CONTEXT_BETA1_DMA_NOTIFY				0x00000180 + +#define NV01_CONTEXT_BETA1_BETA_1D31				0x00000300 + + +#define NV04_BETA_SOLID_DMA_NOTIFY				0x00000180 + +#define NV04_BETA_SOLID_BETA_FACTOR				0x00000300 + + +#define NV01_CONTEXT_COLOR_KEY_DMA_NOTIFY			0x00000180 + +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT			0x00000300 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A16R5G6B5		0x00000001 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16A1R5G5B5		0x00000002 +#define NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A8R8G8B8		0x00000003 + +#define NV01_CONTEXT_COLOR_KEY_COLOR				0x00000304 + + +#define NV01_CONTEXT_PATTERN_DMA_NOTIFY				0x00000180 + +#define NV01_CONTEXT_PATTERN_COLOR_FORMAT			0x00000300 + +#define NV01_CONTEXT_PATTERN_MONOCHROME_FORMAT			0x00000304 + +#define NV01_CONTEXT_PATTERN_SHAPE				0x00000308 + +#define NV01_CONTEXT_PATTERN_COLOR(i0)			       (0x00000310 + 0x4*(i0)) +#define NV01_CONTEXT_PATTERN_COLOR__ESIZE			0x00000004 +#define NV01_CONTEXT_PATTERN_COLOR__LEN				0x00000002 + +#define NV01_CONTEXT_PATTERN_PATTERN(i0)		       (0x00000318 + 0x4*(i0)) +#define NV01_CONTEXT_PATTERN_PATTERN__ESIZE			0x00000004 +#define NV01_CONTEXT_PATTERN_PATTERN__LEN			0x00000002 + + +#define NV01_CONTEXT_CLIP_RECTANGLE_DMA_NOTIFY			0x00000180 + +#define NV01_CONTEXT_CLIP_RECTANGLE_POINT			0x00000300 +#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_X__MASK		0x0000ffff +#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_X__SHIFT		0 +#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y__MASK		0xffff0000 +#define NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y__SHIFT		16 + +#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE			0x00000304 +#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W__MASK		0x0000ffff +#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W__SHIFT		0 +#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H__MASK		0xffff0000 +#define NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H__SHIFT		16 + + +#define NV04_CONTEXT_SURFACES_2D_DMA_NOTIFY			0x00000180 + +#define NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_SOURCE		0x00000184 + +#define NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_DESTIN		0x00000188 + + +#define NV50_CONTEXT_SURFACES_2D_SRC_LINEAR			0x00000200 + +#define NV50_CONTEXT_SURFACES_2D_SRC_TILE_MODE			0x00000204 + +#define NV50_CONTEXT_SURFACES_2D_SRC_WIDTH			0x00000208 + +#define NV50_CONTEXT_SURFACES_2D_SRC_HEIGHT			0x0000020c + +#define NV50_CONTEXT_SURFACES_2D_UNK0210			0x00000210 + +#define NV50_CONTEXT_SURFACES_2D_UNK0214			0x00000214 + +#define NV50_CONTEXT_SURFACES_2D_DST_LINEAR			0x00000218 + +#define NV50_CONTEXT_SURFACES_2D_DST_TILE_MODE			0x0000021c + +#define NV50_CONTEXT_SURFACES_2D_DST_WIDTH			0x00000220 + +#define NV50_CONTEXT_SURFACES_2D_DST_HEIGHT			0x00000224 + +#define NV50_CONTEXT_SURFACES_2D_UNK0228			0x00000228 + +#define NV50_CONTEXT_SURFACES_2D_UNK022C			0x0000022c + +#define NV50_CONTEXT_SURFACES_2D_OFFSET_SOURCE_HIGH		0x00000230 + +#define NV50_CONTEXT_SURFACES_2D_OFFSET_DESTIN_HIGH		0x00000234 + +#define NV04_CONTEXT_SURFACES_2D_FORMAT				0x00000300 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_Y8			0x00000001 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1R5G5B5_Z1R5G5B5	0x00000002 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1R5G5B5_X1R5G5B5	0x00000003 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_R5G6B5			0x00000004 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_Y16			0x00000005 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X8R8G8B8_Z8R8G8B8	0x00000006 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X8R8G8B8_X8R8G8B8	0x00000007 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1A7R8G8B8_Z1A7R8G8B8	0x00000008 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_X1A7R8G8B8_X1A7R8G8B8	0x00000009 +#define NV04_CONTEXT_SURFACES_2D_FORMAT_A8R8G8B8		0x0000000a +#define NV04_CONTEXT_SURFACES_2D_FORMAT_Y32			0x0000000b + +#define NV04_CONTEXT_SURFACES_2D_PITCH				0x00000304 +#define NV04_CONTEXT_SURFACES_2D_PITCH_SOURCE__MASK		0x0000ffff +#define NV04_CONTEXT_SURFACES_2D_PITCH_SOURCE__SHIFT		0 +#define NV04_CONTEXT_SURFACES_2D_PITCH_DESTIN__MASK		0xffff0000 +#define NV04_CONTEXT_SURFACES_2D_PITCH_DESTIN__SHIFT		16 + +#define NV04_CONTEXT_SURFACES_2D_OFFSET_SOURCE			0x00000308 + +#define NV04_CONTEXT_SURFACES_2D_OFFSET_DESTIN			0x0000030c + + +#define NV04_SWIZZLED_SURFACE_DMA_NOTIFY			0x00000180 + +#define NV04_SWIZZLED_SURFACE_DMA_IMAGE				0x00000184 + +#define NV04_SWIZZLED_SURFACE_FORMAT				0x00000300 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR__MASK		0x000000ff +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR__SHIFT		0 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y8			0x00000001 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1R5G5B5_Z1R5G5B5	0x00000002 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1R5G5B5_X1R5G5B5	0x00000003 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_R5G6B5		0x00000004 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y16			0x00000005 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X8R8G8B8_Z8R8G8B8	0x00000006 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X8R8G8B8_X8R8G8B8	0x00000007 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1A7R8G8B8_Z1A7R8G8B8	0x00000008 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1A7R8G8B8_X1A7R8G8B8	0x00000009 +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_A8R8G8B8		0x0000000a +#define NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y32			0x0000000b +#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U__MASK		0x00ff0000 +#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U__SHIFT		16 +#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V__MASK		0xff000000 +#define NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V__SHIFT		24 + +#define NV04_SWIZZLED_SURFACE_OFFSET				0x00000304 + + +#define NV03_CONTEXT_ROP_DMA_NOTIFY				0x00000180 + +#define NV03_CONTEXT_ROP_ROP					0x00000300 + + +#define NV04_IMAGE_PATTERN_DMA_NOTIFY				0x00000180 + +#define NV04_IMAGE_PATTERN_COLOR_FORMAT				0x00000300 +#define NV04_IMAGE_PATTERN_COLOR_FORMAT_A16R5G6B5		0x00000001 +#define NV04_IMAGE_PATTERN_COLOR_FORMAT_X16A1R5G5B5		0x00000002 +#define NV04_IMAGE_PATTERN_COLOR_FORMAT_A8R8G8B8		0x00000003 + +#define NV04_IMAGE_PATTERN_MONOCHROME_FORMAT			0x00000304 +#define NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_CGA6		0x00000001 +#define NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_LE			0x00000002 + +#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE			0x00000308 +#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_8X8			0x00000000 +#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_64X1		0x00000001 +#define NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_1X64		0x00000002 + +#define NV04_IMAGE_PATTERN_PATTERN_SELECT			0x0000030c +#define NV04_IMAGE_PATTERN_PATTERN_SELECT_MONO			0x00000001 +#define NV04_IMAGE_PATTERN_PATTERN_SELECT_COLOR			0x00000002 + +#define NV04_IMAGE_PATTERN_MONOCHROME_COLOR0			0x00000310 + +#define NV04_IMAGE_PATTERN_MONOCHROME_COLOR1			0x00000314 + +#define NV04_IMAGE_PATTERN_MONOCHROME_PATTERN0			0x00000318 + +#define NV04_IMAGE_PATTERN_MONOCHROME_PATTERN1			0x0000031c + +#define NV04_IMAGE_PATTERN_PATTERN_Y8(i0)		       (0x00000400 + 0x4*(i0)) +#define NV04_IMAGE_PATTERN_PATTERN_Y8__ESIZE			0x00000004 +#define NV04_IMAGE_PATTERN_PATTERN_Y8__LEN			0x00000010 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y0__MASK			0x000000ff +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y0__SHIFT			0 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y1__MASK			0x0000ff00 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y1__SHIFT			8 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y2__MASK			0x00ff0000 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y2__SHIFT			16 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y3__MASK			0xff000000 +#define NV04_IMAGE_PATTERN_PATTERN_Y8_Y3__SHIFT			24 + +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5(i0)		       (0x00000500 + 0x4*(i0)) +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5__ESIZE		0x00000004 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5__LEN			0x00000020 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B0__MASK		0x0000001f +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B0__SHIFT		0 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G0__MASK		0x000007e0 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G0__SHIFT		5 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R0__MASK		0x0000f800 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R0__SHIFT		11 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B1__MASK		0x001f0000 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B1__SHIFT		16 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G1__MASK		0x07e00000 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G1__SHIFT		21 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R1__MASK		0xf8000000 +#define NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R1__SHIFT		27 + +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5(i0)		       (0x00000600 + 0x4*(i0)) +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5__ESIZE		0x00000004 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5__LEN		0x00000020 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B0__MASK		0x0000001f +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B0__SHIFT		0 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G0__MASK		0x000003e0 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G0__SHIFT		5 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R0__MASK		0x00007c00 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R0__SHIFT		10 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B1__MASK		0x001f0000 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B1__SHIFT		16 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G1__MASK		0x03e00000 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G1__SHIFT		21 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R1__MASK		0x7c000000 +#define NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R1__SHIFT		26 + +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8(i0)		       (0x00000700 + 0x4*(i0)) +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8__ESIZE		0x00000004 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8__LEN		0x00000040 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_B__MASK		0x000000ff +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_B__SHIFT		0 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_G__MASK		0x0000ff00 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_G__SHIFT		8 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_R__MASK		0x00ff0000 +#define NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_R__SHIFT		16 + + +#define NV01_RENDER_SOLID_LINE_PATCH				0x0000010c + +#define NV01_RENDER_SOLID_LINE_DMA_NOTIFY			0x00000180 + +#define NV01_RENDER_SOLID_LINE_CLIP_RECTANGLE			0x00000184 + +#define NV01_RENDER_SOLID_LINE_PATTERN				0x00000188 + +#define NV04_RENDER_SOLID_LINE_PATTERN				0x00000188 + +#define NV01_RENDER_SOLID_LINE_ROP				0x0000018c + +#define NV01_RENDER_SOLID_LINE_BETA1				0x00000190 + +#define NV01_RENDER_SOLID_LINE_SURFACE_DST			0x00000194 + + +#define NV04_RENDER_SOLID_LINE_BETA4				0x00000194 + +#define NV04_RENDER_SOLID_LINE_SURFACE				0x00000198 + +#define NV01_RENDER_SOLID_LINE_OPERATION			0x000002fc +#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_AND		0x00000000 +#define NV01_RENDER_SOLID_LINE_OPERATION_ROP_AND		0x00000001 +#define NV01_RENDER_SOLID_LINE_OPERATION_BLEND_AND		0x00000002 +#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY		0x00000003 +#define NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_PREMULT	0x00000004 +#define NV01_RENDER_SOLID_LINE_OPERATION_BLEND_PREMULT		0x00000005 + +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT			0x00000300 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A16R5G6B5		0x00000001 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16A1R5G5B5		0x00000002 +#define NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A8R8G8B8		0x00000003 + +#define NV01_RENDER_SOLID_LINE_COLOR				0x00000304 + +#define NV01_RENDER_SOLID_LINE_LINE_POINT0(i0)		       (0x00000400 + 0x8*(i0)) +#define NV01_RENDER_SOLID_LINE_LINE_POINT0__ESIZE		0x00000008 +#define NV01_RENDER_SOLID_LINE_LINE_POINT0__LEN			0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE_POINT0_X__MASK		0x0000ffff +#define NV01_RENDER_SOLID_LINE_LINE_POINT0_X__SHIFT		0 +#define NV01_RENDER_SOLID_LINE_LINE_POINT0_Y__MASK		0xffff0000 +#define NV01_RENDER_SOLID_LINE_LINE_POINT0_Y__SHIFT		16 + +#define NV01_RENDER_SOLID_LINE_LINE_POINT1(i0)		       (0x00000404 + 0x8*(i0)) +#define NV01_RENDER_SOLID_LINE_LINE_POINT1__ESIZE		0x00000008 +#define NV01_RENDER_SOLID_LINE_LINE_POINT1__LEN			0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE_POINT1_X__MASK		0x0000ffff +#define NV01_RENDER_SOLID_LINE_LINE_POINT1_X__SHIFT		0 +#define NV01_RENDER_SOLID_LINE_LINE_POINT1_Y__MASK		0xffff0000 +#define NV01_RENDER_SOLID_LINE_LINE_POINT1_Y__SHIFT		16 + +#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_X(i0)	       (0x00000480 + 0x10*(i0)) +#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_X__ESIZE		0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_X__LEN		0x00000010 + +#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y(i0)	       (0x00000484 + 0x10*(i0)) +#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y__ESIZE		0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y__LEN		0x00000010 + +#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_X(i0)	       (0x00000488 + 0x10*(i0)) +#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_X__ESIZE		0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_X__LEN		0x00000010 + +#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y(i0)	       (0x0000048c + 0x10*(i0)) +#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y__ESIZE		0x00000010 +#define NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y__LEN		0x00000010 + +#define NV01_RENDER_SOLID_LINE_POLYLINE(i0)		       (0x00000500 + 0x4*(i0)) +#define NV01_RENDER_SOLID_LINE_POLYLINE__ESIZE			0x00000004 +#define NV01_RENDER_SOLID_LINE_POLYLINE__LEN			0x00000020 +#define NV01_RENDER_SOLID_LINE_POLYLINE_X__MASK			0x0000ffff +#define NV01_RENDER_SOLID_LINE_POLYLINE_X__SHIFT		0 +#define NV01_RENDER_SOLID_LINE_POLYLINE_Y__MASK			0xffff0000 +#define NV01_RENDER_SOLID_LINE_POLYLINE_Y__SHIFT		16 + +#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X(i0)	       (0x00000580 + 0x8*(i0)) +#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X__ESIZE	0x00000008 +#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X__LEN		0x00000010 + +#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y(i0)	       (0x00000584 + 0x8*(i0)) +#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y__ESIZE	0x00000008 +#define NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y__LEN		0x00000010 + +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR(i0)	       (0x00000600 + 0x8*(i0)) +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR__ESIZE		0x00000008 +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR__LEN		0x00000010 + +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT(i0)	       (0x00000604 + 0x8*(i0)) +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT__ESIZE		0x00000008 +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT__LEN		0x00000010 +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X__MASK		0x0000ffff +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X__SHIFT		0 +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y__MASK		0xffff0000 +#define NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y__SHIFT		16 + + +#define NV01_RENDER_SOLID_TRIANGLE_PATCH			0x0000010c + +#define NV01_RENDER_SOLID_TRIANGLE_DMA_NOTIFY			0x00000180 + +#define NV01_RENDER_SOLID_TRIANGLE_CLIP_RECTANGLE		0x00000184 + +#define NV01_RENDER_SOLID_TRIANGLE_PATTERN			0x00000188 + +#define NV04_RENDER_SOLID_TRIANGLE_PATTERN			0x00000188 + +#define NV01_RENDER_SOLID_TRIANGLE_ROP				0x0000018c + +#define NV01_RENDER_SOLID_TRIANGLE_BETA1			0x00000190 + +#define NV01_RENDER_SOLID_TRIANGLE_SURFACE_DST			0x00000194 + + +#define NV04_RENDER_SOLID_TRIANGLE_BETA4			0x00000194 + +#define NV04_RENDER_SOLID_TRIANGLE_SURFACE			0x00000198 + +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION			0x000002fc +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_AND	0x00000000 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_ROP_AND		0x00000001 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_AND		0x00000002 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY		0x00000003 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_PREMULT	0x00000004 +#define NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_PREMULT	0x00000005 + +#define NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT			0x00000300 +#define NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT_A16R5G6B5	0x00000001 +#define NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT_X16A1R5G5B5	0x00000002 +#define NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT_A8R8G8B8	0x00000003 + +#define NV01_RENDER_SOLID_TRIANGLE_COLOR			0x00000304 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0		0x00000310 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X__MASK	0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X__SHIFT	0 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y__MASK	0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y__SHIFT	16 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1		0x00000314 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X__MASK	0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X__SHIFT	0 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y__MASK	0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y__SHIFT	16 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2		0x00000318 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X__MASK	0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X__SHIFT	0 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y__MASK	0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y__SHIFT	16 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_X		0x00000320 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_Y		0x00000324 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_X		0x00000328 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_Y		0x0000032c + +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_X		0x00000330 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_Y		0x00000334 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH(i0)		       (0x00000400 + 0x4*(i0)) +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH__ESIZE		0x00000004 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH__LEN			0x00000020 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X__MASK		0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X__SHIFT		0 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y__MASK		0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y__SHIFT		16 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X(i0)       (0x00000480 + 0x8*(i0)) +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X__ESIZE	0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X__LEN	0x00000010 + +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y(i0)       (0x00000484 + 0x8*(i0)) +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y__ESIZE	0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y__LEN	0x00000010 + +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR(i0)	       (0x00000500 + 0x10*(i0)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR__ESIZE	0x00000010 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR__LEN		0x00000008 + +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0(i0)	       (0x00000504 + 0x10*(i0)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0__ESIZE	0x00000010 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0__LEN	0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X__MASK	0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X__SHIFT	0 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y__MASK	0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y__SHIFT	16 + +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1(i0)	       (0x00000508 + 0x10*(i0)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1__ESIZE	0x00000010 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1__LEN	0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X__MASK	0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X__SHIFT	0 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y__MASK	0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y__SHIFT	16 + +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2(i0)	       (0x0000050c + 0x10*(i0)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2__ESIZE	0x00000010 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2__LEN	0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X__MASK	0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X__SHIFT	0 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y__MASK	0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y__SHIFT	16 + +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR(i0)	       (0x00000580 + 0x8*(i0)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR__ESIZE	0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR__LEN		0x00000010 + +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT(i0)	       (0x00000584 + 0x8*(i0)) +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT__ESIZE	0x00000008 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT__LEN		0x00000010 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X__MASK	0x0000ffff +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X__SHIFT	0 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y__MASK	0xffff0000 +#define NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y__SHIFT	16 + + +#define NV01_RENDER_SOLID_RECTANGLE_PATCH			0x0000010c + +#define NV01_RENDER_SOLID_RECTANGLE_DMA_NOTIFY			0x00000180 + +#define NV01_RENDER_SOLID_RECTANGLE_CLIP_RECTANGLE		0x00000184 + +#define NV01_RENDER_SOLID_RECTANGLE_PATTERN			0x00000188 + +#define NV04_RENDER_SOLID_RECTANGLE_PATTERN			0x00000188 + +#define NV01_RENDER_SOLID_RECTANGLE_ROP				0x0000018c + +#define NV01_RENDER_SOLID_RECTANGLE_BETA1			0x00000190 + +#define NV01_RENDER_SOLID_RECTANGLE_SURFACE_DST			0x00000194 + + +#define NV04_RENDER_SOLID_RECTANGLE_BETA4			0x00000194 + +#define NV04_RENDER_SOLID_RECTANGLE_SURFACE			0x00000198 + +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION			0x000002fc +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_AND	0x00000000 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_ROP_AND		0x00000001 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_AND		0x00000002 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY		0x00000003 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_PREMULT	0x00000004 +#define NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_PREMULT	0x00000005 + +#define NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT		0x00000300 +#define NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT_A16R5G6B5	0x00000001 +#define NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT_X16A1R5G5B5	0x00000002 +#define NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT_A8R8G8B8	0x00000003 + +#define NV01_RENDER_SOLID_RECTANGLE_COLOR			0x00000304 + +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT(i0)	       (0x00000400 + 0x8*(i0)) +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT__ESIZE	0x00000008 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT__LEN	0x00000010 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X__MASK	0x0000ffff +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X__SHIFT	0 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y__MASK	0xffff0000 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y__SHIFT	16 + +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE(i0)	       (0x00000404 + 0x8*(i0)) +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE__ESIZE	0x00000008 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE__LEN		0x00000010 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W__MASK	0x0000ffff +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W__SHIFT	0 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H__MASK	0xffff0000 +#define NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H__SHIFT	16 + + +#define NV01_IMAGE_BLIT_PATCH					0x0000010c + + +#define NV11_IMAGE_BLIT_WAIT_FOR_IDLE				0x00000108 + +#define NV11_IMAGE_BLIT_UNK120					0x00000120 + +#define NV11_IMAGE_BLIT_UNK124					0x00000124 + +#define NV11_IMAGE_BLIT_UNK128					0x00000128 + +#define NV11_IMAGE_BLIT_UNK12C					0x0000012c + +#define NV11_IMAGE_BLIT_UNK130					0x00000130 + +#define NV11_IMAGE_BLIT_UNK134					0x00000134 + +#define NV01_IMAGE_BLIT_DMA_NOTIFY				0x00000180 + +#define NV01_IMAGE_BLIT_COLOR_KEY				0x00000184 + +#define NV04_IMAGE_BLIT_COLOR_KEY				0x00000184 + +#define NV01_IMAGE_BLIT_CLIP_RECTANGLE				0x00000188 + +#define NV01_IMAGE_BLIT_PATTERN					0x0000018c + +#define NV04_IMAGE_BLIT_PATTERN					0x0000018c + +#define NV01_IMAGE_BLIT_ROP					0x00000190 + +#define NV01_IMAGE_BLIT_BETA1					0x00000194 + + +#define NV01_IMAGE_BLIT_SURFACE_SRC				0x00000198 + +#define NV01_IMAGE_BLIT_SURFACE_DST				0x0000019c + + +#define NV04_IMAGE_BLIT_BETA4					0x00000198 + +#define NV04_IMAGE_BLIT_SURFACES				0x0000019c + +#define NV01_IMAGE_BLIT_OPERATION				0x000002fc +#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY_AND			0x00000000 +#define NV01_IMAGE_BLIT_OPERATION_ROP_AND			0x00000001 +#define NV01_IMAGE_BLIT_OPERATION_BLEND_AND			0x00000002 +#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY			0x00000003 +#define NV01_IMAGE_BLIT_OPERATION_SRCCOPY_PREMULT		0x00000004 +#define NV01_IMAGE_BLIT_OPERATION_BLEND_PREMULT			0x00000005 + +#define NV01_IMAGE_BLIT_POINT_IN				0x00000300 +#define NV01_IMAGE_BLIT_POINT_IN_X__MASK			0x0000ffff +#define NV01_IMAGE_BLIT_POINT_IN_X__SHIFT			0 +#define NV01_IMAGE_BLIT_POINT_IN_Y__MASK			0xffff0000 +#define NV01_IMAGE_BLIT_POINT_IN_Y__SHIFT			16 + +#define NV01_IMAGE_BLIT_POINT_OUT				0x00000304 +#define NV01_IMAGE_BLIT_POINT_OUT_X__MASK			0x0000ffff +#define NV01_IMAGE_BLIT_POINT_OUT_X__SHIFT			0 +#define NV01_IMAGE_BLIT_POINT_OUT_Y__MASK			0xffff0000 +#define NV01_IMAGE_BLIT_POINT_OUT_Y__SHIFT			16 + +#define NV01_IMAGE_BLIT_SIZE					0x00000308 +#define NV01_IMAGE_BLIT_SIZE_W__MASK				0x0000ffff +#define NV01_IMAGE_BLIT_SIZE_W__SHIFT				0 +#define NV01_IMAGE_BLIT_SIZE_H__MASK				0xffff0000 +#define NV01_IMAGE_BLIT_SIZE_H__SHIFT				16 + + +#define NV04_INDEXED_IMAGE_FROM_CPU_PATCH			0x0000010c + +#define NV04_INDEXED_IMAGE_FROM_CPU_DMA_NOTIFY			0x00000180 + +#define NV04_INDEXED_IMAGE_FROM_CPU_DMA_LUT			0x00000184 + +#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR_KEY			0x00000188 + +#define NV04_INDEXED_IMAGE_FROM_CPU_CLIP_RECTANGLE		0x0000018c + +#define NV04_INDEXED_IMAGE_FROM_CPU_PATTERN			0x00000190 + +#define NV04_INDEXED_IMAGE_FROM_CPU_ROP				0x00000194 + +#define NV04_INDEXED_IMAGE_FROM_CPU_BETA1			0x00000198 + +#define NV04_INDEXED_IMAGE_FROM_CPU_BETA4			0x0000019c + +#define NV04_INDEXED_IMAGE_FROM_CPU_SURFACE			0x000001a0 + +#define NV05_INDEXED_IMAGE_FROM_CPU_SURFACE			0x000001a0 + +#define NV05_INDEXED_IMAGE_FROM_CPU_COLOR_CONVERSION		0x000003e0 + +#define NV04_INDEXED_IMAGE_FROM_CPU_OPERATION			0x000003e4 + +#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR_FORMAT		0x000003e8 + +#define NV04_INDEXED_IMAGE_FROM_CPU_INDEX_FORMAT		0x000003ec + +#define NV04_INDEXED_IMAGE_FROM_CPU_LUT_OFFSET			0x000003f0 + +#define NV04_INDEXED_IMAGE_FROM_CPU_POINT			0x000003f4 + +#define NV04_INDEXED_IMAGE_FROM_CPU_SIZE_OUT			0x000003f8 + +#define NV04_INDEXED_IMAGE_FROM_CPU_SIZE_IN			0x000003fc + +#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR(i0)		       (0x00000400 + 0x4*(i0)) +#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR__ESIZE		0x00000004 +#define NV04_INDEXED_IMAGE_FROM_CPU_COLOR__LEN			0x00000700 + + +#define NV10_IMAGE_FROM_CPU_WAIT_FOR_IDLE			0x00000108 + +#define NV01_IMAGE_FROM_CPU_PATCH				0x0000010c + +#define NV01_IMAGE_FROM_CPU_DMA_NOTIFY				0x00000180 + +#define NV01_IMAGE_FROM_CPU_COLOR_KEY				0x00000184 + +#define NV04_IMAGE_FROM_CPU_COLOR_KEY				0x00000184 + +#define NV01_IMAGE_FROM_CPU_CLIP_RECTANGLE			0x00000188 + +#define NV01_IMAGE_FROM_CPU_PATTERN				0x0000018c + +#define NV04_IMAGE_FROM_CPU_PATTERN				0x0000018c + +#define NV01_IMAGE_FROM_CPU_ROP					0x00000190 + +#define NV01_IMAGE_FROM_CPU_BETA1				0x00000194 + + +#define NV01_IMAGE_FROM_CPU_SURFACE_DST				0x00000198 + + +#define NV04_IMAGE_FROM_CPU_BETA4				0x00000198 + +#define NV04_IMAGE_FROM_CPU_SURFACE				0x0000019c + +#define NV05_IMAGE_FROM_CPU_COLOR_CONVERSION			0x000002f8 + +#define NV01_IMAGE_FROM_CPU_OPERATION				0x000002fc +#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_AND		0x00000000 +#define NV01_IMAGE_FROM_CPU_OPERATION_ROP_AND			0x00000001 +#define NV01_IMAGE_FROM_CPU_OPERATION_BLEND_AND			0x00000002 +#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY			0x00000003 +#define NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_PREMULT		0x00000004 +#define NV01_IMAGE_FROM_CPU_OPERATION_BLEND_PREMULT		0x00000005 + +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT			0x00000300 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_R5G6G5			0x00000001 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A1R5G5B5		0x00000002 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X1R5G5B5		0x00000003 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A8R8G8B8		0x00000004 +#define NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X8R8G8B8		0x00000005 + +#define NV01_IMAGE_FROM_CPU_POINT				0x00000304 +#define NV01_IMAGE_FROM_CPU_POINT_X__MASK			0x0000ffff +#define NV01_IMAGE_FROM_CPU_POINT_X__SHIFT			0 +#define NV01_IMAGE_FROM_CPU_POINT_Y__MASK			0xffff0000 +#define NV01_IMAGE_FROM_CPU_POINT_Y__SHIFT			16 + +#define NV01_IMAGE_FROM_CPU_SIZE_OUT				0x00000308 +#define NV01_IMAGE_FROM_CPU_SIZE_OUT_W__MASK			0x0000ffff +#define NV01_IMAGE_FROM_CPU_SIZE_OUT_W__SHIFT			0 +#define NV01_IMAGE_FROM_CPU_SIZE_OUT_H__MASK			0xffff0000 +#define NV01_IMAGE_FROM_CPU_SIZE_OUT_H__SHIFT			16 + +#define NV01_IMAGE_FROM_CPU_SIZE_IN				0x0000030c +#define NV01_IMAGE_FROM_CPU_SIZE_IN_W__MASK			0x0000ffff +#define NV01_IMAGE_FROM_CPU_SIZE_IN_W__SHIFT			0 +#define NV01_IMAGE_FROM_CPU_SIZE_IN_H__MASK			0xffff0000 +#define NV01_IMAGE_FROM_CPU_SIZE_IN_H__SHIFT			16 + +#define NV01_IMAGE_FROM_CPU_COLOR(i0)			       (0x00000400 + 0x4*(i0)) +#define NV01_IMAGE_FROM_CPU_COLOR__ESIZE			0x00000004 +#define NV01_IMAGE_FROM_CPU_COLOR__LEN				0x00000020 + +#define NV04_IMAGE_FROM_CPU_COLOR(i0)			       (0x00000400 + 0x4*(i0)) +#define NV04_IMAGE_FROM_CPU_COLOR__ESIZE			0x00000004 +#define NV04_IMAGE_FROM_CPU_COLOR__LEN				0x00000700 + + +#define NV03_STRETCHED_IMAGE_FROM_CPU_PATCH			0x0000010c + +#define NV03_STRETCHED_IMAGE_FROM_CPU_DMA_NOTIFY		0x00000180 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_KEY			0x00000184 + +#define NV04_STRETCHED_IMAGE_FROM_CPU_COLOR_KEY			0x00000184 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_PATTERN			0x00000188 + +#define NV04_STRETCHED_IMAGE_FROM_CPU_PATTERN			0x00000188 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_ROP			0x0000018c + +#define NV03_STRETCHED_IMAGE_FROM_CPU_BETA1			0x00000190 + + +#define NV03_STRETCHED_IMAGE_FROM_CPU_SURFACE_DST		0x00000194 + + +#define NV04_STRETCHED_IMAGE_FROM_CPU_BETA4			0x00000194 + +#define NV04_STRETCHED_IMAGE_FROM_CPU_SURFACE			0x00000198 + +#define NV05_STRETCHED_IMAGE_FROM_CPU_COLOR_CONVERSION		0x000002f8 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_OPERATION			0x000002fc + +#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_FORMAT		0x00000300 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN			0x00000304 +#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W__MASK		0x0000ffff +#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W__SHIFT		0 +#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H__MASK		0xffff0000 +#define NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H__SHIFT		16 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_DX_DU			0x00000308 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_DY_DV			0x0000030c + +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT		0x00000310 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X__MASK	0x0000ffff +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X__SHIFT	0 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y__MASK	0xffff0000 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y__SHIFT	16 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE			0x00000314 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W__MASK		0x0000ffff +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W__SHIFT	0 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H__MASK		0xffff0000 +#define NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H__SHIFT	16 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4			0x00000318 +#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X__MASK		0x0000ffff +#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X__SHIFT	0 +#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y__MASK		0xffff0000 +#define NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y__SHIFT	16 + +#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR(i0)		       (0x00000400 + 0x4*(i0)) +#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR__ESIZE		0x00000004 +#define NV03_STRETCHED_IMAGE_FROM_CPU_COLOR__LEN		0x00000700 + + +#define NV10_SCALED_IMAGE_FROM_MEMORY_WAIT_FOR_IDLE		0x00000108 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY		0x00000180 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE			0x00000184 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_PATTERN			0x00000188 + +#define NV04_SCALED_IMAGE_FROM_MEMORY_PATTERN			0x00000188 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_ROP			0x0000018c + +#define NV03_SCALED_IMAGE_FROM_MEMORY_BETA1			0x00000190 + + +#define NV03_SCALED_IMAGE_FROM_MEMORY_SURFACE_DST		0x00000194 + + +#define NV04_SCALED_IMAGE_FROM_MEMORY_BETA4			0x00000194 + +#define NV04_SCALED_IMAGE_FROM_MEMORY_SURFACE			0x00000198 + +#define NV05_SCALED_IMAGE_FROM_MEMORY_SURFACE			0x00000198 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION		0x000002fc +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER	0x00000000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE	0x00000001 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_SUBTR_TRUNCATE	0x00000002 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT		0x00000300 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A1R5G5B5	0x00000001 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X1R5G5B5	0x00000002 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A8R8G8B8	0x00000003 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X8R8G8B8	0x00000004 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_V8YB8U8YA8	0x00000005 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_YB8V8YA8U8	0x00000006 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_R5G6B5	0x00000007 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_Y8		0x00000008 +#define NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_AY8		0x00000009 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION			0x00000304 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_AND	0x00000000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_ROP_AND		0x00000001 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_AND	0x00000002 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY		0x00000003 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_PREMULT	0x00000004 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_PREMULT	0x00000005 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT		0x00000308 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X__MASK	0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X__SHIFT	0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y__MASK	0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y__SHIFT	16 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE			0x0000030c +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W__MASK		0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W__SHIFT	0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H__MASK		0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H__SHIFT	16 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT			0x00000310 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X__MASK		0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X__SHIFT	0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y__MASK		0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y__SHIFT	16 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE			0x00000314 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W__MASK		0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W__SHIFT		0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H__MASK		0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H__SHIFT		16 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_DU_DX			0x00000318 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_DV_DY			0x0000031c + +#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE			0x00000400 +#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W__MASK		0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_W__SHIFT		0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H__MASK		0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H__SHIFT		16 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT			0x00000404 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH__MASK	0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH__SHIFT	0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN__MASK	0x00ff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN__SHIFT	16 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER	0x00010000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CORNER	0x00020000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER__MASK	0xff000000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER__SHIFT	24 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE	0x00000000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_BILINEAR	0x01000000 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_OFFSET			0x00000408 + +#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT			0x0000040c +#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U__MASK		0x0000ffff +#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_U__SHIFT		0 +#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V__MASK		0xffff0000 +#define NV03_SCALED_IMAGE_FROM_MEMORY_POINT_V__SHIFT		16 + + +#define NV50_SCALED_IMAGE_FROM_MEMORY_OFFSET_HIGH		0x00000410 + +#define NV50_SCALED_IMAGE_FROM_MEMORY_SRC_LINEAR		0x00000414 + +#define NV50_SCALED_IMAGE_FROM_MEMORY_SRC_TILE_MODE		0x00000418 + + +#define NV03_GDI_RECTANGLE_TEXT_DMA_NOTIFY			0x00000180 + +#define NV03_GDI_RECTANGLE_TEXT_PATTERN				0x00000184 + +#define NV03_GDI_RECTANGLE_TEXT_ROP				0x00000188 + +#define NV03_GDI_RECTANGLE_TEXT_BETA1				0x0000019c + +#define NV03_GDI_RECTANGLE_TEXT_SURFACE_DST			0x00000190 + +#define NV03_GDI_RECTANGLE_TEXT_OPERATION			0x000002fc + +#define NV03_GDI_RECTANGLE_TEXT_COLOR_FORMAT			0x00000300 + +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT		0x00000304 + +#define NV03_GDI_RECTANGLE_TEXT_COLOR1_A			0x000003fc + +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT	0x00000400 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y__MASK	0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y__SHIFT	0 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X__MASK	0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X__SHIFT	16 + +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE	0x00000404 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H__MASK	0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H__SHIFT	0 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W__MASK	0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W__SHIFT	16 + +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B			0x000007f4 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_L__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_L__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_T__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_T__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B			0x000007f8 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_R__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_R__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_B__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_B__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_COLOR1_B			0x000007fc + +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0	0x00000800 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L__MASK	0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L__SHIFT	0 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T__MASK	0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T__SHIFT	16 + +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1	0x00000804 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R__MASK	0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R__SHIFT	0 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B__MASK	0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B__SHIFT	16 + +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0			0x00000bec +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1			0x00000bf0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_COLOR1_C			0x00000bf4 + +#define NV03_GDI_RECTANGLE_TEXT_SIZE_C				0x00000bf8 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_W__MASK			0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_W__SHIFT			0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_H__MASK			0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_C_H__SHIFT			16 + +#define NV03_GDI_RECTANGLE_TEXT_POINT_C				0x00000bfc +#define NV03_GDI_RECTANGLE_TEXT_POINT_C_X__MASK			0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_POINT_C_X__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_POINT_C_Y__MASK			0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_POINT_C_Y__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C(i0)	       (0x00000c00 + 0x4*(i0)) +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__ESIZE	0x00000004 +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__LEN	0x00000020 + +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0			0x00000fe8 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_L__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_L__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_T__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_T__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1			0x00000fec +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_R__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_R__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_B__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_B__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_COLOR1_D			0x00000ff0 + +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D			0x00000ff4 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_W__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_W__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_H__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_H__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D			0x00000ff8 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_W__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_W__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_H__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_H__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_POINT_D				0x00000ffc +#define NV03_GDI_RECTANGLE_TEXT_POINT_D_X__MASK			0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_POINT_D_X__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_POINT_D_Y__MASK			0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_POINT_D_Y__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D(i0)	       (0x00001000 + 0x4*(i0)) +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D__ESIZE	0x00000004 +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D__LEN	0x00000020 + +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0			0x000013e4 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1			0x000013e8 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_COLOR0_E			0x000013ec + +#define NV03_GDI_RECTANGLE_TEXT_COLOR1_E			0x000013f0 + +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E			0x000013f4 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_W__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_W__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_H__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_H__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E			0x000013f8 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W__MASK		0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H__MASK		0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_POINT_E				0x000013fc +#define NV03_GDI_RECTANGLE_TEXT_POINT_E_X__MASK			0x0000ffff +#define NV03_GDI_RECTANGLE_TEXT_POINT_E_X__SHIFT		0 +#define NV03_GDI_RECTANGLE_TEXT_POINT_E_Y__MASK			0xffff0000 +#define NV03_GDI_RECTANGLE_TEXT_POINT_E_Y__SHIFT		16 + +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E(i0)       (0x00001400 + 0x4*(i0)) +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__ESIZE	0x00000004 +#define NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__LEN	0x00000020 + + +#define NV04_GDI_RECTANGLE_TEXT_PATCH				0x0000010c + +#define NV04_GDI_RECTANGLE_TEXT_DMA_NOTIFY			0x00000180 + +#define NV04_GDI_RECTANGLE_TEXT_DMA_FONTS			0x00000184 + +#define NV04_GDI_RECTANGLE_TEXT_PATTERN				0x00000188 + +#define NV04_GDI_RECTANGLE_TEXT_ROP				0x0000018c + +#define NV04_GDI_RECTANGLE_TEXT_BETA1				0x00000190 + +#define NV04_GDI_RECTANGLE_TEXT_BETA4				0x00000194 + +#define NV04_GDI_RECTANGLE_TEXT_SURFACE				0x00000198 + +#define NV04_GDI_RECTANGLE_TEXT_OPERATION			0x000002fc +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY_AND		0x00000000 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_ROP_AND		0x00000001 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_BLEND_AND		0x00000002 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY		0x00000003 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY_PREMULT	0x00000004 +#define NV04_GDI_RECTANGLE_TEXT_OPERATION_BLEND_PREMULT		0x00000005 + +#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT			0x00000300 +#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5		0x00000001 +#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_X16A1R5G5B5	0x00000002 +#define NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8		0x00000003 + +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT		0x00000304 +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT_CGA6		0x00000001 +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT_LE		0x00000002 + +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_A			0x000003fc + +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT(i0)  (0x00000400 + 0x8*(i0)) +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT__ESIZE	0x00000008 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT__LEN	0x00000020 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y__MASK	0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y__SHIFT	0 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X__MASK	0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X__SHIFT	16 + +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE(i0)   (0x00000404 + 0x8*(i0)) +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE__ESIZE	0x00000008 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE__LEN	0x00000020 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H__MASK	0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H__SHIFT	0 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W__MASK	0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W__SHIFT	16 + +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0			0x000005f4 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_L__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_L__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_T__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_T__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1			0x000005f8 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_R__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_R__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_B__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_B__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_B			0x000005fc + +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0(i0)  (0x00000600 + 0x8*(i0)) +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0__ESIZE	0x00000008 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0__LEN	0x00000020 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L__MASK	0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L__SHIFT	0 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T__MASK	0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T__SHIFT	16 + +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1(i0)  (0x00000604 + 0x8*(i0)) +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1__ESIZE	0x00000008 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1__LEN	0x00000020 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R__MASK	0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R__SHIFT	0 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B__MASK	0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B__SHIFT	16 + +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0			0x000007ec +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1			0x000007f0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_C			0x000007f4 + +#define NV04_GDI_RECTANGLE_TEXT_SIZE_C				0x000007f8 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_W__MASK			0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_W__SHIFT			0 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_H__MASK			0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_C_H__SHIFT			16 + +#define NV04_GDI_RECTANGLE_TEXT_POINT_C				0x000007fc +#define NV04_GDI_RECTANGLE_TEXT_POINT_C_X__MASK			0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_POINT_C_X__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_POINT_C_Y__MASK			0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_POINT_C_Y__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C(i0)	       (0x00000800 + 0x4*(i0)) +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__ESIZE	0x00000004 +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__LEN	0x00000080 + +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0			0x00000be4 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1			0x00000be8 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_COLOR0_E			0x00000bec + +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_E			0x00000bf0 + +#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E			0x00000bf4 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_W__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_W__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_H__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_H__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E			0x00000bf8 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_POINT_E				0x00000bfc +#define NV04_GDI_RECTANGLE_TEXT_POINT_E_X__MASK			0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_POINT_E_X__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_POINT_E_Y__MASK			0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_POINT_E_Y__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E(i0)       (0x00000c00 + 0x4*(i0)) +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__ESIZE	0x00000004 +#define NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__LEN	0x00000080 + +#define NV04_GDI_RECTANGLE_TEXT_FONT_F				0x00000ff0 +#define NV04_GDI_RECTANGLE_TEXT_FONT_F_OFFSET__MASK		0x0fffffff +#define NV04_GDI_RECTANGLE_TEXT_FONT_F_OFFSET__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_FONT_F_PITCH__MASK		0xf0000000 +#define NV04_GDI_RECTANGLE_TEXT_FONT_F_PITCH__SHIFT		28 + +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0			0x00000ff4 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_L__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_L__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_T__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_T__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1			0x00000ff8 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_R__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_R__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_B__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_B__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_F			0x00000ffc + +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F(i0)	       (0x00001000 + 0x4*(i0)) +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F__ESIZE	0x00000004 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F__LEN		0x00000100 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_INDEX__MASK	0x000000ff +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_INDEX__SHIFT	0 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_X__MASK	0x000fff00 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_X__SHIFT	8 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_Y__MASK	0xfff00000 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_Y__SHIFT	20 + +#define NV04_GDI_RECTANGLE_TEXT_FONT_G				0x000017f0 +#define NV04_GDI_RECTANGLE_TEXT_FONT_G_OFFSET__MASK		0x0fffffff +#define NV04_GDI_RECTANGLE_TEXT_FONT_G_OFFSET__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_FONT_G_PITCH__MASK		0xf0000000 +#define NV04_GDI_RECTANGLE_TEXT_FONT_G_PITCH__SHIFT		28 + +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0			0x000017f4 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_L__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_L__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_T__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_T__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1			0x000017f8 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_R__MASK		0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_R__SHIFT		0 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_B__MASK		0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_B__SHIFT		16 + +#define NV04_GDI_RECTANGLE_TEXT_COLOR1_G			0x000017fc + +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT(i0)   (0x00001800 + 0x8*(i0)) +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT__ESIZE	0x00000008 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT__LEN	0x00000100 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_X__MASK	0x0000ffff +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_X__SHIFT	0 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_Y__MASK	0xffff0000 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_Y__SHIFT	16 + +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX(i0)   (0x00001804 + 0x8*(i0)) +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX__ESIZE	0x00000008 +#define NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX__LEN	0x00000100 + + +#define NV10_TEXTURE_FROM_CPU_WAIT_FOR_IDLE			0x00000108 + +#define NV10_TEXTURE_FROM_CPU_DMA_NOTIFY			0x00000180 + +#define NV10_TEXTURE_FROM_CPU_SURFACE				0x00000184 + +#define NV10_TEXTURE_FROM_CPU_COLOR_FORMAT			0x00000300 + +#define NV10_TEXTURE_FROM_CPU_POINT				0x00000304 +#define NV10_TEXTURE_FROM_CPU_POINT_X__MASK			0x0000ffff +#define NV10_TEXTURE_FROM_CPU_POINT_X__SHIFT			0 +#define NV10_TEXTURE_FROM_CPU_POINT_Y__MASK			0xffff0000 +#define NV10_TEXTURE_FROM_CPU_POINT_Y__SHIFT			16 + +#define NV10_TEXTURE_FROM_CPU_SIZE				0x00000308 +#define NV10_TEXTURE_FROM_CPU_SIZE_W__MASK			0x0000ffff +#define NV10_TEXTURE_FROM_CPU_SIZE_W__SHIFT			0 +#define NV10_TEXTURE_FROM_CPU_SIZE_H__MASK			0xffff0000 +#define NV10_TEXTURE_FROM_CPU_SIZE_H__SHIFT			16 + +#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL			0x0000030c +#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_X__MASK		0x0000ffff +#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_X__SHIFT		0 +#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_W__MASK		0xffff0000 +#define NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_W__SHIFT		16 + +#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL			0x00000310 +#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_Y__MASK		0x0000ffff +#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_Y__SHIFT		0 +#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_H__MASK		0xffff0000 +#define NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_H__SHIFT		16 + +#define NV10_TEXTURE_FROM_CPU_COLOR(i0)			       (0x00000400 + 0x4*(i0)) +#define NV10_TEXTURE_FROM_CPU_COLOR__ESIZE			0x00000004 +#define NV10_TEXTURE_FROM_CPU_COLOR__LEN			0x00000700 + + +#endif /* NV01_2D_XML */ diff --git a/src/gallium/drivers/nvfx/nv04_2d.c b/src/gallium/drivers/nvfx/nv04_2d.c index 407f435d05..e0e65e7a87 100644 --- a/src/gallium/drivers/nvfx/nv04_2d.c +++ b/src/gallium/drivers/nvfx/nv04_2d.c @@ -33,7 +33,6 @@  #include <stdlib.h>  #include <stdio.h>  #include <stdint.h> -#include <nouveau/nouveau_class.h>  #include <nouveau/nouveau_device.h>  #include <nouveau/nouveau_pushbuf.h>  #include <nouveau/nouveau_channel.h> @@ -42,6 +41,10 @@  #include <nouveau/nouveau_grobj.h>  #include "nv04_2d.h" +#include "nouveau/nv_object.xml.h" +#include "nouveau/nv_m2mf.xml.h" +#include "nv01_2d.xml.h" +  /* avoid depending on Mesa/Gallium */  #ifdef __GNUC__  #define likely(x) __builtin_expect(!!(x), 1) @@ -813,8 +816,8 @@ nv04_region_copy_swizzle(struct nv04_2d_context *ctx,  	BEGIN_RING(chan, swzsurf, NV04_SWIZZLED_SURFACE_FORMAT, 1);  	OUT_RING  (chan, cs2d_format | -			 log2i(cw) << NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U_SHIFT | -			 log2i(ch) << NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V_SHIFT); +			 log2i(cw) << NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U__SHIFT | +			 log2i(ch) << NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V__SHIFT);  	BEGIN_RING(chan, sifm, NV03_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE, 1);  	OUT_RELOCo(chan, src->bo, @@ -841,19 +844,19 @@ nv04_region_copy_swizzle(struct nv04_2d_context *ctx,  	    OUT_RELOCl(chan, dst->bo, dst_offset,  			    NOUVEAU_BO_VRAM | NOUVEAU_BO_WR); -	    BEGIN_RING(chan, sifm, NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION, 9); -	    OUT_RING  (chan, NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE); +	    BEGIN_RING(chan, sifm, NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION, 9); +	    OUT_RING  (chan, NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE);  	    OUT_RING  (chan, sifm_format);  	    OUT_RING  (chan, NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY); -	    OUT_RING  (chan, rx | (ry << NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_SHIFT)); -	    OUT_RING  (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_SHIFT | rw); -	    OUT_RING  (chan, rx | (ry << NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_SHIFT)); -	    OUT_RING  (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_SHIFT | rw); +	    OUT_RING  (chan, rx | (ry << NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y__SHIFT)); +	    OUT_RING  (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H__SHIFT | rw); +	    OUT_RING  (chan, rx | (ry << NV03_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y__SHIFT)); +	    OUT_RING  (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H__SHIFT | rw);  	    OUT_RING  (chan, 1 << 20);  	    OUT_RING  (chan, 1 << 20);  	    BEGIN_RING(chan, sifm, NV03_SCALED_IMAGE_FROM_MEMORY_SIZE, 4); -	    OUT_RING  (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H_SHIFT | align(rw, 8)); +	    OUT_RING  (chan, rh << NV03_SCALED_IMAGE_FROM_MEMORY_SIZE_H__SHIFT | align(rw, 8));  	    OUT_RING  (chan, src->pitch |  			     NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER |  			     NV03_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE); @@ -873,7 +876,7 @@ nv04_copy_m2mf_begin(struct nv04_2d_context *ctx, struct nouveau_bo* dstbo, stru  	struct nouveau_channel *chan = ctx->m2mf->channel;  	struct nouveau_grobj *m2mf = ctx->m2mf;  	MARK_RING (chan, 3 + commands * 9, 2 + commands * 2); -	BEGIN_RING(chan, m2mf, NV04_MEMORY_TO_MEMORY_FORMAT_DMA_BUFFER_IN, 2); +	BEGIN_RING(chan, m2mf, NV04_M2MF_DMA_BUFFER_IN, 2);  	OUT_RELOCo(chan, srcbo,  		   NOUVEAU_BO_GART | NOUVEAU_BO_VRAM | NOUVEAU_BO_RD);  	OUT_RELOCo(chan, dstbo, @@ -890,7 +893,7 @@ nv04_copy_m2mf_body(struct nv04_2d_context *ctx, struct nouveau_bo* dstbo, int*  	fprintf(stderr, "\t\t\tCOPY_M2MF_BODY [%i, %i] <%i[%u]> lin %u <- <%i[%u]> lin %u\n", size, lines, dstbo->handle, *pdstoff, dstpitch, srcbo->handle, *psrcoff, srcpitch);  #endif -	BEGIN_RING(chan, m2mf, NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN, 8); +	BEGIN_RING(chan, m2mf, NV04_M2MF_OFFSET_IN, 8);  	OUT_RELOCl(chan, srcbo, *psrcoff,  		   NOUVEAU_BO_VRAM | NOUVEAU_BO_GART | NOUVEAU_BO_RD);  	OUT_RELOCl(chan, dstbo, *pdstoff, @@ -1123,7 +1126,7 @@ nv04_region_copy_2d(struct nv04_2d_context *ctx, struct nv04_region* dst, struct  		else  		{  			/* NV_CONTEXT_SURFACES_2D has buffer alignment restrictions, fallback -			 * to NV_MEMORY_TO_MEMORY_FORMAT in this case. +			 * to NV_M2MF in this case.  			 * TODO: is this also true for the source? possibly not  			 * TODO: should we just always use m2mf?  			 * TODO: if not, add support for multiple operations to copy_blit @@ -1274,7 +1277,7 @@ nv04_2d_context_init(struct nouveau_channel* chan)  		return NULL;  	} -	BEGIN_RING(chan, ctx->m2mf, NV04_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY, 1); +	BEGIN_RING(chan, ctx->m2mf, NV04_M2MF_DMA_NOTIFY, 1);  	OUT_RING  (chan, ctx->ntfy->handle);  	if (chan->device->chipset < 0x10) @@ -1296,7 +1299,7 @@ nv04_2d_context_init(struct nouveau_channel* chan)  	if (chan->device->chipset < 0x10)  		class = NV04_IMAGE_BLIT;  	else -		class = NV12_IMAGE_BLIT; +		class = NV11_IMAGE_BLIT;  	ret = nouveau_grobj_alloc(chan, handle++, class, &ctx->blit);  	if (ret) { @@ -1306,7 +1309,7 @@ nv04_2d_context_init(struct nouveau_channel* chan)  	BEGIN_RING(chan, ctx->blit, NV01_IMAGE_BLIT_DMA_NOTIFY, 1);  	OUT_RING  (chan, ctx->ntfy->handle); -	BEGIN_RING(chan, ctx->blit, NV04_IMAGE_BLIT_SURFACE, 1); +	BEGIN_RING(chan, ctx->blit, NV04_IMAGE_BLIT_SURFACES, 1);  	OUT_RING  (chan, ctx->surf2d->handle);  	BEGIN_RING(chan, ctx->blit, NV01_IMAGE_BLIT_OPERATION, 1);  	OUT_RING  (chan, NV01_IMAGE_BLIT_OPERATION_SRCCOPY); @@ -1334,7 +1337,7 @@ nv04_2d_context_init(struct nouveau_channel* chan)  		class = NV04_SWIZZLED_SURFACE;  		break;  	case 0x20: -		class = NV20_SWIZZLED_SURFACE; +		class = NV11_SWIZZLED_SURFACE;  		break;  	case 0x30:  		class = NV30_SWIZZLED_SURFACE; | 
