Import nv10 exa code. Does not work yet.
[nouveau] / src / nouveau_reg.h
1 /*
2    Autogenerated file, do not edit !
3
4 **************************************************************************
5
6    Copyright (C) 2006 :
7    Dmitry Baryshkov,
8    Laurent Carlier,
9    Matthieu Castet,
10    Dawid Gajownik,
11    Jeremy Kolb,
12    Stephane Loeuillet,
13    Patrice Mandin,
14    Stephane Marchesin,
15    Serge Martin,
16    Sylvain Munaut,
17    Ben Skeggs,
18    Erik Waling,
19    koala_br,
20    sturmflut.
21
22 All Rights Reserved.
23
24 Permission is hereby granted, free of charge, to any person obtaining
25 a copy of this software and associated documentation files (the
26 "Software"), to deal in the Software without restriction, including
27 without limitation the rights to use, copy, modify, merge, publish,
28 distribute, sublicense, and/or sell copies of the Software, and to
29 permit persons to whom the Software is furnished to do so, subject to
30 the following conditions:
31
32 The above copyright notice and this permission notice (including the
33 next paragraph) shall be included in all copies or substantial
34 portions of the Software.
35
36 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
38 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
39 IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
40 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
41 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
42 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43
44 **************************************************************************
45
46    Created from objects.c rev. 1.442
47 */
48
49 #ifndef _NOUVEAU_REG_H
50 #define _NOUVEAU_REG_H
51
52 /****************************************** 
53 Object NV01_CONTEXT_CLIP_RECTANGLE used on: NV03 NV04 NV10 NV15 NV20 NV40 G70
54 */
55 #define                 NV01_CONTEXT_CLIP_RECTANGLE                             0x00000019
56 #       define          NV01_CONTEXT_CLIP_RECTANGLE_NOP                         0x00000100
57 #       define          NV01_CONTEXT_CLIP_RECTANGLE_NOTIFY                      0x00000104
58 #       define          NV01_CONTEXT_CLIP_RECTANGLE_DMA_NOTIFY                  0x00000180
59 #       define          NV01_CONTEXT_CLIP_RECTANGLE_SET_POINT                   0x00000300
60 #                define         NV01_CONTEXT_CLIP_RECTANGLE_SET_POINT_X_MASK    0x0000ffff
61 #                define         NV01_CONTEXT_CLIP_RECTANGLE_SET_POINT_Y_MASK    0xffff0000
62 #                define         NV01_CONTEXT_CLIP_RECTANGLE_SET_POINT_Y_SHIFT   16
63 #       define          NV01_CONTEXT_CLIP_RECTANGLE_SET_SIZE                    0x00000304
64 #                define         NV01_CONTEXT_CLIP_RECTANGLE_SET_SIZE_WIDTH_MASK 0x0000ffff
65 #                define         NV01_CONTEXT_CLIP_RECTANGLE_SET_SIZE_HEIGHT_MASK        0xffff0000
66 #                define         NV01_CONTEXT_CLIP_RECTANGLE_SET_SIZE_HEIGHT_SHIFT       16
67
68 /****************************************** 
69 Object NV_MEMORY_TO_MEMORY_FORMAT used on: NV04 NV10 NV15 NV20 NV30 NV40 G70
70 */
71 #define                 NV_MEMORY_TO_MEMORY_FORMAT                              0x00000039
72 #       define          NV_MEMORY_TO_MEMORY_FORMAT_NOP                          0x00000100
73 #       define          NV_MEMORY_TO_MEMORY_FORMAT_NOTIFY                       0x00000104
74 #       define          NV_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY                   0x00000180
75 #       define          NV_MEMORY_TO_MEMORY_FORMAT_OBJECT_IN                    0x00000184
76 #       define          NV_MEMORY_TO_MEMORY_FORMAT_OBJECT_OUT                   0x00000188
77 #       define          NV_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN                    0x0000030c
78 #       define          NV_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT                   0x00000310
79 #       define          NV_MEMORY_TO_MEMORY_FORMAT_PITCH_IN                     0x00000314
80 #       define          NV_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT                    0x00000318
81 #       define          NV_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN               0x0000031c
82 #       define          NV_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT                   0x00000320
83 #       define          NV_MEMORY_TO_MEMORY_FORMAT_FORMAT                       0x00000324
84 #                define         NV_MEMORY_TO_MEMORY_FORMAT_FORMAT_SRC_INC_MASK  0x00000007
85 #                define         NV_MEMORY_TO_MEMORY_FORMAT_FORMAT_DST_INC_MASK  0x00000700
86 #                define         NV_MEMORY_TO_MEMORY_FORMAT_FORMAT_DST_INC_SHIFT 8
87 #       define          NV_MEMORY_TO_MEMORY_FORMAT_BUF_NOTIFY                   0x00000328
88
89 /****************************************** 
90 Object NV03_PRIMITIVE_RASTER_OP used on: NV03 NV04 NV10 NV15 NV20 NV30 NV40 G70
91 */
92 #define                 NV03_PRIMITIVE_RASTER_OP                                0x00000043
93 #       define          NV03_PRIMITIVE_RASTER_OP_NOP                            0x00000100
94 #       define          NV03_PRIMITIVE_RASTER_OP_NOTIFY                         0x00000104
95 #       define          NV03_PRIMITIVE_RASTER_OP_DMA_NOTIFY                     0x00000180
96 #       define          NV03_PRIMITIVE_RASTER_OP_LOGIC_OP                       0x00000300
97 #                define         NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_MASK 0x000000f0
98 #                define         NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_SHIFT        4
99 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_CLEAR        0x0000
100 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_NOR  0x0001
101 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_AND_INVERTED 0x0002
102 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_COPY_INVERTED        0x0003
103 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_AND_REVERSE  0x0004
104 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_INVERT       0x0005
105 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_XOR  0x0006
106 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_NAND 0x0007
107 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_AND  0x0008
108 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_EQUIV        0x0009
109 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_NOOP 0x000a
110 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_OR_INVERTED  0x000b
111 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_COPY 0x000c
112 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_OR_REVERSE   0x000d
113 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_OR   0x000e
114 #                define NV03_PRIMITIVE_RASTER_OP_LOGIC_OP_LOGIC_OP_SET  0x000f
115
116 /****************************************** 
117 Object NV04_GDI_RECTANGLE_TEXT used on: NV04 NV10 NV15 NV20 NV30 NV40 G70
118 */
119 #define                 NV04_GDI_RECTANGLE_TEXT                                 0x0000004a
120 #       define          NV04_GDI_RECTANGLE_TEXT_NOP                             0x00000100
121 #       define          NV04_GDI_RECTANGLE_TEXT_NOTIFY                          0x00000104
122 #       define          NV04_GDI_RECTANGLE_TEXT_SET_DMA_NOTIFY                  0x00000180
123 #       define          NV04_GDI_RECTANGLE_TEXT_SET_DMA_FONTS                   0x00000184
124 #       define          NV04_GDI_RECTANGLE_TEXT_PATTERN                         0x00000188
125 #       define          NV04_GDI_RECTANGLE_TEXT_ROP5                            0x0000018c
126 #       define          NV04_GDI_RECTANGLE_TEXT_SURFACE                         0x00000198
127 #       define          NV04_GDI_RECTANGLE_TEXT_OPERATION                       0x000002fc
128 #       define          NV04_GDI_RECTANGLE_TEXT_FORMAT                          0x00000300
129 #       define          NV04_GDI_RECTANGLE_TEXT_MONO_FORMAT                     0x00000304
130 #       define          NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_TL                 0x000005f4
131 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_TL_LEFT_MASK       0x0000ffff
132 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_TL_TOP_MASK        0xffff0000
133 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_TL_TOP_SHIFT       16
134 #       define          NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_BR                 0x000005f8
135 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_BR_RIGHT_MASK      0x0000ffff
136 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_BR_BOTTOM_MASK     0xffff0000
137 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL1_BR_BOTTOM_SHIFT    16
138 #       define          NV04_GDI_RECTANGLE_TEXT_FILL_VALUE                      0x000005fc
139 #       define          NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_TL                 0x00000600
140 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_TL_LEFT_MASK       0x0000ffff
141 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_TL_TOP_MASK        0xffff0000
142 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_TL_TOP_SHIFT       16
143 #       define          NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_BR                 0x00000604
144 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_BR_RIGHT_MASK      0x0000ffff
145 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_BR_BOTTOM_MASK     0xffff0000
146 #                define         NV04_GDI_RECTANGLE_TEXT_BLOCK_LEVEL2_BR_BOTTOM_SHIFT    16
147
148 /****************************************** 
149 Object NV04_SWIZZLED_SURFACE used on: NV04 NV10 NV15 
150 */
151 #define                 NV04_SWIZZLED_SURFACE                                   0x00000052
152 #       define          NV04_SWIZZLED_SURFACE_DMA_NOTIFY                        0x00000180
153 #       define          NV04_SWIZZLED_SURFACE_DMA_IMAGE                         0x00000184
154 #       define          NV04_SWIZZLED_SURFACE_FORMAT                            0x00000300
155 #                define         NV04_SWIZZLED_SURFACE_FORMAT_LOG2_HEIGHT_MASK   0xff000000
156 #                define         NV04_SWIZZLED_SURFACE_FORMAT_LOG2_HEIGHT_SHIFT  24
157 #                define         NV04_SWIZZLED_SURFACE_FORMAT_LOG2_WIDTH_MASK    0x00ff0000
158 #                define         NV04_SWIZZLED_SURFACE_FORMAT_LOG2_WIDTH_SHIFT   16
159 #                define         NV04_SWIZZLED_SURFACE_FORMAT_COLOR_MASK 0x0000ffff
160 #       define          NV04_SWIZZLED_SURFACE_OFFSET                            0x00000304
161
162 /****************************************** 
163 Object NV04_CONTEXT_SURFACES_3D used on: NV04 
164 */
165 #define                 NV04_CONTEXT_SURFACES_3D                                0x00000053
166 #       define          NV04_CONTEXT_SURFACES_3D_DMA_NOTIFY                     0x00000180
167 #       define          NV04_CONTEXT_SURFACES_3D_DMA_COLOR                      0x00000184
168 #       define          NV04_CONTEXT_SURFACES_3D_DMA_ZETA                       0x00000188
169 #       define          NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL                0x000002f8
170 #                define         NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_X_MASK 0x0000ffff
171 #                define         NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_WIDTH_MASK     0xffff0000
172 #                define         NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_WIDTH_SHIFT    16
173 #       define          NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL                  0x000002fc
174 #                define         NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_Y_MASK   0x0000ffff
175 #                define         NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_HEIGHT_MASK      0xffff0000
176 #                define         NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_HEIGHT_SHIFT     16
177 #       define          NV04_CONTEXT_SURFACES_3D_FORMAT                         0x00000300
178 #                define         NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_MASK      0x000000ff
179 #                define         NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_MASK       0x0000ff00
180 #                define         NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_SHIFT      8
181 #                define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_pitch      0x0001
182 #                define NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_swizzle    0x0002
183 #                define         NV04_CONTEXT_SURFACES_3D_FORMAT_WIDTH_MASK      0x00ff0000
184 #                define         NV04_CONTEXT_SURFACES_3D_FORMAT_WIDTH_SHIFT     16
185 #                define         NV04_CONTEXT_SURFACES_3D_FORMAT_HEIGHT_MASK     0xff000000
186 #                define         NV04_CONTEXT_SURFACES_3D_FORMAT_HEIGHT_SHIFT    24
187 #       define          NV04_CONTEXT_SURFACES_3D_CLIP_SIZE                      0x00000304
188 #                define         NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_WIDTH_MASK   0x0000ffff
189 #                define         NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_HEIGHT_MASK  0xffff8000
190 #                define         NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_HEIGHT_SHIFT 15
191 #       define          NV04_CONTEXT_SURFACES_3D_PITCH                          0x00000308
192 #                define         NV04_CONTEXT_SURFACES_3D_PITCH_COLOR_MASK       0x0000ffff
193 #                define         NV04_CONTEXT_SURFACES_3D_PITCH_ZETA_MASK        0xffff0000
194 #                define         NV04_CONTEXT_SURFACES_3D_PITCH_ZETA_SHIFT       16
195 #       define          NV04_CONTEXT_SURFACES_3D_OFFSET_COLOR                   0x0000030c
196 #       define          NV04_CONTEXT_SURFACES_3D_OFFSET_ZETA                    0x00000310
197
198 /****************************************** 
199 Object NV04_DX5_TEXTURED_TRIANGLE used on: NV04 
200 */
201 #define                 NV04_DX5_TEXTURED_TRIANGLE                              0x00000054
202 #       define          NV04_DX5_TEXTURED_TRIANGLE_NOP                          0x00000100
203 #       define          NV04_DX5_TEXTURED_TRIANGLE_NOTIFY                       0x00000104
204 #       define          NV04_DX5_TEXTURED_TRIANGLE_DMA_NOTIFY                   0x00000180
205 #       define          NV04_DX5_TEXTURED_TRIANGLE_DMA_1                        0x00000184
206 #       define          NV04_DX5_TEXTURED_TRIANGLE_DMA_2                        0x00000188
207 #       define          NV04_DX5_TEXTURED_TRIANGLE_SURFACE                      0x0000018c
208 #       define          NV04_DX5_TEXTURED_TRIANGLE_COLOR_KEY                    0x00000300
209 #       define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_OFFSET               0x00000304
210 #       define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT               0x00000308
211 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_MASK    0x00000f00
212 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_SHIFT   8
213 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_Y8      0x0001
214 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_A1R5G5B5        0x0002
215 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_X1R5G5B5        0x0003
216 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_A4R4G4B4        0x0004
217 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_R5G6B5  0x0005
218 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_A8R8G8B8        0x0006
219 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_X8R8G8B8        0x0007
220 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_MIPMAPS_MASK  0x0000f000
221 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_MIPMAPS_SHIFT 12
222 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_LOG_U_MASK    0x000f0000
223 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_LOG_U_SHIFT   16
224 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_LOG_V_MASK    0x00f00000
225 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_LOG_V_SHIFT   20
226 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_S_MASK   0x07000000
227 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_S_SHIFT  24
228 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_S_REPEAT 0x0001
229 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_S_MIRRORED       0x0002
230 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_S_CLAMP  0x0003
231 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_T_MASK   0x70000000
232 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_T_SHIFT  28
233 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_T_REPEAT 0x0001
234 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_T_MIRRORED       0x0002
235 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FORMAT_WRAP_T_CLAMP  0x0003
236 #       define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER               0x0000030c
237 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_MASK        0x70000000
238 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_SHIFT       28
239 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_NEAREST     0x0001
240 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_LINEAR      0x0002
241 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_NEAREST_MIPMAP_NEAREST      0x0003
242 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_LINEAR_MIPMAP_NEAREST       0x0004
243 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_NEAREST_MIPMAP_LINEAR       0x0005
244 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MAGFILTER_LINEAR_MIPMAP_LINEAR        0x0006
245 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_MASK        0x07000000
246 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_SHIFT       24
247 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_NEAREST     0x0001
248 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_LINEAR      0x0002
249 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_NEAREST_MIPMAP_NEAREST      0x0003
250 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_LINEAR_MIPMAP_NEAREST       0x0004
251 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_NEAREST_MIPMAP_LINEAR       0x0005
252 #                define NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_MINFILTER_LINEAR_MIPMAP_LINEAR        0x0006
253 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_LODBIAS_MASK  0x00ff0000
254 #                define         NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_FILTER_LODBIAS_SHIFT 16
255 #       define          NV04_DX5_TEXTURED_TRIANGLE_BLEND                        0x00000310
256 #                define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_TEXTURE_MASK   0x0000000f
257 #                define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_BENABLE_MASK   0x00100000
258 #                define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_BENABLE        (1 << 20)
259 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_BENABLE_TRUE   0x0001
260 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_BENABLE_FALSE  0x0000
261 #                define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_MASK       0xf0000000
262 #                define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_SHIFT      28
263 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_0  0x0001
264 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_1  0x0002
265 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_src_col    0x0003
266 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_inv_src_col        0x0004
267 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_src_a      0x0005
268 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_inv_src_a  0x0006
269 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_dst_col    0x0009
270 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_inv_dst_col        0x000a
271 #                define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_MASK       0x0f000000
272 #                define         NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_SHIFT      24
273 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_0  0x0001
274 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_1  0x0002
275 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_src_col    0x0003
276 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_inv_src_col        0x0004
277 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_src_a      0x0005
278 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_inv_src_a  0x0006
279 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_dst_col    0x0009
280 #                define NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_inv_dst_col        0x000a
281 #       define          NV04_DX5_TEXTURED_TRIANGLE_CONTROL                      0x00000314
282 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAREF_MASK        0x000000ff
283 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_MASK       0x00000f00
284 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_SHIFT      8
285 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_NEVER      0x0001
286 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_LESS       0x0002
287 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_EQUAL      0x0003
288 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_LEQUAL     0x0004
289 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_GREATER    0x0005
290 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_NOTEQUAL   0x0006
291 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_GEQUAL     0x0007
292 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAFUNC_ALWAYS     0x0008
293 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAENABLE_MASK     0x00001000
294 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAENABLE  (1 << 12)
295 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAENABLE_TRUE     0x0001
296 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHAENABLE_FALSE    0x0000
297 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZENABLE_MASK 0x00004000
298 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZENABLE      (1 << 14)
299 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZENABLE_TRUE 0x0001
300 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZENABLE_FALSE        0x0000
301 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZWRITE_MASK  0x01000000
302 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZWRITE       (1 << 24)
303 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZWRITE_TRUE  0x0001
304 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZWRITE_FALSE 0x0000
305 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_MASK   0x000f0000
306 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_SHIFT  16
307 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_NEVER  0x0001
308 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_LESS   0x0002
309 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_EQUAL  0x0003
310 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_LEQUAL 0x0004
311 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_GREATER        0x0005
312 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_NOTEQUAL       0x0006
313 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_GEQUAL 0x0007
314 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ZFUNC_ALWAYS 0x0008
315 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULLMODE_MASK        0x00300000
316 #                define         NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULLMODE_SHIFT       20
317 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULLMODE_NONE        0x0001
318 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULLMODE_CW  0x0002
319 #                define NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULLMODE_CCW 0x0003
320 #       define          NV04_DX5_TEXTURED_TRIANGLE_FOG_COLOR                    0x00000318
321 #       define          NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SX( d)              (0x00000400 + (d) * 0x0020)
322 #       define          NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SY( d)              (0x00000404 + (d) * 0x0020)
323 #       define          NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SZ( d)              (0x00000408 + (d) * 0x0020)
324 #       define          NV04_DX5_TEXTURED_TRIANGLE_INV_W( d)                    (0x0000040c + (d) * 0x0020)
325 #       define          NV04_DX5_TEXTURED_TRIANGLE_COLOR( d)                    (0x00000410 + (d) * 0x0020)
326 #       define          NV04_DX5_TEXTURED_TRIANGLE_SPECULAR( d)                 (0x00000414 + (d) * 0x0020)
327 #       define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_S( d)                (0x00000418 + (d) * 0x0020)
328 #       define          NV04_DX5_TEXTURED_TRIANGLE_TEXTURE_T( d)                (0x0000041c + (d) * 0x0020)
329 #       define          NV04_DX5_TEXTURED_TRIANGLE_DRAW                         0x00000600
330 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V0_MASK 0x0000000f
331 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V1_MASK 0x000000f0
332 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V1_SHIFT        4
333 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V2_MASK 0x00000f00
334 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V2_SHIFT        8
335 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V3_MASK 0x0000f000
336 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V3_SHIFT        12
337 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V4_MASK 0x000f0000
338 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V4_SHIFT        16
339 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V5_MASK 0x00f00000
340 #                define         NV04_DX5_TEXTURED_TRIANGLE_DRAW_V5_SHIFT        20
341
342 /****************************************** 
343 Object NV04_DX6_MULTITEX_TRIANGLE used on: NV04 NV10 NV15 
344 */
345 #define                 NV04_DX6_MULTITEX_TRIANGLE                              0x00000055
346 #       define          NV04_DX6_MULTITEX_TRIANGLE_NOP                          0x00000100
347 #       define          NV04_DX6_MULTITEX_TRIANGLE_NOTIFY                       0x00000104
348 #       define          NV04_DX6_MULTITEX_TRIANGLE_DMA_NOTIFY                   0x00000180
349 #       define          NV04_DX6_MULTITEX_TRIANGLE_DMA_1                        0x00000184
350 #       define          NV04_DX6_MULTITEX_TRIANGLE_DMA_2                        0x00000188
351 #       define          NV04_DX6_MULTITEX_TRIANGLE_SURFACE                      0x0000018c
352 #       define          NV04_DX6_MULTITEX_TRIANGLE_OFFSET0                      0x00000308
353 #       define          NV04_DX6_MULTITEX_TRIANGLE_OFFSET1                      0x0000030c
354 #       define          NV04_DX6_MULTITEX_TRIANGLE_FORMAT0                      0x00000310
355 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_MASK   0x00000f00
356 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_SHIFT  8
357 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_Y8     0x0001
358 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_A1R5G5B5       0x0002
359 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_X1R5G5B5       0x0003
360 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_A4R4G4B4       0x0004
361 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_R5G6B5 0x0005
362 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_A8R8G8B8       0x0006
363 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_COLOR_X8R8G8B8       0x0007
364 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_MIPMAPS_MASK 0x0000f000
365 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_MIPMAPS_SHIFT        12
366 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_LOG_U_MASK   0x000f0000
367 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_LOG_U_SHIFT  16
368 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_LOG_V_MASK   0x00f00000
369 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_LOG_V_SHIFT  20
370 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_S_MASK  0x07000000
371 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_S_SHIFT 24
372 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_S_REPEAT        0x0001
373 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_S_MIRRORED      0x0002
374 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_S_CLAMP 0x0003
375 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_T_MASK  0x70000000
376 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_T_SHIFT 28
377 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_T_REPEAT        0x0001
378 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_T_MIRRORED      0x0002
379 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT0_WRAP_T_CLAMP 0x0003
380 #       define          NV04_DX6_MULTITEX_TRIANGLE_FORMAT1                      0x00000314
381 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_MASK   0x00000f00
382 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_SHIFT  8
383 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_Y8     0x0001
384 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_A1R5G5B5       0x0002
385 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_X1R5G5B5       0x0003
386 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_A4R4G4B4       0x0004
387 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_R5G6B5 0x0005
388 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_A8R8G8B8       0x0006
389 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_COLOR_X8R8G8B8       0x0007
390 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_MIPMAPS_MASK 0x0000f000
391 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_MIPMAPS_SHIFT        12
392 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_LOG_U_MASK   0x000f0000
393 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_LOG_U_SHIFT  16
394 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_LOG_V_MASK   0x00f00000
395 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_LOG_V_SHIFT  20
396 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_S_MASK  0x07000000
397 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_S_SHIFT 24
398 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_S_REPEAT        0x0001
399 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_S_MIRRORED      0x0002
400 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_S_CLAMP 0x0003
401 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_T_MASK  0x70000000
402 #                define         NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_T_SHIFT 28
403 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_T_REPEAT        0x0001
404 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_T_MIRRORED      0x0002
405 #                define NV04_DX6_MULTITEX_TRIANGLE_FORMAT1_WRAP_T_CLAMP 0x0003
406 #       define          NV04_DX6_MULTITEX_TRIANGLE_FILTER0                      0x00000318
407 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_MASK       0x70000000
408 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_SHIFT      28
409 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_NEAREST    0x0001
410 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_LINEAR     0x0002
411 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_NEAREST_MIPMAP_NEAREST     0x0003
412 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_LINEAR_MIPMAP_NEAREST      0x0004
413 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_NEAREST_MIPMAP_LINEAR      0x0005
414 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MAGFILTER_LINEAR_MIPMAP_LINEAR       0x0006
415 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_MASK       0x07000000
416 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_SHIFT      24
417 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_NEAREST    0x0001
418 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_LINEAR     0x0002
419 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_NEAREST_MIPMAP_NEAREST     0x0003
420 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_LINEAR_MIPMAP_NEAREST      0x0004
421 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_NEAREST_MIPMAP_LINEAR      0x0005
422 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER0_MINFILTER_LINEAR_MIPMAP_LINEAR       0x0006
423 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_LODBIAS_MASK 0x00ff0000
424 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER0_LODBIAS_SHIFT        16
425 #       define          NV04_DX6_MULTITEX_TRIANGLE_FILTER1                      0x0000031c
426 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_MASK       0x70000000
427 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_SHIFT      28
428 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_NEAREST    0x0001
429 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_LINEAR     0x0002
430 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_NEAREST_MIPMAP_NEAREST     0x0003
431 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_LINEAR_MIPMAP_NEAREST      0x0004
432 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_NEAREST_MIPMAP_LINEAR      0x0005
433 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MAGFILTER_LINEAR_MIPMAP_LINEAR       0x0006
434 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_MASK       0x07000000
435 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_SHIFT      24
436 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_NEAREST    0x0001
437 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_LINEAR     0x0002
438 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_NEAREST_MIPMAP_NEAREST     0x0003
439 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_LINEAR_MIPMAP_NEAREST      0x0004
440 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_NEAREST_MIPMAP_LINEAR      0x0005
441 #                define NV04_DX6_MULTITEX_TRIANGLE_FILTER1_MINFILTER_LINEAR_MIPMAP_LINEAR       0x0006
442 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_LODBIAS_MASK 0x00ff0000
443 #                define         NV04_DX6_MULTITEX_TRIANGLE_FILTER1_LODBIAS_SHIFT        16
444 #       define          NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA              0x00000320
445 #       define          NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR              0x00000324
446 #       define          NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA              0x0000032c
447 #       define          NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR              0x00000330
448 #       define          NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR               0x00000334
449 #       define          NV04_DX6_MULTITEX_TRIANGLE_BLEND                        0x00000338
450 #                define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_BENABLE_MASK   0x00100000
451 #                define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_BENABLE        (1 << 20)
452 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_BENABLE_TRUE   0x0001
453 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_BENABLE_FALSE  0x0000
454 #                define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_MASK       0xf0000000
455 #                define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_SHIFT      28
456 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_0  0x0001
457 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_1  0x0002
458 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_src_col    0x0003
459 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_inv_src_col        0x0004
460 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_src_a      0x0005
461 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_inv_src_a  0x0006
462 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_dst_col    0x0009
463 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_inv_dst_col        0x000a
464 #                define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_MASK       0x0f000000
465 #                define         NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_SHIFT      24
466 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_0  0x0001
467 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_1  0x0002
468 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_src_col    0x0003
469 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_inv_src_col        0x0004
470 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_src_a      0x0005
471 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_inv_src_a  0x0006
472 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_dst_col    0x0009
473 #                define NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_inv_dst_col        0x000a
474 #       define          NV04_DX6_MULTITEX_TRIANGLE_CONTROL0                     0x0000033c
475 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE_MASK      0x08000000
476 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE   (1 << 27)
477 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE_TRUE      0x0001
478 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE_FALSE     0x0000
479 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE_MASK    0x10000000
480 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE (1 << 28)
481 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE_TRUE    0x0001
482 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE_FALSE   0x0000
483 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE_MASK     0x20000000
484 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE  (1 << 29)
485 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE_TRUE     0x0001
486 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE_FALSE    0x0000
487 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_MASK    0x04000000
488 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE (1 << 26)
489 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_TRUE    0x0001
490 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_FALSE   0x0000
491 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_MASK    0x04000000
492 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE (1 << 26)
493 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_TRUE    0x0001
494 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_FALSE   0x0000
495 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE_MASK  0x02000000
496 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE       (1 << 25)
497 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE_TRUE  0x0001
498 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE_FALSE 0x0000
499 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAREF_MASK       0x000000ff
500 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_MASK      0x00000f00
501 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_SHIFT     8
502 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_NEVER     0x0001
503 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_LESS      0x0002
504 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_EQUAL     0x0003
505 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_LEQUAL    0x0004
506 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_GREATER   0x0005
507 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_NOTEQUAL  0x0006
508 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_GEQUAL    0x0007
509 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAFUNC_ALWAYS    0x0008
510 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAENABLE_MASK    0x00001000
511 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAENABLE (1 << 12)
512 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAENABLE_TRUE    0x0001
513 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHAENABLE_FALSE   0x0000
514 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZENABLE_MASK        0x00004000
515 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZENABLE     (1 << 14)
516 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZENABLE_TRUE        0x0001
517 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZENABLE_FALSE       0x0000
518 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZWRITE_MASK 0x01000000
519 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZWRITE      (1 << 24)
520 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZWRITE_TRUE 0x0001
521 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZWRITE_FALSE        0x0000
522 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_MASK  0x000f0000
523 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_SHIFT 16
524 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_NEVER 0x0001
525 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_LESS  0x0002
526 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_EQUAL 0x0003
527 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_LEQUAL        0x0004
528 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_GREATER       0x0005
529 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_NOTEQUAL      0x0006
530 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_GEQUAL        0x0007
531 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ZFUNC_ALWAYS        0x0008
532 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULLMODE_MASK       0x00300000
533 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULLMODE_SHIFT      20
534 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULLMODE_NONE       0x0001
535 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULLMODE_CW 0x0002
536 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULLMODE_CCW        0x0003
537 #       define          NV04_DX6_MULTITEX_TRIANGLE_CONTROL1                     0x00000340
538 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_ENABLE_MASK 0x00000001
539 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_MASK     0xff000000
540 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_SHIFT    24
541 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_MASK      0x00ff0000
542 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_SHIFT     16
543 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILREF_MASK     0x0000ff00
544 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILREF_SHIFT    8
545 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_MASK    0x000000f0
546 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_SHIFT   4
547 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_NEVER   0x0001
548 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_LESS    0x0002
549 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_EQUAL   0x0003
550 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_LEQUAL  0x0004
551 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_GREATER 0x0005
552 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_NOTEQUAL        0x0006
553 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_GEQUAL  0x0007
554 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCILFUNC_ALWAYS  0x0008
555 #       define          NV04_DX6_MULTITEX_TRIANGLE_CONTROL2                     0x00000344
556 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_FAIL_MASK   0x0000000f
557 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_MASK  0x000000f0
558 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_SHIFT 4
559 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_KEEP  0x0001
560 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_ZERO  0x0002
561 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_REPLACE       0x0003
562 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_INCR  0x0004
563 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_DECR  0x0005
564 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_INVERT        0x0006
565 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_INCR_WRAP     0x0007
566 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZFAIL_DECR_WRAP     0x0008
567 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_MASK  0x00000f00
568 #                define         NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_SHIFT 8
569 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_KEEP  0x0001
570 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_ZERO  0x0002
571 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_REPLACE       0x0003
572 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_INCR  0x0004
573 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_DECR  0x0005
574 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_INVERT        0x0006
575 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_INCR_WRAP     0x0007
576 #                define NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_ZPASS_DECR_WRAP     0x0008
577 #       define          NV04_DX6_MULTITEX_TRIANGLE_FOG_COLOR                    0x00000348
578 #       define          NV04_DX6_MULTITEX_TRIANGLE_TLVERTEX_SX( d)              (0x00000400 + (d) * 0x0028)
579 #       define          NV04_DX6_MULTITEX_TRIANGLE_TLVERTEX_SY( d)              (0x00000404 + (d) * 0x0028)
580 #       define          NV04_DX6_MULTITEX_TRIANGLE_TLVERTEX_SZ( d)              (0x00000408 + (d) * 0x0028)
581 #       define          NV04_DX6_MULTITEX_TRIANGLE_INV_W( d)                    (0x0000040c + (d) * 0x0028)
582 #       define          NV04_DX6_MULTITEX_TRIANGLE_COLOR( d)                    (0x00000410 + (d) * 0x0028)
583 #       define          NV04_DX6_MULTITEX_TRIANGLE_SPECULAR( d)                 (0x00000414 + (d) * 0x0028)
584 #       define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE0_S( d)               (0x00000418 + (d) * 0x0028)
585 #       define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE0_T( d)               (0x0000041c + (d) * 0x0028)
586 #       define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE1_S( d)               (0x00000420 + (d) * 0x0028)
587 #       define          NV04_DX6_MULTITEX_TRIANGLE_TEXTURE1_T( d)               (0x00000424 + (d) * 0x0028)
588 #       define          NV04_DX6_MULTITEX_TRIANGLE_DRAW                         0x00000540
589 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V0_MASK 0x0000000f
590 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V1_MASK 0x000000f0
591 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V1_SHIFT        4
592 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V2_MASK 0x00000f00
593 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V2_SHIFT        8
594 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V3_MASK 0x0000f000
595 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V3_SHIFT        12
596 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V4_MASK 0x000f0000
597 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V4_SHIFT        16
598 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V5_MASK 0x00f00000
599 #                define         NV04_DX6_MULTITEX_TRIANGLE_DRAW_V5_SHIFT        20
600
601 /****************************************** 
602 Object NV04_COLOR_KEY used on: NV04 NV10 NV15 NV20 NV40 
603 */
604 #define                 NV04_COLOR_KEY                                          0x00000057
605 #       define          NV04_COLOR_KEY_SET_DMA_NOTIFY                           0x00000180
606 #       define          NV04_COLOR_KEY_FORMAT                                   0x00000300
607 #       define          NV04_COLOR_KEY_VALUE                                    0x00000304
608
609 /****************************************** 
610 Object NV04_SOLID_LINE used on: NV04 
611 */
612 #define                 NV04_SOLID_LINE                                         0x0000005c
613 #       define          NV04_SOLID_LINE_CLIP_RECTANGLE                          0x00000184
614 #       define          NV04_SOLID_LINE_PATTERN                                 0x00000188
615 #       define          NV04_SOLID_LINE_ROP                                     0x0000018c
616 #       define          NV04_SOLID_LINE_SURFACE                                 0x00000198
617 #       define          NV04_SOLID_LINE_OPERATION                               0x000002fc
618 #       define          NV04_SOLID_LINE_COLOR_FORMAT                            0x00000300
619 #       define          NV04_SOLID_LINE_COLOR_VALUE                             0x00000304
620 #       define          NV04_SOLID_LINE_START                                   0x00000400
621 #                define         NV04_SOLID_LINE_START_X_MASK    0x0000ffff
622 #                define         NV04_SOLID_LINE_START_Y_MASK    0xffff0000
623 #                define         NV04_SOLID_LINE_START_Y_SHIFT   16
624 #       define          NV04_SOLID_LINE_END                                     0x00000400
625 #                define         NV04_SOLID_LINE_END_X_MASK      0x0000ffff
626 #                define         NV04_SOLID_LINE_END_Y_MASK      0xffff0000
627 #                define         NV04_SOLID_LINE_END_Y_SHIFT     16
628
629 /****************************************** 
630 Object NV04_UNK005E used on: NV04 
631 */
632 #define                 NV04_UNK005E                                            0x0000005e
633 #       define          NV04_UNK005E_SET_SURFACE                                0x00000198
634 #       define          NV04_UNK005E_UNK02fc                                    0x000002fc
635 #       define          NV04_UNK005E_UNK0300                                    0x00000300
636 #       define          NV04_UNK005E_COUNTER                                    0x00000304
637
638 /****************************************** 
639 Object NV05_SCALED_IMAGE_FROM_MEMORY used on: NV04 
640 */
641 #define                 NV05_SCALED_IMAGE_FROM_MEMORY                           0x00000063
642 #       define          NV05_SCALED_IMAGE_FROM_MEMORY_SURFACE                   0x00000198
643 #       define          NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION          0x000002fc
644 #       define          NV05_SCALED_IMAGE_FROM_MEMORY_OPERATION                 0x00000304
645
646 /****************************************** 
647 Object NV04_SCALED_IMAGE_FROM_MEMORY used on: NV04 
648 */
649 #define                 NV04_SCALED_IMAGE_FROM_MEMORY                           0x00000077
650 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_NOP                       0x00000100
651 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_NOTIFY                    0x00000104
652 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY                0x00000180
653 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE                 0x00000184
654 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_PATTERN                   0x00000188
655 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_ROP                       0x0000018c
656 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_BETA1                     0x00000190
657 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_BETA4                     0x00000194
658 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_SURFACE                   0x00000198
659 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT              0x00000300
660 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION                 0x00000304
661 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POS                  0x00000308
662 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_X_MASK   0x0000ffff
663 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_Y_MASK   0xffff0000
664 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_Y_SHIFT  16
665 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE                 0x0000030c
666 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_WIDTH_MASK      0x0000ffff
667 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_HEIGHT_MASK     0xffff0000
668 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_HEIGHT_SHIFT    16
669 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POS                   0x00000310
670 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POS_X_MASK    0x0000ffff
671 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POS_Y_MASK    0xffff0000
672 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POS_Y_SHIFT   16
673 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE                  0x00000314
674 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_WIDTH_MASK       0x0000ffff
675 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_HEIGHT_MASK      0xffff0000
676 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_HEIGHT_SHIFT     16
677 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX                     0x00000318
678 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX_INT_MASK    0xfff00000
679 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX_INT_SHIFT   20
680 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX_FRAC_MUL_0X100000_MASK      0x000fffff
681 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY                     0x0000031c
682 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY_INT_MASK    0xfff00000
683 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY_INT_SHIFT   20
684 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY_FRAC_MUL_0X100000_MASK      0x000fffff
685 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_SIZE                      0x00000400
686 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_WIDTH_MASK   0x0000ffff
687 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_HEIGHT_MASK  0xffff0000
688 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_HEIGHT_SHIFT 16
689 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT                    0x00000404
690 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_MASK 0x0000ffff
691 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_MASK        0x00ff0000
692 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_SHIFT       16
693 #                define NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER      0x0001
694 #                define NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CORNER      0x0002
695 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_MASK        0xff000000
696 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_SHIFT       24
697 #                define NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE        0x0001
698 #                define NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_BILINEAR    0x0002
699 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_OFFSET                    0x00000408
700 #       define          NV04_SCALED_IMAGE_FROM_MEMORY_POINT                     0x0000040c
701 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_U_INT_MASK  0xfff00000
702 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_U_INT_SHIFT 20
703 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_U_FRAC_MUL_0X10_MASK        0x000f0000
704 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_U_FRAC_MUL_0X10_SHIFT       16
705 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_V_INT_MASK  0x0000fff0
706 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_V_INT_SHIFT 4
707 #                define         NV04_SCALED_IMAGE_FROM_MEMORY_POINT_V_FRAC_MUL_0X10_MASK        0x0000000f
708
709 /****************************************** 
710 Object NV_IMAGE_FROM_CPU used on: NV04 
711 */
712 #define                 NV_IMAGE_FROM_CPU                                       0x00000061
713 #       define          NV_IMAGE_FROM_CPU_DMA_NOTIFY                            0x00000180
714 #       define          NV_IMAGE_FROM_CPU_CLIP_RECTANGLE                        0x00000188
715 #       define          NV_IMAGE_FROM_CPU_PATTERN                               0x0000018c
716 #       define          NV_IMAGE_FROM_CPU_ROP                                   0x00000190
717 #       define          NV_IMAGE_FROM_CPU_SURFACE                               0x0000019c
718 #       define          NV_IMAGE_FROM_CPU_OPERATION                             0x000002fc
719 #       define          NV_IMAGE_FROM_CPU_FORMAT                                0x00000300
720
721 /****************************************** 
722 Object NV05_IMAGE_FROM_CPU used on: NV04 
723 */
724 #define                 NV05_IMAGE_FROM_CPU                                     0x00000065
725 #       define          NV05_IMAGE_FROM_CPU_DMA_NOTIFY                          0x00000180
726 #       define          NV05_IMAGE_FROM_CPU_CLIP_RECTANGLE                      0x00000188
727 #       define          NV05_IMAGE_FROM_CPU_PATTERN                             0x0000018c
728 #       define          NV05_IMAGE_FROM_CPU_ROP                                 0x00000190
729 #       define          NV05_IMAGE_FROM_CPU_BETA1                               0x00000194
730 #       define          NV05_IMAGE_FROM_CPU_BETA4                               0x00000198
731 #       define          NV05_IMAGE_FROM_CPU_SURFACE                             0x0000019c
732 #       define          NV05_IMAGE_FROM_CPU_OPERATION                           0x000002fc
733 #       define          NV05_IMAGE_FROM_CPU_FORMAT                              0x00000300
734 #       define          NV05_IMAGE_FROM_CPU_POINT                               0x00000304
735 #                define         NV05_IMAGE_FROM_CPU_POINT_X_MASK        0x0000ffff
736 #                define         NV05_IMAGE_FROM_CPU_POINT_Y_MASK        0xffff0000
737 #                define         NV05_IMAGE_FROM_CPU_POINT_Y_SHIFT       16
738 #       define          NV05_IMAGE_FROM_CPU_SIZE_OUT                            0x00000308
739 #                define         NV05_IMAGE_FROM_CPU_SIZE_OUT_X_MASK     0x0000ffff
740 #                define         NV05_IMAGE_FROM_CPU_SIZE_OUT_Y_MASK     0xffff0000
741 #                define         NV05_IMAGE_FROM_CPU_SIZE_OUT_Y_SHIFT    16
742 #       define          NV05_IMAGE_FROM_CPU_SIZE_IN                             0x0000030c
743 #                define         NV05_IMAGE_FROM_CPU_SIZE_IN_X_MASK      0x0000ffff
744 #                define         NV05_IMAGE_FROM_CPU_SIZE_IN_Y_MASK      0xffff0000
745 #                define         NV05_IMAGE_FROM_CPU_SIZE_IN_Y_SHIFT     16
746 #       define          NV05_IMAGE_FROM_CPU_COLOR( d)                           (0x00000400 + (d) * 0x0004)
747
748 /****************************************** 
749 Object NV_IMAGE_BLIT used on: NV04 NV10 NV15 NV20 
750 */
751 #define                 NV_IMAGE_BLIT                                           0x0000005f
752 #       define          NV_IMAGE_BLIT_SET_DMA_NOTIFY                            0x00000180
753 #       define          NV_IMAGE_BLIT_SET_COLOR_KEY                             0x00000184
754 #       define          NV_IMAGE_BLIT_SET_CLIP_RECTANGLE                        0x00000188
755 #       define          NV_IMAGE_BLIT_SET_PATTERN                               0x0000018c
756 #       define          NV_IMAGE_BLIT_SET_ROP5                                  0x00000190
757 #       define          NV_IMAGE_BLIT_SET_SURFACES_2D                           0x0000019c
758 #       define          NV_IMAGE_BLIT_OPERATION                                 0x000002fc
759 #       define          NV_IMAGE_BLIT_POINT_IN                                  0x00000300
760 #                define         NV_IMAGE_BLIT_POINT_IN_X_MASK   0x0000ffff
761 #                define         NV_IMAGE_BLIT_POINT_IN_Y_MASK   0xffff0000
762 #                define         NV_IMAGE_BLIT_POINT_IN_Y_SHIFT  16
763 #       define          NV_IMAGE_BLIT_POINT_OUT                                 0x00000304
764 #                define         NV_IMAGE_BLIT_POINT_OUT_X_MASK  0x0000ffff
765 #                define         NV_IMAGE_BLIT_POINT_OUT_Y_MASK  0xffff0000
766 #                define         NV_IMAGE_BLIT_POINT_OUT_Y_SHIFT 16
767 #       define          NV_IMAGE_BLIT_SIZE                                      0x00000308
768 #                define         NV_IMAGE_BLIT_SIZE_WIDTH_MASK   0x0000ffff
769 #                define         NV_IMAGE_BLIT_SIZE_HEIGHT_MASK  0xffff0000
770 #                define         NV_IMAGE_BLIT_SIZE_HEIGHT_SHIFT 16
771
772 /****************************************** 
773 Object NV11_IMAGE_BLIT used on: NV15 NV20 
774 */
775 #define                 NV11_IMAGE_BLIT                                         0x0000009f
776
777 /****************************************** 
778 Object NV30_IMAGE_BLIT used on: NV30 NV40 G70
779 */
780 #define                 NV30_IMAGE_BLIT                                         0x0000009f
781
782 /****************************************** 
783 Object NV10_TCL_PRIMITIVE_3D used on: NV10 
784 */
785 #define                 NV10_TCL_PRIMITIVE_3D                                   0x00000056
786 #       define          NV10_TCL_PRIMITIVE_3D_NOP                               0x00000100
787 #       define          NV10_TCL_PRIMITIVE_3D_NOTIFY                            0x00000104
788 #       define          NV10_TCL_PRIMITIVE_3D_SET_DMA_NOTIFY                    0x00000180
789 #       define          NV10_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY0                0x00000184
790 #       define          NV10_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY1                0x00000188
791 #       define          NV10_TCL_PRIMITIVE_3D_SET_DISPLAY_LIST                  0x0000018c
792 #       define          NV10_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY2                0x00000194
793 #       define          NV10_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY3                0x00000198
794 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ                    0x00000200
795 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_WIDTH_MASK 0xffff0000
796 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_WIDTH_SHIFT        16
797 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_X_MASK     0x0000ffff
798 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_VERT                     0x00000204
799 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_VERT_HEIGHT_MASK 0xffff0000
800 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_VERT_HEIGHT_SHIFT        16
801 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_VERT_Y_MASK      0x0000ffff
802 #       define          NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT                     0x00000208
803 #                define         NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_MASK   0x0000ff00
804 #                define         NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_SHIFT  8
805 #                define NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_pitch  0x0001
806 #                define NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_swizzle        0x0002
807 #                define         NV10_TCL_PRIMITIVE_3D_BUFFER_FORMAT_COLOR_MASK  0x000000ff
808 #       define          NV10_TCL_PRIMITIVE_3D_BUFFER_PITCH                      0x0000020c
809 #                define         NV10_TCL_PRIMITIVE_3D_BUFFER_PITCH_DEPTH_STENCIL_BUFFER_PITCH_MASK      0xffff0000
810 #                define         NV10_TCL_PRIMITIVE_3D_BUFFER_PITCH_DEPTH_STENCIL_BUFFER_PITCH_SHIFT     16
811 #                define         NV10_TCL_PRIMITIVE_3D_BUFFER_PITCH_COLOR_BUFFER_PITCH_MASK      0x0000ffff
812 #       define          NV10_TCL_PRIMITIVE_3D_COLOR_OFFSET                      0x00000210
813 #       define          NV10_TCL_PRIMITIVE_3D_DEPTH_OFFSET                      0x00000214
814 #       define          NV10_TCL_PRIMITIVE_3D_TX_OFFSET(d)                      (0x00000218 + (d) * 0x0004)
815 #       define          NV10_TCL_PRIMITIVE_3D_TX_FORMAT(d)                      (0x00000220 + (d) * 0x0004)
816 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_MASK     0xf0000000
817 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_SHIFT    28
818 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_REPEAT   0x0001
819 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_MIRRORED_REPEAT  0x0002
820 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_CLAMP_TO_EDGE    0x0003
821 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_CLAMP_TO_BORDER  0x0004
822 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_T_CLAMP    0x0005
823 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_MASK     0x0f000000
824 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_SHIFT    24
825 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_REPEAT   0x0001
826 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_MIRRORED_REPEAT  0x0002
827 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_CLAMP_TO_EDGE    0x0003
828 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_CLAMP_TO_BORDER  0x0004
829 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_WRAP_S_CLAMP    0x0005
830 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_HEIGHT_MASK        0x00f00000
831 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_HEIGHT_SHIFT       20
832 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_WIDTH_MASK 0x000f0000
833 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_WIDTH_SHIFT        16
834 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOD_MASK        0x0000f000
835 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_LOD_SHIFT       12
836 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_NPOT_MASK       0x00000800
837 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_NPOT    (1 << 11)
838 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_NPOT_TRUE       0x0001
839 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_NPOT_FALSE      0x0000
840 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_MASK     0x00000780
841 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_SHIFT    7
842 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8       0x0000
843 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8       0x0001
844 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R5G5B5A1 0x0002
845 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8_RECT  0x0003
846 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R4G4B4A4 0x0004
847 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R8G8B8A8 0x0006
848 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_INDEX8   0x000b
849 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT1     0x000c
850 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT3     0x000e
851 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT5     0x000f
852 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R5G5B5A1_RECT    0x0010
853 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R8G8B8A8_RECT    0x0012
854 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8_RECT  0x0013
855 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8A8     0x001a
856 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8_RECT_2        0x001b
857 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R4G4B4A4_RECT    0x001d
858 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8A8_RECT        0x0020
859 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_MASK   0x00000004
860 #                define         NV10_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP        (1 << 2)
861 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_TRUE   0x0001
862 #                define NV10_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_FALSE  0x0000
863 #       define          NV10_TCL_PRIMITIVE_3D_TX_ENABLE(d)                      (0x00000228 + (d) * 0x0004)
864 #                define         NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_MASK     0x40000000
865 #                define         NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE  (1 << 30)
866 #                define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_TRUE     0x0001
867 #                define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_FALSE    0x0000
868 #                define         NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_MASK 0x00000030
869 #                define         NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_SHIFT        4
870 #                define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_1    0x0000
871 #                define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_2    0x0001
872 #                define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_4    0x0002
873 #                define NV10_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_8    0x0003
874 #       define          NV10_TCL_PRIMITIVE_3D_TX_NPOT_PITCH(d)                  (0x00000230 + (d) * 0x0004)
875 #                define         NV10_TCL_PRIMITIVE_3D_TX_NPOT_PITCH_PITCH_MASK  0xffff0000
876 #                define         NV10_TCL_PRIMITIVE_3D_TX_NPOT_PITCH_PITCH_SHIFT 16
877 #       define          NV10_TCL_PRIMITIVE_3D_TX_NPOT_SIZE(d)                   (0x00000240 + (d) * 0x0004)
878 #                define         NV10_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_WIDTH_MASK   0xffff0000
879 #                define         NV10_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_WIDTH_SHIFT  16
880 #                define         NV10_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_HEIGHT_MASK  0x0000ffff
881 #       define          NV10_TCL_PRIMITIVE_3D_TX_FILTER(d)                      (0x00000248 + (d) * 0x0004)
882 #                define         NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_MASK 0xf0000000
883 #                define         NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_SHIFT        28
884 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST      0x0001
885 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR       0x0002
886 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST_MIPMAP_NEAREST       0x0003
887 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR_MIPMAP_NEAREST        0x0004
888 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST_MIPMAP_LINEAR        0x0005
889 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR_MIPMAP_LINEAR 0x0006
890 #                define         NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_MASK 0x0f000000
891 #                define         NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_SHIFT        24
892 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST      0x0001
893 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR       0x0002
894 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST_MIPMAP_NEAREST       0x0003
895 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR_MIPMAP_NEAREST        0x0004
896 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST_MIPMAP_LINEAR        0x0005
897 #                define NV10_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR_MIPMAP_LINEAR 0x0006
898 #       define          NV10_TCL_PRIMITIVE_3D_TX_PALETTE_OFFSET(d)              (0x00000250 + (d) * 0x0004)
899 #       define          NV10_TCL_PRIMITIVE_3D_TX_MATRIX_ENABLE(d)               (0x000003e0 + (d) * 0x0004)
900 #       define          NV10_TCL_PRIMITIVE_3D_TX_MATRIX(x,y)                    (0x00000540 + (y) * 0x0010 + (x) * 0x0004)
901 #       define          NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA(d)                    (0x00000260 + (d) * 0x0004)
902 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_MASK     0xe0000000
903 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SHIFT    29
904 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
905 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_INVERT_NV       0x0001
906 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NORMAL_NV 0x0002
907 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NEGATE_NV 0x0003
908 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
909 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
910 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_IDENTITY_NV       0x0006
911 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_NEGATE_NV 0x0007
912 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_MASK     0x10000000
913 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE  (1 << 28)
914 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_BLUE     0x0000
915 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_ALPHA    0x0001
916 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_MASK       0x0f000000
917 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SHIFT      24
918 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_ZERO       0x0000
919 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR0_NV 0x0001
920 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR1_NV 0x0002
921 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_FOG        0x0003
922 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_PRIMARY_COLOR_NV   0x0004
923 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SECONDARY_COLOR_NV 0x0005
924 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE1_ARB       0x0008
925 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE0_ARB       0x0009
926 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_NV  0x000c
927 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE1_NV  0x000d
928 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
929 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_E_TIMES_F_NV       0x000f
930 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_MASK     0x00e00000
931 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SHIFT    21
932 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
933 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_INVERT_NV       0x0001
934 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NORMAL_NV 0x0002
935 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NEGATE_NV 0x0003
936 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
937 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
938 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_IDENTITY_NV       0x0006
939 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_NEGATE_NV 0x0007
940 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_MASK     0x00100000
941 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE  (1 << 20)
942 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_BLUE     0x0000
943 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_ALPHA    0x0001
944 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_MASK       0x000f0000
945 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SHIFT      16
946 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_ZERO       0x0000
947 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR0_NV 0x0001
948 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR1_NV 0x0002
949 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_FOG        0x0003
950 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_PRIMARY_COLOR_NV   0x0004
951 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SECONDARY_COLOR_NV 0x0005
952 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE1_ARB       0x0008
953 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE0_ARB       0x0009
954 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_NV  0x000c
955 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE1_NV  0x000d
956 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
957 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_E_TIMES_F_NV       0x000f
958 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_MASK     0x0000e000
959 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SHIFT    13
960 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
961 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_INVERT_NV       0x0001
962 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NORMAL_NV 0x0002
963 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NEGATE_NV 0x0003
964 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
965 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
966 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_IDENTITY_NV       0x0006
967 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_NEGATE_NV 0x0007
968 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_MASK     0x00001000
969 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE  (1 << 12)
970 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_BLUE     0x0000
971 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_ALPHA    0x0001
972 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_MASK       0x00000f00
973 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SHIFT      8
974 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_ZERO       0x0000
975 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR0_NV 0x0001
976 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR1_NV 0x0002
977 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_FOG        0x0003
978 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_PRIMARY_COLOR_NV   0x0004
979 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SECONDARY_COLOR_NV 0x0005
980 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE1_ARB       0x0008
981 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE0_ARB       0x0009
982 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_NV  0x000c
983 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE1_NV  0x000d
984 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
985 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_E_TIMES_F_NV       0x000f
986 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_MASK     0x000000e0
987 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SHIFT    5
988 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
989 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_INVERT_NV       0x0001
990 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NORMAL_NV 0x0002
991 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NEGATE_NV 0x0003
992 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
993 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
994 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_IDENTITY_NV       0x0006
995 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_NEGATE_NV 0x0007
996 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_MASK     0x00000010
997 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE  (1 << 4)
998 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_BLUE     0x0000
999 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_ALPHA    0x0001
1000 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_INPUT_MASK       0x0000000f
1001 #       define          NV10_TCL_PRIMITIVE_3D_RC_IN_RGB(d)                      (0x00000268 + (d) * 0x0004)
1002 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_MASK       0xe0000000
1003 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SHIFT      29
1004 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1005 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
1006 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
1007 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
1008 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1009 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1010 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
1011 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
1012 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_MASK       0x10000000
1013 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE    (1 << 28)
1014 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_RGB        0x0000
1015 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_ALPHA      0x0001
1016 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_MASK 0x0f000000
1017 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SHIFT        24
1018 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_ZERO 0x0000
1019 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
1020 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
1021 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_FOG  0x0003
1022 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
1023 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
1024 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE1_ARB 0x0008
1025 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE0_ARB 0x0009
1026 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_NV    0x000c
1027 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE1_NV    0x000d
1028 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
1029 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_E_TIMES_F_NV 0x000f
1030 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_MASK       0x00e00000
1031 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SHIFT      21
1032 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1033 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
1034 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
1035 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
1036 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1037 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1038 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
1039 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
1040 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_MASK       0x00100000
1041 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE    (1 << 20)
1042 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_RGB        0x0000
1043 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_ALPHA      0x0001
1044 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_MASK 0x000f0000
1045 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SHIFT        16
1046 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_ZERO 0x0000
1047 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
1048 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
1049 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_FOG  0x0003
1050 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
1051 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
1052 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE1_ARB 0x0008
1053 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE0_ARB 0x0009
1054 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_NV    0x000c
1055 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE1_NV    0x000d
1056 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
1057 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_E_TIMES_F_NV 0x000f
1058 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_MASK       0x0000e000
1059 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SHIFT      13
1060 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1061 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
1062 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
1063 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
1064 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1065 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1066 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
1067 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
1068 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_MASK       0x00001000
1069 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE    (1 << 12)
1070 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_RGB        0x0000
1071 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_ALPHA      0x0001
1072 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_MASK 0x00000f00
1073 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SHIFT        8
1074 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_ZERO 0x0000
1075 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
1076 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
1077 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_FOG  0x0003
1078 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
1079 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
1080 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE1_ARB 0x0008
1081 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE0_ARB 0x0009
1082 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_NV    0x000c
1083 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE1_NV    0x000d
1084 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
1085 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_E_TIMES_F_NV 0x000f
1086 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_MASK       0x000000e0
1087 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SHIFT      5
1088 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1089 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
1090 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
1091 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
1092 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1093 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1094 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
1095 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
1096 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_MASK       0x00000010
1097 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE    (1 << 4)
1098 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_RGB        0x0000
1099 #                define NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_ALPHA      0x0001
1100 #                define         NV10_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_INPUT_MASK 0x0000000f
1101 #       define          NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA(d)                   (0x00000278 + (d) * 0x0004)
1102 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_MASK   0x00030000
1103 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SHIFT  16
1104 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_NONE   0x0000
1105 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO_NV        0x0001
1106 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR_NV       0x0002
1107 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF_NV   0x0003
1108 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_MASK    0x00008000
1109 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS (1 << 15)
1110 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_NONE    0x0000
1111 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV    0x0001
1112 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_MASK 0x00004000
1113 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM      (1 << 14)
1114 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_TRUE 0x0001
1115 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_FALSE        0x0000
1116 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_MASK  0x00002000
1117 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT       (1 << 13)
1118 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_TRUE  0x0001
1119 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_FALSE 0x0000
1120 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_MASK  0x00001000
1121 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT       (1 << 12)
1122 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_TRUE  0x0001
1123 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_FALSE 0x0000
1124 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_MASK      0x00000f00
1125 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT     8
1126 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_ZERO      0x0000
1127 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0_NV        0x0001
1128 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1_NV        0x0002
1129 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_FOG       0x0003
1130 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR_NV  0x0004
1131 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR_NV        0x0005
1132 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1_ARB      0x0008
1133 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0_ARB      0x0009
1134 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_NV 0x000c
1135 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV 0x000d
1136 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV    0x000e
1137 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV      0x000f
1138 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_MASK       0x000000f0
1139 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SHIFT      4
1140 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_ZERO       0x0000
1141 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0_NV 0x0001
1142 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1_NV 0x0002
1143 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_FOG        0x0003
1144 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR_NV   0x0004
1145 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR_NV 0x0005
1146 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1_ARB       0x0008
1147 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0_ARB       0x0009
1148 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_NV  0x000c
1149 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV  0x000d
1150 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
1151 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV       0x000f
1152 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_OUTPUT_MASK       0x0000000f
1153 #       define          NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB(d)                     (0x00000280 + (d) * 0x0004)
1154 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_TX_UNITS_ENABLED_MASK      0x30000000
1155 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_TX_UNITS_ENABLED_SHIFT     28
1156 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_RC_ENABLED_MASK    0x08000000
1157 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_RC_ENABLED (1 << 27)
1158 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_RC_ENABLED_TRUE    0x0001
1159 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_RC1_RC_ENABLED_FALSE   0x0000
1160 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_MASK     0x00030000
1161 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SHIFT    16
1162 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_NONE     0x0000
1163 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_TWO_NV  0x0001
1164 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_FOUR_NV 0x0002
1165 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF_NV     0x0003
1166 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_MASK      0x00008000
1167 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS   (1 << 15)
1168 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_NONE      0x0000
1169 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV      0x0001
1170 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_MASK   0x00004000
1171 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM        (1 << 14)
1172 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_TRUE   0x0001
1173 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_FALSE  0x0000
1174 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_MASK    0x00002000
1175 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13)
1176 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_TRUE    0x0001
1177 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_FALSE   0x0000
1178 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_MASK    0x00001000
1179 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12)
1180 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_TRUE    0x0001
1181 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_FALSE   0x0000
1182 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_MASK        0x00000f00
1183 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SHIFT       8
1184 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_ZERO        0x0000
1185 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0_NV  0x0001
1186 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1_NV  0x0002
1187 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_FOG 0x0003
1188 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR_NV    0x0004
1189 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR_NV  0x0005
1190 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1_ARB        0x0008
1191 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0_ARB        0x0009
1192 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_NV   0x000c
1193 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV   0x000d
1194 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV      0x000e
1195 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV        0x000f
1196 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0
1197 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SHIFT        4
1198 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_ZERO 0x0000
1199 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0_NV   0x0001
1200 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1_NV   0x0002
1201 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_FOG  0x0003
1202 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR_NV     0x0004
1203 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR_NV   0x0005
1204 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE1_ARB 0x0008
1205 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE0_ARB 0x0009
1206 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_NV    0x000c
1207 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV    0x000d
1208 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
1209 #                define NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV 0x000f
1210 #                define         NV10_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_OUTPUT_MASK 0x0000000f
1211 #       define          NV10_TCL_PRIMITIVE_3D_RC_COLOR0                         0x00000270
1212 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_A_MASK  0xff000000
1213 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_A_SHIFT 24
1214 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_R_MASK  0x00ff0000
1215 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_R_SHIFT 16
1216 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_G_MASK  0x0000ff00
1217 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_G_SHIFT 8
1218 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR0_B_MASK  0x000000ff
1219 #       define          NV10_TCL_PRIMITIVE_3D_RC_COLOR1                         0x00000274
1220 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_A_MASK  0xff000000
1221 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_A_SHIFT 24
1222 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_R_MASK  0x00ff0000
1223 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_R_SHIFT 16
1224 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_G_MASK  0x0000ff00
1225 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_G_SHIFT 8
1226 #                define         NV10_TCL_PRIMITIVE_3D_RC_COLOR1_B_MASK  0x000000ff
1227 #       define          NV10_TCL_PRIMITIVE_3D_RC_FINAL0                         0x00000288
1228 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_MASK       0xe0000000
1229 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SHIFT      29
1230 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1231 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
1232 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
1233 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
1234 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1235 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1236 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
1237 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
1238 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_MASK       0x10000000
1239 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE    (1 << 28)
1240 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_RGB        0x0000
1241 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_ALPHA      0x0001
1242 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_MASK 0x0f000000
1243 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SHIFT        24
1244 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_ZERO 0x0000
1245 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
1246 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
1247 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_FOG  0x0003
1248 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
1249 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
1250 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE1_ARB 0x0008
1251 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE0_ARB 0x0009
1252 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_NV    0x000c
1253 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE1_NV    0x000d
1254 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
1255 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_E_TIMES_F_NV 0x000f
1256 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_MASK       0x00e00000
1257 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SHIFT      21
1258 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1259 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
1260 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
1261 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
1262 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1263 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1264 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
1265 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
1266 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_MASK       0x00100000
1267 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE    (1 << 20)
1268 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_RGB        0x0000
1269 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_ALPHA      0x0001
1270 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_MASK 0x000f0000
1271 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SHIFT        16
1272 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_ZERO 0x0000
1273 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
1274 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
1275 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_FOG  0x0003
1276 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
1277 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
1278 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE1_ARB 0x0008
1279 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE0_ARB 0x0009
1280 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_NV    0x000c
1281 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE1_NV    0x000d
1282 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
1283 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_E_TIMES_F_NV 0x000f
1284 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_MASK       0x0000e000
1285 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SHIFT      13
1286 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1287 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
1288 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
1289 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
1290 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1291 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1292 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
1293 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
1294 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_MASK       0x00001000
1295 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE    (1 << 12)
1296 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_RGB        0x0000
1297 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_ALPHA      0x0001
1298 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_MASK 0x00000f00
1299 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SHIFT        8
1300 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_ZERO 0x0000
1301 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
1302 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
1303 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_FOG  0x0003
1304 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
1305 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
1306 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE1_ARB 0x0008
1307 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE0_ARB 0x0009
1308 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_NV    0x000c
1309 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE1_NV    0x000d
1310 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
1311 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_E_TIMES_F_NV 0x000f
1312 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_MASK       0x000000e0
1313 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SHIFT      5
1314 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1315 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
1316 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
1317 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
1318 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1319 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1320 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
1321 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
1322 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_MASK       0x00000010
1323 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE    (1 << 4)
1324 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_RGB        0x0000
1325 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_ALPHA      0x0001
1326 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_INPUT_MASK 0x0000000f
1327 #       define          NV10_TCL_PRIMITIVE_3D_RC_FINAL1                         0x0000028c
1328 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_MASK       0xe0000000
1329 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SHIFT      29
1330 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1331 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_INVERT_NV 0x0001
1332 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NORMAL_NV   0x0002
1333 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NEGATE_NV   0x0003
1334 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1335 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1336 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_IDENTITY_NV 0x0006
1337 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_NEGATE_NV   0x0007
1338 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_MASK       0x10000000
1339 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE    (1 << 28)
1340 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_RGB        0x0000
1341 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_ALPHA      0x0001
1342 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_MASK 0x0f000000
1343 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SHIFT        24
1344 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_ZERO 0x0000
1345 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR0_NV   0x0001
1346 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR1_NV   0x0002
1347 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_FOG  0x0003
1348 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_PRIMARY_COLOR_NV     0x0004
1349 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SECONDARY_COLOR_NV   0x0005
1350 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE1_ARB 0x0008
1351 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE0_ARB 0x0009
1352 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_NV    0x000c
1353 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE1_NV    0x000d
1354 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
1355 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_E_TIMES_F_NV 0x000f
1356 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_MASK       0x00e00000
1357 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SHIFT      21
1358 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1359 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_INVERT_NV 0x0001
1360 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NORMAL_NV   0x0002
1361 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NEGATE_NV   0x0003
1362 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1363 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1364 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_IDENTITY_NV 0x0006
1365 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_NEGATE_NV   0x0007
1366 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_MASK       0x00100000
1367 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE    (1 << 20)
1368 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_RGB        0x0000
1369 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_ALPHA      0x0001
1370 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_MASK 0x000f0000
1371 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SHIFT        16
1372 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_ZERO 0x0000
1373 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR0_NV   0x0001
1374 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR1_NV   0x0002
1375 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_FOG  0x0003
1376 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_PRIMARY_COLOR_NV     0x0004
1377 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SECONDARY_COLOR_NV   0x0005
1378 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE1_ARB 0x0008
1379 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE0_ARB 0x0009
1380 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_NV    0x000c
1381 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE1_NV    0x000d
1382 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
1383 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_E_TIMES_F_NV 0x000f
1384 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_MASK       0x0000e000
1385 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SHIFT      13
1386 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
1387 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_INVERT_NV 0x0001
1388 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NORMAL_NV   0x0002
1389 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NEGATE_NV   0x0003
1390 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
1391 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
1392 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_IDENTITY_NV 0x0006
1393 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_NEGATE_NV   0x0007
1394 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_MASK       0x00001000
1395 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE    (1 << 12)
1396 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_RGB        0x0000
1397 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_ALPHA      0x0001
1398 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_MASK 0x00000f00
1399 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SHIFT        8
1400 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_ZERO 0x0000
1401 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR0_NV   0x0001
1402 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR1_NV   0x0002
1403 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_FOG  0x0003
1404 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_PRIMARY_COLOR_NV     0x0004
1405 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SECONDARY_COLOR_NV   0x0005
1406 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE1_ARB 0x0008
1407 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE0_ARB 0x0009
1408 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_NV    0x000c
1409 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE1_NV    0x000d
1410 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
1411 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_E_TIMES_F_NV 0x000f
1412 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_MASK    0x00000080
1413 #                define         NV10_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP (1 << 7)
1414 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_TRUE    0x0001
1415 #                define NV10_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_FALSE   0x0000
1416 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL                       0x00000294
1417 #                define         NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_LOCAL_VIEWER_MASK     0x00010000
1418 #                define         NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_LOCAL_VIEWER  (1 << 16)
1419 #                define NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_LOCAL_VIEWER_TRUE     0x0001
1420 #                define NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_LOCAL_VIEWER_FALSE    0x0000
1421 #                define         NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_COLOR_CONTROL_MASK    0x00000002
1422 #                define         NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_COLOR_CONTROL 1 // Nothing to shift
1423 #                define NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_COLOR_CONTROL_SINGLE_COLOR    0x0000
1424 #                define NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_COLOR_CONTROL_SEPARATE_SPECULAR_COLOR 0x0001
1425 #       define          NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE             0x00000298
1426 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_SPECULAR_MASK       0x00000008
1427 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_SPECULAR    (1 << 3)
1428 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_SPECULAR_TRUE       0x0001
1429 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_SPECULAR_FALSE      0x0000
1430 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_DIFFUSE_MASK        0x00000004
1431 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_DIFFUSE     (1 << 2)
1432 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_DIFFUSE_TRUE        0x0001
1433 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_DIFFUSE_FALSE       0x0000
1434 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_AMBIENT_MASK        0x00000002
1435 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_AMBIENT     1 // Nothing to shift
1436 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_AMBIENT_TRUE        0x0001
1437 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_AMBIENT_FALSE       0x0000
1438 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_ENABLE_EMISSION_MASK       0x00000001
1439 #       define          NV10_TCL_PRIMITIVE_3D_FOG_MODE                          0x0000029c
1440 #       define          NV10_TCL_PRIMITIVE_3D_FOG_COORD_DIST                    0x000002a0
1441 #       define          NV10_TCL_PRIMITIVE_3D_FOG_ENABLE                        0x000002a4
1442 #       define          NV10_TCL_PRIMITIVE_3D_FOG_COLOR                         0x000002a8
1443 #                define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_A_MASK  0xff000000
1444 #                define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_A_SHIFT 24
1445 #                define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_B_MASK  0x00ff0000
1446 #                define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_B_SHIFT 16
1447 #                define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_G_MASK  0x0000ff00
1448 #                define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_G_SHIFT 8
1449 #                define         NV10_TCL_PRIMITIVE_3D_FOG_COLOR_R_MASK  0x000000ff
1450 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_MODE                0x000002b4
1451 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(d)            (0x000002c0 + (d) * 0x0004)
1452 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X2_MASK        0x08000000
1453 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X2     (1 << 27)
1454 #                define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X2_TRUE        0x0001
1455 #                define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X2_FALSE       0x0000
1456 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_MASK       0x07ff0000
1457 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_SHIFT      16
1458 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X1_MASK        0x00000800
1459 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X1     (1 << 11)
1460 #                define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X1_TRUE        0x0001
1461 #                define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_ENABLE_CLIP_AT_X1_FALSE       0x0000
1462 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X1_MASK       0x000007ff
1463 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT(d)             (0x000002e0 + (d) * 0x0004)
1464 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y2_MASK 0x08000000
1465 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y2      (1 << 27)
1466 #                define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y2_TRUE 0x0001
1467 #                define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y2_FALSE        0x0000
1468 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_MASK        0x07ff0000
1469 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_SHIFT       16
1470 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y1_MASK 0x00000800
1471 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y1      (1 << 11)
1472 #                define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y1_TRUE 0x0001
1473 #                define NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_ENABLE_CLIP_AT_Y1_FALSE        0x0000
1474 #                define         NV10_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y1_MASK        0x000007ff
1475 #       define          NV10_TCL_PRIMITIVE_3D_ALPHA_FUNC_ENABLE                 0x00000300
1476 #       define          NV10_TCL_PRIMITIVE_3D_BLEND_FUNC_ENABLE                 0x00000304
1477 #       define          NV10_TCL_PRIMITIVE_3D_CULL_FACE_ENABLE                  0x00000308
1478 #       define          NV10_TCL_PRIMITIVE_3D_DEPTH_TEST_ENABLE                 0x0000030c
1479 #       define          NV10_TCL_PRIMITIVE_3D_DITHER_ENABLE                     0x00000310
1480 #       define          NV10_TCL_PRIMITIVE_3D_LIGHTING_ENABLE                   0x00000314
1481 #       define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETERS_ENABLE           0x00000318
1482 #       define          NV10_TCL_PRIMITIVE_3D_POINT_SMOOTH_ENABLE               0x0000031c
1483 #       define          NV10_TCL_PRIMITIVE_3D_LINE_SMOOTH_ENABLE                0x00000320
1484 #       define          NV10_TCL_PRIMITIVE_3D_POLYGON_SMOOTH_ENABLE             0x00000324
1485 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_WEIGHT_ENABLE              0x00000328
1486 #       define          NV10_TCL_PRIMITIVE_3D_STENCIL_ENABLE                    0x0000032c
1487 #       define          NV10_TCL_PRIMITIVE_3D_POLYGON_OFFSET_POINT_ENABLE       0x00000330
1488 #       define          NV10_TCL_PRIMITIVE_3D_POLYGON_OFFSET_LINE_ENABLE        0x00000334
1489 #       define          NV10_TCL_PRIMITIVE_3D_POLYGON_OFFSET_FILL_ENABLE        0x00000338
1490 #       define          NV10_TCL_PRIMITIVE_3D_ALPHA_FUNC_FUNC                   0x0000033c
1491 #       define          NV10_TCL_PRIMITIVE_3D_ALPHA_FUNC_REF                    0x00000340
1492 #       define          NV10_TCL_PRIMITIVE_3D_BLEND_FUNC_SRC                    0x00000344
1493 #       define          NV10_TCL_PRIMITIVE_3D_BLEND_FUNC_DST                    0x00000348
1494 #       define          NV10_TCL_PRIMITIVE_3D_BLEND_COLOR                       0x0000034c
1495 #                define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_A_MASK        0xff000000
1496 #                define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_A_SHIFT       24
1497 #                define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_R_MASK        0x00ff0000
1498 #                define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_R_SHIFT       16
1499 #                define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_G_MASK        0x0000ff00
1500 #                define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_G_SHIFT       8
1501 #                define         NV10_TCL_PRIMITIVE_3D_BLEND_COLOR_B_MASK        0x000000ff
1502 #       define          NV10_TCL_PRIMITIVE_3D_BLEND_EQUATION                    0x00000350
1503 #       define          NV10_TCL_PRIMITIVE_3D_DEPTH_FUNC                        0x00000354
1504 #       define          NV10_TCL_PRIMITIVE_3D_COLOR_MASK                        0x00000358
1505 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_A_MASK 0xff000000
1506 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_A_SHIFT        24
1507 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_A_TRUE 0x0001
1508 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_A_FALSE        0x0000
1509 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_R_MASK 0x00ff0000
1510 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_R_SHIFT        16
1511 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_R_TRUE 0x0001
1512 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_R_FALSE        0x0000
1513 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_G_MASK 0x0000ff00
1514 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_G_SHIFT        8
1515 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_G_TRUE 0x0001
1516 #                define NV10_TCL_PRIMITIVE_3D_COLOR_MASK_G_FALSE        0x0000
1517 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_MASK_B_MASK 0x000000ff
1518 #       define          NV10_TCL_PRIMITIVE_3D_DEPTH_WRITE_ENABLE                0x0000035c
1519 #       define          NV10_TCL_PRIMITIVE_3D_STENCIL_MASK                      0x00000360
1520 #       define          NV10_TCL_PRIMITIVE_3D_STENCIL_FUNC_FUNC                 0x00000364
1521 #       define          NV10_TCL_PRIMITIVE_3D_STENCIL_FUNC_REF                  0x00000368
1522 #       define          NV10_TCL_PRIMITIVE_3D_STENCIL_FUNC_MASK                 0x0000036c
1523 #       define          NV10_TCL_PRIMITIVE_3D_STENCIL_OP_FAIL                   0x00000370
1524 #       define          NV10_TCL_PRIMITIVE_3D_STENCIL_OP_ZFAIL                  0x00000374
1525 #       define          NV10_TCL_PRIMITIVE_3D_STENCIL_OP_ZPASS                  0x00000378
1526 #       define          NV10_TCL_PRIMITIVE_3D_SHADE_MODEL                       0x0000037c
1527 #       define          NV10_TCL_PRIMITIVE_3D_LINE_WIDTH                        0x00000380
1528 #       define          NV10_TCL_PRIMITIVE_3D_POLYGON_OFFSET_FACTOR             0x00000384
1529 #       define          NV10_TCL_PRIMITIVE_3D_POLYGON_OFFSET_UNITS              0x00000388
1530 #       define          NV10_TCL_PRIMITIVE_3D_POLYGON_MODE_FRONT                0x0000038c
1531 #       define          NV10_TCL_PRIMITIVE_3D_POLYGON_MODE_BACK                 0x00000390
1532 #       define          NV10_TCL_PRIMITIVE_3D_DEPTH_RANGE_NEAR                  0x00000394
1533 #       define          NV10_TCL_PRIMITIVE_3D_DEPTH_RANGE_FAR                   0x00000398
1534 #       define          NV10_TCL_PRIMITIVE_3D_CULL_FACE                         0x0000039c
1535 #       define          NV10_TCL_PRIMITIVE_3D_FRONT_FACE                        0x000003a0
1536 #       define          NV10_TCL_PRIMITIVE_3D_NORMALIZE_ENABLE                  0x000003a4
1537 #       define          NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_R                  0x000003a8
1538 #       define          NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_G                  0x000003ac
1539 #       define          NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_B                  0x000003b0
1540 #       define          NV10_TCL_PRIMITIVE_3D_COLOR_MATERIAL_A                  0x000003b4
1541 #       define          NV10_TCL_PRIMITIVE_3D_COLOR_CONTROL                     0x000003b8
1542 #                define         NV10_TCL_PRIMITIVE_3D_COLOR_CONTROL_COLOR_CONTROL_MASK  0x00000001
1543 #       define          NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS                    0x000003bc
1544 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_MASK       0x00004000
1545 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7    (1 << 14)
1546 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_TRUE       0x0001
1547 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_FALSE      0x0000
1548 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_MASK       0x00001000
1549 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6    (1 << 12)
1550 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_TRUE       0x0001
1551 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_FALSE      0x0000
1552 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_MASK       0x00000400
1553 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5    (1 << 10)
1554 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_TRUE       0x0001
1555 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_FALSE      0x0000
1556 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_MASK       0x00000100
1557 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4    (1 << 8)
1558 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_TRUE       0x0001
1559 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_FALSE      0x0000
1560 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_MASK       0x00000040
1561 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3    (1 << 6)
1562 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_TRUE       0x0001
1563 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_FALSE      0x0000
1564 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_MASK       0x00000010
1565 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2    (1 << 4)
1566 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_TRUE       0x0001
1567 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_FALSE      0x0000
1568 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_MASK       0x00000004
1569 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1    (1 << 2)
1570 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_TRUE       0x0001
1571 #                define NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_FALSE      0x0000
1572 #                define         NV10_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0_MASK       0x00000001
1573 #       define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE( d)             (0x000003c0 + (d) * 0x0004)
1574 #       define          NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE                0x000003e8
1575 #                define         NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_PROJECTION_MASK        0x00000004
1576 #                define         NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_PROJECTION     (1 << 2)
1577 #                define NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_PROJECTION_TRUE        0x0001
1578 #                define NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_PROJECTION_FALSE       0x0000
1579 #                define         NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_MODELVIEW0_MASK        0x00000002
1580 #                define         NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_MODELVIEW0     1 // Nothing to shift
1581 #                define NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_MODELVIEW0_TRUE        0x0001
1582 #                define NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_MODELVIEW0_FALSE       0x0000
1583 #                define         NV10_TCL_PRIMITIVE_3D_VIEW_MATRIX_ENABLE_MODELVIEW1_MASK        0x00000001
1584 #       define          NV10_TCL_PRIMITIVE_3D_POINT_SIZE                        0x000003ec
1585 #       define          NV10_TCL_PRIMITIVE_3D_MODELVIEW0_MATRIX( d)             (0x00000400 + (d) * 0x0004)
1586 #       define          NV10_TCL_PRIMITIVE_3D_MODELVIEW1_MATRIX( d)             (0x00000440 + (d) * 0x0004)
1587 #       define          NV10_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW0_MATRIX( d)     (0x00000480 + (d) * 0x0004)
1588 #       define          NV10_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW1_MATRIX( d)     (0x000004c0 + (d) * 0x0004)
1589 #       define          NV10_TCL_PRIMITIVE_3D_PROJECTION_MATRIX( d)             (0x00000500 + (d) * 0x0004)
1590 #       define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_A(d)                   (0x00000600 + (d) * 0x0010)
1591 #       define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_B(d)                   (0x00000604 + (d) * 0x0010)
1592 #       define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_C(d)                   (0x00000608 + (d) * 0x0010)
1593 #       define          NV10_TCL_PRIMITIVE_3D_CLIP_PLANE_D(d)                   (0x0000060c + (d) * 0x0010)
1594 #       define          NV10_TCL_PRIMITIVE_3D_FOG_EQUATION_CONSTANT             0x00000680
1595 #       define          NV10_TCL_PRIMITIVE_3D_FOG_EQUATION_LINEAR               0x00000684
1596 #       define          NV10_TCL_PRIMITIVE_3D_FOG_EQUATION_QUADRATIC            0x00000688
1597 #       define          NV10_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_A        0x000006a0
1598 #       define          NV10_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_B        0x000006a4
1599 #       define          NV10_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_C        0x000006a8
1600 #       define          NV10_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_D        0x000006ac
1601 #       define          NV10_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_E        0x000006b0
1602 #       define          NV10_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_F        0x000006b4
1603 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R    0x000006c4
1604 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G    0x000006c8
1605 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B    0x000006cc
1606 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_SCALE_X                  0x000006e8
1607 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_SCALE_Y                  0x000006ec
1608 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_SCALE_Z                  0x000006f0
1609 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_SCALE_W                  0x000006f4
1610 #       define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_A                 0x000006f8
1611 #       define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_B                 0x000006fc
1612 #       define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_C                 0x00000700
1613 #       define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_D                 0x00000704
1614 #       define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_E                 0x00000708
1615 #       define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_F                 0x0000070c
1616 #       define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_G                 0x00000710
1617 #       define          NV10_TCL_PRIMITIVE_3D_POINT_PARAMETER_H                 0x00000714
1618 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(d)     (0x00000800 + (d) * 0x0080)
1619 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(d)     (0x00000804 + (d) * 0x0080)
1620 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(d)     (0x00000808 + (d) * 0x0080)
1621 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(d)     (0x0000080c + (d) * 0x0080)
1622 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(d)     (0x00000810 + (d) * 0x0080)
1623 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(d)     (0x00000814 + (d) * 0x0080)
1624 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(d)    (0x00000818 + (d) * 0x0080)
1625 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(d)    (0x0000081c + (d) * 0x0080)
1626 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(d)    (0x00000820 + (d) * 0x0080)
1627 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_X(d)            (0x00000828 + (d) * 0x0080)
1628 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Y(d)            (0x0000082c + (d) * 0x0080)
1629 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Z(d)            (0x00000830 + (d) * 0x0080)
1630 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_X(d)              (0x00000834 + (d) * 0x0080)
1631 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Y(d)              (0x00000838 + (d) * 0x0080)
1632 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Z(d)              (0x0000083c + (d) * 0x0080)
1633 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_A(d)            (0x00000840 + (d) * 0x0080)
1634 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_EXPONENT(d)            (0x00000844 + (d) * 0x0080)
1635 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_B(d)            (0x00000848 + (d) * 0x0080)
1636 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_X(d)               (0x0000084c + (d) * 0x0080)
1637 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Y(d)               (0x00000850 + (d) * 0x0080)
1638 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Z(d)               (0x00000854 + (d) * 0x0080)
1639 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_C(d)            (0x00000858 + (d) * 0x0080)
1640 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_POSITION_X(d)               (0x0000085c + (d) * 0x0080)
1641 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_POSITION_Y(d)               (0x00000860 + (d) * 0x0080)
1642 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_POSITION_Z(d)               (0x00000864 + (d) * 0x0080)
1643 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_CONSTANT_ATTENUATION(d)     (0x00000868 + (d) * 0x0080)
1644 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_LINEAR_ATTENUATION(d)       (0x0000086c + (d) * 0x0080)
1645 #       define          NV10_TCL_PRIMITIVE_3D_LIGHT_QUADRATIC_ATTENUATION(d)    (0x00000870 + (d) * 0x0080)
1646 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_POS_3F_X                   0x00000c00
1647 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_POS_3F_Y                   0x00000c04
1648 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_POS_3F_Z                   0x00000c08
1649 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_POS_4F_X                   0x00000c18
1650 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_POS_4F_Y                   0x00000c1c
1651 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_POS_4F_Z                   0x00000c20
1652 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_POS_4F_W                   0x00000c24
1653 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_X                   0x00000c30
1654 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_Y                   0x00000c34
1655 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_Z                   0x00000c38
1656 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY                  0x00000c40
1657 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_MASK   0xffff0000
1658 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_SHIFT  16
1659 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_X_MASK   0x0000ffff
1660 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z                   0x00000c44
1661 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z_Z_MASK    0x0000ffff
1662 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4F_R                   0x00000c50
1663 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4F_G                   0x00000c54
1664 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4F_B                   0x00000c58
1665 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4F_A                   0x00000c5c
1666 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_3F_R                   0x00000c60
1667 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_3F_G                   0x00000c64
1668 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_3F_B                   0x00000c68
1669 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I                     0x00000c6c
1670 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_MASK      0xff000000
1671 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_SHIFT     24
1672 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_MASK      0x00ff0000
1673 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_SHIFT     16
1674 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_MASK      0x0000ff00
1675 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_SHIFT     8
1676 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL_4I_R_MASK      0x000000ff
1677 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_R                  0x00000c80
1678 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_G                  0x00000c84
1679 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_B                  0x00000c88
1680 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I                    0x00000c8c
1681 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_MASK     0xff000000
1682 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_SHIFT    24
1683 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_MASK     0x00ff0000
1684 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_SHIFT    16
1685 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_MASK     0x0000ff00
1686 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_SHIFT    8
1687 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_R_MASK     0x000000ff
1688 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_S                   0x00000c90
1689 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_T                   0x00000c94
1690 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2I                     0x00000c98
1691 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_MASK      0xffff0000
1692 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_SHIFT     16
1693 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_S_MASK      0x0000ffff
1694 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_S                   0x00000ca0
1695 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_T                   0x00000ca4
1696 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_R                   0x00000ca8
1697 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_Q                   0x00000cac
1698 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST                  0x00000cb0
1699 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_MASK   0xffff0000
1700 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_SHIFT  16
1701 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_S_MASK   0x0000ffff
1702 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ                  0x00000cb4
1703 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_MASK   0xffff0000
1704 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_SHIFT  16
1705 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_R_MASK   0x0000ffff
1706 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_S                   0x00000cb8
1707 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_T                   0x00000cbc
1708 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2I                     0x00000cc0
1709 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_MASK      0xffff0000
1710 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_SHIFT     16
1711 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_S_MASK      0x0000ffff
1712 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_S                   0x00000cc8
1713 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_T                   0x00000ccc
1714 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_R                   0x00000cd0
1715 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_Q                   0x00000cd4
1716 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST                  0x00000cd8
1717 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_MASK   0xffff0000
1718 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_SHIFT  16
1719 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_S_MASK   0x0000ffff
1720 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ                  0x00000cdc
1721 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_MASK   0xffff0000
1722 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_SHIFT  16
1723 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_R_MASK   0x0000ffff
1724 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_FOG_1F                     0x00000ce0
1725 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_WGH_1F                     0x00000ce4
1726 #       define          NV10_TCL_PRIMITIVE_3D_EDGEFLAG_ENABLE                   0x00000cec
1727 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR( d)                   (0x00000d04 + (d) * 0x0008)
1728 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR_STRIDE_MASK   0x0000ff00
1729 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR_STRIDE_SHIFT  8
1730 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR_FIELDS_MASK   0x000000f0
1731 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR_FIELDS_SHIFT  4
1732 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ATTR_TYPE_MASK     0x0000000f
1733 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_VALIDATE             0x00000cf0
1734 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_POS           0x00000d00
1735 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS           0x00000d04
1736 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS_STRIDE_MASK       0x0000ff00
1737 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS_STRIDE_SHIFT      8
1738 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS_FIELDS_MASK       0x000000f0
1739 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS_FIELDS_SHIFT      4
1740 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_POS_TYPE_MASK 0x0000000f
1741 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_COL           0x00000d08
1742 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL           0x00000d0c
1743 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL_STRIDE_MASK       0x0000ff00
1744 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL_STRIDE_SHIFT      8
1745 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL_FIELDS_MASK       0x000000f0
1746 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL_FIELDS_SHIFT      4
1747 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL_TYPE_MASK 0x0000000f
1748 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_COL2          0x00000d10
1749 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2          0x00000d14
1750 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2_STRIDE_MASK      0x0000ff00
1751 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2_STRIDE_SHIFT     8
1752 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2_FIELDS_MASK      0x000000f0
1753 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2_FIELDS_SHIFT     4
1754 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_COL2_TYPE_MASK        0x0000000f
1755 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_TX0           0x00000d18
1756 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0           0x00000d1c
1757 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0_STRIDE_MASK       0x0000ff00
1758 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0_STRIDE_SHIFT      8
1759 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0_FIELDS_MASK       0x000000f0
1760 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0_FIELDS_SHIFT      4
1761 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX0_TYPE_MASK 0x0000000f
1762 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_TX1           0x00000d20
1763 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1           0x00000d24
1764 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1_STRIDE_MASK       0x0000ff00
1765 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1_STRIDE_SHIFT      8
1766 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1_FIELDS_MASK       0x000000f0
1767 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1_FIELDS_SHIFT      4
1768 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_TX1_TYPE_MASK 0x0000000f
1769 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_NOR           0x00000d28
1770 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR           0x00000d2c
1771 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR_STRIDE_MASK       0x0000ff00
1772 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR_STRIDE_SHIFT      8
1773 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR_FIELDS_MASK       0x000000f0
1774 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR_FIELDS_SHIFT      4
1775 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_NOR_TYPE_MASK 0x0000000f
1776 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_WGH           0x00000d30
1777 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH           0x00000d34
1778 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH_STRIDE_MASK       0x0000ff00
1779 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH_STRIDE_SHIFT      8
1780 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH_FIELDS_MASK       0x000000f0
1781 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH_FIELDS_SHIFT      4
1782 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_WGH_TYPE_MASK 0x0000000f
1783 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_OFFSET_FOG           0x00000d38
1784 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG           0x00000d3c
1785 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG_STRIDE_MASK       0x0000ff00
1786 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG_STRIDE_SHIFT      8
1787 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG_FIELDS_MASK       0x000000f0
1788 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG_FIELDS_SHIFT      4
1789 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_FORMAT_FOG_TYPE_MASK 0x0000000f
1790 #       define          NV10_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_ENABLE             0x00000d40
1791 #       define          NV10_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_OP                 0x00000d44
1792 #       define          NV10_TCL_PRIMITIVE_3D_BEGIN_END                         0x00000dfc
1793 #       define          NV10_TCL_PRIMITIVE_3D_INDEX_DATA                        0x00000e00
1794 #                define         NV10_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX1_MASK    0xffff0000
1795 #                define         NV10_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX1_SHIFT   16
1796 #                define         NV10_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX0_MASK    0x0000ffff
1797 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_BEGIN_END           0x000013fc
1798 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_DRAW_ARRAYS         0x00001400
1799 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_DRAW_ARRAYS_COUNT_MINUS_1_MASK      0xff000000
1800 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_DRAW_ARRAYS_COUNT_MINUS_1_SHIFT     24
1801 #                define         NV10_TCL_PRIMITIVE_3D_VERTEX_BUFFER_DRAW_ARRAYS_FIRST_MASK      0x0000ffff
1802 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_X                 0x00001638
1803 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_Y                 0x0000163c
1804 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_Z                 0x00001640
1805 #       define          NV10_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_W                 0x00001644
1806 #       define          NV10_TCL_PRIMITIVE_3D_VERTEX_ARRAY_DATA                 0x00001800
1807
1808 /****************************************** 
1809 Object NV11_TCL_PRIMITIVE_3D used on: NV15 
1810 */
1811 #define                 NV11_TCL_PRIMITIVE_3D                                   0x00000096
1812
1813 /****************************************** 
1814 Object NV17_TCL_PRIMITIVE_3D used on: NV15 
1815 */
1816 #define                 NV17_TCL_PRIMITIVE_3D                                   0x00000099
1817 #       define          NV17_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY4                0x000001ac
1818 #       define          NV17_TCL_PRIMITIVE_3D_SET_DMA_IN_MEMORY5                0x000001b0
1819 #       define          NV17_TCL_PRIMITIVE_3D_COLOR_MASK_ENABLE                 0x000002bc
1820 #       define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH            0x00000d5c
1821 #                define         NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH_PITCH_MASK 0x0000ffff
1822 #       define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_OFFSET           0x00000d60
1823 #       define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_FILL_VALUE              0x00000d68
1824 #       define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_CLEAR_ENABLE            0x00000d6c
1825 #       define          NV17_TCL_PRIMITIVE_3D_LMA_DEPTH_ENABLE                  0x00001658
1826
1827 /****************************************** 
1828 Object NV10_IMAGE_FROM_CPU used on: NV10 NV15 NV20 NV30 NV40 G70
1829 */
1830 #define                 NV10_IMAGE_FROM_CPU                                     0x0000008a
1831 #       define          NV10_IMAGE_FROM_CPU_SET_DMA_NOTIFY                      0x00000180
1832 #       define          NV10_IMAGE_FROM_CPU_SET_CONTEXT_CLIP_RECTANGLE          0x00000188
1833 #       define          NV10_IMAGE_FROM_CPU_SET_IMAGE_PATTERN                   0x0000018c
1834 #       define          NV10_IMAGE_FROM_CPU_SET_RASTER_OP                       0x00000190
1835 #       define          NV10_IMAGE_FROM_CPU_SET_CONTEXT_SURFACES_2D             0x0000019c
1836 #       define          NV10_IMAGE_FROM_CPU_OPERATION                           0x000002fc
1837 #       define          NV10_IMAGE_FROM_CPU_FORMAT                              0x00000300
1838 #       define          NV10_IMAGE_FROM_CPU_POINT                               0x00000304
1839 #                define         NV10_IMAGE_FROM_CPU_POINT_X_MASK        0x0000ffff
1840 #                define         NV10_IMAGE_FROM_CPU_POINT_Y_MASK        0xffff0000
1841 #                define         NV10_IMAGE_FROM_CPU_POINT_Y_SHIFT       16
1842 #       define          NV10_IMAGE_FROM_CPU_SIZE_OUT                            0x00000308
1843 #                define         NV10_IMAGE_FROM_CPU_SIZE_OUT_WIDTH_MASK 0x0000ffff
1844 #                define         NV10_IMAGE_FROM_CPU_SIZE_OUT_HEIGHT_MASK        0xffff0000
1845 #                define         NV10_IMAGE_FROM_CPU_SIZE_OUT_HEIGHT_SHIFT       16
1846 #       define          NV10_IMAGE_FROM_CPU_SIZE_IN                             0x0000030c
1847 #                define         NV10_IMAGE_FROM_CPU_SIZE_IN_WIDTH_MASK  0x0000ffff
1848 #                define         NV10_IMAGE_FROM_CPU_SIZE_IN_HEIGHT_MASK 0xffff0000
1849 #                define         NV10_IMAGE_FROM_CPU_SIZE_IN_HEIGHT_SHIFT        16
1850 #       define          NV10_IMAGE_FROM_CPU_HLINE                               0x00000400
1851
1852 /****************************************** 
1853 Object NV10_PRIMITIVE_2D used on: NV10 NV15 NV20 NV30 NV40 G70
1854 */
1855 #define                 NV10_PRIMITIVE_2D                                       0x0000007b
1856 #       define          NV10_PRIMITIVE_2D_SET_DMA_NOTIFY                        0x00000180
1857 #       define          NV10_PRIMITIVE_2D_SET_SURFACE                           0x00000184
1858 #       define          NV10_PRIMITIVE_2D_SET_FORMAT                            0x00000300
1859 #       define          NV10_PRIMITIVE_2D_SET_POINT                             0x00000304
1860 #                define         NV10_PRIMITIVE_2D_SET_POINT_X_MASK      0x0000ffff
1861 #                define         NV10_PRIMITIVE_2D_SET_POINT_Y_MASK      0xffff0000
1862 #                define         NV10_PRIMITIVE_2D_SET_POINT_Y_SHIFT     16
1863 #       define          NV10_PRIMITIVE_2D_SET_SIZE                              0x00000308
1864 #                define         NV10_PRIMITIVE_2D_SET_SIZE_WIDTH_MASK   0x0000ffff
1865 #                define         NV10_PRIMITIVE_2D_SET_SIZE_HEIGHT_MASK  0xffff0000
1866 #                define         NV10_PRIMITIVE_2D_SET_SIZE_HEIGHT_SHIFT 16
1867 #       define          NV10_PRIMITIVE_2D_SET_CLIP_HORIZ                        0x0000030c
1868 #                define         NV10_PRIMITIVE_2D_SET_CLIP_HORIZ_WIDTH_MASK     0xffff0000
1869 #                define         NV10_PRIMITIVE_2D_SET_CLIP_HORIZ_WIDTH_SHIFT    16
1870 #                define         NV10_PRIMITIVE_2D_SET_CLIP_HORIZ_X_MASK 0x0000ffff
1871 #       define          NV10_PRIMITIVE_2D_SET_CLIP_VERT                         0x00000310
1872 #                define         NV10_PRIMITIVE_2D_SET_CLIP_VERT_HEIGHT_MASK     0xffff0000
1873 #                define         NV10_PRIMITIVE_2D_SET_CLIP_VERT_HEIGHT_SHIFT    16
1874 #                define         NV10_PRIMITIVE_2D_SET_CLIP_VERT_Y_MASK  0x0000ffff
1875 #       define          NV10_PRIMITIVE_2D_SET_DATA( d)                          (0x00000400 + (d) * 0x0004)
1876
1877 /****************************************** 
1878 Object NV10_VIDEO_DISPLAY used on: NV10 NV15 NV20 NV30 NV40 G70
1879 */
1880 #define                 NV10_VIDEO_DISPLAY                                      0x0000007c
1881 #       define          NV10_VIDEO_DISPLAY_COUNTER                              0x00000050
1882 #       define          NV10_VIDEO_DISPLAY_SET_DMA_FROM_MEMORY                  0x00000180
1883 #       define          NV10_VIDEO_DISPLAY_SET_DMA_IN_MEMORY0                   0x00000184
1884 #       define          NV10_VIDEO_DISPLAY_SET_DMA_IN_MEMORY1                   0x00000188
1885 #       define          NV10_VIDEO_DISPLAY_SET_OBJECT3                          0x0000019c
1886 #       define          NV10_VIDEO_DISPLAY_SIZE                                 0x000002f8
1887 #                define         NV10_VIDEO_DISPLAY_SIZE_HEIGHT_MASK     0xffff0000
1888 #                define         NV10_VIDEO_DISPLAY_SIZE_HEIGHT_SHIFT    16
1889 #                define         NV10_VIDEO_DISPLAY_SIZE_WIDTH_MASK      0x0000ffff
1890 #       define          NV10_VIDEO_DISPLAY_OFFSET                               0x00000300
1891
1892 /****************************************** 
1893 Object NV10_UNK0072 used on: NV10 NV15 NV20 NV40 G70
1894 */
1895 #define                 NV10_UNK0072                                            0x00000072
1896 #       define          NV10_UNK0072_COUNTER                                    0x00000050
1897 #       define          NV40_UNK0072_SET_OBJECT                                 0x00000060
1898 #       define          NV10_UNK0072_SET_DMA_NOTIFY                             0x00000180
1899
1900 /****************************************** 
1901 Object NV10_SCALED_IMAGE_FROM_MEMORY used on: NV10 NV15 NV20 NV30 NV40 G70
1902 */
1903 #define                 NV10_SCALED_IMAGE_FROM_MEMORY                           0x00000089
1904 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_COUNTER                   0x00000050
1905 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_SET_DMA_IN_MEMORY         0x00000184
1906 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_SET_RASTER_OP             0x0000018c
1907 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_SET_IMAGE_PATTERN         0x00000188
1908 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_SET_SURFACE               0x00000198
1909 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_OPERATION                 0x00000304
1910 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_POS                  0x00000308
1911 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_X_MASK   0x0000ffff
1912 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_Y_MASK   0xffff0000
1913 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_POS_Y_SHIFT  16
1914 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE                 0x0000030c
1915 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_WIDTH_MASK      0x0000ffff
1916 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_HEIGHT_MASK     0xffff0000
1917 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_HEIGHT_SHIFT    16
1918 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_OUT_POS                   0x00000310
1919 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_POS_X_MASK    0x0000ffff
1920 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_POS_Y_MASK    0xffff0000
1921 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_POS_Y_SHIFT   16
1922 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE                  0x00000314
1923 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_WIDTH_MASK       0x0000ffff
1924 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_HEIGHT_MASK      0xffff0000
1925 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_HEIGHT_SHIFT     16
1926 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_SIZE                      0x00000400
1927 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_SIZE_WIDTH_MASK   0x0000ffff
1928 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_SIZE_HEIGHT_MASK  0xffff0000
1929 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_SIZE_HEIGHT_SHIFT 16
1930 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_FORMAT                    0x00000404
1931 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_MASK 0x0000ffff
1932 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_OFFSET                    0x00000408
1933 #       define          NV10_SCALED_IMAGE_FROM_MEMORY_POINT                     0x0000040c
1934 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_U_INT_MASK  0xfff00000
1935 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_U_INT_SHIFT 20
1936 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_U_FRAC_MUL_0X10_MASK        0x000f0000
1937 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_U_FRAC_MUL_0X10_SHIFT       16
1938 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_V_INT_MASK  0x0000fff0
1939 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_V_INT_SHIFT 4
1940 #                define         NV10_SCALED_IMAGE_FROM_MEMORY_POINT_V_FRAC_MUL_0X10_MASK        0x0000000f
1941
1942 /****************************************** 
1943 Object NV10_CONTEXT_SURFACES_2D used on: NV10 NV15 NV20 NV30 NV40 G70
1944 */
1945 #define                 NV10_CONTEXT_SURFACES_2D                                0x00000062
1946 #       define          NV10_CONTEXT_SURFACES_2D_SET_DMA_NOTIFY                 0x00000180
1947 #       define          NV10_CONTEXT_SURFACES_2D_SET_DMA_IN_MEMORY0             0x00000184
1948 #       define          NV10_CONTEXT_SURFACES_2D_SET_DMA_IN_MEMORY1             0x00000188
1949 #       define          NV10_CONTEXT_SURFACES_2D_FORMAT                         0x00000300
1950 #                define         NV10_CONTEXT_SURFACES_2D_FORMAT_COLOR_MASK      0x000000ff
1951 #                define         NV10_CONTEXT_SURFACES_2D_FORMAT_TYPE_MASK       0x0000ff80
1952 #                define         NV10_CONTEXT_SURFACES_2D_FORMAT_TYPE_SHIFT      7
1953 #                define NV10_CONTEXT_SURFACES_2D_FORMAT_TYPE_pitch      0x0001
1954 #                define NV10_CONTEXT_SURFACES_2D_FORMAT_TYPE_swizzle    0x0002
1955 #                define         NV10_CONTEXT_SURFACES_2D_FORMAT_WIDTH_MASK      0x00ff0000
1956 #                define         NV10_CONTEXT_SURFACES_2D_FORMAT_WIDTH_SHIFT     16
1957 #                define         NV10_CONTEXT_SURFACES_2D_FORMAT_HEIGHT_MASK     0xff000000
1958 #                define         NV10_CONTEXT_SURFACES_2D_FORMAT_HEIGHT_SHIFT    24
1959 #       define          NV10_CONTEXT_SURFACES_2D_PITCH                          0x00000304
1960 #                define         NV10_CONTEXT_SURFACES_2D_PITCH_SRC_MASK 0x0000ffff
1961 #                define         NV10_CONTEXT_SURFACES_2D_PITCH_DST_MASK 0xffff0000
1962 #                define         NV10_CONTEXT_SURFACES_2D_PITCH_DST_SHIFT        16
1963 #       define          NV10_CONTEXT_SURFACES_2D_OFFSET_SRC                     0x00000308
1964 #       define          NV10_CONTEXT_SURFACES_2D_OFFSET_DST                     0x0000030c
1965
1966 /****************************************** 
1967 Object NV04_CONTEXT_SURFACES_2D used on: NV04 NV10 NV15 
1968 */
1969 #define                 NV04_CONTEXT_SURFACES_2D                                0x00000042
1970 #       define          NV04_CONTEXT_SURFACES_2D_NOTIFY                         0x00000104
1971 #       define          NV04_CONTEXT_SURFACES_2D_SET_DMA_NOTIFY                 0x00000180
1972 #       define          NV04_CONTEXT_SURFACES_2D_SET_DMA_IMAGE_SRC              0x00000184
1973 #       define          NV04_CONTEXT_SURFACES_2D_SET_DMA_IMAGE_DST              0x00000188
1974 #       define          NV04_CONTEXT_SURFACES_2D_FORMAT                         0x00000300
1975 #       define          NV04_CONTEXT_SURFACES_2D_PITCH                          0x00000304
1976 #                define         NV04_CONTEXT_SURFACES_2D_PITCH_SRC_MASK 0x0000ffff
1977 #                define         NV04_CONTEXT_SURFACES_2D_PITCH_DST_MASK 0xffff0000
1978 #                define         NV04_CONTEXT_SURFACES_2D_PITCH_DST_SHIFT        16
1979 #       define          NV04_CONTEXT_SURFACES_2D_OFFSET_SRC                     0x00000308
1980 #       define          NV04_CONTEXT_SURFACES_2D_OFFSET_DST                     0x0000030c
1981
1982 /****************************************** 
1983 Object NV04_IMAGE_PATTERN used on: NV04 NV10 NV15 NV20 NV30 NV40 G70
1984 */
1985 #define                 NV04_IMAGE_PATTERN                                      0x00000044
1986 #       define          NV04_IMAGE_PATTERN_COLOR_FORMAT                         0x00000300
1987 #       define          NV04_IMAGE_PATTERN_MONO_FORMAT                          0x00000304
1988 #       define          NV04_IMAGE_PATTERN_SELECT                               0x0000030c
1989 #       define          NV04_IMAGE_PATTERN_MONOCHROME_SHAPE                     0x00000308
1990 #       define          NV04_IMAGE_PATTERN_MONOCHROME_COLOR0                    0x00000310
1991 #       define          NV04_IMAGE_PATTERN_MONOCHROME_COLOR1                    0x00000314
1992 #       define          NV04_IMAGE_PATTERN_MONOCHROME_PATTERN0                  0x00000318
1993 #       define          NV04_IMAGE_PATTERN_MONOCHROME_PATTERN1                  0x0000031c
1994
1995 /****************************************** 
1996 Object NV20_SWIZZLED_SURFACE used on: NV20 NV30 NV40 G70
1997 */
1998 #define                 NV20_SWIZZLED_SURFACE                                   0x0000009e
1999 #       define          NV20_SWIZZLED_SURFACE_SET_OBJECT0                       0x00000180
2000 #       define          NV20_SWIZZLED_SURFACE_SET_OBJECT1                       0x00000184
2001 #       define          NV20_SWIZZLED_SURFACE_FORMAT                            0x00000300
2002 #                define         NV20_SWIZZLED_SURFACE_FORMAT_LOG2_HEIGHT_MASK   0xff000000
2003 #                define         NV20_SWIZZLED_SURFACE_FORMAT_LOG2_HEIGHT_SHIFT  24
2004 #                define         NV20_SWIZZLED_SURFACE_FORMAT_LOG2_WIDTH_MASK    0x00ff0000
2005 #                define         NV20_SWIZZLED_SURFACE_FORMAT_LOG2_WIDTH_SHIFT   16
2006 #                define         NV20_SWIZZLED_SURFACE_FORMAT_COLOR_MASK 0x0000ffff
2007 #       define          NV20_SWIZZLED_SURFACE_OFFSET                            0x00000304
2008
2009 /****************************************** 
2010 Object NV20_TCL_PRIMITIVE_3D used on: NV20 
2011 */
2012 #define                 NV20_TCL_PRIMITIVE_3D                                   0x00000097
2013 #       define          NV20_TCL_PRIMITIVE_3D_NOP                               0x00000100
2014 #       define          NV20_TCL_PRIMITIVE_3D_NOTIFY                            0x00000104
2015 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT0                       0x00000180
2016 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT1                       0x00000184
2017 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT2                       0x00000188
2018 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT3                       0x00000194
2019 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT4                       0x00000198
2020 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT5                       0x0000019c
2021 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT6                       0x000001a0
2022 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT7                       0x000001a4
2023 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT8                       0x000001a8
2024 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT9                       0x000001ac
2025 #       define          NV20_TCL_PRIMITIVE_3D_SET_OBJECT10                      0x000001b0
2026 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ                    0x00000200
2027 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_WIDTH_MASK 0xffff0000
2028 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_WIDTH_SHIFT        16
2029 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_HORIZ_X_MASK     0x0000ffff
2030 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_VERT                     0x00000204
2031 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_VERT_HEIGHT_MASK 0xffff0000
2032 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_VERT_HEIGHT_SHIFT        16
2033 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_VERT_Y_MASK      0x0000ffff
2034 #       define          NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT                     0x00000208
2035 #                define         NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_MASK   0x0000ff00
2036 #                define         NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_SHIFT  8
2037 #                define NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_pitch  0x0001
2038 #                define NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT_TYPE_swizzle        0x0002
2039 #                define         NV20_TCL_PRIMITIVE_3D_BUFFER_FORMAT_COLOR_MASK  0x000000ff
2040 #       define          NV20_TCL_PRIMITIVE_3D_BUFFER_PITCH                      0x0000020c
2041 #                define         NV20_TCL_PRIMITIVE_3D_BUFFER_PITCH_ZS_PITCH_MASK        0xffff0000
2042 #                define         NV20_TCL_PRIMITIVE_3D_BUFFER_PITCH_ZS_PITCH_SHIFT       16
2043 #                define         NV20_TCL_PRIMITIVE_3D_BUFFER_PITCH_COLOR_PITCH_MASK     0x0000ffff
2044 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_OFFSET                      0x00000210
2045 #       define          NV20_TCL_PRIMITIVE_3D_DEPTH_OFFSET                      0x00000214
2046 #       define          NV20_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH            0x0000022c
2047 #                define         NV20_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH_PITCH_MASK 0x0000ffff
2048 #       define          NV20_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_OFFSET           0x00000230
2049 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_CONTROL                     0x00000294
2050 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL            0x00000298
2051 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_SPECULAR_MASK 0x00004000
2052 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_SPECULAR      (1 << 14)
2053 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_SPECULAR_TRUE 0x0001
2054 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_SPECULAR_FALSE        0x0000
2055 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_AMBIENT_MASK  0x00001000
2056 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_AMBIENT       (1 << 12)
2057 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_AMBIENT_TRUE  0x0001
2058 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_AMBIENT_FALSE 0x0000
2059 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_DIFFUSE_MASK  0x00000400
2060 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_DIFFUSE       (1 << 10)
2061 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_DIFFUSE_TRUE  0x0001
2062 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_DIFFUSE_FALSE 0x0000
2063 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_EMISSION_MASK 0x00000100
2064 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_EMISSION      (1 << 8)
2065 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_EMISSION_TRUE 0x0001
2066 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_BACK_EMISSION_FALSE        0x0000
2067 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_SPECULAR_MASK        0x00000040
2068 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_SPECULAR     (1 << 6)
2069 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_SPECULAR_TRUE        0x0001
2070 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_SPECULAR_FALSE       0x0000
2071 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_AMBIENT_MASK 0x00000010
2072 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_AMBIENT      (1 << 4)
2073 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_AMBIENT_TRUE 0x0001
2074 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_AMBIENT_FALSE        0x0000
2075 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_DIFFUSE_MASK 0x00000004
2076 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_DIFFUSE      (1 << 2)
2077 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_DIFFUSE_TRUE 0x0001
2078 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_DIFFUSE_FALSE        0x0000
2079 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_CONTROL_FRONT_EMISSION_MASK        0x00000001
2080 #       define          NV20_TCL_PRIMITIVE_3D_FOG_MODE                          0x0000029c
2081 #       define          NV20_TCL_PRIMITIVE_3D_FOG_COORD_DIST                    0x000002a0
2082 #       define          NV20_TCL_PRIMITIVE_3D_FOG_ENABLE                        0x000002a4
2083 #       define          NV20_TCL_PRIMITIVE_3D_FOG_COLOR                         0x000002a8
2084 #                define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_A_MASK  0xff000000
2085 #                define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_A_SHIFT 24
2086 #                define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_B_MASK  0x00ff0000
2087 #                define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_B_SHIFT 16
2088 #                define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_G_MASK  0x0000ff00
2089 #                define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_G_SHIFT 8
2090 #                define         NV20_TCL_PRIMITIVE_3D_FOG_COLOR_R_MASK  0x000000ff
2091 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_MODE                0x000002b4
2092 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(d)            (0x000002c0 + (d) * 0x0004)
2093 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_MASK       0xffff0000
2094 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_SHIFT      16
2095 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X1_MASK       0x0000ffff
2096 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT(d)             (0x000002e0 + (d) * 0x0004)
2097 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_MASK        0xffff0000
2098 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_SHIFT       16
2099 #                define         NV20_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y1_MASK        0x0000ffff
2100 #       define          NV20_TCL_PRIMITIVE_3D_ALPHA_FUNC_ENABLE                 0x00000300
2101 #       define          NV20_TCL_PRIMITIVE_3D_BLEND_FUNC_ENABLE                 0x00000304
2102 #       define          NV20_TCL_PRIMITIVE_3D_CULL_FACE_ENABLE                  0x00000308
2103 #       define          NV20_TCL_PRIMITIVE_3D_DEPTH_TEST_ENABLE                 0x0000030c
2104 #       define          NV20_TCL_PRIMITIVE_3D_DITHER_ENABLE                     0x00000310
2105 #       define          NV20_TCL_PRIMITIVE_3D_LIGHTING_ENABLE                   0x00000314
2106 #       define          NV20_TCL_PRIMITIVE_3D_POINT_SMOOTH_ENABLE               0x0000031c
2107 #       define          NV20_TCL_PRIMITIVE_3D_POINT_PARAMETERS_ENABLE           0x00000318
2108 #       define          NV20_TCL_PRIMITIVE_3D_LINE_SMOOTH_ENABLE                0x00000320
2109 #       define          NV20_TCL_PRIMITIVE_3D_POLYGON_SMOOTH_ENABLE             0x00000324
2110 #       define          NV20_TCL_PRIMITIVE_3D_STENCIL_ENABLE                    0x0000032c
2111 #       define          NV20_TCL_PRIMITIVE_3D_POLYGON_OFFSET_POINT_ENABLE       0x00000330
2112 #       define          NV20_TCL_PRIMITIVE_3D_POLYGON_OFFSET_LINE_ENABLE        0x00000334
2113 #       define          NV20_TCL_PRIMITIVE_3D_POLYGON_OFFSET_FILL_ENABLE        0x00000338
2114 #       define          NV20_TCL_PRIMITIVE_3D_ALPHA_FUNC_FUNC                   0x0000033c
2115 #       define          NV20_TCL_PRIMITIVE_3D_ALPHA_FUNC_REF                    0x00000340
2116 #       define          NV20_TCL_PRIMITIVE_3D_BLEND_FUNC_SRC                    0x00000344
2117 #       define          NV20_TCL_PRIMITIVE_3D_BLEND_FUNC_DST                    0x00000348
2118 #       define          NV20_TCL_PRIMITIVE_3D_BLEND_COLOR                       0x0000034c
2119 #                define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_A_MASK        0xff000000
2120 #                define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_A_SHIFT       24
2121 #                define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_R_MASK        0x00ff0000
2122 #                define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_R_SHIFT       16
2123 #                define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_G_MASK        0x0000ff00
2124 #                define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_G_SHIFT       8
2125 #                define         NV20_TCL_PRIMITIVE_3D_BLEND_COLOR_B_MASK        0x000000ff
2126 #       define          NV20_TCL_PRIMITIVE_3D_BLEND_EQUATION                    0x00000350
2127 #       define          NV20_TCL_PRIMITIVE_3D_DEPTH_FUNC                        0x00000354
2128 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_MASK                        0x00000358
2129 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_A_MASK 0xff000000
2130 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_A_SHIFT        24
2131 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_A_TRUE 0x0001
2132 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_A_FALSE        0x0000
2133 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_R_MASK 0x00ff0000
2134 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_R_SHIFT        16
2135 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_R_TRUE 0x0001
2136 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_R_FALSE        0x0000
2137 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_G_MASK 0x0000ff00
2138 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_G_SHIFT        8
2139 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_G_TRUE 0x0001
2140 #                define NV20_TCL_PRIMITIVE_3D_COLOR_MASK_G_FALSE        0x0000
2141 #                define         NV20_TCL_PRIMITIVE_3D_COLOR_MASK_B_MASK 0x000000ff
2142 #       define          NV20_TCL_PRIMITIVE_3D_DEPTH_WRITE_ENABLE                0x0000035c
2143 #       define          NV20_TCL_PRIMITIVE_3D_STENCIL_MASK                      0x00000360
2144 #       define          NV20_TCL_PRIMITIVE_3D_STENCIL_FUNC_FUNC                 0x00000364
2145 #       define          NV20_TCL_PRIMITIVE_3D_STENCIL_FUNC_REF                  0x00000368
2146 #       define          NV20_TCL_PRIMITIVE_3D_STENCIL_FUNC_MASK                 0x0000036c
2147 #       define          NV20_TCL_PRIMITIVE_3D_STENCIL_OP_FAIL                   0x00000370
2148 #       define          NV20_TCL_PRIMITIVE_3D_STENCIL_OP_ZFAIL                  0x00000374
2149 #       define          NV20_TCL_PRIMITIVE_3D_STENCIL_OP_ZPASS                  0x00000378
2150 #       define          NV20_TCL_PRIMITIVE_3D_SHADE_MODEL                       0x0000037c
2151 #       define          NV20_TCL_PRIMITIVE_3D_LINE_WIDTH                        0x00000380
2152 #       define          NV20_TCL_PRIMITIVE_3D_POLYGON_OFFSET_FACTOR             0x00000384
2153 #       define          NV20_TCL_PRIMITIVE_3D_POLYGON_OFFSET_UNITS              0x00000388
2154 #       define          NV20_TCL_PRIMITIVE_3D_POLYGON_MODE_FRONT                0x0000038c
2155 #       define          NV20_TCL_PRIMITIVE_3D_POLYGON_MODE_BACK                 0x00000390
2156 #       define          NV20_TCL_PRIMITIVE_3D_DEPTH_RANGE_NEAR                  0x00000394
2157 #       define          NV20_TCL_PRIMITIVE_3D_DEPTH_RANGE_FAR                   0x00000398
2158 #       define          NV20_TCL_PRIMITIVE_3D_CULL_FACE                         0x0000039c
2159 #       define          NV20_TCL_PRIMITIVE_3D_FRONT_FACE                        0x000003a0
2160 #       define          NV20_TCL_PRIMITIVE_3D_NORMALIZE_ENABLE                  0x000003a4
2161 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_R            0x000003a8
2162 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_G            0x000003ac
2163 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_B            0x000003b0
2164 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_A            0x000003b4
2165 #       define          NV20_TCL_PRIMITIVE_3D_SEPARATE_SPECULAR_ENABLE          0x000003b8
2166 #       define          NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS                    0x000003bc
2167 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_MASK       0x00002000
2168 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7    (1 << 13)
2169 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_TRUE       0x0001
2170 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_FALSE      0x0000
2171 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_MASK       0x00008000
2172 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6    (1 << 15)
2173 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_TRUE       0x0001
2174 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_FALSE      0x0000
2175 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_MASK       0x00000200
2176 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5    (1 << 9)
2177 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_TRUE       0x0001
2178 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_FALSE      0x0000
2179 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_MASK       0x00000800
2180 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4    (1 << 11)
2181 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_TRUE       0x0001
2182 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_FALSE      0x0000
2183 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_MASK       0x00000020
2184 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3    (1 << 5)
2185 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_TRUE       0x0001
2186 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_FALSE      0x0000
2187 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_MASK       0x00000080
2188 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2    (1 << 7)
2189 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_TRUE       0x0001
2190 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_FALSE      0x0000
2191 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_MASK       0x00000002
2192 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1    1 // Nothing to shift
2193 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_TRUE       0x0001
2194 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_FALSE      0x0000
2195 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0_MASK       0x00000008
2196 #                define         NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0    (1 << 3)
2197 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0_TRUE       0x0001
2198 #                define NV20_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0_FALSE      0x0000
2199 #       define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE(d)              (0x000003c0 + (d) * 0x0004)
2200 #       define          NV20_TCL_PRIMITIVE_3D_TX_MATRIX_ENABLE(d)               (0x00000420 + (d) * 0x0004)
2201 #       define          NV20_TCL_PRIMITIVE_3D_POINT_SIZE                        0x0000043c
2202 #       define          NV20_TCL_PRIMITIVE_3D_MODELVIEW_MATRIX( d)              (0x00000480 + (d) * 0x0004)
2203 #       define          NV20_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW_MATRIX( d)      (0x00000580 + (d) * 0x0004)
2204 #       define          NV20_TCL_PRIMITIVE_3D_PROJECTION_MATRIX( d)             (0x00000680 + (d) * 0x0004)
2205 #       define          NV20_TCL_PRIMITIVE_3D_TX_MATRIX(x,y)                    (0x000006c0 + (y) * 0x0010 + (x) * 0x0004)
2206 #       define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_A(d)                   (0x00000840 + (d) * 0x0010)
2207 #       define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_B(d)                   (0x00000844 + (d) * 0x0010)
2208 #       define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_C(d)                   (0x00000848 + (d) * 0x0010)
2209 #       define          NV20_TCL_PRIMITIVE_3D_CLIP_PLANE_D(d)                   (0x0000084c + (d) * 0x0010)
2210 #       define          NV20_TCL_PRIMITIVE_3D_FOG_EQUATION_CONSTANT             0x000009c0
2211 #       define          NV20_TCL_PRIMITIVE_3D_FOG_EQUATION_LINEAR               0x000009c4
2212 #       define          NV20_TCL_PRIMITIVE_3D_FOG_EQUATION_QUADRATIC            0x000009c8
2213 #       define          NV20_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_A        0x000009e0
2214 #       define          NV20_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_B        0x000009e4
2215 #       define          NV20_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_C        0x000009e8
2216 #       define          NV20_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_D        0x000009ec
2217 #       define          NV20_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_E        0x000009f0
2218 #       define          NV20_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_F        0x000009f4
2219 #       define          NV20_TCL_PRIMITIVE_3D_POINT_SPRITE                      0x00000a1c
2220 #                define         NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_MASK   0x00000800
2221 #                define         NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE        (1 << 11)
2222 #                define NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_TRUE   0x0001
2223 #                define NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_FALSE  0x0000
2224 #                define         NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_MASK  0x00000006
2225 #                define         NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_SHIFT 1
2226 #                define NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_ZERO       0x0000
2227 #                define NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_R  0x0001
2228 #                define NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_S  0x0002
2229 #                define         NV20_TCL_PRIMITIVE_3D_POINT_SPRITE_ENABLE_MASK  0x00000001
2230 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_OX                       0x00000a20
2231 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_OY                       0x00000a24
2232 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_DEPTH_AVG_S              0x00000a28
2233 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_UNKNOWN_A                0x00000a2c
2234 #       define          NV20_TCL_PRIMITIVE_3D_POINT_PARAMETER_A                 0x00000a30
2235 #       define          NV20_TCL_PRIMITIVE_3D_POINT_PARAMETER_B                 0x00000a34
2236 #       define          NV20_TCL_PRIMITIVE_3D_POINT_PARAMETER_C                 0x00000a38
2237 #       define          NV20_TCL_PRIMITIVE_3D_POINT_PARAMETER_D                 0x00000a3c
2238 #       define          NV20_TCL_PRIMITIVE_3D_POINT_PARAMETER_E                 0x00000a40
2239 #       define          NV20_TCL_PRIMITIVE_3D_POINT_PARAMETER_F                 0x00000a44
2240 #       define          NV20_TCL_PRIMITIVE_3D_POINT_PARAMETER_G                 0x00000a48
2241 #       define          NV20_TCL_PRIMITIVE_3D_POINT_PARAMETER_H                 0x00000a4c
2242 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_PX_DIV2                  0x00000af0
2243 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_PY_DIV2                  0x00000af4
2244 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_DEPTH_HALF_S             0x00000af8
2245 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_UNKNOWN_B                0x00000afc
2246 #       define          NV20_TCL_PRIMITIVE_3D_VP_UPLOAD_INST0                   0x00000b00
2247 #       define          NV20_TCL_PRIMITIVE_3D_VP_UPLOAD_INST1                   0x00000b04
2248 #       define          NV20_TCL_PRIMITIVE_3D_VP_UPLOAD_INST2                   0x00000b08
2249 #       define          NV20_TCL_PRIMITIVE_3D_VP_UPLOAD_INST3                   0x00000b0c
2250 #       define          NV20_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_X                 0x00000b80
2251 #       define          NV20_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_Y                 0x00000b84
2252 #       define          NV20_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_Z                 0x00000b88
2253 #       define          NV20_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_W                 0x00000b8c
2254 #       define          NV20_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_ID                0x00001ea4
2255 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R    0x00000a10
2256 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G    0x00000a14
2257 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B    0x00000a18
2258 #       define          NV20_TCL_PRIMITIVE_3D_TX_OFFSET(d)                      (0x00001b00 + (d) * 0x0040)
2259 #       define          NV20_TCL_PRIMITIVE_3D_TX_FORMAT(d)                      (0x00001b04 + (d) * 0x0040)
2260 #                define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_HEIGHT_MASK        0x0f000000
2261 #                define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_HEIGHT_SHIFT       24
2262 #                define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_WIDTH_MASK 0x00f00000
2263 #                define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOG2_WIDTH_SHIFT        20
2264 #                define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOD_MASK        0x000f0000
2265 #                define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_LOD_SHIFT       16
2266 #                define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_MASK     0x0000ff00
2267 #                define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_SHIFT    8
2268 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8       0x0000
2269 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8       0x0001
2270 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R5G5B5A1 0x0002
2271 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8_RECT  0x0003
2272 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R4G4B4A4 0x0004
2273 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R8G8B8A8 0x0006
2274 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_INDEX8   0x000b
2275 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT1     0x000c
2276 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT3     0x000e
2277 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_DXT5     0x000f
2278 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R5G5B5A1_RECT    0x0010
2279 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R8G8B8A8_RECT    0x0012
2280 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8_RECT  0x0013
2281 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8A8     0x001a
2282 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_A8_RECT_2        0x001b
2283 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_R4G4B4A4_RECT    0x001d
2284 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_FORMAT_L8A8_RECT        0x0020
2285 #                define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_MASK   0x00000004
2286 #                define         NV20_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP        (1 << 2)
2287 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_TRUE   0x0001
2288 #                define NV20_TCL_PRIMITIVE_3D_TX_FORMAT_CUBE_MAP_FALSE  0x0000
2289 #       define          NV20_TCL_PRIMITIVE_3D_TX_WRAP(d)                        (0x00001b08 + (d) * 0x0040)
2290 #                define         NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_S_MASK       0x000000ff
2291 #                define         NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_MASK       0x0000ff00
2292 #                define         NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_SHIFT      8
2293 #                define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_REPEAT     0x0001
2294 #                define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_MIRRORED_REPEAT    0x0002
2295 #                define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_CLAMP_TO_EDGE      0x0003
2296 #                define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_CLAMP_TO_BORDER    0x0004
2297 #                define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_T_CLAMP      0x0005
2298 #                define         NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_MASK       0x00ff0000
2299 #                define         NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_SHIFT      16
2300 #                define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_REPEAT     0x0001
2301 #                define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_MIRRORED_REPEAT    0x0002
2302 #                define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_CLAMP_TO_EDGE      0x0003
2303 #                define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_CLAMP_TO_BORDER    0x0004
2304 #                define NV20_TCL_PRIMITIVE_3D_TX_WRAP_WRAP_R_CLAMP      0x0005
2305 #       define          NV20_TCL_PRIMITIVE_3D_TX_ENABLE(d)                      (0x00001b0c + (d) * 0x0040)
2306 #                define         NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_MASK     0x40000000
2307 #                define         NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE  (1 << 30)
2308 #                define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_TRUE     0x0001
2309 #                define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ENABLE_FALSE    0x0000
2310 #                define         NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_MASK 0x00000030
2311 #                define         NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_SHIFT        4
2312 #                define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_1    0x0000
2313 #                define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_2    0x0001
2314 #                define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_4    0x0002
2315 #                define NV20_TCL_PRIMITIVE_3D_TX_ENABLE_ANISOTROPY_8    0x0003
2316 #       define          NV20_TCL_PRIMITIVE_3D_TX_NPOT_PITCH(d)                  (0x00001b10 + (d) * 0x0040)
2317 #                define         NV20_TCL_PRIMITIVE_3D_TX_NPOT_PITCH_PITCH_MASK  0xffff0000
2318 #                define         NV20_TCL_PRIMITIVE_3D_TX_NPOT_PITCH_PITCH_SHIFT 16
2319 #       define          NV20_TCL_PRIMITIVE_3D_TX_FILTER(d)                      (0x00001b14 + (d) * 0x0040)
2320 #                define         NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_MASK 0xff000000
2321 #                define         NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_SHIFT        24
2322 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST      0x0001
2323 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR       0x0002
2324 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST_MIPMAP_NEAREST       0x0003
2325 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR_MIPMAP_NEAREST        0x0004
2326 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_NEAREST_MIPMAP_LINEAR        0x0005
2327 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MAG_FILTER_LINEAR_MIPMAP_LINEAR 0x0006
2328 #                define         NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_MASK 0x00ff0000
2329 #                define         NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_SHIFT        16
2330 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST      0x0001
2331 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR       0x0002
2332 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST_MIPMAP_NEAREST       0x0003
2333 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR_MIPMAP_NEAREST        0x0004
2334 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_NEAREST_MIPMAP_LINEAR        0x0005
2335 #                define NV20_TCL_PRIMITIVE_3D_TX_FILTER_MIN_FILTER_LINEAR_MIPMAP_LINEAR 0x0006
2336 #       define          NV20_TCL_PRIMITIVE_3D_TX_NPOT_SIZE(d)                   (0x00001b1c + (d) * 0x0040)
2337 #                define         NV20_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_WIDTH_MASK   0xffff0000
2338 #                define         NV20_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_WIDTH_SHIFT  16
2339 #                define         NV20_TCL_PRIMITIVE_3D_TX_NPOT_SIZE_HEIGHT_MASK  0x0000ffff
2340 #       define          NV20_TCL_PRIMITIVE_3D_TX_PALETTE_OFFSET(d)              (0x00001b20 + (d) * 0x0040)
2341 #       define          NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR(d)                (0x00001b24 + (d) * 0x0040)
2342 #                define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_A_MASK    0xff000000
2343 #                define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_A_SHIFT   24
2344 #                define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_A_TRUE    0x0001
2345 #                define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_A_FALSE   0x0000
2346 #                define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_R_MASK    0x00ff0000
2347 #                define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_R_SHIFT   16
2348 #                define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_R_TRUE    0x0001
2349 #                define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_R_FALSE   0x0000
2350 #                define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_G_MASK    0x0000ff00
2351 #                define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_G_SHIFT   8
2352 #                define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_G_TRUE    0x0001
2353 #                define NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_G_FALSE   0x0000
2354 #                define         NV20_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_B_MASK    0x000000ff
2355 #       define          NV20_TCL_PRIMITIVE_3D_RC_ENABLE                         0x00001e60
2356 #                define         NV20_TCL_PRIMITIVE_3D_RC_ENABLE_NUMBER_OF_RC_ENABLED_MASK       0x0000000f
2357 #       define          NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP                      0x00001e70
2358 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP0_MASK     0x0000001f
2359 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_MASK     0x000003e0
2360 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_SHIFT    5
2361 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_NONE     0x0000
2362 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_TEXTURE_2D       0x0001
2363 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_PASS_THROUGH     0x0004
2364 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_CULL_FRAGMENT    0x0005
2365 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_DOT_PRODUCT_TEXTURE_2D   0x0009
2366 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_DEPENDANT_AR     0x000f
2367 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_DEPENDANT_GB     0x0010
2368 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP1_DOT_PRODUCT      0x0011
2369 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_MASK     0x00007c00
2370 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_SHIFT    10
2371 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_NONE     0x0000
2372 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_TEXTURE_2D       0x0001
2373 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_PASS_THROUGH     0x0004
2374 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_CULL_FRAGMENT    0x0005
2375 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_DOT_PRODUCT_TEXTURE_2D   0x0009
2376 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_DEPENDANT_AR     0x000f
2377 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_DEPENDANT_GB     0x0010
2378 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP2_DOT_PRODUCT      0x0011
2379 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_MASK     0x000f8000
2380 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_SHIFT    15
2381 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_NONE     0x0000
2382 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_TEXTURE_2D       0x0001
2383 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_PASS_THROUGH     0x0004
2384 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_CULL_FRAGMENT    0x0005
2385 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_DOT_PRODUCT_TEXTURE_2D   0x0009
2386 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_DEPENDANT_AR     0x000f
2387 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_DEPENDANT_GB     0x0010
2388 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_OP_OP3_DOT_PRODUCT      0x0011
2389 #       define          NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE               0x000017f8
2390 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL0_MASK    0x0000000f
2391 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_MASK    0x000000f0
2392 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_SHIFT   4
2393 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_gggg    0x0000
2394 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_lggg    0x0001
2395 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_glgg    0x0002
2396 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_llgg    0x0003
2397 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_gglg    0x0004
2398 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_lglg    0x0005
2399 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_gllg    0x0006
2400 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_lllg    0x0007
2401 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_gggl    0x0008
2402 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_lggl    0x0009
2403 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_glgl    0x000a
2404 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_llgl    0x000b
2405 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_ggll    0x000c
2406 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_lgll    0x000d
2407 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_glll    0x000e
2408 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL1_llll    0x000f
2409 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_MASK    0x00000f00
2410 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_SHIFT   8
2411 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_gggg    0x0000
2412 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_lggg    0x0001
2413 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_glgg    0x0002
2414 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_llgg    0x0003
2415 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_gglg    0x0004
2416 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_lglg    0x0005
2417 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_gllg    0x0006
2418 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_lllg    0x0007
2419 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_gggl    0x0008
2420 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_lggl    0x0009
2421 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_glgl    0x000a
2422 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_llgl    0x000b
2423 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_ggll    0x000c
2424 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_lgll    0x000d
2425 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_glll    0x000e
2426 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL2_llll    0x000f
2427 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_MASK    0x0000f000
2428 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_SHIFT   12
2429 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_gggg    0x0000
2430 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_lggg    0x0001
2431 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_glgg    0x0002
2432 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_llgg    0x0003
2433 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_gglg    0x0004
2434 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_lglg    0x0005
2435 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_gllg    0x0006
2436 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_lllg    0x0007
2437 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_gggl    0x0008
2438 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_lggl    0x0009
2439 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_glgl    0x000a
2440 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_llgl    0x000b
2441 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_ggll    0x000c
2442 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_lgll    0x000d
2443 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_glll    0x000e
2444 #                define NV20_TCL_PRIMITIVE_3D_TX_SHADER_CULL_MODE_CULL3_llll    0x000f
2445 #       define          NV20_TCL_PRIMITIVE_3D_TX_SHADER_PREVIOUS                0x00001e78
2446 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_PREVIOUS_PREV2_MASK     0x00030000
2447 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_PREVIOUS_PREV2_SHIFT    16
2448 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_PREVIOUS_PREV3_MASK     0x00300000
2449 #                define         NV20_TCL_PRIMITIVE_3D_TX_SHADER_PREVIOUS_PREV3_SHIFT    20
2450 #       define          NV20_TCL_PRIMITIVE_3D_RC_COLOR0                         0x00001e20
2451 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_A_MASK  0xff000000
2452 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_A_SHIFT 24
2453 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_R_MASK  0x00ff0000
2454 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_R_SHIFT 16
2455 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_G_MASK  0x0000ff00
2456 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_G_SHIFT 8
2457 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR0_B_MASK  0x000000ff
2458 #       define          NV20_TCL_PRIMITIVE_3D_RC_COLOR1                         0x00001e24
2459 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_A_MASK  0xff000000
2460 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_A_SHIFT 24
2461 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_R_MASK  0x00ff0000
2462 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_R_SHIFT 16
2463 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_G_MASK  0x0000ff00
2464 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_G_SHIFT 8
2465 #                define         NV20_TCL_PRIMITIVE_3D_RC_COLOR1_B_MASK  0x000000ff
2466 #       define          NV20_TCL_PRIMITIVE_3D_RC_FINAL0                         0x00000288
2467 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_MASK       0xe0000000
2468 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SHIFT      29
2469 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2470 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
2471 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
2472 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
2473 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2474 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2475 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
2476 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
2477 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_MASK       0x10000000
2478 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE    (1 << 28)
2479 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_RGB        0x0000
2480 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_ALPHA      0x0001
2481 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_MASK 0x0f000000
2482 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SHIFT        24
2483 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_ZERO 0x0000
2484 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
2485 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
2486 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_FOG  0x0003
2487 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
2488 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
2489 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE1_ARB 0x0008
2490 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE0_ARB 0x0009
2491 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_NV    0x000c
2492 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE1_NV    0x000d
2493 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
2494 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_E_TIMES_F_NV 0x000f
2495 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_MASK       0x00e00000
2496 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SHIFT      21
2497 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2498 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
2499 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
2500 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
2501 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2502 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2503 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
2504 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
2505 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_MASK       0x00100000
2506 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE    (1 << 20)
2507 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_RGB        0x0000
2508 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_ALPHA      0x0001
2509 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_MASK 0x000f0000
2510 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SHIFT        16
2511 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_ZERO 0x0000
2512 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
2513 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
2514 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_FOG  0x0003
2515 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
2516 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
2517 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE1_ARB 0x0008
2518 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE0_ARB 0x0009
2519 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_NV    0x000c
2520 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE1_NV    0x000d
2521 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
2522 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_E_TIMES_F_NV 0x000f
2523 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_MASK       0x0000e000
2524 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SHIFT      13
2525 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2526 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
2527 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
2528 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
2529 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2530 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2531 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
2532 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
2533 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_MASK       0x00001000
2534 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE    (1 << 12)
2535 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_RGB        0x0000
2536 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_ALPHA      0x0001
2537 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_MASK 0x00000f00
2538 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SHIFT        8
2539 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_ZERO 0x0000
2540 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
2541 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
2542 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_FOG  0x0003
2543 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
2544 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
2545 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE1_ARB 0x0008
2546 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE0_ARB 0x0009
2547 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_NV    0x000c
2548 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE1_NV    0x000d
2549 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
2550 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_E_TIMES_F_NV 0x000f
2551 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_MASK       0x000000e0
2552 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SHIFT      5
2553 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2554 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
2555 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
2556 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
2557 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2558 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2559 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
2560 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
2561 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_MASK       0x00000010
2562 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE    (1 << 4)
2563 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_RGB        0x0000
2564 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_ALPHA      0x0001
2565 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_INPUT_MASK 0x0000000f
2566 #       define          NV20_TCL_PRIMITIVE_3D_RC_FINAL1                         0x0000028c
2567 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_MASK       0xe0000000
2568 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SHIFT      29
2569 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2570 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_INVERT_NV 0x0001
2571 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NORMAL_NV   0x0002
2572 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NEGATE_NV   0x0003
2573 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2574 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2575 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_IDENTITY_NV 0x0006
2576 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_NEGATE_NV   0x0007
2577 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_MASK       0x10000000
2578 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE    (1 << 28)
2579 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_RGB        0x0000
2580 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_ALPHA      0x0001
2581 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_MASK 0x0f000000
2582 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SHIFT        24
2583 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_ZERO 0x0000
2584 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR0_NV   0x0001
2585 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR1_NV   0x0002
2586 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_FOG  0x0003
2587 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_PRIMARY_COLOR_NV     0x0004
2588 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SECONDARY_COLOR_NV   0x0005
2589 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE1_ARB 0x0008
2590 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE0_ARB 0x0009
2591 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_NV    0x000c
2592 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE1_NV    0x000d
2593 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
2594 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_E_TIMES_F_NV 0x000f
2595 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_MASK       0x00e00000
2596 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SHIFT      21
2597 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2598 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_INVERT_NV 0x0001
2599 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NORMAL_NV   0x0002
2600 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NEGATE_NV   0x0003
2601 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2602 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2603 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_IDENTITY_NV 0x0006
2604 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_NEGATE_NV   0x0007
2605 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_MASK       0x00100000
2606 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE    (1 << 20)
2607 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_RGB        0x0000
2608 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_ALPHA      0x0001
2609 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_MASK 0x000f0000
2610 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SHIFT        16
2611 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_ZERO 0x0000
2612 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR0_NV   0x0001
2613 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR1_NV   0x0002
2614 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_FOG  0x0003
2615 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_PRIMARY_COLOR_NV     0x0004
2616 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SECONDARY_COLOR_NV   0x0005
2617 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE1_ARB 0x0008
2618 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE0_ARB 0x0009
2619 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_NV    0x000c
2620 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE1_NV    0x000d
2621 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
2622 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_E_TIMES_F_NV 0x000f
2623 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_MASK       0x0000e000
2624 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SHIFT      13
2625 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2626 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_INVERT_NV 0x0001
2627 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NORMAL_NV   0x0002
2628 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NEGATE_NV   0x0003
2629 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2630 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2631 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_IDENTITY_NV 0x0006
2632 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_NEGATE_NV   0x0007
2633 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_MASK       0x00001000
2634 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE    (1 << 12)
2635 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_RGB        0x0000
2636 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_ALPHA      0x0001
2637 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_MASK 0x00000f00
2638 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SHIFT        8
2639 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_ZERO 0x0000
2640 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR0_NV   0x0001
2641 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR1_NV   0x0002
2642 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_FOG  0x0003
2643 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_PRIMARY_COLOR_NV     0x0004
2644 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SECONDARY_COLOR_NV   0x0005
2645 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE1_ARB 0x0008
2646 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE0_ARB 0x0009
2647 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_NV    0x000c
2648 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE1_NV    0x000d
2649 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
2650 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_E_TIMES_F_NV 0x000f
2651 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_MASK    0x00000080
2652 #                define         NV20_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP (1 << 7)
2653 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_TRUE    0x0001
2654 #                define NV20_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_FALSE   0x0000
2655 #       define          NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA(d)                    (0x00000260 + (d) * 0x0004)
2656 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_MASK     0xe0000000
2657 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SHIFT    29
2658 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
2659 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_INVERT_NV       0x0001
2660 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NORMAL_NV 0x0002
2661 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NEGATE_NV 0x0003
2662 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
2663 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
2664 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_IDENTITY_NV       0x0006
2665 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_NEGATE_NV 0x0007
2666 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_MASK     0x10000000
2667 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE  (1 << 28)
2668 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_BLUE     0x0000
2669 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_ALPHA    0x0001
2670 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_MASK       0x0f000000
2671 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SHIFT      24
2672 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_ZERO       0x0000
2673 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR0_NV 0x0001
2674 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR1_NV 0x0002
2675 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_FOG        0x0003
2676 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_PRIMARY_COLOR_NV   0x0004
2677 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SECONDARY_COLOR_NV 0x0005
2678 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE1_ARB       0x0008
2679 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE0_ARB       0x0009
2680 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_NV  0x000c
2681 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE1_NV  0x000d
2682 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
2683 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_E_TIMES_F_NV       0x000f
2684 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_MASK     0x00e00000
2685 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SHIFT    21
2686 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
2687 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_INVERT_NV       0x0001
2688 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NORMAL_NV 0x0002
2689 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NEGATE_NV 0x0003
2690 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
2691 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
2692 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_IDENTITY_NV       0x0006
2693 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_NEGATE_NV 0x0007
2694 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_MASK     0x00100000
2695 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE  (1 << 20)
2696 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_BLUE     0x0000
2697 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_ALPHA    0x0001
2698 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_MASK       0x000f0000
2699 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SHIFT      16
2700 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_ZERO       0x0000
2701 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR0_NV 0x0001
2702 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR1_NV 0x0002
2703 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_FOG        0x0003
2704 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_PRIMARY_COLOR_NV   0x0004
2705 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SECONDARY_COLOR_NV 0x0005
2706 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE1_ARB       0x0008
2707 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE0_ARB       0x0009
2708 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_NV  0x000c
2709 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE1_NV  0x000d
2710 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
2711 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_E_TIMES_F_NV       0x000f
2712 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_MASK     0x0000e000
2713 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SHIFT    13
2714 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
2715 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_INVERT_NV       0x0001
2716 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NORMAL_NV 0x0002
2717 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NEGATE_NV 0x0003
2718 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
2719 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
2720 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_IDENTITY_NV       0x0006
2721 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_NEGATE_NV 0x0007
2722 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_MASK     0x00001000
2723 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE  (1 << 12)
2724 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_BLUE     0x0000
2725 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_ALPHA    0x0001
2726 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_MASK       0x00000f00
2727 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SHIFT      8
2728 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_ZERO       0x0000
2729 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR0_NV 0x0001
2730 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR1_NV 0x0002
2731 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_FOG        0x0003
2732 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_PRIMARY_COLOR_NV   0x0004
2733 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SECONDARY_COLOR_NV 0x0005
2734 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE1_ARB       0x0008
2735 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE0_ARB       0x0009
2736 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_NV  0x000c
2737 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE1_NV  0x000d
2738 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
2739 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_E_TIMES_F_NV       0x000f
2740 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_MASK     0x000000e0
2741 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SHIFT    5
2742 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
2743 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_INVERT_NV       0x0001
2744 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NORMAL_NV 0x0002
2745 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NEGATE_NV 0x0003
2746 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
2747 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
2748 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_IDENTITY_NV       0x0006
2749 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_NEGATE_NV 0x0007
2750 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_MASK     0x00000010
2751 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE  (1 << 4)
2752 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_BLUE     0x0000
2753 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_ALPHA    0x0001
2754 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_INPUT_MASK       0x0000000f
2755 #       define          NV20_TCL_PRIMITIVE_3D_RC_IN_RGB(d)                      (0x00000ac0 + (d) * 0x0004)
2756 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_MASK       0xe0000000
2757 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SHIFT      29
2758 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2759 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
2760 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
2761 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
2762 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2763 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2764 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
2765 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
2766 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_MASK       0x10000000
2767 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE    (1 << 28)
2768 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_RGB        0x0000
2769 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_ALPHA      0x0001
2770 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_MASK 0x0f000000
2771 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SHIFT        24
2772 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_ZERO 0x0000
2773 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
2774 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
2775 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_FOG  0x0003
2776 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
2777 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
2778 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE1_ARB 0x0008
2779 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE0_ARB 0x0009
2780 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_NV    0x000c
2781 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE1_NV    0x000d
2782 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
2783 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_E_TIMES_F_NV 0x000f
2784 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_MASK       0x00e00000
2785 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SHIFT      21
2786 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2787 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
2788 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
2789 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
2790 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2791 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2792 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
2793 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
2794 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_MASK       0x00100000
2795 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE    (1 << 20)
2796 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_RGB        0x0000
2797 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_ALPHA      0x0001
2798 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_MASK 0x000f0000
2799 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SHIFT        16
2800 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_ZERO 0x0000
2801 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
2802 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
2803 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_FOG  0x0003
2804 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
2805 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
2806 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE1_ARB 0x0008
2807 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE0_ARB 0x0009
2808 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_NV    0x000c
2809 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE1_NV    0x000d
2810 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
2811 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_E_TIMES_F_NV 0x000f
2812 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_MASK       0x0000e000
2813 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SHIFT      13
2814 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2815 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
2816 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
2817 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
2818 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2819 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2820 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
2821 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
2822 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_MASK       0x00001000
2823 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE    (1 << 12)
2824 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_RGB        0x0000
2825 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_ALPHA      0x0001
2826 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_MASK 0x00000f00
2827 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SHIFT        8
2828 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_ZERO 0x0000
2829 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
2830 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
2831 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_FOG  0x0003
2832 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
2833 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
2834 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE1_ARB 0x0008
2835 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE0_ARB 0x0009
2836 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_NV    0x000c
2837 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE1_NV    0x000d
2838 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
2839 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_E_TIMES_F_NV 0x000f
2840 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_MASK       0x000000e0
2841 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SHIFT      5
2842 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
2843 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
2844 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
2845 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
2846 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
2847 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
2848 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
2849 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
2850 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_MASK       0x00000010
2851 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE    (1 << 4)
2852 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_RGB        0x0000
2853 #                define NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_ALPHA      0x0001
2854 #                define         NV20_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_INPUT_MASK 0x0000000f
2855 #       define          NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0(d)             (0x00000a60 + (d) * 0x0004)
2856 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_A_MASK 0xff000000
2857 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_A_SHIFT        24
2858 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_R_MASK 0x00ff0000
2859 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_R_SHIFT        16
2860 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_G_MASK 0x0000ff00
2861 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_G_SHIFT        8
2862 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_B_MASK 0x000000ff
2863 #       define          NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1(d)             (0x00000a80 + (d) * 0x0004)
2864 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_A_MASK 0xff000000
2865 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_A_SHIFT        24
2866 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_R_MASK 0x00ff0000
2867 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_R_SHIFT        16
2868 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_G_MASK 0x0000ff00
2869 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_G_SHIFT        8
2870 #                define         NV20_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_B_MASK 0x000000ff
2871 #       define          NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA(d)                   (0x00000aa0 + (d) * 0x0004)
2872 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_MASK   0x00030000
2873 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SHIFT  16
2874 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_NONE   0x0000
2875 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO_NV        0x0001
2876 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR_NV       0x0002
2877 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF_NV   0x0003
2878 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_MASK    0x00008000
2879 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS (1 << 15)
2880 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_NONE    0x0000
2881 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV    0x0001
2882 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_MASK 0x00004000
2883 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM      (1 << 14)
2884 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_TRUE 0x0001
2885 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_FALSE        0x0000
2886 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_MASK  0x00002000
2887 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT       (1 << 13)
2888 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_TRUE  0x0001
2889 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_FALSE 0x0000
2890 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_MASK  0x00001000
2891 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT       (1 << 12)
2892 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_TRUE  0x0001
2893 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_FALSE 0x0000
2894 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_MASK      0x00000f00
2895 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT     8
2896 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_ZERO      0x0000
2897 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0_NV        0x0001
2898 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1_NV        0x0002
2899 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_FOG       0x0003
2900 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR_NV  0x0004
2901 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR_NV        0x0005
2902 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1_ARB      0x0008
2903 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0_ARB      0x0009
2904 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_NV 0x000c
2905 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV 0x000d
2906 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV    0x000e
2907 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV      0x000f
2908 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_MASK       0x000000f0
2909 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SHIFT      4
2910 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_ZERO       0x0000
2911 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0_NV 0x0001
2912 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1_NV 0x0002
2913 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_FOG        0x0003
2914 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR_NV   0x0004
2915 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR_NV 0x0005
2916 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1_ARB       0x0008
2917 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0_ARB       0x0009
2918 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_NV  0x000c
2919 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV  0x000d
2920 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
2921 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV       0x000f
2922 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_OUTPUT_MASK       0x0000000f
2923 #       define          NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB(d)                     (0x00001e40 + (d) * 0x0004)
2924 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_MASK     0x00030000
2925 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SHIFT    16
2926 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_NONE     0x0000
2927 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_TWO_NV  0x0001
2928 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_FOUR_NV 0x0002
2929 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF_NV     0x0003
2930 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_MASK      0x00008000
2931 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS   (1 << 15)
2932 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_NONE      0x0000
2933 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV      0x0001
2934 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_MASK   0x00004000
2935 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM        (1 << 14)
2936 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_TRUE   0x0001
2937 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_FALSE  0x0000
2938 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_MASK    0x00002000
2939 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13)
2940 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_TRUE    0x0001
2941 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_FALSE   0x0000
2942 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_MASK    0x00001000
2943 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12)
2944 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_TRUE    0x0001
2945 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_FALSE   0x0000
2946 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_MASK        0x00000f00
2947 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SHIFT       8
2948 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_ZERO        0x0000
2949 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0_NV  0x0001
2950 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1_NV  0x0002
2951 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_FOG 0x0003
2952 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR_NV    0x0004
2953 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR_NV  0x0005
2954 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1_ARB        0x0008
2955 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0_ARB        0x0009
2956 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_NV   0x000c
2957 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV   0x000d
2958 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV      0x000e
2959 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV        0x000f
2960 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0
2961 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SHIFT        4
2962 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_ZERO 0x0000
2963 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0_NV   0x0001
2964 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1_NV   0x0002
2965 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_FOG  0x0003
2966 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR_NV     0x0004
2967 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR_NV   0x0005
2968 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE1_ARB 0x0008
2969 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE0_ARB 0x0009
2970 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_NV    0x000c
2971 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV    0x000d
2972 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
2973 #                define NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV 0x000f
2974 #                define         NV20_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_OUTPUT_MASK 0x0000000f
2975 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_POSITION_X(d)               (0x0000105c + (d) * 0x0080)
2976 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_POSITION_Y(d)               (0x00001060 + (d) * 0x0080)
2977 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_POSITION_Z(d)               (0x00001064 + (d) * 0x0080)
2978 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_X(d)            (0x00001028 + (d) * 0x0080)
2979 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Y(d)            (0x0000102c + (d) * 0x0080)
2980 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Z(d)            (0x00001030 + (d) * 0x0080)
2981 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_X(d)              (0x00001034 + (d) * 0x0080)
2982 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Y(d)              (0x00001038 + (d) * 0x0080)
2983 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Z(d)              (0x0000103c + (d) * 0x0080)
2984 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(d)     (0x00001000 + (d) * 0x0080)
2985 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(d)     (0x00001004 + (d) * 0x0080)
2986 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(d)     (0x00001008 + (d) * 0x0080)
2987 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(d)     (0x0000100c + (d) * 0x0080)
2988 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(d)     (0x00001010 + (d) * 0x0080)
2989 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(d)     (0x00001014 + (d) * 0x0080)
2990 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(d)    (0x00001018 + (d) * 0x0080)
2991 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(d)    (0x0000101c + (d) * 0x0080)
2992 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(d)    (0x00001020 + (d) * 0x0080)
2993 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_BACK_SIDE_PRODUCT_AMBIENT(d)        (0x00000c00 + (d) * 0x0040)
2994 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_BACK_SIDE_PRODUCT_DIFFUSE(d)        (0x00000c0c + (d) * 0x0040)
2995 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_BACK_SIDE_PRODUCT_SPECULAR(d)       (0x00000c18 + (d) * 0x0040)
2996 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_CONSTANT_ATTENUATION(d)     (0x00001068 + (d) * 0x0080)
2997 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_LINEAR_ATTENUATION(d)       (0x0000106c + (d) * 0x0080)
2998 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_QUADRATIC_ATTENUATION(d)    (0x00001070 + (d) * 0x0080)
2999 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_A(d)            (0x00001040 + (d) * 0x0080)
3000 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_EXPONENT(d)            (0x00001044 + (d) * 0x0080)
3001 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_B(d)            (0x00001048 + (d) * 0x0080)
3002 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_X(d)               (0x0000104c + (d) * 0x0080)
3003 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Y(d)               (0x00001050 + (d) * 0x0080)
3004 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Z(d)               (0x00001054 + (d) * 0x0080)
3005 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_C(d)            (0x00001058 + (d) * 0x0080)
3006 #       define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_A         0x00001e28
3007 #       define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_B         0x00001e2c
3008 #       define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_C         0x00001e30
3009 #       define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_D         0x00001e34
3010 #       define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_E         0x00001e38
3011 #       define          NV20_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_F         0x00001e3c
3012 #       define          NV20_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_ENABLE            0x0000147c
3013 #       define          NV20_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_PATTERN(d)        (0x00001480 + (d) * 0x0004)
3014 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_3F_X                   0x00001500
3015 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_3F_Y                   0x00001504
3016 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_3F_Z                   0x00001508
3017 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4F_X                   0x00001518
3018 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4F_Y                   0x0000151c
3019 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4F_Z                   0x00001520
3020 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4F_W                   0x00001524
3021 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY                  0x00001528
3022 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_Y_MASK   0xffff0000
3023 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_Y_SHIFT  16
3024 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_X_MASK   0x0000ffff
3025 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW                  0x0000152c
3026 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_W_MASK   0xffff0000
3027 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_W_SHIFT  16
3028 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_Z_MASK   0x0000ffff
3029 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_X                   0x00001530
3030 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_Y                   0x00001534
3031 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_Z                   0x00001538
3032 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY                  0x00001540
3033 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_MASK   0xffff0000
3034 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_SHIFT  16
3035 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_X_MASK   0x0000ffff
3036 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z                   0x00001544
3037 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z_Z_MASK    0x0000ffff
3038 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4F_R                   0x00001550
3039 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4F_G                   0x00001554
3040 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4F_B                   0x00001558
3041 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4F_A                   0x0000155c
3042 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_3F_R                   0x00001560
3043 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_3F_G                   0x00001564
3044 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_3F_B                   0x00001568
3045 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I                     0x0000156c
3046 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_MASK      0xff000000
3047 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_SHIFT     24
3048 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_MASK      0x00ff0000
3049 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_SHIFT     16
3050 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_MASK      0x0000ff00
3051 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_SHIFT     8
3052 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL_4I_R_MASK      0x000000ff
3053 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_R                  0x00001580
3054 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_G                  0x00001584
3055 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_B                  0x00001588
3056 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I                    0x0000158c
3057 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_MASK     0xff000000
3058 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_SHIFT    24
3059 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_MASK     0x00ff0000
3060 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_SHIFT    16
3061 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_MASK     0x0000ff00
3062 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_SHIFT    8
3063 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_R_MASK     0x000000ff
3064 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_S                   0x00001590
3065 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_T                   0x00001594
3066 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2I                     0x00001598
3067 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_MASK      0xffff0000
3068 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_SHIFT     16
3069 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_S_MASK      0x0000ffff
3070 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_S                   0x000015a0
3071 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_T                   0x000015a4
3072 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_R                   0x000015a8
3073 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_Q                   0x000015ac
3074 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST                  0x000015b0
3075 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_MASK   0xffff0000
3076 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_SHIFT  16
3077 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_S_MASK   0x0000ffff
3078 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ                  0x000015b4
3079 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_MASK   0xffff0000
3080 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_SHIFT  16
3081 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_R_MASK   0x0000ffff
3082 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_S                   0x000015b8
3083 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_T                   0x000015bc
3084 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2I                     0x000015c0
3085 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_MASK      0xffff0000
3086 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_SHIFT     16
3087 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_S_MASK      0x0000ffff
3088 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_S                   0x000015c8
3089 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_T                   0x000015cc
3090 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_R                   0x000015d0
3091 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_Q                   0x000015d4
3092 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST                  0x000015d8
3093 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_MASK   0xffff0000
3094 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_SHIFT  16
3095 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_S_MASK   0x0000ffff
3096 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ                  0x000015dc
3097 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_MASK   0xffff0000
3098 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_SHIFT  16
3099 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_R_MASK   0x0000ffff
3100 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2F_S                   0x000015e0
3101 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2F_T                   0x000015e4
3102 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2I                     0x000015e8
3103 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_T_MASK      0xffff0000
3104 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_T_SHIFT     16
3105 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_S_MASK      0x0000ffff
3106 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_S                   0x000015f0
3107 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_T                   0x000015f4
3108 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_R                   0x000015f8
3109 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_Q                   0x000015fc
3110 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST                  0x00001600
3111 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_MASK   0xffff0000
3112 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_SHIFT  16
3113 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_S_MASK   0x0000ffff
3114 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ                  0x00001604
3115 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_MASK   0xffff0000
3116 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_SHIFT  16
3117 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_R_MASK   0x0000ffff
3118 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2F_S                   0x00001608
3119 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2F_T                   0x0000160c
3120 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2I                     0x00001610
3121 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_T_MASK      0xffff0000
3122 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_T_SHIFT     16
3123 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_S_MASK      0x0000ffff
3124 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_S                   0x00001620
3125 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_T                   0x00001624
3126 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_R                   0x00001628
3127 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_Q                   0x0000162c
3128 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST                  0x00001630
3129 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_MASK   0xffff0000
3130 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_SHIFT  16
3131 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_S_MASK   0x0000ffff
3132 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ                  0x00001634
3133 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_MASK   0xffff0000
3134 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_SHIFT  16
3135 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_R_MASK   0x0000ffff
3136 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_FOG_1F                     0x00001698
3137 #       define          NV20_TCL_PRIMITIVE_3D_EDGE_FLAG                         0x000016bc
3138 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS              0x00001720
3139 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS_ENABLED_MASK 0x80000000
3140 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS_ENABLED      (1 << 31)
3141 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS_ENABLED_TRUE 0x0001
3142 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS_ENABLED_FALSE        0x0000
3143 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR0_POS_OFFSET_MASK  0x1fffffff
3144 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH              0x00001724
3145 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH_ENABLED_MASK 0x80000000
3146 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH_ENABLED      (1 << 31)
3147 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH_ENABLED_TRUE 0x0001
3148 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH_ENABLED_FALSE        0x0000
3149 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR1_WGH_OFFSET_MASK  0x1fffffff
3150 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR              0x00001728
3151 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR_ENABLED_MASK 0x80000000
3152 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR_ENABLED      (1 << 31)
3153 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR_ENABLED_TRUE 0x0001
3154 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR_ENABLED_FALSE        0x0000
3155 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR2_NOR_OFFSET_MASK  0x1fffffff
3156 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL              0x0000172c
3157 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL_ENABLED_MASK 0x80000000
3158 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL_ENABLED      (1 << 31)
3159 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL_ENABLED_TRUE 0x0001
3160 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL_ENABLED_FALSE        0x0000
3161 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR3_COL_OFFSET_MASK  0x1fffffff
3162 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2             0x00001730
3163 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2_ENABLED_MASK        0x80000000
3164 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2_ENABLED     (1 << 31)
3165 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2_ENABLED_TRUE        0x0001
3166 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2_ENABLED_FALSE       0x0000
3167 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR4_COL2_OFFSET_MASK 0x1fffffff
3168 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG              0x00001734
3169 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG_ENABLED_MASK 0x80000000
3170 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG_ENABLED      (1 << 31)
3171 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG_ENABLED_TRUE 0x0001
3172 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG_ENABLED_FALSE        0x0000
3173 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR5_FOG_OFFSET_MASK  0x1fffffff
3174 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6                  0x00001738
3175 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6_ENABLED_MASK     0x80000000
3176 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6_ENABLED  (1 << 31)
3177 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6_ENABLED_TRUE     0x0001
3178 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6_ENABLED_FALSE    0x0000
3179 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR6_OFFSET_MASK      0x1fffffff
3180 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7                  0x0000173c
3181 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7_ENABLED_MASK     0x80000000
3182 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7_ENABLED  (1 << 31)
3183 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7_ENABLED_TRUE     0x0001
3184 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7_ENABLED_FALSE    0x0000
3185 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR7_OFFSET_MASK      0x1fffffff
3186 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0              0x00001740
3187 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0_ENABLED_MASK 0x80000000
3188 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0_ENABLED      (1 << 31)
3189 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0_ENABLED_TRUE 0x0001
3190 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0_ENABLED_FALSE        0x0000
3191 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR8_TX0_OFFSET_MASK  0x1fffffff
3192 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1              0x00001744
3193 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1_ENABLED_MASK 0x80000000
3194 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1_ENABLED      (1 << 31)
3195 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1_ENABLED_TRUE 0x0001
3196 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1_ENABLED_FALSE        0x0000
3197 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR9_TX1_OFFSET_MASK  0x1fffffff
3198 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2             0x00001748
3199 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2_ENABLED_MASK        0x80000000
3200 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2_ENABLED     (1 << 31)
3201 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2_ENABLED_TRUE        0x0001
3202 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2_ENABLED_FALSE       0x0000
3203 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR10_TX2_OFFSET_MASK 0x1fffffff
3204 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3             0x0000174c
3205 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3_ENABLED_MASK        0x80000000
3206 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3_ENABLED     (1 << 31)
3207 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3_ENABLED_TRUE        0x0001
3208 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3_ENABLED_FALSE       0x0000
3209 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR11_TX3_OFFSET_MASK 0x1fffffff
3210 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4             0x00001750
3211 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4_ENABLED_MASK        0x80000000
3212 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4_ENABLED     (1 << 31)
3213 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4_ENABLED_TRUE        0x0001
3214 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4_ENABLED_FALSE       0x0000
3215 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR12_TX4_OFFSET_MASK 0x1fffffff
3216 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5             0x00001754
3217 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5_ENABLED_MASK        0x80000000
3218 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5_ENABLED     (1 << 31)
3219 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5_ENABLED_TRUE        0x0001
3220 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5_ENABLED_FALSE       0x0000
3221 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR13_TX5_OFFSET_MASK 0x1fffffff
3222 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6             0x00001758
3223 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6_ENABLED_MASK        0x80000000
3224 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6_ENABLED     (1 << 31)
3225 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6_ENABLED_TRUE        0x0001
3226 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6_ENABLED_FALSE       0x0000
3227 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR14_TX6_OFFSET_MASK 0x1fffffff
3228 #       define          NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7             0x0000175c
3229 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7_ENABLED_MASK        0x80000000
3230 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7_ENABLED     (1 << 31)
3231 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7_ENABLED_TRUE        0x0001
3232 #                define NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7_ENABLED_FALSE       0x0000
3233 #                define         NV20_TCL_PRIMITIVE_3D_VB_POINTER_ATTR15_TX7_OFFSET_MASK 0x1fffffff
3234 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR( d)                   (0x00001760 + (d) * 0x0004)
3235 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS                  0x00001760
3236 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS_STRIDE_MASK      0x0000ff00
3237 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS_STRIDE_SHIFT     8
3238 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS_FIELDS_MASK      0x000000f0
3239 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS_FIELDS_SHIFT     4
3240 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR0_POS_TYPE_MASK        0x0000000f
3241 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH                  0x00001764
3242 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH_STRIDE_MASK      0x0000ff00
3243 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH_STRIDE_SHIFT     8
3244 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH_FIELDS_MASK      0x000000f0
3245 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH_FIELDS_SHIFT     4
3246 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR1_WGH_TYPE_MASK        0x0000000f
3247 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR                  0x00001768
3248 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR_STRIDE_MASK      0x0000ff00
3249 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR_STRIDE_SHIFT     8
3250 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR_FIELDS_MASK      0x000000f0
3251 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR_FIELDS_SHIFT     4
3252 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR2_NOR_TYPE_MASK        0x0000000f
3253 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL                  0x0000176c
3254 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL_STRIDE_MASK      0x0000ff00
3255 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL_STRIDE_SHIFT     8
3256 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL_FIELDS_MASK      0x000000f0
3257 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL_FIELDS_SHIFT     4
3258 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR3_COL_TYPE_MASK        0x0000000f
3259 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2                 0x00001770
3260 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2_STRIDE_MASK     0x0000ff00
3261 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2_STRIDE_SHIFT    8
3262 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2_FIELDS_MASK     0x000000f0
3263 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2_FIELDS_SHIFT    4
3264 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR4_COL2_TYPE_MASK       0x0000000f
3265 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG                  0x00001774
3266 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG_STRIDE_MASK      0x0000ff00
3267 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG_STRIDE_SHIFT     8
3268 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG_FIELDS_MASK      0x000000f0
3269 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG_FIELDS_SHIFT     4
3270 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR5_FOG_TYPE_MASK        0x0000000f
3271 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6                      0x00001778
3272 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6_STRIDE_MASK  0x0000ff00
3273 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6_STRIDE_SHIFT 8
3274 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6_FIELDS_MASK  0x000000f0
3275 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6_FIELDS_SHIFT 4
3276 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR6_TYPE_MASK    0x0000000f
3277 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7                      0x0000177c
3278 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7_STRIDE_MASK  0x0000ff00
3279 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7_STRIDE_SHIFT 8
3280 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7_FIELDS_MASK  0x000000f0
3281 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7_FIELDS_SHIFT 4
3282 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR7_TYPE_MASK    0x0000000f
3283 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0                  0x00001780
3284 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0_STRIDE_MASK      0x0000ff00
3285 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0_STRIDE_SHIFT     8
3286 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0_FIELDS_MASK      0x000000f0
3287 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0_FIELDS_SHIFT     4
3288 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR8_TX0_TYPE_MASK        0x0000000f
3289 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1                  0x00001784
3290 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1_STRIDE_MASK      0x0000ff00
3291 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1_STRIDE_SHIFT     8
3292 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1_FIELDS_MASK      0x000000f0
3293 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1_FIELDS_SHIFT     4
3294 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR9_TX1_TYPE_MASK        0x0000000f
3295 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2                 0x00001788
3296 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2_STRIDE_MASK     0x0000ff00
3297 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2_STRIDE_SHIFT    8
3298 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2_FIELDS_MASK     0x000000f0
3299 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2_FIELDS_SHIFT    4
3300 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR10_TX2_TYPE_MASK       0x0000000f
3301 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3                 0x0000178c
3302 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3_STRIDE_MASK     0x0000ff00
3303 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3_STRIDE_SHIFT    8
3304 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3_FIELDS_MASK     0x000000f0
3305 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3_FIELDS_SHIFT    4
3306 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR11_TX3_TYPE_MASK       0x0000000f
3307 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4                 0x00001790
3308 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4_STRIDE_MASK     0x0000ff00
3309 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4_STRIDE_SHIFT    8
3310 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4_FIELDS_MASK     0x000000f0
3311 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4_FIELDS_SHIFT    4
3312 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR12_TX4_TYPE_MASK       0x0000000f
3313 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5                 0x00001794
3314 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5_STRIDE_MASK     0x0000ff00
3315 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5_STRIDE_SHIFT    8
3316 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5_FIELDS_MASK     0x000000f0
3317 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5_FIELDS_SHIFT    4
3318 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR13_TX5_TYPE_MASK       0x0000000f
3319 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6                 0x00001798
3320 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6_STRIDE_MASK     0x0000ff00
3321 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6_STRIDE_SHIFT    8
3322 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6_FIELDS_MASK     0x000000f0
3323 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6_FIELDS_SHIFT    4
3324 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR14_TX6_TYPE_MASK       0x0000000f
3325 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7                 0x0000179c
3326 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7_STRIDE_MASK     0x0000ff00
3327 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7_STRIDE_SHIFT    8
3328 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7_FIELDS_MASK     0x000000f0
3329 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7_FIELDS_SHIFT    4
3330 #                define         NV20_TCL_PRIMITIVE_3D_VERTEX_ATTR15_TX7_TYPE_MASK       0x0000000f
3331 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R     0x000017a0
3332 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G     0x000017a4
3333 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B     0x000017a8
3334 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_A             0x000017ac
3335 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_R             0x000017b0
3336 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_G             0x000017b4
3337 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_B             0x000017b8
3338 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_ENABLE             0x000017bc
3339 #       define          NV20_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_OP                 0x000017c0
3340 #       define          NV20_TCL_PRIMITIVE_3D_LIGHT_MODEL_TWO_SIDE_ENABLE       0x000017c4
3341 #       define          NV20_TCL_PRIMITIVE_3D_BEGIN_END                         0x000017fc
3342 #       define          NV20_TCL_PRIMITIVE_3D_SCISSOR_X2_X1                     0x00001c30
3343 #                define         NV20_TCL_PRIMITIVE_3D_SCISSOR_X2_X1_X2_MASK     0xffff0000
3344 #                define         NV20_TCL_PRIMITIVE_3D_SCISSOR_X2_X1_X2_SHIFT    16
3345 #                define         NV20_TCL_PRIMITIVE_3D_SCISSOR_X2_X1_X1_MASK     0x0000ffff
3346 #       define          NV20_TCL_PRIMITIVE_3D_SCISSOR_Y2_Y1                     0x00001c50
3347 #                define         NV20_TCL_PRIMITIVE_3D_SCISSOR_Y2_Y1_Y2_MASK     0xffff0000
3348 #                define         NV20_TCL_PRIMITIVE_3D_SCISSOR_Y2_Y1_Y2_SHIFT    16
3349 #                define         NV20_TCL_PRIMITIVE_3D_SCISSOR_Y2_Y1_Y1_MASK     0x0000ffff
3350 #       define          NV20_TCL_PRIMITIVE_3D_CLEAR_VALUE_DEPTH                 0x00001d8c
3351 #       define          NV20_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB                  0x00001d90
3352 #       define          NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS               0x00001d94
3353 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_A_MASK    0x00000080
3354 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_A (1 << 7)
3355 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_B_MASK    0x00000040
3356 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_B (1 << 6)
3357 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_G_MASK    0x00000020
3358 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_G (1 << 5)
3359 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_R_MASK    0x00000010
3360 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_COLOR_R (1 << 4)
3361 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_DEPTH_MASK      0x00000002
3362 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_DEPTH   1 // Nothing to shift
3363 #                define         NV20_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS_CLEAR_STENCIL_MASK    0x00000001
3364 #       define          NV20_TCL_PRIMITIVE_3D_INDEX_DATA                        0x00001800
3365 #                define         NV20_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX1_MASK    0xffff0000
3366 #                define         NV20_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX1_SHIFT   16
3367 #                define         NV20_TCL_PRIMITIVE_3D_INDEX_DATA_INDEX0_MASK    0x0000ffff
3368 #       define          NV20_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH                   0x00001810
3369 #                define         NV20_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_COUNT_VERTICES_MASK       0xff000000
3370 #                define         NV20_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_COUNT_VERTICES_SHIFT      24
3371 #                define         NV20_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_OFFSET_VERTICES_MASK      0x00ffffff
3372 #       define          NV20_TCL_PRIMITIVE_3D_VERTEX_DATA                       0x00001818
3373 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_X                 0x00001f00
3374 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_Y                 0x00001f04
3375 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_Z                 0x00001f08
3376 #       define          NV20_TCL_PRIMITIVE_3D_VIEWPORT_ORIGIN_W                 0x00001f0c
3377
3378 /****************************************** 
3379 Object NV30_TCL_PRIMITIVE_3D used on: NV30 
3380 */
3381 #define                 NV30_TCL_PRIMITIVE_3D                                   0x00000097
3382 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT0                       0x00000180
3383 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT1                       0x00000184
3384 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT2                       0x00000188
3385 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT3                       0x0000018c
3386 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT4                       0x00000194
3387 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT5                       0x00000198
3388 #       define          NV30_TCL_PRIMITIVE_3D_SET_VB_SRC0_OBJECT                0x0000019c
3389 #       define          NV30_TCL_PRIMITIVE_3D_SET_VB_SRC1_OBJECT                0x000001a0
3390 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT6                       0x000001a4
3391 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT7                       0x000001a8
3392 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT8                       0x000001ac
3393 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT8B                      0x000001b0
3394 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT9                       0x000001b4
3395 #       define          NV30_TCL_PRIMITIVE_3D_SET_OBJECT10                      0x000001b8
3396 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM0        0x00000200
3397 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM0_WIDTH_MASK     0xffff0000
3398 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM0_WIDTH_SHIFT    16
3399 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM0_X_OFFSET_MASK  0x0000ffff
3400 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM1        0x00000204
3401 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM1_HEIGHT_MASK    0xffff0000
3402 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM1_HEIGHT_SHIFT   16
3403 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_DIM1_Y_OFFSET_MASK  0x0000ffff
3404 #       define          NV30_TCL_PRIMITIVE_3D_BUFFER0_PITCH                     0x0000020c
3405 #                define         NV30_TCL_PRIMITIVE_3D_BUFFER0_PITCH_ZS_PITCH_MASK       0xffff0000
3406 #                define         NV30_TCL_PRIMITIVE_3D_BUFFER0_PITCH_ZS_PITCH_SHIFT      16
3407 #                define         NV30_TCL_PRIMITIVE_3D_BUFFER0_PITCH_COLOR0_PITCH_MASK   0x0000ffff
3408 #       define          NV30_TCL_PRIMITIVE_3D_COLOR0_OFFSET                     0x00000210
3409 #       define          NV30_TCL_PRIMITIVE_3D_DEPTH_OFFSET                      0x00000214
3410 #       define          NV30_TCL_PRIMITIVE_3D_COLOR1_OFFSET                     0x00000218
3411 #       define          NV30_TCL_PRIMITIVE_3D_BUFFER1_PITCH                     0x0000021c
3412 #                define         NV30_TCL_PRIMITIVE_3D_BUFFER1_PITCH_COLOR1_BUFFER_PITCH_MASK    0x0000ffff
3413 #       define          NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS                   0x00000220
3414 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF0_MASK 0x00000001
3415 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF1_MASK 0x00000002
3416 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF1      1 // Nothing to shift
3417 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF1_TRUE 0x0001
3418 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF1_FALSE        0x0000
3419 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF2_MASK 0x00000004
3420 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF2      (1 << 2)
3421 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF2_TRUE 0x0001
3422 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF2_FALSE        0x0000
3423 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF3_MASK 0x00000008
3424 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF3      (1 << 3)
3425 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF3_TRUE 0x0001
3426 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_BUFFERS_BUF3_FALSE        0x0000
3427 #       define          NV30_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH            0x0000022c
3428 #                define         NV30_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_PITCH_PITCH_MASK 0x0000ffff
3429 #       define          NV30_TCL_PRIMITIVE_3D_LMA_DEPTH_BUFFER_OFFSET           0x00000230
3430 #       define          NV30_TCL_PRIMITIVE_3D_TX_MATRIX_ENABLE(d)               (0x00000240 + (d) * 0x0004)
3431 #       define          NV30_TCL_PRIMITIVE_3D_BUFFER2_PITCH                     0x00000280
3432 #       define          NV30_TCL_PRIMITIVE_3D_BUFFER3_PITCH                     0x00000284
3433 #       define          NV30_TCL_PRIMITIVE_3D_BUFFER2_OFFSET                    0x00000288
3434 #       define          NV30_TCL_PRIMITIVE_3D_BUFFER3_OFFSET                    0x0000028c
3435 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS0        0x000002c0
3436 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS0_WIDTH_MASK     0xffff0000
3437 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS0_WIDTH_SHIFT    16
3438 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS0_X_OFFSET_MASK  0x0000ffff
3439 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS1        0x000002c4
3440 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS1_HEIGHT_MASK    0xffff0000
3441 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS1_HEIGHT_SHIFT   16
3442 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_COLOR_BUFFER_OFS1_Y_OFFSET_MASK  0x0000ffff
3443 #       define          NV30_TCL_PRIMITIVE_3D_DITHER_ENABLE                     0x00000300
3444 #       define          NV30_TCL_PRIMITIVE_3D_ALPHA_FUNC_ENABLE                 0x00000304
3445 #       define          NV30_TCL_PRIMITIVE_3D_ALPHA_FUNC_FUNC                   0x00000308
3446 #       define          NV30_TCL_PRIMITIVE_3D_ALPHA_FUNC_REF                    0x0000030c
3447 #       define          NV30_TCL_PRIMITIVE_3D_BLEND_FUNC_ENABLE                 0x00000310
3448 #       define          NV30_TCL_PRIMITIVE_3D_BLEND_FUNC_SRC                    0x00000314
3449 #       define          NV30_TCL_PRIMITIVE_3D_BLEND_FUNC_DST                    0x00000318
3450 #       define          NV30_TCL_PRIMITIVE_3D_BLEND_COLOR                       0x0000031c
3451 #                define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_A_MASK        0xff000000
3452 #                define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_A_SHIFT       24
3453 #                define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_R_MASK        0x00ff0000
3454 #                define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_R_SHIFT       16
3455 #                define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_G_MASK        0x0000ff00
3456 #                define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_G_SHIFT       8
3457 #                define         NV30_TCL_PRIMITIVE_3D_BLEND_COLOR_B_MASK        0x000000ff
3458 #       define          NV30_TCL_PRIMITIVE_3D_BLEND_EQUATION                    0x00000320
3459 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_MASK                        0x00000324
3460 #                define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_A_MASK 0xff000000
3461 #                define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_A_SHIFT        24
3462 #                define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_A_TRUE 0x0001
3463 #                define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_A_FALSE        0x0000
3464 #                define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_R_MASK 0x00ff0000
3465 #                define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_R_SHIFT        16
3466 #                define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_R_TRUE 0x0001
3467 #                define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_R_FALSE        0x0000
3468 #                define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_G_MASK 0x0000ff00
3469 #                define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_G_SHIFT        8
3470 #                define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_G_TRUE 0x0001
3471 #                define NV30_TCL_PRIMITIVE_3D_COLOR_MASK_G_FALSE        0x0000
3472 #                define         NV30_TCL_PRIMITIVE_3D_COLOR_MASK_B_MASK 0x000000ff
3473 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_ENABLE               0x00000328
3474 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_MASK                 0x0000032c
3475 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_FUNC_FUNC            0x00000330
3476 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_FUNC_REF             0x00000334
3477 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_FUNC_MASK            0x00000338
3478 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_OP_FAIL              0x0000033c
3479 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_OP_ZFAIL             0x00000340
3480 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_BACK_OP_ZPASS             0x00000344
3481 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_FRONT_ENABLE              0x00000348
3482 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_FRONT_MASK                0x0000034c
3483 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_FRONT_FUNC_FUNC           0x00000350
3484 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_FRONT_FUNC_REF            0x00000354
3485 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_FRONT_FUNC_MASK           0x00000358
3486 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_FRONT_OP_FAIL             0x0000035c
3487 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_FRONT_OP_ZFAIL            0x00000360
3488 #       define          NV30_TCL_PRIMITIVE_3D_STENCIL_FRONT_OP_ZPASS            0x00000364
3489 #       define          NV30_TCL_PRIMITIVE_3D_SHADE_MODEL                       0x00000368
3490 #       define          NV30_TCL_PRIMITIVE_3D_FOG_ENABLE                        0x0000036c
3491 #       define          NV30_TCL_PRIMITIVE_3D_FOG_COLOR                         0x00000370
3492 #                define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_A_MASK  0xff000000
3493 #                define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_A_SHIFT 24
3494 #                define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_B_MASK  0x00ff0000
3495 #                define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_B_SHIFT 16
3496 #                define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_G_MASK  0x0000ff00
3497 #                define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_G_SHIFT 8
3498 #                define         NV30_TCL_PRIMITIVE_3D_FOG_COLOR_R_MASK  0x000000ff
3499 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_ENABLE             0x00000374
3500 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_LOGIC_OP_OP                 0x00000378
3501 #       define          NV30_TCL_PRIMITIVE_3D_NORMALIZE_ENABLE                  0x0000037c
3502 #       define          NV30_TCL_PRIMITIVE_3D_DEPTH_RANGE_NEAR                  0x00000394
3503 #       define          NV30_TCL_PRIMITIVE_3D_DEPTH_RANGE_FAR                   0x00000398
3504 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_R            0x000003a0
3505 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_G            0x000003a4
3506 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_B            0x000003a8
3507 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_FRONT_A            0x000003b4
3508 #       define          NV30_TCL_PRIMITIVE_3D_LINE_WIDTH_SMOOTH                 0x000003b8
3509 #       define          NV30_TCL_PRIMITIVE_3D_LINE_SMOOTH_ENABLE                0x000003bc
3510 #       define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_ENABLE(d)              (0x00000400 + (d) * 0x0004)
3511 #       define          NV30_TCL_PRIMITIVE_3D_MODELVIEW_MATRIX( d)              (0x00000480 + (d) * 0x0004)
3512 #       define          NV30_TCL_PRIMITIVE_3D_INVERSE_MODELVIEW_MATRIX( d)      (0x00000580 + (d) * 0x0004)
3513 #       define          NV30_TCL_PRIMITIVE_3D_PROJECTION_MATRIX( d)             (0x00000680 + (d) * 0x0004)
3514 #       define          NV30_TCL_PRIMITIVE_3D_TX_MATRIX(x,y)                    (0x000006c0 + (y) * 0x0010 + (x) * 0x0004)
3515 #       define          NV30_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS                0x000008c0
3516 #                define         NV30_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_WIDTH_MASK     0xffff0000
3517 #                define         NV30_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_WIDTH_SHIFT    16
3518 #                define         NV30_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_X_OFFSET_MASK  0x0000ffff
3519 #       define          NV30_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS               0x000008c4
3520 #                define         NV30_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_HEIGHT_MASK   0xffff0000
3521 #                define         NV30_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_HEIGHT_SHIFT  16
3522 #                define         NV30_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_Y_OFFSET_MASK 0x0000ffff
3523 #       define          NV30_TCL_PRIMITIVE_3D_FOG_COORD_DIST                    0x000008c8
3524 #       define          NV30_TCL_PRIMITIVE_3D_FOG_MODE                          0x000008cc
3525 #       define          NV30_TCL_PRIMITIVE_3D_FOG_EQUATION_CONSTANT             0x000008d0
3526 #       define          NV30_TCL_PRIMITIVE_3D_FOG_EQUATION_LINEAR               0x000008d4
3527 #       define          NV30_TCL_PRIMITIVE_3D_FOG_EQUATION_QUADRATIC            0x000008d8
3528 #       define          NV30_TCL_PRIMITIVE_3D_FP_ACTIVE_PROGRAM                 0x000008e4
3529 #       define          NV30_TCL_PRIMITIVE_3D_RC_COLOR0                         0x000008ec
3530 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_A_MASK  0xff000000
3531 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_A_SHIFT 24
3532 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_R_MASK  0x00ff0000
3533 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_R_SHIFT 16
3534 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_G_MASK  0x0000ff00
3535 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_G_SHIFT 8
3536 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR0_B_MASK  0x000000ff
3537 #       define          NV30_TCL_PRIMITIVE_3D_RC_COLOR1                         0x000008f0
3538 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_A_MASK  0xff000000
3539 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_A_SHIFT 24
3540 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_R_MASK  0x00ff0000
3541 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_R_SHIFT 16
3542 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_G_MASK  0x0000ff00
3543 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_G_SHIFT 8
3544 #                define         NV30_TCL_PRIMITIVE_3D_RC_COLOR1_B_MASK  0x000000ff
3545 #       define          NV30_TCL_PRIMITIVE_3D_RC_FINAL0                         0x000008f4
3546 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_MASK       0xe0000000
3547 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SHIFT      29
3548 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3549 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
3550 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
3551 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
3552 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3553 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3554 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
3555 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
3556 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_MASK       0x10000000
3557 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE    (1 << 28)
3558 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_RGB        0x0000
3559 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_COMPONENT_USAGE_ALPHA      0x0001
3560 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_MASK 0x0f000000
3561 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SHIFT        24
3562 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_ZERO 0x0000
3563 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
3564 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
3565 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_FOG  0x0003
3566 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
3567 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
3568 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE1_ARB 0x0008
3569 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_TEXTURE0_ARB 0x0009
3570 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_NV    0x000c
3571 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE1_NV    0x000d
3572 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
3573 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARA_INPUT_E_TIMES_F_NV 0x000f
3574 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_MASK       0x00e00000
3575 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SHIFT      21
3576 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3577 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
3578 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
3579 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
3580 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3581 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3582 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
3583 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
3584 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_MASK       0x00100000
3585 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE    (1 << 20)
3586 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_RGB        0x0000
3587 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_COMPONENT_USAGE_ALPHA      0x0001
3588 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_MASK 0x000f0000
3589 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SHIFT        16
3590 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_ZERO 0x0000
3591 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
3592 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
3593 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_FOG  0x0003
3594 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
3595 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
3596 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE1_ARB 0x0008
3597 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_TEXTURE0_ARB 0x0009
3598 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_NV    0x000c
3599 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE1_NV    0x000d
3600 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
3601 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARB_INPUT_E_TIMES_F_NV 0x000f
3602 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_MASK       0x0000e000
3603 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SHIFT      13
3604 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3605 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
3606 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
3607 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
3608 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3609 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3610 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
3611 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
3612 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_MASK       0x00001000
3613 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE    (1 << 12)
3614 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_RGB        0x0000
3615 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_COMPONENT_USAGE_ALPHA      0x0001
3616 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_MASK 0x00000f00
3617 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SHIFT        8
3618 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_ZERO 0x0000
3619 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
3620 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
3621 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_FOG  0x0003
3622 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
3623 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
3624 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE1_ARB 0x0008
3625 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_TEXTURE0_ARB 0x0009
3626 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_NV    0x000c
3627 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE1_NV    0x000d
3628 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
3629 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARC_INPUT_E_TIMES_F_NV 0x000f
3630 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_MASK       0x000000e0
3631 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SHIFT      5
3632 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3633 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
3634 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
3635 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
3636 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3637 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3638 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
3639 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
3640 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_MASK       0x00000010
3641 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE    (1 << 4)
3642 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_RGB        0x0000
3643 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_COMPONENT_USAGE_ALPHA      0x0001
3644 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL0_VARD_INPUT_MASK 0x0000000f
3645 #       define          NV30_TCL_PRIMITIVE_3D_RC_FINAL1                         0x000008f8
3646 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_MASK       0xe0000000
3647 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SHIFT      29
3648 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3649 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_UNSIGNED_INVERT_NV 0x0001
3650 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NORMAL_NV   0x0002
3651 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_EXPAND_NEGATE_NV   0x0003
3652 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3653 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3654 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_IDENTITY_NV 0x0006
3655 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_MAPPING_SIGNED_NEGATE_NV   0x0007
3656 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_MASK       0x10000000
3657 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE    (1 << 28)
3658 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_RGB        0x0000
3659 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_COMPONENT_USAGE_ALPHA      0x0001
3660 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_MASK 0x0f000000
3661 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SHIFT        24
3662 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_ZERO 0x0000
3663 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR0_NV   0x0001
3664 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_CONSTANT_COLOR1_NV   0x0002
3665 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_FOG  0x0003
3666 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_PRIMARY_COLOR_NV     0x0004
3667 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SECONDARY_COLOR_NV   0x0005
3668 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE1_ARB 0x0008
3669 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_TEXTURE0_ARB 0x0009
3670 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_NV    0x000c
3671 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE1_NV    0x000d
3672 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
3673 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARE_INPUT_E_TIMES_F_NV 0x000f
3674 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_MASK       0x00e00000
3675 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SHIFT      21
3676 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3677 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_UNSIGNED_INVERT_NV 0x0001
3678 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NORMAL_NV   0x0002
3679 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_EXPAND_NEGATE_NV   0x0003
3680 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3681 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3682 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_IDENTITY_NV 0x0006
3683 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_MAPPING_SIGNED_NEGATE_NV   0x0007
3684 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_MASK       0x00100000
3685 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE    (1 << 20)
3686 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_RGB        0x0000
3687 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_COMPONENT_USAGE_ALPHA      0x0001
3688 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_MASK 0x000f0000
3689 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SHIFT        16
3690 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_ZERO 0x0000
3691 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR0_NV   0x0001
3692 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_CONSTANT_COLOR1_NV   0x0002
3693 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_FOG  0x0003
3694 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_PRIMARY_COLOR_NV     0x0004
3695 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SECONDARY_COLOR_NV   0x0005
3696 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE1_ARB 0x0008
3697 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_TEXTURE0_ARB 0x0009
3698 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_NV    0x000c
3699 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE1_NV    0x000d
3700 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
3701 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARF_INPUT_E_TIMES_F_NV 0x000f
3702 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_MASK       0x0000e000
3703 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SHIFT      13
3704 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3705 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_UNSIGNED_INVERT_NV 0x0001
3706 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NORMAL_NV   0x0002
3707 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_EXPAND_NEGATE_NV   0x0003
3708 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3709 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3710 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_IDENTITY_NV 0x0006
3711 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_MAPPING_SIGNED_NEGATE_NV   0x0007
3712 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_MASK       0x00001000
3713 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE    (1 << 12)
3714 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_RGB        0x0000
3715 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_COMPONENT_USAGE_ALPHA      0x0001
3716 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_MASK 0x00000f00
3717 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SHIFT        8
3718 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_ZERO 0x0000
3719 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR0_NV   0x0001
3720 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_CONSTANT_COLOR1_NV   0x0002
3721 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_FOG  0x0003
3722 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_PRIMARY_COLOR_NV     0x0004
3723 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SECONDARY_COLOR_NV   0x0005
3724 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE1_ARB 0x0008
3725 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_TEXTURE0_ARB 0x0009
3726 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_NV    0x000c
3727 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE1_NV    0x000d
3728 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
3729 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_VARG_INPUT_E_TIMES_F_NV 0x000f
3730 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_MASK    0x00000080
3731 #                define         NV30_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP (1 << 7)
3732 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_TRUE    0x0001
3733 #                define NV30_TCL_PRIMITIVE_3D_RC_FINAL1_COLOR_SUM_CLAMP_FALSE   0x0000
3734 #       define          NV30_TCL_PRIMITIVE_3D_RC_ENABLE                         0x000008fc
3735 #                define         NV30_TCL_PRIMITIVE_3D_RC_ENABLE_NUMBER_OF_RC_ENABLED_MASK       0x0000000f
3736 #       define          NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA(d)                    (0x00000900 + (d) * 0x0020)
3737 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_MASK     0xe0000000
3738 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SHIFT    29
3739 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
3740 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_UNSIGNED_INVERT_NV       0x0001
3741 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NORMAL_NV 0x0002
3742 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_EXPAND_NEGATE_NV 0x0003
3743 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
3744 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
3745 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_IDENTITY_NV       0x0006
3746 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_MAPPING_SIGNED_NEGATE_NV 0x0007
3747 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_MASK     0x10000000
3748 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE  (1 << 28)
3749 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_BLUE     0x0000
3750 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_COMPONENT_USAGE_ALPHA    0x0001
3751 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_MASK       0x0f000000
3752 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SHIFT      24
3753 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_ZERO       0x0000
3754 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR0_NV 0x0001
3755 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_CONSTANT_COLOR1_NV 0x0002
3756 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_FOG        0x0003
3757 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_PRIMARY_COLOR_NV   0x0004
3758 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SECONDARY_COLOR_NV 0x0005
3759 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE1_ARB       0x0008
3760 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_TEXTURE0_ARB       0x0009
3761 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_NV  0x000c
3762 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE1_NV  0x000d
3763 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
3764 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARA_INPUT_E_TIMES_F_NV       0x000f
3765 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_MASK     0x00e00000
3766 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SHIFT    21
3767 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
3768 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_UNSIGNED_INVERT_NV       0x0001
3769 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NORMAL_NV 0x0002
3770 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_EXPAND_NEGATE_NV 0x0003
3771 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
3772 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
3773 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_IDENTITY_NV       0x0006
3774 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_MAPPING_SIGNED_NEGATE_NV 0x0007
3775 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_MASK     0x00100000
3776 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE  (1 << 20)
3777 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_BLUE     0x0000
3778 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_COMPONENT_USAGE_ALPHA    0x0001
3779 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_MASK       0x000f0000
3780 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SHIFT      16
3781 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_ZERO       0x0000
3782 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR0_NV 0x0001
3783 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_CONSTANT_COLOR1_NV 0x0002
3784 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_FOG        0x0003
3785 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_PRIMARY_COLOR_NV   0x0004
3786 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SECONDARY_COLOR_NV 0x0005
3787 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE1_ARB       0x0008
3788 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_TEXTURE0_ARB       0x0009
3789 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_NV  0x000c
3790 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE1_NV  0x000d
3791 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
3792 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARB_INPUT_E_TIMES_F_NV       0x000f
3793 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_MASK     0x0000e000
3794 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SHIFT    13
3795 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
3796 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_UNSIGNED_INVERT_NV       0x0001
3797 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NORMAL_NV 0x0002
3798 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_EXPAND_NEGATE_NV 0x0003
3799 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
3800 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
3801 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_IDENTITY_NV       0x0006
3802 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_MAPPING_SIGNED_NEGATE_NV 0x0007
3803 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_MASK     0x00001000
3804 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE  (1 << 12)
3805 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_BLUE     0x0000
3806 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_COMPONENT_USAGE_ALPHA    0x0001
3807 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_MASK       0x00000f00
3808 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SHIFT      8
3809 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_ZERO       0x0000
3810 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR0_NV 0x0001
3811 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_CONSTANT_COLOR1_NV 0x0002
3812 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_FOG        0x0003
3813 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_PRIMARY_COLOR_NV   0x0004
3814 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SECONDARY_COLOR_NV 0x0005
3815 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE1_ARB       0x0008
3816 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_TEXTURE0_ARB       0x0009
3817 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_NV  0x000c
3818 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE1_NV  0x000d
3819 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
3820 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARC_INPUT_E_TIMES_F_NV       0x000f
3821 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_MASK     0x000000e0
3822 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SHIFT    5
3823 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_IDENTITY_NV     0x0000
3824 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_UNSIGNED_INVERT_NV       0x0001
3825 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NORMAL_NV 0x0002
3826 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_EXPAND_NEGATE_NV 0x0003
3827 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NORMAL_NV      0x0004
3828 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_HALF_BIAS_NEGATE_NV      0x0005
3829 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_IDENTITY_NV       0x0006
3830 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_MAPPING_SIGNED_NEGATE_NV 0x0007
3831 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_MASK     0x00000010
3832 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE  (1 << 4)
3833 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_BLUE     0x0000
3834 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_COMPONENT_USAGE_ALPHA    0x0001
3835 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_ALPHA_VARD_INPUT_MASK       0x0000000f
3836 #       define          NV30_TCL_PRIMITIVE_3D_RC_IN_RGB(d)                      (0x00000904 + (d) * 0x0020)
3837 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_MASK       0xe0000000
3838 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SHIFT      29
3839 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3840 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_UNSIGNED_INVERT_NV 0x0001
3841 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NORMAL_NV   0x0002
3842 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_EXPAND_NEGATE_NV   0x0003
3843 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3844 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3845 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_IDENTITY_NV 0x0006
3846 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_MAPPING_SIGNED_NEGATE_NV   0x0007
3847 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_MASK       0x10000000
3848 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE    (1 << 28)
3849 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_RGB        0x0000
3850 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_COMPONENT_USAGE_ALPHA      0x0001
3851 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_MASK 0x0f000000
3852 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SHIFT        24
3853 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_ZERO 0x0000
3854 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR0_NV   0x0001
3855 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_CONSTANT_COLOR1_NV   0x0002
3856 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_FOG  0x0003
3857 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_PRIMARY_COLOR_NV     0x0004
3858 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SECONDARY_COLOR_NV   0x0005
3859 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE1_ARB 0x0008
3860 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_TEXTURE0_ARB 0x0009
3861 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_NV    0x000c
3862 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE1_NV    0x000d
3863 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
3864 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARA_INPUT_E_TIMES_F_NV 0x000f
3865 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_MASK       0x00e00000
3866 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SHIFT      21
3867 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3868 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_UNSIGNED_INVERT_NV 0x0001
3869 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NORMAL_NV   0x0002
3870 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_EXPAND_NEGATE_NV   0x0003
3871 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3872 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3873 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_IDENTITY_NV 0x0006
3874 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_MAPPING_SIGNED_NEGATE_NV   0x0007
3875 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_MASK       0x00100000
3876 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE    (1 << 20)
3877 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_RGB        0x0000
3878 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_COMPONENT_USAGE_ALPHA      0x0001
3879 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_MASK 0x000f0000
3880 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SHIFT        16
3881 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_ZERO 0x0000
3882 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR0_NV   0x0001
3883 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_CONSTANT_COLOR1_NV   0x0002
3884 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_FOG  0x0003
3885 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_PRIMARY_COLOR_NV     0x0004
3886 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SECONDARY_COLOR_NV   0x0005
3887 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE1_ARB 0x0008
3888 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_TEXTURE0_ARB 0x0009
3889 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_NV    0x000c
3890 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE1_NV    0x000d
3891 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
3892 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARB_INPUT_E_TIMES_F_NV 0x000f
3893 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_MASK       0x0000e000
3894 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SHIFT      13
3895 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3896 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_UNSIGNED_INVERT_NV 0x0001
3897 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NORMAL_NV   0x0002
3898 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_EXPAND_NEGATE_NV   0x0003
3899 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3900 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3901 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_IDENTITY_NV 0x0006
3902 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_MAPPING_SIGNED_NEGATE_NV   0x0007
3903 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_MASK       0x00001000
3904 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE    (1 << 12)
3905 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_RGB        0x0000
3906 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_COMPONENT_USAGE_ALPHA      0x0001
3907 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_MASK 0x00000f00
3908 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SHIFT        8
3909 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_ZERO 0x0000
3910 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR0_NV   0x0001
3911 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_CONSTANT_COLOR1_NV   0x0002
3912 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_FOG  0x0003
3913 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_PRIMARY_COLOR_NV     0x0004
3914 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SECONDARY_COLOR_NV   0x0005
3915 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE1_ARB 0x0008
3916 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_TEXTURE0_ARB 0x0009
3917 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_NV    0x000c
3918 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE1_NV    0x000d
3919 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
3920 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARC_INPUT_E_TIMES_F_NV 0x000f
3921 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_MASK       0x000000e0
3922 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SHIFT      5
3923 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_IDENTITY_NV       0x0000
3924 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_UNSIGNED_INVERT_NV 0x0001
3925 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NORMAL_NV   0x0002
3926 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_EXPAND_NEGATE_NV   0x0003
3927 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NORMAL_NV        0x0004
3928 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_HALF_BIAS_NEGATE_NV        0x0005
3929 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_IDENTITY_NV 0x0006
3930 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_MAPPING_SIGNED_NEGATE_NV   0x0007
3931 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_MASK       0x00000010
3932 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE    (1 << 4)
3933 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_RGB        0x0000
3934 #                define NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_COMPONENT_USAGE_ALPHA      0x0001
3935 #                define         NV30_TCL_PRIMITIVE_3D_RC_IN_RGB_VARD_INPUT_MASK 0x0000000f
3936 #       define          NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0(d)             (0x00000908 + (d) * 0x0020)
3937 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_A_MASK 0xff000000
3938 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_A_SHIFT        24
3939 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_R_MASK 0x00ff0000
3940 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_R_SHIFT        16
3941 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_G_MASK 0x0000ff00
3942 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_G_SHIFT        8
3943 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR0_B_MASK 0x000000ff
3944 #       define          NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1(d)             (0x0000090c + (d) * 0x0020)
3945 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_A_MASK 0xff000000
3946 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_A_SHIFT        24
3947 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_R_MASK 0x00ff0000
3948 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_R_SHIFT        16
3949 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_G_MASK 0x0000ff00
3950 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_G_SHIFT        8
3951 #                define         NV30_TCL_PRIMITIVE_3D_RC_CONSTANT_COLOR1_B_MASK 0x000000ff
3952 #       define          NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA(d)                   (0x00000910 + (d) * 0x0020)
3953 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_MASK   0x00030000
3954 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SHIFT  16
3955 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_NONE   0x0000
3956 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO_NV        0x0001
3957 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR_NV       0x0002
3958 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF_NV   0x0003
3959 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_MASK    0x00008000
3960 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS (1 << 15)
3961 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_NONE    0x0000
3962 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV    0x0001
3963 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_MASK 0x00004000
3964 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM      (1 << 14)
3965 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_TRUE 0x0001
3966 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_MUX_SUM_FALSE        0x0000
3967 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_MASK  0x00002000
3968 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT       (1 << 13)
3969 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_TRUE  0x0001
3970 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_DOT_PRODUCT_FALSE 0x0000
3971 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_MASK  0x00001000
3972 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT       (1 << 12)
3973 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_TRUE  0x0001
3974 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_DOT_PRODUCT_FALSE 0x0000
3975 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_MASK      0x00000f00
3976 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT     8
3977 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_ZERO      0x0000
3978 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0_NV        0x0001
3979 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1_NV        0x0002
3980 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_FOG       0x0003
3981 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR_NV  0x0004
3982 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR_NV        0x0005
3983 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1_ARB      0x0008
3984 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0_ARB      0x0009
3985 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_NV 0x000c
3986 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV 0x000d
3987 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV    0x000e
3988 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV      0x000f
3989 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_MASK       0x000000f0
3990 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SHIFT      4
3991 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_ZERO       0x0000
3992 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0_NV 0x0001
3993 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1_NV 0x0002
3994 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_FOG        0x0003
3995 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR_NV   0x0004
3996 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR_NV 0x0005
3997 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1_ARB       0x0008
3998 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0_ARB       0x0009
3999 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_NV  0x000c
4000 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV  0x000d
4001 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV     0x000e
4002 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV       0x000f
4003 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_ALPHA_CD_OUTPUT_MASK       0x0000000f
4004 #       define          NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB(d)                     (0x00000914 + (d) * 0x0020)
4005 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_MASK     0x00030000
4006 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SHIFT    16
4007 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_NONE     0x0000
4008 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_TWO_NV  0x0001
4009 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_FOUR_NV 0x0002
4010 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF_NV     0x0003
4011 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_MASK      0x00008000
4012 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS   (1 << 15)
4013 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_NONE      0x0000
4014 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV      0x0001
4015 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_MASK   0x00004000
4016 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM        (1 << 14)
4017 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_TRUE   0x0001
4018 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_MUX_SUM_FALSE  0x0000
4019 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_MASK    0x00002000
4020 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13)
4021 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_TRUE    0x0001
4022 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_DOT_PRODUCT_FALSE   0x0000
4023 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_MASK    0x00001000
4024 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12)
4025 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_TRUE    0x0001
4026 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_DOT_PRODUCT_FALSE   0x0000
4027 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_MASK        0x00000f00
4028 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SHIFT       8
4029 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_ZERO        0x0000
4030 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0_NV  0x0001
4031 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1_NV  0x0002
4032 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_FOG 0x0003
4033 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR_NV    0x0004
4034 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR_NV  0x0005
4035 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1_ARB        0x0008
4036 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0_ARB        0x0009
4037 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_NV   0x000c
4038 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV   0x000d
4039 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV      0x000e
4040 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV        0x000f
4041 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0
4042 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SHIFT        4
4043 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_ZERO 0x0000
4044 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0_NV   0x0001
4045 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1_NV   0x0002
4046 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_FOG  0x0003
4047 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR_NV     0x0004
4048 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR_NV   0x0005
4049 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE1_ARB 0x0008
4050 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_TEXTURE0_ARB 0x0009
4051 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_NV    0x000c
4052 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV    0x000d
4053 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV       0x000e
4054 #                define NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV 0x000f
4055 #                define         NV30_TCL_PRIMITIVE_3D_RC_OUT_RGB_CD_OUTPUT_MASK 0x0000000f
4056 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0                   0x00000a00
4057 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_WIDTH_MASK        0xffff0000
4058 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_WIDTH_SHIFT       16
4059 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_X_OFFSET_MASK     0x0000ffff
4060 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1                   0x00000a04
4061 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_HEIGHT_MASK       0xffff0000
4062 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_HEIGHT_SHIFT      16
4063 #                define         NV30_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_Y_OFFSET_MASK     0x0000ffff
4064 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R    0x00000a10
4065 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G    0x00000a14
4066 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B    0x00000a18
4067 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_OX                  0x00000a20
4068 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_OY                  0x00000a24
4069 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_NPF_DIV2            0x00000a28
4070 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_UNK0_0x0            0x00000a2c
4071 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_PX_DIV2             0x00000a30
4072 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_PY_DIV2             0x00000a34
4073 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_FMN_DIV2            0x00000a38
4074 #       define          NV30_TCL_PRIMITIVE_3D_VIEWPORT_XFRM_UNK1_0x0            0x00000a3c
4075 #       define          NV30_TCL_PRIMITIVE_3D_POLYGON_OFFSET_FILL_ENABLE        0x00000a60
4076 #       define          NV30_TCL_PRIMITIVE_3D_POLYGON_OFFSET_LINE_ENABLE        0x00000a64
4077 #       define          NV30_TCL_PRIMITIVE_3D_POLYGON_OFFSET_POINT_ENABLE       0x00000a68
4078 #       define          NV30_TCL_PRIMITIVE_3D_DEPTH_FUNC                        0x00000a6c
4079 #       define          NV30_TCL_PRIMITIVE_3D_DEPTH_WRITE_ENABLE                0x00000a70
4080 #       define          NV30_TCL_PRIMITIVE_3D_DEPTH_TEST_ENABLE                 0x00000a74
4081 #       define          NV30_TCL_PRIMITIVE_3D_POLYGON_OFFSET_FACTOR             0x00000a78
4082 #       define          NV30_TCL_PRIMITIVE_3D_POLYGON_OFFSET_UNITS              0x00000a7c
4083 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY                  0x00000a90
4084 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_MASK   0xffff0000
4085 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_SHIFT  16
4086 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_X_MASK   0x0000ffff
4087 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z                   0x00000a94
4088 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z_Z_MASK    0x0000ffff
4089 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_INST0                   0x00000b80
4090 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_INST1                   0x00000b84
4091 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_INST2                   0x00000b88
4092 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_INST3                   0x00000b8c
4093 #       define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_A(d)                   (0x00000e00 + (d) * 0x0010)
4094 #       define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_B(d)                   (0x00000e04 + (d) * 0x0010)
4095 #       define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_C(d)                   (0x00000e08 + (d) * 0x0010)
4096 #       define          NV30_TCL_PRIMITIVE_3D_CLIP_PLANE_D(d)                   (0x00000e0c + (d) * 0x0010)
4097 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(d)     (0x00001000 + (d) * 0x0040)
4098 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(d)     (0x00001004 + (d) * 0x0040)
4099 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(d)     (0x00001008 + (d) * 0x0040)
4100 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(d)     (0x0000100c + (d) * 0x0040)
4101 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(d)     (0x00001010 + (d) * 0x0040)
4102 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(d)     (0x00001014 + (d) * 0x0040)
4103 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(d)    (0x00001018 + (d) * 0x0040)
4104 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(d)    (0x0000101c + (d) * 0x0040)
4105 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(d)    (0x00001020 + (d) * 0x0040)
4106 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_X(d)            (0x00001028 + (d) * 0x0080)
4107 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Y(d)            (0x0000102c + (d) * 0x0080)
4108 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_HALF_VECTOR_Z(d)            (0x00001030 + (d) * 0x0080)
4109 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_X(d)              (0x00001034 + (d) * 0x0080)
4110 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Y(d)              (0x00001038 + (d) * 0x0080)
4111 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_DIRECTION_Z(d)              (0x0000103c + (d) * 0x0080)
4112 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_A(d)            (0x00001200 + (d) * 0x0040)
4113 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_EXPONENT(d)            (0x00001204 + (d) * 0x0040)
4114 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_B(d)            (0x00001208 + (d) * 0x0040)
4115 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_X(d)               (0x0000120c + (d) * 0x0040)
4116 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Y(d)               (0x00001210 + (d) * 0x0040)
4117 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_DIR_Z(d)               (0x00001214 + (d) * 0x0040)
4118 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_SPOT_CUTOFF_C(d)            (0x00001218 + (d) * 0x0040)
4119 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_POSITION_X(d)               (0x0000121c + (d) * 0x0040)
4120 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_POSITION_Y(d)               (0x00001220 + (d) * 0x0040)
4121 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_POSITION_Z(d)               (0x00001224 + (d) * 0x0040)
4122 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_CONSTANT_ATTENUATION(d)     (0x00001228 + (d) * 0x0040)
4123 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_LINEAR_ATTENUATION(d)       (0x0000122c + (d) * 0x0040)
4124 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_QUADRATIC_ATTENUATION(d)    (0x00001230 + (d) * 0x0040)
4125 #       define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_A        0x00001400
4126 #       define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_B        0x00001404
4127 #       define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_C        0x00001408
4128 #       define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_D        0x0000140c
4129 #       define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_E        0x00001410
4130 #       define          NV30_TCL_PRIMITIVE_3D_FRONT_MATERIAL_SHININESS_F        0x00001414
4131 #       define          NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS                    0x00001420
4132 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_MASK       0x00008000
4133 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7    (1 << 15)
4134 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_TRUE       0x0001
4135 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_7_FALSE      0x0000
4136 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_MASK       0x00002000
4137 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6    (1 << 13)
4138 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_TRUE       0x0001
4139 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_6_FALSE      0x0000
4140 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_MASK       0x00000800
4141 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5    (1 << 11)
4142 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_TRUE       0x0001
4143 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_5_FALSE      0x0000
4144 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_MASK       0x00000200
4145 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4    (1 << 9)
4146 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_TRUE       0x0001
4147 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_4_FALSE      0x0000
4148 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_MASK       0x00000080
4149 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3    (1 << 7)
4150 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_TRUE       0x0001
4151 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_3_FALSE      0x0000
4152 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_MASK       0x00000020
4153 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2    (1 << 5)
4154 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_TRUE       0x0001
4155 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_2_FALSE      0x0000
4156 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_MASK       0x00000008
4157 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1    (1 << 3)
4158 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_TRUE       0x0001
4159 #                define NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_1_FALSE      0x0000
4160 #                define         NV30_TCL_PRIMITIVE_3D_ENABLED_LIGHTS_LIGHT_0_MASK       0x00000001
4161 #       define          NV30_TCL_PRIMITIVE_3D_SET_CLIPPING_PLANES               0x00001478
4162 #       define          NV30_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_ENABLE            0x0000147c
4163 #       define          NV30_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_PATTERN( d)       (0x00001480 + (d) * 0x0004)
4164 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3F_X( d)                 (0x00001500 + (d) * 0x0010)
4165 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3F_Y( d)                 (0x00001504 + (d) * 0x0010)
4166 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3F_Z( d)                 (0x00001508 + (d) * 0x0010)
4167 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_3F_W( d)                 (0x0000150c + (d) * 0x0010)
4168 #       define          NV30_TCL_PRIMITIVE_3D_VB_POINTER( d)                    (0x00001680 + (d) * 0x0004)
4169 #                define         NV30_TCL_PRIMITIVE_3D_VB_POINTER_SOURCE_MASK    0x80000000
4170 #                define         NV30_TCL_PRIMITIVE_3D_VB_POINTER_SOURCE (1 << 31)
4171 #                define         NV30_TCL_PRIMITIVE_3D_VB_POINTER_OFFSET_MASK    0x1fffffff
4172 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_UNK_0                      0x00001718
4173 #       define          NV30_TCL_PRIMITIVE_3D_VTXFMT( d)                        (0x00001740 + (d) * 0x0004)
4174 #                define         NV30_TCL_PRIMITIVE_3D_VTXFMT_STRIDE_MASK        0x0000ff00
4175 #                define         NV30_TCL_PRIMITIVE_3D_VTXFMT_STRIDE_SHIFT       8
4176 #                define         NV30_TCL_PRIMITIVE_3D_VTXFMT_NCOMP_MASK 0x000000f0
4177 #                define         NV30_TCL_PRIMITIVE_3D_VTXFMT_NCOMP_SHIFT        4
4178 #                define         NV30_TCL_PRIMITIVE_3D_VTXFMT_TYPE_MASK  0x0000000f
4179 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R     0x000017a0
4180 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G     0x000017a4
4181 #       define          NV30_TCL_PRIMITIVE_3D_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B     0x000017a8
4182 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_R             0x000017b0
4183 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_G             0x000017b4
4184 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_B             0x000017b8
4185 #       define          NV30_TCL_PRIMITIVE_3D_COLOR_MATERIAL_BACK_A             0x000017c0
4186 #       define          NV30_TCL_PRIMITIVE_3D_OCC_QUERY_OR_COLOR_BUFF_ENABLE    0x000017c8
4187 #       define          NV30_TCL_PRIMITIVE_3D_STORE_RESULT                      0x00001800
4188 #       define          NV30_TCL_PRIMITIVE_3D_BEGIN_END                         0x00001808
4189 #       define          NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U16                    0x0000180c
4190 #                define         NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U16_1_MASK     0xff000000
4191 #                define         NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U16_1_SHIFT    24
4192 #                define         NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U16_0_MASK     0x0000ffff
4193 #       define          NV30_TCL_PRIMITIVE_3D_VB_ELEMENT_U32                    0x00001810
4194 #       define          NV30_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH                   0x00001814
4195 #                define         NV30_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_COUNT_VERTICES_MASK       0xff000000
4196 #                define         NV30_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_COUNT_VERTICES_SHIFT      24
4197 #                define         NV30_TCL_PRIMITIVE_3D_VB_VERTEX_BATCH_OFFSET_VERTICES_MASK      0x00ffffff
4198 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_DATA                       0x00001818
4199 #       define          NV30_TCL_PRIMITIVE_3D_SET_DISPLAY_LIST_MEM_OFFSET       0x0000181c
4200 #       define          NV30_TCL_PRIMITIVE_3D_EXECUTE_DISPLAY_LIST              0x00001824
4201 #                define         NV30_TCL_PRIMITIVE_3D_EXECUTE_DISPLAY_LIST_LENGTH_MASK  0xff000000
4202 #                define         NV30_TCL_PRIMITIVE_3D_EXECUTE_DISPLAY_LIST_LENGTH_SHIFT 24
4203 #                define         NV30_TCL_PRIMITIVE_3D_EXECUTE_DISPLAY_LIST_START_OFFSET_MASK    0x00ffffff
4204 #       define          NV30_TCL_PRIMITIVE_3D_POLYGON_MODE_FRONT                0x00001828
4205 #       define          NV30_TCL_PRIMITIVE_3D_POLYGON_MODE_BACK                 0x0000182c
4206 #       define          NV30_TCL_PRIMITIVE_3D_CULL_FACE                         0x00001830
4207 #       define          NV30_TCL_PRIMITIVE_3D_FRONT_FACE                        0x00001834
4208 #       define          NV30_TCL_PRIMITIVE_3D_POLYGON_SMOOTH_ENABLE             0x00001838
4209 #       define          NV30_TCL_PRIMITIVE_3D_CULL_FACE_ENABLE                  0x0000183c
4210 #       define          NV30_TCL_PRIMITIVE_3D_TX_DEPTH_UNIT( d)                 (0x00001840 + (d) * 0x0004)
4211 #                define         NV30_TCL_PRIMITIVE_3D_TX_DEPTH_UNIT_DEPTH_MASK  0xfff00000
4212 #                define         NV30_TCL_PRIMITIVE_3D_TX_DEPTH_UNIT_DEPTH_SHIFT 20
4213 #                define         NV30_TCL_PRIMITIVE_3D_TX_DEPTH_UNIT_NPOT_PITCH_MASK     0x000fffff
4214 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2F_X( d)                 (0x00001880 + (d) * 0x0008)
4215 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2F_Y( d)                 (0x00001884 + (d) * 0x0008)
4216 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2I( d)                   (0x00001900 + (d) * 0x0004)
4217 #                define         NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2I_X_MASK        0x0000ffff
4218 #                define         NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2I_Y_MASK        0xffff0000
4219 #                define         NV30_TCL_PRIMITIVE_3D_VTX_ATTR_2I_Y_SHIFT       16
4220 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I                     0x0000194c
4221 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_MASK      0xff000000
4222 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_SHIFT     24
4223 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_MASK      0x00ff0000
4224 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_SHIFT     16
4225 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_MASK      0x0000ff00
4226 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_SHIFT     8
4227 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL_4I_R_MASK      0x000000ff
4228 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I                    0x00001950
4229 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_MASK     0xff000000
4230 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_SHIFT    24
4231 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_MASK     0x00ff0000
4232 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_SHIFT    16
4233 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_MASK     0x0000ff00
4234 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_SHIFT    8
4235 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_R_MASK     0x000000ff
4236 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST                  0x000019c0
4237 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_MASK   0xffff0000
4238 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_SHIFT  16
4239 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_S_MASK   0x0000ffff
4240 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ                  0x000019c4
4241 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_MASK   0xffff0000
4242 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_SHIFT  16
4243 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_R_MASK   0x0000ffff
4244 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST                  0x000019c8
4245 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_MASK   0xffff0000
4246 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_SHIFT  16
4247 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_S_MASK   0x0000ffff
4248 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ                  0x000019cc
4249 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_MASK   0xffff0000
4250 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_SHIFT  16
4251 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_R_MASK   0x0000ffff
4252 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST                  0x000019d0
4253 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_MASK   0xffff0000
4254 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_SHIFT  16
4255 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_S_MASK   0x0000ffff
4256 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ                  0x000019d4
4257 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_MASK   0xffff0000
4258 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_SHIFT  16
4259 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_R_MASK   0x0000ffff
4260 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST                  0x000019d8
4261 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_MASK   0xffff0000
4262 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_SHIFT  16
4263 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_S_MASK   0x0000ffff
4264 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ                  0x000019dc
4265 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_MASK   0xffff0000
4266 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_SHIFT  16
4267 #                define         NV30_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_R_MASK   0x0000ffff
4268 #       define          NV30_TCL_PRIMITIVE_3D_TX_ADDRESS_UNIT( d)               (0x00001a00 + (d) * 0x0020)
4269 #       define          NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT( d)                (0x00001a04 + (d) * 0x0020)
4270 #                define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_MIPMAP_MASK        0x000f0000
4271 #                define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_MIPMAP_SHIFT       16
4272 #                define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_TYPE_MASK  0x00006000
4273 #                define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_TYPE_SHIFT 13
4274 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_TYPE_POT   0x0000
4275 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_TYPE_NPOT  0x0001
4276 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_TYPE_RECT  0x0003
4277 #                define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_MASK        0x00001f00
4278 #                define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_SHIFT       8
4279 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_L8  0x0001
4280 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_A1R5G5B5    0x0002
4281 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_A4R4G4B4    0x0003
4282 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_R5G6B5      0x0004
4283 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_A8R8G8B8    0x0005
4284 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_DXT1        0x0006
4285 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_DXT3        0x0007
4286 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_DXT5        0x0008
4287 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_L16 0x0014
4288 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_L16A16      0x0015
4289 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_L8A8        0x0018
4290 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_SL8A8       0x0019
4291 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_RGBA_F16    0x001a
4292 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_RGBA_F32    0x001b
4293 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_L_F32       0x001c
4294 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_FORMAT_LA_F16      0x001f
4295 #                define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_NCOMP_MASK 0x000000f0
4296 #                define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_NCOMP_SHIFT        4
4297 #                define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_CUBIC_MASK 0x00000004
4298 #                define         NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_CUBIC      (1 << 2)
4299 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_CUBIC_TRUE 0x0001
4300 #                define NV30_TCL_PRIMITIVE_3D_TX_FORMAT_UNIT_CUBIC_FALSE        0x0000
4301 #       define          NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT( d)                  (0x00001a08 + (d) * 0x0020)
4302 #                define         NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_S_MASK  0x000000ff
4303 #                define         NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_MASK  0x0000ff00
4304 #                define         NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_SHIFT 8
4305 #                define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_REPEAT        0x0001
4306 #                define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_MIRRORED_REPEAT       0x0002
4307 #                define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_CLAMP_TO_EDGE 0x0003
4308 #                define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_CLAMP_TO_BORDER       0x0004
4309 #                define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_T_CLAMP 0x0005
4310 #                define         NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_MASK  0x00ff0000
4311 #                define         NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_SHIFT 16
4312 #                define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_REPEAT        0x0001
4313 #                define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_MIRRORED_REPEAT       0x0002
4314 #                define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_CLAMP_TO_EDGE 0x0003
4315 #                define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_CLAMP_TO_BORDER       0x0004
4316 #                define NV30_TCL_PRIMITIVE_3D_TX_WRAP_UNIT_WRAP_R_CLAMP 0x0005
4317 #       define          NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT( d)                (0x00001a0c + (d) * 0x0020)
4318 #                define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV40_ENABLE_MASK   0x80000000
4319 #                define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV40_ENABLE        (1 << 31)
4320 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV40_ENABLE_TRUE   0x0001
4321 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV40_ENABLE_FALSE  0x0000
4322 #                define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV30_ENABLE_MASK   0x40000000
4323 #                define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV30_ENABLE        (1 << 30)
4324 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV30_ENABLE_TRUE   0x0001
4325 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_NV30_ENABLE_FALSE  0x0000
4326 #                define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_MASK    0x00000070
4327 #                define         NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_SHIFT   4
4328 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_1       0x0000
4329 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_2       0x0001
4330 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_4       0x0002
4331 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_NV40_6_NV30_8   0x0003
4332 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_8       0x0004
4333 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_10      0x0005
4334 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_12      0x0006
4335 #                define NV30_TCL_PRIMITIVE_3D_TX_ENABLE_UNIT_ANISOTROPY_16      0x0007
4336 #       define          NV30_TCL_PRIMITIVE_3D_TX_SWIZZLE_UNIT( d)               (0x00001a10 + (d) * 0x0020)
4337 #       define          NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT( d)                (0x00001a14 + (d) * 0x0020)
4338 #                define         NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_MASK    0x000f0000
4339 #                define         NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_SHIFT   16
4340 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_NEAREST 0x0001
4341 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_LINEAR  0x0002
4342 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_NEAREST_MIPMAP_NEAREST  0x0003
4343 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_LINEAR_MIPMAP_NEAREST   0x0004
4344 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_NEAREST_MIPMAP_LINEAR   0x0005
4345 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MIN_LINEAR_MIPMAP_LINEAR    0x0006
4346 #                define         NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_MASK    0x0f000000
4347 #                define         NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_SHIFT   24
4348 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_NEAREST 0x0001
4349 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_LINEAR  0x0002
4350 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_NEAREST_MIPMAP_NEAREST  0x0003
4351 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_LINEAR_MIPMAP_NEAREST   0x0004
4352 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_NEAREST_MIPMAP_LINEAR   0x0005
4353 #                define NV30_TCL_PRIMITIVE_3D_TX_FILTER_UNIT_FILTER_MAG_LINEAR_MIPMAP_LINEAR    0x0006
4354 #       define          NV30_TCL_PRIMITIVE_3D_TX_XY_DIM_UNIT( d)                (0x00001a18 + (d) * 0x0020)
4355 #                define         NV30_TCL_PRIMITIVE_3D_TX_XY_DIM_UNIT_WIDTH_MASK 0xffff0000
4356 #                define         NV30_TCL_PRIMITIVE_3D_TX_XY_DIM_UNIT_WIDTH_SHIFT        16
4357 #                define         NV30_TCL_PRIMITIVE_3D_TX_XY_DIM_UNIT_HEIGHT_MASK        0x0000ffff
4358 #       define          NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT( d)          (0x00001a1c + (d) * 0x0020)
4359 #                define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_A_MASK       0xff000000
4360 #                define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_A_SHIFT      24
4361 #                define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_A_TRUE       0x0001
4362 #                define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_A_FALSE      0x0000
4363 #                define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_R_MASK       0x00ff0000
4364 #                define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_R_SHIFT      16
4365 #                define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_R_TRUE       0x0001
4366 #                define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_R_FALSE      0x0000
4367 #                define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_G_MASK       0x0000ff00
4368 #                define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_G_SHIFT      8
4369 #                define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_G_TRUE       0x0001
4370 #                define NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_G_FALSE      0x0000
4371 #                define         NV30_TCL_PRIMITIVE_3D_TX_BORDER_COLOR_UNIT_B_MASK       0x000000ff
4372 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4F_X( d)                 (0x00001c00 + (d) * 0x0010)
4373 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4F_Y( d)                 (0x00001c04 + (d) * 0x0010)
4374 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4F_Z( d)                 (0x00001c08 + (d) * 0x0010)
4375 #       define          NV30_TCL_PRIMITIVE_3D_VTX_ATTR_4F_W( d)                 (0x00001c0c + (d) * 0x0010)
4376 #       define          NV30_TCL_PRIMITIVE_3D_FP_CONTROL                        0x00001d60
4377 #                define         NV30_TCL_PRIMITIVE_3D_FP_CONTROL_USES_KIL_MASK  0x00000080
4378 #                define         NV30_TCL_PRIMITIVE_3D_FP_CONTROL_USES_KIL       (1 << 7)
4379 #                define NV30_TCL_PRIMITIVE_3D_FP_CONTROL_USES_KIL_TRUE  0x0001
4380 #                define NV30_TCL_PRIMITIVE_3D_FP_CONTROL_USES_KIL_FALSE 0x0000
4381 #       define          NV30_TCL_PRIMITIVE_3D_UNK1D6C_OFFSET                    0x00001d6c
4382 #       define          NV30_TCL_PRIMITIVE_3D_UNK1D70_VALUE                     0x00001d70
4383 #       define          NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_DEPTH                 0x00001d8c
4384 #       define          NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB                  0x00001d90
4385 #                define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_A_MASK   0xff000000
4386 #                define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_A_SHIFT  24
4387 #                define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_R_MASK   0x00ff0000
4388 #                define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_R_SHIFT  16
4389 #                define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_G_MASK   0x0000ff00
4390 #                define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_G_SHIFT  8
4391 #                define         NV30_TCL_PRIMITIVE_3D_CLEAR_VALUE_ARGB_B_MASK   0x000000ff
4392 #       define          NV30_TCL_PRIMITIVE_3D_CLEAR_WHICH_BUFFERS               0x00001d94
4393 #       define          NV30_TCL_PRIMITIVE_3D_DO_VERTICES                       0x00001dac
4394 #       define          NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_ENABLE               0x00001db4
4395 #       define          NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN              0x00001db8
4396 #                define         NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_FACTOR_MASK  0x0000ffff
4397 #                define         NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_PATTERN_MASK 0xffff0000
4398 #                define         NV30_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_PATTERN_SHIFT        16
4399 #       define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_A         0x00001e20
4400 #       define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_B         0x00001e24
4401 #       define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_C         0x00001e28
4402 #       define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_D         0x00001e2c
4403 #       define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_E         0x00001e30
4404 #       define          NV30_TCL_PRIMITIVE_3D_BACK_MATERIAL_SHININESS_F         0x00001e34
4405 #       define          NV30_TCL_PRIMITIVE_3D_VERTEX_FOG_1F                     0x00001e54
4406 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_FROM_ID                 0x00001e9c
4407 #       define          NV30_TCL_PRIMITIVE_3D_VP_PROGRAM_START_ID               0x00001ea0
4408 #       define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_A                 0x00001ec0
4409 #       define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_B                 0x00001ec4
4410 #       define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_C                 0x00001ec8
4411 #       define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_D                 0x00001ecc
4412 #       define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_E                 0x00001ed0
4413 #       define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_F                 0x00001ed4
4414 #       define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_G                 0x00001ed8
4415 #       define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETER_H                 0x00001edc
4416 #       define          NV30_TCL_PRIMITIVE_3D_POINT_SIZE                        0x00001ee0
4417 #       define          NV30_TCL_PRIMITIVE_3D_POINT_PARAMETERS_ENABLE           0x00001ee4
4418 #       define          NV30_TCL_PRIMITIVE_3D_POINT_SPRITE                      0x00001ee8
4419 #                define         NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_MASK   0x00000800
4420 #                define         NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE        (1 << 11)
4421 #                define NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_TRUE   0x0001
4422 #                define NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_COORD_REPLACE_FALSE  0x0000
4423 #                define         NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_MASK  0x00000006
4424 #                define         NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_SHIFT 1
4425 #                define NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_ZERO       0x0000
4426 #                define NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_R  0x0001
4427 #                define NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_R_MODE_GL_S  0x0002
4428 #                define         NV30_TCL_PRIMITIVE_3D_POINT_SPRITE_ENABLE_MASK  0x00000001
4429 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_ID                0x00001efc
4430 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P0_X              0x00001f00
4431 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P0_Y              0x00001f04
4432 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P0_Z              0x00001f08
4433 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P0_W              0x00001f0c
4434 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P1_X              0x00001f10
4435 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P1_Y              0x00001f14
4436 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P1_Z              0x00001f18
4437 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P1_W              0x00001f1c
4438 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P2_X              0x00001f20
4439 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P2_Y              0x00001f24
4440 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P2_Z              0x00001f28
4441 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P2_W              0x00001f2c
4442 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P3_X              0x00001f30
4443 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P3_Y              0x00001f34
4444 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P3_Z              0x00001f38
4445 #       define          NV30_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_P3_W              0x00001f3c
4446 #       define          NV30_TCL_PRIMITIVE_3D_VP_IN_REG                         0x00001ff0
4447 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_POS_MASK        0x00000001
4448 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_WEIGHT_MASK     0x00000002
4449 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_WEIGHT  1 // Nothing to shift
4450 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_WEIGHT_TRUE     0x0001
4451 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_WEIGHT_FALSE    0x0000
4452 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_NORMAL_MASK     0x00000004
4453 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_NORMAL  (1 << 2)
4454 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_NORMAL_TRUE     0x0001
4455 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_NORMAL_FALSE    0x0000
4456 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL0_MASK       0x00000008
4457 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL0    (1 << 3)
4458 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL0_TRUE       0x0001
4459 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL0_FALSE      0x0000
4460 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL1_MASK       0x00000010
4461 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL1    (1 << 4)
4462 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL1_TRUE       0x0001
4463 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_COL1_FALSE      0x0000
4464 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_FOGC_MASK       0x00000020
4465 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_FOGC    (1 << 5)
4466 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_FOGC_TRUE       0x0001
4467 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_FOGC_FALSE      0x0000
4468 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX0_MASK       0x00000100
4469 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX0    (1 << 8)
4470 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX0_TRUE       0x0001
4471 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX0_FALSE      0x0000
4472 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX1_MASK       0x00000200
4473 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX1    (1 << 9)
4474 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX1_TRUE       0x0001
4475 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX1_FALSE      0x0000
4476 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX2_MASK       0x00000400
4477 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX2    (1 << 10)
4478 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX2_TRUE       0x0001
4479 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX2_FALSE      0x0000
4480 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX3_MASK       0x00000800
4481 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX3    (1 << 11)
4482 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX3_TRUE       0x0001
4483 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX3_FALSE      0x0000
4484 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX4_MASK       0x00001000
4485 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX4    (1 << 12)
4486 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX4_TRUE       0x0001
4487 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX4_FALSE      0x0000
4488 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX5_MASK       0x00002000
4489 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX5    (1 << 13)
4490 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX5_TRUE       0x0001
4491 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX5_FALSE      0x0000
4492 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX6_MASK       0x00004000
4493 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX6    (1 << 14)
4494 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX6_TRUE       0x0001
4495 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX6_FALSE      0x0000
4496 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX7_MASK       0x00008000
4497 #                define         NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX7    (1 << 15)
4498 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX7_TRUE       0x0001
4499 #                define NV30_TCL_PRIMITIVE_3D_VP_IN_REG_TEX7_FALSE      0x0000
4500 #       define          NV30_TCL_PRIMITIVE_3D_VP_OUT_REG                        0x00001ff4
4501 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_COL0_MASK      0x00000001
4502 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_COL1_MASK      0x00000002
4503 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_COL1   1 // Nothing to shift
4504 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_COL1_TRUE      0x0001
4505 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_COL1_FALSE     0x0000
4506 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC0_MASK      0x00000004
4507 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC0   (1 << 2)
4508 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC0_TRUE      0x0001
4509 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC0_FALSE     0x0000
4510 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC1_MASK      0x00000008
4511 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC1   (1 << 3)
4512 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC1_TRUE      0x0001
4513 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_BFC1_FALSE     0x0000
4514 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_FOGC_MASK      0x00000010
4515 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_FOGC   (1 << 4)
4516 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_FOGC_TRUE      0x0001
4517 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_FOGC_FALSE     0x0000
4518 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_PSZ_MASK       0x00000020
4519 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_PSZ    (1 << 5)
4520 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_PSZ_TRUE       0x0001
4521 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_PSZ_FALSE      0x0000
4522 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP0_MASK      0x00000040
4523 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP0   (1 << 6)
4524 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP0_TRUE      0x0001
4525 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP0_FALSE     0x0000
4526 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP1_MASK      0x00000080
4527 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP1   (1 << 7)
4528 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP1_TRUE      0x0001
4529 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP1_FALSE     0x0000
4530 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP2_MASK      0x00000100
4531 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP2   (1 << 8)
4532 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP2_TRUE      0x0001
4533 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP2_FALSE     0x0000
4534 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP3_MASK      0x00000200
4535 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP3   (1 << 9)
4536 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP3_TRUE      0x0001
4537 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP3_FALSE     0x0000
4538 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP4_MASK      0x00000400
4539 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP4   (1 << 10)
4540 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP4_TRUE      0x0001
4541 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP4_FALSE     0x0000
4542 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP5_MASK      0x00000800
4543 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP5   (1 << 11)
4544 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP5_TRUE      0x0001
4545 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_CLP5_FALSE     0x0000
4546 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX0_MASK      0x00004000
4547 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX0   (1 << 14)
4548 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX0_TRUE      0x0001
4549 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX0_FALSE     0x0000
4550 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX1_MASK      0x00008000
4551 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX1   (1 << 15)
4552 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX1_TRUE      0x0001
4553 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX1_FALSE     0x0000
4554 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX2_MASK      0x00010000
4555 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX2   (1 << 16)
4556 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX2_TRUE      0x0001
4557 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX2_FALSE     0x0000
4558 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX3_MASK      0x00020000
4559 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX3   (1 << 17)
4560 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX3_TRUE      0x0001
4561 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX3_FALSE     0x0000
4562 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX4_MASK      0x00040000
4563 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX4   (1 << 18)
4564 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX4_TRUE      0x0001
4565 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX4_FALSE     0x0000
4566 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX5_MASK      0x00080000
4567 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX5   (1 << 19)
4568 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX5_TRUE      0x0001
4569 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX5_FALSE     0x0000
4570 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX6_MASK      0x00100000
4571 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX6   (1 << 20)
4572 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX6_TRUE      0x0001
4573 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX6_FALSE     0x0000
4574 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX7_MASK      0x00200000
4575 #                define         NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX7   (1 << 21)
4576 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX7_TRUE      0x0001
4577 #                define NV30_TCL_PRIMITIVE_3D_VP_OUT_REG_TEX7_FALSE     0x0000
4578
4579 /****************************************** 
4580 Object NV40_TCL_PRIMITIVE_3D used on: NV40 G70
4581 */
4582 #define                 NV40_TCL_PRIMITIVE_3D                                   0x00000097
4583 #       define          NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123              0x00000370
4584 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_B_MASK       0x00008000
4585 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_B    (1 << 15)
4586 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_B_TRUE       0x0001
4587 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_B_FALSE      0x0000
4588 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_G_MASK       0x00004000
4589 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_G    (1 << 14)
4590 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_G_TRUE       0x0001
4591 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_G_FALSE      0x0000
4592 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_R_MASK       0x00002000
4593 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_R    (1 << 13)
4594 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_R_TRUE       0x0001
4595 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_R_FALSE      0x0000
4596 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_A_MASK       0x00001000
4597 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_A    (1 << 12)
4598 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_A_TRUE       0x0001
4599 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER3_A_FALSE      0x0000
4600 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_B_MASK       0x00000800
4601 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_B    (1 << 11)
4602 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_B_TRUE       0x0001
4603 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_B_FALSE      0x0000
4604 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_G_MASK       0x00000400
4605 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_G    (1 << 10)
4606 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_G_TRUE       0x0001
4607 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_G_FALSE      0x0000
4608 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_R_MASK       0x00000200
4609 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_R    (1 << 9)
4610 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_R_TRUE       0x0001
4611 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_R_FALSE      0x0000
4612 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_A_MASK       0x00000100
4613 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_A    (1 << 8)
4614 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_A_TRUE       0x0001
4615 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER2_A_FALSE      0x0000
4616 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_B_MASK       0x00000080
4617 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_B    (1 << 7)
4618 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_B_TRUE       0x0001
4619 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_B_FALSE      0x0000
4620 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_G_MASK       0x00000040
4621 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_G    (1 << 6)
4622 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_G_TRUE       0x0001
4623 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_G_FALSE      0x0000
4624 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_R_MASK       0x00000020
4625 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_R    (1 << 5)
4626 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_R_TRUE       0x0001
4627 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_R_FALSE      0x0000
4628 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_A_MASK       0x00000010
4629 #                define         NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_A    (1 << 4)
4630 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_A_TRUE       0x0001
4631 #                define NV40_TCL_PRIMITIVE_3D_COLOR_MASK_BUFFER123_BUFFER1_A_FALSE      0x0000
4632
4633 /****************************************** 
4634 Object NV30_CLEAR_BUFFER used on: NV30 NV40 G70
4635 */
4636 #define                 NV30_CLEAR_BUFFER                                       0x00000066
4637 #       define          NV30_CLEAR_BUFFER_SET_DMA_NOTIFY                        0x00000180
4638 #       define          NV30_CLEAR_BUFFER_SET_IMAGE_PATTERN                     0x00000188
4639 #       define          NV30_CLEAR_BUFFER_SET_RASTER_OP                         0x0000018c
4640 #       define          NV30_CLEAR_BUFFER_SET_CONTEXT_SURFACE_2D                0x00000198
4641 #       define          NV30_CLEAR_BUFFER_UNK002fc                              0x000002fc
4642
4643 /****************************************** 
4644 Object NV50_TCL_PRIMITIVE_3D used on: 
4645 */
4646 #define                 NV50_TCL_PRIMITIVE_3D                                   0x00000097
4647 #       define          NV50_TCL_PRIMITIVE_3D_SET_OBJECT_0( d)                  (0x00000180 + (d) * 0x0004)
4648 #       define          NV50_TCL_PRIMITIVE_3D_SET_OBJECT_1( d)                  (0x000001c0 + (d) * 0x0004)
4649 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_FOG_1F                     0x00000314
4650 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_2F_X                   0x00000380
4651 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_2F_Y                   0x00000384
4652 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_S                   0x000003c0
4653 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_2F_T                   0x000003c4
4654 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_S                   0x000003c8
4655 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_2F_T                   0x000003cc
4656 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_2F_S                   0x000003d0
4657 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_2F_T                   0x000003d4
4658 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_2F_S                   0x000003d8
4659 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_2F_T                   0x000003dc
4660 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_3F_X                   0x00000400
4661 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_3F_Y                   0x00000404
4662 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_3F_Z                   0x00000408
4663 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_X                   0x00000420
4664 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_Y                   0x00000424
4665 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3F_Z                   0x00000428
4666 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL_3F_R                   0x00000430
4667 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL_3F_G                   0x00000434
4668 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL_3F_B                   0x00000438
4669 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_R                  0x00000440
4670 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_G                  0x00000444
4671 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3F_B                  0x00000448
4672 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4F_X                   0x00000500
4673 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4F_Y                   0x00000504
4674 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4F_Z                   0x00000508
4675 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4F_W                   0x0000050c
4676 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4F_R                   0x00000530
4677 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4F_G                   0x00000534
4678 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4F_B                   0x00000538
4679 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4F_A                   0x0000053c
4680 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_S                   0x00000580
4681 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_T                   0x00000584
4682 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_R                   0x00000588
4683 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4F_Q                   0x0000058c
4684 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_S                   0x00000590
4685 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_T                   0x00000594
4686 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_R                   0x00000598
4687 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4F_Q                   0x0000059c
4688 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_S                   0x000005a0
4689 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_T                   0x000005a4
4690 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_R                   0x000005a8
4691 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4F_Q                   0x000005ac
4692 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_S                   0x000005b0
4693 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_T                   0x000005b4
4694 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_R                   0x000005b8
4695 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4F_Q                   0x000005bc
4696 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_2I                     0x000006a0
4697 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_MASK      0xffff0000
4698 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_T_SHIFT     16
4699 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_2I_S_MASK      0x0000ffff
4700 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_2I                     0x000006a4
4701 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_MASK      0xffff0000
4702 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_T_SHIFT     16
4703 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_2I_S_MASK      0x0000ffff
4704 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_2I                     0x000006a8
4705 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_T_MASK      0xffff0000
4706 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_T_SHIFT     16
4707 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_2I_S_MASK      0x0000ffff
4708 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_2I                     0x000006ac
4709 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_T_MASK      0xffff0000
4710 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_T_SHIFT     16
4711 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_2I_S_MASK      0x0000ffff
4712 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY                  0x00000700
4713 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_Y_MASK   0xffff0000
4714 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_Y_SHIFT  16
4715 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_XY_X_MASK   0x0000ffff
4716 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW                  0x00000704
4717 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_W_MASK   0xffff0000
4718 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_W_SHIFT  16
4719 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_POS_4I_ZW_Z_MASK   0x0000ffff
4720 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST                  0x00000740
4721 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_MASK   0xffff0000
4722 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_T_SHIFT  16
4723 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_ST_S_MASK   0x0000ffff
4724 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ                  0x00000744
4725 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_MASK   0xffff0000
4726 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_Q_SHIFT  16
4727 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX0_4I_RQ_R_MASK   0x0000ffff
4728 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST                  0x00000748
4729 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_MASK   0xffff0000
4730 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_T_SHIFT  16
4731 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_ST_S_MASK   0x0000ffff
4732 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ                  0x0000074c
4733 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_MASK   0xffff0000
4734 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_Q_SHIFT  16
4735 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX1_4I_RQ_R_MASK   0x0000ffff
4736 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST                  0x00000750
4737 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_MASK   0xffff0000
4738 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_T_SHIFT  16
4739 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_ST_S_MASK   0x0000ffff
4740 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ                  0x00000754
4741 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_MASK   0xffff0000
4742 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_Q_SHIFT  16
4743 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX2_4I_RQ_R_MASK   0x0000ffff
4744 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST                  0x00000758
4745 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_MASK   0xffff0000
4746 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_T_SHIFT  16
4747 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_ST_S_MASK   0x0000ffff
4748 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ                  0x0000075c
4749 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_MASK   0xffff0000
4750 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_Q_SHIFT  16
4751 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_TX3_4I_RQ_R_MASK   0x0000ffff
4752 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY                  0x00000790
4753 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_MASK   0xffff0000
4754 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_Y_SHIFT  16
4755 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_XY_X_MASK   0x0000ffff
4756 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z                   0x00000794
4757 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_NOR_3I_Z_Z_MASK    0x0000ffff
4758 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I                     0x0000088c
4759 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_MASK      0xff000000
4760 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_A_SHIFT     24
4761 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_MASK      0x00ff0000
4762 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_B_SHIFT     16
4763 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_MASK      0x0000ff00
4764 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_G_SHIFT     8
4765 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL_4I_R_MASK      0x000000ff
4766 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I                    0x00000890
4767 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_MASK     0xff000000
4768 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_A_SHIFT    24
4769 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_MASK     0x00ff0000
4770 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_B_SHIFT    16
4771 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_MASK     0x0000ff00
4772 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_G_SHIFT    8
4773 #                define         NV50_TCL_PRIMITIVE_3D_VERTEX_COL2_3I_R_MASK     0x000000ff
4774 #       define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_UNK0_X                   0x00000a00
4775 #       define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_UNK0_Y                   0x00000a04
4776 #       define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_UNK0_Z                   0x00000a08
4777 #       define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_UNK1_X                   0x00000a0c
4778 #       define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_UNK1_Y                   0x00000a10
4779 #       define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_UNK1_Z                   0x00000a14
4780 #       define          NV50_TCL_PRIMITIVE_3D_DEPTH_RANGE_NEAR                  0x00000c08
4781 #       define          NV50_TCL_PRIMITIVE_3D_DEPTH_RANGE_FAR                   0x00000c0c
4782 #       define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ(d)            (0x00000d00 + (d) * 0x0008)
4783 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_MASK       0xffff0000
4784 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X2_SHIFT      16
4785 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_HORIZ_X1_MASK       0x0000ffff
4786 #       define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT(d)             (0x00000d04 + (d) * 0x0008)
4787 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_MASK        0xffff0000
4788 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y2_SHIFT       16
4789 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_CLIP_VERT_Y1_MASK        0x0000ffff
4790 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_BUFFER_FIRST               0x00000d74
4791 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_BUFFER_COUNT               0x00000d78
4792 #       define          NV50_TCL_PRIMITIVE_3D_CLEAR_COLOR_R                     0x00000d80
4793 #       define          NV50_TCL_PRIMITIVE_3D_CLEAR_COLOR_G                     0x00000d84
4794 #       define          NV50_TCL_PRIMITIVE_3D_CLEAR_COLOR_B                     0x00000d88
4795 #       define          NV50_TCL_PRIMITIVE_3D_CLEAR_COLOR_A                     0x00000d8c
4796 #       define          NV50_TCL_PRIMITIVE_3D_CLEAR_DEPTH                       0x00000d90
4797 #       define          NV50_TCL_PRIMITIVE_3D_CLEAR_STENCIL                     0x00000da0
4798 #       define          NV50_TCL_PRIMITIVE_3D_POLYGON_MODE_FRONT                0x00000dac
4799 #       define          NV50_TCL_PRIMITIVE_3D_POLYGON_MODE_BACK                 0x00000db0
4800 #       define          NV50_TCL_PRIMITIVE_3D_POLYGON_SMOOTH_ENABLE             0x00000db4
4801 #       define          NV50_TCL_PRIMITIVE_3D_POLYGON_OFFSET_POINT_ENABLE       0x00000dc0
4802 #       define          NV50_TCL_PRIMITIVE_3D_POLYGON_OFFSET_LINE_ENABLE        0x00000dc4
4803 #       define          NV50_TCL_PRIMITIVE_3D_POLYGON_OFFSET_FILL_ENABLE        0x00000dc8
4804 #       define          NV50_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS                0x00000e04
4805 #                define         NV50_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_W_MASK 0xffff0000
4806 #                define         NV50_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_W_SHIFT        16
4807 #                define         NV50_TCL_PRIMITIVE_3D_SCISSOR_WIDTH_XPOS_X_MASK 0x0000ffff
4808 #       define          NV50_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS               0x00000e08
4809 #                define         NV50_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_H_MASK        0xffff0000
4810 #                define         NV50_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_H_SHIFT       16
4811 #                define         NV50_TCL_PRIMITIVE_3D_SCISSOR_HEIGHT_YPOS_Y_MASK        0x0000ffff
4812 #       define          NV50_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_ID                0x00000f00
4813 #       define          NV50_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_X                 0x00000f04
4814 #       define          NV50_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_Y                 0x00000f08
4815 #       define          NV50_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_Z                 0x00000f0c
4816 #       define          NV50_TCL_PRIMITIVE_3D_VP_UPLOAD_CONST_W                 0x00000f10
4817 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_FRONT_FUNC_REF            0x00000f54
4818 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_FRONT_MASK                0x00000f58
4819 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_FRONT_FUNC_MASK           0x00000f5c
4820 #       define          NV50_TCL_PRIMITIVE_3D_DEPTH_TEST_ENABLE                 0x000012cc
4821 #       define          NV50_TCL_PRIMITIVE_3D_SHADE_MODEL                       0x000012d4
4822 #       define          NV50_TCL_PRIMITIVE_3D_DEPTH_WRITE_ENABLE                0x000012e8
4823 #       define          NV50_TCL_PRIMITIVE_3D_ALPHA_FUNC_ENABLE                 0x000012ec
4824 #       define          NV50_TCL_PRIMITIVE_3D_DEPTH_FUNC                        0x0000130c
4825 #       define          NV50_TCL_PRIMITIVE_3D_ALPHA_FUNC_REF                    0x00001310
4826 #       define          NV50_TCL_PRIMITIVE_3D_ALPHA_FUNC_FUNC                   0x00001314
4827 #       define          NV50_TCL_PRIMITIVE_3D_BLEND_COLOR_R                     0x0000131c
4828 #       define          NV50_TCL_PRIMITIVE_3D_BLEND_COLOR_G                     0x00001320
4829 #       define          NV50_TCL_PRIMITIVE_3D_BLEND_COLOR_B                     0x00001324
4830 #       define          NV50_TCL_PRIMITIVE_3D_BLEND_COLOR_A                     0x00001328
4831 #       define          NV50_TCL_PRIMITIVE_3D_BLEND_EQUATION_RGB                0x00001340
4832 #       define          NV50_TCL_PRIMITIVE_3D_BLEND_FUNC_SRC_RGB                0x00001344
4833 #       define          NV50_TCL_PRIMITIVE_3D_BLEND_FUNC_DST_RGB                0x00001348
4834 #       define          NV50_TCL_PRIMITIVE_3D_BLEND_EQUATION_ALPHA              0x0000134c
4835 #       define          NV50_TCL_PRIMITIVE_3D_BLEND_FUNC_SRC_ALPHA              0x00001350
4836 #       define          NV50_TCL_PRIMITIVE_3D_BLEND_FUNC_DST_ALPHA              0x00001358
4837 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_BACK_ENABLE               0x00001380
4838 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_BACK_OP_FAIL              0x00001384
4839 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_BACK_OP_ZFAIL             0x00001388
4840 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_BACK_OP_ZPASS             0x0000138c
4841 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_BACK_FUNC_FUNC            0x00001390
4842 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_BACK_FUNC_REF             0x00001394
4843 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_BACK_MASK                 0x00001398
4844 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_BACK_FUNC_MASK            0x0000139c
4845 #       define          NV50_TCL_PRIMITIVE_3D_LINE_WIDTH                        0x000013b0
4846 #       define          NV50_TCL_PRIMITIVE_3D_POINT_SIZE                        0x00001518
4847 #       define          NV50_TCL_PRIMITIVE_3D_POLYGON_OFFSET_FACTOR             0x0000156c
4848 #       define          NV50_TCL_PRIMITIVE_3D_LINE_SMOOTH_ENABLE                0x00001570
4849 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_FRONT_ENABLE              0x00001594
4850 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_FRONT_OP_FAIL             0x00001598
4851 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_FRONT_OP_ZFAIL            0x0000159c
4852 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_FRONT_OP_ZPASS            0x000015a0
4853 #       define          NV50_TCL_PRIMITIVE_3D_STENCIL_FRONT_FUNC_FUNC           0x000015a4
4854 #       define          NV50_TCL_PRIMITIVE_3D_POLYGON_OFFSET_UNITS              0x000015bc
4855 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_BEGIN                      0x000015dc
4856 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_END                        0x000015e0
4857 #       define          NV50_TCL_PRIMITIVE_3D_VERTEX_DATA                       0x00001640
4858 #       define          NV50_TCL_PRIMITIVE_3D_LINE_STIPPLE_ENABLE               0x0000166c
4859 #       define          NV50_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN              0x00001680
4860 #                define         NV50_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_PATTERN_MASK 0x00ffff00
4861 #                define         NV50_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_PATTERN_SHIFT        8
4862 #                define         NV50_TCL_PRIMITIVE_3D_LINE_STIPPLE_PATTERN_FACTOR_MASK  0x000000ff
4863 #       define          NV50_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_ENABLE            0x0000168c
4864 #       define          NV50_TCL_PRIMITIVE_3D_POLYGON_STIPPLE_PATTERN( d)       (0x00001700 + (d) * 0x0004)
4865 #       define          NV50_TCL_PRIMITIVE_3D_CULL_FACE_ENABLE                  0x00001918
4866 #       define          NV50_TCL_PRIMITIVE_3D_FRONT_FACE                        0x0000191c
4867 #       define          NV50_TCL_PRIMITIVE_3D_CULL_FACE                         0x00001920
4868 #       define          NV50_TCL_PRIMITIVE_3D_LOGIC_OP_ENABLE                   0x000019c4
4869 #       define          NV50_TCL_PRIMITIVE_3D_LOGIC_OP_OP                       0x000019c8
4870 #       define          NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS                     0x000019d0
4871 #                define         NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS_COLOR_MASK  0x0000003c
4872 #                define         NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS_COLOR_SHIFT 2
4873 #                define         NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS_STENCIL_MASK        0x00000002
4874 #                define         NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS_STENCIL     1 // Nothing to shift
4875 #                define         NV50_TCL_PRIMITIVE_3D_CLEAR_BUFFERS_DEPTH_MASK  0x00000001
4876 #       define          NV50_TCL_PRIMITIVE_3D_COLOR_MASK( d)                    (0x00001a00 + (d) * 0x0004)
4877 #                define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_A_MASK 0x0000f000
4878 #                define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_A_SHIFT        12
4879 #                define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_A_TRUE 0x0001
4880 #                define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_A_FALSE        0x0000
4881 #                define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_B_MASK 0x00000f00
4882 #                define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_B_SHIFT        8
4883 #                define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_B_TRUE 0x0001
4884 #                define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_B_FALSE        0x0000
4885 #                define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_G_MASK 0x000000f0
4886 #                define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_G_SHIFT        4
4887 #                define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_G_TRUE 0x0001
4888 #                define NV50_TCL_PRIMITIVE_3D_COLOR_MASK_G_FALSE        0x0000
4889 #                define         NV50_TCL_PRIMITIVE_3D_COLOR_MASK_R_MASK 0x0000000f
4890 #       define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0                   0x00000c00
4891 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_WIDTH_MASK        0xffff0000
4892 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_WIDTH_SHIFT       16
4893 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_0_X_OFFSET_MASK     0x0000ffff
4894 #       define          NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1                   0x00000c04
4895 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_HEIGHT_MASK       0xffff0000
4896 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_HEIGHT_SHIFT      16
4897 #                define         NV50_TCL_PRIMITIVE_3D_VIEWPORT_DIMS_1_Y_OFFSET_MASK     0x0000ffff
4898
4899 /****************************************** 
4900 Object NV_DMA_FROM_MEMORY used on: NV03 NV04 NV10 NV15 NV20 NV30 NV40 G70
4901 */
4902 #define                 NV_DMA_FROM_MEMORY                                      0x00000002
4903
4904 /****************************************** 
4905 Object NV_DMA_TO_MEMORY used on: NV03 NV04 NV10 NV15 NV20 NV30 NV40 G70
4906 */
4907 #define                 NV_DMA_TO_MEMORY                                        0x00000003
4908
4909 /****************************************** 
4910 Object NV_DMA_IN_MEMORY used on: NV03 NV04 NV10 NV15 NV20 NV30 NV40 G70
4911 */
4912 #define                 NV_DMA_IN_MEMORY                                        0x0000003d
4913
4914 /****************************************** 
4915 Object NvType0046 used on: NV04 
4916 */
4917 #define                 NvType0046                                              0x00000046
4918 #       define          NvType0046_DMA_NOTIFY                                   0x00000180
4919 #       define          NvType0046_DMA_MEM_1                                    0x00000184
4920 #       define          NvType0046_DMA_MEM_2                                    0x00000188
4921 #       define          NvType0046_DMA_3                                        0x0000018c
4922 #       define          NvType0046_DMA_4                                        0x00000190
4923 #       define          NvType0046_OBJ_5                                        0x00000194
4924 #       define          NvType0046_OBJ_6                                        0x00000198
4925 #       define          NvType0046_PITCH1                                       0x00000304
4926 #       define          NvType0046_PITCH2                                       0x0000030c
4927 #       define          NvType0046_SIZE                                         0x00000340
4928 #                define         NvType0046_SIZE_WIDTH_MASK      0x0000ffff
4929 #                define         NvType0046_SIZE_HEIGHT_MASK     0xffff0000
4930 #                define         NvType0046_SIZE_HEIGHT_SHIFT    16
4931 #       define          NvType0046_WIDTH                                        0x00000344
4932 #                define         NvType0046_WIDTH_VISIBLE_WIDTH_MASK     0x0000ffff
4933 #                define         NvType0046_WIDTH_BLANK_WIDTH_MASK       0xffff0000
4934 #                define         NvType0046_WIDTH_BLANK_WIDTH_SHIFT      16
4935 #       define          NvType0046_HSYNC                                        0x00000348
4936 #                define         NvType0046_HSYNC_HSYNC_START_MASK       0x0000ffff
4937 #                define         NvType0046_HSYNC_HSYNC_LEN_MASK 0xffff0000
4938 #                define         NvType0046_HSYNC_HSYNC_LEN_SHIFT        16
4939 #       define          NvType0046_HEIGHT                                       0x0000034c
4940 #                define         NvType0046_HEIGHT_VISIBLE_HEIGHT_MASK   0x0000ffff
4941 #                define         NvType0046_HEIGHT_BLANK_HEIGHT_MASK     0xffff0000
4942 #                define         NvType0046_HEIGHT_BLANK_HEIGHT_SHIFT    16
4943 #       define          NvType0046_VSYNC                                        0x00000350
4944 #                define         NvType0046_VSYNC_VSYNC_START_MASK       0x0000ffff
4945 #                define         NvType0046_VSYNC_VSYNC_LEN_MASK 0xffff0000
4946 #                define         NvType0046_VSYNC_VSYNC_LEN_SHIFT        16
4947 #       define          NvType0046_FULL_SIZE                                    0x00000354
4948 #                define         NvType0046_FULL_SIZE_FULL_WIDTH_MASK    0x0000ffff
4949 #                define         NvType0046_FULL_SIZE_FULL_HEIGHT_MASK   0xffff0000
4950 #                define         NvType0046_FULL_SIZE_FULL_HEIGHT_SHIFT  16
4951 #       define          NvType0046_PIXEL_CLK                                    0x00000358
4952 #       define          NvType0046_FLAGS                                        0x0000035c
4953 #                define         NvType0046_FLAGS_DOUBLESCAN_MASK        0x00000002
4954 #                define         NvType0046_FLAGS_DOUBLESCAN     1 // Nothing to shift
4955 #                define NvType0046_FLAGS_DOUBLESCAN_TRUE        0x0001
4956 #                define NvType0046_FLAGS_DOUBLESCAN_FALSE       0x0000
4957 #                define         NvType0046_FLAGS_NEG_HSYNC_MASK 0x00000008
4958 #                define         NvType0046_FLAGS_NEG_HSYNC      (1 << 3)
4959 #                define NvType0046_FLAGS_NEG_HSYNC_TRUE 0x0001
4960 #                define NvType0046_FLAGS_NEG_HSYNC_FALSE        0x0000
4961 #                define         NvType0046_FLAGS_NEG_VSYNC_MASK 0x00000010
4962 #                define         NvType0046_FLAGS_NEG_VSYNC      (1 << 4)
4963 #                define NvType0046_FLAGS_NEG_VSYNC_TRUE 0x0001
4964 #                define NvType0046_FLAGS_NEG_VSYNC_FALSE        0x0000
4965 #                define         NvType0046_FLAGS_DEPTH_MASK     0x00030000
4966 #                define         NvType0046_FLAGS_DEPTH_SHIFT    16
4967 #                define NvType0046_FLAGS_DEPTH_8 bpp    0x0000
4968 #                define NvType0046_FLAGS_DEPTH_16 bpp   0x0001
4969 #                define NvType0046_FLAGS_DEPTH_15 bpp   0x0002
4970 #                define NvType0046_FLAGS_DEPTH_24 bpp   0x0003
4971
4972 /****************************************** 
4973 Object NvType0047 used on: NV04 
4974 */
4975 #define                 NvType0047                                              0x00000047
4976 #       define          NvType0047_DMA_NOTIFY                                   0x00000180
4977 #       define          NvType0047_UNK19C                                       0x0000019c
4978 #       define          NvType0047_UNK1A0                                       0x000001a0
4979
4980 /****************************************** 
4981 Object NvType0049 used on: NV04 
4982 */
4983 #define                 NvType0049                                              0x00000049
4984 #       define          NvType0049_DMA_NOTIFY                                   0x00000180
4985 #       define          NvType0049_DMA_MEM_1                                    0x00000184
4986 #       define          NvType0049_DMA_MEM_2                                    0x00000188
4987
4988 /****************************************** 
4989 Object NvType004D used on: NV04 
4990 */
4991 #define                 NvType004D                                              0x0000004d
4992 #       define          NvType004D_DMA_NOTIFY                                   0x00000180
4993 #       define          NvType004D_DMA_MEM_1                                    0x00000184
4994 #       define          NvType004D_DMA_MEM_2                                    0x00000188
4995 #       define          NvType004D_DMA_MEM_3                                    0x0000018c
4996 #       define          NvType004D_DMA_MEM_4                                    0x00000190
4997
4998 #endif /* _NOUVEAU_REG_H */