nvfx: move nv04_2d to rules-ng-ng
authorLuca Barbieri <luca@luca-barbieri.com>
Sun, 5 Sep 2010 08:45:55 +0000 (10:45 +0200)
committerLuca Barbieri <luca@luca-barbieri.com>
Sun, 5 Sep 2010 15:52:26 +0000 (17:52 +0200)
src/gallium/drivers/nouveau/nv_m2mf.xml.h [new file with mode: 0644]
src/gallium/drivers/nvfx/nv01_2d.xml.h [new file with mode: 0644]
src/gallium/drivers/nvfx/nv04_2d.c

diff --git a/src/gallium/drivers/nouveau/nv_m2mf.xml.h b/src/gallium/drivers/nouveau/nv_m2mf.xml.h
new file mode 100644 (file)
index 0000000..ffdaf95
--- /dev/null
@@ -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 (file)
index 0000000..b963eb7
--- /dev/null
@@ -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 */
index 407f435d0514e2a99cdaf156fc61cb7c0232fb28..e0e65e7a87ff6eb46a93992e75dc3e18aa2205d1 100644 (file)
@@ -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>
 #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;