1/*************************************************************************
2
3   Autogenerated file, do not edit !
4
5**************************************************************************
6
7   Copyright (C) 2006-2008 :
8   Dmitry Baryshkov,
9   Laurent Carlier,
10   Matthieu Castet,
11   Dawid Gajownik,
12   Jeremy Kolb,
13   Stephane Loeuillet,
14   Patrice Mandin,
15   Stephane Marchesin,
16   Serge Martin,
17   Sylvain Munaut,
18   Simon Raffeiner,
19   Ben Skeggs,
20   Erik Waling,
21   koala_br,
22
23All Rights Reserved.
24
25Permission is hereby granted, free of charge, to any person obtaining
26a copy of this software and associated documentation files (the
27"Software"), to deal in the Software without restriction, including
28without limitation the rights to use, copy, modify, merge, publish,
29distribute, sublicense, and/or sell copies of the Software, and to
30permit persons to whom the Software is furnished to do so, subject to
31the following conditions:
32
33The above copyright notice and this permission notice (including the
34next paragraph) shall be included in all copies or substantial
35portions of the Software.
36
37THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
38EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
39MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
40IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
41LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
42OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
43WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
44
45*************************************************************************/
46
47
48#ifndef NOUVEAU_REG_H
49#define NOUVEAU_REG_H 1
50
51
52#define NV01_ROOT									0x00000001
53
54
55
56#define NV01_CONTEXT_DMA								0x00000002
57
58
59
60#define NV01_DEVICE									0x00000003
61
62
63
64#define NV01_TIMER									0x00000004
65
66#define  NV01_TIMER_SYNCHRONIZE								0x00000100
67#define  NV01_TIMER_STOP_ALARM								0x00000104
68#define  NV01_TIMER_DMA_NOTIFY								0x00000180
69#define  NV01_TIMER_TIME(x)								(0x00000300+((x)*4))
70#define  NV01_TIMER_TIME__SIZE								0x00000002
71#define  NV01_TIMER_ALARM_NOTIFY							0x00000308
72
73
74#define NV_IMAGE_STENCIL								0x00000010
75
76#define  NV_IMAGE_STENCIL_NOTIFY							0x00000104
77#define  NV_IMAGE_STENCIL_DMA_NOTIFY							0x00000180
78#define  NV_IMAGE_STENCIL_IMAGE_OUTPUT							0x00000200
79#define  NV_IMAGE_STENCIL_IMAGE_INPUT(x)						(0x00000204+((x)*4))
80#define  NV_IMAGE_STENCIL_IMAGE_INPUT__SIZE						0x00000002
81
82
83#define NV_IMAGE_BLEND_AND								0x00000011
84
85#define  NV_IMAGE_BLEND_AND_NOP								0x00000100
86#define  NV_IMAGE_BLEND_AND_NOTIFY							0x00000104
87#define  NV_IMAGE_BLEND_AND_DMA_NOTIFY							0x00000180
88#define  NV_IMAGE_BLEND_AND_IMAGE_OUTPUT						0x00000200
89#define  NV_IMAGE_BLEND_AND_BETA_INPUT							0x00000204
90#define  NV_IMAGE_BLEND_AND_IMAGE_INPUT							0x00000208
91
92
93#define NV01_CONTEXT_BETA1								0x00000012
94
95#define  NV01_CONTEXT_BETA1_NOP								0x00000100
96#define  NV01_CONTEXT_BETA1_NOTIFY							0x00000104
97#define  NV01_CONTEXT_BETA1_DMA_NOTIFY							0x00000180
98#define  NV01_CONTEXT_BETA1_BETA_1D31							0x00000300
99
100
101#define NV_IMAGE_ROP_AND								0x00000013
102
103#define  NV_IMAGE_ROP_AND_NOTIFY							0x00000104
104#define  NV_IMAGE_ROP_AND_DMA_NOTIFY							0x00000180
105#define  NV_IMAGE_ROP_AND_IMAGE_OUTPUT							0x00000200
106#define  NV_IMAGE_ROP_AND_ROP_INPUT							0x00000204
107#define  NV_IMAGE_ROP_AND_IMAGE_INPUT(x)						(0x00000208+((x)*4))
108#define  NV_IMAGE_ROP_AND_IMAGE_INPUT__SIZE						0x00000002
109
110
111#define NV_IMAGE_COLOR_KEY								0x00000015
112
113
114
115#define NV01_CONTEXT_COLOR_KEY								0x00000017
116
117#define  NV01_CONTEXT_COLOR_KEY_NOP							0x00000100
118#define  NV01_CONTEXT_COLOR_KEY_NOTIFY							0x00000104
119#define  NV01_CONTEXT_COLOR_KEY_DMA_NOTIFY						0x00000180
120#define  NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT						0x00000300
121#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16A8Y8					0x00000001
122#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X24Y8					0x00000002
123#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16A1R5G5B5				0x00000003
124#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X17R5G5B5					0x00000004
125#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A8R8G8B8					0x00000005
126#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X8R8G8B8					0x00000006
127#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_A16Y16					0x00000007
128#define   NV01_CONTEXT_COLOR_KEY_COLOR_FORMAT_X16Y16					0x00000008
129#define  NV01_CONTEXT_COLOR_KEY_COLOR							0x00000304
130
131
132#define NV01_CONTEXT_PATTERN								0x00000018
133
134#define  NV01_CONTEXT_PATTERN_NOP							0x00000100
135#define  NV01_CONTEXT_PATTERN_NOTIFY							0x00000104
136#define  NV01_CONTEXT_PATTERN_DMA_NOTIFY						0x00000180
137#define  NV01_CONTEXT_PATTERN_COLOR_FORMAT						0x00000300
138#define  NV01_CONTEXT_PATTERN_MONOCHROME_FORMAT						0x00000304
139#define  NV01_CONTEXT_PATTERN_SHAPE							0x00000308
140#define  NV01_CONTEXT_PATTERN_COLOR(x)							(0x00000310+((x)*4))
141#define  NV01_CONTEXT_PATTERN_COLOR__SIZE						0x00000002
142#define  NV01_CONTEXT_PATTERN_PATTERN(x)						(0x00000318+((x)*4))
143#define  NV01_CONTEXT_PATTERN_PATTERN__SIZE						0x00000002
144
145
146#define NV01_CONTEXT_CLIP_RECTANGLE							0x00000019
147
148#define  NV01_CONTEXT_CLIP_RECTANGLE_NOP						0x00000100
149#define  NV01_CONTEXT_CLIP_RECTANGLE_NOTIFY						0x00000104
150#define  NV01_CONTEXT_CLIP_RECTANGLE_DMA_NOTIFY						0x00000180
151#define  NV01_CONTEXT_CLIP_RECTANGLE_POINT						0x00000300
152#define   NV01_CONTEXT_CLIP_RECTANGLE_POINT_X_SHIFT					0
153#define   NV01_CONTEXT_CLIP_RECTANGLE_POINT_X_MASK					0x0000ffff
154#define   NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y_SHIFT					16
155#define   NV01_CONTEXT_CLIP_RECTANGLE_POINT_Y_MASK					0xffff0000
156#define  NV01_CONTEXT_CLIP_RECTANGLE_SIZE						0x00000304
157#define   NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W_SHIFT					0
158#define   NV01_CONTEXT_CLIP_RECTANGLE_SIZE_W_MASK					0x0000ffff
159#define   NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H_SHIFT					16
160#define   NV01_CONTEXT_CLIP_RECTANGLE_SIZE_H_MASK					0xffff0000
161
162
163#define NV01_RENDER_SOLID_LINE								0x0000001c
164
165#define  NV01_RENDER_SOLID_LINE_NOP							0x00000100
166#define  NV01_RENDER_SOLID_LINE_NOTIFY							0x00000104
167#define  NV01_RENDER_SOLID_LINE_PATCH							0x0000010c
168#define  NV01_RENDER_SOLID_LINE_DMA_NOTIFY						0x00000180
169#define  NV01_RENDER_SOLID_LINE_CLIP_RECTANGLE						0x00000184
170#define  NV01_RENDER_SOLID_LINE_PATTERN							0x00000188
171#define  NV01_RENDER_SOLID_LINE_ROP							0x0000018c
172#define  NV01_RENDER_SOLID_LINE_BETA1							0x00000190
173#define  NV01_RENDER_SOLID_LINE_SURFACE							0x00000194
174#define  NV01_RENDER_SOLID_LINE_OPERATION						0x000002fc
175#define   NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_AND					0x00000000
176#define   NV01_RENDER_SOLID_LINE_OPERATION_ROP_AND					0x00000001
177#define   NV01_RENDER_SOLID_LINE_OPERATION_BLEND_AND					0x00000002
178#define   NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY					0x00000003
179#define   NV01_RENDER_SOLID_LINE_OPERATION_SRCCOPY_PREMULT				0x00000004
180#define   NV01_RENDER_SOLID_LINE_OPERATION_BLEND_PREMULT				0x00000005
181#define  NV01_RENDER_SOLID_LINE_COLOR_FORMAT						0x00000300
182#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16A8Y8					0x00000001
183#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X24Y8					0x00000002
184#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16A1R5G5B5				0x00000003
185#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X17R5G5B5					0x00000004
186#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A8R8G8B8					0x00000005
187#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X8R8G8B8					0x00000006
188#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_A16Y16					0x00000007
189#define   NV01_RENDER_SOLID_LINE_COLOR_FORMAT_X16Y16					0x00000008
190#define  NV01_RENDER_SOLID_LINE_COLOR							0x00000304
191#define  NV01_RENDER_SOLID_LINE_LINE_POINT0(x)						(0x00000400+((x)*8))
192#define  NV01_RENDER_SOLID_LINE_LINE_POINT0__SIZE					0x00000010
193#define   NV01_RENDER_SOLID_LINE_LINE_POINT0_X_SHIFT					0
194#define   NV01_RENDER_SOLID_LINE_LINE_POINT0_X_MASK					0x0000ffff
195#define   NV01_RENDER_SOLID_LINE_LINE_POINT0_Y_SHIFT					16
196#define   NV01_RENDER_SOLID_LINE_LINE_POINT0_Y_MASK					0xffff0000
197#define  NV01_RENDER_SOLID_LINE_LINE_POINT1(x)						(0x00000404+((x)*8))
198#define  NV01_RENDER_SOLID_LINE_LINE_POINT1__SIZE					0x00000010
199#define   NV01_RENDER_SOLID_LINE_LINE_POINT1_X_SHIFT					0
200#define   NV01_RENDER_SOLID_LINE_LINE_POINT1_X_MASK					0x0000ffff
201#define   NV01_RENDER_SOLID_LINE_LINE_POINT1_Y_SHIFT					16
202#define   NV01_RENDER_SOLID_LINE_LINE_POINT1_Y_MASK					0xffff0000
203#define  NV01_RENDER_SOLID_LINE_LINE32_POINT0_X(x)					(0x00000480+((x)*16))
204#define  NV01_RENDER_SOLID_LINE_LINE32_POINT0_X__SIZE					0x00000010
205#define  NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y(x)					(0x00000484+((x)*16))
206#define  NV01_RENDER_SOLID_LINE_LINE32_POINT0_Y__SIZE					0x00000010
207#define  NV01_RENDER_SOLID_LINE_LINE32_POINT1_X(x)					(0x00000488+((x)*16))
208#define  NV01_RENDER_SOLID_LINE_LINE32_POINT1_X__SIZE					0x00000010
209#define  NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y(x)					(0x0000048c+((x)*16))
210#define  NV01_RENDER_SOLID_LINE_LINE32_POINT1_Y__SIZE					0x00000010
211#define  NV01_RENDER_SOLID_LINE_POLYLINE(x)						(0x00000500+((x)*4))
212#define  NV01_RENDER_SOLID_LINE_POLYLINE__SIZE						0x00000020
213#define   NV01_RENDER_SOLID_LINE_POLYLINE_X_SHIFT					0
214#define   NV01_RENDER_SOLID_LINE_POLYLINE_X_MASK					0x0000ffff
215#define   NV01_RENDER_SOLID_LINE_POLYLINE_Y_SHIFT					16
216#define   NV01_RENDER_SOLID_LINE_POLYLINE_Y_MASK					0xffff0000
217#define  NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X(x)					(0x00000580+((x)*8))
218#define  NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_X__SIZE				0x00000010
219#define  NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y(x)					(0x00000584+((x)*8))
220#define  NV01_RENDER_SOLID_LINE_POLYLINE32_POINT_Y__SIZE				0x00000010
221#define  NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR(x)					(0x00000600+((x)*8))
222#define  NV01_RENDER_SOLID_LINE_CPOLYLINE_COLOR__SIZE					0x00000010
223#define  NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT(x)					(0x00000604+((x)*8))
224#define  NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT__SIZE					0x00000010
225#define   NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X_SHIFT				0
226#define   NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_X_MASK					0x0000ffff
227#define   NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y_SHIFT				16
228#define   NV01_RENDER_SOLID_LINE_CPOLYLINE_POINT_Y_MASK					0xffff0000
229
230
231#define NV01_RENDER_SOLID_TRIANGLE							0x0000001d
232
233#define  NV01_RENDER_SOLID_TRIANGLE_NOP							0x00000100
234#define  NV01_RENDER_SOLID_TRIANGLE_NOTIFY						0x00000104
235#define  NV01_RENDER_SOLID_TRIANGLE_PATCH						0x0000010c
236#define  NV01_RENDER_SOLID_TRIANGLE_DMA_NOTIFY						0x00000180
237#define  NV01_RENDER_SOLID_TRIANGLE_CLIP_RECTANGLE					0x00000184
238#define  NV01_RENDER_SOLID_TRIANGLE_PATTERN						0x00000188
239#define  NV01_RENDER_SOLID_TRIANGLE_ROP							0x0000018c
240#define  NV01_RENDER_SOLID_TRIANGLE_BETA1						0x00000190
241#define  NV01_RENDER_SOLID_TRIANGLE_SURFACE						0x00000194
242#define  NV01_RENDER_SOLID_TRIANGLE_OPERATION						0x000002fc
243#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_AND				0x00000000
244#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_ROP_AND					0x00000001
245#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_AND				0x00000002
246#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY					0x00000003
247#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_SRCCOPY_PREMULT				0x00000004
248#define   NV01_RENDER_SOLID_TRIANGLE_OPERATION_BLEND_PREMULT				0x00000005
249#define  NV01_RENDER_SOLID_TRIANGLE_COLOR_FORMAT					0x00000300
250#define  NV01_RENDER_SOLID_TRIANGLE_COLOR						0x00000304
251#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0					0x00000310
252#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X_SHIFT				0
253#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_X_MASK				0x0000ffff
254#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y_SHIFT				16
255#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT0_Y_MASK				0xffff0000
256#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1					0x00000314
257#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X_SHIFT				0
258#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_X_MASK				0x0000ffff
259#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y_SHIFT				16
260#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT1_Y_MASK				0xffff0000
261#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2					0x00000318
262#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X_SHIFT				0
263#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_X_MASK				0x0000ffff
264#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y_SHIFT				16
265#define   NV01_RENDER_SOLID_TRIANGLE_TRIANGLE_POINT2_Y_MASK				0xffff0000
266#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_X					0x00000320
267#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT0_Y					0x00000324
268#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_X					0x00000328
269#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT1_Y					0x0000032c
270#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_X					0x00000330
271#define  NV01_RENDER_SOLID_TRIANGLE_TRIANGLE32_POINT2_Y					0x00000334
272#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH(x)						(0x00000400+((x)*4))
273#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH__SIZE					0x00000020
274#define   NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X_SHIFT					0
275#define   NV01_RENDER_SOLID_TRIANGLE_TRIMESH_X_MASK					0x0000ffff
276#define   NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y_SHIFT					16
277#define   NV01_RENDER_SOLID_TRIANGLE_TRIMESH_Y_MASK					0xffff0000
278#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X(x)				(0x00000480+((x)*8))
279#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_X__SIZE				0x00000010
280#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y(x)				(0x00000484+((x)*8))
281#define  NV01_RENDER_SOLID_TRIANGLE_TRIMESH32_POINT_Y__SIZE				0x00000010
282#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR(x)					(0x00000500+((x)*16))
283#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_COLOR__SIZE				0x00000008
284#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0(x)					(0x00000504+((x)*16))
285#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0__SIZE				0x00000008
286#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X_SHIFT				0
287#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_X_MASK				0x0000ffff
288#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y_SHIFT				16
289#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT0_Y_MASK				0xffff0000
290#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1(x)					(0x00000508+((x)*16))
291#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1__SIZE				0x00000008
292#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X_SHIFT				0
293#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_X_MASK				0x0000ffff
294#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y_SHIFT				16
295#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT1_Y_MASK				0xffff0000
296#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2(x)					(0x0000050c+((x)*16))
297#define  NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2__SIZE				0x00000008
298#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X_SHIFT				0
299#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_X_MASK				0x0000ffff
300#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y_SHIFT				16
301#define   NV01_RENDER_SOLID_TRIANGLE_CTRIANGLE_POINT2_Y_MASK				0xffff0000
302#define  NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR(x)					(0x00000580+((x)*8))
303#define  NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_COLOR__SIZE				0x00000010
304#define  NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT(x)					(0x00000584+((x)*8))
305#define  NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT__SIZE				0x00000010
306#define   NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X_SHIFT				0
307#define   NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_X_MASK				0x0000ffff
308#define   NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y_SHIFT				16
309#define   NV01_RENDER_SOLID_TRIANGLE_CTRIMESH_POINT_Y_MASK				0xffff0000
310
311
312#define NV01_RENDER_SOLID_RECTANGLE							0x0000001e
313
314#define  NV01_RENDER_SOLID_RECTANGLE_NOP						0x00000100
315#define  NV01_RENDER_SOLID_RECTANGLE_NOTIFY						0x00000104
316#define  NV01_RENDER_SOLID_RECTANGLE_PATCH						0x0000010c
317#define  NV01_RENDER_SOLID_RECTANGLE_DMA_NOTIFY						0x00000180
318#define  NV01_RENDER_SOLID_RECTANGLE_CLIP_RECTANGLE					0x00000184
319#define  NV01_RENDER_SOLID_RECTANGLE_PATTERN						0x00000188
320#define  NV01_RENDER_SOLID_RECTANGLE_ROP						0x0000018c
321#define  NV01_RENDER_SOLID_RECTANGLE_BETA1						0x00000190
322#define  NV01_RENDER_SOLID_RECTANGLE_SURFACE						0x00000194
323#define  NV01_RENDER_SOLID_RECTANGLE_OPERATION						0x000002fc
324#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_AND				0x00000000
325#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_ROP_AND					0x00000001
326#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_AND				0x00000002
327#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY					0x00000003
328#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_SRCCOPY_PREMULT				0x00000004
329#define   NV01_RENDER_SOLID_RECTANGLE_OPERATION_BLEND_PREMULT				0x00000005
330#define  NV01_RENDER_SOLID_RECTANGLE_COLOR_FORMAT					0x00000300
331#define  NV01_RENDER_SOLID_RECTANGLE_COLOR						0x00000304
332#define  NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT(x)					(0x00000400+((x)*8))
333#define  NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT__SIZE				0x00000010
334#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X_SHIFT				0
335#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_X_MASK				0x0000ffff
336#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y_SHIFT				16
337#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_POINT_Y_MASK				0xffff0000
338#define  NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE(x)					(0x00000404+((x)*8))
339#define  NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE__SIZE				0x00000010
340#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W_SHIFT				0
341#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_W_MASK				0x0000ffff
342#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H_SHIFT				16
343#define   NV01_RENDER_SOLID_RECTANGLE_RECTANGLE_SIZE_H_MASK				0xffff0000
344
345
346#define NV01_IMAGE_BLIT									0x0000001f
347
348#define  NV01_IMAGE_BLIT_NOP								0x00000100
349#define  NV01_IMAGE_BLIT_NOTIFY								0x00000104
350#define  NV01_IMAGE_BLIT_PATCH								0x0000010c
351#define  NV01_IMAGE_BLIT_DMA_NOTIFY							0x00000180
352#define  NV01_IMAGE_BLIT_COLOR_KEY							0x00000184
353#define  NV01_IMAGE_BLIT_CLIP_RECTANGLE							0x00000188
354#define  NV01_IMAGE_BLIT_PATTERN							0x0000018c
355#define  NV01_IMAGE_BLIT_ROP								0x00000190
356#define  NV01_IMAGE_BLIT_BETA1								0x00000194
357#define  NV01_IMAGE_BLIT_SURFACE							0x0000019c
358#define  NV01_IMAGE_BLIT_OPERATION							0x000002fc
359#define  NV01_IMAGE_BLIT_IMAGE_INPUT							0x00000204
360#define  NV01_IMAGE_BLIT_POINT_IN							0x00000300
361#define   NV01_IMAGE_BLIT_POINT_IN_X_SHIFT						0
362#define   NV01_IMAGE_BLIT_POINT_IN_X_MASK						0x0000ffff
363#define   NV01_IMAGE_BLIT_POINT_IN_Y_SHIFT						16
364#define   NV01_IMAGE_BLIT_POINT_IN_Y_MASK						0xffff0000
365#define  NV01_IMAGE_BLIT_POINT_OUT							0x00000304
366#define   NV01_IMAGE_BLIT_POINT_OUT_X_SHIFT						0
367#define   NV01_IMAGE_BLIT_POINT_OUT_X_MASK						0x0000ffff
368#define   NV01_IMAGE_BLIT_POINT_OUT_Y_SHIFT						16
369#define   NV01_IMAGE_BLIT_POINT_OUT_Y_MASK						0xffff0000
370#define  NV01_IMAGE_BLIT_SIZE								0x00000308
371#define   NV01_IMAGE_BLIT_SIZE_W_SHIFT							0
372#define   NV01_IMAGE_BLIT_SIZE_W_MASK							0x0000ffff
373#define   NV01_IMAGE_BLIT_SIZE_H_SHIFT							16
374#define   NV01_IMAGE_BLIT_SIZE_H_MASK							0xffff0000
375
376
377#define NV01_IMAGE_FROM_CPU								0x00000021
378
379#define  NV01_IMAGE_FROM_CPU_NOP							0x00000100
380#define  NV01_IMAGE_FROM_CPU_NOTIFY							0x00000104
381#define  NV01_IMAGE_FROM_CPU_PATCH							0x0000010c
382#define  NV01_IMAGE_FROM_CPU_DMA_NOTIFY							0x00000180
383#define  NV01_IMAGE_FROM_CPU_COLOR_KEY							0x00000184
384#define  NV01_IMAGE_FROM_CPU_CLIP_RECTANGLE						0x00000188
385#define  NV01_IMAGE_FROM_CPU_PATTERN							0x0000018c
386#define  NV01_IMAGE_FROM_CPU_ROP							0x00000190
387#define  NV01_IMAGE_FROM_CPU_BETA1							0x00000194
388#define  NV01_IMAGE_FROM_CPU_SURFACE							0x00000198
389#define  NV01_IMAGE_FROM_CPU_OPERATION							0x000002fc
390#define   NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_AND					0x00000000
391#define   NV01_IMAGE_FROM_CPU_OPERATION_ROP_AND						0x00000001
392#define   NV01_IMAGE_FROM_CPU_OPERATION_BLEND_AND					0x00000002
393#define   NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY						0x00000003
394#define   NV01_IMAGE_FROM_CPU_OPERATION_SRCCOPY_PREMULT					0x00000004
395#define   NV01_IMAGE_FROM_CPU_OPERATION_BLEND_PREMULT					0x00000005
396#define  NV01_IMAGE_FROM_CPU_COLOR_FORMAT						0x00000300
397#define   NV01_IMAGE_FROM_CPU_COLOR_FORMAT_Y8						0x00000001
398#define   NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A1R5G5B5					0x00000002
399#define   NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X1R5G5B5					0x00000003
400#define   NV01_IMAGE_FROM_CPU_COLOR_FORMAT_A8R8G8B8					0x00000004
401#define   NV01_IMAGE_FROM_CPU_COLOR_FORMAT_X8R8G8B8					0x00000005
402#define  NV01_IMAGE_FROM_CPU_POINT							0x00000304
403#define   NV01_IMAGE_FROM_CPU_POINT_X_SHIFT						0
404#define   NV01_IMAGE_FROM_CPU_POINT_X_MASK						0x0000ffff
405#define   NV01_IMAGE_FROM_CPU_POINT_Y_SHIFT						16
406#define   NV01_IMAGE_FROM_CPU_POINT_Y_MASK						0xffff0000
407#define  NV01_IMAGE_FROM_CPU_SIZE_OUT							0x00000308
408#define   NV01_IMAGE_FROM_CPU_SIZE_OUT_W_SHIFT						0
409#define   NV01_IMAGE_FROM_CPU_SIZE_OUT_W_MASK						0x0000ffff
410#define   NV01_IMAGE_FROM_CPU_SIZE_OUT_H_SHIFT						16
411#define   NV01_IMAGE_FROM_CPU_SIZE_OUT_H_MASK						0xffff0000
412#define  NV01_IMAGE_FROM_CPU_SIZE_IN							0x0000030c
413#define   NV01_IMAGE_FROM_CPU_SIZE_IN_W_SHIFT						0
414#define   NV01_IMAGE_FROM_CPU_SIZE_IN_W_MASK						0x0000ffff
415#define   NV01_IMAGE_FROM_CPU_SIZE_IN_H_SHIFT						16
416#define   NV01_IMAGE_FROM_CPU_SIZE_IN_H_MASK						0xffff0000
417#define  NV01_IMAGE_FROM_CPU_COLOR(x)							(0x00000400+((x)*4))
418#define  NV01_IMAGE_FROM_CPU_COLOR__SIZE						0x00000020
419
420
421#define NV01_NULL									0x00000030
422
423
424
425#define NV03_STRETCHED_IMAGE_FROM_CPU							0x00000036
426
427#define  NV03_STRETCHED_IMAGE_FROM_CPU_NOP						0x00000100
428#define  NV03_STRETCHED_IMAGE_FROM_CPU_NOTIFY						0x00000104
429#define  NV03_STRETCHED_IMAGE_FROM_CPU_PATCH						0x0000010c
430#define  NV03_STRETCHED_IMAGE_FROM_CPU_DMA_NOTIFY					0x00000180
431#define  NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_KEY					0x00000184
432#define  NV03_STRETCHED_IMAGE_FROM_CPU_PATTERN						0x00000188
433#define  NV03_STRETCHED_IMAGE_FROM_CPU_ROP						0x0000018c
434#define  NV03_STRETCHED_IMAGE_FROM_CPU_BETA1						0x00000190
435#define  NV03_STRETCHED_IMAGE_FROM_CPU_SURFACE						0x00000194
436#define  NV03_STRETCHED_IMAGE_FROM_CPU_OPERATION					0x000002fc
437#define  NV03_STRETCHED_IMAGE_FROM_CPU_COLOR_FORMAT					0x00000300
438#define  NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN						0x00000304
439#define   NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W_SHIFT					0
440#define   NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_W_MASK					0x0000ffff
441#define   NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H_SHIFT					16
442#define   NV03_STRETCHED_IMAGE_FROM_CPU_SIZE_IN_H_MASK					0xffff0000
443#define  NV03_STRETCHED_IMAGE_FROM_CPU_DX_DU						0x00000308
444#define  NV03_STRETCHED_IMAGE_FROM_CPU_DY_DV						0x0000030c
445#define  NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT					0x00000310
446#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X_SHIFT				0
447#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_X_MASK				0x0000ffff
448#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y_SHIFT				16
449#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_POINT_Y_MASK				0xffff0000
450#define  NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE					0x00000314
451#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W_SHIFT				0
452#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_W_MASK				0x0000ffff
453#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H_SHIFT				16
454#define   NV03_STRETCHED_IMAGE_FROM_CPU_CLIP_SIZE_H_MASK				0xffff0000
455#define  NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4					0x00000318
456#define   NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X_SHIFT				0
457#define   NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_X_MASK				0x0000ffff
458#define   NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y_SHIFT				16
459#define   NV03_STRETCHED_IMAGE_FROM_CPU_POINT12D4_Y_MASK				0xffff0000
460#define  NV03_STRETCHED_IMAGE_FROM_CPU_COLOR(x)						(0x00000400+((x)*4))
461#define  NV03_STRETCHED_IMAGE_FROM_CPU_COLOR__SIZE					0x00000020
462
463
464#define NV03_SCALED_IMAGE_FROM_MEMORY							0x00000037
465
466#define  NV03_SCALED_IMAGE_FROM_MEMORY_NOP						0x00000100
467#define  NV03_SCALED_IMAGE_FROM_MEMORY_NOTIFY						0x00000104
468#define  NV03_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY					0x00000180
469#define  NV03_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE					0x00000184
470#define  NV03_SCALED_IMAGE_FROM_MEMORY_PATTERN						0x00000188
471#define  NV03_SCALED_IMAGE_FROM_MEMORY_ROP						0x0000018c
472#define  NV03_SCALED_IMAGE_FROM_MEMORY_BETA1						0x00000190
473#define  NV03_SCALED_IMAGE_FROM_MEMORY_SURFACE						0x00000194
474#define  NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT					0x00000300
475#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A1R5G5B5				0x00000001
476#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X1R5G5B5				0x00000002
477#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A8R8G8B8				0x00000003
478#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X8R8G8B8				0x00000004
479#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_V8YB8U8YA8				0x00000005
480#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_YB8V8YA8U8				0x00000006
481#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_R5G6B5				0x00000007
482#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_Y8					0x00000008
483#define   NV03_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_AY8				0x00000009
484#define  NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION					0x00000304
485#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_AND				0x00000000
486#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_ROP_AND				0x00000001
487#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_AND				0x00000002
488#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY				0x00000003
489#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_PREMULT			0x00000004
490#define   NV03_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_PREMULT				0x00000005
491#define  NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT					0x00000308
492#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_SHIFT				0
493#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_MASK				0x0000ffff
494#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_SHIFT				16
495#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_MASK				0xffff0000
496#define  NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE					0x0000030c
497#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_SHIFT				0
498#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_MASK				0x0000ffff
499#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_SHIFT				16
500#define   NV03_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_MASK				0xffff0000
501#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_POINT					0x00000310
502#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_POINT_X_SHIFT				0
503#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_POINT_X_MASK				0x0000ffff
504#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_POINT_Y_SHIFT				16
505#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_POINT_Y_MASK				0xffff0000
506#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_SIZE					0x00000314
507#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_SIZE_W_SHIFT				0
508#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_SIZE_W_MASK				0x0000ffff
509#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_SIZE_H_SHIFT				16
510#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_OUT_SIZE_H_MASK				0xffff0000
511#define  NV03_SCALED_IMAGE_FROM_MEMORY_DELTA_DU_DX					0x00000318
512#define  NV03_SCALED_IMAGE_FROM_MEMORY_DELTA_DV_DY					0x0000031c
513#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_SIZE					0x00000400
514#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_SIZE_W_SHIFT				0
515#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_SIZE_W_MASK				0x0000ffff
516#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_SIZE_H_SHIFT				16
517#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_SIZE_H_MASK				0xffff0000
518#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT					0x00000404
519#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_PITCH_SHIFT			0
520#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_PITCH_MASK			0x0000ffff
521#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_ORIGIN_SHIFT			16
522#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_ORIGIN_MASK			0x00ff0000
523#define    NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_ORIGIN_CENTER			0x00010000
524#define    NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_ORIGIN_CORNER			0x00020000
525#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_INTERPOLATOR_SHIFT		24
526#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_FORMAT_INTERPOLATOR_MASK		0xff000000
527#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_OFFSET					0x00000408
528#define  NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_POINT					0x0000040c
529#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_POINT_U_SHIFT				0
530#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_POINT_U_MASK				0x0000ffff
531#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_POINT_V_SHIFT				16
532#define   NV03_SCALED_IMAGE_FROM_MEMORY_IMAGE_IN_POINT_V_MASK				0xffff0000
533
534
535#define NV04_DVD_SUBPICTURE								0x00000038
536
537#define  NV04_DVD_SUBPICTURE_NOP							0x00000100
538#define  NV04_DVD_SUBPICTURE_NOTIFY							0x00000104
539#define  NV04_DVD_SUBPICTURE_WAIT_FOR_IDLE						0x00000108
540#define  NV04_DVD_SUBPICTURE_DMA_NOTIFY							0x00000180
541#define  NV04_DVD_SUBPICTURE_DMA_OVERLAY						0x00000184
542#define  NV04_DVD_SUBPICTURE_DMA_IMAGEIN						0x00000188
543#define  NV04_DVD_SUBPICTURE_DMA_IMAGEOUT						0x0000018c
544#define  NV04_DVD_SUBPICTURE_IMAGEOUT_POINT						0x00000300
545#define   NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_X_SHIFT					0
546#define   NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_X_MASK					0x0000ffff
547#define   NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_Y_SHIFT					16
548#define   NV04_DVD_SUBPICTURE_IMAGEOUT_POINT_Y_MASK					0xffff0000
549#define  NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE						0x00000304
550#define   NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_W_SHIFT					0
551#define   NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_W_MASK					0x0000ffff
552#define   NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_H_SHIFT					16
553#define   NV04_DVD_SUBPICTURE_IMAGEOUT_SIZE_H_MASK					0xffff0000
554#define  NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT						0x00000308
555#define   NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_PITCH_SHIFT				0
556#define   NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_PITCH_MASK				0x0000ffff
557#define   NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_COLOR_SHIFT				16
558#define   NV04_DVD_SUBPICTURE_IMAGEOUT_FORMAT_COLOR_MASK				0xffff0000
559#define  NV04_DVD_SUBPICTURE_IMAGEOUT_OFFSET						0x0000030c
560#define  NV04_DVD_SUBPICTURE_IMAGEIN_DELTA_DU_DX					0x00000310
561#define  NV04_DVD_SUBPICTURE_IMAGEIN_DELTA_DV_DY					0x00000314
562#define  NV04_DVD_SUBPICTURE_IMAGEIN_SIZE						0x00000318
563#define   NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_W_SHIFT					0
564#define   NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_W_MASK					0x0000ffff
565#define   NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_H_SHIFT					16
566#define   NV04_DVD_SUBPICTURE_IMAGEIN_SIZE_H_MASK					0xffff0000
567#define  NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT						0x0000031c
568#define   NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_PITCH_SHIFT				0
569#define   NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_PITCH_MASK					0x0000ffff
570#define   NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_COLOR_SHIFT				16
571#define   NV04_DVD_SUBPICTURE_IMAGEIN_FORMAT_COLOR_MASK					0xffff0000
572#define  NV04_DVD_SUBPICTURE_IMAGEIN_OFFSET						0x00000320
573#define  NV04_DVD_SUBPICTURE_IMAGEIN_POINT						0x00000324
574#define   NV04_DVD_SUBPICTURE_IMAGEIN_POINT_U_SHIFT					0
575#define   NV04_DVD_SUBPICTURE_IMAGEIN_POINT_U_MASK					0x0000ffff
576#define   NV04_DVD_SUBPICTURE_IMAGEIN_POINT_V_SHIFT					16
577#define   NV04_DVD_SUBPICTURE_IMAGEIN_POINT_V_MASK					0xffff0000
578#define  NV04_DVD_SUBPICTURE_OVERLAY_DELTA_DU_DX					0x00000328
579#define  NV04_DVD_SUBPICTURE_OVERLAY_DELTA_DV_DY					0x0000032c
580#define  NV04_DVD_SUBPICTURE_OVERLAY_SIZE						0x00000330
581#define   NV04_DVD_SUBPICTURE_OVERLAY_SIZE_W_SHIFT					0
582#define   NV04_DVD_SUBPICTURE_OVERLAY_SIZE_W_MASK					0x0000ffff
583#define   NV04_DVD_SUBPICTURE_OVERLAY_SIZE_H_SHIFT					16
584#define   NV04_DVD_SUBPICTURE_OVERLAY_SIZE_H_MASK					0xffff0000
585#define  NV04_DVD_SUBPICTURE_OVERLAY_FORMAT						0x00000334
586#define   NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_PITCH_SHIFT				0
587#define   NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_PITCH_MASK					0x0000ffff
588#define   NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_COLOR_SHIFT				16
589#define   NV04_DVD_SUBPICTURE_OVERLAY_FORMAT_COLOR_MASK					0xffff0000
590#define  NV04_DVD_SUBPICTURE_OVERLAY_OFFSET						0x00000338
591#define  NV04_DVD_SUBPICTURE_OVERLAY_POINT						0x0000033c
592#define   NV04_DVD_SUBPICTURE_OVERLAY_POINT_U_SHIFT					0
593#define   NV04_DVD_SUBPICTURE_OVERLAY_POINT_U_MASK					0x0000ffff
594#define   NV04_DVD_SUBPICTURE_OVERLAY_POINT_V_SHIFT					16
595#define   NV04_DVD_SUBPICTURE_OVERLAY_POINT_V_MASK					0xffff0000
596
597
598#define NV04_MEMORY_TO_MEMORY_FORMAT							0x00000039
599
600#define  NV04_MEMORY_TO_MEMORY_FORMAT_NOP						0x00000100
601#define  NV04_MEMORY_TO_MEMORY_FORMAT_NOTIFY						0x00000104
602#define  NV04_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY					0x00000180
603#define  NV04_MEMORY_TO_MEMORY_FORMAT_DMA_BUFFER_IN					0x00000184
604#define  NV04_MEMORY_TO_MEMORY_FORMAT_DMA_BUFFER_OUT					0x00000188
605#define  NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN						0x0000030c
606#define  NV04_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT					0x00000310
607#define  NV04_MEMORY_TO_MEMORY_FORMAT_PITCH_IN						0x00000314
608#define  NV04_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT						0x00000318
609#define  NV04_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN					0x0000031c
610#define  NV04_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT					0x00000320
611#define  NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT						0x00000324
612#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_SHIFT				0
613#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_INPUT_INC_MASK				0x0000000f
614#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_SHIFT				8
615#define   NV04_MEMORY_TO_MEMORY_FORMAT_FORMAT_OUTPUT_INC_MASK				0x00000f00
616#define  NV04_MEMORY_TO_MEMORY_FORMAT_BUF_NOTIFY					0x00000328
617
618
619#define NV01_MEMORY_LOCAL_BANKED							0x0000003d
620
621
622
623#define NV01_MAPPING_SYSTEM								0x0000003e
624
625
626
627#define NV03_MEMORY_LOCAL_CURSOR							0x0000003f
628
629
630
631#define NV01_MEMORY_LOCAL_LINEAR							0x00000040
632
633
634
635#define NV01_MAPPING_LOCAL								0x00000041
636
637
638
639#define NV04_CONTEXT_SURFACES_2D							0x00000042
640
641#define  NV04_CONTEXT_SURFACES_2D_NOP							0x00000100
642#define  NV04_CONTEXT_SURFACES_2D_NOTIFY						0x00000104
643#define  NV04_CONTEXT_SURFACES_2D_PM_TRIGGER						0x00000140
644#define  NV04_CONTEXT_SURFACES_2D_DMA_NOTIFY						0x00000180
645#define  NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_SOURCE					0x00000184
646#define  NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_DESTIN					0x00000188
647#define  NV04_CONTEXT_SURFACES_2D_FORMAT						0x00000300
648#define   NV04_CONTEXT_SURFACES_2D_FORMAT_Y8						0x00000001
649#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X1R5G5B5_Z1R5G5B5				0x00000002
650#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X1R5G5B5_X1R5G5B5				0x00000003
651#define   NV04_CONTEXT_SURFACES_2D_FORMAT_R5G6B5					0x00000004
652#define   NV04_CONTEXT_SURFACES_2D_FORMAT_Y16						0x00000005
653#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X8R8G8B8_Z8R8G8B8				0x00000006
654#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X8R8G8B8_X8R8G8B8				0x00000007
655#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X1A7R8G8B8_Z1A7R8G8B8				0x00000008
656#define   NV04_CONTEXT_SURFACES_2D_FORMAT_X1A7R8G8B8_X1A7R8G8B8				0x00000009
657#define   NV04_CONTEXT_SURFACES_2D_FORMAT_A8R8G8B8					0x0000000a
658#define   NV04_CONTEXT_SURFACES_2D_FORMAT_Y32						0x0000000b
659#define  NV04_CONTEXT_SURFACES_2D_PITCH							0x00000304
660#define   NV04_CONTEXT_SURFACES_2D_PITCH_SOURCE_SHIFT					0
661#define   NV04_CONTEXT_SURFACES_2D_PITCH_SOURCE_MASK					0x0000ffff
662#define   NV04_CONTEXT_SURFACES_2D_PITCH_DESTIN_SHIFT					16
663#define   NV04_CONTEXT_SURFACES_2D_PITCH_DESTIN_MASK					0xffff0000
664#define  NV04_CONTEXT_SURFACES_2D_OFFSET_SOURCE						0x00000308
665#define  NV04_CONTEXT_SURFACES_2D_OFFSET_DESTIN						0x0000030c
666
667
668#define NV03_CONTEXT_ROP								0x00000043
669
670#define  NV03_CONTEXT_ROP_NOP								0x00000100
671#define  NV03_CONTEXT_ROP_NOTIFY							0x00000104
672#define  NV03_CONTEXT_ROP_DMA_NOTIFY							0x00000180
673#define  NV03_CONTEXT_ROP_ROP								0x00000300
674#define   NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_SHIFT					0
675#define   NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_MASK					0x0000000f
676#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_CLEAR					0x00000000
677#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_NOR					0x00000001
678#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_AND_INVERTED				0x00000002
679#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_COPY_INVERTED				0x00000003
680#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_AND_REVERSE				0x00000004
681#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_INVERT					0x00000005
682#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_XOR					0x00000006
683#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_NAND					0x00000007
684#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_AND					0x00000008
685#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_EQUI					0x00000009
686#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_NOOP					0x0000000a
687#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_OR_INVERTED				0x0000000b
688#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_COPY					0x0000000c
689#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_OR_REVERSE					0x0000000d
690#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_OR						0x0000000e
691#define    NV03_CONTEXT_ROP_ROP_DST_LOGIC_OP_SET					0x0000000f
692#define   NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_SHIFT					4
693#define   NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_MASK					0x000000f0
694#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_CLEAR					0x00000000
695#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_NOR					0x00000010
696#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_AND_INVERTED				0x00000020
697#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_COPY_INVERTED				0x00000030
698#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_AND_REVERSE				0x00000040
699#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_INVERT					0x00000050
700#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_XOR					0x00000060
701#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_NAND					0x00000070
702#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_AND					0x00000080
703#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_EQUI					0x00000090
704#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_NOOP					0x000000a0
705#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_OR_INVERTED				0x000000b0
706#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_COPY					0x000000c0
707#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_OR_REVERSE					0x000000d0
708#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_OR						0x000000e0
709#define    NV03_CONTEXT_ROP_ROP_SRC_LOGIC_OP_SET					0x000000f0
710
711
712#define NV04_IMAGE_PATTERN								0x00000044
713
714#define  NV04_IMAGE_PATTERN_NOP								0x00000100
715#define  NV04_IMAGE_PATTERN_NOTIFY							0x00000104
716#define  NV04_IMAGE_PATTERN_DMA_NOTIFY							0x00000180
717#define  NV04_IMAGE_PATTERN_COLOR_FORMAT						0x00000300
718#define   NV04_IMAGE_PATTERN_COLOR_FORMAT_A16R5G6B5					0x00000001
719#define   NV04_IMAGE_PATTERN_COLOR_FORMAT_X16A1R5G5B5					0x00000002
720#define   NV04_IMAGE_PATTERN_COLOR_FORMAT_A8R8G8B8					0x00000003
721#define  NV04_IMAGE_PATTERN_MONOCHROME_FORMAT						0x00000304
722#define   NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_CGA6					0x00000001
723#define   NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_LE					0x00000002
724#define  NV04_IMAGE_PATTERN_MONOCHROME_SHAPE						0x00000308
725#define   NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_8X8					0x00000000
726#define   NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_64X1					0x00000001
727#define   NV04_IMAGE_PATTERN_MONOCHROME_SHAPE_1X64					0x00000002
728#define  NV04_IMAGE_PATTERN_PATTERN_SELECT						0x0000030c
729#define   NV04_IMAGE_PATTERN_PATTERN_SELECT_MONO					0x00000001
730#define   NV04_IMAGE_PATTERN_PATTERN_SELECT_COLOR					0x00000002
731#define  NV04_IMAGE_PATTERN_MONOCHROME_COLOR0						0x00000310
732#define  NV04_IMAGE_PATTERN_MONOCHROME_COLOR1						0x00000314
733#define  NV04_IMAGE_PATTERN_MONOCHROME_PATTERN0						0x00000318
734#define  NV04_IMAGE_PATTERN_MONOCHROME_PATTERN1						0x0000031c
735#define  NV04_IMAGE_PATTERN_PATTERN_Y8(x)						(0x00000400+((x)*4))
736#define  NV04_IMAGE_PATTERN_PATTERN_Y8__SIZE						0x00000010
737#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y0_SHIFT					0
738#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y0_MASK						0x000000ff
739#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y1_SHIFT					8
740#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y1_MASK						0x0000ff00
741#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y2_SHIFT					16
742#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y2_MASK						0x00ff0000
743#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y3_SHIFT					24
744#define   NV04_IMAGE_PATTERN_PATTERN_Y8_Y3_MASK						0xff000000
745#define  NV04_IMAGE_PATTERN_PATTERN_R5G6B5(x)						(0x00000500+((x)*4))
746#define  NV04_IMAGE_PATTERN_PATTERN_R5G6B5__SIZE					0x00000020
747#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B0_SHIFT					0
748#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B0_MASK					0x0000001f
749#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G0_SHIFT					5
750#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G0_MASK					0x000007e0
751#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R0_SHIFT					11
752#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R0_MASK					0x0000f800
753#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B1_SHIFT					16
754#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_B1_MASK					0x001f0000
755#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G1_SHIFT					21
756#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_G1_MASK					0x07e00000
757#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R1_SHIFT					27
758#define   NV04_IMAGE_PATTERN_PATTERN_R5G6B5_R1_MASK					0xf8000000
759#define  NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5(x)						(0x00000600+((x)*4))
760#define  NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5__SIZE					0x00000020
761#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B0_SHIFT					0
762#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B0_MASK					0x0000001f
763#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G0_SHIFT					5
764#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G0_MASK					0x000003e0
765#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R0_SHIFT					10
766#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R0_MASK					0x00007c00
767#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B1_SHIFT					16
768#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_B1_MASK					0x001f0000
769#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G1_SHIFT					21
770#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_G1_MASK					0x03e00000
771#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R1_SHIFT					26
772#define   NV04_IMAGE_PATTERN_PATTERN_X1R5G5B5_R1_MASK					0x7c000000
773#define  NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8(x)						(0x00000700+((x)*4))
774#define  NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8__SIZE					0x00000040
775#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_B_SHIFT					0
776#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_B_MASK					0x000000ff
777#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_G_SHIFT					8
778#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_G_MASK					0x0000ff00
779#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_R_SHIFT					16
780#define   NV04_IMAGE_PATTERN_PATTERN_X8R8G8B8_R_MASK					0x00ff0000
781
782
783#define NV03_VIDEO_LUT_CURSOR_DAC							0x00000046
784
785#define  NV03_VIDEO_LUT_CURSOR_DAC_SYNCHRONIZE						0x00000100
786#define  NV03_VIDEO_LUT_CURSOR_DAC_STOP_IMAGE						0x00000104
787#define  NV03_VIDEO_LUT_CURSOR_DAC_STOP_CURSOR						0x00000108
788#define  NV03_VIDEO_LUT_CURSOR_DAC_STOP_DAC						0x0000010c
789#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_NOTIFY						0x00000180
790#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_IMAGE(x)						(0x00000184+((x)*4))
791#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_IMAGE__SIZE					0x00000002
792#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_LUT(x)						(0x0000018c+((x)*4))
793#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_LUT__SIZE					0x00000002
794#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_CURSOR(x)					(0x00000194+((x)*4))
795#define  NV03_VIDEO_LUT_CURSOR_DAC_DMA_CURSOR__SIZE					0x00000002
796#define  NV03_VIDEO_LUT_CURSOR_DAC_GET							0x000002fc
797#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_OFFSET(x)					(0x00000300+((x)*8))
798#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_OFFSET__SIZE				0x00000002
799#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT(x)					(0x00000304+((x)*8))
800#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT__SIZE				0x00000002
801#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_PITCH_SHIFT			0
802#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_PITCH_MASK				0x0000ffff
803#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_COLOR_SHIFT			16
804#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_COLOR_MASK				0x0fff0000
805#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_NOTIFY_SHIFT			28
806#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_IMAGE_FORMAT_NOTIFY_MASK			0xf0000000
807#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_OFFSET(x)					(0x00000340+((x)*12))
808#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_OFFSET__SIZE				0x00000002
809#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT(x)				(0x00000344+((x)*12))
810#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT__SIZE				0x00000002
811#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_X_SHIFT			0
812#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_X_MASK				0x0000ffff
813#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_Y_SHIFT			16
814#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_Y_MASK				0xffff0000
815#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_FORMAT(x)					(0x00000348+((x)*12))
816#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_FORMAT__SIZE				0x00000002
817#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A				0x00000358
818#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_X_SHIFT			0
819#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_X_MASK			0x0000ffff
820#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_Y_SHIFT			16
821#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_CURSOR_POINT_OUT_A_Y_MASK			0xffff0000
822#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE(x)				(0x00000380+((x)*16))
823#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE__SIZE				0x00000002
824#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_W_SHIFT				0
825#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_W_MASK				0x0000ffff
826#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_H_SHIFT				16
827#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_IMAGE_SIZE_H_MASK				0xffff0000
828#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC(x)					(0x00000384+((x)*16))
829#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC__SIZE					0x00000002
830#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_START_SHIFT				0
831#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_START_MASK				0x0000ffff
832#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_WIDTH_SHIFT				16
833#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_WIDTH_MASK				0x0fff0000
834#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_POLARITY_SHIFT			28
835#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_HSYNC_POLARITY_MASK				0xf0000000
836#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC(x)					(0x00000388+((x)*16))
837#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC__SIZE					0x00000002
838#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_START_SHIFT				0
839#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_START_MASK				0x0000ffff
840#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_WIDTH_SHIFT				16
841#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_WIDTH_MASK				0x0fff0000
842#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_POLARITY_SHIFT			28
843#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_VSYNC_POLARITY_MASK				0xf0000000
844#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE(x)				(0x0000038c+((x)*16))
845#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE__SIZE				0x00000002
846#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_WIDTH_SHIFT			0
847#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_WIDTH_MASK			0x0000ffff
848#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_HEIGHT_SHIFT			16
849#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_HEIGHT_MASK			0x0fff0000
850#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_NOTIFY_SHIFT			28
851#define   NV03_VIDEO_LUT_CURSOR_DAC_SET_DAC_TOTAL_SIZE_NOTIFY_MASK			0xf0000000
852#define  NV03_VIDEO_LUT_CURSOR_DAC_SET_PIXEL_CLOCK					0x000003a0
853
854
855#define NV03_DX3_TEXTURED_TRIANGLE							0x00000048
856
857#define  NV03_DX3_TEXTURED_TRIANGLE_NOP							0x00000100
858#define  NV03_DX3_TEXTURED_TRIANGLE_NOTIFY						0x00000104
859#define  NV03_DX3_TEXTURED_TRIANGLE_PATCH						0x0000010c
860#define  NV03_DX3_TEXTURED_TRIANGLE_DMA_NOTIFY						0x00000180
861#define  NV03_DX3_TEXTURED_TRIANGLE_DMA_TEXTURE						0x00000184
862#define  NV03_DX3_TEXTURED_TRIANGLE_CLIP_RECTANGLE					0x00000188
863#define  NV03_DX3_TEXTURED_TRIANGLE_SURFACE						0x0000018c
864#define  NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_OFFSET					0x00000304
865#define  NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT					0x00000308
866#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_MASK_SHIFT		0
867#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_MASK_MASK			0x0000ffff
868#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_ENABLE_SHIFT		16
869#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_KEY_ENABLE_MASK		0x000f0000
870#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_SHIFT				20
871#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_COLOR_MASK				0x00f00000
872#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MIN_SHIFT			24
873#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MIN_MASK			0x0f000000
874#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MAX_SHIFT			28
875#define   NV03_DX3_TEXTURED_TRIANGLE_TEXTURE_FORMAT_SIZE_MAX_MASK			0xf0000000
876#define  NV03_DX3_TEXTURED_TRIANGLE_FILTER						0x0000030c
877#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SPREAD_X_SHIFT				0
878#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SPREAD_X_MASK				0x0000001f
879#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SPREAD_Y_SHIFT				8
880#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SPREAD_Y_MASK				0x00001f00
881#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SIZE_ADJUST_SHIFT				16
882#define   NV03_DX3_TEXTURED_TRIANGLE_FILTER_SIZE_ADJUST_MASK				0x00ff0000
883#define  NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR						0x00000310
884#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_B_SHIFT					0
885#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_B_MASK					0x000000ff
886#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_G_SHIFT					8
887#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_G_MASK					0x0000ff00
888#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_R_SHIFT					16
889#define   NV03_DX3_TEXTURED_TRIANGLE_FOG_COLOR_R_MASK					0x00ff0000
890#define  NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT						0x00000314
891#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_INTERPOLATOR_SHIFT			0
892#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_INTERPOLATOR_MASK			0x0000000f
893#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_U_SHIFT				4
894#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_U_MASK				0x00000030
895#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_V_SHIFT				6
896#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_WRAP_V_MASK				0x000000c0
897#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_SOURCE_COLOR_SHIFT			8
898#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_SOURCE_COLOR_MASK			0x00000f00
899#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_CULLING_SHIFT				12
900#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_CULLING_MASK				0x00007000
901#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_Z_PERSPECTIVE_ENABLE			(1 << 15)
902#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_Z_FUNC_SHIFT				16
903#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_Z_FUNC_MASK				0x000f0000
904#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_Z_WRITE_ENABLE_SHIFT			20
905#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_Z_WRITE_ENABLE_MASK			0x00f00000
906#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_COLOR_WRITE_ENABLE_SHIFT		24
907#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_COLOR_WRITE_ENABLE_MASK		0x07000000
908#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_ROP_SHIFT				27
909#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_ROP_MASK				0x18000000
910#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_BETA					(1 << 29)
911#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_DST_BLEND				(1 << 30)
912#define   NV03_DX3_TEXTURED_TRIANGLE_CONTROL_OUT_SRC_BLEND				(1 << 31)
913#define  NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL					0x00000318
914#define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_SHIFT			0
915#define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_REF_MASK			0x000000ff
916#define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_SHIFT			8
917#define   NV03_DX3_TEXTURED_TRIANGLE_ALPHA_CONTROL_ALPHA_FUNC_MASK			0xffffff00
918#define  NV03_DX3_TEXTURED_TRIANGLE_SPECULAR(x)						(0x00001000+((x)*32))
919#define  NV03_DX3_TEXTURED_TRIANGLE_SPECULAR__SIZE					0x00000040
920#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I0_SHIFT					0
921#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I0_MASK					0x0000000f
922#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I1_SHIFT					4
923#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I1_MASK					0x000000f0
924#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I2_SHIFT					8
925#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I2_MASK					0x00000f00
926#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I3_SHIFT					12
927#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I3_MASK					0x0000f000
928#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I4_SHIFT					16
929#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I4_MASK					0x000f0000
930#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I5_SHIFT					20
931#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_I5_MASK					0x00f00000
932#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_FOG_SHIFT					24
933#define   NV03_DX3_TEXTURED_TRIANGLE_SPECULAR_FOG_MASK					0xff000000
934#define  NV03_DX3_TEXTURED_TRIANGLE_COLOR(x)						(0x00001004+((x)*32))
935#define  NV03_DX3_TEXTURED_TRIANGLE_COLOR__SIZE						0x00000040
936#define  NV03_DX3_TEXTURED_TRIANGLE_X(x)						(0x00001008+((x)*32))
937#define  NV03_DX3_TEXTURED_TRIANGLE_X__SIZE						0x00000040
938#define  NV03_DX3_TEXTURED_TRIANGLE_Y(x)						(0x0000100c+((x)*32))
939#define  NV03_DX3_TEXTURED_TRIANGLE_Y__SIZE						0x00000040
940#define  NV03_DX3_TEXTURED_TRIANGLE_Z(x)						(0x00001010+((x)*32))
941#define  NV03_DX3_TEXTURED_TRIANGLE_Z__SIZE						0x00000040
942#define  NV03_DX3_TEXTURED_TRIANGLE_M(x)						(0x00001014+((x)*32))
943#define  NV03_DX3_TEXTURED_TRIANGLE_M__SIZE						0x00000040
944#define  NV03_DX3_TEXTURED_TRIANGLE_U(x)						(0x00001018+((x)*32))
945#define  NV03_DX3_TEXTURED_TRIANGLE_U__SIZE						0x00000040
946#define  NV03_DX3_TEXTURED_TRIANGLE_V(x)						(0x0000101c+((x)*32))
947#define  NV03_DX3_TEXTURED_TRIANGLE_V__SIZE						0x00000040
948
949
950#define NV04_GDI_RECTANGLE_TEXT								0x0000004a
951
952#define  NV04_GDI_RECTANGLE_TEXT_NOP							0x00000100
953#define  NV04_GDI_RECTANGLE_TEXT_NOTIFY							0x00000104
954#define  NV04_GDI_RECTANGLE_TEXT_PATCH							0x0000010c
955#define  NV04_GDI_RECTANGLE_TEXT_PM_TRIGGER						0x00000140
956#define  NV04_GDI_RECTANGLE_TEXT_DMA_NOTIFY						0x00000180
957#define  NV04_GDI_RECTANGLE_TEXT_DMA_FONTS						0x00000184
958#define  NV04_GDI_RECTANGLE_TEXT_PATTERN						0x00000188
959#define  NV04_GDI_RECTANGLE_TEXT_ROP							0x0000018c
960#define  NV04_GDI_RECTANGLE_TEXT_BETA1							0x00000190
961#define  NV04_GDI_RECTANGLE_TEXT_BETA4							0x00000194
962#define  NV04_GDI_RECTANGLE_TEXT_SURFACE						0x00000198
963#define  NV04_GDI_RECTANGLE_TEXT_OPERATION						0x000002fc
964#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY_AND					0x00000000
965#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_ROP_AND					0x00000001
966#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_BLEND_AND					0x00000002
967#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY					0x00000003
968#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_SRCCOPY_PREMULT				0x00000004
969#define   NV04_GDI_RECTANGLE_TEXT_OPERATION_BLEND_PREMULT				0x00000005
970#define  NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT						0x00000300
971#define   NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A16R5G6B5				0x00000001
972#define   NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_X16A1R5G5B5				0x00000002
973#define   NV04_GDI_RECTANGLE_TEXT_COLOR_FORMAT_A8R8G8B8					0x00000003
974#define  NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT					0x00000304
975#define   NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT_CGA6				0x00000001
976#define   NV04_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT_LE					0x00000002
977#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_A						0x000003fc
978#define  NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT(x)				(0x00000400+((x)*8))
979#define  NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT__SIZE			0x00000020
980#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_SHIFT			0
981#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_MASK			0x0000ffff
982#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_SHIFT			16
983#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_MASK			0xffff0000
984#define  NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE(x)				(0x00000404+((x)*8))
985#define  NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE__SIZE				0x00000020
986#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_SHIFT			0
987#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_MASK			0x0000ffff
988#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_SHIFT			16
989#define   NV04_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_MASK			0xffff0000
990#define  NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0						0x000005f4
991#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_L_SHIFT					0
992#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_L_MASK					0x0000ffff
993#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_T_SHIFT					16
994#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT0_T_MASK					0xffff0000
995#define  NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1						0x000005f8
996#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_R_SHIFT					0
997#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_R_MASK					0x0000ffff
998#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_B_SHIFT					16
999#define   NV04_GDI_RECTANGLE_TEXT_CLIP_B_POINT1_B_MASK					0xffff0000
1000#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_B						0x000005fc
1001#define  NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0(x)				(0x00000600+((x)*8))
1002#define  NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0__SIZE			0x00000020
1003#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_SHIFT			0
1004#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_MASK			0x0000ffff
1005#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_SHIFT			16
1006#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_MASK			0xffff0000
1007#define  NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1(x)				(0x00000604+((x)*8))
1008#define  NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1__SIZE			0x00000020
1009#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_SHIFT			0
1010#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_MASK			0x0000ffff
1011#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_SHIFT			16
1012#define   NV04_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_MASK			0xffff0000
1013#define  NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0						0x000007ec
1014#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_SHIFT					0
1015#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_MASK					0x0000ffff
1016#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_SHIFT					16
1017#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_MASK					0xffff0000
1018#define  NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1						0x000007f0
1019#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_SHIFT					0
1020#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_MASK					0x0000ffff
1021#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_SHIFT					16
1022#define   NV04_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_MASK					0xffff0000
1023#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_C						0x000007f4
1024#define  NV04_GDI_RECTANGLE_TEXT_SIZE_C							0x000007f8
1025#define   NV04_GDI_RECTANGLE_TEXT_SIZE_C_W_SHIFT					0
1026#define   NV04_GDI_RECTANGLE_TEXT_SIZE_C_W_MASK						0x0000ffff
1027#define   NV04_GDI_RECTANGLE_TEXT_SIZE_C_H_SHIFT					16
1028#define   NV04_GDI_RECTANGLE_TEXT_SIZE_C_H_MASK						0xffff0000
1029#define  NV04_GDI_RECTANGLE_TEXT_POINT_C						0x000007fc
1030#define   NV04_GDI_RECTANGLE_TEXT_POINT_C_X_SHIFT					0
1031#define   NV04_GDI_RECTANGLE_TEXT_POINT_C_X_MASK					0x0000ffff
1032#define   NV04_GDI_RECTANGLE_TEXT_POINT_C_Y_SHIFT					16
1033#define   NV04_GDI_RECTANGLE_TEXT_POINT_C_Y_MASK					0xffff0000
1034#define  NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C(x)					(0x00000800+((x)*4))
1035#define  NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__SIZE				0x00000080
1036#define  NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0						0x00000be4
1037#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_SHIFT					0
1038#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_MASK					0x0000ffff
1039#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_SHIFT					16
1040#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_MASK					0xffff0000
1041#define  NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1						0x00000be8
1042#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_SHIFT					0
1043#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_MASK					0x0000ffff
1044#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_SHIFT					16
1045#define   NV04_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_MASK					0xffff0000
1046#define  NV04_GDI_RECTANGLE_TEXT_COLOR0_E						0x00000bec
1047#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_E						0x00000bf0
1048#define  NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E						0x00000bf4
1049#define   NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_SHIFT					0
1050#define   NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_MASK					0x0000ffff
1051#define   NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_SHIFT					16
1052#define   NV04_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_MASK					0xffff0000
1053#define  NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E						0x00000bf8
1054#define   NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_SHIFT					0
1055#define   NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_MASK					0x0000ffff
1056#define   NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_SHIFT					16
1057#define   NV04_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_MASK					0xffff0000
1058#define  NV04_GDI_RECTANGLE_TEXT_POINT_E						0x00000bfc
1059#define   NV04_GDI_RECTANGLE_TEXT_POINT_E_X_SHIFT					0
1060#define   NV04_GDI_RECTANGLE_TEXT_POINT_E_X_MASK					0x0000ffff
1061#define   NV04_GDI_RECTANGLE_TEXT_POINT_E_Y_SHIFT					16
1062#define   NV04_GDI_RECTANGLE_TEXT_POINT_E_Y_MASK					0xffff0000
1063#define  NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E(x)				(0x00000c00+((x)*4))
1064#define  NV04_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__SIZE				0x00000080
1065#define  NV04_GDI_RECTANGLE_TEXT_FONT_F							0x00000ff0
1066#define   NV04_GDI_RECTANGLE_TEXT_FONT_F_OFFSET_SHIFT					0
1067#define   NV04_GDI_RECTANGLE_TEXT_FONT_F_OFFSET_MASK					0x0fffffff
1068#define   NV04_GDI_RECTANGLE_TEXT_FONT_F_PITCH_SHIFT					28
1069#define   NV04_GDI_RECTANGLE_TEXT_FONT_F_PITCH_MASK					0xf0000000
1070#define  NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0						0x00000ff4
1071#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_L_SHIFT					0
1072#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_L_MASK					0x0000ffff
1073#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_T_SHIFT					16
1074#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT0_T_MASK					0xffff0000
1075#define  NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1						0x00000ff8
1076#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_R_SHIFT					0
1077#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_R_MASK					0x0000ffff
1078#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_B_SHIFT					16
1079#define   NV04_GDI_RECTANGLE_TEXT_CLIP_F_POINT1_B_MASK					0xffff0000
1080#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_F						0x00000ffc
1081#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F(x)					(0x00001000+((x)*4))
1082#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F__SIZE				0x00000100
1083#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_INDEX_SHIFT			0
1084#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_INDEX_MASK				0x000000ff
1085#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_X_SHIFT				8
1086#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_X_MASK				0x000fff00
1087#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_Y_SHIFT				20
1088#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_F_Y_MASK				0xfff00000
1089#define  NV04_GDI_RECTANGLE_TEXT_FONT_G							0x000017f0
1090#define   NV04_GDI_RECTANGLE_TEXT_FONT_G_OFFSET_SHIFT					0
1091#define   NV04_GDI_RECTANGLE_TEXT_FONT_G_OFFSET_MASK					0x0fffffff
1092#define   NV04_GDI_RECTANGLE_TEXT_FONT_G_PITCH_SHIFT					28
1093#define   NV04_GDI_RECTANGLE_TEXT_FONT_G_PITCH_MASK					0xf0000000
1094#define  NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0						0x000017f4
1095#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_L_SHIFT					0
1096#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_L_MASK					0x0000ffff
1097#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_T_SHIFT					16
1098#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT0_T_MASK					0xffff0000
1099#define  NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1						0x000017f8
1100#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_R_SHIFT					0
1101#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_R_MASK					0x0000ffff
1102#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_B_SHIFT					16
1103#define   NV04_GDI_RECTANGLE_TEXT_CLIP_G_POINT1_B_MASK					0xffff0000
1104#define  NV04_GDI_RECTANGLE_TEXT_COLOR1_G						0x000017fc
1105#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT(x)				(0x00001800+((x)*8))
1106#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT__SIZE				0x00000100
1107#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_X_SHIFT			0
1108#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_X_MASK			0x0000ffff
1109#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_Y_SHIFT			16
1110#define   NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_POINT_Y_MASK			0xffff0000
1111#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX(x)				(0x00001804+((x)*8))
1112#define  NV04_GDI_RECTANGLE_TEXT_CHARACTER_COLOR1_G_INDEX__SIZE				0x00000100
1113
1114
1115#define NV03_GDI_RECTANGLE_TEXT								0x0000004b
1116
1117#define  NV03_GDI_RECTANGLE_TEXT_NOP							0x00000100
1118#define  NV03_GDI_RECTANGLE_TEXT_NOTIFY							0x00000104
1119#define  NV03_GDI_RECTANGLE_TEXT_DMA_NOTIFY						0x00000180
1120#define  NV03_GDI_RECTANGLE_TEXT_PATTERN						0x00000184
1121#define  NV03_GDI_RECTANGLE_TEXT_ROP							0x00000188
1122#define  NV03_GDI_RECTANGLE_TEXT_BETA1							0x0000018c
1123#define  NV03_GDI_RECTANGLE_TEXT_SURFACE						0x00000190
1124#define  NV03_GDI_RECTANGLE_TEXT_OPERATION						0x000002fc
1125#define  NV03_GDI_RECTANGLE_TEXT_COLOR_FORMAT						0x00000300
1126#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_FORMAT					0x00000304
1127#define  NV03_GDI_RECTANGLE_TEXT_COLOR1_A						0x000003fc
1128#define  NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT				0x00000400
1129#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_SHIFT			0
1130#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_Y_MASK			0x0000ffff
1131#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_SHIFT			16
1132#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_POINT_X_MASK			0xffff0000
1133#define  NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE				0x00000404
1134#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_SHIFT			0
1135#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_H_MASK			0x0000ffff
1136#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_SHIFT			16
1137#define   NV03_GDI_RECTANGLE_TEXT_UNCLIPPED_RECTANGLE_SIZE_W_MASK			0xffff0000
1138#define  NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B						0x000007f4
1139#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_L_SHIFT					0
1140#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_L_MASK					0x0000ffff
1141#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_T_SHIFT					16
1142#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT0_B_T_MASK					0xffff0000
1143#define  NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B						0x000007f8
1144#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_R_SHIFT					0
1145#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_R_MASK					0x0000ffff
1146#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_B_SHIFT					16
1147#define   NV03_GDI_RECTANGLE_TEXT_CLIP_POINT1_B_B_MASK					0xffff0000
1148#define  NV03_GDI_RECTANGLE_TEXT_COLOR1_B						0x000007fc
1149#define  NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0				0x00000800
1150#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_SHIFT			0
1151#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_L_MASK			0x0000ffff
1152#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_SHIFT			16
1153#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_0_T_MASK			0xffff0000
1154#define  NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1				0x00000804
1155#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_SHIFT			0
1156#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_R_MASK			0x0000ffff
1157#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_SHIFT			16
1158#define   NV03_GDI_RECTANGLE_TEXT_CLIPPED_RECTANGLE_POINT_1_B_MASK			0xffff0000
1159#define  NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0						0x00000bec
1160#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_SHIFT					0
1161#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_L_MASK					0x0000ffff
1162#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_SHIFT					16
1163#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT0_T_MASK					0xffff0000
1164#define  NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1						0x00000bf0
1165#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_SHIFT					0
1166#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_R_MASK					0x0000ffff
1167#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_SHIFT					16
1168#define   NV03_GDI_RECTANGLE_TEXT_CLIP_C_POINT1_B_MASK					0xffff0000
1169#define  NV03_GDI_RECTANGLE_TEXT_COLOR1_C						0x00000bf4
1170#define  NV03_GDI_RECTANGLE_TEXT_SIZE_C							0x00000bf8
1171#define   NV03_GDI_RECTANGLE_TEXT_SIZE_C_W_SHIFT					0
1172#define   NV03_GDI_RECTANGLE_TEXT_SIZE_C_W_MASK						0x0000ffff
1173#define   NV03_GDI_RECTANGLE_TEXT_SIZE_C_H_SHIFT					16
1174#define   NV03_GDI_RECTANGLE_TEXT_SIZE_C_H_MASK						0xffff0000
1175#define  NV03_GDI_RECTANGLE_TEXT_POINT_C						0x00000bfc
1176#define   NV03_GDI_RECTANGLE_TEXT_POINT_C_X_SHIFT					0
1177#define   NV03_GDI_RECTANGLE_TEXT_POINT_C_X_MASK					0x0000ffff
1178#define   NV03_GDI_RECTANGLE_TEXT_POINT_C_Y_SHIFT					16
1179#define   NV03_GDI_RECTANGLE_TEXT_POINT_C_Y_MASK					0xffff0000
1180#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C(x)					(0x00000c00+((x)*4))
1181#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_C__SIZE				0x00000020
1182#define  NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0						0x00000fe8
1183#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_L_SHIFT					0
1184#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_L_MASK					0x0000ffff
1185#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_T_SHIFT					16
1186#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT0_T_MASK					0xffff0000
1187#define  NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1						0x00000fec
1188#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_R_SHIFT					0
1189#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_R_MASK					0x0000ffff
1190#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_B_SHIFT					16
1191#define   NV03_GDI_RECTANGLE_TEXT_CLIP_D_POINT1_B_MASK					0xffff0000
1192#define  NV03_GDI_RECTANGLE_TEXT_COLOR1_D						0x00000ff0
1193#define  NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D						0x00000ff4
1194#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_W_SHIFT					0
1195#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_W_MASK					0x0000ffff
1196#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_H_SHIFT					16
1197#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_D_H_MASK					0xffff0000
1198#define  NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D						0x00000ff8
1199#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_W_SHIFT					0
1200#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_W_MASK					0x0000ffff
1201#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_H_SHIFT					16
1202#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_D_H_MASK					0xffff0000
1203#define  NV03_GDI_RECTANGLE_TEXT_POINT_D						0x00000ffc
1204#define   NV03_GDI_RECTANGLE_TEXT_POINT_D_X_SHIFT					0
1205#define   NV03_GDI_RECTANGLE_TEXT_POINT_D_X_MASK					0x0000ffff
1206#define   NV03_GDI_RECTANGLE_TEXT_POINT_D_Y_SHIFT					16
1207#define   NV03_GDI_RECTANGLE_TEXT_POINT_D_Y_MASK					0xffff0000
1208#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D(x)					(0x00001000+((x)*4))
1209#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR1_D__SIZE				0x00000020
1210#define  NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0						0x000013e4
1211#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_SHIFT					0
1212#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_L_MASK					0x0000ffff
1213#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_SHIFT					16
1214#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT0_T_MASK					0xffff0000
1215#define  NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1						0x000013e8
1216#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_SHIFT					0
1217#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_R_MASK					0x0000ffff
1218#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_SHIFT					16
1219#define   NV03_GDI_RECTANGLE_TEXT_CLIP_E_POINT1_B_MASK					0xffff0000
1220#define  NV03_GDI_RECTANGLE_TEXT_COLOR0_E						0x000013ec
1221#define  NV03_GDI_RECTANGLE_TEXT_COLOR1_E						0x000013f0
1222#define  NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E						0x000013f4
1223#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_SHIFT					0
1224#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_W_MASK					0x0000ffff
1225#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_SHIFT					16
1226#define   NV03_GDI_RECTANGLE_TEXT_SIZE_IN_E_H_MASK					0xffff0000
1227#define  NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E						0x000013f8
1228#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_SHIFT					0
1229#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_W_MASK					0x0000ffff
1230#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_SHIFT					16
1231#define   NV03_GDI_RECTANGLE_TEXT_SIZE_OUT_E_H_MASK					0xffff0000
1232#define  NV03_GDI_RECTANGLE_TEXT_POINT_E						0x000013fc
1233#define   NV03_GDI_RECTANGLE_TEXT_POINT_E_X_SHIFT					0
1234#define   NV03_GDI_RECTANGLE_TEXT_POINT_E_X_MASK					0x0000ffff
1235#define   NV03_GDI_RECTANGLE_TEXT_POINT_E_Y_SHIFT					16
1236#define   NV03_GDI_RECTANGLE_TEXT_POINT_E_Y_MASK					0xffff0000
1237#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E(x)				(0x00001400+((x)*4))
1238#define  NV03_GDI_RECTANGLE_TEXT_MONOCHROME_COLOR01_E__SIZE				0x00000020
1239
1240
1241#define NV04_SWIZZLED_SURFACE								0x00000052
1242
1243#define  NV04_SWIZZLED_SURFACE_NOP							0x00000100
1244#define  NV04_SWIZZLED_SURFACE_NOTIFY							0x00000104
1245#define  NV04_SWIZZLED_SURFACE_DMA_NOTIFY						0x00000180
1246#define  NV04_SWIZZLED_SURFACE_DMA_IMAGE						0x00000184
1247#define  NV04_SWIZZLED_SURFACE_FORMAT							0x00000300
1248#define   NV04_SWIZZLED_SURFACE_FORMAT_COLOR_SHIFT					0
1249#define   NV04_SWIZZLED_SURFACE_FORMAT_COLOR_MASK					0x000000ff
1250#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y8					0x00000001
1251#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1R5G5B5_Z1R5G5B5				0x00000002
1252#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1R5G5B5_X1R5G5B5				0x00000003
1253#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_R5G6B5					0x00000004
1254#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y16					0x00000005
1255#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X8R8G8B8_Z8R8G8B8				0x00000006
1256#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X8R8G8B8_X8R8G8B8				0x00000007
1257#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1A7R8G8B8_Z1A7R8G8B8			0x00000008
1258#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_X1A7R8G8B8_X1A7R8G8B8			0x00000009
1259#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_A8R8G8B8					0x0000000a
1260#define    NV04_SWIZZLED_SURFACE_FORMAT_COLOR_Y32					0x0000000b
1261#define   NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U_SHIFT				16
1262#define   NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_U_MASK					0x00ff0000
1263#define   NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V_SHIFT				24
1264#define   NV04_SWIZZLED_SURFACE_FORMAT_BASE_SIZE_V_MASK					0xff000000
1265#define  NV04_SWIZZLED_SURFACE_OFFSET							0x00000304
1266
1267
1268#define NV04_CONTEXT_SURFACES_3D							0x00000053
1269
1270#define  NV04_CONTEXT_SURFACES_3D_NOP							0x00000100
1271#define  NV04_CONTEXT_SURFACES_3D_NOTIFY						0x00000104
1272#define  NV04_CONTEXT_SURFACES_3D_DMA_NOTIFY						0x00000180
1273#define  NV04_CONTEXT_SURFACES_3D_DMA_COLOR						0x00000184
1274#define  NV04_CONTEXT_SURFACES_3D_DMA_ZETA						0x00000188
1275#define  NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL					0x000002f8
1276#define   NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_X_SHIFT				0
1277#define   NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_X_MASK				0x0000ffff
1278#define   NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_W_SHIFT				16
1279#define   NV04_CONTEXT_SURFACES_3D_CLIP_HORIZONTAL_W_MASK				0xffff0000
1280#define  NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL						0x000002fc
1281#define   NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_Y_SHIFT				0
1282#define   NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_Y_MASK					0x0000ffff
1283#define   NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_H_SHIFT				16
1284#define   NV04_CONTEXT_SURFACES_3D_CLIP_VERTICAL_H_MASK					0xffff0000
1285#define  NV04_CONTEXT_SURFACES_3D_FORMAT						0x00000300
1286#define   NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_SHIFT					0
1287#define   NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_MASK					0x000000ff
1288#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1R5G5B5_Z1R5G5B5			0x00000001
1289#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1R5G5B5_X1R5G5B5			0x00000002
1290#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_R5G6B5					0x00000003
1291#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X8R8G8B8_Z8R8G8B8			0x00000004
1292#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X8R8G8B8_X8R8G8B8			0x00000005
1293#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1A7R8G8B8_Z1A7R8G8B8			0x00000006
1294#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_X1A7R8G8B8_X1A7R8G8B8			0x00000007
1295#define    NV04_CONTEXT_SURFACES_3D_FORMAT_COLOR_A8R8G8B8				0x00000008
1296#define   NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_SHIFT					8
1297#define   NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_MASK					0x0000ff00
1298#define    NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_PITCH					0x00000100
1299#define    NV04_CONTEXT_SURFACES_3D_FORMAT_TYPE_SWIZZLE					0x00000200
1300#define   NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_U_SHIFT				16
1301#define   NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_U_MASK				0x00ff0000
1302#define   NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_V_SHIFT				24
1303#define   NV04_CONTEXT_SURFACES_3D_FORMAT_BASE_SIZE_V_MASK				0xff000000
1304#define  NV04_CONTEXT_SURFACES_3D_CLIP_SIZE						0x00000304
1305#define   NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_W_SHIFT					0
1306#define   NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_W_MASK					0x0000ffff
1307#define   NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_H_SHIFT					16
1308#define   NV04_CONTEXT_SURFACES_3D_CLIP_SIZE_H_MASK					0xffff0000
1309#define  NV04_CONTEXT_SURFACES_3D_PITCH							0x00000308
1310#define   NV04_CONTEXT_SURFACES_3D_PITCH_COLOR_SHIFT					0
1311#define   NV04_CONTEXT_SURFACES_3D_PITCH_COLOR_MASK					0x0000ffff
1312#define   NV04_CONTEXT_SURFACES_3D_PITCH_ZETA_SHIFT					16
1313#define   NV04_CONTEXT_SURFACES_3D_PITCH_ZETA_MASK					0xffff0000
1314#define  NV04_CONTEXT_SURFACES_3D_OFFSET_COLOR						0x0000030c
1315#define  NV04_CONTEXT_SURFACES_3D_OFFSET_ZETA						0x00000310
1316
1317
1318#define NV04_DX5_TEXTURED_TRIANGLE							0x00000054
1319
1320#define  NV04_DX5_TEXTURED_TRIANGLE_NOP							0x00000100
1321#define  NV04_DX5_TEXTURED_TRIANGLE_NOTIFY						0x00000104
1322#define  NV04_DX5_TEXTURED_TRIANGLE_DMA_NOTIFY						0x00000180
1323#define  NV04_DX5_TEXTURED_TRIANGLE_DMA_A						0x00000184
1324#define  NV04_DX5_TEXTURED_TRIANGLE_DMA_B						0x00000188
1325#define  NV04_DX5_TEXTURED_TRIANGLE_SURFACE						0x0000018c
1326#define  NV04_DX5_TEXTURED_TRIANGLE_COLORKEY						0x00000300
1327#define  NV04_DX5_TEXTURED_TRIANGLE_OFFSET						0x00000304
1328#define  NV04_DX5_TEXTURED_TRIANGLE_FORMAT						0x00000308
1329#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_DMA_SHIFT					0
1330#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_DMA_MASK					0x00000003
1331#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_MATCH_SHIFT			2
1332#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_KEY_MATCH_MASK			0x0000000c
1333#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_SHIFT				4
1334#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_MASK				0x00000030
1335#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CENTER				0x00000010
1336#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_ZOH_CORNER				0x00000020
1337#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_SHIFT				6
1338#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_MASK				0x000000c0
1339#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CENTER				0x00000040
1340#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ORIGIN_FOH_CORNER				0x00000080
1341#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_SHIFT					8
1342#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_MASK					0x00000f00
1343#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_Y8					0x00000100
1344#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_A1R5G5B5				0x00000200
1345#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_X1R5G5B5				0x00000300
1346#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_A4R4G4B4				0x00000400
1347#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_R5G6B5				0x00000500
1348#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_A8R8G8B8				0x00000600
1349#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_COLOR_X8R8G8B8				0x00000700
1350#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT				12
1351#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_MIPMAP_LEVELS_MASK				0x0000f000
1352#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT				16
1353#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_U_MASK				0x000f0000
1354#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT				20
1355#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_BASE_SIZE_V_MASK				0x00f00000
1356#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_SHIFT				24
1357#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MASK				0x07000000
1358#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_REPEAT				0x01000000
1359#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_MIRRORED_REPEAT			0x02000000
1360#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_EDGE			0x03000000
1361#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP_TO_BORDER			0x04000000
1362#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSU_CLAMP				0x05000000
1363#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_WRAPU					(1 << 27)
1364#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_SHIFT				28
1365#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MASK				0x70000000
1366#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_REPEAT				0x10000000
1367#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_MIRRORED_REPEAT			0x20000000
1368#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_EDGE			0x30000000
1369#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP_TO_BORDER			0x40000000
1370#define    NV04_DX5_TEXTURED_TRIANGLE_FORMAT_ADDRESSV_CLAMP				0x50000000
1371#define   NV04_DX5_TEXTURED_TRIANGLE_FORMAT_WRAPV					(1 << 31)
1372#define  NV04_DX5_TEXTURED_TRIANGLE_FILTER						0x0000030c
1373#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X_SHIFT				0
1374#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_X_MASK				0x000000ff
1375#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y_SHIFT				8
1376#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_KERNEL_SIZE_Y_MASK				0x00007f00
1377#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE			(1 << 15)
1378#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT			16
1379#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MIPMAP_LODBIAS_MASK				0x00ff0000
1380#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_SHIFT				24
1381#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_MASK					0x07000000
1382#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST				0x01000000
1383#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR				0x02000000
1384#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST		0x03000000
1385#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST		0x04000000
1386#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR		0x05000000
1387#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR		0x06000000
1388#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE			(1 << 27)
1389#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MAGNIFY_SHIFT				28
1390#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_MAGNIFY_MASK				0x70000000
1391#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MAGNIFY_NEAREST				0x10000000
1392#define    NV04_DX5_TEXTURED_TRIANGLE_FILTER_MAGNIFY_LINEAR				0x20000000
1393#define   NV04_DX5_TEXTURED_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE			(1 << 31)
1394#define  NV04_DX5_TEXTURED_TRIANGLE_BLEND						0x00000310
1395#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_SHIFT				0
1396#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_TEXTURE_MAP_MASK				0x0000000f
1397#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_MASK_BIT_SHIFT				4
1398#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_MASK_BIT_MASK				0x00000030
1399#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_SHIFT				6
1400#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_MASK				0x000000c0
1401#define    NV04_DX5_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_FLAT				0x00000040
1402#define    NV04_DX5_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_GOURAUD				0x00000080
1403#define    NV04_DX5_TEXTURED_TRIANGLE_BLEND_SHADE_MODE_PHONG				0x000000c0
1404#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE_SHIFT		8
1405#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE_MASK		0x00000f00
1406#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE_SHIFT			12
1407#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SPECULAR_ENABLE_MASK				0x0000f000
1408#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_FOG_ENABLE_SHIFT				16
1409#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_FOG_ENABLE_MASK				0x000f0000
1410#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_ALPHA_ENABLE_SHIFT				20
1411#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_ALPHA_ENABLE_MASK				0x00f00000
1412#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_SHIFT					24
1413#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_SRC_MASK					0x0f000000
1414#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_SHIFT					28
1415#define   NV04_DX5_TEXTURED_TRIANGLE_BLEND_DST_MASK					0xf0000000
1416#define  NV04_DX5_TEXTURED_TRIANGLE_CONTROL						0x00000314
1417#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF_SHIFT				0
1418#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHA_REF_MASK				0x000000ff
1419#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_SHIFT				8
1420#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHA_FUNC_MASK				0x00000f00
1421#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ALPHA_TEST_ENABLE				(1 << 12)
1422#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_ORIGIN					(1 << 13)
1423#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_ENABLE_SHIFT				14
1424#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_ENABLE_MASK				0x0000c000
1425#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_SHIFT				16
1426#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_FUNC_MASK				0x000f0000
1427#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_SHIFT				20
1428#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_CULL_MODE_MASK				0x00300000
1429#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_DITHER_ENABLE				(1 << 22)
1430#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_PERSPECTIVE_ENABLE			(1 << 23)
1431#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_WRITE_ENABLE_SHIFT			24
1432#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_WRITE_ENABLE_MASK			0x3f000000
1433#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_SHIFT				30
1434#define   NV04_DX5_TEXTURED_TRIANGLE_CONTROL_Z_FORMAT_MASK				0xc0000000
1435#define  NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR						0x00000318
1436#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_B_SHIFT					0
1437#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_B_MASK					0x000000ff
1438#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_G_SHIFT					8
1439#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_G_MASK					0x0000ff00
1440#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_R_SHIFT					16
1441#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_R_MASK					0x00ff0000
1442#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_A_SHIFT					24
1443#define   NV04_DX5_TEXTURED_TRIANGLE_FOGCOLOR_A_MASK					0xff000000
1444#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SX(x)					(0x00000400+((x)*32))
1445#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SX__SIZE					0x00000010
1446#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SY(x)					(0x00000404+((x)*32))
1447#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SY__SIZE					0x00000010
1448#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SZ(x)					(0x00000408+((x)*32))
1449#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SZ__SIZE					0x00000010
1450#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_RHW(x)					(0x0000040c+((x)*32))
1451#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_RHW__SIZE					0x00000010
1452#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR(x)					(0x00000410+((x)*32))
1453#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR__SIZE				0x00000010
1454#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B_SHIFT				0
1455#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_B_MASK				0x000000ff
1456#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G_SHIFT				8
1457#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_G_MASK				0x0000ff00
1458#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R_SHIFT				16
1459#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_R_MASK				0x00ff0000
1460#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A_SHIFT				24
1461#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_COLOR_A_MASK				0xff000000
1462#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR(x)				(0x00000414+((x)*32))
1463#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR__SIZE				0x00000010
1464#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B_SHIFT				0
1465#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_B_MASK				0x000000ff
1466#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G_SHIFT				8
1467#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_G_MASK				0x0000ff00
1468#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R_SHIFT				16
1469#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_R_MASK				0x00ff0000
1470#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_SHIFT			24
1471#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_SPECULAR_FOG_MASK				0xff000000
1472#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_TU(x)					(0x00000418+((x)*32))
1473#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_TU__SIZE					0x00000010
1474#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_TV(x)					(0x0000041c+((x)*32))
1475#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_TV__SIZE					0x00000010
1476#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE(x)				(0x00000600+((x)*4))
1477#define  NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE__SIZE			0x00000040
1478#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I0_SHIFT			0
1479#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I0_MASK			0x0000000f
1480#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I1_SHIFT			4
1481#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I1_MASK			0x000000f0
1482#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I2_SHIFT			8
1483#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I2_MASK			0x00000f00
1484#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I3_SHIFT			12
1485#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I3_MASK			0x0000f000
1486#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I4_SHIFT			16
1487#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I4_MASK			0x000f0000
1488#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I5_SHIFT			20
1489#define   NV04_DX5_TEXTURED_TRIANGLE_TLVERTEX_DRAWPRIMITIVE_I5_MASK			0x00f00000
1490
1491
1492#define NV04_DX6_MULTITEX_TRIANGLE							0x00000055
1493
1494#define  NV04_DX6_MULTITEX_TRIANGLE_NOP							0x00000100
1495#define  NV04_DX6_MULTITEX_TRIANGLE_NOTIFY						0x00000104
1496#define  NV04_DX6_MULTITEX_TRIANGLE_DMA_NOTIFY						0x00000180
1497#define  NV04_DX6_MULTITEX_TRIANGLE_DMA_A						0x00000184
1498#define  NV04_DX6_MULTITEX_TRIANGLE_DMA_B						0x00000188
1499#define  NV04_DX6_MULTITEX_TRIANGLE_SURFACE						0x0000018c
1500#define  NV04_DX6_MULTITEX_TRIANGLE_OFFSET(x)						(0x00000308+((x)*4))
1501#define  NV04_DX6_MULTITEX_TRIANGLE_OFFSET__SIZE					0x00000002
1502#define  NV04_DX6_MULTITEX_TRIANGLE_FORMAT(x)						(0x00000310+((x)*4))
1503#define  NV04_DX6_MULTITEX_TRIANGLE_FORMAT__SIZE					0x00000002
1504#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_DMA_SHIFT					0
1505#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_DMA_MASK					0x0000000f
1506#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_SHIFT				4
1507#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ORIGIN_ZOH_MASK				0x00000030
1508#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_SHIFT				6
1509#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ORIGIN_FOH_MASK				0x000000c0
1510#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_COLOR_SHIFT					8
1511#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_COLOR_MASK					0x00000f00
1512#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_SHIFT				12
1513#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_MIPMAP_LEVELS_MASK				0x0000f000
1514#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_SHIFT				16
1515#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_U_MASK				0x000f0000
1516#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_SHIFT				20
1517#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_BASE_SIZE_V_MASK				0x00f00000
1518#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_SHIFT				24
1519#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ADDRESSU_MASK				0x07000000
1520#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_WRAPU					(1 << 27)
1521#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_SHIFT				28
1522#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_ADDRESSV_MASK				0x70000000
1523#define   NV04_DX6_MULTITEX_TRIANGLE_FORMAT_WRAPV					(1 << 31)
1524#define  NV04_DX6_MULTITEX_TRIANGLE_FILTER(x)						(0x00000318+((x)*4))
1525#define  NV04_DX6_MULTITEX_TRIANGLE_FILTER__SIZE					0x00000002
1526#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X_SHIFT				0
1527#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_X_MASK				0x000000ff
1528#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y_SHIFT				8
1529#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_KERNEL_SIZE_Y_MASK				0x00007f00
1530#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MIPMAP_DITHER_ENABLE			(1 << 15)
1531#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_SHIFT			16
1532#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MIPMAP_LODBIAS_MASK				0x00ff0000
1533#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MINIFY_SHIFT				24
1534#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MINIFY_MASK					0x07000000
1535#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MINIFY_ENABLE			(1 << 27)
1536#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MAGNIFY_SHIFT				28
1537#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_MAGNIFY_MASK				0x70000000
1538#define   NV04_DX6_MULTITEX_TRIANGLE_FILTER_ANISOTROPIC_MAGNIFY_ENABLE			(1 << 31)
1539#define  NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA					0x00000320
1540#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_INVERSE0				(1 <<  0)
1541#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ALPHA0				(1 <<  1)
1542#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT0_SHIFT			2
1543#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT0_MASK			0x000000fc
1544#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_INVERSE1				(1 <<  8)
1545#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ALPHA1				(1 <<  9)
1546#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT1_SHIFT			10
1547#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT1_MASK			0x0000fc00
1548#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_INVERSE2				(1 << 16)
1549#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ALPHA2				(1 << 17)
1550#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT2_SHIFT			18
1551#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT2_MASK			0x00fc0000
1552#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_INVERSE3				(1 << 24)
1553#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ALPHA3				(1 << 25)
1554#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT3_SHIFT			26
1555#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_ARGUMENT3_MASK			0x1c000000
1556#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_OPERATION_SHIFT			29
1557#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_ALPHA_OPERATION_MASK			0xe0000000
1558#define  NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR					0x00000324
1559#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_INVERSE0				(1 <<  0)
1560#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ALPHA0				(1 <<  1)
1561#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT0_SHIFT			2
1562#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT0_MASK			0x000000fc
1563#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_INVERSE1				(1 <<  8)
1564#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ALPHA1				(1 <<  9)
1565#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT1_SHIFT			10
1566#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT1_MASK			0x0000fc00
1567#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_INVERSE2				(1 << 16)
1568#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ALPHA2				(1 << 17)
1569#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT2_SHIFT			18
1570#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT2_MASK			0x00fc0000
1571#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_INVERSE3				(1 << 24)
1572#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ALPHA3				(1 << 25)
1573#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT3_SHIFT			26
1574#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_ARGUMENT3_MASK			0x1c000000
1575#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_OPERATION_SHIFT			29
1576#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_0_COLOR_OPERATION_MASK			0xe0000000
1577#define  NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA					0x0000032c
1578#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_INVERSE0				(1 <<  0)
1579#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ALPHA0				(1 <<  1)
1580#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT0_SHIFT			2
1581#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT0_MASK			0x000000fc
1582#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_INVERSE1				(1 <<  8)
1583#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ALPHA1				(1 <<  9)
1584#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT1_SHIFT			10
1585#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT1_MASK			0x0000fc00
1586#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_INVERSE2				(1 << 16)
1587#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ALPHA2				(1 << 17)
1588#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT2_SHIFT			18
1589#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT2_MASK			0x00fc0000
1590#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_INVERSE3				(1 << 24)
1591#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ALPHA3				(1 << 25)
1592#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT3_SHIFT			26
1593#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_ARGUMENT3_MASK			0x1c000000
1594#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_OPERATION_SHIFT			29
1595#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_ALPHA_OPERATION_MASK			0xe0000000
1596#define  NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR					0x00000330
1597#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_INVERSE0				(1 <<  0)
1598#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ALPHA0				(1 <<  1)
1599#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT0_SHIFT			2
1600#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT0_MASK			0x000000fc
1601#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_INVERSE1				(1 <<  8)
1602#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ALPHA1				(1 <<  9)
1603#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT1_SHIFT			10
1604#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT1_MASK			0x0000fc00
1605#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_INVERSE2				(1 << 16)
1606#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ALPHA2				(1 << 17)
1607#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT2_SHIFT			18
1608#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT2_MASK			0x00fc0000
1609#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_INVERSE3				(1 << 24)
1610#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ALPHA3				(1 << 25)
1611#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT3_SHIFT			26
1612#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_ARGUMENT3_MASK			0x1c000000
1613#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_OPERATION_SHIFT			29
1614#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_1_COLOR_OPERATION_MASK			0xe0000000
1615#define  NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR					0x00000334
1616#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_B_SHIFT				0
1617#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_B_MASK				0x000000ff
1618#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_G_SHIFT				8
1619#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_G_MASK				0x0000ff00
1620#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_R_SHIFT				16
1621#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_R_MASK				0x00ff0000
1622#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_A_SHIFT				24
1623#define   NV04_DX6_MULTITEX_TRIANGLE_COMBINE_FACTOR_A_MASK				0xff000000
1624#define  NV04_DX6_MULTITEX_TRIANGLE_BLEND						0x00000338
1625#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_MASK_BIT_SHIFT				4
1626#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_MASK_BIT_MASK				0x00000030
1627#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_SHIFT				6
1628#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SHADE_MODE_MASK				0x000000c0
1629#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE_SHIFT		8
1630#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_TEXTURE_PERSPECTIVE_ENABLE_MASK		0x00000f00
1631#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE_SHIFT			12
1632#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SPECULAR_ENABLE_MASK				0x0000f000
1633#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_FOG_ENABLE_SHIFT				16
1634#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_FOG_ENABLE_MASK				0x000f0000
1635#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_ALPHA_ENABLE_SHIFT				20
1636#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_ALPHA_ENABLE_MASK				0x00f00000
1637#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_SHIFT					24
1638#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_SRC_MASK					0x0f000000
1639#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_SHIFT					28
1640#define   NV04_DX6_MULTITEX_TRIANGLE_BLEND_DST_MASK					0xf0000000
1641#define  NV04_DX6_MULTITEX_TRIANGLE_CONTROL0						0x0000033c
1642#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF_SHIFT				0
1643#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_REF_MASK				0x000000ff
1644#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_SHIFT				8
1645#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_FUNC_MASK				0x00000f00
1646#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_TEST_ENABLE				(1 << 12)
1647#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ORIGIN					(1 << 13)
1648#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_ENABLE_SHIFT				14
1649#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_ENABLE_MASK				0x0000c000
1650#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_SHIFT				16
1651#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_FUNC_MASK				0x000f0000
1652#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_SHIFT				20
1653#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_CULL_MODE_MASK				0x00300000
1654#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_DITHER_ENABLE				(1 << 22)
1655#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_PERSPECTIVE_ENABLE			(1 << 23)
1656#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_WRITE_ENABLE				(1 << 24)
1657#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_STENCIL_WRITE_ENABLE			(1 << 25)
1658#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_ALPHA_WRITE_ENABLE			(1 << 26)
1659#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_RED_WRITE_ENABLE				(1 << 27)
1660#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_GREEN_WRITE_ENABLE			(1 << 28)
1661#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_BLUE_WRITE_ENABLE				(1 << 29)
1662#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_SHIFT				30
1663#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL0_Z_FORMAT_MASK				0xc0000000
1664#define  NV04_DX6_MULTITEX_TRIANGLE_CONTROL1						0x00000340
1665#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_TEST_ENABLE_SHIFT			0
1666#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_TEST_ENABLE_MASK			0x0000000f
1667#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_SHIFT			4
1668#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_FUNC_MASK				0x000000f0
1669#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_SHIFT				8
1670#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_REF_MASK				0x0000ff00
1671#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_SHIFT			16
1672#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_READ_MASK			0x00ff0000
1673#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_SHIFT			24
1674#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL1_STENCIL_MASK_WRITE_MASK			0xff000000
1675#define  NV04_DX6_MULTITEX_TRIANGLE_CONTROL2						0x00000344
1676#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL_SHIFT			0
1677#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_FAIL_MASK			0x0000000f
1678#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_SHIFT			4
1679#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZFAIL_MASK			0x000000f0
1680#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_SHIFT			8
1681#define   NV04_DX6_MULTITEX_TRIANGLE_CONTROL2_STENCIL_OP_ZPASS_MASK			0x00000f00
1682#define  NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR						0x00000348
1683#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_B_SHIFT					0
1684#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_B_MASK					0x000000ff
1685#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_G_SHIFT					8
1686#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_G_MASK					0x0000ff00
1687#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_R_SHIFT					16
1688#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_R_MASK					0x00ff0000
1689#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_A_SHIFT					24
1690#define   NV04_DX6_MULTITEX_TRIANGLE_FOGCOLOR_A_MASK					0xff000000
1691#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SX(x)					(0x00000400+((x)*40))
1692#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SX__SIZE					0x00000008
1693#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SY(x)					(0x00000404+((x)*40))
1694#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SY__SIZE					0x00000008
1695#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SZ(x)					(0x00000408+((x)*40))
1696#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SZ__SIZE					0x00000008
1697#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_RHW(x)					(0x0000040c+((x)*40))
1698#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_RHW__SIZE				0x00000008
1699#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR(x)					(0x00000410+((x)*40))
1700#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR__SIZE				0x00000008
1701#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B_SHIFT				0
1702#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_B_MASK				0x000000ff
1703#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G_SHIFT				8
1704#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_G_MASK				0x0000ff00
1705#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R_SHIFT				16
1706#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_R_MASK				0x00ff0000
1707#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A_SHIFT				24
1708#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_COLOR_A_MASK				0xff000000
1709#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR(x)				(0x00000414+((x)*40))
1710#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR__SIZE				0x00000008
1711#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B_SHIFT			0
1712#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_B_MASK				0x000000ff
1713#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G_SHIFT			8
1714#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_G_MASK				0x0000ff00
1715#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R_SHIFT			16
1716#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_R_MASK				0x00ff0000
1717#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG_SHIFT			24
1718#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_SPECULAR_FOG_MASK			0xff000000
1719#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TU0(x)					(0x00000418+((x)*40))
1720#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TU0__SIZE				0x00000008
1721#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TV0(x)					(0x0000041c+((x)*40))
1722#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TV0__SIZE				0x00000008
1723#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TU1(x)					(0x00000420+((x)*40))
1724#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TU1__SIZE				0x00000008
1725#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TV1(x)					(0x00000424+((x)*40))
1726#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_TV1__SIZE				0x00000008
1727#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE(x)				(0x00000540+((x)*4))
1728#define  NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE__SIZE			0x00000030
1729#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I0_SHIFT			0
1730#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I0_MASK			0x0000000f
1731#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I1_SHIFT			4
1732#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I1_MASK			0x000000f0
1733#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I2_SHIFT			8
1734#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I2_MASK			0x00000f00
1735#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I3_SHIFT			12
1736#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I3_MASK			0x0000f000
1737#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I4_SHIFT			16
1738#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I4_MASK			0x000f0000
1739#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I5_SHIFT			20
1740#define   NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I5_MASK			0x00f00000
1741
1742
1743#define NV10_DX5_TEXTURED_TRIANGLE							0x00000094
1744
1745
1746
1747#define NV10TCL										0x00000056
1748
1749#define  NV10TCL_NOP									0x00000100
1750#define  NV10TCL_NOTIFY									0x00000104
1751#define  NV10TCL_DMA_NOTIFY								0x00000180
1752#define  NV10TCL_DMA_IN_MEMORY0								0x00000184
1753#define  NV10TCL_DMA_IN_MEMORY1								0x00000188
1754#define  NV10TCL_DMA_VTXBUF0								0x0000018c
1755#define  NV10TCL_DMA_IN_MEMORY2								0x00000194
1756#define  NV10TCL_DMA_IN_MEMORY3								0x00000198
1757#define  NV10TCL_RT_HORIZ								0x00000200
1758#define   NV10TCL_RT_HORIZ_X_SHIFT							0
1759#define   NV10TCL_RT_HORIZ_X_MASK							0x0000ffff
1760#define   NV10TCL_RT_HORIZ_W_SHIFT							16
1761#define   NV10TCL_RT_HORIZ_W_MASK							0xffff0000
1762#define  NV10TCL_RT_VERT								0x00000204
1763#define   NV10TCL_RT_VERT_Y_SHIFT							0
1764#define   NV10TCL_RT_VERT_Y_MASK							0x0000ffff
1765#define   NV10TCL_RT_VERT_H_SHIFT							16
1766#define   NV10TCL_RT_VERT_H_MASK							0xffff0000
1767#define  NV10TCL_RT_FORMAT								0x00000208
1768#define   NV10TCL_RT_FORMAT_TYPE_SHIFT							8
1769#define   NV10TCL_RT_FORMAT_TYPE_MASK							0x00000f00
1770#define    NV10TCL_RT_FORMAT_TYPE_LINEAR						0x00000100
1771#define    NV10TCL_RT_FORMAT_TYPE_SWIZZLED						0x00000200
1772#define   NV10TCL_RT_FORMAT_COLOR_SHIFT							0
1773#define   NV10TCL_RT_FORMAT_COLOR_MASK							0x0000001f
1774#define    NV10TCL_RT_FORMAT_COLOR_R5G6B5						0x00000003
1775#define    NV10TCL_RT_FORMAT_COLOR_X8R8G8B8						0x00000005
1776#define    NV10TCL_RT_FORMAT_COLOR_A8R8G8B8						0x00000008
1777#define    NV10TCL_RT_FORMAT_COLOR_B8							0x00000009
1778#define    NV10TCL_RT_FORMAT_COLOR_UNKNOWN						0x0000000d
1779#define    NV10TCL_RT_FORMAT_COLOR_X8B8G8R8						0x0000000f
1780#define    NV10TCL_RT_FORMAT_COLOR_A8B8G8R8						0x00000010
1781#define  NV10TCL_RT_PITCH								0x0000020c
1782#define   NV10TCL_RT_PITCH_COLOR_PITCH_SHIFT						0
1783#define   NV10TCL_RT_PITCH_COLOR_PITCH_MASK						0x0000ffff
1784#define   NV10TCL_RT_PITCH_ZETA_PITCH_SHIFT						16
1785#define   NV10TCL_RT_PITCH_ZETA_PITCH_MASK						0xffff0000
1786#define  NV10TCL_COLOR_OFFSET								0x00000210
1787#define  NV10TCL_ZETA_OFFSET								0x00000214
1788#define  NV10TCL_TX_OFFSET(x)								(0x00000218+((x)*4))
1789#define  NV10TCL_TX_OFFSET__SIZE							0x00000002
1790#define  NV10TCL_TX_FORMAT(x)								(0x00000220+((x)*4))
1791#define  NV10TCL_TX_FORMAT__SIZE							0x00000002
1792#define   NV10TCL_TX_FORMAT_DMA0							(1 <<  0)
1793#define   NV10TCL_TX_FORMAT_DMA1							(1 <<  1)
1794#define   NV10TCL_TX_FORMAT_CUBE_MAP							(1 <<  2)
1795#define   NV10TCL_TX_FORMAT_FORMAT_SHIFT						7
1796#define   NV10TCL_TX_FORMAT_FORMAT_MASK							0x00000780
1797#define    NV10TCL_TX_FORMAT_FORMAT_L8							0x00000000
1798#define    NV10TCL_TX_FORMAT_FORMAT_A8							0x00000080
1799#define    NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5						0x00000100
1800#define    NV10TCL_TX_FORMAT_FORMAT_A8_RECT						0x00000180
1801#define    NV10TCL_TX_FORMAT_FORMAT_A4R4G4B4						0x00000200
1802#define    NV10TCL_TX_FORMAT_FORMAT_R5G6B5						0x00000280
1803#define    NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8						0x00000300
1804#define    NV10TCL_TX_FORMAT_FORMAT_X8R8G8B8						0x00000380
1805#define    NV10TCL_TX_FORMAT_FORMAT_INDEX8						0x00000580
1806#define    NV10TCL_TX_FORMAT_FORMAT_DXT1						0x00000600
1807#define    NV10TCL_TX_FORMAT_FORMAT_DXT3						0x00000700
1808#define    NV10TCL_TX_FORMAT_FORMAT_DXT5						0x00000780
1809#define    NV10TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT					0x00000800
1810#define    NV10TCL_TX_FORMAT_FORMAT_R5G6B5_RECT						0x00000880
1811#define    NV10TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT					0x00000900
1812#define    NV10TCL_TX_FORMAT_FORMAT_L8_RECT						0x00000980
1813#define    NV10TCL_TX_FORMAT_FORMAT_A8L8						0x00000d00
1814#define    NV10TCL_TX_FORMAT_FORMAT_A8_RECT2						0x00000d80
1815#define    NV10TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT					0x00000e80
1816#define    NV10TCL_TX_FORMAT_FORMAT_R8G8B8_RECT						0x00000f00
1817#define    NV10TCL_TX_FORMAT_FORMAT_L8A8_RECT						0x00001000
1818#define    NV10TCL_TX_FORMAT_FORMAT_DSDT						0x00001400
1819#define    NV10TCL_TX_FORMAT_FORMAT_A16							0x00001900
1820#define    NV10TCL_TX_FORMAT_FORMAT_HILO16						0x00001980
1821#define    NV10TCL_TX_FORMAT_FORMAT_A16_RECT						0x00001a80
1822#define    NV10TCL_TX_FORMAT_FORMAT_HILO16_RECT						0x00001b00
1823#define    NV10TCL_TX_FORMAT_FORMAT_HILO8						0x00002200
1824#define    NV10TCL_TX_FORMAT_FORMAT_SIGNED_HILO8					0x00002280
1825#define    NV10TCL_TX_FORMAT_FORMAT_HILO8_RECT						0x00002300
1826#define    NV10TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT					0x00002380
1827#define    NV10TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV					0x00002500
1828#define    NV10TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV					0x00002580
1829#define    NV10TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV					0x00002600
1830#define   NV10TCL_TX_FORMAT_NPOT							(1 << 11)
1831#define   NV10TCL_TX_FORMAT_MIPMAP							(1 << 15)
1832#define   NV10TCL_TX_FORMAT_BASE_SIZE_U_SHIFT						16
1833#define   NV10TCL_TX_FORMAT_BASE_SIZE_U_MASK						0x000f0000
1834#define   NV10TCL_TX_FORMAT_BASE_SIZE_V_SHIFT						20
1835#define   NV10TCL_TX_FORMAT_BASE_SIZE_V_MASK						0x00f00000
1836#define   NV10TCL_TX_FORMAT_WRAP_S_SHIFT						24
1837#define   NV10TCL_TX_FORMAT_WRAP_S_MASK							0x0f000000
1838#define    NV10TCL_TX_FORMAT_WRAP_S_REPEAT						0x01000000
1839#define    NV10TCL_TX_FORMAT_WRAP_S_MIRRORED_REPEAT					0x02000000
1840#define    NV10TCL_TX_FORMAT_WRAP_S_CLAMP_TO_EDGE					0x03000000
1841#define    NV10TCL_TX_FORMAT_WRAP_S_CLAMP_TO_BORDER					0x04000000
1842#define    NV10TCL_TX_FORMAT_WRAP_S_CLAMP						0x05000000
1843#define   NV10TCL_TX_FORMAT_WRAP_T_SHIFT						28
1844#define   NV10TCL_TX_FORMAT_WRAP_T_MASK							0xf0000000
1845#define    NV10TCL_TX_FORMAT_WRAP_T_REPEAT						0x10000000
1846#define    NV10TCL_TX_FORMAT_WRAP_T_MIRRORED_REPEAT					0x20000000
1847#define    NV10TCL_TX_FORMAT_WRAP_T_CLAMP_TO_EDGE					0x30000000
1848#define    NV10TCL_TX_FORMAT_WRAP_T_CLAMP_TO_BORDER					0x40000000
1849#define    NV10TCL_TX_FORMAT_WRAP_T_CLAMP						0x50000000
1850#define  NV10TCL_TX_ENABLE(x)								(0x00000228+((x)*4))
1851#define  NV10TCL_TX_ENABLE__SIZE							0x00000002
1852#define   NV10TCL_TX_ENABLE_ANISOTROPY_SHIFT						4
1853#define   NV10TCL_TX_ENABLE_ANISOTROPY_MASK						0x00000030
1854#define   NV10TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT					14
1855#define   NV10TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK						0x0003c000
1856#define   NV10TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT					26
1857#define   NV10TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK						0x3c000000
1858#define   NV10TCL_TX_ENABLE_ENABLE							(1 << 30)
1859#define  NV10TCL_TX_NPOT_PITCH(x)							(0x00000230+((x)*4))
1860#define  NV10TCL_TX_NPOT_PITCH__SIZE							0x00000002
1861#define   NV10TCL_TX_NPOT_PITCH_PITCH_SHIFT						16
1862#define   NV10TCL_TX_NPOT_PITCH_PITCH_MASK						0xffff0000
1863#define  NV10TCL_TX_NPOT_SIZE(x)							(0x00000240+((x)*4))
1864#define  NV10TCL_TX_NPOT_SIZE__SIZE							0x00000002
1865#define   NV10TCL_TX_NPOT_SIZE_H_SHIFT							0
1866#define   NV10TCL_TX_NPOT_SIZE_H_MASK							0x0000ffff
1867#define   NV10TCL_TX_NPOT_SIZE_W_SHIFT							16
1868#define   NV10TCL_TX_NPOT_SIZE_W_MASK							0xffff0000
1869#define  NV10TCL_TX_FILTER(x)								(0x00000248+((x)*4))
1870#define  NV10TCL_TX_FILTER__SIZE							0x00000002
1871#define   NV10TCL_TX_FILTER_LOD_BIAS_SHIFT						8
1872#define   NV10TCL_TX_FILTER_LOD_BIAS_MASK						0x00000f00
1873#define   NV10TCL_TX_FILTER_MINIFY_SHIFT						24
1874#define   NV10TCL_TX_FILTER_MINIFY_MASK							0x0f000000
1875#define    NV10TCL_TX_FILTER_MINIFY_NEAREST						0x01000000
1876#define    NV10TCL_TX_FILTER_MINIFY_LINEAR						0x02000000
1877#define    NV10TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST				0x03000000
1878#define    NV10TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST				0x04000000
1879#define    NV10TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR				0x05000000
1880#define    NV10TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR				0x06000000
1881#define   NV10TCL_TX_FILTER_MAGNIFY_SHIFT						28
1882#define   NV10TCL_TX_FILTER_MAGNIFY_MASK						0xf0000000
1883#define    NV10TCL_TX_FILTER_MAGNIFY_NEAREST						0x10000000
1884#define    NV10TCL_TX_FILTER_MAGNIFY_LINEAR						0x20000000
1885#define  NV10TCL_TX_PALETTE_OFFSET(x)							(0x00000250+((x)*4))
1886#define  NV10TCL_TX_PALETTE_OFFSET__SIZE						0x00000002
1887#define  NV10TCL_RC_IN_ALPHA(x)								(0x00000260+((x)*4))
1888#define  NV10TCL_RC_IN_ALPHA__SIZE							0x00000002
1889#define   NV10TCL_RC_IN_ALPHA_D_INPUT_SHIFT						0
1890#define   NV10TCL_RC_IN_ALPHA_D_INPUT_MASK						0x0000000f
1891#define    NV10TCL_RC_IN_ALPHA_D_INPUT_ZERO						0x00000000
1892#define    NV10TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0_NV				0x00000001
1893#define    NV10TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1_NV				0x00000002
1894#define    NV10TCL_RC_IN_ALPHA_D_INPUT_FOG						0x00000003
1895#define    NV10TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR_NV					0x00000004
1896#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR_NV				0x00000005
1897#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0_ARB					0x00000008
1898#define    NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1_ARB					0x00000009
1899#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0_NV					0x0000000c
1900#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE1_NV					0x0000000d
1901#define    NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
1902#define    NV10TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F_NV					0x0000000f
1903#define   NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE						(1 <<  4)
1904#define    NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE					0x00000000
1905#define    NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA					0x00000010
1906#define   NV10TCL_RC_IN_ALPHA_D_MAPPING_SHIFT						5
1907#define   NV10TCL_RC_IN_ALPHA_D_MAPPING_MASK						0x000000e0
1908#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
1909#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT_NV				0x00000020
1910#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL_NV				0x00000040
1911#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE_NV				0x00000060
1912#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL_NV				0x00000080
1913#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE_NV				0x000000a0
1914#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY_NV				0x000000c0
1915#define    NV10TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE_NV				0x000000e0
1916#define   NV10TCL_RC_IN_ALPHA_C_INPUT_SHIFT						8
1917#define   NV10TCL_RC_IN_ALPHA_C_INPUT_MASK						0x00000f00
1918#define    NV10TCL_RC_IN_ALPHA_C_INPUT_ZERO						0x00000000
1919#define    NV10TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0_NV				0x00000100
1920#define    NV10TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1_NV				0x00000200
1921#define    NV10TCL_RC_IN_ALPHA_C_INPUT_FOG						0x00000300
1922#define    NV10TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR_NV					0x00000400
1923#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR_NV				0x00000500
1924#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0_ARB					0x00000800
1925#define    NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1_ARB					0x00000900
1926#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0_NV					0x00000c00
1927#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE1_NV					0x00000d00
1928#define    NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
1929#define    NV10TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F_NV					0x00000f00
1930#define   NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE						(1 << 12)
1931#define    NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE					0x00000000
1932#define    NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA					0x00001000
1933#define   NV10TCL_RC_IN_ALPHA_C_MAPPING_SHIFT						13
1934#define   NV10TCL_RC_IN_ALPHA_C_MAPPING_MASK						0x0000e000
1935#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
1936#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT_NV				0x00002000
1937#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL_NV				0x00004000
1938#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE_NV				0x00006000
1939#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
1940#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
1941#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
1942#define    NV10TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE_NV				0x0000e000
1943#define   NV10TCL_RC_IN_ALPHA_B_INPUT_SHIFT						16
1944#define   NV10TCL_RC_IN_ALPHA_B_INPUT_MASK						0x000f0000
1945#define    NV10TCL_RC_IN_ALPHA_B_INPUT_ZERO						0x00000000
1946#define    NV10TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0_NV				0x00010000
1947#define    NV10TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1_NV				0x00020000
1948#define    NV10TCL_RC_IN_ALPHA_B_INPUT_FOG						0x00030000
1949#define    NV10TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR_NV					0x00040000
1950#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR_NV				0x00050000
1951#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0_ARB					0x00080000
1952#define    NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1_ARB					0x00090000
1953#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0_NV					0x000c0000
1954#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE1_NV					0x000d0000
1955#define    NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
1956#define    NV10TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F_NV					0x000f0000
1957#define   NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE						(1 << 20)
1958#define    NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE					0x00000000
1959#define    NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA					0x00100000
1960#define   NV10TCL_RC_IN_ALPHA_B_MAPPING_SHIFT						21
1961#define   NV10TCL_RC_IN_ALPHA_B_MAPPING_MASK						0x00e00000
1962#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
1963#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT_NV				0x00200000
1964#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL_NV				0x00400000
1965#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE_NV				0x00600000
1966#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
1967#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
1968#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
1969#define    NV10TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE_NV				0x00e00000
1970#define   NV10TCL_RC_IN_ALPHA_A_INPUT_SHIFT						24
1971#define   NV10TCL_RC_IN_ALPHA_A_INPUT_MASK						0x0f000000
1972#define    NV10TCL_RC_IN_ALPHA_A_INPUT_ZERO						0x00000000
1973#define    NV10TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0_NV				0x01000000
1974#define    NV10TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1_NV				0x02000000
1975#define    NV10TCL_RC_IN_ALPHA_A_INPUT_FOG						0x03000000
1976#define    NV10TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR_NV					0x04000000
1977#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR_NV				0x05000000
1978#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0_ARB					0x08000000
1979#define    NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1_ARB					0x09000000
1980#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0_NV					0x0c000000
1981#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE1_NV					0x0d000000
1982#define    NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
1983#define    NV10TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F_NV					0x0f000000
1984#define   NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE						(1 << 28)
1985#define    NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE					0x00000000
1986#define    NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA					0x10000000
1987#define   NV10TCL_RC_IN_ALPHA_A_MAPPING_SHIFT						29
1988#define   NV10TCL_RC_IN_ALPHA_A_MAPPING_MASK						0xe0000000
1989#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
1990#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT_NV				0x20000000
1991#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL_NV				0x40000000
1992#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE_NV				0x60000000
1993#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
1994#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
1995#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
1996#define    NV10TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE_NV				0xe0000000
1997#define  NV10TCL_RC_IN_RGB(x)								(0x00000268+((x)*4))
1998#define  NV10TCL_RC_IN_RGB__SIZE							0x00000002
1999#define   NV10TCL_RC_IN_RGB_D_INPUT_SHIFT						0
2000#define   NV10TCL_RC_IN_RGB_D_INPUT_MASK						0x0000000f
2001#define    NV10TCL_RC_IN_RGB_D_INPUT_ZERO						0x00000000
2002#define    NV10TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0_NV					0x00000001
2003#define    NV10TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1_NV					0x00000002
2004#define    NV10TCL_RC_IN_RGB_D_INPUT_FOG						0x00000003
2005#define    NV10TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR_NV					0x00000004
2006#define    NV10TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR_NV					0x00000005
2007#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE0_ARB					0x00000008
2008#define    NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE1_ARB					0x00000009
2009#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE0_NV						0x0000000c
2010#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE1_NV						0x0000000d
2011#define    NV10TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
2012#define    NV10TCL_RC_IN_RGB_D_INPUT_E_TIMES_F_NV					0x0000000f
2013#define   NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE						(1 <<  4)
2014#define    NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB					0x00000000
2015#define    NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA					0x00000010
2016#define   NV10TCL_RC_IN_RGB_D_MAPPING_SHIFT						5
2017#define   NV10TCL_RC_IN_RGB_D_MAPPING_MASK						0x000000e0
2018#define    NV10TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2019#define    NV10TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT_NV				0x00000020
2020#define    NV10TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL_NV					0x00000040
2021#define    NV10TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE_NV					0x00000060
2022#define    NV10TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL_NV				0x00000080
2023#define    NV10TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE_NV				0x000000a0
2024#define    NV10TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY_NV				0x000000c0
2025#define    NV10TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE_NV					0x000000e0
2026#define   NV10TCL_RC_IN_RGB_C_INPUT_SHIFT						8
2027#define   NV10TCL_RC_IN_RGB_C_INPUT_MASK						0x00000f00
2028#define    NV10TCL_RC_IN_RGB_C_INPUT_ZERO						0x00000000
2029#define    NV10TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0_NV					0x00000100
2030#define    NV10TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1_NV					0x00000200
2031#define    NV10TCL_RC_IN_RGB_C_INPUT_FOG						0x00000300
2032#define    NV10TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR_NV					0x00000400
2033#define    NV10TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR_NV					0x00000500
2034#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE0_ARB					0x00000800
2035#define    NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE1_ARB					0x00000900
2036#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE0_NV						0x00000c00
2037#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE1_NV						0x00000d00
2038#define    NV10TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
2039#define    NV10TCL_RC_IN_RGB_C_INPUT_E_TIMES_F_NV					0x00000f00
2040#define   NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE						(1 << 12)
2041#define    NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB					0x00000000
2042#define    NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA					0x00001000
2043#define   NV10TCL_RC_IN_RGB_C_MAPPING_SHIFT						13
2044#define   NV10TCL_RC_IN_RGB_C_MAPPING_MASK						0x0000e000
2045#define    NV10TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2046#define    NV10TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT_NV				0x00002000
2047#define    NV10TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL_NV					0x00004000
2048#define    NV10TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE_NV					0x00006000
2049#define    NV10TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
2050#define    NV10TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
2051#define    NV10TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
2052#define    NV10TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE_NV					0x0000e000
2053#define   NV10TCL_RC_IN_RGB_B_INPUT_SHIFT						16
2054#define   NV10TCL_RC_IN_RGB_B_INPUT_MASK						0x000f0000
2055#define    NV10TCL_RC_IN_RGB_B_INPUT_ZERO						0x00000000
2056#define    NV10TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0_NV					0x00010000
2057#define    NV10TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1_NV					0x00020000
2058#define    NV10TCL_RC_IN_RGB_B_INPUT_FOG						0x00030000
2059#define    NV10TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR_NV					0x00040000
2060#define    NV10TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR_NV					0x00050000
2061#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE0_ARB					0x00080000
2062#define    NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE1_ARB					0x00090000
2063#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE0_NV						0x000c0000
2064#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE1_NV						0x000d0000
2065#define    NV10TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
2066#define    NV10TCL_RC_IN_RGB_B_INPUT_E_TIMES_F_NV					0x000f0000
2067#define   NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE						(1 << 20)
2068#define    NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB					0x00000000
2069#define    NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA					0x00100000
2070#define   NV10TCL_RC_IN_RGB_B_MAPPING_SHIFT						21
2071#define   NV10TCL_RC_IN_RGB_B_MAPPING_MASK						0x00e00000
2072#define    NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2073#define    NV10TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT_NV				0x00200000
2074#define    NV10TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL_NV					0x00400000
2075#define    NV10TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE_NV					0x00600000
2076#define    NV10TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
2077#define    NV10TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
2078#define    NV10TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
2079#define    NV10TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE_NV					0x00e00000
2080#define   NV10TCL_RC_IN_RGB_A_INPUT_SHIFT						24
2081#define   NV10TCL_RC_IN_RGB_A_INPUT_MASK						0x0f000000
2082#define    NV10TCL_RC_IN_RGB_A_INPUT_ZERO						0x00000000
2083#define    NV10TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0_NV					0x01000000
2084#define    NV10TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1_NV					0x02000000
2085#define    NV10TCL_RC_IN_RGB_A_INPUT_FOG						0x03000000
2086#define    NV10TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR_NV					0x04000000
2087#define    NV10TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR_NV					0x05000000
2088#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE0_ARB					0x08000000
2089#define    NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE1_ARB					0x09000000
2090#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE0_NV						0x0c000000
2091#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE1_NV						0x0d000000
2092#define    NV10TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
2093#define    NV10TCL_RC_IN_RGB_A_INPUT_E_TIMES_F_NV					0x0f000000
2094#define   NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE						(1 << 28)
2095#define    NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB					0x00000000
2096#define    NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA					0x10000000
2097#define   NV10TCL_RC_IN_RGB_A_MAPPING_SHIFT						29
2098#define   NV10TCL_RC_IN_RGB_A_MAPPING_MASK						0xe0000000
2099#define    NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2100#define    NV10TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT_NV				0x20000000
2101#define    NV10TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL_NV					0x40000000
2102#define    NV10TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE_NV					0x60000000
2103#define    NV10TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
2104#define    NV10TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
2105#define    NV10TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
2106#define    NV10TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE_NV					0xe0000000
2107#define  NV10TCL_RC_COLOR(x)								(0x00000270+((x)*4))
2108#define  NV10TCL_RC_COLOR__SIZE								0x00000002
2109#define   NV10TCL_RC_COLOR_B_SHIFT							0
2110#define   NV10TCL_RC_COLOR_B_MASK							0x000000ff
2111#define   NV10TCL_RC_COLOR_G_SHIFT							8
2112#define   NV10TCL_RC_COLOR_G_MASK							0x0000ff00
2113#define   NV10TCL_RC_COLOR_R_SHIFT							16
2114#define   NV10TCL_RC_COLOR_R_MASK							0x00ff0000
2115#define   NV10TCL_RC_COLOR_A_SHIFT							24
2116#define   NV10TCL_RC_COLOR_A_MASK							0xff000000
2117#define  NV10TCL_RC_OUT_ALPHA(x)							(0x00000278+((x)*4))
2118#define  NV10TCL_RC_OUT_ALPHA__SIZE							0x00000002
2119#define   NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT						0
2120#define   NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK						0x0000000f
2121#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO						0x00000000
2122#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0_NV				0x00000001
2123#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1_NV				0x00000002
2124#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG						0x00000003
2125#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR_NV				0x00000004
2126#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR_NV				0x00000005
2127#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0_ARB					0x00000008
2128#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1_ARB					0x00000009
2129#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_NV					0x0000000c
2130#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1_NV					0x0000000d
2131#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV		0x0000000e
2132#define    NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F_NV					0x0000000f
2133#define   NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT						4
2134#define   NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK						0x000000f0
2135#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO						0x00000000
2136#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0_NV				0x00000010
2137#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1_NV				0x00000020
2138#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG						0x00000030
2139#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR_NV				0x00000040
2140#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR_NV				0x00000050
2141#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0_ARB					0x00000080
2142#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1_ARB					0x00000090
2143#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_NV					0x000000c0
2144#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV					0x000000d0
2145#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV		0x000000e0
2146#define    NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV					0x000000f0
2147#define   NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT						8
2148#define   NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK						0x00000f00
2149#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO						0x00000000
2150#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0_NV				0x00000100
2151#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1_NV				0x00000200
2152#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG						0x00000300
2153#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR_NV				0x00000400
2154#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR_NV				0x00000500
2155#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0_ARB					0x00000800
2156#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1_ARB					0x00000900
2157#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_NV					0x00000c00
2158#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV					0x00000d00
2159#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV		0x00000e00
2160#define    NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV					0x00000f00
2161#define   NV10TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT						(1 << 12)
2162#define   NV10TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT						(1 << 13)
2163#define   NV10TCL_RC_OUT_ALPHA_MUX_SUM							(1 << 14)
2164#define   NV10TCL_RC_OUT_ALPHA_BIAS							(1 << 15)
2165#define    NV10TCL_RC_OUT_ALPHA_BIAS_NONE						0x00000000
2166#define    NV10TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV			0x00008000
2167#define   NV10TCL_RC_OUT_ALPHA_SCALE_SHIFT						17
2168#define   NV10TCL_RC_OUT_ALPHA_SCALE_MASK						0x00000000
2169#define    NV10TCL_RC_OUT_ALPHA_SCALE_NONE						0x00000000
2170#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO_NV					0x00020000
2171#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR_NV					0x00040000
2172#define    NV10TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF_NV				0x00060000
2173#define  NV10TCL_RC_OUT_RGB(x)								(0x00000280+((x)*4))
2174#define  NV10TCL_RC_OUT_RGB__SIZE							0x00000002
2175#define   NV10TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT						0
2176#define   NV10TCL_RC_OUT_RGB_CD_OUTPUT_MASK						0x0000000f
2177#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_ZERO						0x00000000
2178#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0_NV				0x00000001
2179#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1_NV				0x00000002
2180#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_FOG						0x00000003
2181#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR_NV				0x00000004
2182#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR_NV				0x00000005
2183#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0_ARB					0x00000008
2184#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1_ARB					0x00000009
2185#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_NV					0x0000000c
2186#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1_NV					0x0000000d
2187#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
2188#define    NV10TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F_NV					0x0000000f
2189#define   NV10TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT						4
2190#define   NV10TCL_RC_OUT_RGB_AB_OUTPUT_MASK						0x000000f0
2191#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_ZERO						0x00000000
2192#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0_NV				0x00000010
2193#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1_NV				0x00000020
2194#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_FOG						0x00000030
2195#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR_NV				0x00000040
2196#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR_NV				0x00000050
2197#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0_ARB					0x00000080
2198#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1_ARB					0x00000090
2199#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_NV					0x000000c0
2200#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV					0x000000d0
2201#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000000e0
2202#define    NV10TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV					0x000000f0
2203#define   NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT						8
2204#define   NV10TCL_RC_OUT_RGB_SUM_OUTPUT_MASK						0x00000f00
2205#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO						0x00000000
2206#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0_NV				0x00000100
2207#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1_NV				0x00000200
2208#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_FOG						0x00000300
2209#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR_NV				0x00000400
2210#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR_NV				0x00000500
2211#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0_ARB					0x00000800
2212#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1_ARB					0x00000900
2213#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_NV					0x00000c00
2214#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV					0x00000d00
2215#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
2216#define    NV10TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV					0x00000f00
2217#define   NV10TCL_RC_OUT_RGB_CD_DOT_PRODUCT						(1 << 12)
2218#define   NV10TCL_RC_OUT_RGB_AB_DOT_PRODUCT						(1 << 13)
2219#define   NV10TCL_RC_OUT_RGB_MUX_SUM							(1 << 14)
2220#define   NV10TCL_RC_OUT_RGB_BIAS							(1 << 15)
2221#define    NV10TCL_RC_OUT_RGB_BIAS_NONE							0x00000000
2222#define    NV10TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV				0x00008000
2223#define   NV10TCL_RC_OUT_RGB_SCALE_SHIFT						17
2224#define   NV10TCL_RC_OUT_RGB_SCALE_MASK							0x00000000
2225#define    NV10TCL_RC_OUT_RGB_SCALE_NONE						0x00000000
2226#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO_NV					0x00020000
2227#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR_NV					0x00040000
2228#define    NV10TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF_NV				0x00060000
2229#define   NV10TCL_RC_OUT_RGB_OPERATION_SHIFT						27
2230#define   NV10TCL_RC_OUT_RGB_OPERATION_MASK						0x38000000
2231#define  NV10TCL_RC_FINAL0								0x00000288
2232#define   NV10TCL_RC_FINAL0_D_INPUT_SHIFT						0
2233#define   NV10TCL_RC_FINAL0_D_INPUT_MASK						0x0000000f
2234#define    NV10TCL_RC_FINAL0_D_INPUT_ZERO						0x00000000
2235#define    NV10TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0_NV					0x00000001
2236#define    NV10TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1_NV					0x00000002
2237#define    NV10TCL_RC_FINAL0_D_INPUT_FOG						0x00000003
2238#define    NV10TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR_NV					0x00000004
2239#define    NV10TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR_NV					0x00000005
2240#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE0_ARB					0x00000008
2241#define    NV10TCL_RC_FINAL0_D_INPUT_TEXTURE1_ARB					0x00000009
2242#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE0_NV						0x0000000c
2243#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE1_NV						0x0000000d
2244#define    NV10TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
2245#define    NV10TCL_RC_FINAL0_D_INPUT_E_TIMES_F_NV					0x0000000f
2246#define   NV10TCL_RC_FINAL0_D_COMPONENT_USAGE						(1 <<  4)
2247#define    NV10TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB					0x00000000
2248#define    NV10TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA					0x00000010
2249#define   NV10TCL_RC_FINAL0_D_MAPPING_SHIFT						5
2250#define   NV10TCL_RC_FINAL0_D_MAPPING_MASK						0x000000e0
2251#define    NV10TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2252#define    NV10TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT_NV				0x00000020
2253#define    NV10TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL_NV					0x00000040
2254#define    NV10TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE_NV					0x00000060
2255#define    NV10TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL_NV				0x00000080
2256#define    NV10TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE_NV				0x000000a0
2257#define    NV10TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY_NV				0x000000c0
2258#define    NV10TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE_NV					0x000000e0
2259#define   NV10TCL_RC_FINAL0_C_INPUT_SHIFT						8
2260#define   NV10TCL_RC_FINAL0_C_INPUT_MASK						0x00000f00
2261#define    NV10TCL_RC_FINAL0_C_INPUT_ZERO						0x00000000
2262#define    NV10TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0_NV					0x00000100
2263#define    NV10TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1_NV					0x00000200
2264#define    NV10TCL_RC_FINAL0_C_INPUT_FOG						0x00000300
2265#define    NV10TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR_NV					0x00000400
2266#define    NV10TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR_NV					0x00000500
2267#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE0_ARB					0x00000800
2268#define    NV10TCL_RC_FINAL0_C_INPUT_TEXTURE1_ARB					0x00000900
2269#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE0_NV						0x00000c00
2270#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE1_NV						0x00000d00
2271#define    NV10TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
2272#define    NV10TCL_RC_FINAL0_C_INPUT_E_TIMES_F_NV					0x00000f00
2273#define   NV10TCL_RC_FINAL0_C_COMPONENT_USAGE						(1 << 12)
2274#define    NV10TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB					0x00000000
2275#define    NV10TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA					0x00001000
2276#define   NV10TCL_RC_FINAL0_C_MAPPING_SHIFT						13
2277#define   NV10TCL_RC_FINAL0_C_MAPPING_MASK						0x0000e000
2278#define    NV10TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2279#define    NV10TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT_NV				0x00002000
2280#define    NV10TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL_NV					0x00004000
2281#define    NV10TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE_NV					0x00006000
2282#define    NV10TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
2283#define    NV10TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
2284#define    NV10TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
2285#define    NV10TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE_NV					0x0000e000
2286#define   NV10TCL_RC_FINAL0_B_INPUT_SHIFT						16
2287#define   NV10TCL_RC_FINAL0_B_INPUT_MASK						0x000f0000
2288#define    NV10TCL_RC_FINAL0_B_INPUT_ZERO						0x00000000
2289#define    NV10TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0_NV					0x00010000
2290#define    NV10TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1_NV					0x00020000
2291#define    NV10TCL_RC_FINAL0_B_INPUT_FOG						0x00030000
2292#define    NV10TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR_NV					0x00040000
2293#define    NV10TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR_NV					0x00050000
2294#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE0_ARB					0x00080000
2295#define    NV10TCL_RC_FINAL0_B_INPUT_TEXTURE1_ARB					0x00090000
2296#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE0_NV						0x000c0000
2297#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE1_NV						0x000d0000
2298#define    NV10TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
2299#define    NV10TCL_RC_FINAL0_B_INPUT_E_TIMES_F_NV					0x000f0000
2300#define   NV10TCL_RC_FINAL0_B_COMPONENT_USAGE						(1 << 20)
2301#define    NV10TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB					0x00000000
2302#define    NV10TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA					0x00100000
2303#define   NV10TCL_RC_FINAL0_B_MAPPING_SHIFT						21
2304#define   NV10TCL_RC_FINAL0_B_MAPPING_MASK						0x00e00000
2305#define    NV10TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2306#define    NV10TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT_NV				0x00200000
2307#define    NV10TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL_NV					0x00400000
2308#define    NV10TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE_NV					0x00600000
2309#define    NV10TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
2310#define    NV10TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
2311#define    NV10TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
2312#define    NV10TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE_NV					0x00e00000
2313#define   NV10TCL_RC_FINAL0_A_INPUT_SHIFT						24
2314#define   NV10TCL_RC_FINAL0_A_INPUT_MASK						0x0f000000
2315#define    NV10TCL_RC_FINAL0_A_INPUT_ZERO						0x00000000
2316#define    NV10TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0_NV					0x01000000
2317#define    NV10TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1_NV					0x02000000
2318#define    NV10TCL_RC_FINAL0_A_INPUT_FOG						0x03000000
2319#define    NV10TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR_NV					0x04000000
2320#define    NV10TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR_NV					0x05000000
2321#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE0_ARB					0x08000000
2322#define    NV10TCL_RC_FINAL0_A_INPUT_TEXTURE1_ARB					0x09000000
2323#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE0_NV						0x0c000000
2324#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE1_NV						0x0d000000
2325#define    NV10TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
2326#define    NV10TCL_RC_FINAL0_A_INPUT_E_TIMES_F_NV					0x0f000000
2327#define   NV10TCL_RC_FINAL0_A_COMPONENT_USAGE						(1 << 28)
2328#define    NV10TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB					0x00000000
2329#define    NV10TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA					0x10000000
2330#define   NV10TCL_RC_FINAL0_A_MAPPING_SHIFT						29
2331#define   NV10TCL_RC_FINAL0_A_MAPPING_MASK						0xe0000000
2332#define    NV10TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2333#define    NV10TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT_NV				0x20000000
2334#define    NV10TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL_NV					0x40000000
2335#define    NV10TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE_NV					0x60000000
2336#define    NV10TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
2337#define    NV10TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
2338#define    NV10TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
2339#define    NV10TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE_NV					0xe0000000
2340#define  NV10TCL_RC_FINAL1								0x0000028c
2341#define   NV10TCL_RC_FINAL1_COLOR_SUM_CLAMP						(1 <<  7)
2342#define   NV10TCL_RC_FINAL1_G_INPUT_SHIFT						8
2343#define   NV10TCL_RC_FINAL1_G_INPUT_MASK						0x00000f00
2344#define    NV10TCL_RC_FINAL1_G_INPUT_ZERO						0x00000000
2345#define    NV10TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0_NV					0x00000100
2346#define    NV10TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1_NV					0x00000200
2347#define    NV10TCL_RC_FINAL1_G_INPUT_FOG						0x00000300
2348#define    NV10TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR_NV					0x00000400
2349#define    NV10TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR_NV					0x00000500
2350#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE0_ARB					0x00000800
2351#define    NV10TCL_RC_FINAL1_G_INPUT_TEXTURE1_ARB					0x00000900
2352#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE0_NV						0x00000c00
2353#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE1_NV						0x00000d00
2354#define    NV10TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
2355#define    NV10TCL_RC_FINAL1_G_INPUT_E_TIMES_F_NV					0x00000f00
2356#define   NV10TCL_RC_FINAL1_G_COMPONENT_USAGE						(1 << 12)
2357#define    NV10TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB					0x00000000
2358#define    NV10TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA					0x00001000
2359#define   NV10TCL_RC_FINAL1_G_MAPPING_SHIFT						13
2360#define   NV10TCL_RC_FINAL1_G_MAPPING_MASK						0x0000e000
2361#define    NV10TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2362#define    NV10TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT_NV				0x00002000
2363#define    NV10TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL_NV					0x00004000
2364#define    NV10TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE_NV					0x00006000
2365#define    NV10TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
2366#define    NV10TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
2367#define    NV10TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
2368#define    NV10TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE_NV					0x0000e000
2369#define   NV10TCL_RC_FINAL1_F_INPUT_SHIFT						16
2370#define   NV10TCL_RC_FINAL1_F_INPUT_MASK						0x000f0000
2371#define    NV10TCL_RC_FINAL1_F_INPUT_ZERO						0x00000000
2372#define    NV10TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0_NV					0x00010000
2373#define    NV10TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1_NV					0x00020000
2374#define    NV10TCL_RC_FINAL1_F_INPUT_FOG						0x00030000
2375#define    NV10TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR_NV					0x00040000
2376#define    NV10TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR_NV					0x00050000
2377#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE0_ARB					0x00080000
2378#define    NV10TCL_RC_FINAL1_F_INPUT_TEXTURE1_ARB					0x00090000
2379#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE0_NV						0x000c0000
2380#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE1_NV						0x000d0000
2381#define    NV10TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
2382#define    NV10TCL_RC_FINAL1_F_INPUT_E_TIMES_F_NV					0x000f0000
2383#define   NV10TCL_RC_FINAL1_F_COMPONENT_USAGE						(1 << 20)
2384#define    NV10TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB					0x00000000
2385#define    NV10TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA					0x00100000
2386#define   NV10TCL_RC_FINAL1_F_MAPPING_SHIFT						21
2387#define   NV10TCL_RC_FINAL1_F_MAPPING_MASK						0x00e00000
2388#define    NV10TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2389#define    NV10TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT_NV				0x00200000
2390#define    NV10TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL_NV					0x00400000
2391#define    NV10TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE_NV					0x00600000
2392#define    NV10TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
2393#define    NV10TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
2394#define    NV10TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
2395#define    NV10TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE_NV					0x00e00000
2396#define   NV10TCL_RC_FINAL1_E_INPUT_SHIFT						24
2397#define   NV10TCL_RC_FINAL1_E_INPUT_MASK						0x0f000000
2398#define    NV10TCL_RC_FINAL1_E_INPUT_ZERO						0x00000000
2399#define    NV10TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0_NV					0x01000000
2400#define    NV10TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1_NV					0x02000000
2401#define    NV10TCL_RC_FINAL1_E_INPUT_FOG						0x03000000
2402#define    NV10TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR_NV					0x04000000
2403#define    NV10TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR_NV					0x05000000
2404#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE0_ARB					0x08000000
2405#define    NV10TCL_RC_FINAL1_E_INPUT_TEXTURE1_ARB					0x09000000
2406#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE0_NV						0x0c000000
2407#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE1_NV						0x0d000000
2408#define    NV10TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
2409#define    NV10TCL_RC_FINAL1_E_INPUT_E_TIMES_F_NV					0x0f000000
2410#define   NV10TCL_RC_FINAL1_E_COMPONENT_USAGE						(1 << 28)
2411#define    NV10TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB					0x00000000
2412#define    NV10TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA					0x10000000
2413#define   NV10TCL_RC_FINAL1_E_MAPPING_SHIFT						29
2414#define   NV10TCL_RC_FINAL1_E_MAPPING_MASK						0xe0000000
2415#define    NV10TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
2416#define    NV10TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT_NV				0x20000000
2417#define    NV10TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL_NV					0x40000000
2418#define    NV10TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE_NV					0x60000000
2419#define    NV10TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
2420#define    NV10TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
2421#define    NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
2422#define    NV10TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE_NV					0xe0000000
2423#define  NV10TCL_LIGHT_MODEL								0x00000294
2424#define   NV10TCL_LIGHT_MODEL_COLOR_CONTROL						(1 <<  1)
2425#define   NV10TCL_LIGHT_MODEL_LOCAL_VIEWER						(1 << 16)
2426#define  NV10TCL_COLOR_MATERIAL_ENABLE							0x00000298
2427#define   NV10TCL_COLOR_MATERIAL_ENABLE_SPECULAR					(1 <<  0)
2428#define   NV10TCL_COLOR_MATERIAL_ENABLE_DIFFUSE						(1 <<  1)
2429#define   NV10TCL_COLOR_MATERIAL_ENABLE_AMBIENT						(1 <<  2)
2430#define   NV10TCL_COLOR_MATERIAL_ENABLE_EMISSION					(1 <<  3)
2431#define  NV10TCL_FOG_MODE								0x0000029c
2432#define   NV10TCL_FOG_MODE_EXP								0x00000800
2433#define   NV10TCL_FOG_MODE_EXP_2							0x00000802
2434#define   NV10TCL_FOG_MODE_EXP2								0x00000803
2435#define   NV10TCL_FOG_MODE_LINEAR							0x00000804
2436#define   NV10TCL_FOG_MODE_LINEAR_2							0x00002601
2437#define  NV10TCL_FOG_COORD_DIST								0x000002a0
2438#define   NV10TCL_FOG_COORD_DIST_COORD_FALSE						0x00000000
2439#define   NV10TCL_FOG_COORD_DIST_COORD_FRAGMENT_DEPTH_DISTANCE_EYE_RADIAL_NV		0x00000001
2440#define   NV10TCL_FOG_COORD_DIST_COORD_FRAGMENT_DEPTH_DISTANCE_EYE_PLANE_ABSOLUTE_NV	0x00000002
2441#define   NV10TCL_FOG_COORD_DIST_COORD_FOG						0x00000003
2442#define  NV10TCL_FOG_ENABLE								0x000002a4
2443#define  NV10TCL_FOG_COLOR								0x000002a8
2444#define   NV10TCL_FOG_COLOR_R_SHIFT							0
2445#define   NV10TCL_FOG_COLOR_R_MASK							0x000000ff
2446#define   NV10TCL_FOG_COLOR_G_SHIFT							8
2447#define   NV10TCL_FOG_COLOR_G_MASK							0x0000ff00
2448#define   NV10TCL_FOG_COLOR_B_SHIFT							16
2449#define   NV10TCL_FOG_COLOR_B_MASK							0x00ff0000
2450#define   NV10TCL_FOG_COLOR_A_SHIFT							24
2451#define   NV10TCL_FOG_COLOR_A_MASK							0xff000000
2452#define  NV10TCL_VIEWPORT_CLIP_MODE							0x000002b4
2453#define  NV10TCL_VIEWPORT_CLIP_HORIZ(x)							(0x000002c0+((x)*4))
2454#define  NV10TCL_VIEWPORT_CLIP_HORIZ__SIZE						0x00000008
2455#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_L_SHIFT					0
2456#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_L_MASK					0x000007ff
2457#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_LEFT_ENABLE					(1 << 11)
2458#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_R_SHIFT					16
2459#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_R_MASK					0x07ff0000
2460#define   NV10TCL_VIEWPORT_CLIP_HORIZ_CLIP_RIGHT_ENABLE					(1 << 27)
2461#define  NV10TCL_VIEWPORT_CLIP_VERT(x)							(0x000002e0+((x)*4))
2462#define  NV10TCL_VIEWPORT_CLIP_VERT__SIZE						0x00000008
2463#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_T_SHIFT					0
2464#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_T_MASK					0x000007ff
2465#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_TOP_ENABLE					(1 << 11)
2466#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_B_SHIFT					16
2467#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_B_MASK					0x07ff0000
2468#define   NV10TCL_VIEWPORT_CLIP_VERT_CLIP_BOTTOM_ENABLE					(1 << 27)
2469#define  NV10TCL_ALPHA_FUNC_ENABLE							0x00000300
2470#define  NV10TCL_BLEND_FUNC_ENABLE							0x00000304
2471#define  NV10TCL_CULL_FACE_ENABLE							0x00000308
2472#define  NV10TCL_DEPTH_TEST_ENABLE							0x0000030c
2473#define  NV10TCL_DITHER_ENABLE								0x00000310
2474#define  NV10TCL_LIGHTING_ENABLE							0x00000314
2475#define  NV10TCL_POINT_PARAMETERS_ENABLE						0x00000318
2476#define  NV10TCL_POINT_SMOOTH_ENABLE							0x0000031c
2477#define  NV10TCL_LINE_SMOOTH_ENABLE							0x00000320
2478#define  NV10TCL_POLYGON_SMOOTH_ENABLE							0x00000324
2479#define  NV10TCL_VERTEX_WEIGHT_ENABLE							0x00000328
2480#define  NV10TCL_STENCIL_ENABLE								0x0000032c
2481#define  NV10TCL_POLYGON_OFFSET_POINT_ENABLE						0x00000330
2482#define  NV10TCL_POLYGON_OFFSET_LINE_ENABLE						0x00000334
2483#define  NV10TCL_POLYGON_OFFSET_FILL_ENABLE						0x00000338
2484#define  NV10TCL_ALPHA_FUNC_FUNC							0x0000033c
2485#define   NV10TCL_ALPHA_FUNC_FUNC_NEVER							0x00000200
2486#define   NV10TCL_ALPHA_FUNC_FUNC_LESS							0x00000201
2487#define   NV10TCL_ALPHA_FUNC_FUNC_EQUAL							0x00000202
2488#define   NV10TCL_ALPHA_FUNC_FUNC_LEQUAL						0x00000203
2489#define   NV10TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
2490#define   NV10TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
2491#define   NV10TCL_ALPHA_FUNC_FUNC_NOTEQUAL						0x00000205
2492#define   NV10TCL_ALPHA_FUNC_FUNC_GEQUAL						0x00000206
2493#define   NV10TCL_ALPHA_FUNC_FUNC_ALWAYS						0x00000207
2494#define  NV10TCL_ALPHA_FUNC_REF								0x00000340
2495#define  NV10TCL_BLEND_FUNC_SRC								0x00000344
2496#define   NV10TCL_BLEND_FUNC_SRC_ZERO							0x00000000
2497#define   NV10TCL_BLEND_FUNC_SRC_ONE							0x00000001
2498#define   NV10TCL_BLEND_FUNC_SRC_SRC_COLOR						0x00000300
2499#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_COLOR					0x00000301
2500#define   NV10TCL_BLEND_FUNC_SRC_SRC_ALPHA						0x00000302
2501#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_ALPHA					0x00000303
2502#define   NV10TCL_BLEND_FUNC_SRC_DST_ALPHA						0x00000304
2503#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_ALPHA					0x00000305
2504#define   NV10TCL_BLEND_FUNC_SRC_DST_COLOR						0x00000306
2505#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_COLOR					0x00000307
2506#define   NV10TCL_BLEND_FUNC_SRC_SRC_ALPHA_SATURATE					0x00000308
2507#define   NV10TCL_BLEND_FUNC_SRC_CONSTANT_COLOR						0x00008001
2508#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_COLOR				0x00008002
2509#define   NV10TCL_BLEND_FUNC_SRC_CONSTANT_ALPHA						0x00008003
2510#define   NV10TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_ALPHA				0x00008004
2511#define  NV10TCL_BLEND_FUNC_DST								0x00000348
2512#define   NV10TCL_BLEND_FUNC_DST_ZERO							0x00000000
2513#define   NV10TCL_BLEND_FUNC_DST_ONE							0x00000001
2514#define   NV10TCL_BLEND_FUNC_DST_SRC_COLOR						0x00000300
2515#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_COLOR					0x00000301
2516#define   NV10TCL_BLEND_FUNC_DST_SRC_ALPHA						0x00000302
2517#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_ALPHA					0x00000303
2518#define   NV10TCL_BLEND_FUNC_DST_DST_ALPHA						0x00000304
2519#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_DST_ALPHA					0x00000305
2520#define   NV10TCL_BLEND_FUNC_DST_DST_COLOR						0x00000306
2521#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_DST_COLOR					0x00000307
2522#define   NV10TCL_BLEND_FUNC_DST_SRC_ALPHA_SATURATE					0x00000308
2523#define   NV10TCL_BLEND_FUNC_DST_CONSTANT_COLOR						0x00008001
2524#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_COLOR				0x00008002
2525#define   NV10TCL_BLEND_FUNC_DST_CONSTANT_ALPHA						0x00008003
2526#define   NV10TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_ALPHA				0x00008004
2527#define  NV10TCL_BLEND_COLOR								0x0000034c
2528#define   NV10TCL_BLEND_COLOR_B_SHIFT							0
2529#define   NV10TCL_BLEND_COLOR_B_MASK							0x000000ff
2530#define   NV10TCL_BLEND_COLOR_G_SHIFT							8
2531#define   NV10TCL_BLEND_COLOR_G_MASK							0x0000ff00
2532#define   NV10TCL_BLEND_COLOR_R_SHIFT							16
2533#define   NV10TCL_BLEND_COLOR_R_MASK							0x00ff0000
2534#define   NV10TCL_BLEND_COLOR_A_SHIFT							24
2535#define   NV10TCL_BLEND_COLOR_A_MASK							0xff000000
2536#define  NV10TCL_BLEND_EQUATION								0x00000350
2537#define   NV10TCL_BLEND_EQUATION_FUNC_ADD						0x00008006
2538#define   NV10TCL_BLEND_EQUATION_MIN							0x00008007
2539#define   NV10TCL_BLEND_EQUATION_MAX							0x00008008
2540#define   NV10TCL_BLEND_EQUATION_FUNC_SUBTRACT						0x0000800a
2541#define   NV10TCL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT					0x0000800b
2542#define  NV10TCL_DEPTH_FUNC								0x00000354
2543#define   NV10TCL_DEPTH_FUNC_NEVER							0x00000200
2544#define   NV10TCL_DEPTH_FUNC_LESS							0x00000201
2545#define   NV10TCL_DEPTH_FUNC_EQUAL							0x00000202
2546#define   NV10TCL_DEPTH_FUNC_LEQUAL							0x00000203
2547#define   NV10TCL_DEPTH_FUNC_GREATER							0x00000204
2548#define   NV10TCL_DEPTH_FUNC_GREATER							0x00000204
2549#define   NV10TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
2550#define   NV10TCL_DEPTH_FUNC_GEQUAL							0x00000206
2551#define   NV10TCL_DEPTH_FUNC_ALWAYS							0x00000207
2552#define  NV10TCL_COLOR_MASK								0x00000358
2553#define   NV10TCL_COLOR_MASK_B								(1 <<  0)
2554#define   NV10TCL_COLOR_MASK_G								(1 <<  8)
2555#define   NV10TCL_COLOR_MASK_R								(1 << 16)
2556#define   NV10TCL_COLOR_MASK_A								(1 << 24)
2557#define  NV10TCL_DEPTH_WRITE_ENABLE							0x0000035c
2558#define  NV10TCL_STENCIL_MASK								0x00000360
2559#define  NV10TCL_STENCIL_FUNC_FUNC							0x00000364
2560#define   NV10TCL_STENCIL_FUNC_FUNC_NEVER						0x00000200
2561#define   NV10TCL_STENCIL_FUNC_FUNC_LESS						0x00000201
2562#define   NV10TCL_STENCIL_FUNC_FUNC_EQUAL						0x00000202
2563#define   NV10TCL_STENCIL_FUNC_FUNC_LEQUAL						0x00000203
2564#define   NV10TCL_STENCIL_FUNC_FUNC_GREATER						0x00000204
2565#define   NV10TCL_STENCIL_FUNC_FUNC_GREATER						0x00000204
2566#define   NV10TCL_STENCIL_FUNC_FUNC_NOTEQUAL						0x00000205
2567#define   NV10TCL_STENCIL_FUNC_FUNC_GEQUAL						0x00000206
2568#define   NV10TCL_STENCIL_FUNC_FUNC_ALWAYS						0x00000207
2569#define  NV10TCL_STENCIL_FUNC_REF							0x00000368
2570#define  NV10TCL_STENCIL_FUNC_MASK							0x0000036c
2571#define  NV10TCL_STENCIL_OP_FAIL							0x00000370
2572#define   NV10TCL_STENCIL_OP_FAIL_ZERO							0x00000000
2573#define   NV10TCL_STENCIL_OP_FAIL_INVERT						0x0000150a
2574#define   NV10TCL_STENCIL_OP_FAIL_KEEP							0x00001e00
2575#define   NV10TCL_STENCIL_OP_FAIL_REPLACE						0x00001e01
2576#define   NV10TCL_STENCIL_OP_FAIL_INCR							0x00001e02
2577#define   NV10TCL_STENCIL_OP_FAIL_DECR							0x00001e03
2578#define   NV10TCL_STENCIL_OP_FAIL_INCR_WRAP						0x00008507
2579#define   NV10TCL_STENCIL_OP_FAIL_DECR_WRAP						0x00008508
2580#define  NV10TCL_STENCIL_OP_ZFAIL							0x00000374
2581#define   NV10TCL_STENCIL_OP_ZFAIL_ZERO							0x00000000
2582#define   NV10TCL_STENCIL_OP_ZFAIL_INVERT						0x0000150a
2583#define   NV10TCL_STENCIL_OP_ZFAIL_KEEP							0x00001e00
2584#define   NV10TCL_STENCIL_OP_ZFAIL_REPLACE						0x00001e01
2585#define   NV10TCL_STENCIL_OP_ZFAIL_INCR							0x00001e02
2586#define   NV10TCL_STENCIL_OP_ZFAIL_DECR							0x00001e03
2587#define   NV10TCL_STENCIL_OP_ZFAIL_INCR_WRAP						0x00008507
2588#define   NV10TCL_STENCIL_OP_ZFAIL_DECR_WRAP						0x00008508
2589#define  NV10TCL_STENCIL_OP_ZPASS							0x00000378
2590#define   NV10TCL_STENCIL_OP_ZPASS_ZERO							0x00000000
2591#define   NV10TCL_STENCIL_OP_ZPASS_INVERT						0x0000150a
2592#define   NV10TCL_STENCIL_OP_ZPASS_KEEP							0x00001e00
2593#define   NV10TCL_STENCIL_OP_ZPASS_REPLACE						0x00001e01
2594#define   NV10TCL_STENCIL_OP_ZPASS_INCR							0x00001e02
2595#define   NV10TCL_STENCIL_OP_ZPASS_DECR							0x00001e03
2596#define   NV10TCL_STENCIL_OP_ZPASS_INCR_WRAP						0x00008507
2597#define   NV10TCL_STENCIL_OP_ZPASS_DECR_WRAP						0x00008508
2598#define  NV10TCL_SHADE_MODEL								0x0000037c
2599#define   NV10TCL_SHADE_MODEL_FLAT							0x00001d00
2600#define   NV10TCL_SHADE_MODEL_SMOOTH							0x00001d01
2601#define  NV10TCL_LINE_WIDTH								0x00000380
2602#define  NV10TCL_POLYGON_OFFSET_FACTOR							0x00000384
2603#define  NV10TCL_POLYGON_OFFSET_UNITS							0x00000388
2604#define  NV10TCL_POLYGON_MODE_FRONT							0x0000038c
2605#define   NV10TCL_POLYGON_MODE_FRONT_POINT						0x00001b00
2606#define   NV10TCL_POLYGON_MODE_FRONT_LINE						0x00001b01
2607#define   NV10TCL_POLYGON_MODE_FRONT_FILL						0x00001b02
2608#define  NV10TCL_POLYGON_MODE_BACK							0x00000390
2609#define   NV10TCL_POLYGON_MODE_BACK_POINT						0x00001b00
2610#define   NV10TCL_POLYGON_MODE_BACK_LINE						0x00001b01
2611#define   NV10TCL_POLYGON_MODE_BACK_FILL						0x00001b02
2612#define  NV10TCL_DEPTH_RANGE_NEAR							0x00000394
2613#define  NV10TCL_DEPTH_RANGE_FAR							0x00000398
2614#define  NV10TCL_CULL_FACE								0x0000039c
2615#define   NV10TCL_CULL_FACE_FRONT							0x00000404
2616#define   NV10TCL_CULL_FACE_BACK							0x00000405
2617#define   NV10TCL_CULL_FACE_FRONT_AND_BACK						0x00000408
2618#define  NV10TCL_FRONT_FACE								0x000003a0
2619#define   NV10TCL_FRONT_FACE_CW								0x00000900
2620#define   NV10TCL_FRONT_FACE_CCW							0x00000901
2621#define  NV10TCL_NORMALIZE_ENABLE							0x000003a4
2622#define  NV10TCL_COLOR_MATERIAL_R							0x000003a8
2623#define  NV10TCL_COLOR_MATERIAL_G							0x000003ac
2624#define  NV10TCL_COLOR_MATERIAL_B							0x000003b0
2625#define  NV10TCL_COLOR_MATERIAL_A							0x000003b4
2626#define  NV10TCL_COLOR_CONTROL								0x000003b8
2627#define  NV10TCL_ENABLED_LIGHTS								0x000003bc
2628#define   NV10TCL_ENABLED_LIGHTS_LIGHT0							(1 <<  0)
2629#define   NV10TCL_ENABLED_LIGHTS_LIGHT1							(1 <<  2)
2630#define   NV10TCL_ENABLED_LIGHTS_LIGHT2							(1 <<  4)
2631#define   NV10TCL_ENABLED_LIGHTS_LIGHT3							(1 <<  6)
2632#define   NV10TCL_ENABLED_LIGHTS_LIGHT4							(1 <<  8)
2633#define   NV10TCL_ENABLED_LIGHTS_LIGHT5							(1 << 10)
2634#define   NV10TCL_ENABLED_LIGHTS_LIGHT6							(1 << 12)
2635#define   NV10TCL_ENABLED_LIGHTS_LIGHT7							(1 << 14)
2636#define  NV10TCL_TX_GEN_S(x)								(0x000003c0+((x)*16))
2637#define  NV10TCL_TX_GEN_S__SIZE								0x00000002
2638#define   NV10TCL_TX_GEN_S_FALSE							0x00000000
2639#define   NV10TCL_TX_GEN_S_EYE_LINEAR							0x00002400
2640#define   NV10TCL_TX_GEN_S_OBJECT_LINEAR						0x00002401
2641#define   NV10TCL_TX_GEN_S_SPHERE_MAP							0x00002402
2642#define   NV10TCL_TX_GEN_S_NORMAL_MAP							0x00008511
2643#define   NV10TCL_TX_GEN_S_REFLECTION_MAP						0x00008512
2644#define  NV10TCL_TX_GEN_T(x)								(0x000003c4+((x)*16))
2645#define  NV10TCL_TX_GEN_T__SIZE								0x00000002
2646#define   NV10TCL_TX_GEN_T_FALSE							0x00000000
2647#define   NV10TCL_TX_GEN_T_EYE_LINEAR							0x00002400
2648#define   NV10TCL_TX_GEN_T_OBJECT_LINEAR						0x00002401
2649#define   NV10TCL_TX_GEN_T_SPHERE_MAP							0x00002402
2650#define   NV10TCL_TX_GEN_T_NORMAL_MAP							0x00008511
2651#define   NV10TCL_TX_GEN_T_REFLECTION_MAP						0x00008512
2652#define  NV10TCL_TX_GEN_R(x)								(0x000003c8+((x)*16))
2653#define  NV10TCL_TX_GEN_R__SIZE								0x00000002
2654#define   NV10TCL_TX_GEN_R_FALSE							0x00000000
2655#define   NV10TCL_TX_GEN_R_EYE_LINEAR							0x00002400
2656#define   NV10TCL_TX_GEN_R_OBJECT_LINEAR						0x00002401
2657#define   NV10TCL_TX_GEN_R_SPHERE_MAP							0x00002402
2658#define   NV10TCL_TX_GEN_R_NORMAL_MAP							0x00008511
2659#define   NV10TCL_TX_GEN_R_REFLECTION_MAP						0x00008512
2660#define  NV10TCL_TX_GEN_Q(x)								(0x000003cc+((x)*16))
2661#define  NV10TCL_TX_GEN_Q__SIZE								0x00000002
2662#define   NV10TCL_TX_GEN_Q_FALSE							0x00000000
2663#define   NV10TCL_TX_GEN_Q_EYE_LINEAR							0x00002400
2664#define   NV10TCL_TX_GEN_Q_OBJECT_LINEAR						0x00002401
2665#define   NV10TCL_TX_GEN_Q_SPHERE_MAP							0x00002402
2666#define   NV10TCL_TX_GEN_Q_NORMAL_MAP							0x00008511
2667#define   NV10TCL_TX_GEN_Q_REFLECTION_MAP						0x00008512
2668#define  NV10TCL_TX_MATRIX_ENABLE(x)							(0x000003e0+((x)*4))
2669#define  NV10TCL_TX_MATRIX_ENABLE__SIZE							0x00000002
2670#define  NV10TCL_VIEW_MATRIX_ENABLE							0x000003e8
2671#define   NV10TCL_VIEW_MATRIX_ENABLE_MODELVIEW1						(1 <<  0)
2672#define   NV10TCL_VIEW_MATRIX_ENABLE_MODELVIEW0						(1 <<  1)
2673#define   NV10TCL_VIEW_MATRIX_ENABLE_PROJECTION						(1 <<  2)
2674#define  NV10TCL_POINT_SIZE								0x000003ec
2675#define  NV10TCL_MODELVIEW0_MATRIX(x)							(0x00000400+((x)*4))
2676#define  NV10TCL_MODELVIEW0_MATRIX__SIZE						0x00000010
2677#define  NV10TCL_MODELVIEW1_MATRIX(x)							(0x00000440+((x)*4))
2678#define  NV10TCL_MODELVIEW1_MATRIX__SIZE						0x00000010
2679#define  NV10TCL_INVERSE_MODELVIEW0_MATRIX(x)						(0x00000480+((x)*4))
2680#define  NV10TCL_INVERSE_MODELVIEW0_MATRIX__SIZE					0x00000010
2681#define  NV10TCL_INVERSE_MODELVIEW1_MATRIX(x)						(0x000004c0+((x)*4))
2682#define  NV10TCL_INVERSE_MODELVIEW1_MATRIX__SIZE					0x00000010
2683#define  NV10TCL_PROJECTION_MATRIX(x)							(0x00000500+((x)*4))
2684#define  NV10TCL_PROJECTION_MATRIX__SIZE						0x00000010
2685#define  NV10TCL_TX0_MATRIX(x)								(0x00000540+((x)*4))
2686#define  NV10TCL_TX0_MATRIX__SIZE							0x00000010
2687#define  NV10TCL_TX1_MATRIX(x)								(0x00000580+((x)*4))
2688#define  NV10TCL_TX1_MATRIX__SIZE							0x00000010
2689#define  NV10TCL_CLIP_PLANE_A(x)							(0x00000600+((x)*16))
2690#define  NV10TCL_CLIP_PLANE_A__SIZE							0x00000008
2691#define  NV10TCL_CLIP_PLANE_B(x)							(0x00000604+((x)*16))
2692#define  NV10TCL_CLIP_PLANE_B__SIZE							0x00000008
2693#define  NV10TCL_CLIP_PLANE_C(x)							(0x00000608+((x)*16))
2694#define  NV10TCL_CLIP_PLANE_C__SIZE							0x00000008
2695#define  NV10TCL_CLIP_PLANE_D(x)							(0x0000060c+((x)*16))
2696#define  NV10TCL_CLIP_PLANE_D__SIZE							0x00000008
2697#define  NV10TCL_FOG_EQUATION_CONSTANT							0x00000680
2698#define  NV10TCL_FOG_EQUATION_LINEAR							0x00000684
2699#define  NV10TCL_FOG_EQUATION_QUADRATIC							0x00000688
2700#define  NV10TCL_FRONT_MATERIAL_SHININESS(x)						(0x000006a0+((x)*4))
2701#define  NV10TCL_FRONT_MATERIAL_SHININESS__SIZE						0x00000006
2702#define  NV10TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R			0x000006c4
2703#define  NV10TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G			0x000006c8
2704#define  NV10TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B			0x000006cc
2705#define  NV10TCL_VIEWPORT_SCALE_X							0x000006e8
2706#define  NV10TCL_VIEWPORT_SCALE_Y							0x000006ec
2707#define  NV10TCL_VIEWPORT_SCALE_Z							0x000006f0
2708#define  NV10TCL_VIEWPORT_SCALE_W							0x000006f4
2709#define  NV10TCL_POINT_PARAMETER(x)							(0x000006f8+((x)*4))
2710#define  NV10TCL_POINT_PARAMETER__SIZE							0x00000008
2711#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(x)					(0x00000800+((x)*128))
2712#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R__SIZE				0x00000008
2713#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(x)					(0x00000804+((x)*128))
2714#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G__SIZE				0x00000008
2715#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(x)					(0x00000808+((x)*128))
2716#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B__SIZE				0x00000008
2717#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(x)					(0x0000080c+((x)*128))
2718#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R__SIZE				0x00000008
2719#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(x)					(0x00000810+((x)*128))
2720#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G__SIZE				0x00000008
2721#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(x)					(0x00000814+((x)*128))
2722#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B__SIZE				0x00000008
2723#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(x)					(0x00000818+((x)*128))
2724#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R__SIZE				0x00000008
2725#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(x)					(0x0000081c+((x)*128))
2726#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G__SIZE				0x00000008
2727#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(x)					(0x00000820+((x)*128))
2728#define  NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B__SIZE				0x00000008
2729#define  NV10TCL_LIGHT_HALF_VECTOR_X(x)							(0x00000828+((x)*128))
2730#define  NV10TCL_LIGHT_HALF_VECTOR_X__SIZE						0x00000008
2731#define  NV10TCL_LIGHT_HALF_VECTOR_Y(x)							(0x0000082c+((x)*128))
2732#define  NV10TCL_LIGHT_HALF_VECTOR_Y__SIZE						0x00000008
2733#define  NV10TCL_LIGHT_HALF_VECTOR_Z(x)							(0x00000830+((x)*128))
2734#define  NV10TCL_LIGHT_HALF_VECTOR_Z__SIZE						0x00000008
2735#define  NV10TCL_LIGHT_DIRECTION_X(x)							(0x00000834+((x)*128))
2736#define  NV10TCL_LIGHT_DIRECTION_X__SIZE						0x00000008
2737#define  NV10TCL_LIGHT_DIRECTION_Y(x)							(0x00000838+((x)*128))
2738#define  NV10TCL_LIGHT_DIRECTION_Y__SIZE						0x00000008
2739#define  NV10TCL_LIGHT_DIRECTION_Z(x)							(0x0000083c+((x)*128))
2740#define  NV10TCL_LIGHT_DIRECTION_Z__SIZE						0x00000008
2741#define  NV10TCL_LIGHT_SPOT_CUTOFF_A(x)							(0x00000840+((x)*128))
2742#define  NV10TCL_LIGHT_SPOT_CUTOFF_A__SIZE						0x00000008
2743#define  NV10TCL_LIGHT_SPOT_CUTOFF_B(x)							(0x00000844+((x)*128))
2744#define  NV10TCL_LIGHT_SPOT_CUTOFF_B__SIZE						0x00000008
2745#define  NV10TCL_LIGHT_SPOT_CUTOFF_C(x)							(0x00000848+((x)*128))
2746#define  NV10TCL_LIGHT_SPOT_CUTOFF_C__SIZE						0x00000008
2747#define  NV10TCL_LIGHT_SPOT_DIR_X(x)							(0x0000084c+((x)*128))
2748#define  NV10TCL_LIGHT_SPOT_DIR_X__SIZE							0x00000008
2749#define  NV10TCL_LIGHT_SPOT_DIR_Y(x)							(0x00000850+((x)*128))
2750#define  NV10TCL_LIGHT_SPOT_DIR_Y__SIZE							0x00000008
2751#define  NV10TCL_LIGHT_SPOT_DIR_Z(x)							(0x00000854+((x)*128))
2752#define  NV10TCL_LIGHT_SPOT_DIR_Z__SIZE							0x00000008
2753#define  NV10TCL_LIGHT_SPOT_CUTOFF_D(x)							(0x00000858+((x)*128))
2754#define  NV10TCL_LIGHT_SPOT_CUTOFF_D__SIZE						0x00000008
2755#define  NV10TCL_LIGHT_POSITION_X(x)							(0x0000085c+((x)*128))
2756#define  NV10TCL_LIGHT_POSITION_X__SIZE							0x00000008
2757#define  NV10TCL_LIGHT_POSITION_Y(x)							(0x00000860+((x)*128))
2758#define  NV10TCL_LIGHT_POSITION_Y__SIZE							0x00000008
2759#define  NV10TCL_LIGHT_POSITION_Z(x)							(0x00000864+((x)*128))
2760#define  NV10TCL_LIGHT_POSITION_Z__SIZE							0x00000008
2761#define  NV10TCL_LIGHT_ATTENUATION_CONSTANT(x)						(0x00000868+((x)*128))
2762#define  NV10TCL_LIGHT_ATTENUATION_CONSTANT__SIZE					0x00000008
2763#define  NV10TCL_LIGHT_ATTENUATION_LINEAR(x)						(0x0000086c+((x)*128))
2764#define  NV10TCL_LIGHT_ATTENUATION_LINEAR__SIZE						0x00000008
2765#define  NV10TCL_LIGHT_ATTENUATION_QUADRATIC(x)						(0x00000870+((x)*128))
2766#define  NV10TCL_LIGHT_ATTENUATION_QUADRATIC__SIZE					0x00000008
2767#define  NV10TCL_VERTEX_POS_3F_X							0x00000c00
2768#define  NV10TCL_VERTEX_POS_3F_Y							0x00000c04
2769#define  NV10TCL_VERTEX_POS_3F_Z							0x00000c08
2770#define  NV10TCL_VERTEX_POS_4F_X							0x00000c18
2771#define  NV10TCL_VERTEX_POS_4F_Y							0x00000c1c
2772#define  NV10TCL_VERTEX_POS_4F_Z							0x00000c20
2773#define  NV10TCL_VERTEX_POS_4F_W							0x00000c24
2774#define  NV10TCL_VERTEX_NOR_3F_X							0x00000c30
2775#define  NV10TCL_VERTEX_NOR_3F_Y							0x00000c34
2776#define  NV10TCL_VERTEX_NOR_3F_Z							0x00000c38
2777#define  NV10TCL_VERTEX_NOR_3I_XY							0x00000c40
2778#define   NV10TCL_VERTEX_NOR_3I_XY_X_SHIFT						0
2779#define   NV10TCL_VERTEX_NOR_3I_XY_X_MASK						0x0000ffff
2780#define   NV10TCL_VERTEX_NOR_3I_XY_Y_SHIFT						16
2781#define   NV10TCL_VERTEX_NOR_3I_XY_Y_MASK						0xffff0000
2782#define  NV10TCL_VERTEX_NOR_3I_Z							0x00000c44
2783#define   NV10TCL_VERTEX_NOR_3I_Z_Z_SHIFT						0
2784#define   NV10TCL_VERTEX_NOR_3I_Z_Z_MASK						0x0000ffff
2785#define  NV10TCL_VERTEX_COL_4F_R							0x00000c50
2786#define  NV10TCL_VERTEX_COL_4F_G							0x00000c54
2787#define  NV10TCL_VERTEX_COL_4F_B							0x00000c58
2788#define  NV10TCL_VERTEX_COL_4F_A							0x00000c5c
2789#define  NV10TCL_VERTEX_COL_3F_R							0x00000c60
2790#define  NV10TCL_VERTEX_COL_3F_G							0x00000c64
2791#define  NV10TCL_VERTEX_COL_3F_B							0x00000c68
2792#define  NV10TCL_VERTEX_COL_4I								0x00000c6c
2793#define   NV10TCL_VERTEX_COL_4I_R_SHIFT							0
2794#define   NV10TCL_VERTEX_COL_4I_R_MASK							0x000000ff
2795#define   NV10TCL_VERTEX_COL_4I_G_SHIFT							8
2796#define   NV10TCL_VERTEX_COL_4I_G_MASK							0x0000ff00
2797#define   NV10TCL_VERTEX_COL_4I_B_SHIFT							16
2798#define   NV10TCL_VERTEX_COL_4I_B_MASK							0x00ff0000
2799#define   NV10TCL_VERTEX_COL_4I_A_SHIFT							24
2800#define   NV10TCL_VERTEX_COL_4I_A_MASK							0xff000000
2801#define  NV10TCL_VERTEX_COL2_3F_R							0x00000c80
2802#define  NV10TCL_VERTEX_COL2_3F_G							0x00000c84
2803#define  NV10TCL_VERTEX_COL2_3F_B							0x00000c88
2804#define  NV10TCL_VERTEX_COL2_3I								0x00000c8c
2805#define   NV10TCL_VERTEX_COL2_3I_R_SHIFT						0
2806#define   NV10TCL_VERTEX_COL2_3I_R_MASK							0x000000ff
2807#define   NV10TCL_VERTEX_COL2_3I_G_SHIFT						8
2808#define   NV10TCL_VERTEX_COL2_3I_G_MASK							0x0000ff00
2809#define   NV10TCL_VERTEX_COL2_3I_B_SHIFT						16
2810#define   NV10TCL_VERTEX_COL2_3I_B_MASK							0x00ff0000
2811#define  NV10TCL_VERTEX_TX0_2F_S							0x00000c90
2812#define  NV10TCL_VERTEX_TX0_2F_T							0x00000c94
2813#define  NV10TCL_VERTEX_TX0_2I								0x00000c98
2814#define   NV10TCL_VERTEX_TX0_2I_S_SHIFT							0
2815#define   NV10TCL_VERTEX_TX0_2I_S_MASK							0x0000ffff
2816#define   NV10TCL_VERTEX_TX0_2I_T_SHIFT							16
2817#define   NV10TCL_VERTEX_TX0_2I_T_MASK							0xffff0000
2818#define  NV10TCL_VERTEX_TX0_4F_S							0x00000ca0
2819#define  NV10TCL_VERTEX_TX0_4F_T							0x00000ca4
2820#define  NV10TCL_VERTEX_TX0_4F_R							0x00000ca8
2821#define  NV10TCL_VERTEX_TX0_4F_Q							0x00000cac
2822#define  NV10TCL_VERTEX_TX0_4I_ST							0x00000cb0
2823#define   NV10TCL_VERTEX_TX0_4I_ST_S_SHIFT						0
2824#define   NV10TCL_VERTEX_TX0_4I_ST_S_MASK						0x0000ffff
2825#define   NV10TCL_VERTEX_TX0_4I_ST_T_SHIFT						16
2826#define   NV10TCL_VERTEX_TX0_4I_ST_T_MASK						0xffff0000
2827#define  NV10TCL_VERTEX_TX0_4I_RQ							0x00000cb4
2828#define   NV10TCL_VERTEX_TX0_4I_RQ_R_SHIFT						0
2829#define   NV10TCL_VERTEX_TX0_4I_RQ_R_MASK						0x0000ffff
2830#define   NV10TCL_VERTEX_TX0_4I_RQ_Q_SHIFT						16
2831#define   NV10TCL_VERTEX_TX0_4I_RQ_Q_MASK						0xffff0000
2832#define  NV10TCL_VERTEX_TX1_2F_S							0x00000cb8
2833#define  NV10TCL_VERTEX_TX1_2F_T							0x00000cbc
2834#define  NV10TCL_VERTEX_TX1_2I								0x00000cc0
2835#define   NV10TCL_VERTEX_TX1_2I_S_SHIFT							0
2836#define   NV10TCL_VERTEX_TX1_2I_S_MASK							0x0000ffff
2837#define   NV10TCL_VERTEX_TX1_2I_T_SHIFT							16
2838#define   NV10TCL_VERTEX_TX1_2I_T_MASK							0xffff0000
2839#define  NV10TCL_VERTEX_TX1_4F_S							0x00000cc8
2840#define  NV10TCL_VERTEX_TX1_4F_T							0x00000ccc
2841#define  NV10TCL_VERTEX_TX1_4F_R							0x00000cd0
2842#define  NV10TCL_VERTEX_TX1_4F_Q							0x00000cd4
2843#define  NV10TCL_VERTEX_TX1_4I_ST							0x00000cd8
2844#define   NV10TCL_VERTEX_TX1_4I_ST_S_SHIFT						0
2845#define   NV10TCL_VERTEX_TX1_4I_ST_S_MASK						0x0000ffff
2846#define   NV10TCL_VERTEX_TX1_4I_ST_T_SHIFT						16
2847#define   NV10TCL_VERTEX_TX1_4I_ST_T_MASK						0xffff0000
2848#define  NV10TCL_VERTEX_TX1_4I_RQ							0x00000cdc
2849#define   NV10TCL_VERTEX_TX1_4I_RQ_R_SHIFT						0
2850#define   NV10TCL_VERTEX_TX1_4I_RQ_R_MASK						0x0000ffff
2851#define   NV10TCL_VERTEX_TX1_4I_RQ_Q_SHIFT						16
2852#define   NV10TCL_VERTEX_TX1_4I_RQ_Q_MASK						0xffff0000
2853#define  NV10TCL_VERTEX_FOG_1F								0x00000ce0
2854#define  NV10TCL_VERTEX_WGH_1F								0x00000ce4
2855#define  NV10TCL_EDGEFLAG_ENABLE							0x00000cec
2856#define  NV10TCL_VERTEX_ARRAY_VALIDATE							0x00000cf0
2857#define  NV10TCL_VERTEX_ARRAY_ATTRIB_OFFSET(x)						(0x00000d00+((x)*8))
2858#define  NV10TCL_VERTEX_ARRAY_ATTRIB_OFFSET__SIZE					0x00000008
2859#define  NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT(x)						(0x00000d04+((x)*8))
2860#define  NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT__SIZE					0x00000008
2861#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_TYPE_SHIFT					0
2862#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_TYPE_MASK					0x0000000f
2863#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_FIELDS_SHIFT				4
2864#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_FIELDS_MASK				0x000000f0
2865#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_STRIDE_SHIFT				8
2866#define   NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_STRIDE_MASK				0x0000ff00
2867#define  NV10TCL_VERTEX_ARRAY_OFFSET_POS						0x00000d00
2868#define  NV10TCL_VERTEX_ARRAY_FORMAT_POS						0x00000d04
2869#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_TYPE_SHIFT					0
2870#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_TYPE_MASK					0x0000000f
2871#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_FIELDS_SHIFT					4
2872#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_FIELDS_MASK					0x000000f0
2873#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_STRIDE_SHIFT					8
2874#define   NV10TCL_VERTEX_ARRAY_FORMAT_POS_STRIDE_MASK					0x0000ff00
2875#define  NV10TCL_VERTEX_ARRAY_OFFSET_COL						0x00000d08
2876#define  NV10TCL_VERTEX_ARRAY_FORMAT_COL						0x00000d0c
2877#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_TYPE_SHIFT					0
2878#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_TYPE_MASK					0x0000000f
2879#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_FIELDS_SHIFT					4
2880#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_FIELDS_MASK					0x000000f0
2881#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_STRIDE_SHIFT					8
2882#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL_STRIDE_MASK					0x0000ff00
2883#define  NV10TCL_VERTEX_ARRAY_OFFSET_COL2						0x00000d10
2884#define  NV10TCL_VERTEX_ARRAY_FORMAT_COL2						0x00000d14
2885#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_TYPE_SHIFT					0
2886#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_TYPE_MASK					0x0000000f
2887#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_FIELDS_SHIFT					4
2888#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_FIELDS_MASK					0x000000f0
2889#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_STRIDE_SHIFT					8
2890#define   NV10TCL_VERTEX_ARRAY_FORMAT_COL2_STRIDE_MASK					0x0000ff00
2891#define  NV10TCL_VERTEX_ARRAY_OFFSET_TX0						0x00000d18
2892#define  NV10TCL_VERTEX_ARRAY_FORMAT_TX0						0x00000d1c
2893#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_TYPE_SHIFT					0
2894#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_TYPE_MASK					0x0000000f
2895#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_FIELDS_SHIFT					4
2896#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_FIELDS_MASK					0x000000f0
2897#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_STRIDE_SHIFT					8
2898#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX0_STRIDE_MASK					0x0000ff00
2899#define  NV10TCL_VERTEX_ARRAY_OFFSET_TX1						0x00000d20
2900#define  NV10TCL_VERTEX_ARRAY_FORMAT_TX1						0x00000d24
2901#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_TYPE_SHIFT					0
2902#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_TYPE_MASK					0x0000000f
2903#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_FIELDS_SHIFT					4
2904#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_FIELDS_MASK					0x000000f0
2905#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_STRIDE_SHIFT					8
2906#define   NV10TCL_VERTEX_ARRAY_FORMAT_TX1_STRIDE_MASK					0x0000ff00
2907#define  NV10TCL_VERTEX_ARRAY_OFFSET_NOR						0x00000d28
2908#define  NV10TCL_VERTEX_ARRAY_FORMAT_NOR						0x00000d2c
2909#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_TYPE_SHIFT					0
2910#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_TYPE_MASK					0x0000000f
2911#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_FIELDS_SHIFT					4
2912#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_FIELDS_MASK					0x000000f0
2913#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_STRIDE_SHIFT					8
2914#define   NV10TCL_VERTEX_ARRAY_FORMAT_NOR_STRIDE_MASK					0x0000ff00
2915#define  NV10TCL_VERTEX_ARRAY_OFFSET_WGH						0x00000d30
2916#define  NV10TCL_VERTEX_ARRAY_FORMAT_WGH						0x00000d34
2917#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_TYPE_SHIFT					0
2918#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_TYPE_MASK					0x0000000f
2919#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_FIELDS_SHIFT					4
2920#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_FIELDS_MASK					0x000000f0
2921#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_STRIDE_SHIFT					8
2922#define   NV10TCL_VERTEX_ARRAY_FORMAT_WGH_STRIDE_MASK					0x0000ff00
2923#define  NV10TCL_VERTEX_ARRAY_OFFSET_FOG						0x00000d38
2924#define  NV10TCL_VERTEX_ARRAY_FORMAT_FOG						0x00000d3c
2925#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_TYPE_SHIFT					0
2926#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_TYPE_MASK					0x0000000f
2927#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_FIELDS_SHIFT					4
2928#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_FIELDS_MASK					0x000000f0
2929#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_STRIDE_SHIFT					8
2930#define   NV10TCL_VERTEX_ARRAY_FORMAT_FOG_STRIDE_MASK					0x0000ff00
2931#define  NV10TCL_VERTEX_BEGIN_END							0x00000dfc
2932#define   NV10TCL_VERTEX_BEGIN_END_STOP							0x00000000
2933#define   NV10TCL_VERTEX_BEGIN_END_POINTS						0x00000001
2934#define   NV10TCL_VERTEX_BEGIN_END_LINES						0x00000002
2935#define   NV10TCL_VERTEX_BEGIN_END_LINE_LOOP						0x00000003
2936#define   NV10TCL_VERTEX_BEGIN_END_LINE_STRIP						0x00000004
2937#define   NV10TCL_VERTEX_BEGIN_END_TRIANGLES						0x00000005
2938#define   NV10TCL_VERTEX_BEGIN_END_TRIANGLE_STRIP					0x00000006
2939#define   NV10TCL_VERTEX_BEGIN_END_TRIANGLE_FAN						0x00000007
2940#define   NV10TCL_VERTEX_BEGIN_END_QUADS						0x00000008
2941#define   NV10TCL_VERTEX_BEGIN_END_QUAD_STRIP						0x00000009
2942#define   NV10TCL_VERTEX_BEGIN_END_POLYGON						0x0000000a
2943#define  NV10TCL_VB_ELEMENT_U16								0x00000e00
2944#define   NV10TCL_VB_ELEMENT_U16_I0_SHIFT						0
2945#define   NV10TCL_VB_ELEMENT_U16_I0_MASK						0x0000ffff
2946#define   NV10TCL_VB_ELEMENT_U16_I1_SHIFT						16
2947#define   NV10TCL_VB_ELEMENT_U16_I1_MASK						0xffff0000
2948#define  NV10TCL_VB_ELEMENT_U32								0x00001100
2949#define  NV10TCL_VERTEX_BUFFER_BEGIN_END						0x000013fc
2950#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_STOP						0x00000000
2951#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_POINTS					0x00000001
2952#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_LINES						0x00000002
2953#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_LINE_LOOP					0x00000003
2954#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_LINE_STRIP					0x00000004
2955#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_TRIANGLES					0x00000005
2956#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_TRIANGLE_STRIP				0x00000006
2957#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_TRIANGLE_FAN					0x00000007
2958#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_QUADS						0x00000008
2959#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_QUAD_STRIP					0x00000009
2960#define   NV10TCL_VERTEX_BUFFER_BEGIN_END_POLYGON					0x0000000a
2961#define  NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS						0x00001400
2962#define   NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_FIRST_SHIFT					0
2963#define   NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_FIRST_MASK					0x0000ffff
2964#define   NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_LAST_SHIFT					24
2965#define   NV10TCL_VERTEX_BUFFER_DRAW_ARRAYS_LAST_MASK					0xff000000
2966#define  NV10TCL_VERTEX_ARRAY_DATA							0x00001800
2967
2968
2969#define NV04_CONTEXT_COLOR_KEY								0x00000057
2970
2971
2972
2973#define NV03_CONTEXT_SURFACES_2D							0x00000058
2974
2975#define  NV03_CONTEXT_SURFACES_2D_SYNCHRONIZE						0x00000100
2976#define  NV03_CONTEXT_SURFACES_2D_DMA_NOTIFY						0x00000180
2977#define  NV03_CONTEXT_SURFACES_2D_DMA_SOURCE						0x00000184
2978#define  NV03_CONTEXT_SURFACES_2D_DMA_DESTIN						0x00000188
2979#define  NV03_CONTEXT_SURFACES_2D_COLOR_FORMAT						0x00000300
2980#define  NV03_CONTEXT_SURFACES_2D_PITCH							0x00000304
2981#define   NV03_CONTEXT_SURFACES_2D_PITCH_SOURCE_SHIFT					0
2982#define   NV03_CONTEXT_SURFACES_2D_PITCH_SOURCE_MASK					0x0000ffff
2983#define   NV03_CONTEXT_SURFACES_2D_PITCH_DESTIN_SHIFT					16
2984#define   NV03_CONTEXT_SURFACES_2D_PITCH_DESTIN_MASK					0xffff0000
2985#define  NV03_CONTEXT_SURFACES_2D_OFFSET_SOURCE						0x00000308
2986#define  NV03_CONTEXT_SURFACES_2D_OFFSET_DESTIN						0x0000030c
2987
2988
2989#define NV03_CONTEXT_SURFACES_3D							0x0000005a
2990
2991#define  NV03_CONTEXT_SURFACES_3D_SYNCHRONIZE						0x00000100
2992#define  NV03_CONTEXT_SURFACES_3D_DMA_NOTIFY						0x00000180
2993#define  NV03_CONTEXT_SURFACES_3D_DMA_SURFACE						0x00000184
2994#define  NV03_CONTEXT_SURFACES_3D_PITCH							0x00000300
2995#define  NV03_CONTEXT_SURFACES_3D_OFFSET_COLOR						0x00000304
2996#define  NV03_CONTEXT_SURFACES_3D_OFFSET_ZETA						0x00000308
2997
2998
2999#define NV04_RENDER_SOLID_LINE								0x0000005c
3000
3001#define  NV04_RENDER_SOLID_LINE_SURFACE							0x00000198
3002
3003
3004#define NV04_RENDER_SOLID_TRIANGLE							0x0000005d
3005
3006
3007
3008#define NV04_RENDER_SOLID_RECTANGLE							0x0000005e
3009
3010#define  NV04_RENDER_SOLID_RECTANGLE_SURFACE						0x00000198
3011
3012
3013#define NV04_IMAGE_BLIT									0x0000005f
3014
3015#define  NV04_IMAGE_BLIT_NOP								0x00000100
3016#define  NV04_IMAGE_BLIT_NOTIFY								0x00000104
3017#define  NV04_IMAGE_BLIT_DMA_NOTIFY							0x00000180
3018#define  NV04_IMAGE_BLIT_COLOR_KEY							0x00000184
3019#define  NV04_IMAGE_BLIT_CLIP_RECTANGLE							0x00000188
3020#define  NV04_IMAGE_BLIT_PATTERN							0x0000018c
3021#define  NV04_IMAGE_BLIT_ROP								0x00000190
3022#define  NV04_IMAGE_BLIT_BETA4								0x00000198
3023#define  NV04_IMAGE_BLIT_SURFACE							0x0000019c
3024#define  NV04_IMAGE_BLIT_OPERATION							0x000002fc
3025#define   NV04_IMAGE_BLIT_OPERATION_SRCCOPY_AND						0x00000000
3026#define   NV04_IMAGE_BLIT_OPERATION_ROP_AND						0x00000001
3027#define   NV04_IMAGE_BLIT_OPERATION_BLEND_AND						0x00000002
3028#define   NV04_IMAGE_BLIT_OPERATION_SRCCOPY						0x00000003
3029#define   NV04_IMAGE_BLIT_OPERATION_SRCCOPY_PREMULT					0x00000004
3030#define   NV04_IMAGE_BLIT_OPERATION_BLEND_PREMULT					0x00000005
3031
3032
3033#define NV04_INDEXED_IMAGE_FROM_CPU							0x00000060
3034
3035#define  NV04_INDEXED_IMAGE_FROM_CPU_NOP						0x00000100
3036#define  NV04_INDEXED_IMAGE_FROM_CPU_NOTIFY						0x00000104
3037#define  NV04_INDEXED_IMAGE_FROM_CPU_PATCH						0x0000010c
3038#define  NV04_INDEXED_IMAGE_FROM_CPU_DMA_NOTIFY						0x00000180
3039#define  NV04_INDEXED_IMAGE_FROM_CPU_DMA_LUT						0x00000184
3040#define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR_FORMAT					0x000003e8
3041#define  NV04_INDEXED_IMAGE_FROM_CPU_INDEX_FORMAT					0x000003ec
3042#define  NV04_INDEXED_IMAGE_FROM_CPU_LUT_OFFSET						0x000003f0
3043#define  NV04_INDEXED_IMAGE_FROM_CPU_POINT						0x000003f4
3044#define  NV04_INDEXED_IMAGE_FROM_CPU_SIZE_OUT						0x000003f8
3045#define  NV04_INDEXED_IMAGE_FROM_CPU_SIZE_IN						0x000003fc
3046#define  NV04_INDEXED_IMAGE_FROM_CPU_COLOR						0x00000400
3047
3048
3049#define NV04_IMAGE_FROM_CPU								0x00000061
3050
3051#define  NV04_IMAGE_FROM_CPU_BETA4							0x00000198
3052#define  NV04_IMAGE_FROM_CPU_SURFACE							0x0000019c
3053
3054
3055#define NV10_CONTEXT_SURFACES_2D							0x00000062
3056
3057
3058
3059#define NV05_SCALED_IMAGE_FROM_MEMORY							0x00000063
3060
3061#define  NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION					0x000002fc
3062#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER				0x00000000
3063#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE			0x00000001
3064#define   NV05_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_SUBTR_TRUNCATE			0x00000002
3065
3066
3067#define NV01_IMAGE_SRCCOPY_AND								0x00000064
3068
3069#define  NV01_IMAGE_SRCCOPY_AND_NOTIFY							0x00000104
3070#define  NV01_IMAGE_SRCCOPY_AND_DMA_NOTIFY						0x00000180
3071#define  NV01_IMAGE_SRCCOPY_AND_IMAGE_OUTPUT						0x00000200
3072#define  NV01_IMAGE_SRCCOPY_AND_IMAGE_INPUT						0x00000204
3073
3074
3075#define NV05_INDEXED_IMAGE_FROM_CPU							0x00000064
3076
3077#define  NV05_INDEXED_IMAGE_FROM_CPU_COLOR_KEY						0x00000188
3078#define  NV05_INDEXED_IMAGE_FROM_CPU_CLIP_RECTANGLE					0x0000018c
3079#define  NV05_INDEXED_IMAGE_FROM_CPU_PATTERN						0x00000190
3080#define  NV05_INDEXED_IMAGE_FROM_CPU_ROP						0x00000194
3081#define  NV05_INDEXED_IMAGE_FROM_CPU_BETA1						0x00000198
3082#define  NV05_INDEXED_IMAGE_FROM_CPU_BETA4						0x0000019c
3083#define  NV05_INDEXED_IMAGE_FROM_CPU_SURFACE						0x000001a0
3084#define  NV05_INDEXED_IMAGE_FROM_CPU_COLOR_CONVERSION					0x000003e0
3085#define  NV05_INDEXED_IMAGE_FROM_CPU_OPERATION						0x000003e4
3086#define  NV05_INDEXED_IMAGE_FROM_CPU_INDICES						0x00000400
3087
3088
3089#define NV05_IMAGE_FROM_CPU								0x00000065
3090
3091#define  NV05_IMAGE_FROM_CPU_BETA4							0x00000198
3092#define  NV05_IMAGE_FROM_CPU_SURFACE							0x0000019c
3093
3094
3095#define NV05_STRETCHED_IMAGE_FROM_CPU							0x00000066
3096
3097#define  NV05_STRETCHED_IMAGE_FROM_CPU_BETA4						0x00000194
3098#define  NV05_STRETCHED_IMAGE_FROM_CPU_SURFACE						0x00000198
3099#define  NV05_STRETCHED_IMAGE_FROM_CPU_COLOR_CONVERSION					0x000002f8
3100
3101
3102#define NV04_IMAGE_BLEND_PREMULT							0x00000067
3103
3104#define  NV04_IMAGE_BLEND_PREMULT_NOP							0x00000100
3105#define  NV04_IMAGE_BLEND_PREMULT_NOTIFY						0x00000104
3106#define  NV04_IMAGE_BLEND_PREMULT_DMA_NOTIFY						0x00000180
3107#define  NV04_IMAGE_BLEND_PREMULT_IMAGE_OUTPUT						0x00000200
3108#define  NV04_IMAGE_BLEND_PREMULT_BETA_INPUT						0x00000204
3109#define  NV04_IMAGE_BLEND_PREMULT_IMAGE_INPUT						0x00000208
3110
3111
3112#define NV03_CHANNEL_PIO								0x0000006a
3113
3114
3115
3116#define NV03_CHANNEL_DMA								0x0000006b
3117
3118
3119
3120#define NV04_BETA_SOLID									0x00000072
3121
3122#define  NV04_BETA_SOLID_NOP								0x00000100
3123#define  NV04_BETA_SOLID_NOTIFY								0x00000104
3124#define  NV04_BETA_SOLID_DMA_NOTIFY							0x00000180
3125#define  NV04_BETA_SOLID_BETA_OUTPUT							0x00000200
3126#define  NV04_BETA_SOLID_BETA_FACTOR							0x00000300
3127
3128
3129#define NV04_STRETCHED_IMAGE_FROM_CPU							0x00000076
3130
3131
3132
3133#define NV04_SCALED_IMAGE_FROM_MEMORY							0x00000077
3134
3135#define  NV04_SCALED_IMAGE_FROM_MEMORY_NOP						0x00000100
3136#define  NV04_SCALED_IMAGE_FROM_MEMORY_NOTIFY						0x00000104
3137#define  NV04_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY					0x00000180
3138#define  NV04_SCALED_IMAGE_FROM_MEMORY_DMA_IMAGE					0x00000184
3139#define  NV04_SCALED_IMAGE_FROM_MEMORY_PATTERN						0x00000188
3140#define  NV04_SCALED_IMAGE_FROM_MEMORY_ROP						0x0000018c
3141#define  NV04_SCALED_IMAGE_FROM_MEMORY_BETA1						0x00000190
3142#define  NV04_SCALED_IMAGE_FROM_MEMORY_BETA4						0x00000194
3143#define  NV04_SCALED_IMAGE_FROM_MEMORY_SURFACE						0x00000198
3144#define  NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION					0x000002fc
3145#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER				0x00000000
3146#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_TRUNCATE			0x00000001
3147#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_SUBTR_TRUNCATE			0x00000002
3148#define  NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT					0x00000300
3149#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A1R5G5B5				0x00000001
3150#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X1R5G5B5				0x00000002
3151#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_A8R8G8B8				0x00000003
3152#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_X8R8G8B8				0x00000004
3153#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_V8YB8U8YA8				0x00000005
3154#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_YB8V8YA8U8				0x00000006
3155#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_R5G6B5				0x00000007
3156#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_Y8					0x00000008
3157#define   NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_FORMAT_AY8				0x00000009
3158#define  NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION					0x00000304
3159#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_AND				0x00000000
3160#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_ROP_AND				0x00000001
3161#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_AND				0x00000002
3162#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY				0x00000003
3163#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY_PREMULT			0x00000004
3164#define   NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_BLEND_PREMULT				0x00000005
3165#define  NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT					0x00000308
3166#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_SHIFT				0
3167#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_X_MASK				0x0000ffff
3168#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_SHIFT				16
3169#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_POINT_Y_MASK				0xffff0000
3170#define  NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE					0x0000030c
3171#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_SHIFT				0
3172#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_W_MASK				0x0000ffff
3173#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_SHIFT				16
3174#define   NV04_SCALED_IMAGE_FROM_MEMORY_CLIP_SIZE_H_MASK				0xffff0000
3175#define  NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POINT					0x00000310
3176#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_SHIFT				0
3177#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_X_MASK				0x0000ffff
3178#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_SHIFT				16
3179#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_POINT_Y_MASK				0xffff0000
3180#define  NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE						0x00000314
3181#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_SHIFT				0
3182#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_W_MASK					0x0000ffff
3183#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_SHIFT				16
3184#define   NV04_SCALED_IMAGE_FROM_MEMORY_OUT_SIZE_H_MASK					0xffff0000
3185#define  NV04_SCALED_IMAGE_FROM_MEMORY_DU_DX						0x00000318
3186#define  NV04_SCALED_IMAGE_FROM_MEMORY_DV_DY						0x0000031c
3187#define  NV04_SCALED_IMAGE_FROM_MEMORY_SIZE						0x00000400
3188#define   NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_W_SHIFT					0
3189#define   NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_W_MASK					0x0000ffff
3190#define   NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_H_SHIFT					16
3191#define   NV04_SCALED_IMAGE_FROM_MEMORY_SIZE_H_MASK					0xffff0000
3192#define  NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT						0x00000404
3193#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_SHIFT				0
3194#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_PITCH_MASK				0x0000ffff
3195#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_SHIFT				16
3196#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_MASK				0x00ff0000
3197#define    NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CENTER				0x00010000
3198#define    NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_ORIGIN_CORNER				0x00020000
3199#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_SHIFT				24
3200#define   NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_MASK				0xff000000
3201#define    NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_POINT_SAMPLE			0x00000000
3202#define    NV04_SCALED_IMAGE_FROM_MEMORY_FORMAT_FILTER_BILINEAR				0x01000000
3203#define  NV04_SCALED_IMAGE_FROM_MEMORY_ADDRESS						0x00000408
3204#define  NV04_SCALED_IMAGE_FROM_MEMORY_POINT						0x0000040c
3205#define   NV04_SCALED_IMAGE_FROM_MEMORY_POINT_X_SHIFT					0
3206#define   NV04_SCALED_IMAGE_FROM_MEMORY_POINT_X_MASK					0x0000ffff
3207#define   NV04_SCALED_IMAGE_FROM_MEMORY_POINT_Y_SHIFT					16
3208#define   NV04_SCALED_IMAGE_FROM_MEMORY_POINT_Y_MASK					0xffff0000
3209
3210
3211#define NV10_TEXTURE_FROM_CPU								0x0000007b
3212
3213#define  NV10_TEXTURE_FROM_CPU_NOP							0x00000100
3214#define  NV10_TEXTURE_FROM_CPU_NOTIFY							0x00000104
3215#define  NV10_TEXTURE_FROM_CPU_WAIT_FOR_IDLE						0x00000108
3216#define  NV10_TEXTURE_FROM_CPU_PM_TRIGGER						0x00000140
3217#define  NV10_TEXTURE_FROM_CPU_DMA_NOTIFY						0x00000180
3218#define  NV10_TEXTURE_FROM_CPU_SURFACE							0x00000184
3219#define  NV10_TEXTURE_FROM_CPU_COLOR_FORMAT						0x00000300
3220#define  NV10_TEXTURE_FROM_CPU_POINT							0x00000304
3221#define   NV10_TEXTURE_FROM_CPU_POINT_X_SHIFT						0
3222#define   NV10_TEXTURE_FROM_CPU_POINT_X_MASK						0x0000ffff
3223#define   NV10_TEXTURE_FROM_CPU_POINT_Y_SHIFT						16
3224#define   NV10_TEXTURE_FROM_CPU_POINT_Y_MASK						0xffff0000
3225#define  NV10_TEXTURE_FROM_CPU_SIZE							0x00000308
3226#define   NV10_TEXTURE_FROM_CPU_SIZE_W_SHIFT						0
3227#define   NV10_TEXTURE_FROM_CPU_SIZE_W_MASK						0x0000ffff
3228#define   NV10_TEXTURE_FROM_CPU_SIZE_H_SHIFT						16
3229#define   NV10_TEXTURE_FROM_CPU_SIZE_H_MASK						0xffff0000
3230#define  NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL						0x0000030c
3231#define   NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_X_SHIFT					0
3232#define   NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_X_MASK					0x0000ffff
3233#define   NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_W_SHIFT					16
3234#define   NV10_TEXTURE_FROM_CPU_CLIP_HORIZONTAL_W_MASK					0xffff0000
3235#define  NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL						0x00000310
3236#define   NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_Y_SHIFT					0
3237#define   NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_Y_MASK					0x0000ffff
3238#define   NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_H_SHIFT					16
3239#define   NV10_TEXTURE_FROM_CPU_CLIP_VERTICAL_H_MASK					0xffff0000
3240#define  NV10_TEXTURE_FROM_CPU_COLOR(x)							(0x00000400+((x)*4))
3241#define  NV10_TEXTURE_FROM_CPU_COLOR__SIZE						0x00000700
3242
3243
3244#define NV10_VIDEO_DISPLAY								0x0000007c
3245
3246
3247
3248#define NV10_DVD_SUBPICTURE								0x00000088
3249
3250
3251
3252#define NV10_SCALED_IMAGE_FROM_MEMORY							0x00000089
3253
3254#define  NV10_SCALED_IMAGE_FROM_MEMORY_WAIT_FOR_IDLE					0x00000108
3255
3256
3257#define NV10_IMAGE_FROM_CPU								0x0000008a
3258
3259#define  NV10_IMAGE_FROM_CPU_COLOR_CONVERSION						0x000002f8
3260
3261
3262#define NV10_CONTEXT_SURFACES_3D							0x00000093
3263
3264
3265
3266#define NV10_DX5_TEXTURE_TRIANGLE							0x00000094
3267
3268
3269
3270#define NV10_DX6_MULTI_TEXTURE_TRIANGLE							0x00000095
3271
3272
3273
3274#define NV11TCL										0x00000096
3275
3276#define  NV11TCL_COLOR_LOGIC_OP_ENABLE							0x00000d40
3277#define  NV11TCL_COLOR_LOGIC_OP_OP							0x00000d44
3278#define   NV11TCL_COLOR_LOGIC_OP_OP_CLEAR						0x00001500
3279#define   NV11TCL_COLOR_LOGIC_OP_OP_AND							0x00001501
3280#define   NV11TCL_COLOR_LOGIC_OP_OP_AND_REVERSE						0x00001502
3281#define   NV11TCL_COLOR_LOGIC_OP_OP_COPY						0x00001503
3282#define   NV11TCL_COLOR_LOGIC_OP_OP_AND_INVERTED					0x00001504
3283#define   NV11TCL_COLOR_LOGIC_OP_OP_NOOP						0x00001505
3284#define   NV11TCL_COLOR_LOGIC_OP_OP_XOR							0x00001506
3285#define   NV11TCL_COLOR_LOGIC_OP_OP_OR							0x00001507
3286#define   NV11TCL_COLOR_LOGIC_OP_OP_NOR							0x00001508
3287#define   NV11TCL_COLOR_LOGIC_OP_OP_EQUIV						0x00001509
3288#define   NV11TCL_COLOR_LOGIC_OP_OP_INVERT						0x0000150a
3289#define   NV11TCL_COLOR_LOGIC_OP_OP_OR_REVERSE						0x0000150b
3290#define   NV11TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED					0x0000150c
3291#define   NV11TCL_COLOR_LOGIC_OP_OP_OR_INVERTED						0x0000150d
3292#define   NV11TCL_COLOR_LOGIC_OP_OP_NAND						0x0000150e
3293#define   NV11TCL_COLOR_LOGIC_OP_OP_SET							0x0000150f
3294
3295
3296#define NV20TCL										0x00000097
3297
3298#define  NV20TCL_NOP									0x00000100
3299#define  NV20TCL_NOTIFY									0x00000104
3300#define  NV20TCL_DMA_NOTIFY								0x00000180
3301#define  NV20TCL_DMA_TEXTURE0								0x00000184
3302#define  NV20TCL_DMA_TEXTURE1								0x00000188
3303#define  NV20TCL_DMA_COLOR								0x00000194
3304#define  NV20TCL_DMA_ZETA								0x00000198
3305#define  NV20TCL_DMA_VTXBUF0								0x0000019c
3306#define  NV20TCL_DMA_VTXBUF1								0x000001a0
3307#define  NV20TCL_DMA_FENCE								0x000001a4
3308#define  NV20TCL_DMA_QUERY								0x000001a8
3309#define  NV20TCL_RT_HORIZ								0x00000200
3310#define   NV20TCL_RT_HORIZ_X_SHIFT							0
3311#define   NV20TCL_RT_HORIZ_X_MASK							0x0000ffff
3312#define   NV20TCL_RT_HORIZ_W_SHIFT							16
3313#define   NV20TCL_RT_HORIZ_W_MASK							0xffff0000
3314#define  NV20TCL_RT_VERT								0x00000204
3315#define   NV20TCL_RT_VERT_Y_SHIFT							0
3316#define   NV20TCL_RT_VERT_Y_MASK							0x0000ffff
3317#define   NV20TCL_RT_VERT_H_SHIFT							16
3318#define   NV20TCL_RT_VERT_H_MASK							0xffff0000
3319#define  NV20TCL_RT_FORMAT								0x00000208
3320#define   NV20TCL_RT_FORMAT_TYPE_SHIFT							8
3321#define   NV20TCL_RT_FORMAT_TYPE_MASK							0x00000f00
3322#define    NV20TCL_RT_FORMAT_TYPE_LINEAR						0x00000100
3323#define    NV20TCL_RT_FORMAT_TYPE_SWIZZLED						0x00000200
3324#define   NV20TCL_RT_FORMAT_COLOR_SHIFT							0
3325#define   NV20TCL_RT_FORMAT_COLOR_MASK							0x0000001f
3326#define    NV20TCL_RT_FORMAT_COLOR_R5G6B5						0x00000003
3327#define    NV20TCL_RT_FORMAT_COLOR_X8R8G8B8						0x00000005
3328#define    NV20TCL_RT_FORMAT_COLOR_A8R8G8B8						0x00000008
3329#define    NV20TCL_RT_FORMAT_COLOR_B8							0x00000009
3330#define    NV20TCL_RT_FORMAT_COLOR_UNKNOWN						0x0000000d
3331#define    NV20TCL_RT_FORMAT_COLOR_X8B8G8R8						0x0000000f
3332#define    NV20TCL_RT_FORMAT_COLOR_A8B8G8R8						0x00000010
3333#define  NV20TCL_RT_PITCH								0x0000020c
3334#define   NV20TCL_RT_PITCH_COLOR_PITCH_SHIFT						0
3335#define   NV20TCL_RT_PITCH_COLOR_PITCH_MASK						0x0000ffff
3336#define   NV20TCL_RT_PITCH_ZETA_PITCH_SHIFT						16
3337#define   NV20TCL_RT_PITCH_ZETA_PITCH_MASK						0xffff0000
3338#define  NV20TCL_COLOR_OFFSET								0x00000210
3339#define  NV20TCL_ZETA_OFFSET								0x00000214
3340#define  NV20TCL_RC_IN_ALPHA(x)								(0x00000260+((x)*4))
3341#define  NV20TCL_RC_IN_ALPHA__SIZE							0x00000008
3342#define   NV20TCL_RC_IN_ALPHA_D_INPUT_SHIFT						0
3343#define   NV20TCL_RC_IN_ALPHA_D_INPUT_MASK						0x0000000f
3344#define    NV20TCL_RC_IN_ALPHA_D_INPUT_ZERO						0x00000000
3345#define    NV20TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0_NV				0x00000001
3346#define    NV20TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1_NV				0x00000002
3347#define    NV20TCL_RC_IN_ALPHA_D_INPUT_FOG						0x00000003
3348#define    NV20TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR_NV					0x00000004
3349#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR_NV				0x00000005
3350#define    NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0_ARB					0x00000008
3351#define    NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1_ARB					0x00000009
3352#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE0_NV					0x0000000c
3353#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE1_NV					0x0000000d
3354#define    NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
3355#define    NV20TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F_NV					0x0000000f
3356#define   NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE						(1 <<  4)
3357#define    NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE					0x00000000
3358#define    NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA					0x00000010
3359#define   NV20TCL_RC_IN_ALPHA_D_MAPPING_SHIFT						5
3360#define   NV20TCL_RC_IN_ALPHA_D_MAPPING_MASK						0x000000e0
3361#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3362#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT_NV				0x00000020
3363#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL_NV				0x00000040
3364#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE_NV				0x00000060
3365#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL_NV				0x00000080
3366#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE_NV				0x000000a0
3367#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY_NV				0x000000c0
3368#define    NV20TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE_NV				0x000000e0
3369#define   NV20TCL_RC_IN_ALPHA_C_INPUT_SHIFT						8
3370#define   NV20TCL_RC_IN_ALPHA_C_INPUT_MASK						0x00000f00
3371#define    NV20TCL_RC_IN_ALPHA_C_INPUT_ZERO						0x00000000
3372#define    NV20TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0_NV				0x00000100
3373#define    NV20TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1_NV				0x00000200
3374#define    NV20TCL_RC_IN_ALPHA_C_INPUT_FOG						0x00000300
3375#define    NV20TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR_NV					0x00000400
3376#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR_NV				0x00000500
3377#define    NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0_ARB					0x00000800
3378#define    NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1_ARB					0x00000900
3379#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE0_NV					0x00000c00
3380#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE1_NV					0x00000d00
3381#define    NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
3382#define    NV20TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F_NV					0x00000f00
3383#define   NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE						(1 << 12)
3384#define    NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE					0x00000000
3385#define    NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA					0x00001000
3386#define   NV20TCL_RC_IN_ALPHA_C_MAPPING_SHIFT						13
3387#define   NV20TCL_RC_IN_ALPHA_C_MAPPING_MASK						0x0000e000
3388#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3389#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT_NV				0x00002000
3390#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL_NV				0x00004000
3391#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE_NV				0x00006000
3392#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
3393#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
3394#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
3395#define    NV20TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE_NV				0x0000e000
3396#define   NV20TCL_RC_IN_ALPHA_B_INPUT_SHIFT						16
3397#define   NV20TCL_RC_IN_ALPHA_B_INPUT_MASK						0x000f0000
3398#define    NV20TCL_RC_IN_ALPHA_B_INPUT_ZERO						0x00000000
3399#define    NV20TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0_NV				0x00010000
3400#define    NV20TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1_NV				0x00020000
3401#define    NV20TCL_RC_IN_ALPHA_B_INPUT_FOG						0x00030000
3402#define    NV20TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR_NV					0x00040000
3403#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR_NV				0x00050000
3404#define    NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0_ARB					0x00080000
3405#define    NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1_ARB					0x00090000
3406#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE0_NV					0x000c0000
3407#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE1_NV					0x000d0000
3408#define    NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
3409#define    NV20TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F_NV					0x000f0000
3410#define   NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE						(1 << 20)
3411#define    NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE					0x00000000
3412#define    NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA					0x00100000
3413#define   NV20TCL_RC_IN_ALPHA_B_MAPPING_SHIFT						21
3414#define   NV20TCL_RC_IN_ALPHA_B_MAPPING_MASK						0x00e00000
3415#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3416#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT_NV				0x00200000
3417#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL_NV				0x00400000
3418#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE_NV				0x00600000
3419#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
3420#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
3421#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
3422#define    NV20TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE_NV				0x00e00000
3423#define   NV20TCL_RC_IN_ALPHA_A_INPUT_SHIFT						24
3424#define   NV20TCL_RC_IN_ALPHA_A_INPUT_MASK						0x0f000000
3425#define    NV20TCL_RC_IN_ALPHA_A_INPUT_ZERO						0x00000000
3426#define    NV20TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0_NV				0x01000000
3427#define    NV20TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1_NV				0x02000000
3428#define    NV20TCL_RC_IN_ALPHA_A_INPUT_FOG						0x03000000
3429#define    NV20TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR_NV					0x04000000
3430#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR_NV				0x05000000
3431#define    NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0_ARB					0x08000000
3432#define    NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1_ARB					0x09000000
3433#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE0_NV					0x0c000000
3434#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE1_NV					0x0d000000
3435#define    NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
3436#define    NV20TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F_NV					0x0f000000
3437#define   NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE						(1 << 28)
3438#define    NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE					0x00000000
3439#define    NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA					0x10000000
3440#define   NV20TCL_RC_IN_ALPHA_A_MAPPING_SHIFT						29
3441#define   NV20TCL_RC_IN_ALPHA_A_MAPPING_MASK						0xe0000000
3442#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3443#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT_NV				0x20000000
3444#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL_NV				0x40000000
3445#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE_NV				0x60000000
3446#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
3447#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
3448#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
3449#define    NV20TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE_NV				0xe0000000
3450#define  NV20TCL_RC_FINAL0								0x00000288
3451#define   NV20TCL_RC_FINAL0_D_INPUT_SHIFT						0
3452#define   NV20TCL_RC_FINAL0_D_INPUT_MASK						0x0000000f
3453#define    NV20TCL_RC_FINAL0_D_INPUT_ZERO						0x00000000
3454#define    NV20TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0_NV					0x00000001
3455#define    NV20TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1_NV					0x00000002
3456#define    NV20TCL_RC_FINAL0_D_INPUT_FOG						0x00000003
3457#define    NV20TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR_NV					0x00000004
3458#define    NV20TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR_NV					0x00000005
3459#define    NV20TCL_RC_FINAL0_D_INPUT_TEXTURE0_ARB					0x00000008
3460#define    NV20TCL_RC_FINAL0_D_INPUT_TEXTURE1_ARB					0x00000009
3461#define    NV20TCL_RC_FINAL0_D_INPUT_SPARE0_NV						0x0000000c
3462#define    NV20TCL_RC_FINAL0_D_INPUT_SPARE1_NV						0x0000000d
3463#define    NV20TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
3464#define    NV20TCL_RC_FINAL0_D_INPUT_E_TIMES_F_NV					0x0000000f
3465#define   NV20TCL_RC_FINAL0_D_COMPONENT_USAGE						(1 <<  4)
3466#define    NV20TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB					0x00000000
3467#define    NV20TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA					0x00000010
3468#define   NV20TCL_RC_FINAL0_D_MAPPING_SHIFT						5
3469#define   NV20TCL_RC_FINAL0_D_MAPPING_MASK						0x000000e0
3470#define    NV20TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3471#define    NV20TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT_NV				0x00000020
3472#define    NV20TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL_NV					0x00000040
3473#define    NV20TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE_NV					0x00000060
3474#define    NV20TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL_NV				0x00000080
3475#define    NV20TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE_NV				0x000000a0
3476#define    NV20TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY_NV				0x000000c0
3477#define    NV20TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE_NV					0x000000e0
3478#define   NV20TCL_RC_FINAL0_C_INPUT_SHIFT						8
3479#define   NV20TCL_RC_FINAL0_C_INPUT_MASK						0x00000f00
3480#define    NV20TCL_RC_FINAL0_C_INPUT_ZERO						0x00000000
3481#define    NV20TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0_NV					0x00000100
3482#define    NV20TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1_NV					0x00000200
3483#define    NV20TCL_RC_FINAL0_C_INPUT_FOG						0x00000300
3484#define    NV20TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR_NV					0x00000400
3485#define    NV20TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR_NV					0x00000500
3486#define    NV20TCL_RC_FINAL0_C_INPUT_TEXTURE0_ARB					0x00000800
3487#define    NV20TCL_RC_FINAL0_C_INPUT_TEXTURE1_ARB					0x00000900
3488#define    NV20TCL_RC_FINAL0_C_INPUT_SPARE0_NV						0x00000c00
3489#define    NV20TCL_RC_FINAL0_C_INPUT_SPARE1_NV						0x00000d00
3490#define    NV20TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
3491#define    NV20TCL_RC_FINAL0_C_INPUT_E_TIMES_F_NV					0x00000f00
3492#define   NV20TCL_RC_FINAL0_C_COMPONENT_USAGE						(1 << 12)
3493#define    NV20TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB					0x00000000
3494#define    NV20TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA					0x00001000
3495#define   NV20TCL_RC_FINAL0_C_MAPPING_SHIFT						13
3496#define   NV20TCL_RC_FINAL0_C_MAPPING_MASK						0x0000e000
3497#define    NV20TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3498#define    NV20TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT_NV				0x00002000
3499#define    NV20TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL_NV					0x00004000
3500#define    NV20TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE_NV					0x00006000
3501#define    NV20TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
3502#define    NV20TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
3503#define    NV20TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
3504#define    NV20TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE_NV					0x0000e000
3505#define   NV20TCL_RC_FINAL0_B_INPUT_SHIFT						16
3506#define   NV20TCL_RC_FINAL0_B_INPUT_MASK						0x000f0000
3507#define    NV20TCL_RC_FINAL0_B_INPUT_ZERO						0x00000000
3508#define    NV20TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0_NV					0x00010000
3509#define    NV20TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1_NV					0x00020000
3510#define    NV20TCL_RC_FINAL0_B_INPUT_FOG						0x00030000
3511#define    NV20TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR_NV					0x00040000
3512#define    NV20TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR_NV					0x00050000
3513#define    NV20TCL_RC_FINAL0_B_INPUT_TEXTURE0_ARB					0x00080000
3514#define    NV20TCL_RC_FINAL0_B_INPUT_TEXTURE1_ARB					0x00090000
3515#define    NV20TCL_RC_FINAL0_B_INPUT_SPARE0_NV						0x000c0000
3516#define    NV20TCL_RC_FINAL0_B_INPUT_SPARE1_NV						0x000d0000
3517#define    NV20TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
3518#define    NV20TCL_RC_FINAL0_B_INPUT_E_TIMES_F_NV					0x000f0000
3519#define   NV20TCL_RC_FINAL0_B_COMPONENT_USAGE						(1 << 20)
3520#define    NV20TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB					0x00000000
3521#define    NV20TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA					0x00100000
3522#define   NV20TCL_RC_FINAL0_B_MAPPING_SHIFT						21
3523#define   NV20TCL_RC_FINAL0_B_MAPPING_MASK						0x00e00000
3524#define    NV20TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3525#define    NV20TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT_NV				0x00200000
3526#define    NV20TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL_NV					0x00400000
3527#define    NV20TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE_NV					0x00600000
3528#define    NV20TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
3529#define    NV20TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
3530#define    NV20TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
3531#define    NV20TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE_NV					0x00e00000
3532#define   NV20TCL_RC_FINAL0_A_INPUT_SHIFT						24
3533#define   NV20TCL_RC_FINAL0_A_INPUT_MASK						0x0f000000
3534#define    NV20TCL_RC_FINAL0_A_INPUT_ZERO						0x00000000
3535#define    NV20TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0_NV					0x01000000
3536#define    NV20TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1_NV					0x02000000
3537#define    NV20TCL_RC_FINAL0_A_INPUT_FOG						0x03000000
3538#define    NV20TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR_NV					0x04000000
3539#define    NV20TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR_NV					0x05000000
3540#define    NV20TCL_RC_FINAL0_A_INPUT_TEXTURE0_ARB					0x08000000
3541#define    NV20TCL_RC_FINAL0_A_INPUT_TEXTURE1_ARB					0x09000000
3542#define    NV20TCL_RC_FINAL0_A_INPUT_SPARE0_NV						0x0c000000
3543#define    NV20TCL_RC_FINAL0_A_INPUT_SPARE1_NV						0x0d000000
3544#define    NV20TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
3545#define    NV20TCL_RC_FINAL0_A_INPUT_E_TIMES_F_NV					0x0f000000
3546#define   NV20TCL_RC_FINAL0_A_COMPONENT_USAGE						(1 << 28)
3547#define    NV20TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB					0x00000000
3548#define    NV20TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA					0x10000000
3549#define   NV20TCL_RC_FINAL0_A_MAPPING_SHIFT						29
3550#define   NV20TCL_RC_FINAL0_A_MAPPING_MASK						0xe0000000
3551#define    NV20TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3552#define    NV20TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT_NV				0x20000000
3553#define    NV20TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL_NV					0x40000000
3554#define    NV20TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE_NV					0x60000000
3555#define    NV20TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
3556#define    NV20TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
3557#define    NV20TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
3558#define    NV20TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE_NV					0xe0000000
3559#define  NV20TCL_RC_FINAL1								0x0000028c
3560#define   NV20TCL_RC_FINAL1_COLOR_SUM_CLAMP						(1 <<  7)
3561#define   NV20TCL_RC_FINAL1_G_INPUT_SHIFT						8
3562#define   NV20TCL_RC_FINAL1_G_INPUT_MASK						0x00000f00
3563#define    NV20TCL_RC_FINAL1_G_INPUT_ZERO						0x00000000
3564#define    NV20TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0_NV					0x00000100
3565#define    NV20TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1_NV					0x00000200
3566#define    NV20TCL_RC_FINAL1_G_INPUT_FOG						0x00000300
3567#define    NV20TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR_NV					0x00000400
3568#define    NV20TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR_NV					0x00000500
3569#define    NV20TCL_RC_FINAL1_G_INPUT_TEXTURE0_ARB					0x00000800
3570#define    NV20TCL_RC_FINAL1_G_INPUT_TEXTURE1_ARB					0x00000900
3571#define    NV20TCL_RC_FINAL1_G_INPUT_SPARE0_NV						0x00000c00
3572#define    NV20TCL_RC_FINAL1_G_INPUT_SPARE1_NV						0x00000d00
3573#define    NV20TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
3574#define    NV20TCL_RC_FINAL1_G_INPUT_E_TIMES_F_NV					0x00000f00
3575#define   NV20TCL_RC_FINAL1_G_COMPONENT_USAGE						(1 << 12)
3576#define    NV20TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB					0x00000000
3577#define    NV20TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA					0x00001000
3578#define   NV20TCL_RC_FINAL1_G_MAPPING_SHIFT						13
3579#define   NV20TCL_RC_FINAL1_G_MAPPING_MASK						0x0000e000
3580#define    NV20TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3581#define    NV20TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT_NV				0x00002000
3582#define    NV20TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL_NV					0x00004000
3583#define    NV20TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE_NV					0x00006000
3584#define    NV20TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
3585#define    NV20TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
3586#define    NV20TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
3587#define    NV20TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE_NV					0x0000e000
3588#define   NV20TCL_RC_FINAL1_F_INPUT_SHIFT						16
3589#define   NV20TCL_RC_FINAL1_F_INPUT_MASK						0x000f0000
3590#define    NV20TCL_RC_FINAL1_F_INPUT_ZERO						0x00000000
3591#define    NV20TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0_NV					0x00010000
3592#define    NV20TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1_NV					0x00020000
3593#define    NV20TCL_RC_FINAL1_F_INPUT_FOG						0x00030000
3594#define    NV20TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR_NV					0x00040000
3595#define    NV20TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR_NV					0x00050000
3596#define    NV20TCL_RC_FINAL1_F_INPUT_TEXTURE0_ARB					0x00080000
3597#define    NV20TCL_RC_FINAL1_F_INPUT_TEXTURE1_ARB					0x00090000
3598#define    NV20TCL_RC_FINAL1_F_INPUT_SPARE0_NV						0x000c0000
3599#define    NV20TCL_RC_FINAL1_F_INPUT_SPARE1_NV						0x000d0000
3600#define    NV20TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
3601#define    NV20TCL_RC_FINAL1_F_INPUT_E_TIMES_F_NV					0x000f0000
3602#define   NV20TCL_RC_FINAL1_F_COMPONENT_USAGE						(1 << 20)
3603#define    NV20TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB					0x00000000
3604#define    NV20TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA					0x00100000
3605#define   NV20TCL_RC_FINAL1_F_MAPPING_SHIFT						21
3606#define   NV20TCL_RC_FINAL1_F_MAPPING_MASK						0x00e00000
3607#define    NV20TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3608#define    NV20TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT_NV				0x00200000
3609#define    NV20TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL_NV					0x00400000
3610#define    NV20TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE_NV					0x00600000
3611#define    NV20TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
3612#define    NV20TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
3613#define    NV20TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
3614#define    NV20TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE_NV					0x00e00000
3615#define   NV20TCL_RC_FINAL1_E_INPUT_SHIFT						24
3616#define   NV20TCL_RC_FINAL1_E_INPUT_MASK						0x0f000000
3617#define    NV20TCL_RC_FINAL1_E_INPUT_ZERO						0x00000000
3618#define    NV20TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0_NV					0x01000000
3619#define    NV20TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1_NV					0x02000000
3620#define    NV20TCL_RC_FINAL1_E_INPUT_FOG						0x03000000
3621#define    NV20TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR_NV					0x04000000
3622#define    NV20TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR_NV					0x05000000
3623#define    NV20TCL_RC_FINAL1_E_INPUT_TEXTURE0_ARB					0x08000000
3624#define    NV20TCL_RC_FINAL1_E_INPUT_TEXTURE1_ARB					0x09000000
3625#define    NV20TCL_RC_FINAL1_E_INPUT_SPARE0_NV						0x0c000000
3626#define    NV20TCL_RC_FINAL1_E_INPUT_SPARE1_NV						0x0d000000
3627#define    NV20TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
3628#define    NV20TCL_RC_FINAL1_E_INPUT_E_TIMES_F_NV					0x0f000000
3629#define   NV20TCL_RC_FINAL1_E_COMPONENT_USAGE						(1 << 28)
3630#define    NV20TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB					0x00000000
3631#define    NV20TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA					0x10000000
3632#define   NV20TCL_RC_FINAL1_E_MAPPING_SHIFT						29
3633#define   NV20TCL_RC_FINAL1_E_MAPPING_MASK						0xe0000000
3634#define    NV20TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
3635#define    NV20TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT_NV				0x20000000
3636#define    NV20TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL_NV					0x40000000
3637#define    NV20TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE_NV					0x60000000
3638#define    NV20TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
3639#define    NV20TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
3640#define    NV20TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
3641#define    NV20TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE_NV					0xe0000000
3642#define  NV20TCL_LIGHT_CONTROL								0x00000294
3643#define  NV20TCL_FOG_MODE								0x0000029c
3644#define   NV20TCL_FOG_MODE_EXP								0x00000800
3645#define   NV20TCL_FOG_MODE_EXP_2							0x00000802
3646#define   NV20TCL_FOG_MODE_EXP2								0x00000803
3647#define   NV20TCL_FOG_MODE_LINEAR							0x00000804
3648#define   NV20TCL_FOG_MODE_LINEAR_2							0x00002601
3649#define  NV20TCL_FOG_COORD_DIST								0x000002a0
3650#define   NV20TCL_FOG_COORD_DIST_COORD_FALSE						0x00000000
3651#define   NV20TCL_FOG_COORD_DIST_COORD_FRAGMENT_DEPTH_DISTANCE_EYE_RADIAL_NV		0x00000001
3652#define   NV20TCL_FOG_COORD_DIST_COORD_FRAGMENT_DEPTH_DISTANCE_EYE_PLANE_ABSOLUTE_NV	0x00000002
3653#define   NV20TCL_FOG_COORD_DIST_COORD_FOG						0x00000003
3654#define  NV20TCL_FOG_ENABLE								0x000002a4
3655#define  NV20TCL_FOG_COLOR								0x000002a8
3656#define   NV20TCL_FOG_COLOR_R_SHIFT							0
3657#define   NV20TCL_FOG_COLOR_R_MASK							0x000000ff
3658#define   NV20TCL_FOG_COLOR_G_SHIFT							8
3659#define   NV20TCL_FOG_COLOR_G_MASK							0x0000ff00
3660#define   NV20TCL_FOG_COLOR_B_SHIFT							16
3661#define   NV20TCL_FOG_COLOR_B_MASK							0x00ff0000
3662#define   NV20TCL_FOG_COLOR_A_SHIFT							24
3663#define   NV20TCL_FOG_COLOR_A_MASK							0xff000000
3664#define  NV20TCL_VIEWPORT_CLIP_MODE							0x000002b4
3665#define  NV20TCL_VIEWPORT_CLIP_HORIZ(x)							(0x000002c0+((x)*4))
3666#define  NV20TCL_VIEWPORT_CLIP_HORIZ__SIZE						0x00000008
3667#define  NV20TCL_VIEWPORT_CLIP_VERT(x)							(0x000002e0+((x)*4))
3668#define  NV20TCL_VIEWPORT_CLIP_VERT__SIZE						0x00000008
3669#define  NV20TCL_ALPHA_FUNC_ENABLE							0x00000300
3670#define  NV20TCL_BLEND_FUNC_ENABLE							0x00000304
3671#define  NV20TCL_CULL_FACE_ENABLE							0x00000308
3672#define  NV20TCL_DEPTH_TEST_ENABLE							0x0000030c
3673#define  NV20TCL_DITHER_ENABLE								0x00000310
3674#define  NV20TCL_LIGHTING_ENABLE							0x00000314
3675#define  NV20TCL_POINT_PARAMETERS_ENABLE						0x00000318
3676#define  NV20TCL_POINT_SMOOTH_ENABLE							0x0000031c
3677#define  NV20TCL_LINE_SMOOTH_ENABLE							0x00000320
3678#define  NV20TCL_POLYGON_SMOOTH_ENABLE							0x00000324
3679#define  NV20TCL_STENCIL_ENABLE								0x0000032c
3680#define  NV20TCL_POLYGON_OFFSET_POINT_ENABLE						0x00000330
3681#define  NV20TCL_POLYGON_OFFSET_LINE_ENABLE						0x00000334
3682#define  NV20TCL_POLYGON_OFFSET_FILL_ENABLE						0x00000338
3683#define  NV20TCL_ALPHA_FUNC_FUNC							0x0000033c
3684#define   NV20TCL_ALPHA_FUNC_FUNC_NEVER							0x00000200
3685#define   NV20TCL_ALPHA_FUNC_FUNC_LESS							0x00000201
3686#define   NV20TCL_ALPHA_FUNC_FUNC_EQUAL							0x00000202
3687#define   NV20TCL_ALPHA_FUNC_FUNC_LEQUAL						0x00000203
3688#define   NV20TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
3689#define   NV20TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
3690#define   NV20TCL_ALPHA_FUNC_FUNC_NOTEQUAL						0x00000205
3691#define   NV20TCL_ALPHA_FUNC_FUNC_GEQUAL						0x00000206
3692#define   NV20TCL_ALPHA_FUNC_FUNC_ALWAYS						0x00000207
3693#define  NV20TCL_ALPHA_FUNC_REF								0x00000340
3694#define  NV20TCL_BLEND_FUNC_SRC								0x00000344
3695#define   NV20TCL_BLEND_FUNC_SRC_ZERO							0x00000000
3696#define   NV20TCL_BLEND_FUNC_SRC_ONE							0x00000001
3697#define   NV20TCL_BLEND_FUNC_SRC_SRC_COLOR						0x00000300
3698#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_COLOR					0x00000301
3699#define   NV20TCL_BLEND_FUNC_SRC_SRC_ALPHA						0x00000302
3700#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_SRC_ALPHA					0x00000303
3701#define   NV20TCL_BLEND_FUNC_SRC_DST_ALPHA						0x00000304
3702#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_ALPHA					0x00000305
3703#define   NV20TCL_BLEND_FUNC_SRC_DST_COLOR						0x00000306
3704#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_DST_COLOR					0x00000307
3705#define   NV20TCL_BLEND_FUNC_SRC_SRC_ALPHA_SATURATE					0x00000308
3706#define   NV20TCL_BLEND_FUNC_SRC_CONSTANT_COLOR						0x00008001
3707#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_COLOR				0x00008002
3708#define   NV20TCL_BLEND_FUNC_SRC_CONSTANT_ALPHA						0x00008003
3709#define   NV20TCL_BLEND_FUNC_SRC_ONE_MINUS_CONSTANT_ALPHA				0x00008004
3710#define  NV20TCL_BLEND_FUNC_DST								0x00000348
3711#define   NV20TCL_BLEND_FUNC_DST_ZERO							0x00000000
3712#define   NV20TCL_BLEND_FUNC_DST_ONE							0x00000001
3713#define   NV20TCL_BLEND_FUNC_DST_SRC_COLOR						0x00000300
3714#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_COLOR					0x00000301
3715#define   NV20TCL_BLEND_FUNC_DST_SRC_ALPHA						0x00000302
3716#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_SRC_ALPHA					0x00000303
3717#define   NV20TCL_BLEND_FUNC_DST_DST_ALPHA						0x00000304
3718#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_DST_ALPHA					0x00000305
3719#define   NV20TCL_BLEND_FUNC_DST_DST_COLOR						0x00000306
3720#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_DST_COLOR					0x00000307
3721#define   NV20TCL_BLEND_FUNC_DST_SRC_ALPHA_SATURATE					0x00000308
3722#define   NV20TCL_BLEND_FUNC_DST_CONSTANT_COLOR						0x00008001
3723#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_COLOR				0x00008002
3724#define   NV20TCL_BLEND_FUNC_DST_CONSTANT_ALPHA						0x00008003
3725#define   NV20TCL_BLEND_FUNC_DST_ONE_MINUS_CONSTANT_ALPHA				0x00008004
3726#define  NV20TCL_BLEND_COLOR								0x0000034c
3727#define   NV20TCL_BLEND_COLOR_B_SHIFT							0
3728#define   NV20TCL_BLEND_COLOR_B_MASK							0x000000ff
3729#define   NV20TCL_BLEND_COLOR_G_SHIFT							8
3730#define   NV20TCL_BLEND_COLOR_G_MASK							0x0000ff00
3731#define   NV20TCL_BLEND_COLOR_R_SHIFT							16
3732#define   NV20TCL_BLEND_COLOR_R_MASK							0x00ff0000
3733#define   NV20TCL_BLEND_COLOR_A_SHIFT							24
3734#define   NV20TCL_BLEND_COLOR_A_MASK							0xff000000
3735#define  NV20TCL_BLEND_EQUATION								0x00000350
3736#define   NV20TCL_BLEND_EQUATION_FUNC_ADD						0x00008006
3737#define   NV20TCL_BLEND_EQUATION_MIN							0x00008007
3738#define   NV20TCL_BLEND_EQUATION_MAX							0x00008008
3739#define   NV20TCL_BLEND_EQUATION_FUNC_SUBTRACT						0x0000800a
3740#define   NV20TCL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT					0x0000800b
3741#define  NV20TCL_DEPTH_FUNC								0x00000354
3742#define   NV20TCL_DEPTH_FUNC_NEVER							0x00000200
3743#define   NV20TCL_DEPTH_FUNC_LESS							0x00000201
3744#define   NV20TCL_DEPTH_FUNC_EQUAL							0x00000202
3745#define   NV20TCL_DEPTH_FUNC_LEQUAL							0x00000203
3746#define   NV20TCL_DEPTH_FUNC_GREATER							0x00000204
3747#define   NV20TCL_DEPTH_FUNC_GREATER							0x00000204
3748#define   NV20TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
3749#define   NV20TCL_DEPTH_FUNC_GEQUAL							0x00000206
3750#define   NV20TCL_DEPTH_FUNC_ALWAYS							0x00000207
3751#define  NV20TCL_COLOR_MASK								0x00000358
3752#define   NV20TCL_COLOR_MASK_B								(1 <<  0)
3753#define   NV20TCL_COLOR_MASK_G								(1 <<  8)
3754#define   NV20TCL_COLOR_MASK_R								(1 << 16)
3755#define   NV20TCL_COLOR_MASK_A								(1 << 24)
3756#define  NV20TCL_DEPTH_WRITE_ENABLE							0x0000035c
3757#define  NV20TCL_STENCIL_MASK								0x00000360
3758#define  NV20TCL_STENCIL_FUNC_FUNC							0x00000364
3759#define   NV20TCL_STENCIL_FUNC_FUNC_NEVER						0x00000200
3760#define   NV20TCL_STENCIL_FUNC_FUNC_LESS						0x00000201
3761#define   NV20TCL_STENCIL_FUNC_FUNC_EQUAL						0x00000202
3762#define   NV20TCL_STENCIL_FUNC_FUNC_LEQUAL						0x00000203
3763#define   NV20TCL_STENCIL_FUNC_FUNC_GREATER						0x00000204
3764#define   NV20TCL_STENCIL_FUNC_FUNC_GREATER						0x00000204
3765#define   NV20TCL_STENCIL_FUNC_FUNC_NOTEQUAL						0x00000205
3766#define   NV20TCL_STENCIL_FUNC_FUNC_GEQUAL						0x00000206
3767#define   NV20TCL_STENCIL_FUNC_FUNC_ALWAYS						0x00000207
3768#define  NV20TCL_STENCIL_FUNC_REF							0x00000368
3769#define  NV20TCL_STENCIL_FUNC_MASK							0x0000036c
3770#define  NV20TCL_STENCIL_OP_FAIL							0x00000370
3771#define   NV20TCL_STENCIL_OP_FAIL_ZERO							0x00000000
3772#define   NV20TCL_STENCIL_OP_FAIL_INVERT						0x0000150a
3773#define   NV20TCL_STENCIL_OP_FAIL_KEEP							0x00001e00
3774#define   NV20TCL_STENCIL_OP_FAIL_REPLACE						0x00001e01
3775#define   NV20TCL_STENCIL_OP_FAIL_INCR							0x00001e02
3776#define   NV20TCL_STENCIL_OP_FAIL_DECR							0x00001e03
3777#define   NV20TCL_STENCIL_OP_FAIL_INCR_WRAP						0x00008507
3778#define   NV20TCL_STENCIL_OP_FAIL_DECR_WRAP						0x00008508
3779#define  NV20TCL_STENCIL_OP_ZFAIL							0x00000374
3780#define   NV20TCL_STENCIL_OP_ZFAIL_ZERO							0x00000000
3781#define   NV20TCL_STENCIL_OP_ZFAIL_INVERT						0x0000150a
3782#define   NV20TCL_STENCIL_OP_ZFAIL_KEEP							0x00001e00
3783#define   NV20TCL_STENCIL_OP_ZFAIL_REPLACE						0x00001e01
3784#define   NV20TCL_STENCIL_OP_ZFAIL_INCR							0x00001e02
3785#define   NV20TCL_STENCIL_OP_ZFAIL_DECR							0x00001e03
3786#define   NV20TCL_STENCIL_OP_ZFAIL_INCR_WRAP						0x00008507
3787#define   NV20TCL_STENCIL_OP_ZFAIL_DECR_WRAP						0x00008508
3788#define  NV20TCL_STENCIL_OP_ZPASS							0x00000378
3789#define   NV20TCL_STENCIL_OP_ZPASS_ZERO							0x00000000
3790#define   NV20TCL_STENCIL_OP_ZPASS_INVERT						0x0000150a
3791#define   NV20TCL_STENCIL_OP_ZPASS_KEEP							0x00001e00
3792#define   NV20TCL_STENCIL_OP_ZPASS_REPLACE						0x00001e01
3793#define   NV20TCL_STENCIL_OP_ZPASS_INCR							0x00001e02
3794#define   NV20TCL_STENCIL_OP_ZPASS_DECR							0x00001e03
3795#define   NV20TCL_STENCIL_OP_ZPASS_INCR_WRAP						0x00008507
3796#define   NV20TCL_STENCIL_OP_ZPASS_DECR_WRAP						0x00008508
3797#define  NV20TCL_SHADE_MODEL								0x0000037c
3798#define   NV20TCL_SHADE_MODEL_FLAT							0x00001d00
3799#define   NV20TCL_SHADE_MODEL_SMOOTH							0x00001d01
3800#define  NV20TCL_LINE_WIDTH								0x00000380
3801#define  NV20TCL_POLYGON_OFFSET_FACTOR							0x00000384
3802#define  NV20TCL_POLYGON_OFFSET_UNITS							0x00000388
3803#define  NV20TCL_POLYGON_MODE_FRONT							0x0000038c
3804#define   NV20TCL_POLYGON_MODE_FRONT_POINT						0x00001b00
3805#define   NV20TCL_POLYGON_MODE_FRONT_LINE						0x00001b01
3806#define   NV20TCL_POLYGON_MODE_FRONT_FILL						0x00001b02
3807#define  NV20TCL_POLYGON_MODE_BACK							0x00000390
3808#define   NV20TCL_POLYGON_MODE_BACK_POINT						0x00001b00
3809#define   NV20TCL_POLYGON_MODE_BACK_LINE						0x00001b01
3810#define   NV20TCL_POLYGON_MODE_BACK_FILL						0x00001b02
3811#define  NV20TCL_DEPTH_RANGE_NEAR							0x00000394
3812#define  NV20TCL_DEPTH_RANGE_FAR							0x00000398
3813#define  NV20TCL_CULL_FACE								0x0000039c
3814#define   NV20TCL_CULL_FACE_FRONT							0x00000404
3815#define   NV20TCL_CULL_FACE_BACK							0x00000405
3816#define   NV20TCL_CULL_FACE_FRONT_AND_BACK						0x00000408
3817#define  NV20TCL_FRONT_FACE								0x000003a0
3818#define   NV20TCL_FRONT_FACE_CW								0x00000900
3819#define   NV20TCL_FRONT_FACE_CCW							0x00000901
3820#define  NV20TCL_NORMALIZE_ENABLE							0x000003a4
3821#define  NV20TCL_COLOR_MATERIAL_FRONT_R							0x000003a8
3822#define  NV20TCL_COLOR_MATERIAL_FRONT_G							0x000003ac
3823#define  NV20TCL_COLOR_MATERIAL_FRONT_B							0x000003b0
3824#define  NV20TCL_COLOR_MATERIAL_FRONT_A							0x000003b4
3825#define  NV20TCL_SEPARATE_SPECULAR_ENABLE						0x000003b8
3826#define  NV20TCL_ENABLED_LIGHTS								0x000003bc
3827#define  NV20TCL_TX_GEN_S(x)								(0x000003c0+((x)*16))
3828#define  NV20TCL_TX_GEN_S__SIZE								0x00000004
3829#define   NV20TCL_TX_GEN_S_FALSE							0x00000000
3830#define   NV20TCL_TX_GEN_S_EYE_LINEAR							0x00002400
3831#define   NV20TCL_TX_GEN_S_OBJECT_LINEAR						0x00002401
3832#define   NV20TCL_TX_GEN_S_SPHERE_MAP							0x00002402
3833#define   NV20TCL_TX_GEN_S_NORMAL_MAP							0x00008511
3834#define   NV20TCL_TX_GEN_S_REFLECTION_MAP						0x00008512
3835#define  NV20TCL_TX_GEN_T(x)								(0x000003c4+((x)*16))
3836#define  NV20TCL_TX_GEN_T__SIZE								0x00000004
3837#define   NV20TCL_TX_GEN_T_FALSE							0x00000000
3838#define   NV20TCL_TX_GEN_T_EYE_LINEAR							0x00002400
3839#define   NV20TCL_TX_GEN_T_OBJECT_LINEAR						0x00002401
3840#define   NV20TCL_TX_GEN_T_SPHERE_MAP							0x00002402
3841#define   NV20TCL_TX_GEN_T_NORMAL_MAP							0x00008511
3842#define   NV20TCL_TX_GEN_T_REFLECTION_MAP						0x00008512
3843#define  NV20TCL_TX_GEN_R(x)								(0x000003c8+((x)*16))
3844#define  NV20TCL_TX_GEN_R__SIZE								0x00000004
3845#define   NV20TCL_TX_GEN_R_FALSE							0x00000000
3846#define   NV20TCL_TX_GEN_R_EYE_LINEAR							0x00002400
3847#define   NV20TCL_TX_GEN_R_OBJECT_LINEAR						0x00002401
3848#define   NV20TCL_TX_GEN_R_SPHERE_MAP							0x00002402
3849#define   NV20TCL_TX_GEN_R_NORMAL_MAP							0x00008511
3850#define   NV20TCL_TX_GEN_R_REFLECTION_MAP						0x00008512
3851#define  NV20TCL_TX_GEN_Q(x)								(0x000003cc+((x)*16))
3852#define  NV20TCL_TX_GEN_Q__SIZE								0x00000004
3853#define   NV20TCL_TX_GEN_Q_FALSE							0x00000000
3854#define   NV20TCL_TX_GEN_Q_EYE_LINEAR							0x00002400
3855#define   NV20TCL_TX_GEN_Q_OBJECT_LINEAR						0x00002401
3856#define   NV20TCL_TX_GEN_Q_SPHERE_MAP							0x00002402
3857#define   NV20TCL_TX_GEN_Q_NORMAL_MAP							0x00008511
3858#define   NV20TCL_TX_GEN_Q_REFLECTION_MAP						0x00008512
3859#define  NV20TCL_TX_MATRIX_ENABLE(x)							(0x00000420+((x)*4))
3860#define  NV20TCL_TX_MATRIX_ENABLE__SIZE							0x00000004
3861#define  NV20TCL_POINT_SIZE								0x0000043c
3862#define  NV20TCL_MODELVIEW0_MATRIX(x)							(0x00000480+((x)*4))
3863#define  NV20TCL_MODELVIEW0_MATRIX__SIZE						0x00000010
3864#define  NV20TCL_MODELVIEW1_MATRIX(x)							(0x000004c0+((x)*4))
3865#define  NV20TCL_MODELVIEW1_MATRIX__SIZE						0x00000010
3866#define  NV20TCL_MODELVIEW2_MATRIX(x)							(0x00000500+((x)*4))
3867#define  NV20TCL_MODELVIEW2_MATRIX__SIZE						0x00000010
3868#define  NV20TCL_MODELVIEW3_MATRIX(x)							(0x00000540+((x)*4))
3869#define  NV20TCL_MODELVIEW3_MATRIX__SIZE						0x00000010
3870#define  NV20TCL_INVERSE_MODELVIEW0_MATRIX(x)						(0x00000580+((x)*4))
3871#define  NV20TCL_INVERSE_MODELVIEW0_MATRIX__SIZE					0x00000010
3872#define  NV20TCL_INVERSE_MODELVIEW1_MATRIX(x)						(0x000005c0+((x)*4))
3873#define  NV20TCL_INVERSE_MODELVIEW1_MATRIX__SIZE					0x00000010
3874#define  NV20TCL_INVERSE_MODELVIEW2_MATRIX(x)						(0x00000600+((x)*4))
3875#define  NV20TCL_INVERSE_MODELVIEW2_MATRIX__SIZE					0x00000010
3876#define  NV20TCL_INVERSE_MODELVIEW3_MATRIX(x)						(0x00000640+((x)*4))
3877#define  NV20TCL_INVERSE_MODELVIEW3_MATRIX__SIZE					0x00000010
3878#define  NV20TCL_PROJECTION_MATRIX(x)							(0x00000680+((x)*4))
3879#define  NV20TCL_PROJECTION_MATRIX__SIZE						0x00000010
3880#define  NV20TCL_TX0_MATRIX(x)								(0x000006c0+((x)*4))
3881#define  NV20TCL_TX0_MATRIX__SIZE							0x00000010
3882#define  NV20TCL_TX1_MATRIX(x)								(0x00000700+((x)*4))
3883#define  NV20TCL_TX1_MATRIX__SIZE							0x00000010
3884#define  NV20TCL_TX2_MATRIX(x)								(0x00000740+((x)*4))
3885#define  NV20TCL_TX2_MATRIX__SIZE							0x00000010
3886#define  NV20TCL_TX3_MATRIX(x)								(0x00000780+((x)*4))
3887#define  NV20TCL_TX3_MATRIX__SIZE							0x00000010
3888#define  NV20TCL_TX0_CLIP_PLANE_A(x)							(0x00000840+((x)*16))
3889#define  NV20TCL_TX0_CLIP_PLANE_A__SIZE							0x00000004
3890#define  NV20TCL_TX0_CLIP_PLANE_B(x)							(0x00000844+((x)*16))
3891#define  NV20TCL_TX0_CLIP_PLANE_B__SIZE							0x00000004
3892#define  NV20TCL_TX0_CLIP_PLANE_C(x)							(0x00000848+((x)*16))
3893#define  NV20TCL_TX0_CLIP_PLANE_C__SIZE							0x00000004
3894#define  NV20TCL_TX0_CLIP_PLANE_D(x)							(0x0000084c+((x)*16))
3895#define  NV20TCL_TX0_CLIP_PLANE_D__SIZE							0x00000004
3896#define  NV20TCL_TX1_CLIP_PLANE_A(x)							(0x00000880+((x)*16))
3897#define  NV20TCL_TX1_CLIP_PLANE_A__SIZE							0x00000004
3898#define  NV20TCL_TX1_CLIP_PLANE_B(x)							(0x00000884+((x)*16))
3899#define  NV20TCL_TX1_CLIP_PLANE_B__SIZE							0x00000004
3900#define  NV20TCL_TX1_CLIP_PLANE_C(x)							(0x00000888+((x)*16))
3901#define  NV20TCL_TX1_CLIP_PLANE_C__SIZE							0x00000004
3902#define  NV20TCL_TX1_CLIP_PLANE_D(x)							(0x0000088c+((x)*16))
3903#define  NV20TCL_TX1_CLIP_PLANE_D__SIZE							0x00000004
3904#define  NV20TCL_TX2_CLIP_PLANE_A(x)							(0x000008c0+((x)*16))
3905#define  NV20TCL_TX2_CLIP_PLANE_A__SIZE							0x00000004
3906#define  NV20TCL_TX2_CLIP_PLANE_B(x)							(0x000008c4+((x)*16))
3907#define  NV20TCL_TX2_CLIP_PLANE_B__SIZE							0x00000004
3908#define  NV20TCL_TX2_CLIP_PLANE_C(x)							(0x000008c8+((x)*16))
3909#define  NV20TCL_TX2_CLIP_PLANE_C__SIZE							0x00000004
3910#define  NV20TCL_TX2_CLIP_PLANE_D(x)							(0x000008cc+((x)*16))
3911#define  NV20TCL_TX2_CLIP_PLANE_D__SIZE							0x00000004
3912#define  NV20TCL_TX3_CLIP_PLANE_A(x)							(0x00000900+((x)*16))
3913#define  NV20TCL_TX3_CLIP_PLANE_A__SIZE							0x00000004
3914#define  NV20TCL_TX3_CLIP_PLANE_B(x)							(0x00000904+((x)*16))
3915#define  NV20TCL_TX3_CLIP_PLANE_B__SIZE							0x00000004
3916#define  NV20TCL_TX3_CLIP_PLANE_C(x)							(0x00000908+((x)*16))
3917#define  NV20TCL_TX3_CLIP_PLANE_C__SIZE							0x00000004
3918#define  NV20TCL_TX3_CLIP_PLANE_D(x)							(0x0000090c+((x)*16))
3919#define  NV20TCL_TX3_CLIP_PLANE_D__SIZE							0x00000004
3920#define  NV20TCL_FOG_EQUATION_CONSTANT							0x000009c0
3921#define  NV20TCL_FOG_EQUATION_LINEAR							0x000009c4
3922#define  NV20TCL_FOG_EQUATION_QUADRATIC							0x000009c8
3923#define  NV20TCL_FRONT_MATERIAL_SHININESS(x)						(0x000009e0+((x)*4))
3924#define  NV20TCL_FRONT_MATERIAL_SHININESS__SIZE						0x00000006
3925#define  NV20TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R			0x00000a10
3926#define  NV20TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G			0x00000a14
3927#define  NV20TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B			0x00000a18
3928#define  NV20TCL_VIEWPORT_SCALE0_X							0x00000a20
3929#define  NV20TCL_VIEWPORT_SCALE0_Y							0x00000a24
3930#define  NV20TCL_VIEWPORT_SCALE0_Z							0x00000a28
3931#define  NV20TCL_VIEWPORT_SCALE0_W							0x00000a2c
3932#define  NV20TCL_POINT_PARAMETER(x)							(0x00000a30+((x)*4))
3933#define  NV20TCL_POINT_PARAMETER__SIZE							0x00000008
3934#define  NV20TCL_RC_CONSTANT_COLOR0(x)							(0x00000a60+((x)*4))
3935#define  NV20TCL_RC_CONSTANT_COLOR0__SIZE						0x00000008
3936#define   NV20TCL_RC_CONSTANT_COLOR0_B_SHIFT						0
3937#define   NV20TCL_RC_CONSTANT_COLOR0_B_MASK						0x000000ff
3938#define   NV20TCL_RC_CONSTANT_COLOR0_G_SHIFT						8
3939#define   NV20TCL_RC_CONSTANT_COLOR0_G_MASK						0x0000ff00
3940#define   NV20TCL_RC_CONSTANT_COLOR0_R_SHIFT						16
3941#define   NV20TCL_RC_CONSTANT_COLOR0_R_MASK						0x00ff0000
3942#define   NV20TCL_RC_CONSTANT_COLOR0_A_SHIFT						24
3943#define   NV20TCL_RC_CONSTANT_COLOR0_A_MASK						0xff000000
3944#define  NV20TCL_RC_CONSTANT_COLOR1(x)							(0x00000a80+((x)*4))
3945#define  NV20TCL_RC_CONSTANT_COLOR1__SIZE						0x00000008
3946#define   NV20TCL_RC_CONSTANT_COLOR1_B_SHIFT						0
3947#define   NV20TCL_RC_CONSTANT_COLOR1_B_MASK						0x000000ff
3948#define   NV20TCL_RC_CONSTANT_COLOR1_G_SHIFT						8
3949#define   NV20TCL_RC_CONSTANT_COLOR1_G_MASK						0x0000ff00
3950#define   NV20TCL_RC_CONSTANT_COLOR1_R_SHIFT						16
3951#define   NV20TCL_RC_CONSTANT_COLOR1_R_MASK						0x00ff0000
3952#define   NV20TCL_RC_CONSTANT_COLOR1_A_SHIFT						24
3953#define   NV20TCL_RC_CONSTANT_COLOR1_A_MASK						0xff000000
3954#define  NV20TCL_RC_OUT_ALPHA(x)							(0x00000aa0+((x)*4))
3955#define  NV20TCL_RC_OUT_ALPHA__SIZE							0x00000008
3956#define   NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT						0
3957#define   NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK						0x0000000f
3958#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO						0x00000000
3959#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0_NV				0x00000001
3960#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1_NV				0x00000002
3961#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG						0x00000003
3962#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR_NV				0x00000004
3963#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR_NV				0x00000005
3964#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0_ARB					0x00000008
3965#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1_ARB					0x00000009
3966#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_NV					0x0000000c
3967#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1_NV					0x0000000d
3968#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV		0x0000000e
3969#define    NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F_NV					0x0000000f
3970#define   NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT						4
3971#define   NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK						0x000000f0
3972#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO						0x00000000
3973#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0_NV				0x00000010
3974#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1_NV				0x00000020
3975#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG						0x00000030
3976#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR_NV				0x00000040
3977#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR_NV				0x00000050
3978#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0_ARB					0x00000080
3979#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1_ARB					0x00000090
3980#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_NV					0x000000c0
3981#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV					0x000000d0
3982#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV		0x000000e0
3983#define    NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV					0x000000f0
3984#define   NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT						8
3985#define   NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK						0x00000f00
3986#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO						0x00000000
3987#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0_NV				0x00000100
3988#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1_NV				0x00000200
3989#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG						0x00000300
3990#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR_NV				0x00000400
3991#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR_NV				0x00000500
3992#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0_ARB					0x00000800
3993#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1_ARB					0x00000900
3994#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_NV					0x00000c00
3995#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV					0x00000d00
3996#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV		0x00000e00
3997#define    NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV					0x00000f00
3998#define   NV20TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT						(1 << 12)
3999#define   NV20TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT						(1 << 13)
4000#define   NV20TCL_RC_OUT_ALPHA_MUX_SUM							(1 << 14)
4001#define   NV20TCL_RC_OUT_ALPHA_BIAS							(1 << 15)
4002#define    NV20TCL_RC_OUT_ALPHA_BIAS_NONE						0x00000000
4003#define    NV20TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV			0x00008000
4004#define   NV20TCL_RC_OUT_ALPHA_SCALE_SHIFT						17
4005#define   NV20TCL_RC_OUT_ALPHA_SCALE_MASK						0x00000000
4006#define    NV20TCL_RC_OUT_ALPHA_SCALE_NONE						0x00000000
4007#define    NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO_NV					0x00020000
4008#define    NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR_NV					0x00040000
4009#define    NV20TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF_NV				0x00060000
4010#define  NV20TCL_RC_IN_RGB(x)								(0x00000ac0+((x)*4))
4011#define  NV20TCL_RC_IN_RGB__SIZE							0x00000008
4012#define   NV20TCL_RC_IN_RGB_D_INPUT_SHIFT						0
4013#define   NV20TCL_RC_IN_RGB_D_INPUT_MASK						0x0000000f
4014#define    NV20TCL_RC_IN_RGB_D_INPUT_ZERO						0x00000000
4015#define    NV20TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0_NV					0x00000001
4016#define    NV20TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1_NV					0x00000002
4017#define    NV20TCL_RC_IN_RGB_D_INPUT_FOG						0x00000003
4018#define    NV20TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR_NV					0x00000004
4019#define    NV20TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR_NV					0x00000005
4020#define    NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE0_ARB					0x00000008
4021#define    NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE1_ARB					0x00000009
4022#define    NV20TCL_RC_IN_RGB_D_INPUT_SPARE0_NV						0x0000000c
4023#define    NV20TCL_RC_IN_RGB_D_INPUT_SPARE1_NV						0x0000000d
4024#define    NV20TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
4025#define    NV20TCL_RC_IN_RGB_D_INPUT_E_TIMES_F_NV					0x0000000f
4026#define   NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE						(1 <<  4)
4027#define    NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB					0x00000000
4028#define    NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA					0x00000010
4029#define   NV20TCL_RC_IN_RGB_D_MAPPING_SHIFT						5
4030#define   NV20TCL_RC_IN_RGB_D_MAPPING_MASK						0x000000e0
4031#define    NV20TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
4032#define    NV20TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT_NV				0x00000020
4033#define    NV20TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL_NV					0x00000040
4034#define    NV20TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE_NV					0x00000060
4035#define    NV20TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL_NV				0x00000080
4036#define    NV20TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE_NV				0x000000a0
4037#define    NV20TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY_NV				0x000000c0
4038#define    NV20TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE_NV					0x000000e0
4039#define   NV20TCL_RC_IN_RGB_C_INPUT_SHIFT						8
4040#define   NV20TCL_RC_IN_RGB_C_INPUT_MASK						0x00000f00
4041#define    NV20TCL_RC_IN_RGB_C_INPUT_ZERO						0x00000000
4042#define    NV20TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0_NV					0x00000100
4043#define    NV20TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1_NV					0x00000200
4044#define    NV20TCL_RC_IN_RGB_C_INPUT_FOG						0x00000300
4045#define    NV20TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR_NV					0x00000400
4046#define    NV20TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR_NV					0x00000500
4047#define    NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE0_ARB					0x00000800
4048#define    NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE1_ARB					0x00000900
4049#define    NV20TCL_RC_IN_RGB_C_INPUT_SPARE0_NV						0x00000c00
4050#define    NV20TCL_RC_IN_RGB_C_INPUT_SPARE1_NV						0x00000d00
4051#define    NV20TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
4052#define    NV20TCL_RC_IN_RGB_C_INPUT_E_TIMES_F_NV					0x00000f00
4053#define   NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE						(1 << 12)
4054#define    NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB					0x00000000
4055#define    NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA					0x00001000
4056#define   NV20TCL_RC_IN_RGB_C_MAPPING_SHIFT						13
4057#define   NV20TCL_RC_IN_RGB_C_MAPPING_MASK						0x0000e000
4058#define    NV20TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
4059#define    NV20TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT_NV				0x00002000
4060#define    NV20TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL_NV					0x00004000
4061#define    NV20TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE_NV					0x00006000
4062#define    NV20TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
4063#define    NV20TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
4064#define    NV20TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
4065#define    NV20TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE_NV					0x0000e000
4066#define   NV20TCL_RC_IN_RGB_B_INPUT_SHIFT						16
4067#define   NV20TCL_RC_IN_RGB_B_INPUT_MASK						0x000f0000
4068#define    NV20TCL_RC_IN_RGB_B_INPUT_ZERO						0x00000000
4069#define    NV20TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0_NV					0x00010000
4070#define    NV20TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1_NV					0x00020000
4071#define    NV20TCL_RC_IN_RGB_B_INPUT_FOG						0x00030000
4072#define    NV20TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR_NV					0x00040000
4073#define    NV20TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR_NV					0x00050000
4074#define    NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE0_ARB					0x00080000
4075#define    NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE1_ARB					0x00090000
4076#define    NV20TCL_RC_IN_RGB_B_INPUT_SPARE0_NV						0x000c0000
4077#define    NV20TCL_RC_IN_RGB_B_INPUT_SPARE1_NV						0x000d0000
4078#define    NV20TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
4079#define    NV20TCL_RC_IN_RGB_B_INPUT_E_TIMES_F_NV					0x000f0000
4080#define   NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE						(1 << 20)
4081#define    NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB					0x00000000
4082#define    NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA					0x00100000
4083#define   NV20TCL_RC_IN_RGB_B_MAPPING_SHIFT						21
4084#define   NV20TCL_RC_IN_RGB_B_MAPPING_MASK						0x00e00000
4085#define    NV20TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
4086#define    NV20TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT_NV				0x00200000
4087#define    NV20TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL_NV					0x00400000
4088#define    NV20TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE_NV					0x00600000
4089#define    NV20TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
4090#define    NV20TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
4091#define    NV20TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
4092#define    NV20TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE_NV					0x00e00000
4093#define   NV20TCL_RC_IN_RGB_A_INPUT_SHIFT						24
4094#define   NV20TCL_RC_IN_RGB_A_INPUT_MASK						0x0f000000
4095#define    NV20TCL_RC_IN_RGB_A_INPUT_ZERO						0x00000000
4096#define    NV20TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0_NV					0x01000000
4097#define    NV20TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1_NV					0x02000000
4098#define    NV20TCL_RC_IN_RGB_A_INPUT_FOG						0x03000000
4099#define    NV20TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR_NV					0x04000000
4100#define    NV20TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR_NV					0x05000000
4101#define    NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE0_ARB					0x08000000
4102#define    NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE1_ARB					0x09000000
4103#define    NV20TCL_RC_IN_RGB_A_INPUT_SPARE0_NV						0x0c000000
4104#define    NV20TCL_RC_IN_RGB_A_INPUT_SPARE1_NV						0x0d000000
4105#define    NV20TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
4106#define    NV20TCL_RC_IN_RGB_A_INPUT_E_TIMES_F_NV					0x0f000000
4107#define   NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE						(1 << 28)
4108#define    NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB					0x00000000
4109#define    NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA					0x10000000
4110#define   NV20TCL_RC_IN_RGB_A_MAPPING_SHIFT						29
4111#define   NV20TCL_RC_IN_RGB_A_MAPPING_MASK						0xe0000000
4112#define    NV20TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
4113#define    NV20TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT_NV				0x20000000
4114#define    NV20TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL_NV					0x40000000
4115#define    NV20TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE_NV					0x60000000
4116#define    NV20TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
4117#define    NV20TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
4118#define    NV20TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
4119#define    NV20TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE_NV					0xe0000000
4120#define  NV20TCL_VIEWPORT_SCALE1_X							0x00000af0
4121#define  NV20TCL_VIEWPORT_SCALE1_Y							0x00000af4
4122#define  NV20TCL_VIEWPORT_SCALE1_Z							0x00000af8
4123#define  NV20TCL_VIEWPORT_SCALE1_W							0x00000afc
4124#define  NV20TCL_VP_UPLOAD_INST(x)							(0x00000b00+((x)*4))
4125#define  NV20TCL_VP_UPLOAD_INST__SIZE							0x00000004
4126#define  NV20TCL_VP_UPLOAD_CONST(x)							(0x00000b80+((x)*4))
4127#define  NV20TCL_VP_UPLOAD_CONST__SIZE							0x00000004
4128#define  NV20TCL_LIGHT_BACK_SIDE_PRODUCT_AMBIENT_R(x)					(0x00000c00+((x)*64))
4129#define  NV20TCL_LIGHT_BACK_SIDE_PRODUCT_AMBIENT_R__SIZE				0x00000008
4130#define  NV20TCL_LIGHT_BACK_SIDE_PRODUCT_AMBIENT_G(x)					(0x00000c04+((x)*64))
4131#define  NV20TCL_LIGHT_BACK_SIDE_PRODUCT_AMBIENT_G__SIZE				0x00000008
4132#define  NV20TCL_LIGHT_BACK_SIDE_PRODUCT_AMBIENT_B(x)					(0x00000c08+((x)*64))
4133#define  NV20TCL_LIGHT_BACK_SIDE_PRODUCT_AMBIENT_B__SIZE				0x00000008
4134#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(x)					(0x00001000+((x)*128))
4135#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R__SIZE				0x00000008
4136#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(x)					(0x00001004+((x)*128))
4137#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G__SIZE				0x00000008
4138#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(x)					(0x00001008+((x)*128))
4139#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B__SIZE				0x00000008
4140#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(x)					(0x0000100c+((x)*128))
4141#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R__SIZE				0x00000008
4142#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(x)					(0x00001010+((x)*128))
4143#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G__SIZE				0x00000008
4144#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(x)					(0x00001014+((x)*128))
4145#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B__SIZE				0x00000008
4146#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(x)					(0x00001018+((x)*128))
4147#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R__SIZE				0x00000008
4148#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(x)					(0x0000101c+((x)*128))
4149#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G__SIZE				0x00000008
4150#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(x)					(0x00001020+((x)*128))
4151#define  NV20TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B__SIZE				0x00000008
4152#define  NV20TCL_LIGHT_HALF_VECTOR_X(x)							(0x00001028+((x)*128))
4153#define  NV20TCL_LIGHT_HALF_VECTOR_X__SIZE						0x00000008
4154#define  NV20TCL_LIGHT_HALF_VECTOR_Y(x)							(0x0000102c+((x)*128))
4155#define  NV20TCL_LIGHT_HALF_VECTOR_Y__SIZE						0x00000008
4156#define  NV20TCL_LIGHT_HALF_VECTOR_Z(x)							(0x00001030+((x)*128))
4157#define  NV20TCL_LIGHT_HALF_VECTOR_Z__SIZE						0x00000008
4158#define  NV20TCL_LIGHT_DIRECTION_X(x)							(0x00001034+((x)*128))
4159#define  NV20TCL_LIGHT_DIRECTION_X__SIZE						0x00000008
4160#define  NV20TCL_LIGHT_DIRECTION_Y(x)							(0x00001038+((x)*128))
4161#define  NV20TCL_LIGHT_DIRECTION_Y__SIZE						0x00000008
4162#define  NV20TCL_LIGHT_DIRECTION_Z(x)							(0x0000103c+((x)*128))
4163#define  NV20TCL_LIGHT_DIRECTION_Z__SIZE						0x00000008
4164#define  NV20TCL_LIGHT_POSITION_X(x)							(0x0000105c+((x)*128))
4165#define  NV20TCL_LIGHT_POSITION_X__SIZE							0x00000008
4166#define  NV20TCL_LIGHT_POSITION_Y(x)							(0x00001060+((x)*128))
4167#define  NV20TCL_LIGHT_POSITION_Y__SIZE							0x00000008
4168#define  NV20TCL_LIGHT_POSITION_Z(x)							(0x00001064+((x)*128))
4169#define  NV20TCL_LIGHT_POSITION_Z__SIZE							0x00000008
4170#define  NV20TCL_LIGHT_CONSTANT_ATTENUATION(x)						(0x00001068+((x)*128))
4171#define  NV20TCL_LIGHT_CONSTANT_ATTENUATION__SIZE					0x00000008
4172#define  NV20TCL_LIGHT_LINEAR_ATTENUATION(x)						(0x0000106c+((x)*128))
4173#define  NV20TCL_LIGHT_LINEAR_ATTENUATION__SIZE						0x00000008
4174#define  NV20TCL_LIGHT_QUADRATIC_ATTENUATION(x)						(0x00001070+((x)*128))
4175#define  NV20TCL_LIGHT_QUADRATIC_ATTENUATION__SIZE					0x00000008
4176#define  NV20TCL_POLYGON_STIPPLE_ENABLE							0x0000147c
4177#define  NV20TCL_POLYGON_STIPPLE_PATTERN(x)						(0x00001480+((x)*4))
4178#define  NV20TCL_POLYGON_STIPPLE_PATTERN__SIZE						0x00000020
4179#define  NV20TCL_VERTEX_POS_3F_X							0x00001500
4180#define  NV20TCL_VERTEX_POS_3F_Y							0x00001504
4181#define  NV20TCL_VERTEX_POS_3F_Z							0x00001508
4182#define  NV20TCL_VERTEX_POS_4F_X							0x00001518
4183#define  NV20TCL_VERTEX_POS_4F_Y							0x0000151c
4184#define  NV20TCL_VERTEX_POS_4F_Z							0x00001520
4185#define  NV20TCL_VERTEX_POS_3I_XY							0x00001528
4186#define   NV20TCL_VERTEX_POS_3I_XY_X_SHIFT						0
4187#define   NV20TCL_VERTEX_POS_3I_XY_X_MASK						0x0000ffff
4188#define   NV20TCL_VERTEX_POS_3I_XY_Y_SHIFT						16
4189#define   NV20TCL_VERTEX_POS_3I_XY_Y_MASK						0xffff0000
4190#define  NV20TCL_VERTEX_POS_3I_Z							0x0000152c
4191#define   NV20TCL_VERTEX_POS_3I_Z_Z_SHIFT						0
4192#define   NV20TCL_VERTEX_POS_3I_Z_Z_MASK						0x0000ffff
4193#define  NV20TCL_VERTEX_NOR_3F_X							0x00001530
4194#define  NV20TCL_VERTEX_NOR_3F_Y							0x00001534
4195#define  NV20TCL_VERTEX_NOR_3F_Z							0x00001538
4196#define  NV20TCL_VERTEX_NOR_3I_XY							0x00001540
4197#define   NV20TCL_VERTEX_NOR_3I_XY_X_SHIFT						0
4198#define   NV20TCL_VERTEX_NOR_3I_XY_X_MASK						0x0000ffff
4199#define   NV20TCL_VERTEX_NOR_3I_XY_Y_SHIFT						16
4200#define   NV20TCL_VERTEX_NOR_3I_XY_Y_MASK						0xffff0000
4201#define  NV20TCL_VERTEX_NOR_3I_Z							0x00001544
4202#define   NV20TCL_VERTEX_NOR_3I_Z_Z_SHIFT						0
4203#define   NV20TCL_VERTEX_NOR_3I_Z_Z_MASK						0x0000ffff
4204#define  NV20TCL_VERTEX_COL_4F_X							0x00001550
4205#define  NV20TCL_VERTEX_COL_4F_Y							0x00001554
4206#define  NV20TCL_VERTEX_COL_4F_Z							0x00001558
4207#define  NV20TCL_VERTEX_COL_4F_W							0x0000155c
4208#define  NV20TCL_VERTEX_COL_3F_X							0x00001560
4209#define  NV20TCL_VERTEX_COL_3F_Y							0x00001564
4210#define  NV20TCL_VERTEX_COL_3F_Z							0x00001568
4211#define  NV20TCL_VERTEX_COL_4I								0x0000156c
4212#define   NV20TCL_VERTEX_COL_4I_R_SHIFT							0
4213#define   NV20TCL_VERTEX_COL_4I_R_MASK							0x000000ff
4214#define   NV20TCL_VERTEX_COL_4I_G_SHIFT							8
4215#define   NV20TCL_VERTEX_COL_4I_G_MASK							0x0000ff00
4216#define   NV20TCL_VERTEX_COL_4I_B_SHIFT							16
4217#define   NV20TCL_VERTEX_COL_4I_B_MASK							0x00ff0000
4218#define   NV20TCL_VERTEX_COL_4I_A_SHIFT							24
4219#define   NV20TCL_VERTEX_COL_4I_A_MASK							0xff000000
4220#define  NV20TCL_VERTEX_COL2_3F_X							0x00001580
4221#define  NV20TCL_VERTEX_COL2_3F_Y							0x00001584
4222#define  NV20TCL_VERTEX_COL2_3F_Z							0x00001588
4223#define  NV20TCL_VERTEX_COL2_4I								0x0000158c
4224#define   NV20TCL_VERTEX_COL2_4I_R_SHIFT						0
4225#define   NV20TCL_VERTEX_COL2_4I_R_MASK							0x000000ff
4226#define   NV20TCL_VERTEX_COL2_4I_G_SHIFT						8
4227#define   NV20TCL_VERTEX_COL2_4I_G_MASK							0x0000ff00
4228#define   NV20TCL_VERTEX_COL2_4I_B_SHIFT						16
4229#define   NV20TCL_VERTEX_COL2_4I_B_MASK							0x00ff0000
4230#define   NV20TCL_VERTEX_COL2_4I_A_SHIFT						24
4231#define   NV20TCL_VERTEX_COL2_4I_A_MASK							0xff000000
4232#define  NV20TCL_VERTEX_TX0_2F_S							0x00001590
4233#define  NV20TCL_VERTEX_TX0_2F_T							0x00001594
4234#define  NV20TCL_VERTEX_TX0_2I								0x00001598
4235#define   NV20TCL_VERTEX_TX0_2I_S_SHIFT							0
4236#define   NV20TCL_VERTEX_TX0_2I_S_MASK							0x0000ffff
4237#define   NV20TCL_VERTEX_TX0_2I_T_SHIFT							16
4238#define   NV20TCL_VERTEX_TX0_2I_T_MASK							0xffff0000
4239#define  NV20TCL_VERTEX_TX0_4F_S							0x000015a0
4240#define  NV20TCL_VERTEX_TX0_4F_T							0x000015a4
4241#define  NV20TCL_VERTEX_TX0_4F_R							0x000015a8
4242#define  NV20TCL_VERTEX_TX0_4F_Q							0x000015ac
4243#define  NV20TCL_VERTEX_TX0_4I_ST							0x000015b0
4244#define   NV20TCL_VERTEX_TX0_4I_ST_S_SHIFT						0
4245#define   NV20TCL_VERTEX_TX0_4I_ST_S_MASK						0x0000ffff
4246#define   NV20TCL_VERTEX_TX0_4I_ST_T_SHIFT						16
4247#define   NV20TCL_VERTEX_TX0_4I_ST_T_MASK						0xffff0000
4248#define  NV20TCL_VERTEX_TX0_4I_RQ							0x000015b4
4249#define   NV20TCL_VERTEX_TX0_4I_RQ_R_SHIFT						0
4250#define   NV20TCL_VERTEX_TX0_4I_RQ_R_MASK						0x0000ffff
4251#define   NV20TCL_VERTEX_TX0_4I_RQ_Q_SHIFT						16
4252#define   NV20TCL_VERTEX_TX0_4I_RQ_Q_MASK						0xffff0000
4253#define  NV20TCL_VERTEX_TX1_2F_S							0x000015b8
4254#define  NV20TCL_VERTEX_TX1_2F_T							0x000015bc
4255#define  NV20TCL_VERTEX_TX1_2I								0x000015c0
4256#define   NV20TCL_VERTEX_TX1_2I_S_SHIFT							0
4257#define   NV20TCL_VERTEX_TX1_2I_S_MASK							0x0000ffff
4258#define   NV20TCL_VERTEX_TX1_2I_T_SHIFT							16
4259#define   NV20TCL_VERTEX_TX1_2I_T_MASK							0xffff0000
4260#define  NV20TCL_VERTEX_TX1_4F_S							0x000015c8
4261#define  NV20TCL_VERTEX_TX1_4F_T							0x000015cc
4262#define  NV20TCL_VERTEX_TX1_4F_R							0x000015d0
4263#define  NV20TCL_VERTEX_TX1_4F_Q							0x000015d4
4264#define  NV20TCL_VERTEX_TX1_4I_ST							0x000015d8
4265#define   NV20TCL_VERTEX_TX1_4I_ST_S_SHIFT						0
4266#define   NV20TCL_VERTEX_TX1_4I_ST_S_MASK						0x0000ffff
4267#define   NV20TCL_VERTEX_TX1_4I_ST_T_SHIFT						16
4268#define   NV20TCL_VERTEX_TX1_4I_ST_T_MASK						0xffff0000
4269#define  NV20TCL_VERTEX_TX1_4I_RQ							0x000015dc
4270#define   NV20TCL_VERTEX_TX1_4I_RQ_R_SHIFT						0
4271#define   NV20TCL_VERTEX_TX1_4I_RQ_R_MASK						0x0000ffff
4272#define   NV20TCL_VERTEX_TX1_4I_RQ_Q_SHIFT						16
4273#define   NV20TCL_VERTEX_TX1_4I_RQ_Q_MASK						0xffff0000
4274#define  NV20TCL_VERTEX_TX2_2F_S							0x000015e0
4275#define  NV20TCL_VERTEX_TX2_2F_T							0x000015e4
4276#define  NV20TCL_VERTEX_TX2_2I								0x000015e8
4277#define   NV20TCL_VERTEX_TX2_2I_S_SHIFT							0
4278#define   NV20TCL_VERTEX_TX2_2I_S_MASK							0x0000ffff
4279#define   NV20TCL_VERTEX_TX2_2I_T_SHIFT							16
4280#define   NV20TCL_VERTEX_TX2_2I_T_MASK							0xffff0000
4281#define  NV20TCL_VERTEX_TX2_4F_S							0x000015f0
4282#define  NV20TCL_VERTEX_TX2_4F_T							0x000015f4
4283#define  NV20TCL_VERTEX_TX2_4F_R							0x000015f8
4284#define  NV20TCL_VERTEX_TX2_4F_Q							0x000015fc
4285#define  NV20TCL_VERTEX_TX2_4I_ST							0x00001600
4286#define   NV20TCL_VERTEX_TX2_4I_ST_S_SHIFT						0
4287#define   NV20TCL_VERTEX_TX2_4I_ST_S_MASK						0x0000ffff
4288#define   NV20TCL_VERTEX_TX2_4I_ST_T_SHIFT						16
4289#define   NV20TCL_VERTEX_TX2_4I_ST_T_MASK						0xffff0000
4290#define  NV20TCL_VERTEX_TX2_4I_RQ							0x00001604
4291#define   NV20TCL_VERTEX_TX2_4I_RQ_R_SHIFT						0
4292#define   NV20TCL_VERTEX_TX2_4I_RQ_R_MASK						0x0000ffff
4293#define   NV20TCL_VERTEX_TX2_4I_RQ_Q_SHIFT						16
4294#define   NV20TCL_VERTEX_TX2_4I_RQ_Q_MASK						0xffff0000
4295#define  NV20TCL_VERTEX_TX3_2F_S							0x00001608
4296#define  NV20TCL_VERTEX_TX3_2F_T							0x0000160c
4297#define  NV20TCL_VERTEX_TX3_2I								0x00001610
4298#define   NV20TCL_VERTEX_TX3_2I_S_SHIFT							0
4299#define   NV20TCL_VERTEX_TX3_2I_S_MASK							0x0000ffff
4300#define   NV20TCL_VERTEX_TX3_2I_T_SHIFT							16
4301#define   NV20TCL_VERTEX_TX3_2I_T_MASK							0xffff0000
4302#define  NV20TCL_VERTEX_TX3_4F_S							0x00001620
4303#define  NV20TCL_VERTEX_TX3_4F_T							0x00001624
4304#define  NV20TCL_VERTEX_TX3_4F_R							0x00001628
4305#define  NV20TCL_VERTEX_TX3_4F_Q							0x0000162c
4306#define  NV20TCL_VERTEX_TX3_4I_ST							0x00001630
4307#define   NV20TCL_VERTEX_TX3_4I_ST_S_SHIFT						0
4308#define   NV20TCL_VERTEX_TX3_4I_ST_S_MASK						0x0000ffff
4309#define   NV20TCL_VERTEX_TX3_4I_ST_T_SHIFT						16
4310#define   NV20TCL_VERTEX_TX3_4I_ST_T_MASK						0xffff0000
4311#define  NV20TCL_VERTEX_TX3_4I_RQ							0x00001634
4312#define   NV20TCL_VERTEX_TX3_4I_RQ_R_SHIFT						0
4313#define   NV20TCL_VERTEX_TX3_4I_RQ_R_MASK						0x0000ffff
4314#define   NV20TCL_VERTEX_TX3_4I_RQ_Q_SHIFT						16
4315#define   NV20TCL_VERTEX_TX3_4I_RQ_Q_MASK						0xffff0000
4316#define  NV20TCL_VERTEX_FOG_1F								0x00001698
4317#define  NV20TCL_EDGEFLAG_ENABLE							0x000016bc
4318#define  NV20TCL_VTXBUF_ADDRESS(x)							(0x00001720+((x)*4))
4319#define  NV20TCL_VTXBUF_ADDRESS__SIZE							0x00000010
4320#define   NV20TCL_VTXBUF_ADDRESS_DMA1							(1 << 31)
4321#define   NV20TCL_VTXBUF_ADDRESS_OFFSET_SHIFT						0
4322#define   NV20TCL_VTXBUF_ADDRESS_OFFSET_MASK						0x0fffffff
4323#define  NV20TCL_VTXFMT(x)								(0x00001760+((x)*4))
4324#define  NV20TCL_VTXFMT__SIZE								0x00000010
4325#define   NV20TCL_VTXFMT_TYPE_SHIFT							0
4326#define   NV20TCL_VTXFMT_TYPE_MASK							0x0000000f
4327#define    NV20TCL_VTXFMT_TYPE_FLOAT							0x00000002
4328#define    NV20TCL_VTXFMT_TYPE_UBYTE							0x00000004
4329#define    NV20TCL_VTXFMT_TYPE_USHORT							0x00000005
4330#define   NV20TCL_VTXFMT_SIZE_SHIFT							4
4331#define   NV20TCL_VTXFMT_SIZE_MASK							0x000000f0
4332#define   NV20TCL_VTXFMT_STRIDE_SHIFT							8
4333#define   NV20TCL_VTXFMT_STRIDE_MASK							0x0000ff00
4334#define  NV20TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R			0x000017a0
4335#define  NV20TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G			0x000017a4
4336#define  NV20TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B			0x000017a8
4337#define  NV20TCL_COLOR_MATERIAL_BACK_A							0x000017ac
4338#define  NV20TCL_COLOR_MATERIAL_BACK_R							0x000017b0
4339#define  NV20TCL_COLOR_MATERIAL_BACK_G							0x000017b4
4340#define  NV20TCL_COLOR_MATERIAL_BACK_B							0x000017b8
4341#define  NV20TCL_COLOR_LOGIC_OP_ENABLE							0x000017bc
4342#define  NV20TCL_COLOR_LOGIC_OP_OP							0x000017c0
4343#define   NV20TCL_COLOR_LOGIC_OP_OP_CLEAR						0x00001500
4344#define   NV20TCL_COLOR_LOGIC_OP_OP_AND							0x00001501
4345#define   NV20TCL_COLOR_LOGIC_OP_OP_AND_REVERSE						0x00001502
4346#define   NV20TCL_COLOR_LOGIC_OP_OP_COPY						0x00001503
4347#define   NV20TCL_COLOR_LOGIC_OP_OP_AND_INVERTED					0x00001504
4348#define   NV20TCL_COLOR_LOGIC_OP_OP_NOOP						0x00001505
4349#define   NV20TCL_COLOR_LOGIC_OP_OP_XOR							0x00001506
4350#define   NV20TCL_COLOR_LOGIC_OP_OP_OR							0x00001507
4351#define   NV20TCL_COLOR_LOGIC_OP_OP_NOR							0x00001508
4352#define   NV20TCL_COLOR_LOGIC_OP_OP_EQUIV						0x00001509
4353#define   NV20TCL_COLOR_LOGIC_OP_OP_INVERT						0x0000150a
4354#define   NV20TCL_COLOR_LOGIC_OP_OP_OR_REVERSE						0x0000150b
4355#define   NV20TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED					0x0000150c
4356#define   NV20TCL_COLOR_LOGIC_OP_OP_OR_INVERTED						0x0000150d
4357#define   NV20TCL_COLOR_LOGIC_OP_OP_NAND						0x0000150e
4358#define   NV20TCL_COLOR_LOGIC_OP_OP_SET							0x0000150f
4359#define  NV20TCL_LIGHT_MODEL_TWO_SIDE_ENABLE						0x000017c4
4360#define  NV20TCL_TX_SHADER_CULL_MODE							0x000017f8
4361#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_S						(1 <<  0)
4362#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_S_GEQUAL					0x00000000
4363#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_S_LESS					0x00000001
4364#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_T						(1 <<  1)
4365#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_T_GEQUAL					0x00000000
4366#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_T_LESS					0x00000002
4367#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_R						(1 <<  2)
4368#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_R_GEQUAL					0x00000000
4369#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_R_LESS					0x00000004
4370#define   NV20TCL_TX_SHADER_CULL_MODE_TX0_Q						(1 <<  3)
4371#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_Q_GEQUAL					0x00000000
4372#define    NV20TCL_TX_SHADER_CULL_MODE_TX0_Q_LESS					0x00000008
4373#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_S						(1 <<  4)
4374#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_S_GEQUAL					0x00000000
4375#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_S_LESS					0x00000010
4376#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_T						(1 <<  5)
4377#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_T_GEQUAL					0x00000000
4378#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_T_LESS					0x00000020
4379#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_R						(1 <<  6)
4380#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_R_GEQUAL					0x00000000
4381#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_R_LESS					0x00000040
4382#define   NV20TCL_TX_SHADER_CULL_MODE_TX1_Q						(1 <<  7)
4383#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_Q_GEQUAL					0x00000000
4384#define    NV20TCL_TX_SHADER_CULL_MODE_TX1_Q_LESS					0x00000080
4385#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_S						(1 <<  8)
4386#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_S_GEQUAL					0x00000000
4387#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_S_LESS					0x00000100
4388#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_T						(1 <<  9)
4389#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_T_GEQUAL					0x00000000
4390#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_T_LESS					0x00000200
4391#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_R						(1 << 10)
4392#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_R_GEQUAL					0x00000000
4393#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_R_LESS					0x00000400
4394#define   NV20TCL_TX_SHADER_CULL_MODE_TX2_Q						(1 << 11)
4395#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_Q_GEQUAL					0x00000000
4396#define    NV20TCL_TX_SHADER_CULL_MODE_TX2_Q_LESS					0x00000800
4397#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_S						(1 << 12)
4398#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_S_GEQUAL					0x00000000
4399#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_S_LESS					0x00001000
4400#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_T						(1 << 13)
4401#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_T_GEQUAL					0x00000000
4402#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_T_LESS					0x00002000
4403#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_R						(1 << 14)
4404#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_R_GEQUAL					0x00000000
4405#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_R_LESS					0x00004000
4406#define   NV20TCL_TX_SHADER_CULL_MODE_TX3_Q						(1 << 15)
4407#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_Q_GEQUAL					0x00000000
4408#define    NV20TCL_TX_SHADER_CULL_MODE_TX3_Q_LESS					0x00008000
4409#define  NV20TCL_VERTEX_BEGIN_END							0x000017fc
4410#define   NV20TCL_VERTEX_BEGIN_END_STOP							0x00000000
4411#define   NV20TCL_VERTEX_BEGIN_END_POINTS						0x00000001
4412#define   NV20TCL_VERTEX_BEGIN_END_LINES						0x00000002
4413#define   NV20TCL_VERTEX_BEGIN_END_LINE_LOOP						0x00000003
4414#define   NV20TCL_VERTEX_BEGIN_END_LINE_STRIP						0x00000004
4415#define   NV20TCL_VERTEX_BEGIN_END_TRIANGLES						0x00000005
4416#define   NV20TCL_VERTEX_BEGIN_END_TRIANGLE_STRIP					0x00000006
4417#define   NV20TCL_VERTEX_BEGIN_END_TRIANGLE_FAN						0x00000007
4418#define   NV20TCL_VERTEX_BEGIN_END_QUADS						0x00000008
4419#define   NV20TCL_VERTEX_BEGIN_END_QUAD_STRIP						0x00000009
4420#define   NV20TCL_VERTEX_BEGIN_END_POLYGON						0x0000000a
4421#define  NV20TCL_VB_ELEMENT_U16								0x00001800
4422#define   NV20TCL_VB_ELEMENT_U16_I0_SHIFT						0
4423#define   NV20TCL_VB_ELEMENT_U16_I0_MASK						0x0000ffff
4424#define   NV20TCL_VB_ELEMENT_U16_I1_SHIFT						16
4425#define   NV20TCL_VB_ELEMENT_U16_I1_MASK						0xffff0000
4426#define  NV20TCL_VB_VERTEX_BATCH							0x00001810
4427#define   NV20TCL_VB_VERTEX_BATCH_OFFSET_SHIFT						0
4428#define   NV20TCL_VB_VERTEX_BATCH_OFFSET_MASK						0x00ffffff
4429#define   NV20TCL_VB_VERTEX_BATCH_COUNT_SHIFT						24
4430#define   NV20TCL_VB_VERTEX_BATCH_COUNT_MASK						0xff000000
4431#define  NV20TCL_VERTEX_DATA								0x00001818
4432#define  NV20TCL_TX_SHADER_CONST_EYE_X							0x0000181c
4433#define  NV20TCL_TX_SHADER_CONST_EYE_Y							0x00001820
4434#define  NV20TCL_TX_SHADER_CONST_EYE_Z							0x00001824
4435#define  NV20TCL_VTX_ATTR_4F_X(x)							(0x00001a00+((x)*16))
4436#define  NV20TCL_VTX_ATTR_4F_X__SIZE							0x00000010
4437#define  NV20TCL_VTX_ATTR_4F_Y(x)							(0x00001a04+((x)*16))
4438#define  NV20TCL_VTX_ATTR_4F_Y__SIZE							0x00000010
4439#define  NV20TCL_VTX_ATTR_4F_Z(x)							(0x00001a08+((x)*16))
4440#define  NV20TCL_VTX_ATTR_4F_Z__SIZE							0x00000010
4441#define  NV20TCL_VTX_ATTR_4F_W(x)							(0x00001a0c+((x)*16))
4442#define  NV20TCL_VTX_ATTR_4F_W__SIZE							0x00000010
4443#define  NV20TCL_TX_OFFSET(x)								(0x00001b00+((x)*64))
4444#define  NV20TCL_TX_OFFSET__SIZE							0x00000004
4445#define  NV20TCL_TX_FORMAT(x)								(0x00001b04+((x)*64))
4446#define  NV20TCL_TX_FORMAT__SIZE							0x00000004
4447#define   NV20TCL_TX_FORMAT_DMA0							(1 <<  0)
4448#define   NV20TCL_TX_FORMAT_DMA1							(1 <<  1)
4449#define   NV20TCL_TX_FORMAT_CUBIC							(1 <<  2)
4450#define   NV20TCL_TX_FORMAT_NO_BORDER							(1 <<  3)
4451#define   NV20TCL_TX_FORMAT_DIMS_SHIFT							4
4452#define   NV20TCL_TX_FORMAT_DIMS_MASK							0x000000f0
4453#define    NV20TCL_TX_FORMAT_DIMS_1D							0x00000010
4454#define    NV20TCL_TX_FORMAT_DIMS_2D							0x00000020
4455#define    NV20TCL_TX_FORMAT_DIMS_3D							0x00000030
4456#define   NV20TCL_TX_FORMAT_FORMAT_SHIFT						8
4457#define   NV20TCL_TX_FORMAT_FORMAT_MASK							0x0000ff00
4458#define    NV20TCL_TX_FORMAT_FORMAT_L8							0x00000000
4459#define    NV20TCL_TX_FORMAT_FORMAT_A8							0x00000100
4460#define    NV20TCL_TX_FORMAT_FORMAT_A1R5G5B5						0x00000200
4461#define    NV20TCL_TX_FORMAT_FORMAT_A8_RECT						0x00000300
4462#define    NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4						0x00000400
4463#define    NV20TCL_TX_FORMAT_FORMAT_R5G6B5						0x00000500
4464#define    NV20TCL_TX_FORMAT_FORMAT_A8R8G8B8						0x00000600
4465#define    NV20TCL_TX_FORMAT_FORMAT_X8R8G8B8						0x00000700
4466#define    NV20TCL_TX_FORMAT_FORMAT_INDEX8						0x00000b00
4467#define    NV20TCL_TX_FORMAT_FORMAT_DXT1						0x00000c00
4468#define    NV20TCL_TX_FORMAT_FORMAT_DXT3						0x00000e00
4469#define    NV20TCL_TX_FORMAT_FORMAT_DXT5						0x00000f00
4470#define    NV20TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT					0x00001000
4471#define    NV20TCL_TX_FORMAT_FORMAT_R5G6B5_RECT						0x00001100
4472#define    NV20TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT					0x00001200
4473#define    NV20TCL_TX_FORMAT_FORMAT_L8_RECT						0x00001300
4474#define    NV20TCL_TX_FORMAT_FORMAT_A8L8						0x00001a00
4475#define    NV20TCL_TX_FORMAT_FORMAT_A8_RECT2						0x00001b00
4476#define    NV20TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT					0x00001d00
4477#define    NV20TCL_TX_FORMAT_FORMAT_R8G8B8_RECT						0x00001e00
4478#define    NV20TCL_TX_FORMAT_FORMAT_L8A8_RECT						0x00002000
4479#define    NV20TCL_TX_FORMAT_FORMAT_DSDT						0x00002800
4480#define    NV20TCL_TX_FORMAT_FORMAT_A16							0x00003200
4481#define    NV20TCL_TX_FORMAT_FORMAT_HILO16						0x00003300
4482#define    NV20TCL_TX_FORMAT_FORMAT_A16_RECT						0x00003500
4483#define    NV20TCL_TX_FORMAT_FORMAT_HILO16_RECT						0x00003600
4484#define    NV20TCL_TX_FORMAT_FORMAT_HILO8						0x00004400
4485#define    NV20TCL_TX_FORMAT_FORMAT_SIGNED_HILO8					0x00004500
4486#define    NV20TCL_TX_FORMAT_FORMAT_HILO8_RECT						0x00004600
4487#define    NV20TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT					0x00004700
4488#define    NV20TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV					0x00004a00
4489#define    NV20TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV					0x00004b00
4490#define    NV20TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV					0x00004c00
4491#define   NV20TCL_TX_FORMAT_MIPMAP							(1 << 19)
4492#define   NV20TCL_TX_FORMAT_BASE_SIZE_U_SHIFT						20
4493#define   NV20TCL_TX_FORMAT_BASE_SIZE_U_MASK						0x00f00000
4494#define   NV20TCL_TX_FORMAT_BASE_SIZE_V_SHIFT						24
4495#define   NV20TCL_TX_FORMAT_BASE_SIZE_V_MASK						0x0f000000
4496#define   NV20TCL_TX_FORMAT_BASE_SIZE_W_SHIFT						28
4497#define   NV20TCL_TX_FORMAT_BASE_SIZE_W_MASK						0xf0000000
4498#define  NV20TCL_TX_WRAP(x)								(0x00001b08+((x)*64))
4499#define  NV20TCL_TX_WRAP__SIZE								0x00000004
4500#define   NV20TCL_TX_WRAP_S_SHIFT							0
4501#define   NV20TCL_TX_WRAP_S_MASK							0x000000ff
4502#define    NV20TCL_TX_WRAP_S_REPEAT							0x00000001
4503#define    NV20TCL_TX_WRAP_S_MIRRORED_REPEAT						0x00000002
4504#define    NV20TCL_TX_WRAP_S_CLAMP_TO_EDGE						0x00000003
4505#define    NV20TCL_TX_WRAP_S_CLAMP_TO_BORDER						0x00000004
4506#define    NV20TCL_TX_WRAP_S_CLAMP							0x00000005
4507#define   NV20TCL_TX_WRAP_T_SHIFT							8
4508#define   NV20TCL_TX_WRAP_T_MASK							0x00000f00
4509#define    NV20TCL_TX_WRAP_T_REPEAT							0x00000100
4510#define    NV20TCL_TX_WRAP_T_MIRRORED_REPEAT						0x00000200
4511#define    NV20TCL_TX_WRAP_T_CLAMP_TO_EDGE						0x00000300
4512#define    NV20TCL_TX_WRAP_T_CLAMP_TO_BORDER						0x00000400
4513#define    NV20TCL_TX_WRAP_T_CLAMP							0x00000500
4514#define   NV20TCL_TX_WRAP_R_SHIFT							16
4515#define   NV20TCL_TX_WRAP_R_MASK							0x000f0000
4516#define    NV20TCL_TX_WRAP_R_REPEAT							0x00010000
4517#define    NV20TCL_TX_WRAP_R_MIRRORED_REPEAT						0x00020000
4518#define    NV20TCL_TX_WRAP_R_CLAMP_TO_EDGE						0x00030000
4519#define    NV20TCL_TX_WRAP_R_CLAMP_TO_BORDER						0x00040000
4520#define    NV20TCL_TX_WRAP_R_CLAMP							0x00050000
4521#define  NV20TCL_TX_ENABLE(x)								(0x00001b0c+((x)*64))
4522#define  NV20TCL_TX_ENABLE__SIZE							0x00000004
4523#define   NV20TCL_TX_ENABLE_ANISO_SHIFT							4
4524#define   NV20TCL_TX_ENABLE_ANISO_MASK							0x00000030
4525#define    NV20TCL_TX_ENABLE_ANISO_NONE							0x00000000
4526#define    NV20TCL_TX_ENABLE_ANISO_2X							0x00000010
4527#define    NV20TCL_TX_ENABLE_ANISO_4X							0x00000020
4528#define    NV20TCL_TX_ENABLE_ANISO_8X							0x00000030
4529#define   NV20TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT					14
4530#define   NV20TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK						0x0003c000
4531#define   NV20TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT					26
4532#define   NV20TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK						0x3c000000
4533#define   NV20TCL_TX_ENABLE_ENABLE							(1 << 30)
4534#define  NV20TCL_TX_SWIZZLE(x)								(0x00001b10+((x)*64))
4535#define  NV20TCL_TX_SWIZZLE__SIZE							0x00000004
4536#define   NV20TCL_TX_SWIZZLE_RECT_PITCH_SHIFT						16
4537#define   NV20TCL_TX_SWIZZLE_RECT_PITCH_MASK						0xffff0000
4538#define  NV20TCL_TX_FILTER(x)								(0x00001b14+((x)*64))
4539#define  NV20TCL_TX_FILTER__SIZE							0x00000004
4540#define   NV20TCL_TX_FILTER_LOD_BIAS_SHIFT						8
4541#define   NV20TCL_TX_FILTER_LOD_BIAS_MASK						0x00000f00
4542#define   NV20TCL_TX_FILTER_MINIFY_SHIFT						16
4543#define   NV20TCL_TX_FILTER_MINIFY_MASK							0x000f0000
4544#define    NV20TCL_TX_FILTER_MINIFY_NEAREST						0x00010000
4545#define    NV20TCL_TX_FILTER_MINIFY_LINEAR						0x00020000
4546#define    NV20TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST				0x00030000
4547#define    NV20TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST				0x00040000
4548#define    NV20TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR				0x00050000
4549#define    NV20TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR				0x00060000
4550#define   NV20TCL_TX_FILTER_MAGNIFY_SHIFT						24
4551#define   NV20TCL_TX_FILTER_MAGNIFY_MASK						0x0f000000
4552#define    NV20TCL_TX_FILTER_MAGNIFY_NEAREST						0x01000000
4553#define    NV20TCL_TX_FILTER_MAGNIFY_LINEAR						0x02000000
4554#define  NV20TCL_TX_NPOT_SIZE(x)							(0x00001b1c+((x)*64))
4555#define  NV20TCL_TX_NPOT_SIZE__SIZE							0x00000004
4556#define   NV20TCL_TX_NPOT_SIZE_H_SHIFT							0
4557#define   NV20TCL_TX_NPOT_SIZE_H_MASK							0x0000ffff
4558#define   NV20TCL_TX_NPOT_SIZE_W_SHIFT							16
4559#define   NV20TCL_TX_NPOT_SIZE_W_MASK							0xffff0000
4560#define  NV20TCL_TX_PALETTE_OFFSET(x)							(0x00001b20+((x)*64))
4561#define  NV20TCL_TX_PALETTE_OFFSET__SIZE						0x00000004
4562#define  NV20TCL_TX_BORDER_COLOR(x)							(0x00001b24+((x)*64))
4563#define  NV20TCL_TX_BORDER_COLOR__SIZE							0x00000004
4564#define   NV20TCL_TX_BORDER_COLOR_B_SHIFT						0
4565#define   NV20TCL_TX_BORDER_COLOR_B_MASK						0x000000ff
4566#define   NV20TCL_TX_BORDER_COLOR_G_SHIFT						8
4567#define   NV20TCL_TX_BORDER_COLOR_G_MASK						0x0000ff00
4568#define   NV20TCL_TX_BORDER_COLOR_R_SHIFT						16
4569#define   NV20TCL_TX_BORDER_COLOR_R_MASK						0x00ff0000
4570#define   NV20TCL_TX_BORDER_COLOR_A_SHIFT						24
4571#define   NV20TCL_TX_BORDER_COLOR_A_MASK						0xff000000
4572#define  NV20TCL_TX_SHADER_OFFSET_MATRIX00(x)						(0x00001b28+((x)*64))
4573#define  NV20TCL_TX_SHADER_OFFSET_MATRIX00__SIZE					0x00000004
4574#define  NV20TCL_TX_SHADER_OFFSET_MATRIX01(x)						(0x00001b2c+((x)*64))
4575#define  NV20TCL_TX_SHADER_OFFSET_MATRIX01__SIZE					0x00000004
4576#define  NV20TCL_TX_SHADER_OFFSET_MATRIX11(x)						(0x00001b30+((x)*64))
4577#define  NV20TCL_TX_SHADER_OFFSET_MATRIX11__SIZE					0x00000004
4578#define  NV20TCL_TX_SHADER_OFFSET_MATRIX10(x)						(0x00001b34+((x)*64))
4579#define  NV20TCL_TX_SHADER_OFFSET_MATRIX10__SIZE					0x00000004
4580#define  NV20TCL_DEPTH_UNK17D8								0x00001d78
4581#define   NV20TCL_DEPTH_UNK17D8_CLAMP_SHIFT						4
4582#define   NV20TCL_DEPTH_UNK17D8_CLAMP_MASK						0x000000f0
4583#define  NV20TCL_MULTISAMPLE_CONTROL							0x00001d7c
4584#define  NV20TCL_CLEAR_DEPTH_VALUE							0x00001d8c
4585#define  NV20TCL_CLEAR_VALUE								0x00001d90
4586#define  NV20TCL_CLEAR_BUFFERS								0x00001d94
4587#define   NV20TCL_CLEAR_BUFFERS_COLOR_A							(1 <<  7)
4588#define   NV20TCL_CLEAR_BUFFERS_COLOR_B							(1 <<  6)
4589#define   NV20TCL_CLEAR_BUFFERS_COLOR_G							(1 <<  5)
4590#define   NV20TCL_CLEAR_BUFFERS_COLOR_R							(1 <<  4)
4591#define   NV20TCL_CLEAR_BUFFERS_STENCIL							(1 <<  1)
4592#define   NV20TCL_CLEAR_BUFFERS_DEPTH							(1 <<  0)
4593#define  NV20TCL_RC_COLOR0								0x00001e20
4594#define   NV20TCL_RC_COLOR0_B_SHIFT							0
4595#define   NV20TCL_RC_COLOR0_B_MASK							0x000000ff
4596#define   NV20TCL_RC_COLOR0_G_SHIFT							8
4597#define   NV20TCL_RC_COLOR0_G_MASK							0x0000ff00
4598#define   NV20TCL_RC_COLOR0_R_SHIFT							16
4599#define   NV20TCL_RC_COLOR0_R_MASK							0x00ff0000
4600#define   NV20TCL_RC_COLOR0_A_SHIFT							24
4601#define   NV20TCL_RC_COLOR0_A_MASK							0xff000000
4602#define  NV20TCL_RC_COLOR1								0x00001e24
4603#define   NV20TCL_RC_COLOR1_B_SHIFT							0
4604#define   NV20TCL_RC_COLOR1_B_MASK							0x000000ff
4605#define   NV20TCL_RC_COLOR1_G_SHIFT							8
4606#define   NV20TCL_RC_COLOR1_G_MASK							0x0000ff00
4607#define   NV20TCL_RC_COLOR1_R_SHIFT							16
4608#define   NV20TCL_RC_COLOR1_R_MASK							0x00ff0000
4609#define   NV20TCL_RC_COLOR1_A_SHIFT							24
4610#define   NV20TCL_RC_COLOR1_A_MASK							0xff000000
4611#define  NV20TCL_BACK_MATERIAL_SHININESS(x)						(0x00001e28+((x)*4))
4612#define  NV20TCL_BACK_MATERIAL_SHININESS__SIZE						0x00000006
4613#define  NV20TCL_RC_OUT_RGB(x)								(0x00001e40+((x)*4))
4614#define  NV20TCL_RC_OUT_RGB__SIZE							0x00000008
4615#define   NV20TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT						0
4616#define   NV20TCL_RC_OUT_RGB_CD_OUTPUT_MASK						0x0000000f
4617#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_ZERO						0x00000000
4618#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0_NV				0x00000001
4619#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1_NV				0x00000002
4620#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_FOG						0x00000003
4621#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR_NV				0x00000004
4622#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR_NV				0x00000005
4623#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0_ARB					0x00000008
4624#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1_ARB					0x00000009
4625#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_NV					0x0000000c
4626#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1_NV					0x0000000d
4627#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
4628#define    NV20TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F_NV					0x0000000f
4629#define   NV20TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT						4
4630#define   NV20TCL_RC_OUT_RGB_AB_OUTPUT_MASK						0x000000f0
4631#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_ZERO						0x00000000
4632#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0_NV				0x00000010
4633#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1_NV				0x00000020
4634#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_FOG						0x00000030
4635#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR_NV				0x00000040
4636#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR_NV				0x00000050
4637#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0_ARB					0x00000080
4638#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1_ARB					0x00000090
4639#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_NV					0x000000c0
4640#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV					0x000000d0
4641#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000000e0
4642#define    NV20TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV					0x000000f0
4643#define   NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT						8
4644#define   NV20TCL_RC_OUT_RGB_SUM_OUTPUT_MASK						0x00000f00
4645#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO						0x00000000
4646#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0_NV				0x00000100
4647#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1_NV				0x00000200
4648#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_FOG						0x00000300
4649#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR_NV				0x00000400
4650#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR_NV				0x00000500
4651#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0_ARB					0x00000800
4652#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1_ARB					0x00000900
4653#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_NV					0x00000c00
4654#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV					0x00000d00
4655#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
4656#define    NV20TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV					0x00000f00
4657#define   NV20TCL_RC_OUT_RGB_CD_DOT_PRODUCT						(1 << 12)
4658#define   NV20TCL_RC_OUT_RGB_AB_DOT_PRODUCT						(1 << 13)
4659#define   NV20TCL_RC_OUT_RGB_MUX_SUM							(1 << 14)
4660#define   NV20TCL_RC_OUT_RGB_BIAS							(1 << 15)
4661#define    NV20TCL_RC_OUT_RGB_BIAS_NONE							0x00000000
4662#define    NV20TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV				0x00008000
4663#define   NV20TCL_RC_OUT_RGB_SCALE_SHIFT						17
4664#define   NV20TCL_RC_OUT_RGB_SCALE_MASK							0x00000000
4665#define    NV20TCL_RC_OUT_RGB_SCALE_NONE						0x00000000
4666#define    NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO_NV					0x00020000
4667#define    NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR_NV					0x00040000
4668#define    NV20TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF_NV				0x00060000
4669#define  NV20TCL_RC_ENABLE								0x00001e60
4670#define   NV20TCL_RC_ENABLE_NUM_COMBINERS_SHIFT						0
4671#define   NV20TCL_RC_ENABLE_NUM_COMBINERS_MASK						0x0000000f
4672#define  NV20TCL_TX_RCOMP								0x00001e6c
4673#define   NV20TCL_TX_RCOMP_NEVER							0x00000000
4674#define   NV20TCL_TX_RCOMP_GREATER							0x00000001
4675#define   NV20TCL_TX_RCOMP_EQUAL							0x00000002
4676#define   NV20TCL_TX_RCOMP_GEQUAL							0x00000003
4677#define   NV20TCL_TX_RCOMP_LESS								0x00000004
4678#define   NV20TCL_TX_RCOMP_NOTEQUAL							0x00000005
4679#define   NV20TCL_TX_RCOMP_LEQUAL							0x00000006
4680#define   NV20TCL_TX_RCOMP_ALWAYS							0x00000007
4681#define  NV20TCL_TX_SHADER_OP								0x00001e70
4682#define   NV20TCL_TX_SHADER_OP_TX0_SHIFT						0
4683#define   NV20TCL_TX_SHADER_OP_TX0_MASK							0x0000001f
4684#define    NV20TCL_TX_SHADER_OP_TX0_NONE						0x00000000
4685#define    NV20TCL_TX_SHADER_OP_TX0_TEXTURE_2D						0x00000001
4686#define    NV20TCL_TX_SHADER_OP_TX0_PASS_THROUGH					0x00000004
4687#define    NV20TCL_TX_SHADER_OP_TX0_CULL_FRAGMENT					0x00000005
4688#define    NV20TCL_TX_SHADER_OP_TX0_OFFSET_TEXTURE_2D					0x00000006
4689#define    NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT_TEXTURE_2D				0x00000009
4690#define    NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT_DEPTH_REPLACE				0x0000000a
4691#define    NV20TCL_TX_SHADER_OP_TX0_DEPENDANT_AR_TEXTURE_2D				0x0000000f
4692#define    NV20TCL_TX_SHADER_OP_TX0_DEPENDANT_GB_TEXTURE_2D				0x00000010
4693#define    NV20TCL_TX_SHADER_OP_TX0_DOT_PRODUCT						0x00000011
4694#define   NV20TCL_TX_SHADER_OP_TX1_SHIFT						5
4695#define   NV20TCL_TX_SHADER_OP_TX1_MASK							0x000003e0
4696#define    NV20TCL_TX_SHADER_OP_TX1_NONE						0x00000000
4697#define    NV20TCL_TX_SHADER_OP_TX1_TEXTURE_2D						0x00000020
4698#define    NV20TCL_TX_SHADER_OP_TX1_PASS_THROUGH					0x00000080
4699#define    NV20TCL_TX_SHADER_OP_TX1_CULL_FRAGMENT					0x000000a0
4700#define    NV20TCL_TX_SHADER_OP_TX1_OFFSET_TEXTURE_2D					0x000000c0
4701#define    NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT_TEXTURE_2D				0x00000120
4702#define    NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT_DEPTH_REPLACE				0x00000140
4703#define    NV20TCL_TX_SHADER_OP_TX1_DEPENDANT_AR_TEXTURE_2D				0x000001e0
4704#define    NV20TCL_TX_SHADER_OP_TX1_DEPENDANT_GB_TEXTURE_2D				0x00000200
4705#define    NV20TCL_TX_SHADER_OP_TX1_DOT_PRODUCT						0x00000220
4706#define   NV20TCL_TX_SHADER_OP_TX2_SHIFT						10
4707#define   NV20TCL_TX_SHADER_OP_TX2_MASK							0x00007c00
4708#define    NV20TCL_TX_SHADER_OP_TX2_NONE						0x00000000
4709#define    NV20TCL_TX_SHADER_OP_TX2_TEXTURE_2D						0x00000400
4710#define    NV20TCL_TX_SHADER_OP_TX2_PASS_THROUGH					0x00001000
4711#define    NV20TCL_TX_SHADER_OP_TX2_CULL_FRAGMENT					0x00001400
4712#define    NV20TCL_TX_SHADER_OP_TX2_OFFSET_TEXTURE_2D					0x00001800
4713#define    NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT_TEXTURE_2D				0x00002400
4714#define    NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT_DEPTH_REPLACE				0x00002800
4715#define    NV20TCL_TX_SHADER_OP_TX2_DEPENDANT_AR_TEXTURE_2D				0x00003c00
4716#define    NV20TCL_TX_SHADER_OP_TX2_DEPENDANT_GB_TEXTURE_2D				0x00004000
4717#define    NV20TCL_TX_SHADER_OP_TX2_DOT_PRODUCT						0x00004400
4718#define   NV20TCL_TX_SHADER_OP_TX3_SHIFT						15
4719#define   NV20TCL_TX_SHADER_OP_TX3_MASK							0x000f8000
4720#define    NV20TCL_TX_SHADER_OP_TX3_NONE						0x00000000
4721#define    NV20TCL_TX_SHADER_OP_TX3_TEXTURE_2D						0x00008000
4722#define    NV20TCL_TX_SHADER_OP_TX3_PASS_THROUGH					0x00020000
4723#define    NV20TCL_TX_SHADER_OP_TX3_CULL_FRAGMENT					0x00028000
4724#define    NV20TCL_TX_SHADER_OP_TX3_OFFSET_TEXTURE_2D					0x00030000
4725#define    NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT_TEXTURE_2D				0x00048000
4726#define    NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT_DEPTH_REPLACE				0x00050000
4727#define    NV20TCL_TX_SHADER_OP_TX3_DEPENDANT_AR_TEXTURE_2D				0x00078000
4728#define    NV20TCL_TX_SHADER_OP_TX3_DEPENDANT_GB_TEXTURE_2D				0x00080000
4729#define    NV20TCL_TX_SHADER_OP_TX3_DOT_PRODUCT						0x00088000
4730#define  NV20TCL_TX_SHADER_DOTMAPPING							0x00001e74
4731#define   NV20TCL_TX_SHADER_DOTMAPPING_TX0_SHIFT					0
4732#define   NV20TCL_TX_SHADER_DOTMAPPING_TX0_MASK						0x0000000f
4733#define   NV20TCL_TX_SHADER_DOTMAPPING_TX1_SHIFT					4
4734#define   NV20TCL_TX_SHADER_DOTMAPPING_TX1_MASK						0x000000f0
4735#define   NV20TCL_TX_SHADER_DOTMAPPING_TX2_SHIFT					8
4736#define   NV20TCL_TX_SHADER_DOTMAPPING_TX2_MASK						0x00000f00
4737#define   NV20TCL_TX_SHADER_DOTMAPPING_TX3_SHIFT					12
4738#define   NV20TCL_TX_SHADER_DOTMAPPING_TX3_MASK						0x0000f000
4739#define  NV20TCL_TX_SHADER_PREVIOUS							0x00001e78
4740#define   NV20TCL_TX_SHADER_PREVIOUS_TX0_SHIFT						8
4741#define   NV20TCL_TX_SHADER_PREVIOUS_TX0_MASK						0x00000f00
4742#define   NV20TCL_TX_SHADER_PREVIOUS_TX1_SHIFT						12
4743#define   NV20TCL_TX_SHADER_PREVIOUS_TX1_MASK						0x0000f000
4744#define   NV20TCL_TX_SHADER_PREVIOUS_TX2_SHIFT						16
4745#define   NV20TCL_TX_SHADER_PREVIOUS_TX2_MASK						0x00030000
4746#define   NV20TCL_TX_SHADER_PREVIOUS_TX3_SHIFT						20
4747#define   NV20TCL_TX_SHADER_PREVIOUS_TX3_MASK						0x00300000
4748#define  NV20TCL_ENGINE									0x00001e94
4749#define   NV20TCL_ENGINE_VP								(1 <<  1)
4750#define   NV20TCL_ENGINE_FIXED								(1 <<  2)
4751#define  NV20TCL_VP_UPLOAD_FROM_ID							0x00001e9c
4752#define  NV20TCL_VP_START_FROM_ID							0x00001ea0
4753#define  NV20TCL_VP_UPLOAD_CONST_ID							0x00001ea4
4754#define  NV20TCL_VIEWPORT_TRANSLATE_X							0x00001f00
4755#define  NV20TCL_VIEWPORT_TRANSLATE_Y							0x00001f04
4756#define  NV20TCL_VIEWPORT_TRANSLATE_Z							0x00001f08
4757#define  NV20TCL_VIEWPORT_TRANSLATE_W							0x00001f0c
4758
4759
4760#define NV17TCL										0x00000099
4761
4762#define  NV17TCL_DMA_IN_MEMORY4								0x000001ac
4763#define  NV17TCL_DMA_IN_MEMORY5								0x000001b0
4764#define  NV17TCL_COLOR_MASK_ENABLE							0x000002bc
4765#define  NV17TCL_LMA_DEPTH_BUFFER_PITCH							0x00000d5c
4766#define  NV17TCL_LMA_DEPTH_BUFFER_OFFSET						0x00000d60
4767#define  NV17TCL_LMA_DEPTH_FILL_VALUE							0x00000d68
4768#define  NV17TCL_LMA_DEPTH_BUFFER_CLEAR							0x00000d6c
4769#define  NV17TCL_LMA_DEPTH_ENABLE							0x00001658
4770
4771
4772#define NV20_SWIZZLED_SURFACE								0x0000009e
4773
4774
4775
4776#define NV12_IMAGE_BLIT									0x0000009f
4777
4778
4779
4780#define NV30_CONTEXT_SURFACES_2D							0x00000362
4781
4782
4783
4784#define NV30_STRETCHED_IMAGE_FROM_CPU							0x00000366
4785
4786
4787
4788#define NV30_TEXTURE_FROM_CPU								0x0000037b
4789
4790
4791
4792#define NV30_SCALED_IMAGE_FROM_MEMORY							0x00000389
4793
4794
4795
4796#define NV30_IMAGE_FROM_CPU								0x0000038a
4797
4798
4799
4800#define NV30TCL										0x00000397
4801
4802
4803
4804#define NV30_SWIZZLED_SURFACE								0x0000039e
4805
4806
4807
4808#define NV35TCL										0x00000497
4809
4810
4811
4812#define NV25TCL										0x00000597
4813
4814#define  NV25TCL_DMA_IN_MEMORY4								0x0000019c
4815#define  NV25TCL_DMA_IN_MEMORY5								0x000001a0
4816#define  NV25TCL_DMA_IN_MEMORY8								0x000001ac
4817#define  NV25TCL_DMA_IN_MEMORY9								0x000001b0
4818
4819
4820#define NV34TCL										0x00000697
4821
4822#define  NV34TCL_NOP									0x00000100
4823#define  NV34TCL_NOTIFY									0x00000104
4824#define  NV34TCL_DMA_NOTIFY								0x00000180
4825#define  NV34TCL_DMA_TEXTURE0								0x00000184
4826#define  NV34TCL_DMA_TEXTURE1								0x00000188
4827#define  NV34TCL_DMA_COLOR1								0x0000018c
4828#define  NV34TCL_DMA_COLOR0								0x00000194
4829#define  NV34TCL_DMA_ZETA								0x00000198
4830#define  NV34TCL_DMA_VTXBUF0								0x0000019c
4831#define  NV34TCL_DMA_VTXBUF1								0x000001a0
4832#define  NV34TCL_DMA_FENCE								0x000001a4
4833#define  NV34TCL_DMA_QUERY								0x000001a8
4834#define  NV34TCL_DMA_IN_MEMORY7								0x000001ac
4835#define  NV34TCL_DMA_IN_MEMORY8								0x000001b0
4836#define  NV34TCL_RT_HORIZ								0x00000200
4837#define   NV34TCL_RT_HORIZ_X_SHIFT							0
4838#define   NV34TCL_RT_HORIZ_X_MASK							0x0000ffff
4839#define   NV34TCL_RT_HORIZ_W_SHIFT							16
4840#define   NV34TCL_RT_HORIZ_W_MASK							0xffff0000
4841#define  NV34TCL_RT_VERT								0x00000204
4842#define   NV34TCL_RT_VERT_Y_SHIFT							0
4843#define   NV34TCL_RT_VERT_Y_MASK							0x0000ffff
4844#define   NV34TCL_RT_VERT_H_SHIFT							16
4845#define   NV34TCL_RT_VERT_H_MASK							0xffff0000
4846#define  NV34TCL_RT_FORMAT								0x00000208
4847#define   NV34TCL_RT_FORMAT_TYPE_SHIFT							8
4848#define   NV34TCL_RT_FORMAT_TYPE_MASK							0x00000f00
4849#define    NV34TCL_RT_FORMAT_TYPE_LINEAR						0x00000100
4850#define    NV34TCL_RT_FORMAT_TYPE_SWIZZLED						0x00000200
4851#define   NV34TCL_RT_FORMAT_ZETA_SHIFT							5
4852#define   NV34TCL_RT_FORMAT_ZETA_MASK							0x000000e0
4853#define    NV34TCL_RT_FORMAT_ZETA_Z16							0x00000020
4854#define    NV34TCL_RT_FORMAT_ZETA_Z24S8							0x00000040
4855#define   NV34TCL_RT_FORMAT_COLOR_SHIFT							0
4856#define   NV34TCL_RT_FORMAT_COLOR_MASK							0x0000001f
4857#define    NV34TCL_RT_FORMAT_COLOR_R5G6B5						0x00000003
4858#define    NV34TCL_RT_FORMAT_COLOR_X8R8G8B8						0x00000005
4859#define    NV34TCL_RT_FORMAT_COLOR_A8R8G8B8						0x00000008
4860#define    NV34TCL_RT_FORMAT_COLOR_B8							0x00000009
4861#define    NV34TCL_RT_FORMAT_COLOR_UNKNOWN						0x0000000d
4862#define    NV34TCL_RT_FORMAT_COLOR_X8B8G8R8						0x0000000f
4863#define    NV34TCL_RT_FORMAT_COLOR_A8B8G8R8						0x00000010
4864#define  NV34TCL_COLOR0_PITCH								0x0000020c
4865#define   NV34TCL_COLOR0_PITCH_COLOR0_SHIFT						0
4866#define   NV34TCL_COLOR0_PITCH_COLOR0_MASK						0x0000ffff
4867#define   NV34TCL_COLOR0_PITCH_ZETA_SHIFT						16
4868#define   NV34TCL_COLOR0_PITCH_ZETA_MASK						0xffff0000
4869#define  NV34TCL_COLOR0_OFFSET								0x00000210
4870#define  NV34TCL_ZETA_OFFSET								0x00000214
4871#define  NV34TCL_COLOR1_OFFSET								0x00000218
4872#define  NV34TCL_COLOR1_PITCH								0x0000021c
4873#define  NV34TCL_RT_ENABLE								0x00000220
4874#define   NV34TCL_RT_ENABLE_MRT								(1 <<  4)
4875#define   NV34TCL_RT_ENABLE_COLOR1							(1 <<  1)
4876#define   NV34TCL_RT_ENABLE_COLOR0							(1 <<  0)
4877#define  NV34TCL_LMA_DEPTH_PITCH							0x0000022c
4878#define  NV34TCL_LMA_DEPTH_OFFSET							0x00000230
4879#define  NV34TCL_TX_UNITS_ENABLE							0x0000023c
4880#define   NV34TCL_TX_UNITS_ENABLE_TX0							(1 <<  0)
4881#define   NV34TCL_TX_UNITS_ENABLE_TX1							(1 <<  1)
4882#define   NV34TCL_TX_UNITS_ENABLE_TX2							(1 <<  2)
4883#define   NV34TCL_TX_UNITS_ENABLE_TX3							(1 <<  3)
4884#define   NV34TCL_TX_UNITS_ENABLE_TX4							(1 <<  4)
4885#define   NV34TCL_TX_UNITS_ENABLE_TX5							(1 <<  5)
4886#define   NV34TCL_TX_UNITS_ENABLE_TX6							(1 <<  6)
4887#define   NV34TCL_TX_UNITS_ENABLE_TX7							(1 <<  7)
4888#define  NV34TCL_TX_MATRIX_ENABLE(x)							(0x00000240+((x)*4))
4889#define  NV34TCL_TX_MATRIX_ENABLE__SIZE							0x00000008
4890#define  NV34TCL_VIEWPORT_TX_ORIGIN							0x000002b8
4891#define   NV34TCL_VIEWPORT_TX_ORIGIN_X_SHIFT						0
4892#define   NV34TCL_VIEWPORT_TX_ORIGIN_X_MASK						0x0000ffff
4893#define   NV34TCL_VIEWPORT_TX_ORIGIN_Y_SHIFT						16
4894#define   NV34TCL_VIEWPORT_TX_ORIGIN_Y_MASK						0xffff0000
4895#define  NV34TCL_VIEWPORT_CLIP_MODE							0x000002bc
4896#define  NV34TCL_VIEWPORT_CLIP_HORIZ(x)							(0x000002c0+((x)*8))
4897#define  NV34TCL_VIEWPORT_CLIP_HORIZ__SIZE						0x00000008
4898#define   NV34TCL_VIEWPORT_CLIP_HORIZ_L_SHIFT						0
4899#define   NV34TCL_VIEWPORT_CLIP_HORIZ_L_MASK						0x0000ffff
4900#define   NV34TCL_VIEWPORT_CLIP_HORIZ_R_SHIFT						16
4901#define   NV34TCL_VIEWPORT_CLIP_HORIZ_R_MASK						0xffff0000
4902#define  NV34TCL_VIEWPORT_CLIP_VERT(x)							(0x000002c4+((x)*8))
4903#define  NV34TCL_VIEWPORT_CLIP_VERT__SIZE						0x00000008
4904#define   NV34TCL_VIEWPORT_CLIP_VERT_T_SHIFT						0
4905#define   NV34TCL_VIEWPORT_CLIP_VERT_T_MASK						0x0000ffff
4906#define   NV34TCL_VIEWPORT_CLIP_VERT_D_SHIFT						16
4907#define   NV34TCL_VIEWPORT_CLIP_VERT_D_MASK						0xffff0000
4908#define  NV34TCL_DITHER_ENABLE								0x00000300
4909#define  NV34TCL_ALPHA_FUNC_ENABLE							0x00000304
4910#define  NV34TCL_ALPHA_FUNC_FUNC							0x00000308
4911#define   NV34TCL_ALPHA_FUNC_FUNC_NEVER							0x00000200
4912#define   NV34TCL_ALPHA_FUNC_FUNC_LESS							0x00000201
4913#define   NV34TCL_ALPHA_FUNC_FUNC_EQUAL							0x00000202
4914#define   NV34TCL_ALPHA_FUNC_FUNC_LEQUAL						0x00000203
4915#define   NV34TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
4916#define   NV34TCL_ALPHA_FUNC_FUNC_GREATER						0x00000204
4917#define   NV34TCL_ALPHA_FUNC_FUNC_NOTEQUAL						0x00000205
4918#define   NV34TCL_ALPHA_FUNC_FUNC_GEQUAL						0x00000206
4919#define   NV34TCL_ALPHA_FUNC_FUNC_ALWAYS						0x00000207
4920#define  NV34TCL_ALPHA_FUNC_REF								0x0000030c
4921#define  NV34TCL_BLEND_FUNC_ENABLE							0x00000310
4922#define  NV34TCL_BLEND_FUNC_SRC								0x00000314
4923#define   NV34TCL_BLEND_FUNC_SRC_RGB_SHIFT						0
4924#define   NV34TCL_BLEND_FUNC_SRC_RGB_MASK						0x0000ffff
4925#define    NV34TCL_BLEND_FUNC_SRC_RGB_ZERO						0x00000000
4926#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE						0x00000001
4927#define    NV34TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR						0x00000300
4928#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR				0x00000301
4929#define    NV34TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA						0x00000302
4930#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
4931#define    NV34TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA						0x00000304
4932#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA				0x00000305
4933#define    NV34TCL_BLEND_FUNC_SRC_RGB_DST_COLOR						0x00000306
4934#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR				0x00000307
4935#define    NV34TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE				0x00000308
4936#define    NV34TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR					0x00008001
4937#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
4938#define    NV34TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA					0x00008003
4939#define    NV34TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
4940#define   NV34TCL_BLEND_FUNC_SRC_ALPHA_SHIFT						16
4941#define   NV34TCL_BLEND_FUNC_SRC_ALPHA_MASK						0xffff0000
4942#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ZERO						0x00000000
4943#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE						0x00010000
4944#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR					0x03000000
4945#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR				0x03010000
4946#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA					0x03020000
4947#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA				0x03030000
4948#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA					0x03040000
4949#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA				0x03050000
4950#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR					0x03060000
4951#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR				0x03070000
4952#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE				0x03080000
4953#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR					0x80010000
4954#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR			0x80020000
4955#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA					0x80030000
4956#define    NV34TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA			0x80040000
4957#define  NV34TCL_BLEND_FUNC_DST								0x00000318
4958#define   NV34TCL_BLEND_FUNC_DST_RGB_SHIFT						0
4959#define   NV34TCL_BLEND_FUNC_DST_RGB_MASK						0x0000ffff
4960#define    NV34TCL_BLEND_FUNC_DST_RGB_ZERO						0x00000000
4961#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE						0x00000001
4962#define    NV34TCL_BLEND_FUNC_DST_RGB_SRC_COLOR						0x00000300
4963#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR				0x00000301
4964#define    NV34TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA						0x00000302
4965#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
4966#define    NV34TCL_BLEND_FUNC_DST_RGB_DST_ALPHA						0x00000304
4967#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA				0x00000305
4968#define    NV34TCL_BLEND_FUNC_DST_RGB_DST_COLOR						0x00000306
4969#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR				0x00000307
4970#define    NV34TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE				0x00000308
4971#define    NV34TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR					0x00008001
4972#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
4973#define    NV34TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA					0x00008003
4974#define    NV34TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
4975#define   NV34TCL_BLEND_FUNC_DST_ALPHA_SHIFT						16
4976#define   NV34TCL_BLEND_FUNC_DST_ALPHA_MASK						0xffff0000
4977#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ZERO						0x00000000
4978#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE						0x00010000
4979#define    NV34TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR					0x03000000
4980#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR				0x03010000
4981#define    NV34TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA					0x03020000
4982#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA				0x03030000
4983#define    NV34TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA					0x03040000
4984#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA				0x03050000
4985#define    NV34TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR					0x03060000
4986#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR				0x03070000
4987#define    NV34TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE				0x03080000
4988#define    NV34TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR					0x80010000
4989#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR			0x80020000
4990#define    NV34TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA					0x80030000
4991#define    NV34TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA			0x80040000
4992#define  NV34TCL_BLEND_COLOR								0x0000031c
4993#define   NV34TCL_BLEND_COLOR_B_SHIFT							0
4994#define   NV34TCL_BLEND_COLOR_B_MASK							0x000000ff
4995#define   NV34TCL_BLEND_COLOR_G_SHIFT							8
4996#define   NV34TCL_BLEND_COLOR_G_MASK							0x0000ff00
4997#define   NV34TCL_BLEND_COLOR_R_SHIFT							16
4998#define   NV34TCL_BLEND_COLOR_R_MASK							0x00ff0000
4999#define   NV34TCL_BLEND_COLOR_A_SHIFT							24
5000#define   NV34TCL_BLEND_COLOR_A_MASK							0xff000000
5001#define  NV34TCL_BLEND_EQUATION								0x00000320
5002#define   NV34TCL_BLEND_EQUATION_FUNC_ADD						0x00008006
5003#define   NV34TCL_BLEND_EQUATION_MIN							0x00008007
5004#define   NV34TCL_BLEND_EQUATION_MAX							0x00008008
5005#define   NV34TCL_BLEND_EQUATION_FUNC_SUBTRACT						0x0000800a
5006#define   NV34TCL_BLEND_EQUATION_FUNC_REVERSE_SUBTRACT					0x0000800b
5007#define  NV34TCL_COLOR_MASK								0x00000324
5008#define   NV34TCL_COLOR_MASK_B_SHIFT							0
5009#define   NV34TCL_COLOR_MASK_B_MASK							0x000000ff
5010#define   NV34TCL_COLOR_MASK_G_SHIFT							8
5011#define   NV34TCL_COLOR_MASK_G_MASK							0x0000ff00
5012#define   NV34TCL_COLOR_MASK_R_SHIFT							16
5013#define   NV34TCL_COLOR_MASK_R_MASK							0x00ff0000
5014#define   NV34TCL_COLOR_MASK_A_SHIFT							24
5015#define   NV34TCL_COLOR_MASK_A_MASK							0xff000000
5016#define  NV34TCL_STENCIL_BACK_ENABLE							0x00000328
5017#define  NV34TCL_STENCIL_BACK_MASK							0x0000032c
5018#define  NV34TCL_STENCIL_BACK_FUNC_FUNC							0x00000330
5019#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_NEVER						0x00000200
5020#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_LESS						0x00000201
5021#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_EQUAL						0x00000202
5022#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL						0x00000203
5023#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
5024#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
5025#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL					0x00000205
5026#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL						0x00000206
5027#define   NV34TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS						0x00000207
5028#define  NV34TCL_STENCIL_BACK_FUNC_REF							0x00000334
5029#define  NV34TCL_STENCIL_BACK_FUNC_MASK							0x00000338
5030#define  NV34TCL_STENCIL_BACK_OP_FAIL							0x0000033c
5031#define   NV34TCL_STENCIL_BACK_OP_FAIL_ZERO						0x00000000
5032#define   NV34TCL_STENCIL_BACK_OP_FAIL_INVERT						0x0000150a
5033#define   NV34TCL_STENCIL_BACK_OP_FAIL_KEEP						0x00001e00
5034#define   NV34TCL_STENCIL_BACK_OP_FAIL_REPLACE						0x00001e01
5035#define   NV34TCL_STENCIL_BACK_OP_FAIL_INCR						0x00001e02
5036#define   NV34TCL_STENCIL_BACK_OP_FAIL_DECR						0x00001e03
5037#define   NV34TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP					0x00008507
5038#define   NV34TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP					0x00008508
5039#define  NV34TCL_STENCIL_BACK_OP_ZFAIL							0x00000340
5040#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_ZERO						0x00000000
5041#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INVERT						0x0000150a
5042#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_KEEP						0x00001e00
5043#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_REPLACE						0x00001e01
5044#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INCR						0x00001e02
5045#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_DECR						0x00001e03
5046#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP					0x00008507
5047#define   NV34TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP					0x00008508
5048#define  NV34TCL_STENCIL_BACK_OP_ZPASS							0x00000344
5049#define   NV34TCL_STENCIL_BACK_OP_ZPASS_ZERO						0x00000000
5050#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INVERT						0x0000150a
5051#define   NV34TCL_STENCIL_BACK_OP_ZPASS_KEEP						0x00001e00
5052#define   NV34TCL_STENCIL_BACK_OP_ZPASS_REPLACE						0x00001e01
5053#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INCR						0x00001e02
5054#define   NV34TCL_STENCIL_BACK_OP_ZPASS_DECR						0x00001e03
5055#define   NV34TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP					0x00008507
5056#define   NV34TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP					0x00008508
5057#define  NV34TCL_STENCIL_FRONT_ENABLE							0x00000348
5058#define  NV34TCL_STENCIL_FRONT_MASK							0x0000034c
5059#define  NV34TCL_STENCIL_FRONT_FUNC_FUNC						0x00000350
5060#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_NEVER						0x00000200
5061#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_LESS						0x00000201
5062#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL						0x00000202
5063#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL					0x00000203
5064#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
5065#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
5066#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL					0x00000205
5067#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL					0x00000206
5068#define   NV34TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS					0x00000207
5069#define  NV34TCL_STENCIL_FRONT_FUNC_REF							0x00000354
5070#define  NV34TCL_STENCIL_FRONT_FUNC_MASK						0x00000358
5071#define  NV34TCL_STENCIL_FRONT_OP_FAIL							0x0000035c
5072#define   NV34TCL_STENCIL_FRONT_OP_FAIL_ZERO						0x00000000
5073#define   NV34TCL_STENCIL_FRONT_OP_FAIL_INVERT						0x0000150a
5074#define   NV34TCL_STENCIL_FRONT_OP_FAIL_KEEP						0x00001e00
5075#define   NV34TCL_STENCIL_FRONT_OP_FAIL_REPLACE						0x00001e01
5076#define   NV34TCL_STENCIL_FRONT_OP_FAIL_INCR						0x00001e02
5077#define   NV34TCL_STENCIL_FRONT_OP_FAIL_DECR						0x00001e03
5078#define   NV34TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP					0x00008507
5079#define   NV34TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP					0x00008508
5080#define  NV34TCL_STENCIL_FRONT_OP_ZFAIL							0x00000360
5081#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_ZERO						0x00000000
5082#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_INVERT						0x0000150a
5083#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_KEEP						0x00001e00
5084#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE					0x00001e01
5085#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_INCR						0x00001e02
5086#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_DECR						0x00001e03
5087#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP					0x00008507
5088#define   NV34TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP					0x00008508
5089#define  NV34TCL_STENCIL_FRONT_OP_ZPASS							0x00000364
5090#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_ZERO						0x00000000
5091#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_INVERT						0x0000150a
5092#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_KEEP						0x00001e00
5093#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_REPLACE					0x00001e01
5094#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_INCR						0x00001e02
5095#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_DECR						0x00001e03
5096#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP					0x00008507
5097#define   NV34TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP					0x00008508
5098#define  NV34TCL_SHADE_MODEL								0x00000368
5099#define   NV34TCL_SHADE_MODEL_FLAT							0x00001d00
5100#define   NV34TCL_SHADE_MODEL_SMOOTH							0x00001d01
5101#define  NV34TCL_FOG_ENABLE								0x0000036c
5102#define  NV34TCL_FOG_COLOR								0x00000370
5103#define   NV34TCL_FOG_COLOR_R_SHIFT							0
5104#define   NV34TCL_FOG_COLOR_R_MASK							0x000000ff
5105#define   NV34TCL_FOG_COLOR_G_SHIFT							8
5106#define   NV34TCL_FOG_COLOR_G_MASK							0x0000ff00
5107#define   NV34TCL_FOG_COLOR_B_SHIFT							16
5108#define   NV34TCL_FOG_COLOR_B_MASK							0x00ff0000
5109#define   NV34TCL_FOG_COLOR_A_SHIFT							24
5110#define   NV34TCL_FOG_COLOR_A_MASK							0xff000000
5111#define  NV34TCL_COLOR_LOGIC_OP_ENABLE							0x00000374
5112#define  NV34TCL_COLOR_LOGIC_OP_OP							0x00000378
5113#define   NV34TCL_COLOR_LOGIC_OP_OP_CLEAR						0x00001500
5114#define   NV34TCL_COLOR_LOGIC_OP_OP_AND							0x00001501
5115#define   NV34TCL_COLOR_LOGIC_OP_OP_AND_REVERSE						0x00001502
5116#define   NV34TCL_COLOR_LOGIC_OP_OP_COPY						0x00001503
5117#define   NV34TCL_COLOR_LOGIC_OP_OP_AND_INVERTED					0x00001504
5118#define   NV34TCL_COLOR_LOGIC_OP_OP_NOOP						0x00001505
5119#define   NV34TCL_COLOR_LOGIC_OP_OP_XOR							0x00001506
5120#define   NV34TCL_COLOR_LOGIC_OP_OP_OR							0x00001507
5121#define   NV34TCL_COLOR_LOGIC_OP_OP_NOR							0x00001508
5122#define   NV34TCL_COLOR_LOGIC_OP_OP_EQUIV						0x00001509
5123#define   NV34TCL_COLOR_LOGIC_OP_OP_INVERT						0x0000150a
5124#define   NV34TCL_COLOR_LOGIC_OP_OP_OR_REVERSE						0x0000150b
5125#define   NV34TCL_COLOR_LOGIC_OP_OP_COPY_INVERTED					0x0000150c
5126#define   NV34TCL_COLOR_LOGIC_OP_OP_OR_INVERTED						0x0000150d
5127#define   NV34TCL_COLOR_LOGIC_OP_OP_NAND						0x0000150e
5128#define   NV34TCL_COLOR_LOGIC_OP_OP_SET							0x0000150f
5129#define  NV34TCL_NORMALIZE_ENABLE							0x0000037c
5130#define  NV34TCL_COLOR_MATERIAL								0x00000390
5131#define   NV34TCL_COLOR_MATERIAL_FRONT_EMISSION_ENABLE					(1 <<  0)
5132#define   NV34TCL_COLOR_MATERIAL_FRONT_AMBIENT_ENABLE					(1 <<  2)
5133#define   NV34TCL_COLOR_MATERIAL_FRONT_DIFFUSE_ENABLE					(1 <<  4)
5134#define   NV34TCL_COLOR_MATERIAL_FRONT_SPECULAR_ENABLE					(1 <<  6)
5135#define   NV34TCL_COLOR_MATERIAL_BACK_EMISSION_ENABLE					(1 <<  8)
5136#define   NV34TCL_COLOR_MATERIAL_BACK_AMBIENT_ENABLE					(1 << 10)
5137#define   NV34TCL_COLOR_MATERIAL_BACK_DIFFUSE_ENABLE					(1 << 12)
5138#define   NV34TCL_COLOR_MATERIAL_BACK_SPECULAR_ENABLE					(1 << 14)
5139#define  NV34TCL_DEPTH_RANGE_NEAR							0x00000394
5140#define  NV34TCL_DEPTH_RANGE_FAR							0x00000398
5141#define  NV34TCL_COLOR_MATERIAL_FRONT_R							0x000003a0
5142#define  NV34TCL_COLOR_MATERIAL_FRONT_G							0x000003a4
5143#define  NV34TCL_COLOR_MATERIAL_FRONT_B							0x000003a8
5144#define  NV34TCL_COLOR_MATERIAL_FRONT_A							0x000003b4
5145#define  NV34TCL_LINE_WIDTH								0x000003b8
5146#define  NV34TCL_LINE_SMOOTH_ENABLE							0x000003bc
5147#define  NV34TCL_TX_GEN_S(x)								(0x00000400+((x)*16))
5148#define  NV34TCL_TX_GEN_S__SIZE								0x00000008
5149#define   NV34TCL_TX_GEN_S_FALSE							0x00000000
5150#define   NV34TCL_TX_GEN_S_EYE_LINEAR							0x00002400
5151#define   NV34TCL_TX_GEN_S_OBJECT_LINEAR						0x00002401
5152#define   NV34TCL_TX_GEN_S_SPHERE_MAP							0x00002402
5153#define   NV34TCL_TX_GEN_S_NORMAL_MAP							0x00008511
5154#define   NV34TCL_TX_GEN_S_REFLECTION_MAP						0x00008512
5155#define  NV34TCL_TX_GEN_T(x)								(0x00000404+((x)*16))
5156#define  NV34TCL_TX_GEN_T__SIZE								0x00000008
5157#define   NV34TCL_TX_GEN_T_FALSE							0x00000000
5158#define   NV34TCL_TX_GEN_T_EYE_LINEAR							0x00002400
5159#define   NV34TCL_TX_GEN_T_OBJECT_LINEAR						0x00002401
5160#define   NV34TCL_TX_GEN_T_SPHERE_MAP							0x00002402
5161#define   NV34TCL_TX_GEN_T_NORMAL_MAP							0x00008511
5162#define   NV34TCL_TX_GEN_T_REFLECTION_MAP						0x00008512
5163#define  NV34TCL_TX_GEN_R(x)								(0x00000408+((x)*16))
5164#define  NV34TCL_TX_GEN_R__SIZE								0x00000008
5165#define   NV34TCL_TX_GEN_R_FALSE							0x00000000
5166#define   NV34TCL_TX_GEN_R_EYE_LINEAR							0x00002400
5167#define   NV34TCL_TX_GEN_R_OBJECT_LINEAR						0x00002401
5168#define   NV34TCL_TX_GEN_R_SPHERE_MAP							0x00002402
5169#define   NV34TCL_TX_GEN_R_NORMAL_MAP							0x00008511
5170#define   NV34TCL_TX_GEN_R_REFLECTION_MAP						0x00008512
5171#define  NV34TCL_TX_GEN_Q(x)								(0x0000040c+((x)*16))
5172#define  NV34TCL_TX_GEN_Q__SIZE								0x00000008
5173#define   NV34TCL_TX_GEN_Q_FALSE							0x00000000
5174#define   NV34TCL_TX_GEN_Q_EYE_LINEAR							0x00002400
5175#define   NV34TCL_TX_GEN_Q_OBJECT_LINEAR						0x00002401
5176#define   NV34TCL_TX_GEN_Q_SPHERE_MAP							0x00002402
5177#define   NV34TCL_TX_GEN_Q_NORMAL_MAP							0x00008511
5178#define   NV34TCL_TX_GEN_Q_REFLECTION_MAP						0x00008512
5179#define  NV34TCL_MODELVIEW_MATRIX(x)							(0x00000480+((x)*4))
5180#define  NV34TCL_MODELVIEW_MATRIX__SIZE							0x00000010
5181#define  NV34TCL_INVERSE_MODELVIEW_MATRIX(x)						(0x00000580+((x)*4))
5182#define  NV34TCL_INVERSE_MODELVIEW_MATRIX__SIZE						0x0000000c
5183#define  NV34TCL_PROJECTION_MATRIX(x)							(0x00000680+((x)*4))
5184#define  NV34TCL_PROJECTION_MATRIX__SIZE						0x00000010
5185#define  NV34TCL_TX0_MATRIX(x)								(0x000006c0+((x)*4))
5186#define  NV34TCL_TX0_MATRIX__SIZE							0x00000010
5187#define  NV34TCL_TX1_MATRIX(x)								(0x00000700+((x)*4))
5188#define  NV34TCL_TX1_MATRIX__SIZE							0x00000010
5189#define  NV34TCL_TX2_MATRIX(x)								(0x00000740+((x)*4))
5190#define  NV34TCL_TX2_MATRIX__SIZE							0x00000010
5191#define  NV34TCL_TX3_MATRIX(x)								(0x00000780+((x)*4))
5192#define  NV34TCL_TX3_MATRIX__SIZE							0x00000010
5193#define  NV34TCL_TX4_MATRIX(x)								(0x000007c0+((x)*4))
5194#define  NV34TCL_TX4_MATRIX__SIZE							0x00000010
5195#define  NV34TCL_TX5_MATRIX(x)								(0x00000800+((x)*4))
5196#define  NV34TCL_TX5_MATRIX__SIZE							0x00000010
5197#define  NV34TCL_TX6_MATRIX(x)								(0x00000840+((x)*4))
5198#define  NV34TCL_TX6_MATRIX__SIZE							0x00000010
5199#define  NV34TCL_TX7_MATRIX(x)								(0x00000880+((x)*4))
5200#define  NV34TCL_TX7_MATRIX__SIZE							0x00000010
5201#define  NV34TCL_SCISSOR_HORIZ								0x000008c0
5202#define   NV34TCL_SCISSOR_HORIZ_X_SHIFT							0
5203#define   NV34TCL_SCISSOR_HORIZ_X_MASK							0x0000ffff
5204#define   NV34TCL_SCISSOR_HORIZ_W_SHIFT							16
5205#define   NV34TCL_SCISSOR_HORIZ_W_MASK							0xffff0000
5206#define  NV34TCL_SCISSOR_VERT								0x000008c4
5207#define   NV34TCL_SCISSOR_VERT_Y_SHIFT							0
5208#define   NV34TCL_SCISSOR_VERT_Y_MASK							0x0000ffff
5209#define   NV34TCL_SCISSOR_VERT_H_SHIFT							16
5210#define   NV34TCL_SCISSOR_VERT_H_MASK							0xffff0000
5211#define  NV34TCL_FOG_COORD_DIST								0x000008c8
5212#define   NV34TCL_FOG_COORD_DIST_COORD_FALSE						0x00000000
5213#define   NV34TCL_FOG_COORD_DIST_COORD_FRAGMENT_DEPTH_DISTANCE_EYE_RADIAL_NV		0x00000001
5214#define   NV34TCL_FOG_COORD_DIST_COORD_FRAGMENT_DEPTH_DISTANCE_EYE_PLANE_ABSOLUTE_NV	0x00000002
5215#define   NV34TCL_FOG_COORD_DIST_COORD_FOG						0x00000003
5216#define  NV34TCL_FOG_MODE								0x000008cc
5217#define   NV34TCL_FOG_MODE_EXP								0x00000800
5218#define   NV34TCL_FOG_MODE_EXP_2							0x00000802
5219#define   NV34TCL_FOG_MODE_EXP2								0x00000803
5220#define   NV34TCL_FOG_MODE_LINEAR							0x00000804
5221#define   NV34TCL_FOG_MODE_LINEAR_2							0x00002601
5222#define  NV34TCL_FOG_EQUATION_CONSTANT							0x000008d0
5223#define  NV34TCL_FOG_EQUATION_LINEAR							0x000008d4
5224#define  NV34TCL_FOG_EQUATION_QUADRATIC							0x000008d8
5225#define  NV34TCL_FP_ACTIVE_PROGRAM							0x000008e4
5226#define   NV34TCL_FP_ACTIVE_PROGRAM_DMA0						(1 <<  0)
5227#define   NV34TCL_FP_ACTIVE_PROGRAM_DMA1						(1 <<  1)
5228#define   NV34TCL_FP_ACTIVE_PROGRAM_OFFSET_SHIFT					2
5229#define   NV34TCL_FP_ACTIVE_PROGRAM_OFFSET_MASK						0xfffffffc
5230#define  NV34TCL_RC_COLOR0								0x000008ec
5231#define   NV34TCL_RC_COLOR0_B_SHIFT							0
5232#define   NV34TCL_RC_COLOR0_B_MASK							0x000000ff
5233#define   NV34TCL_RC_COLOR0_G_SHIFT							8
5234#define   NV34TCL_RC_COLOR0_G_MASK							0x0000ff00
5235#define   NV34TCL_RC_COLOR0_R_SHIFT							16
5236#define   NV34TCL_RC_COLOR0_R_MASK							0x00ff0000
5237#define   NV34TCL_RC_COLOR0_A_SHIFT							24
5238#define   NV34TCL_RC_COLOR0_A_MASK							0xff000000
5239#define  NV34TCL_RC_COLOR1								0x000008f0
5240#define   NV34TCL_RC_COLOR1_B_SHIFT							0
5241#define   NV34TCL_RC_COLOR1_B_MASK							0x000000ff
5242#define   NV34TCL_RC_COLOR1_G_SHIFT							8
5243#define   NV34TCL_RC_COLOR1_G_MASK							0x0000ff00
5244#define   NV34TCL_RC_COLOR1_R_SHIFT							16
5245#define   NV34TCL_RC_COLOR1_R_MASK							0x00ff0000
5246#define   NV34TCL_RC_COLOR1_A_SHIFT							24
5247#define   NV34TCL_RC_COLOR1_A_MASK							0xff000000
5248#define  NV34TCL_RC_FINAL0								0x000008f4
5249#define   NV34TCL_RC_FINAL0_D_INPUT_SHIFT						0
5250#define   NV34TCL_RC_FINAL0_D_INPUT_MASK						0x0000000f
5251#define    NV34TCL_RC_FINAL0_D_INPUT_ZERO						0x00000000
5252#define    NV34TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR0_NV					0x00000001
5253#define    NV34TCL_RC_FINAL0_D_INPUT_CONSTANT_COLOR1_NV					0x00000002
5254#define    NV34TCL_RC_FINAL0_D_INPUT_FOG						0x00000003
5255#define    NV34TCL_RC_FINAL0_D_INPUT_PRIMARY_COLOR_NV					0x00000004
5256#define    NV34TCL_RC_FINAL0_D_INPUT_SECONDARY_COLOR_NV					0x00000005
5257#define    NV34TCL_RC_FINAL0_D_INPUT_TEXTURE0_ARB					0x00000008
5258#define    NV34TCL_RC_FINAL0_D_INPUT_TEXTURE1_ARB					0x00000009
5259#define    NV34TCL_RC_FINAL0_D_INPUT_SPARE0_NV						0x0000000c
5260#define    NV34TCL_RC_FINAL0_D_INPUT_SPARE1_NV						0x0000000d
5261#define    NV34TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
5262#define    NV34TCL_RC_FINAL0_D_INPUT_E_TIMES_F_NV					0x0000000f
5263#define   NV34TCL_RC_FINAL0_D_COMPONENT_USAGE						(1 <<  4)
5264#define    NV34TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB					0x00000000
5265#define    NV34TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA					0x00000010
5266#define   NV34TCL_RC_FINAL0_D_MAPPING_SHIFT						5
5267#define   NV34TCL_RC_FINAL0_D_MAPPING_MASK						0x000000e0
5268#define    NV34TCL_RC_FINAL0_D_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5269#define    NV34TCL_RC_FINAL0_D_MAPPING_UNSIGNED_INVERT_NV				0x00000020
5270#define    NV34TCL_RC_FINAL0_D_MAPPING_EXPAND_NORMAL_NV					0x00000040
5271#define    NV34TCL_RC_FINAL0_D_MAPPING_EXPAND_NEGATE_NV					0x00000060
5272#define    NV34TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NORMAL_NV				0x00000080
5273#define    NV34TCL_RC_FINAL0_D_MAPPING_HALF_BIAS_NEGATE_NV				0x000000a0
5274#define    NV34TCL_RC_FINAL0_D_MAPPING_SIGNED_IDENTITY_NV				0x000000c0
5275#define    NV34TCL_RC_FINAL0_D_MAPPING_SIGNED_NEGATE_NV					0x000000e0
5276#define   NV34TCL_RC_FINAL0_C_INPUT_SHIFT						8
5277#define   NV34TCL_RC_FINAL0_C_INPUT_MASK						0x00000f00
5278#define    NV34TCL_RC_FINAL0_C_INPUT_ZERO						0x00000000
5279#define    NV34TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR0_NV					0x00000100
5280#define    NV34TCL_RC_FINAL0_C_INPUT_CONSTANT_COLOR1_NV					0x00000200
5281#define    NV34TCL_RC_FINAL0_C_INPUT_FOG						0x00000300
5282#define    NV34TCL_RC_FINAL0_C_INPUT_PRIMARY_COLOR_NV					0x00000400
5283#define    NV34TCL_RC_FINAL0_C_INPUT_SECONDARY_COLOR_NV					0x00000500
5284#define    NV34TCL_RC_FINAL0_C_INPUT_TEXTURE0_ARB					0x00000800
5285#define    NV34TCL_RC_FINAL0_C_INPUT_TEXTURE1_ARB					0x00000900
5286#define    NV34TCL_RC_FINAL0_C_INPUT_SPARE0_NV						0x00000c00
5287#define    NV34TCL_RC_FINAL0_C_INPUT_SPARE1_NV						0x00000d00
5288#define    NV34TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
5289#define    NV34TCL_RC_FINAL0_C_INPUT_E_TIMES_F_NV					0x00000f00
5290#define   NV34TCL_RC_FINAL0_C_COMPONENT_USAGE						(1 << 12)
5291#define    NV34TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB					0x00000000
5292#define    NV34TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA					0x00001000
5293#define   NV34TCL_RC_FINAL0_C_MAPPING_SHIFT						13
5294#define   NV34TCL_RC_FINAL0_C_MAPPING_MASK						0x0000e000
5295#define    NV34TCL_RC_FINAL0_C_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5296#define    NV34TCL_RC_FINAL0_C_MAPPING_UNSIGNED_INVERT_NV				0x00002000
5297#define    NV34TCL_RC_FINAL0_C_MAPPING_EXPAND_NORMAL_NV					0x00004000
5298#define    NV34TCL_RC_FINAL0_C_MAPPING_EXPAND_NEGATE_NV					0x00006000
5299#define    NV34TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
5300#define    NV34TCL_RC_FINAL0_C_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
5301#define    NV34TCL_RC_FINAL0_C_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
5302#define    NV34TCL_RC_FINAL0_C_MAPPING_SIGNED_NEGATE_NV					0x0000e000
5303#define   NV34TCL_RC_FINAL0_B_INPUT_SHIFT						16
5304#define   NV34TCL_RC_FINAL0_B_INPUT_MASK						0x000f0000
5305#define    NV34TCL_RC_FINAL0_B_INPUT_ZERO						0x00000000
5306#define    NV34TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR0_NV					0x00010000
5307#define    NV34TCL_RC_FINAL0_B_INPUT_CONSTANT_COLOR1_NV					0x00020000
5308#define    NV34TCL_RC_FINAL0_B_INPUT_FOG						0x00030000
5309#define    NV34TCL_RC_FINAL0_B_INPUT_PRIMARY_COLOR_NV					0x00040000
5310#define    NV34TCL_RC_FINAL0_B_INPUT_SECONDARY_COLOR_NV					0x00050000
5311#define    NV34TCL_RC_FINAL0_B_INPUT_TEXTURE0_ARB					0x00080000
5312#define    NV34TCL_RC_FINAL0_B_INPUT_TEXTURE1_ARB					0x00090000
5313#define    NV34TCL_RC_FINAL0_B_INPUT_SPARE0_NV						0x000c0000
5314#define    NV34TCL_RC_FINAL0_B_INPUT_SPARE1_NV						0x000d0000
5315#define    NV34TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
5316#define    NV34TCL_RC_FINAL0_B_INPUT_E_TIMES_F_NV					0x000f0000
5317#define   NV34TCL_RC_FINAL0_B_COMPONENT_USAGE						(1 << 20)
5318#define    NV34TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB					0x00000000
5319#define    NV34TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA					0x00100000
5320#define   NV34TCL_RC_FINAL0_B_MAPPING_SHIFT						21
5321#define   NV34TCL_RC_FINAL0_B_MAPPING_MASK						0x00e00000
5322#define    NV34TCL_RC_FINAL0_B_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5323#define    NV34TCL_RC_FINAL0_B_MAPPING_UNSIGNED_INVERT_NV				0x00200000
5324#define    NV34TCL_RC_FINAL0_B_MAPPING_EXPAND_NORMAL_NV					0x00400000
5325#define    NV34TCL_RC_FINAL0_B_MAPPING_EXPAND_NEGATE_NV					0x00600000
5326#define    NV34TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
5327#define    NV34TCL_RC_FINAL0_B_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
5328#define    NV34TCL_RC_FINAL0_B_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
5329#define    NV34TCL_RC_FINAL0_B_MAPPING_SIGNED_NEGATE_NV					0x00e00000
5330#define   NV34TCL_RC_FINAL0_A_INPUT_SHIFT						24
5331#define   NV34TCL_RC_FINAL0_A_INPUT_MASK						0x0f000000
5332#define    NV34TCL_RC_FINAL0_A_INPUT_ZERO						0x00000000
5333#define    NV34TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR0_NV					0x01000000
5334#define    NV34TCL_RC_FINAL0_A_INPUT_CONSTANT_COLOR1_NV					0x02000000
5335#define    NV34TCL_RC_FINAL0_A_INPUT_FOG						0x03000000
5336#define    NV34TCL_RC_FINAL0_A_INPUT_PRIMARY_COLOR_NV					0x04000000
5337#define    NV34TCL_RC_FINAL0_A_INPUT_SECONDARY_COLOR_NV					0x05000000
5338#define    NV34TCL_RC_FINAL0_A_INPUT_TEXTURE0_ARB					0x08000000
5339#define    NV34TCL_RC_FINAL0_A_INPUT_TEXTURE1_ARB					0x09000000
5340#define    NV34TCL_RC_FINAL0_A_INPUT_SPARE0_NV						0x0c000000
5341#define    NV34TCL_RC_FINAL0_A_INPUT_SPARE1_NV						0x0d000000
5342#define    NV34TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
5343#define    NV34TCL_RC_FINAL0_A_INPUT_E_TIMES_F_NV					0x0f000000
5344#define   NV34TCL_RC_FINAL0_A_COMPONENT_USAGE						(1 << 28)
5345#define    NV34TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB					0x00000000
5346#define    NV34TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA					0x10000000
5347#define   NV34TCL_RC_FINAL0_A_MAPPING_SHIFT						29
5348#define   NV34TCL_RC_FINAL0_A_MAPPING_MASK						0xe0000000
5349#define    NV34TCL_RC_FINAL0_A_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5350#define    NV34TCL_RC_FINAL0_A_MAPPING_UNSIGNED_INVERT_NV				0x20000000
5351#define    NV34TCL_RC_FINAL0_A_MAPPING_EXPAND_NORMAL_NV					0x40000000
5352#define    NV34TCL_RC_FINAL0_A_MAPPING_EXPAND_NEGATE_NV					0x60000000
5353#define    NV34TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
5354#define    NV34TCL_RC_FINAL0_A_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
5355#define    NV34TCL_RC_FINAL0_A_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
5356#define    NV34TCL_RC_FINAL0_A_MAPPING_SIGNED_NEGATE_NV					0xe0000000
5357#define  NV34TCL_RC_FINAL1								0x000008f8
5358#define   NV34TCL_RC_FINAL1_COLOR_SUM_CLAMP						(1 <<  7)
5359#define   NV34TCL_RC_FINAL1_G_INPUT_SHIFT						8
5360#define   NV34TCL_RC_FINAL1_G_INPUT_MASK						0x00000f00
5361#define    NV34TCL_RC_FINAL1_G_INPUT_ZERO						0x00000000
5362#define    NV34TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR0_NV					0x00000100
5363#define    NV34TCL_RC_FINAL1_G_INPUT_CONSTANT_COLOR1_NV					0x00000200
5364#define    NV34TCL_RC_FINAL1_G_INPUT_FOG						0x00000300
5365#define    NV34TCL_RC_FINAL1_G_INPUT_PRIMARY_COLOR_NV					0x00000400
5366#define    NV34TCL_RC_FINAL1_G_INPUT_SECONDARY_COLOR_NV					0x00000500
5367#define    NV34TCL_RC_FINAL1_G_INPUT_TEXTURE0_ARB					0x00000800
5368#define    NV34TCL_RC_FINAL1_G_INPUT_TEXTURE1_ARB					0x00000900
5369#define    NV34TCL_RC_FINAL1_G_INPUT_SPARE0_NV						0x00000c00
5370#define    NV34TCL_RC_FINAL1_G_INPUT_SPARE1_NV						0x00000d00
5371#define    NV34TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
5372#define    NV34TCL_RC_FINAL1_G_INPUT_E_TIMES_F_NV					0x00000f00
5373#define   NV34TCL_RC_FINAL1_G_COMPONENT_USAGE						(1 << 12)
5374#define    NV34TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB					0x00000000
5375#define    NV34TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA					0x00001000
5376#define   NV34TCL_RC_FINAL1_G_MAPPING_SHIFT						13
5377#define   NV34TCL_RC_FINAL1_G_MAPPING_MASK						0x0000e000
5378#define    NV34TCL_RC_FINAL1_G_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5379#define    NV34TCL_RC_FINAL1_G_MAPPING_UNSIGNED_INVERT_NV				0x00002000
5380#define    NV34TCL_RC_FINAL1_G_MAPPING_EXPAND_NORMAL_NV					0x00004000
5381#define    NV34TCL_RC_FINAL1_G_MAPPING_EXPAND_NEGATE_NV					0x00006000
5382#define    NV34TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
5383#define    NV34TCL_RC_FINAL1_G_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
5384#define    NV34TCL_RC_FINAL1_G_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
5385#define    NV34TCL_RC_FINAL1_G_MAPPING_SIGNED_NEGATE_NV					0x0000e000
5386#define   NV34TCL_RC_FINAL1_F_INPUT_SHIFT						16
5387#define   NV34TCL_RC_FINAL1_F_INPUT_MASK						0x000f0000
5388#define    NV34TCL_RC_FINAL1_F_INPUT_ZERO						0x00000000
5389#define    NV34TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR0_NV					0x00010000
5390#define    NV34TCL_RC_FINAL1_F_INPUT_CONSTANT_COLOR1_NV					0x00020000
5391#define    NV34TCL_RC_FINAL1_F_INPUT_FOG						0x00030000
5392#define    NV34TCL_RC_FINAL1_F_INPUT_PRIMARY_COLOR_NV					0x00040000
5393#define    NV34TCL_RC_FINAL1_F_INPUT_SECONDARY_COLOR_NV					0x00050000
5394#define    NV34TCL_RC_FINAL1_F_INPUT_TEXTURE0_ARB					0x00080000
5395#define    NV34TCL_RC_FINAL1_F_INPUT_TEXTURE1_ARB					0x00090000
5396#define    NV34TCL_RC_FINAL1_F_INPUT_SPARE0_NV						0x000c0000
5397#define    NV34TCL_RC_FINAL1_F_INPUT_SPARE1_NV						0x000d0000
5398#define    NV34TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
5399#define    NV34TCL_RC_FINAL1_F_INPUT_E_TIMES_F_NV					0x000f0000
5400#define   NV34TCL_RC_FINAL1_F_COMPONENT_USAGE						(1 << 20)
5401#define    NV34TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB					0x00000000
5402#define    NV34TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA					0x00100000
5403#define   NV34TCL_RC_FINAL1_F_MAPPING_SHIFT						21
5404#define   NV34TCL_RC_FINAL1_F_MAPPING_MASK						0x00e00000
5405#define    NV34TCL_RC_FINAL1_F_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5406#define    NV34TCL_RC_FINAL1_F_MAPPING_UNSIGNED_INVERT_NV				0x00200000
5407#define    NV34TCL_RC_FINAL1_F_MAPPING_EXPAND_NORMAL_NV					0x00400000
5408#define    NV34TCL_RC_FINAL1_F_MAPPING_EXPAND_NEGATE_NV					0x00600000
5409#define    NV34TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
5410#define    NV34TCL_RC_FINAL1_F_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
5411#define    NV34TCL_RC_FINAL1_F_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
5412#define    NV34TCL_RC_FINAL1_F_MAPPING_SIGNED_NEGATE_NV					0x00e00000
5413#define   NV34TCL_RC_FINAL1_E_INPUT_SHIFT						24
5414#define   NV34TCL_RC_FINAL1_E_INPUT_MASK						0x0f000000
5415#define    NV34TCL_RC_FINAL1_E_INPUT_ZERO						0x00000000
5416#define    NV34TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR0_NV					0x01000000
5417#define    NV34TCL_RC_FINAL1_E_INPUT_CONSTANT_COLOR1_NV					0x02000000
5418#define    NV34TCL_RC_FINAL1_E_INPUT_FOG						0x03000000
5419#define    NV34TCL_RC_FINAL1_E_INPUT_PRIMARY_COLOR_NV					0x04000000
5420#define    NV34TCL_RC_FINAL1_E_INPUT_SECONDARY_COLOR_NV					0x05000000
5421#define    NV34TCL_RC_FINAL1_E_INPUT_TEXTURE0_ARB					0x08000000
5422#define    NV34TCL_RC_FINAL1_E_INPUT_TEXTURE1_ARB					0x09000000
5423#define    NV34TCL_RC_FINAL1_E_INPUT_SPARE0_NV						0x0c000000
5424#define    NV34TCL_RC_FINAL1_E_INPUT_SPARE1_NV						0x0d000000
5425#define    NV34TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
5426#define    NV34TCL_RC_FINAL1_E_INPUT_E_TIMES_F_NV					0x0f000000
5427#define   NV34TCL_RC_FINAL1_E_COMPONENT_USAGE						(1 << 28)
5428#define    NV34TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB					0x00000000
5429#define    NV34TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA					0x10000000
5430#define   NV34TCL_RC_FINAL1_E_MAPPING_SHIFT						29
5431#define   NV34TCL_RC_FINAL1_E_MAPPING_MASK						0xe0000000
5432#define    NV34TCL_RC_FINAL1_E_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5433#define    NV34TCL_RC_FINAL1_E_MAPPING_UNSIGNED_INVERT_NV				0x20000000
5434#define    NV34TCL_RC_FINAL1_E_MAPPING_EXPAND_NORMAL_NV					0x40000000
5435#define    NV34TCL_RC_FINAL1_E_MAPPING_EXPAND_NEGATE_NV					0x60000000
5436#define    NV34TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
5437#define    NV34TCL_RC_FINAL1_E_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
5438#define    NV34TCL_RC_FINAL1_E_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
5439#define    NV34TCL_RC_FINAL1_E_MAPPING_SIGNED_NEGATE_NV					0xe0000000
5440#define  NV34TCL_RC_ENABLE								0x000008fc
5441#define   NV34TCL_RC_ENABLE_NUM_COMBINERS_SHIFT						0
5442#define   NV34TCL_RC_ENABLE_NUM_COMBINERS_MASK						0x0000000f
5443#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR0_SHIFT					12
5444#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR0_MASK					0x0000f000
5445#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR1_SHIFT					16
5446#define   NV34TCL_RC_ENABLE_STAGE_CONSTANT_COLOR1_MASK					0x000f0000
5447#define  NV34TCL_RC_IN_ALPHA(x)								(0x00000900+((x)*32))
5448#define  NV34TCL_RC_IN_ALPHA__SIZE							0x00000008
5449#define   NV34TCL_RC_IN_ALPHA_D_INPUT_SHIFT						0
5450#define   NV34TCL_RC_IN_ALPHA_D_INPUT_MASK						0x0000000f
5451#define    NV34TCL_RC_IN_ALPHA_D_INPUT_ZERO						0x00000000
5452#define    NV34TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR0_NV				0x00000001
5453#define    NV34TCL_RC_IN_ALPHA_D_INPUT_CONSTANT_COLOR1_NV				0x00000002
5454#define    NV34TCL_RC_IN_ALPHA_D_INPUT_FOG						0x00000003
5455#define    NV34TCL_RC_IN_ALPHA_D_INPUT_PRIMARY_COLOR_NV					0x00000004
5456#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SECONDARY_COLOR_NV				0x00000005
5457#define    NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE0_ARB					0x00000008
5458#define    NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE1_ARB					0x00000009
5459#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE0_NV					0x0000000c
5460#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE1_NV					0x0000000d
5461#define    NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
5462#define    NV34TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F_NV					0x0000000f
5463#define   NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE						(1 <<  4)
5464#define    NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE					0x00000000
5465#define    NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA					0x00000010
5466#define   NV34TCL_RC_IN_ALPHA_D_MAPPING_SHIFT						5
5467#define   NV34TCL_RC_IN_ALPHA_D_MAPPING_MASK						0x000000e0
5468#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5469#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_UNSIGNED_INVERT_NV				0x00000020
5470#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NORMAL_NV				0x00000040
5471#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_EXPAND_NEGATE_NV				0x00000060
5472#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NORMAL_NV				0x00000080
5473#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_HALF_BIAS_NEGATE_NV				0x000000a0
5474#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_IDENTITY_NV				0x000000c0
5475#define    NV34TCL_RC_IN_ALPHA_D_MAPPING_SIGNED_NEGATE_NV				0x000000e0
5476#define   NV34TCL_RC_IN_ALPHA_C_INPUT_SHIFT						8
5477#define   NV34TCL_RC_IN_ALPHA_C_INPUT_MASK						0x00000f00
5478#define    NV34TCL_RC_IN_ALPHA_C_INPUT_ZERO						0x00000000
5479#define    NV34TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR0_NV				0x00000100
5480#define    NV34TCL_RC_IN_ALPHA_C_INPUT_CONSTANT_COLOR1_NV				0x00000200
5481#define    NV34TCL_RC_IN_ALPHA_C_INPUT_FOG						0x00000300
5482#define    NV34TCL_RC_IN_ALPHA_C_INPUT_PRIMARY_COLOR_NV					0x00000400
5483#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SECONDARY_COLOR_NV				0x00000500
5484#define    NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE0_ARB					0x00000800
5485#define    NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE1_ARB					0x00000900
5486#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE0_NV					0x00000c00
5487#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE1_NV					0x00000d00
5488#define    NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
5489#define    NV34TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F_NV					0x00000f00
5490#define   NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE						(1 << 12)
5491#define    NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE					0x00000000
5492#define    NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA					0x00001000
5493#define   NV34TCL_RC_IN_ALPHA_C_MAPPING_SHIFT						13
5494#define   NV34TCL_RC_IN_ALPHA_C_MAPPING_MASK						0x0000e000
5495#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5496#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_UNSIGNED_INVERT_NV				0x00002000
5497#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NORMAL_NV				0x00004000
5498#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_EXPAND_NEGATE_NV				0x00006000
5499#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
5500#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
5501#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
5502#define    NV34TCL_RC_IN_ALPHA_C_MAPPING_SIGNED_NEGATE_NV				0x0000e000
5503#define   NV34TCL_RC_IN_ALPHA_B_INPUT_SHIFT						16
5504#define   NV34TCL_RC_IN_ALPHA_B_INPUT_MASK						0x000f0000
5505#define    NV34TCL_RC_IN_ALPHA_B_INPUT_ZERO						0x00000000
5506#define    NV34TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR0_NV				0x00010000
5507#define    NV34TCL_RC_IN_ALPHA_B_INPUT_CONSTANT_COLOR1_NV				0x00020000
5508#define    NV34TCL_RC_IN_ALPHA_B_INPUT_FOG						0x00030000
5509#define    NV34TCL_RC_IN_ALPHA_B_INPUT_PRIMARY_COLOR_NV					0x00040000
5510#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SECONDARY_COLOR_NV				0x00050000
5511#define    NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE0_ARB					0x00080000
5512#define    NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE1_ARB					0x00090000
5513#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE0_NV					0x000c0000
5514#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE1_NV					0x000d0000
5515#define    NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
5516#define    NV34TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F_NV					0x000f0000
5517#define   NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE						(1 << 20)
5518#define    NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE					0x00000000
5519#define    NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA					0x00100000
5520#define   NV34TCL_RC_IN_ALPHA_B_MAPPING_SHIFT						21
5521#define   NV34TCL_RC_IN_ALPHA_B_MAPPING_MASK						0x00e00000
5522#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5523#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_UNSIGNED_INVERT_NV				0x00200000
5524#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NORMAL_NV				0x00400000
5525#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_EXPAND_NEGATE_NV				0x00600000
5526#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
5527#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
5528#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
5529#define    NV34TCL_RC_IN_ALPHA_B_MAPPING_SIGNED_NEGATE_NV				0x00e00000
5530#define   NV34TCL_RC_IN_ALPHA_A_INPUT_SHIFT						24
5531#define   NV34TCL_RC_IN_ALPHA_A_INPUT_MASK						0x0f000000
5532#define    NV34TCL_RC_IN_ALPHA_A_INPUT_ZERO						0x00000000
5533#define    NV34TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR0_NV				0x01000000
5534#define    NV34TCL_RC_IN_ALPHA_A_INPUT_CONSTANT_COLOR1_NV				0x02000000
5535#define    NV34TCL_RC_IN_ALPHA_A_INPUT_FOG						0x03000000
5536#define    NV34TCL_RC_IN_ALPHA_A_INPUT_PRIMARY_COLOR_NV					0x04000000
5537#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SECONDARY_COLOR_NV				0x05000000
5538#define    NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE0_ARB					0x08000000
5539#define    NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE1_ARB					0x09000000
5540#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE0_NV					0x0c000000
5541#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE1_NV					0x0d000000
5542#define    NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
5543#define    NV34TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F_NV					0x0f000000
5544#define   NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE						(1 << 28)
5545#define    NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE					0x00000000
5546#define    NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA					0x10000000
5547#define   NV34TCL_RC_IN_ALPHA_A_MAPPING_SHIFT						29
5548#define   NV34TCL_RC_IN_ALPHA_A_MAPPING_MASK						0xe0000000
5549#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5550#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_UNSIGNED_INVERT_NV				0x20000000
5551#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NORMAL_NV				0x40000000
5552#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_EXPAND_NEGATE_NV				0x60000000
5553#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
5554#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
5555#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
5556#define    NV34TCL_RC_IN_ALPHA_A_MAPPING_SIGNED_NEGATE_NV				0xe0000000
5557#define  NV34TCL_RC_IN_RGB(x)								(0x00000904+((x)*32))
5558#define  NV34TCL_RC_IN_RGB__SIZE							0x00000008
5559#define   NV34TCL_RC_IN_RGB_D_INPUT_SHIFT						0
5560#define   NV34TCL_RC_IN_RGB_D_INPUT_MASK						0x0000000f
5561#define    NV34TCL_RC_IN_RGB_D_INPUT_ZERO						0x00000000
5562#define    NV34TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR0_NV					0x00000001
5563#define    NV34TCL_RC_IN_RGB_D_INPUT_CONSTANT_COLOR1_NV					0x00000002
5564#define    NV34TCL_RC_IN_RGB_D_INPUT_FOG						0x00000003
5565#define    NV34TCL_RC_IN_RGB_D_INPUT_PRIMARY_COLOR_NV					0x00000004
5566#define    NV34TCL_RC_IN_RGB_D_INPUT_SECONDARY_COLOR_NV					0x00000005
5567#define    NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE0_ARB					0x00000008
5568#define    NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE1_ARB					0x00000009
5569#define    NV34TCL_RC_IN_RGB_D_INPUT_SPARE0_NV						0x0000000c
5570#define    NV34TCL_RC_IN_RGB_D_INPUT_SPARE1_NV						0x0000000d
5571#define    NV34TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
5572#define    NV34TCL_RC_IN_RGB_D_INPUT_E_TIMES_F_NV					0x0000000f
5573#define   NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE						(1 <<  4)
5574#define    NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB					0x00000000
5575#define    NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA					0x00000010
5576#define   NV34TCL_RC_IN_RGB_D_MAPPING_SHIFT						5
5577#define   NV34TCL_RC_IN_RGB_D_MAPPING_MASK						0x000000e0
5578#define    NV34TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5579#define    NV34TCL_RC_IN_RGB_D_MAPPING_UNSIGNED_INVERT_NV				0x00000020
5580#define    NV34TCL_RC_IN_RGB_D_MAPPING_EXPAND_NORMAL_NV					0x00000040
5581#define    NV34TCL_RC_IN_RGB_D_MAPPING_EXPAND_NEGATE_NV					0x00000060
5582#define    NV34TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NORMAL_NV				0x00000080
5583#define    NV34TCL_RC_IN_RGB_D_MAPPING_HALF_BIAS_NEGATE_NV				0x000000a0
5584#define    NV34TCL_RC_IN_RGB_D_MAPPING_SIGNED_IDENTITY_NV				0x000000c0
5585#define    NV34TCL_RC_IN_RGB_D_MAPPING_SIGNED_NEGATE_NV					0x000000e0
5586#define   NV34TCL_RC_IN_RGB_C_INPUT_SHIFT						8
5587#define   NV34TCL_RC_IN_RGB_C_INPUT_MASK						0x00000f00
5588#define    NV34TCL_RC_IN_RGB_C_INPUT_ZERO						0x00000000
5589#define    NV34TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR0_NV					0x00000100
5590#define    NV34TCL_RC_IN_RGB_C_INPUT_CONSTANT_COLOR1_NV					0x00000200
5591#define    NV34TCL_RC_IN_RGB_C_INPUT_FOG						0x00000300
5592#define    NV34TCL_RC_IN_RGB_C_INPUT_PRIMARY_COLOR_NV					0x00000400
5593#define    NV34TCL_RC_IN_RGB_C_INPUT_SECONDARY_COLOR_NV					0x00000500
5594#define    NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE0_ARB					0x00000800
5595#define    NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE1_ARB					0x00000900
5596#define    NV34TCL_RC_IN_RGB_C_INPUT_SPARE0_NV						0x00000c00
5597#define    NV34TCL_RC_IN_RGB_C_INPUT_SPARE1_NV						0x00000d00
5598#define    NV34TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
5599#define    NV34TCL_RC_IN_RGB_C_INPUT_E_TIMES_F_NV					0x00000f00
5600#define   NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE						(1 << 12)
5601#define    NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB					0x00000000
5602#define    NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA					0x00001000
5603#define   NV34TCL_RC_IN_RGB_C_MAPPING_SHIFT						13
5604#define   NV34TCL_RC_IN_RGB_C_MAPPING_MASK						0x0000e000
5605#define    NV34TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5606#define    NV34TCL_RC_IN_RGB_C_MAPPING_UNSIGNED_INVERT_NV				0x00002000
5607#define    NV34TCL_RC_IN_RGB_C_MAPPING_EXPAND_NORMAL_NV					0x00004000
5608#define    NV34TCL_RC_IN_RGB_C_MAPPING_EXPAND_NEGATE_NV					0x00006000
5609#define    NV34TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NORMAL_NV				0x00008000
5610#define    NV34TCL_RC_IN_RGB_C_MAPPING_HALF_BIAS_NEGATE_NV				0x0000a000
5611#define    NV34TCL_RC_IN_RGB_C_MAPPING_SIGNED_IDENTITY_NV				0x0000c000
5612#define    NV34TCL_RC_IN_RGB_C_MAPPING_SIGNED_NEGATE_NV					0x0000e000
5613#define   NV34TCL_RC_IN_RGB_B_INPUT_SHIFT						16
5614#define   NV34TCL_RC_IN_RGB_B_INPUT_MASK						0x000f0000
5615#define    NV34TCL_RC_IN_RGB_B_INPUT_ZERO						0x00000000
5616#define    NV34TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR0_NV					0x00010000
5617#define    NV34TCL_RC_IN_RGB_B_INPUT_CONSTANT_COLOR1_NV					0x00020000
5618#define    NV34TCL_RC_IN_RGB_B_INPUT_FOG						0x00030000
5619#define    NV34TCL_RC_IN_RGB_B_INPUT_PRIMARY_COLOR_NV					0x00040000
5620#define    NV34TCL_RC_IN_RGB_B_INPUT_SECONDARY_COLOR_NV					0x00050000
5621#define    NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE0_ARB					0x00080000
5622#define    NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE1_ARB					0x00090000
5623#define    NV34TCL_RC_IN_RGB_B_INPUT_SPARE0_NV						0x000c0000
5624#define    NV34TCL_RC_IN_RGB_B_INPUT_SPARE1_NV						0x000d0000
5625#define    NV34TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000e0000
5626#define    NV34TCL_RC_IN_RGB_B_INPUT_E_TIMES_F_NV					0x000f0000
5627#define   NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE						(1 << 20)
5628#define    NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB					0x00000000
5629#define    NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA					0x00100000
5630#define   NV34TCL_RC_IN_RGB_B_MAPPING_SHIFT						21
5631#define   NV34TCL_RC_IN_RGB_B_MAPPING_MASK						0x00e00000
5632#define    NV34TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5633#define    NV34TCL_RC_IN_RGB_B_MAPPING_UNSIGNED_INVERT_NV				0x00200000
5634#define    NV34TCL_RC_IN_RGB_B_MAPPING_EXPAND_NORMAL_NV					0x00400000
5635#define    NV34TCL_RC_IN_RGB_B_MAPPING_EXPAND_NEGATE_NV					0x00600000
5636#define    NV34TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NORMAL_NV				0x00800000
5637#define    NV34TCL_RC_IN_RGB_B_MAPPING_HALF_BIAS_NEGATE_NV				0x00a00000
5638#define    NV34TCL_RC_IN_RGB_B_MAPPING_SIGNED_IDENTITY_NV				0x00c00000
5639#define    NV34TCL_RC_IN_RGB_B_MAPPING_SIGNED_NEGATE_NV					0x00e00000
5640#define   NV34TCL_RC_IN_RGB_A_INPUT_SHIFT						24
5641#define   NV34TCL_RC_IN_RGB_A_INPUT_MASK						0x0f000000
5642#define    NV34TCL_RC_IN_RGB_A_INPUT_ZERO						0x00000000
5643#define    NV34TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR0_NV					0x01000000
5644#define    NV34TCL_RC_IN_RGB_A_INPUT_CONSTANT_COLOR1_NV					0x02000000
5645#define    NV34TCL_RC_IN_RGB_A_INPUT_FOG						0x03000000
5646#define    NV34TCL_RC_IN_RGB_A_INPUT_PRIMARY_COLOR_NV					0x04000000
5647#define    NV34TCL_RC_IN_RGB_A_INPUT_SECONDARY_COLOR_NV					0x05000000
5648#define    NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE0_ARB					0x08000000
5649#define    NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE1_ARB					0x09000000
5650#define    NV34TCL_RC_IN_RGB_A_INPUT_SPARE0_NV						0x0c000000
5651#define    NV34TCL_RC_IN_RGB_A_INPUT_SPARE1_NV						0x0d000000
5652#define    NV34TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0e000000
5653#define    NV34TCL_RC_IN_RGB_A_INPUT_E_TIMES_F_NV					0x0f000000
5654#define   NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE						(1 << 28)
5655#define    NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB					0x00000000
5656#define    NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA					0x10000000
5657#define   NV34TCL_RC_IN_RGB_A_MAPPING_SHIFT						29
5658#define   NV34TCL_RC_IN_RGB_A_MAPPING_MASK						0xe0000000
5659#define    NV34TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_IDENTITY_NV				0x00000000
5660#define    NV34TCL_RC_IN_RGB_A_MAPPING_UNSIGNED_INVERT_NV				0x20000000
5661#define    NV34TCL_RC_IN_RGB_A_MAPPING_EXPAND_NORMAL_NV					0x40000000
5662#define    NV34TCL_RC_IN_RGB_A_MAPPING_EXPAND_NEGATE_NV					0x60000000
5663#define    NV34TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NORMAL_NV				0x80000000
5664#define    NV34TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE_NV				0xa0000000
5665#define    NV34TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY_NV				0xc0000000
5666#define    NV34TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE_NV					0xe0000000
5667#define  NV34TCL_RC_CONSTANT_COLOR0(x)							(0x00000908+((x)*32))
5668#define  NV34TCL_RC_CONSTANT_COLOR0__SIZE						0x00000008
5669#define   NV34TCL_RC_CONSTANT_COLOR0_B_SHIFT						0
5670#define   NV34TCL_RC_CONSTANT_COLOR0_B_MASK						0x000000ff
5671#define   NV34TCL_RC_CONSTANT_COLOR0_G_SHIFT						8
5672#define   NV34TCL_RC_CONSTANT_COLOR0_G_MASK						0x0000ff00
5673#define   NV34TCL_RC_CONSTANT_COLOR0_R_SHIFT						16
5674#define   NV34TCL_RC_CONSTANT_COLOR0_R_MASK						0x00ff0000
5675#define   NV34TCL_RC_CONSTANT_COLOR0_A_SHIFT						24
5676#define   NV34TCL_RC_CONSTANT_COLOR0_A_MASK						0xff000000
5677#define  NV34TCL_RC_CONSTANT_COLOR1(x)							(0x0000090c+((x)*32))
5678#define  NV34TCL_RC_CONSTANT_COLOR1__SIZE						0x00000008
5679#define   NV34TCL_RC_CONSTANT_COLOR1_B_SHIFT						0
5680#define   NV34TCL_RC_CONSTANT_COLOR1_B_MASK						0x000000ff
5681#define   NV34TCL_RC_CONSTANT_COLOR1_G_SHIFT						8
5682#define   NV34TCL_RC_CONSTANT_COLOR1_G_MASK						0x0000ff00
5683#define   NV34TCL_RC_CONSTANT_COLOR1_R_SHIFT						16
5684#define   NV34TCL_RC_CONSTANT_COLOR1_R_MASK						0x00ff0000
5685#define   NV34TCL_RC_CONSTANT_COLOR1_A_SHIFT						24
5686#define   NV34TCL_RC_CONSTANT_COLOR1_A_MASK						0xff000000
5687#define  NV34TCL_RC_OUT_ALPHA(x)							(0x00000910+((x)*32))
5688#define  NV34TCL_RC_OUT_ALPHA__SIZE							0x00000008
5689#define   NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SHIFT						0
5690#define   NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_MASK						0x0000000f
5691#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_ZERO						0x00000000
5692#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR0_NV				0x00000001
5693#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_CONSTANT_COLOR1_NV				0x00000002
5694#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_FOG						0x00000003
5695#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_PRIMARY_COLOR_NV				0x00000004
5696#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SECONDARY_COLOR_NV				0x00000005
5697#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE0_ARB					0x00000008
5698#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE1_ARB					0x00000009
5699#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_NV					0x0000000c
5700#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1_NV					0x0000000d
5701#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV		0x0000000e
5702#define    NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F_NV					0x0000000f
5703#define   NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT						4
5704#define   NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK						0x000000f0
5705#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO						0x00000000
5706#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR0_NV				0x00000010
5707#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_CONSTANT_COLOR1_NV				0x00000020
5708#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_FOG						0x00000030
5709#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_PRIMARY_COLOR_NV				0x00000040
5710#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SECONDARY_COLOR_NV				0x00000050
5711#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE0_ARB					0x00000080
5712#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE1_ARB					0x00000090
5713#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_NV					0x000000c0
5714#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV					0x000000d0
5715#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV		0x000000e0
5716#define    NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV					0x000000f0
5717#define   NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT						8
5718#define   NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK						0x00000f00
5719#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO						0x00000000
5720#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR0_NV				0x00000100
5721#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_CONSTANT_COLOR1_NV				0x00000200
5722#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_FOG						0x00000300
5723#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_PRIMARY_COLOR_NV				0x00000400
5724#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SECONDARY_COLOR_NV				0x00000500
5725#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE0_ARB					0x00000800
5726#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE1_ARB					0x00000900
5727#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_NV					0x00000c00
5728#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV					0x00000d00
5729#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV		0x00000e00
5730#define    NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV					0x00000f00
5731#define   NV34TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT						(1 << 12)
5732#define   NV34TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT						(1 << 13)
5733#define   NV34TCL_RC_OUT_ALPHA_MUX_SUM							(1 << 14)
5734#define   NV34TCL_RC_OUT_ALPHA_BIAS							(1 << 15)
5735#define    NV34TCL_RC_OUT_ALPHA_BIAS_NONE						0x00000000
5736#define    NV34TCL_RC_OUT_ALPHA_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV			0x00008000
5737#define   NV34TCL_RC_OUT_ALPHA_SCALE_SHIFT						17
5738#define   NV34TCL_RC_OUT_ALPHA_SCALE_MASK						0x00000000
5739#define    NV34TCL_RC_OUT_ALPHA_SCALE_NONE						0x00000000
5740#define    NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_TWO_NV					0x00020000
5741#define    NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_FOUR_NV					0x00040000
5742#define    NV34TCL_RC_OUT_ALPHA_SCALE_SCALE_BY_ONE_HALF_NV				0x00060000
5743#define  NV34TCL_RC_OUT_RGB(x)								(0x00000914+((x)*32))
5744#define  NV34TCL_RC_OUT_RGB__SIZE							0x00000008
5745#define   NV34TCL_RC_OUT_RGB_CD_OUTPUT_SHIFT						0
5746#define   NV34TCL_RC_OUT_RGB_CD_OUTPUT_MASK						0x0000000f
5747#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_ZERO						0x00000000
5748#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR0_NV				0x00000001
5749#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_CONSTANT_COLOR1_NV				0x00000002
5750#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_FOG						0x00000003
5751#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_PRIMARY_COLOR_NV				0x00000004
5752#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SECONDARY_COLOR_NV				0x00000005
5753#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE0_ARB					0x00000008
5754#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE1_ARB					0x00000009
5755#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_NV					0x0000000c
5756#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1_NV					0x0000000d
5757#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x0000000e
5758#define    NV34TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F_NV					0x0000000f
5759#define   NV34TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT						4
5760#define   NV34TCL_RC_OUT_RGB_AB_OUTPUT_MASK						0x000000f0
5761#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_ZERO						0x00000000
5762#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR0_NV				0x00000010
5763#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_CONSTANT_COLOR1_NV				0x00000020
5764#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_FOG						0x00000030
5765#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_PRIMARY_COLOR_NV				0x00000040
5766#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SECONDARY_COLOR_NV				0x00000050
5767#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE0_ARB					0x00000080
5768#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE1_ARB					0x00000090
5769#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_NV					0x000000c0
5770#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV					0x000000d0
5771#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x000000e0
5772#define    NV34TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV					0x000000f0
5773#define   NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT						8
5774#define   NV34TCL_RC_OUT_RGB_SUM_OUTPUT_MASK						0x00000f00
5775#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO						0x00000000
5776#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR0_NV				0x00000100
5777#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_CONSTANT_COLOR1_NV				0x00000200
5778#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_FOG						0x00000300
5779#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_PRIMARY_COLOR_NV				0x00000400
5780#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SECONDARY_COLOR_NV				0x00000500
5781#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE0_ARB					0x00000800
5782#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE1_ARB					0x00000900
5783#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_NV					0x00000c00
5784#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV					0x00000d00
5785#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV			0x00000e00
5786#define    NV34TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV					0x00000f00
5787#define   NV34TCL_RC_OUT_RGB_CD_DOT_PRODUCT						(1 << 12)
5788#define   NV34TCL_RC_OUT_RGB_AB_DOT_PRODUCT						(1 << 13)
5789#define   NV34TCL_RC_OUT_RGB_MUX_SUM							(1 << 14)
5790#define   NV34TCL_RC_OUT_RGB_BIAS							(1 << 15)
5791#define    NV34TCL_RC_OUT_RGB_BIAS_NONE							0x00000000
5792#define    NV34TCL_RC_OUT_RGB_BIAS_BIAS_BY_NEGATIVE_ONE_HALF_NV				0x00008000
5793#define   NV34TCL_RC_OUT_RGB_SCALE_SHIFT						17
5794#define   NV34TCL_RC_OUT_RGB_SCALE_MASK							0x00000000
5795#define    NV34TCL_RC_OUT_RGB_SCALE_NONE						0x00000000
5796#define    NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_TWO_NV					0x00020000
5797#define    NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_FOUR_NV					0x00040000
5798#define    NV34TCL_RC_OUT_RGB_SCALE_SCALE_BY_ONE_HALF_NV				0x00060000
5799#define  NV34TCL_VIEWPORT_HORIZ								0x00000a00
5800#define   NV34TCL_VIEWPORT_HORIZ_X_SHIFT						0
5801#define   NV34TCL_VIEWPORT_HORIZ_X_MASK							0x0000ffff
5802#define   NV34TCL_VIEWPORT_HORIZ_W_SHIFT						16
5803#define   NV34TCL_VIEWPORT_HORIZ_W_MASK							0xffff0000
5804#define  NV34TCL_VIEWPORT_VERT								0x00000a04
5805#define   NV34TCL_VIEWPORT_VERT_Y_SHIFT							0
5806#define   NV34TCL_VIEWPORT_VERT_Y_MASK							0x0000ffff
5807#define   NV34TCL_VIEWPORT_VERT_H_SHIFT							16
5808#define   NV34TCL_VIEWPORT_VERT_H_MASK							0xffff0000
5809#define  NV34TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R			0x00000a10
5810#define  NV34TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G			0x00000a14
5811#define  NV34TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B			0x00000a18
5812#define  NV34TCL_VIEWPORT_TRANSLATE_X							0x00000a20
5813#define  NV34TCL_VIEWPORT_TRANSLATE_Y							0x00000a24
5814#define  NV34TCL_VIEWPORT_TRANSLATE_Z							0x00000a28
5815#define  NV34TCL_VIEWPORT_TRANSLATE_W							0x00000a2c
5816#define  NV34TCL_VIEWPORT_SCALE_X							0x00000a30
5817#define  NV34TCL_VIEWPORT_SCALE_Y							0x00000a34
5818#define  NV34TCL_VIEWPORT_SCALE_Z							0x00000a38
5819#define  NV34TCL_VIEWPORT_SCALE_W							0x00000a3c
5820#define  NV34TCL_POLYGON_OFFSET_POINT_ENABLE						0x00000a60
5821#define  NV34TCL_POLYGON_OFFSET_LINE_ENABLE						0x00000a64
5822#define  NV34TCL_POLYGON_OFFSET_FILL_ENABLE						0x00000a68
5823#define  NV34TCL_DEPTH_FUNC								0x00000a6c
5824#define   NV34TCL_DEPTH_FUNC_NEVER							0x00000200
5825#define   NV34TCL_DEPTH_FUNC_LESS							0x00000201
5826#define   NV34TCL_DEPTH_FUNC_EQUAL							0x00000202
5827#define   NV34TCL_DEPTH_FUNC_LEQUAL							0x00000203
5828#define   NV34TCL_DEPTH_FUNC_GREATER							0x00000204
5829#define   NV34TCL_DEPTH_FUNC_GREATER							0x00000204
5830#define   NV34TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
5831#define   NV34TCL_DEPTH_FUNC_GEQUAL							0x00000206
5832#define   NV34TCL_DEPTH_FUNC_ALWAYS							0x00000207
5833#define  NV34TCL_DEPTH_WRITE_ENABLE							0x00000a70
5834#define  NV34TCL_DEPTH_TEST_ENABLE							0x00000a74
5835#define  NV34TCL_POLYGON_OFFSET_FACTOR							0x00000a78
5836#define  NV34TCL_POLYGON_OFFSET_UNITS							0x00000a7c
5837#define  NV34TCL_VTX_ATTR_3I_XY(x)							(0x00000a80+((x)*8))
5838#define  NV34TCL_VTX_ATTR_3I_XY__SIZE							0x00000010
5839#define   NV34TCL_VTX_ATTR_3I_XY_X_SHIFT						0
5840#define   NV34TCL_VTX_ATTR_3I_XY_X_MASK							0x0000ffff
5841#define   NV34TCL_VTX_ATTR_3I_XY_Y_SHIFT						16
5842#define   NV34TCL_VTX_ATTR_3I_XY_Y_MASK							0xffff0000
5843#define  NV34TCL_VTX_ATTR_3I_Z(x)							(0x00000a84+((x)*8))
5844#define  NV34TCL_VTX_ATTR_3I_Z__SIZE							0x00000010
5845#define   NV34TCL_VTX_ATTR_3I_Z_Z_SHIFT							0
5846#define   NV34TCL_VTX_ATTR_3I_Z_Z_MASK							0x0000ffff
5847#define  NV34TCL_VP_UPLOAD_INST(x)							(0x00000b80+((x)*4))
5848#define  NV34TCL_VP_UPLOAD_INST__SIZE							0x00000004
5849#define  NV34TCL_TX0_CLIP_PLANE_A(x)							(0x00000e00+((x)*16))
5850#define  NV34TCL_TX0_CLIP_PLANE_A__SIZE							0x00000004
5851#define  NV34TCL_TX0_CLIP_PLANE_B(x)							(0x00000e04+((x)*16))
5852#define  NV34TCL_TX0_CLIP_PLANE_B__SIZE							0x00000004
5853#define  NV34TCL_TX0_CLIP_PLANE_C(x)							(0x00000e08+((x)*16))
5854#define  NV34TCL_TX0_CLIP_PLANE_C__SIZE							0x00000004
5855#define  NV34TCL_TX0_CLIP_PLANE_D(x)							(0x00000e0c+((x)*16))
5856#define  NV34TCL_TX0_CLIP_PLANE_D__SIZE							0x00000004
5857#define  NV34TCL_TX1_CLIP_PLANE_A(x)							(0x00000e40+((x)*16))
5858#define  NV34TCL_TX1_CLIP_PLANE_A__SIZE							0x00000004
5859#define  NV34TCL_TX1_CLIP_PLANE_B(x)							(0x00000e44+((x)*16))
5860#define  NV34TCL_TX1_CLIP_PLANE_B__SIZE							0x00000004
5861#define  NV34TCL_TX1_CLIP_PLANE_C(x)							(0x00000e48+((x)*16))
5862#define  NV34TCL_TX1_CLIP_PLANE_C__SIZE							0x00000004
5863#define  NV34TCL_TX1_CLIP_PLANE_D(x)							(0x00000e4c+((x)*16))
5864#define  NV34TCL_TX1_CLIP_PLANE_D__SIZE							0x00000004
5865#define  NV34TCL_TX2_CLIP_PLANE_A(x)							(0x00000e80+((x)*16))
5866#define  NV34TCL_TX2_CLIP_PLANE_A__SIZE							0x00000004
5867#define  NV34TCL_TX2_CLIP_PLANE_B(x)							(0x00000e84+((x)*16))
5868#define  NV34TCL_TX2_CLIP_PLANE_B__SIZE							0x00000004
5869#define  NV34TCL_TX2_CLIP_PLANE_C(x)							(0x00000e88+((x)*16))
5870#define  NV34TCL_TX2_CLIP_PLANE_C__SIZE							0x00000004
5871#define  NV34TCL_TX2_CLIP_PLANE_D(x)							(0x00000e8c+((x)*16))
5872#define  NV34TCL_TX2_CLIP_PLANE_D__SIZE							0x00000004
5873#define  NV34TCL_TX3_CLIP_PLANE_A(x)							(0x00000ec0+((x)*16))
5874#define  NV34TCL_TX3_CLIP_PLANE_A__SIZE							0x00000004
5875#define  NV34TCL_TX3_CLIP_PLANE_B(x)							(0x00000ec4+((x)*16))
5876#define  NV34TCL_TX3_CLIP_PLANE_B__SIZE							0x00000004
5877#define  NV34TCL_TX3_CLIP_PLANE_C(x)							(0x00000ec8+((x)*16))
5878#define  NV34TCL_TX3_CLIP_PLANE_C__SIZE							0x00000004
5879#define  NV34TCL_TX3_CLIP_PLANE_D(x)							(0x00000ecc+((x)*16))
5880#define  NV34TCL_TX3_CLIP_PLANE_D__SIZE							0x00000004
5881#define  NV34TCL_TX4_CLIP_PLANE_A(x)							(0x00000f00+((x)*16))
5882#define  NV34TCL_TX4_CLIP_PLANE_A__SIZE							0x00000004
5883#define  NV34TCL_TX4_CLIP_PLANE_B(x)							(0x00000f04+((x)*16))
5884#define  NV34TCL_TX4_CLIP_PLANE_B__SIZE							0x00000004
5885#define  NV34TCL_TX4_CLIP_PLANE_C(x)							(0x00000f08+((x)*16))
5886#define  NV34TCL_TX4_CLIP_PLANE_C__SIZE							0x00000004
5887#define  NV34TCL_TX4_CLIP_PLANE_D(x)							(0x00000f0c+((x)*16))
5888#define  NV34TCL_TX4_CLIP_PLANE_D__SIZE							0x00000004
5889#define  NV34TCL_TX5_CLIP_PLANE_A(x)							(0x00000f40+((x)*16))
5890#define  NV34TCL_TX5_CLIP_PLANE_A__SIZE							0x00000004
5891#define  NV34TCL_TX5_CLIP_PLANE_B(x)							(0x00000f44+((x)*16))
5892#define  NV34TCL_TX5_CLIP_PLANE_B__SIZE							0x00000004
5893#define  NV34TCL_TX5_CLIP_PLANE_C(x)							(0x00000f48+((x)*16))
5894#define  NV34TCL_TX5_CLIP_PLANE_C__SIZE							0x00000004
5895#define  NV34TCL_TX5_CLIP_PLANE_D(x)							(0x00000f4c+((x)*16))
5896#define  NV34TCL_TX5_CLIP_PLANE_D__SIZE							0x00000004
5897#define  NV34TCL_TX6_CLIP_PLANE_A(x)							(0x00000f80+((x)*16))
5898#define  NV34TCL_TX6_CLIP_PLANE_A__SIZE							0x00000004
5899#define  NV34TCL_TX6_CLIP_PLANE_B(x)							(0x00000f84+((x)*16))
5900#define  NV34TCL_TX6_CLIP_PLANE_B__SIZE							0x00000004
5901#define  NV34TCL_TX6_CLIP_PLANE_C(x)							(0x00000f88+((x)*16))
5902#define  NV34TCL_TX6_CLIP_PLANE_C__SIZE							0x00000004
5903#define  NV34TCL_TX6_CLIP_PLANE_D(x)							(0x00000f8c+((x)*16))
5904#define  NV34TCL_TX6_CLIP_PLANE_D__SIZE							0x00000004
5905#define  NV34TCL_TX7_CLIP_PLANE_A(x)							(0x00000fc0+((x)*16))
5906#define  NV34TCL_TX7_CLIP_PLANE_A__SIZE							0x00000004
5907#define  NV34TCL_TX7_CLIP_PLANE_B(x)							(0x00000fc4+((x)*16))
5908#define  NV34TCL_TX7_CLIP_PLANE_B__SIZE							0x00000004
5909#define  NV34TCL_TX7_CLIP_PLANE_C(x)							(0x00000fc8+((x)*16))
5910#define  NV34TCL_TX7_CLIP_PLANE_C__SIZE							0x00000004
5911#define  NV34TCL_TX7_CLIP_PLANE_D(x)							(0x00000fcc+((x)*16))
5912#define  NV34TCL_TX7_CLIP_PLANE_D__SIZE							0x00000004
5913#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(x)					(0x00001000+((x)*64))
5914#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R__SIZE				0x00000008
5915#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G(x)					(0x00001004+((x)*64))
5916#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_G__SIZE				0x00000008
5917#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B(x)					(0x00001008+((x)*64))
5918#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_B__SIZE				0x00000008
5919#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R(x)					(0x0000100c+((x)*64))
5920#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_R__SIZE				0x00000008
5921#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G(x)					(0x00001010+((x)*64))
5922#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_G__SIZE				0x00000008
5923#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B(x)					(0x00001014+((x)*64))
5924#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_DIFFUSE_B__SIZE				0x00000008
5925#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R(x)					(0x00001018+((x)*64))
5926#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_R__SIZE				0x00000008
5927#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G(x)					(0x0000101c+((x)*64))
5928#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_G__SIZE				0x00000008
5929#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B(x)					(0x00001020+((x)*64))
5930#define  NV34TCL_LIGHT_FRONT_SIDE_PRODUCT_SPECULAR_B__SIZE				0x00000008
5931#define  NV34TCL_LIGHT_HALF_VECTOR_X(x)							(0x00001028+((x)*64))
5932#define  NV34TCL_LIGHT_HALF_VECTOR_X__SIZE						0x00000008
5933#define  NV34TCL_LIGHT_HALF_VECTOR_Y(x)							(0x0000102c+((x)*64))
5934#define  NV34TCL_LIGHT_HALF_VECTOR_Y__SIZE						0x00000008
5935#define  NV34TCL_LIGHT_HALF_VECTOR_Z(x)							(0x00001030+((x)*64))
5936#define  NV34TCL_LIGHT_HALF_VECTOR_Z__SIZE						0x00000008
5937#define  NV34TCL_LIGHT_DIRECTION_X(x)							(0x00001034+((x)*64))
5938#define  NV34TCL_LIGHT_DIRECTION_X__SIZE						0x00000008
5939#define  NV34TCL_LIGHT_DIRECTION_Y(x)							(0x00001038+((x)*64))
5940#define  NV34TCL_LIGHT_DIRECTION_Y__SIZE						0x00000008
5941#define  NV34TCL_LIGHT_DIRECTION_Z(x)							(0x0000103c+((x)*64))
5942#define  NV34TCL_LIGHT_DIRECTION_Z__SIZE						0x00000008
5943#define  NV34TCL_LIGHT_SPOT_CUTOFF_A(x)							(0x00001200+((x)*64))
5944#define  NV34TCL_LIGHT_SPOT_CUTOFF_A__SIZE						0x00000008
5945#define  NV34TCL_LIGHT_SPOT_CUTOFF_B(x)							(0x00001204+((x)*64))
5946#define  NV34TCL_LIGHT_SPOT_CUTOFF_B__SIZE						0x00000008
5947#define  NV34TCL_LIGHT_SPOT_CUTOFF_C(x)							(0x00001208+((x)*64))
5948#define  NV34TCL_LIGHT_SPOT_CUTOFF_C__SIZE						0x00000008
5949#define  NV34TCL_LIGHT_SPOT_DIR_X(x)							(0x0000120c+((x)*64))
5950#define  NV34TCL_LIGHT_SPOT_DIR_X__SIZE							0x00000008
5951#define  NV34TCL_LIGHT_SPOT_DIR_Y(x)							(0x00001210+((x)*64))
5952#define  NV34TCL_LIGHT_SPOT_DIR_Y__SIZE							0x00000008
5953#define  NV34TCL_LIGHT_SPOT_DIR_Z(x)							(0x00001214+((x)*64))
5954#define  NV34TCL_LIGHT_SPOT_DIR_Z__SIZE							0x00000008
5955#define  NV34TCL_LIGHT_SPOT_CUTOFF_D(x)							(0x00001218+((x)*64))
5956#define  NV34TCL_LIGHT_SPOT_CUTOFF_D__SIZE						0x00000008
5957#define  NV34TCL_LIGHT_POSITION_X(x)							(0x0000121c+((x)*64))
5958#define  NV34TCL_LIGHT_POSITION_X__SIZE							0x00000008
5959#define  NV34TCL_LIGHT_POSITION_Y(x)							(0x00001220+((x)*64))
5960#define  NV34TCL_LIGHT_POSITION_Y__SIZE							0x00000008
5961#define  NV34TCL_LIGHT_POSITION_Z(x)							(0x00001224+((x)*64))
5962#define  NV34TCL_LIGHT_POSITION_Z__SIZE							0x00000008
5963#define  NV34TCL_LIGHT_ATTENUATION_CONSTANT(x)						(0x00001228+((x)*64))
5964#define  NV34TCL_LIGHT_ATTENUATION_CONSTANT__SIZE					0x00000008
5965#define  NV34TCL_LIGHT_ATTENUATION_LINEAR(x)						(0x0000122c+((x)*64))
5966#define  NV34TCL_LIGHT_ATTENUATION_LINEAR__SIZE						0x00000008
5967#define  NV34TCL_LIGHT_ATTENUATION_QUADRATIC(x)						(0x00001230+((x)*64))
5968#define  NV34TCL_LIGHT_ATTENUATION_QUADRATIC__SIZE					0x00000008
5969#define  NV34TCL_FRONT_MATERIAL_SHININESS(x)						(0x00001400+((x)*4))
5970#define  NV34TCL_FRONT_MATERIAL_SHININESS__SIZE						0x00000006
5971#define  NV34TCL_ENABLED_LIGHTS								0x00001420
5972#define  NV34TCL_FP_REG_CONTROL								0x00001450
5973#define   NV34TCL_FP_REG_CONTROL_UNK1_SHIFT						16
5974#define   NV34TCL_FP_REG_CONTROL_UNK1_MASK						0xffff0000
5975#define   NV34TCL_FP_REG_CONTROL_UNK0_SHIFT						0
5976#define   NV34TCL_FP_REG_CONTROL_UNK0_MASK						0x0000ffff
5977#define  NV34TCL_VP_CLIP_PLANES_ENABLE							0x00001478
5978#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE0						(1 <<  1)
5979#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE1						(1 <<  5)
5980#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE2						(1 <<  9)
5981#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE3						(1 << 13)
5982#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE4						(1 << 17)
5983#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE5						(1 << 21)
5984#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE6						(1 << 25)
5985#define   NV34TCL_VP_CLIP_PLANES_ENABLE_PLANE7						(1 << 29)
5986#define  NV34TCL_POLYGON_STIPPLE_ENABLE							0x0000147c
5987#define  NV34TCL_POLYGON_STIPPLE_PATTERN(x)						(0x00001480+((x)*4))
5988#define  NV34TCL_POLYGON_STIPPLE_PATTERN__SIZE						0x00000020
5989#define  NV34TCL_VTX_ATTR_3F_X(x)							(0x00001500+((x)*16))
5990#define  NV34TCL_VTX_ATTR_3F_X__SIZE							0x00000010
5991#define  NV34TCL_VTX_ATTR_3F_Y(x)							(0x00001504+((x)*16))
5992#define  NV34TCL_VTX_ATTR_3F_Y__SIZE							0x00000010
5993#define  NV34TCL_VTX_ATTR_3F_Z(x)							(0x00001508+((x)*16))
5994#define  NV34TCL_VTX_ATTR_3F_Z__SIZE							0x00000010
5995#define  NV34TCL_VP_CLIP_PLANE_A(x)							(0x00001600+((x)*16))
5996#define  NV34TCL_VP_CLIP_PLANE_A__SIZE							0x00000006
5997#define  NV34TCL_VP_CLIP_PLANE_B(x)							(0x00001604+((x)*16))
5998#define  NV34TCL_VP_CLIP_PLANE_B__SIZE							0x00000006
5999#define  NV34TCL_VP_CLIP_PLANE_C(x)							(0x00001608+((x)*16))
6000#define  NV34TCL_VP_CLIP_PLANE_C__SIZE							0x00000006
6001#define  NV34TCL_VP_CLIP_PLANE_D(x)							(0x0000160c+((x)*16))
6002#define  NV34TCL_VP_CLIP_PLANE_D__SIZE							0x00000006
6003#define  NV34TCL_VTXBUF_ADDRESS(x)							(0x00001680+((x)*4))
6004#define  NV34TCL_VTXBUF_ADDRESS__SIZE							0x00000010
6005#define   NV34TCL_VTXBUF_ADDRESS_DMA1							(1 << 31)
6006#define   NV34TCL_VTXBUF_ADDRESS_OFFSET_SHIFT						0
6007#define   NV34TCL_VTXBUF_ADDRESS_OFFSET_MASK						0x0fffffff
6008#define  NV34TCL_VTXFMT(x)								(0x00001740+((x)*4))
6009#define  NV34TCL_VTXFMT__SIZE								0x00000010
6010#define   NV34TCL_VTXFMT_TYPE_SHIFT							0
6011#define   NV34TCL_VTXFMT_TYPE_MASK							0x0000000f
6012#define    NV34TCL_VTXFMT_TYPE_FLOAT							0x00000002
6013#define    NV34TCL_VTXFMT_TYPE_UBYTE							0x00000004
6014#define    NV34TCL_VTXFMT_TYPE_USHORT							0x00000005
6015#define   NV34TCL_VTXFMT_SIZE_SHIFT							4
6016#define   NV34TCL_VTXFMT_SIZE_MASK							0x000000f0
6017#define   NV34TCL_VTXFMT_STRIDE_SHIFT							8
6018#define   NV34TCL_VTXFMT_STRIDE_MASK							0x0000ff00
6019#define  NV34TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R			0x000017a0
6020#define  NV34TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G			0x000017a4
6021#define  NV34TCL_LIGHT_MODEL_BACK_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B			0x000017a8
6022#define  NV34TCL_COLOR_MATERIAL_BACK_R							0x000017b0
6023#define  NV34TCL_COLOR_MATERIAL_BACK_G							0x000017b4
6024#define  NV34TCL_COLOR_MATERIAL_BACK_B							0x000017b8
6025#define  NV34TCL_COLOR_MATERIAL_BACK_A							0x000017c0
6026#define  NV34TCL_QUERY_RESET								0x000017c8
6027#define  NV34TCL_QUERY_UNK17CC								0x000017cc
6028#define  NV34TCL_QUERY_GET								0x00001800
6029#define   NV34TCL_QUERY_GET_UNK24_SHIFT							24
6030#define   NV34TCL_QUERY_GET_UNK24_MASK							0xff000000
6031#define   NV34TCL_QUERY_GET_OFFSET_SHIFT						0
6032#define   NV34TCL_QUERY_GET_OFFSET_MASK							0x00ffffff
6033#define  NV34TCL_VERTEX_BEGIN_END							0x00001808
6034#define   NV34TCL_VERTEX_BEGIN_END_STOP							0x00000000
6035#define   NV34TCL_VERTEX_BEGIN_END_POINTS						0x00000001
6036#define   NV34TCL_VERTEX_BEGIN_END_LINES						0x00000002
6037#define   NV34TCL_VERTEX_BEGIN_END_LINE_LOOP						0x00000003
6038#define   NV34TCL_VERTEX_BEGIN_END_LINE_STRIP						0x00000004
6039#define   NV34TCL_VERTEX_BEGIN_END_TRIANGLES						0x00000005
6040#define   NV34TCL_VERTEX_BEGIN_END_TRIANGLE_STRIP					0x00000006
6041#define   NV34TCL_VERTEX_BEGIN_END_TRIANGLE_FAN						0x00000007
6042#define   NV34TCL_VERTEX_BEGIN_END_QUADS						0x00000008
6043#define   NV34TCL_VERTEX_BEGIN_END_QUAD_STRIP						0x00000009
6044#define   NV34TCL_VERTEX_BEGIN_END_POLYGON						0x0000000a
6045#define  NV34TCL_VB_ELEMENT_U16								0x0000180c
6046#define   NV34TCL_VB_ELEMENT_U16_I0_SHIFT						0
6047#define   NV34TCL_VB_ELEMENT_U16_I0_MASK						0x0000ffff
6048#define   NV34TCL_VB_ELEMENT_U16_I1_SHIFT						16
6049#define   NV34TCL_VB_ELEMENT_U16_I1_MASK						0xffff0000
6050#define  NV34TCL_VB_ELEMENT_U32								0x00001810
6051#define  NV34TCL_VB_VERTEX_BATCH							0x00001814
6052#define   NV34TCL_VB_VERTEX_BATCH_OFFSET_SHIFT						0
6053#define   NV34TCL_VB_VERTEX_BATCH_OFFSET_MASK						0x00ffffff
6054#define   NV34TCL_VB_VERTEX_BATCH_COUNT_SHIFT						24
6055#define   NV34TCL_VB_VERTEX_BATCH_COUNT_MASK						0xff000000
6056#define  NV34TCL_VERTEX_DATA								0x00001818
6057#define  NV34TCL_IDXBUF_ADDRESS								0x0000181c
6058#define  NV34TCL_IDXBUF_FORMAT								0x00001820
6059#define   NV34TCL_IDXBUF_FORMAT_TYPE_SHIFT						4
6060#define   NV34TCL_IDXBUF_FORMAT_TYPE_MASK						0x000000f0
6061#define    NV34TCL_IDXBUF_FORMAT_TYPE_U32						0x00000000
6062#define    NV34TCL_IDXBUF_FORMAT_TYPE_U16						0x00000010
6063#define   NV34TCL_IDXBUF_FORMAT_DMA1							(1 <<  0)
6064#define  NV34TCL_VB_INDEX_BATCH								0x00001824
6065#define   NV34TCL_VB_INDEX_BATCH_COUNT_SHIFT						24
6066#define   NV34TCL_VB_INDEX_BATCH_COUNT_MASK						0xff000000
6067#define   NV34TCL_VB_INDEX_BATCH_START_SHIFT						0
6068#define   NV34TCL_VB_INDEX_BATCH_START_MASK						0x00ffffff
6069#define  NV34TCL_POLYGON_MODE_FRONT							0x00001828
6070#define   NV34TCL_POLYGON_MODE_FRONT_POINT						0x00001b00
6071#define   NV34TCL_POLYGON_MODE_FRONT_LINE						0x00001b01
6072#define   NV34TCL_POLYGON_MODE_FRONT_FILL						0x00001b02
6073#define  NV34TCL_POLYGON_MODE_BACK							0x0000182c
6074#define   NV34TCL_POLYGON_MODE_BACK_POINT						0x00001b00
6075#define   NV34TCL_POLYGON_MODE_BACK_LINE						0x00001b01
6076#define   NV34TCL_POLYGON_MODE_BACK_FILL						0x00001b02
6077#define  NV34TCL_CULL_FACE								0x00001830
6078#define   NV34TCL_CULL_FACE_FRONT							0x00000404
6079#define   NV34TCL_CULL_FACE_BACK							0x00000405
6080#define   NV34TCL_CULL_FACE_FRONT_AND_BACK						0x00000408
6081#define  NV34TCL_FRONT_FACE								0x00001834
6082#define   NV34TCL_FRONT_FACE_CW								0x00000900
6083#define   NV34TCL_FRONT_FACE_CCW							0x00000901
6084#define  NV34TCL_POLYGON_SMOOTH_ENABLE							0x00001838
6085#define  NV34TCL_CULL_FACE_ENABLE							0x0000183c
6086#define  NV34TCL_TX_PALETTE_OFFSET(x)							(0x00001840+((x)*4))
6087#define  NV34TCL_TX_PALETTE_OFFSET__SIZE						0x00000004
6088#define  NV34TCL_VTX_ATTR_2F_X(x)							(0x00001880+((x)*8))
6089#define  NV34TCL_VTX_ATTR_2F_X__SIZE							0x00000010
6090#define  NV34TCL_VTX_ATTR_2F_Y(x)							(0x00001884+((x)*8))
6091#define  NV34TCL_VTX_ATTR_2F_Y__SIZE							0x00000010
6092#define  NV34TCL_VTX_ATTR_2I(x)								(0x00001900+((x)*4))
6093#define  NV34TCL_VTX_ATTR_2I__SIZE							0x00000010
6094#define   NV34TCL_VTX_ATTR_2I_X_SHIFT							0
6095#define   NV34TCL_VTX_ATTR_2I_X_MASK							0x0000ffff
6096#define   NV34TCL_VTX_ATTR_2I_Y_SHIFT							16
6097#define   NV34TCL_VTX_ATTR_2I_Y_MASK							0xffff0000
6098#define  NV34TCL_VTX_ATTR_4UB(x)							(0x00001940+((x)*4))
6099#define  NV34TCL_VTX_ATTR_4UB__SIZE							0x00000010
6100#define   NV34TCL_VTX_ATTR_4UB_X_SHIFT							0
6101#define   NV34TCL_VTX_ATTR_4UB_X_MASK							0x000000ff
6102#define   NV34TCL_VTX_ATTR_4UB_Y_SHIFT							8
6103#define   NV34TCL_VTX_ATTR_4UB_Y_MASK							0x0000ff00
6104#define   NV34TCL_VTX_ATTR_4UB_Z_SHIFT							16
6105#define   NV34TCL_VTX_ATTR_4UB_Z_MASK							0x00ff0000
6106#define   NV34TCL_VTX_ATTR_4UB_W_SHIFT							24
6107#define   NV34TCL_VTX_ATTR_4UB_W_MASK							0xff000000
6108#define  NV34TCL_VTX_ATTR_4I_XY(x)							(0x00001980+((x)*8))
6109#define  NV34TCL_VTX_ATTR_4I_XY__SIZE							0x00000010
6110#define   NV34TCL_VTX_ATTR_4I_XY_X_SHIFT						0
6111#define   NV34TCL_VTX_ATTR_4I_XY_X_MASK							0x0000ffff
6112#define   NV34TCL_VTX_ATTR_4I_XY_Y_SHIFT						16
6113#define   NV34TCL_VTX_ATTR_4I_XY_Y_MASK							0xffff0000
6114#define  NV34TCL_VTX_ATTR_4I_ZW(x)							(0x00001984+((x)*8))
6115#define  NV34TCL_VTX_ATTR_4I_ZW__SIZE							0x00000010
6116#define   NV34TCL_VTX_ATTR_4I_ZW_Z_SHIFT						0
6117#define   NV34TCL_VTX_ATTR_4I_ZW_Z_MASK							0x0000ffff
6118#define   NV34TCL_VTX_ATTR_4I_ZW_W_SHIFT						16
6119#define   NV34TCL_VTX_ATTR_4I_ZW_W_MASK							0xffff0000
6120#define  NV34TCL_TX_OFFSET(x)								(0x00001a00+((x)*32))
6121#define  NV34TCL_TX_OFFSET__SIZE							0x00000004
6122#define  NV34TCL_TX_FORMAT(x)								(0x00001a04+((x)*32))
6123#define  NV34TCL_TX_FORMAT__SIZE							0x00000004
6124#define   NV34TCL_TX_FORMAT_DMA0							(1 <<  0)
6125#define   NV34TCL_TX_FORMAT_DMA1							(1 <<  1)
6126#define   NV34TCL_TX_FORMAT_CUBIC							(1 <<  2)
6127#define   NV34TCL_TX_FORMAT_NO_BORDER							(1 <<  3)
6128#define   NV34TCL_TX_FORMAT_DIMS_SHIFT							4
6129#define   NV34TCL_TX_FORMAT_DIMS_MASK							0x000000f0
6130#define    NV34TCL_TX_FORMAT_DIMS_1D							0x00000010
6131#define    NV34TCL_TX_FORMAT_DIMS_2D							0x00000020
6132#define    NV34TCL_TX_FORMAT_DIMS_3D							0x00000030
6133#define   NV34TCL_TX_FORMAT_FORMAT_SHIFT						8
6134#define   NV34TCL_TX_FORMAT_FORMAT_MASK							0x0000ff00
6135#define    NV34TCL_TX_FORMAT_FORMAT_L8							0x00000000
6136#define    NV34TCL_TX_FORMAT_FORMAT_A8							0x00000100
6137#define    NV34TCL_TX_FORMAT_FORMAT_A1R5G5B5						0x00000200
6138#define    NV34TCL_TX_FORMAT_FORMAT_A8_RECT						0x00000300
6139#define    NV34TCL_TX_FORMAT_FORMAT_A4R4G4B4						0x00000400
6140#define    NV34TCL_TX_FORMAT_FORMAT_R5G6B5						0x00000500
6141#define    NV34TCL_TX_FORMAT_FORMAT_A8R8G8B8						0x00000600
6142#define    NV34TCL_TX_FORMAT_FORMAT_X8R8G8B8						0x00000700
6143#define    NV34TCL_TX_FORMAT_FORMAT_INDEX8						0x00000b00
6144#define    NV34TCL_TX_FORMAT_FORMAT_DXT1						0x00000c00
6145#define    NV34TCL_TX_FORMAT_FORMAT_DXT3						0x00000e00
6146#define    NV34TCL_TX_FORMAT_FORMAT_DXT5						0x00000f00
6147#define    NV34TCL_TX_FORMAT_FORMAT_A1R5G5B5_RECT					0x00001000
6148#define    NV34TCL_TX_FORMAT_FORMAT_R5G6B5_RECT						0x00001100
6149#define    NV34TCL_TX_FORMAT_FORMAT_A8R8G8B8_RECT					0x00001200
6150#define    NV34TCL_TX_FORMAT_FORMAT_L8_RECT						0x00001300
6151#define    NV34TCL_TX_FORMAT_FORMAT_A8L8						0x00001a00
6152#define    NV34TCL_TX_FORMAT_FORMAT_A8_RECT2						0x00001b00
6153#define    NV34TCL_TX_FORMAT_FORMAT_A4R4G4B4_RECT					0x00001d00
6154#define    NV34TCL_TX_FORMAT_FORMAT_R8G8B8_RECT						0x00001e00
6155#define    NV34TCL_TX_FORMAT_FORMAT_L8A8_RECT						0x00002000
6156#define    NV34TCL_TX_FORMAT_FORMAT_DSDT						0x00002800
6157#define    NV34TCL_TX_FORMAT_FORMAT_A16							0x00003200
6158#define    NV34TCL_TX_FORMAT_FORMAT_HILO16						0x00003300
6159#define    NV34TCL_TX_FORMAT_FORMAT_A16_RECT						0x00003500
6160#define    NV34TCL_TX_FORMAT_FORMAT_HILO16_RECT						0x00003600
6161#define    NV34TCL_TX_FORMAT_FORMAT_HILO8						0x00004400
6162#define    NV34TCL_TX_FORMAT_FORMAT_SIGNED_HILO8					0x00004500
6163#define    NV34TCL_TX_FORMAT_FORMAT_HILO8_RECT						0x00004600
6164#define    NV34TCL_TX_FORMAT_FORMAT_SIGNED_HILO8_RECT					0x00004700
6165#define    NV34TCL_TX_FORMAT_FORMAT_FLOAT_RGBA16_NV					0x00004a00
6166#define    NV34TCL_TX_FORMAT_FORMAT_FLOAT_RGBA32_NV					0x00004b00
6167#define    NV34TCL_TX_FORMAT_FORMAT_FLOAT_R32_NV					0x00004c00
6168#define   NV34TCL_TX_FORMAT_MIPMAP							(1 << 19)
6169#define   NV34TCL_TX_FORMAT_BASE_SIZE_U_SHIFT						20
6170#define   NV34TCL_TX_FORMAT_BASE_SIZE_U_MASK						0x00f00000
6171#define   NV34TCL_TX_FORMAT_BASE_SIZE_V_SHIFT						24
6172#define   NV34TCL_TX_FORMAT_BASE_SIZE_V_MASK						0x0f000000
6173#define   NV34TCL_TX_FORMAT_BASE_SIZE_W_SHIFT						28
6174#define   NV34TCL_TX_FORMAT_BASE_SIZE_W_MASK						0xf0000000
6175#define  NV34TCL_TX_WRAP(x)								(0x00001a08+((x)*32))
6176#define  NV34TCL_TX_WRAP__SIZE								0x00000004
6177#define   NV34TCL_TX_WRAP_S_SHIFT							0
6178#define   NV34TCL_TX_WRAP_S_MASK							0x000000ff
6179#define    NV34TCL_TX_WRAP_S_REPEAT							0x00000001
6180#define    NV34TCL_TX_WRAP_S_MIRRORED_REPEAT						0x00000002
6181#define    NV34TCL_TX_WRAP_S_CLAMP_TO_EDGE						0x00000003
6182#define    NV34TCL_TX_WRAP_S_CLAMP_TO_BORDER						0x00000004
6183#define    NV34TCL_TX_WRAP_S_CLAMP							0x00000005
6184#define   NV34TCL_TX_WRAP_T_SHIFT							8
6185#define   NV34TCL_TX_WRAP_T_MASK							0x00000f00
6186#define    NV34TCL_TX_WRAP_T_REPEAT							0x00000100
6187#define    NV34TCL_TX_WRAP_T_MIRRORED_REPEAT						0x00000200
6188#define    NV34TCL_TX_WRAP_T_CLAMP_TO_EDGE						0x00000300
6189#define    NV34TCL_TX_WRAP_T_CLAMP_TO_BORDER						0x00000400
6190#define    NV34TCL_TX_WRAP_T_CLAMP							0x00000500
6191#define   NV34TCL_TX_WRAP_EXPAND_NORMAL_SHIFT						12
6192#define   NV34TCL_TX_WRAP_EXPAND_NORMAL_MASK						0x0000f000
6193#define   NV34TCL_TX_WRAP_R_SHIFT							16
6194#define   NV34TCL_TX_WRAP_R_MASK							0x000f0000
6195#define    NV34TCL_TX_WRAP_R_REPEAT							0x00010000
6196#define    NV34TCL_TX_WRAP_R_MIRRORED_REPEAT						0x00020000
6197#define    NV34TCL_TX_WRAP_R_CLAMP_TO_EDGE						0x00030000
6198#define    NV34TCL_TX_WRAP_R_CLAMP_TO_BORDER						0x00040000
6199#define    NV34TCL_TX_WRAP_R_CLAMP							0x00050000
6200#define   NV34TCL_TX_WRAP_RCOMP_SHIFT							28
6201#define   NV34TCL_TX_WRAP_RCOMP_MASK							0xf0000000
6202#define    NV34TCL_TX_WRAP_RCOMP_NEVER							0x00000000
6203#define    NV34TCL_TX_WRAP_RCOMP_GREATER						0x10000000
6204#define    NV34TCL_TX_WRAP_RCOMP_EQUAL							0x20000000
6205#define    NV34TCL_TX_WRAP_RCOMP_GEQUAL							0x30000000
6206#define    NV34TCL_TX_WRAP_RCOMP_LESS							0x40000000
6207#define    NV34TCL_TX_WRAP_RCOMP_NOTEQUAL						0x50000000
6208#define    NV34TCL_TX_WRAP_RCOMP_LEQUAL							0x60000000
6209#define    NV34TCL_TX_WRAP_RCOMP_ALWAYS							0x70000000
6210#define  NV34TCL_TX_ENABLE(x)								(0x00001a0c+((x)*32))
6211#define  NV34TCL_TX_ENABLE__SIZE							0x00000004
6212#define   NV34TCL_TX_ENABLE_ANISO_SHIFT							4
6213#define   NV34TCL_TX_ENABLE_ANISO_MASK							0x00000030
6214#define    NV34TCL_TX_ENABLE_ANISO_NONE							0x00000000
6215#define    NV34TCL_TX_ENABLE_ANISO_2X							0x00000010
6216#define    NV34TCL_TX_ENABLE_ANISO_4X							0x00000020
6217#define    NV34TCL_TX_ENABLE_ANISO_8X							0x00000030
6218#define   NV34TCL_TX_ENABLE_MIPMAP_MAX_LOD_SHIFT					14
6219#define   NV34TCL_TX_ENABLE_MIPMAP_MAX_LOD_MASK						0x0003c000
6220#define   NV34TCL_TX_ENABLE_MIPMAP_MIN_LOD_SHIFT					26
6221#define   NV34TCL_TX_ENABLE_MIPMAP_MIN_LOD_MASK						0x3c000000
6222#define   NV34TCL_TX_ENABLE_ENABLE							(1 << 30)
6223#define  NV34TCL_TX_SWIZZLE(x)								(0x00001a10+((x)*32))
6224#define  NV34TCL_TX_SWIZZLE__SIZE							0x00000004
6225#define   NV34TCL_TX_SWIZZLE_S0_X_SHIFT							14
6226#define   NV34TCL_TX_SWIZZLE_S0_X_MASK							0x0000c000
6227#define    NV34TCL_TX_SWIZZLE_S0_X_ZERO							0x00000000
6228#define    NV34TCL_TX_SWIZZLE_S0_X_ONE							0x00004000
6229#define    NV34TCL_TX_SWIZZLE_S0_X_S1							0x00008000
6230#define   NV34TCL_TX_SWIZZLE_S0_Y_SHIFT							12
6231#define   NV34TCL_TX_SWIZZLE_S0_Y_MASK							0x00003000
6232#define    NV34TCL_TX_SWIZZLE_S0_Y_ZERO							0x00000000
6233#define    NV34TCL_TX_SWIZZLE_S0_Y_ONE							0x00001000
6234#define    NV34TCL_TX_SWIZZLE_S0_Y_S1							0x00002000
6235#define   NV34TCL_TX_SWIZZLE_S0_Z_SHIFT							10
6236#define   NV34TCL_TX_SWIZZLE_S0_Z_MASK							0x00000c00
6237#define    NV34TCL_TX_SWIZZLE_S0_Z_ZERO							0x00000000
6238#define    NV34TCL_TX_SWIZZLE_S0_Z_ONE							0x00000400
6239#define    NV34TCL_TX_SWIZZLE_S0_Z_S1							0x00000800
6240#define   NV34TCL_TX_SWIZZLE_S0_W_SHIFT							8
6241#define   NV34TCL_TX_SWIZZLE_S0_W_MASK							0x00000300
6242#define    NV34TCL_TX_SWIZZLE_S0_W_ZERO							0x00000000
6243#define    NV34TCL_TX_SWIZZLE_S0_W_ONE							0x00000100
6244#define    NV34TCL_TX_SWIZZLE_S0_W_S1							0x00000200
6245#define   NV34TCL_TX_SWIZZLE_S1_X_SHIFT							6
6246#define   NV34TCL_TX_SWIZZLE_S1_X_MASK							0x000000c0
6247#define    NV34TCL_TX_SWIZZLE_S1_X_W							0x00000000
6248#define    NV34TCL_TX_SWIZZLE_S1_X_Z							0x00000040
6249#define    NV34TCL_TX_SWIZZLE_S1_X_Y							0x00000080
6250#define    NV34TCL_TX_SWIZZLE_S1_X_X							0x000000c0
6251#define   NV34TCL_TX_SWIZZLE_S1_Y_SHIFT							4
6252#define   NV34TCL_TX_SWIZZLE_S1_Y_MASK							0x00000030
6253#define    NV34TCL_TX_SWIZZLE_S1_Y_W							0x00000000
6254#define    NV34TCL_TX_SWIZZLE_S1_Y_Z							0x00000010
6255#define    NV34TCL_TX_SWIZZLE_S1_Y_Y							0x00000020
6256#define    NV34TCL_TX_SWIZZLE_S1_Y_X							0x00000030
6257#define   NV34TCL_TX_SWIZZLE_S1_Z_SHIFT							2
6258#define   NV34TCL_TX_SWIZZLE_S1_Z_MASK							0x0000000c
6259#define    NV34TCL_TX_SWIZZLE_S1_Z_W							0x00000000
6260#define    NV34TCL_TX_SWIZZLE_S1_Z_Z							0x00000004
6261#define    NV34TCL_TX_SWIZZLE_S1_Z_Y							0x00000008
6262#define    NV34TCL_TX_SWIZZLE_S1_Z_X							0x0000000c
6263#define   NV34TCL_TX_SWIZZLE_S1_W_SHIFT							0
6264#define   NV34TCL_TX_SWIZZLE_S1_W_MASK							0x00000003
6265#define    NV34TCL_TX_SWIZZLE_S1_W_W							0x00000000
6266#define    NV34TCL_TX_SWIZZLE_S1_W_Z							0x00000001
6267#define    NV34TCL_TX_SWIZZLE_S1_W_Y							0x00000002
6268#define    NV34TCL_TX_SWIZZLE_S1_W_X							0x00000003
6269#define   NV34TCL_TX_SWIZZLE_RECT_PITCH_SHIFT						16
6270#define   NV34TCL_TX_SWIZZLE_RECT_PITCH_MASK						0xffff0000
6271#define  NV34TCL_TX_FILTER(x)								(0x00001a14+((x)*32))
6272#define  NV34TCL_TX_FILTER__SIZE							0x00000004
6273#define   NV34TCL_TX_FILTER_LOD_BIAS_SHIFT						8
6274#define   NV34TCL_TX_FILTER_LOD_BIAS_MASK						0x00000f00
6275#define   NV34TCL_TX_FILTER_MINIFY_SHIFT						16
6276#define   NV34TCL_TX_FILTER_MINIFY_MASK							0x000f0000
6277#define    NV34TCL_TX_FILTER_MINIFY_NEAREST						0x00010000
6278#define    NV34TCL_TX_FILTER_MINIFY_LINEAR						0x00020000
6279#define    NV34TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_NEAREST				0x00030000
6280#define    NV34TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_NEAREST				0x00040000
6281#define    NV34TCL_TX_FILTER_MINIFY_NEAREST_MIPMAP_LINEAR				0x00050000
6282#define    NV34TCL_TX_FILTER_MINIFY_LINEAR_MIPMAP_LINEAR				0x00060000
6283#define   NV34TCL_TX_FILTER_MAGNIFY_SHIFT						24
6284#define   NV34TCL_TX_FILTER_MAGNIFY_MASK						0x0f000000
6285#define    NV34TCL_TX_FILTER_MAGNIFY_NEAREST						0x01000000
6286#define    NV34TCL_TX_FILTER_MAGNIFY_LINEAR						0x02000000
6287#define   NV34TCL_TX_FILTER_SIGNED_BLUE							(1 << 28)
6288#define   NV34TCL_TX_FILTER_SIGNED_GREEN						(1 << 29)
6289#define   NV34TCL_TX_FILTER_SIGNED_RED							(1 << 30)
6290#define   NV34TCL_TX_FILTER_SIGNED_ALPHA						(1 << 31)
6291#define  NV34TCL_TX_NPOT_SIZE(x)							(0x00001a18+((x)*32))
6292#define  NV34TCL_TX_NPOT_SIZE__SIZE							0x00000004
6293#define   NV34TCL_TX_NPOT_SIZE_H_SHIFT							0
6294#define   NV34TCL_TX_NPOT_SIZE_H_MASK							0x0000ffff
6295#define   NV34TCL_TX_NPOT_SIZE_W_SHIFT							16
6296#define   NV34TCL_TX_NPOT_SIZE_W_MASK							0xffff0000
6297#define  NV34TCL_TX_BORDER_COLOR(x)							(0x00001a1c+((x)*32))
6298#define  NV34TCL_TX_BORDER_COLOR__SIZE							0x00000004
6299#define   NV34TCL_TX_BORDER_COLOR_B_SHIFT						0
6300#define   NV34TCL_TX_BORDER_COLOR_B_MASK						0x000000ff
6301#define   NV34TCL_TX_BORDER_COLOR_G_SHIFT						8
6302#define   NV34TCL_TX_BORDER_COLOR_G_MASK						0x0000ff00
6303#define   NV34TCL_TX_BORDER_COLOR_R_SHIFT						16
6304#define   NV34TCL_TX_BORDER_COLOR_R_MASK						0x00ff0000
6305#define   NV34TCL_TX_BORDER_COLOR_A_SHIFT						24
6306#define   NV34TCL_TX_BORDER_COLOR_A_MASK						0xff000000
6307#define  NV34TCL_VTX_ATTR_4F_X(x)							(0x00001c00+((x)*16))
6308#define  NV34TCL_VTX_ATTR_4F_X__SIZE							0x00000010
6309#define  NV34TCL_VTX_ATTR_4F_Y(x)							(0x00001c04+((x)*16))
6310#define  NV34TCL_VTX_ATTR_4F_Y__SIZE							0x00000010
6311#define  NV34TCL_VTX_ATTR_4F_Z(x)							(0x00001c08+((x)*16))
6312#define  NV34TCL_VTX_ATTR_4F_Z__SIZE							0x00000010
6313#define  NV34TCL_VTX_ATTR_4F_W(x)							(0x00001c0c+((x)*16))
6314#define  NV34TCL_VTX_ATTR_4F_W__SIZE							0x00000010
6315#define  NV34TCL_FP_CONTROL								0x00001d60
6316#define   NV34TCL_FP_CONTROL_USES_KIL							(1 <<  7)
6317#define   NV34TCL_FP_CONTROL_USED_REGS_MINUS1_DIV2_SHIFT				0
6318#define   NV34TCL_FP_CONTROL_USED_REGS_MINUS1_DIV2_MASK					0x0000000f
6319#define  NV34TCL_DEPTH_UNK17D8								0x00001d78
6320#define   NV34TCL_DEPTH_UNK17D8_CLAMP_SHIFT						4
6321#define   NV34TCL_DEPTH_UNK17D8_CLAMP_MASK						0x000000f0
6322#define  NV34TCL_MULTISAMPLE_CONTROL							0x00001d7c
6323#define   NV34TCL_MULTISAMPLE_CONTROL_ENABLE						(1 <<  0)
6324#define   NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_ALPHA_TO_COVERAGE				(1 <<  4)
6325#define   NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_ALPHA_TO_ONE				(1 <<  8)
6326#define   NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_COVERAGE_SHIFT				16
6327#define   NV34TCL_MULTISAMPLE_CONTROL_SAMPLE_COVERAGE_MASK				0xffff0000
6328#define  NV34TCL_CLEAR_DEPTH_VALUE							0x00001d8c
6329#define  NV34TCL_CLEAR_COLOR_VALUE							0x00001d90
6330#define   NV34TCL_CLEAR_COLOR_VALUE_B_SHIFT						0
6331#define   NV34TCL_CLEAR_COLOR_VALUE_B_MASK						0x000000ff
6332#define   NV34TCL_CLEAR_COLOR_VALUE_G_SHIFT						8
6333#define   NV34TCL_CLEAR_COLOR_VALUE_G_MASK						0x0000ff00
6334#define   NV34TCL_CLEAR_COLOR_VALUE_R_SHIFT						16
6335#define   NV34TCL_CLEAR_COLOR_VALUE_R_MASK						0x00ff0000
6336#define   NV34TCL_CLEAR_COLOR_VALUE_A_SHIFT						24
6337#define   NV34TCL_CLEAR_COLOR_VALUE_A_MASK						0xff000000
6338#define  NV34TCL_CLEAR_BUFFERS								0x00001d94
6339#define   NV34TCL_CLEAR_BUFFERS_COLOR_A							(1 <<  7)
6340#define   NV34TCL_CLEAR_BUFFERS_COLOR_B							(1 <<  6)
6341#define   NV34TCL_CLEAR_BUFFERS_COLOR_G							(1 <<  5)
6342#define   NV34TCL_CLEAR_BUFFERS_COLOR_R							(1 <<  4)
6343#define   NV34TCL_CLEAR_BUFFERS_STENCIL							(1 <<  1)
6344#define   NV34TCL_CLEAR_BUFFERS_DEPTH							(1 <<  0)
6345#define  NV34TCL_DO_VERTICES								0x00001dac
6346#define  NV34TCL_LINE_STIPPLE_ENABLE							0x00001db4
6347#define  NV34TCL_LINE_STIPPLE_PATTERN							0x00001db8
6348#define   NV34TCL_LINE_STIPPLE_PATTERN_FACTOR_SHIFT					0
6349#define   NV34TCL_LINE_STIPPLE_PATTERN_FACTOR_MASK					0x0000ffff
6350#define   NV34TCL_LINE_STIPPLE_PATTERN_PATTERN_SHIFT					16
6351#define   NV34TCL_LINE_STIPPLE_PATTERN_PATTERN_MASK					0xffff0000
6352#define  NV34TCL_BACK_MATERIAL_SHININESS(x)						(0x00001e20+((x)*4))
6353#define  NV34TCL_BACK_MATERIAL_SHININESS__SIZE						0x00000006
6354#define  NV34TCL_VTX_ATTR_1F(x)								(0x00001e40+((x)*4))
6355#define  NV34TCL_VTX_ATTR_1F__SIZE							0x00000010
6356#define  NV34TCL_ENGINE									0x00001e94
6357#define   NV34TCL_ENGINE_FP								(1 <<  0)
6358#define   NV34TCL_ENGINE_VP								(1 <<  1)
6359#define   NV34TCL_ENGINE_FIXED								(1 <<  2)
6360#define  NV34TCL_VP_UPLOAD_FROM_ID							0x00001e9c
6361#define  NV34TCL_VP_START_FROM_ID							0x00001ea0
6362#define  NV34TCL_POINT_PARAMETERS(x)							(0x00001ec0+((x)*4))
6363#define  NV34TCL_POINT_PARAMETERS__SIZE							0x00000008
6364#define  NV34TCL_POINT_SIZE								0x00001ee0
6365#define  NV34TCL_POINT_PARAMETERS_ENABLE						0x00001ee4
6366#define  NV34TCL_POINT_SPRITE								0x00001ee8
6367#define   NV34TCL_POINT_SPRITE_ENABLE							(1 <<  0)
6368#define   NV34TCL_POINT_SPRITE_R_MODE_SHIFT						1
6369#define   NV34TCL_POINT_SPRITE_R_MODE_MASK						0x00000006
6370#define    NV34TCL_POINT_SPRITE_R_MODE_ZERO						0x00000000
6371#define    NV34TCL_POINT_SPRITE_R_MODE_R						0x00000002
6372#define    NV34TCL_POINT_SPRITE_R_MODE_S						0x00000004
6373#define   NV34TCL_POINT_SPRITE_COORD_REPLACE						(1 << 11)
6374#define  NV34TCL_VP_UPLOAD_CONST_ID							0x00001efc
6375#define  NV34TCL_VP_UPLOAD_CONST_X(x)							(0x00001f00+((x)*16))
6376#define  NV34TCL_VP_UPLOAD_CONST_X__SIZE						0x00000004
6377#define  NV34TCL_VP_UPLOAD_CONST_Y(x)							(0x00001f04+((x)*16))
6378#define  NV34TCL_VP_UPLOAD_CONST_Y__SIZE						0x00000004
6379#define  NV34TCL_VP_UPLOAD_CONST_Z(x)							(0x00001f08+((x)*16))
6380#define  NV34TCL_VP_UPLOAD_CONST_Z__SIZE						0x00000004
6381#define  NV34TCL_VP_UPLOAD_CONST_W(x)							(0x00001f0c+((x)*16))
6382#define  NV34TCL_VP_UPLOAD_CONST_W__SIZE						0x00000004
6383#define  NV34TCL_UNK1f80(x)								(0x00001f80+((x)*4))
6384#define  NV34TCL_UNK1f80__SIZE								0x00000010
6385
6386
6387#define NV40_CONTEXT_SURFACES_2D							0x00003062
6388
6389
6390
6391#define NV40_STRETCHED_IMAGE_FROM_CPU							0x00003066
6392
6393
6394
6395#define NV40_TEXTURE_FROM_CPU								0x0000307b
6396
6397
6398
6399#define NV40_SCALED_IMAGE_FROM_MEMORY							0x00003089
6400
6401
6402
6403#define NV40_IMAGE_FROM_CPU								0x0000308a
6404
6405
6406
6407#define NV40_SWIZZLED_SURFACE								0x0000309e
6408
6409
6410
6411#define NV40TCL										0x00004097
6412
6413#define  NV40TCL_REF_CNT								0x00000050
6414#define  NV40TCL_NOP									0x00000100
6415#define  NV40TCL_NOTIFY									0x00000104
6416#define  NV40TCL_DMA_NOTIFY								0x00000180
6417#define  NV40TCL_DMA_TEXTURE0								0x00000184
6418#define  NV40TCL_DMA_TEXTURE1								0x00000188
6419#define  NV40TCL_DMA_COLOR1								0x0000018c
6420#define  NV40TCL_DMA_COLOR0								0x00000194
6421#define  NV40TCL_DMA_ZETA								0x00000198
6422#define  NV40TCL_DMA_VTXBUF0								0x0000019c
6423#define  NV40TCL_DMA_VTXBUF1								0x000001a0
6424#define  NV40TCL_DMA_FENCE								0x000001a4
6425#define  NV40TCL_DMA_QUERY								0x000001a8
6426#define  NV40TCL_DMA_UNK01AC								0x000001ac
6427#define  NV40TCL_DMA_UNK01B0								0x000001b0
6428#define  NV40TCL_DMA_COLOR2								0x000001b4
6429#define  NV40TCL_DMA_COLOR3								0x000001b8
6430#define  NV40TCL_RT_HORIZ								0x00000200
6431#define   NV40TCL_RT_HORIZ_W_SHIFT							16
6432#define   NV40TCL_RT_HORIZ_W_MASK							0xffff0000
6433#define   NV40TCL_RT_HORIZ_X_SHIFT							0
6434#define   NV40TCL_RT_HORIZ_X_MASK							0x0000ffff
6435#define  NV40TCL_RT_VERT								0x00000204
6436#define   NV40TCL_RT_VERT_H_SHIFT							16
6437#define   NV40TCL_RT_VERT_H_MASK							0xffff0000
6438#define   NV40TCL_RT_VERT_Y_SHIFT							0
6439#define   NV40TCL_RT_VERT_Y_MASK							0x0000ffff
6440#define  NV40TCL_RT_FORMAT								0x00000208
6441#define   NV40TCL_RT_FORMAT_LOG2_HEIGHT_SHIFT						24
6442#define   NV40TCL_RT_FORMAT_LOG2_HEIGHT_MASK						0xff000000
6443#define   NV40TCL_RT_FORMAT_LOG2_WIDTH_SHIFT						16
6444#define   NV40TCL_RT_FORMAT_LOG2_WIDTH_MASK						0x00ff0000
6445#define   NV40TCL_RT_FORMAT_TYPE_SHIFT							8
6446#define   NV40TCL_RT_FORMAT_TYPE_MASK							0x00000f00
6447#define    NV40TCL_RT_FORMAT_TYPE_LINEAR						0x00000100
6448#define    NV40TCL_RT_FORMAT_TYPE_SWIZZLED						0x00000200
6449#define   NV40TCL_RT_FORMAT_ZETA_SHIFT							5
6450#define   NV40TCL_RT_FORMAT_ZETA_MASK							0x000000e0
6451#define    NV40TCL_RT_FORMAT_ZETA_Z16							0x00000020
6452#define    NV40TCL_RT_FORMAT_ZETA_Z24S8							0x00000040
6453#define   NV40TCL_RT_FORMAT_COLOR_SHIFT							0
6454#define   NV40TCL_RT_FORMAT_COLOR_MASK							0x0000001f
6455#define    NV40TCL_RT_FORMAT_COLOR_R5G6B5						0x00000003
6456#define    NV40TCL_RT_FORMAT_COLOR_X8R8G8B8						0x00000005
6457#define    NV40TCL_RT_FORMAT_COLOR_A8R8G8B8						0x00000008
6458#define    NV40TCL_RT_FORMAT_COLOR_B8							0x00000009
6459#define    NV40TCL_RT_FORMAT_COLOR_UNKNOWN						0x0000000d
6460#define    NV40TCL_RT_FORMAT_COLOR_X8B8G8R8						0x0000000f
6461#define    NV40TCL_RT_FORMAT_COLOR_A8B8G8R8						0x00000010
6462#define  NV40TCL_COLOR0_PITCH								0x0000020c
6463#define  NV40TCL_COLOR0_OFFSET								0x00000210
6464#define  NV40TCL_ZETA_OFFSET								0x00000214
6465#define  NV40TCL_COLOR1_OFFSET								0x00000218
6466#define  NV40TCL_COLOR1_PITCH								0x0000021c
6467#define  NV40TCL_RT_ENABLE								0x00000220
6468#define   NV40TCL_RT_ENABLE_MRT								(1 <<  4)
6469#define   NV40TCL_RT_ENABLE_COLOR3							(1 <<  3)
6470#define   NV40TCL_RT_ENABLE_COLOR2							(1 <<  2)
6471#define   NV40TCL_RT_ENABLE_COLOR1							(1 <<  1)
6472#define   NV40TCL_RT_ENABLE_COLOR0							(1 <<  0)
6473#define  NV40TCL_ZETA_PITCH								0x0000022c
6474#define  NV40TCL_COLOR2_PITCH								0x00000280
6475#define  NV40TCL_COLOR3_PITCH								0x00000284
6476#define  NV40TCL_COLOR2_OFFSET								0x00000288
6477#define  NV40TCL_COLOR3_OFFSET								0x0000028c
6478#define  NV40TCL_VIEWPORT_CLIP_HORIZ(x)							(0x000002c0+((x)*8))
6479#define  NV40TCL_VIEWPORT_CLIP_HORIZ__SIZE						0x00000008
6480#define  NV40TCL_VIEWPORT_CLIP_VERT(x)							(0x000002c4+((x)*8))
6481#define  NV40TCL_VIEWPORT_CLIP_VERT__SIZE						0x00000008
6482#define  NV40TCL_DITHER_ENABLE								0x00000300
6483#define  NV40TCL_ALPHA_TEST_ENABLE							0x00000304
6484#define  NV40TCL_ALPHA_TEST_FUNC							0x00000308
6485#define   NV40TCL_ALPHA_TEST_FUNC_NEVER							0x00000200
6486#define   NV40TCL_ALPHA_TEST_FUNC_LESS							0x00000201
6487#define   NV40TCL_ALPHA_TEST_FUNC_EQUAL							0x00000202
6488#define   NV40TCL_ALPHA_TEST_FUNC_LEQUAL						0x00000203
6489#define   NV40TCL_ALPHA_TEST_FUNC_GREATER						0x00000204
6490#define   NV40TCL_ALPHA_TEST_FUNC_GREATER						0x00000204
6491#define   NV40TCL_ALPHA_TEST_FUNC_NOTEQUAL						0x00000205
6492#define   NV40TCL_ALPHA_TEST_FUNC_GEQUAL						0x00000206
6493#define   NV40TCL_ALPHA_TEST_FUNC_ALWAYS						0x00000207
6494#define  NV40TCL_ALPHA_TEST_REF								0x0000030c
6495#define  NV40TCL_BLEND_ENABLE								0x00000310
6496#define  NV40TCL_BLEND_FUNC_SRC								0x00000314
6497#define   NV40TCL_BLEND_FUNC_SRC_RGB_SHIFT						0
6498#define   NV40TCL_BLEND_FUNC_SRC_RGB_MASK						0x0000ffff
6499#define    NV40TCL_BLEND_FUNC_SRC_RGB_ZERO						0x00000000
6500#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE						0x00000001
6501#define    NV40TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR						0x00000300
6502#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR				0x00000301
6503#define    NV40TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA						0x00000302
6504#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
6505#define    NV40TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA						0x00000304
6506#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA				0x00000305
6507#define    NV40TCL_BLEND_FUNC_SRC_RGB_DST_COLOR						0x00000306
6508#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR				0x00000307
6509#define    NV40TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE				0x00000308
6510#define    NV40TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR					0x00008001
6511#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
6512#define    NV40TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA					0x00008003
6513#define    NV40TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
6514#define   NV40TCL_BLEND_FUNC_SRC_ALPHA_SHIFT						16
6515#define   NV40TCL_BLEND_FUNC_SRC_ALPHA_MASK						0xffff0000
6516#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ZERO						0x00000000
6517#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE						0x00010000
6518#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR					0x03000000
6519#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR				0x03010000
6520#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA					0x03020000
6521#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA				0x03030000
6522#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA					0x03040000
6523#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA				0x03050000
6524#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR					0x03060000
6525#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR				0x03070000
6526#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE				0x03080000
6527#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR					0x80010000
6528#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR			0x80020000
6529#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA					0x80030000
6530#define    NV40TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA			0x80040000
6531#define  NV40TCL_BLEND_FUNC_DST								0x00000318
6532#define   NV40TCL_BLEND_FUNC_DST_RGB_SHIFT						0
6533#define   NV40TCL_BLEND_FUNC_DST_RGB_MASK						0x0000ffff
6534#define    NV40TCL_BLEND_FUNC_DST_RGB_ZERO						0x00000000
6535#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE						0x00000001
6536#define    NV40TCL_BLEND_FUNC_DST_RGB_SRC_COLOR						0x00000300
6537#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR				0x00000301
6538#define    NV40TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA						0x00000302
6539#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
6540#define    NV40TCL_BLEND_FUNC_DST_RGB_DST_ALPHA						0x00000304
6541#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA				0x00000305
6542#define    NV40TCL_BLEND_FUNC_DST_RGB_DST_COLOR						0x00000306
6543#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR				0x00000307
6544#define    NV40TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE				0x00000308
6545#define    NV40TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR					0x00008001
6546#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
6547#define    NV40TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA					0x00008003
6548#define    NV40TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
6549#define   NV40TCL_BLEND_FUNC_DST_ALPHA_SHIFT						16
6550#define   NV40TCL_BLEND_FUNC_DST_ALPHA_MASK						0xffff0000
6551#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ZERO						0x00000000
6552#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE						0x00010000
6553#define    NV40TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR					0x03000000
6554#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR				0x03010000
6555#define    NV40TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA					0x03020000
6556#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA				0x03030000
6557#define    NV40TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA					0x03040000
6558#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA				0x03050000
6559#define    NV40TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR					0x03060000
6560#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR				0x03070000
6561#define    NV40TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE				0x03080000
6562#define    NV40TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR					0x80010000
6563#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR			0x80020000
6564#define    NV40TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA					0x80030000
6565#define    NV40TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA			0x80040000
6566#define  NV40TCL_BLEND_COLOR								0x0000031c
6567#define   NV40TCL_BLEND_COLOR_B_SHIFT							0
6568#define   NV40TCL_BLEND_COLOR_B_MASK							0x000000ff
6569#define   NV40TCL_BLEND_COLOR_G_SHIFT							8
6570#define   NV40TCL_BLEND_COLOR_G_MASK							0x0000ff00
6571#define   NV40TCL_BLEND_COLOR_R_SHIFT							16
6572#define   NV40TCL_BLEND_COLOR_R_MASK							0x00ff0000
6573#define   NV40TCL_BLEND_COLOR_A_SHIFT							24
6574#define   NV40TCL_BLEND_COLOR_A_MASK							0xff000000
6575#define  NV40TCL_BLEND_EQUATION								0x00000320
6576#define   NV40TCL_BLEND_EQUATION_RGB_SHIFT						0
6577#define   NV40TCL_BLEND_EQUATION_RGB_MASK						0x0000ffff
6578#define    NV40TCL_BLEND_EQUATION_RGB_FUNC_ADD						0x00008006
6579#define    NV40TCL_BLEND_EQUATION_RGB_MIN						0x00008007
6580#define    NV40TCL_BLEND_EQUATION_RGB_MAX						0x00008008
6581#define    NV40TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT					0x0000800a
6582#define    NV40TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT				0x0000800b
6583#define   NV40TCL_BLEND_EQUATION_ALPHA_SHIFT						16
6584#define   NV40TCL_BLEND_EQUATION_ALPHA_MASK						0xffff0000
6585#define    NV40TCL_BLEND_EQUATION_ALPHA_FUNC_ADD					0x80060000
6586#define    NV40TCL_BLEND_EQUATION_ALPHA_MIN						0x80070000
6587#define    NV40TCL_BLEND_EQUATION_ALPHA_MAX						0x80080000
6588#define    NV40TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT					0x800a0000
6589#define    NV40TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT				0x800b0000
6590#define  NV40TCL_COLOR_MASK								0x00000324
6591#define   NV40TCL_COLOR_MASK_BUFFER0_B_SHIFT						0
6592#define   NV40TCL_COLOR_MASK_BUFFER0_B_MASK						0x000000ff
6593#define   NV40TCL_COLOR_MASK_BUFFER0_G_SHIFT						8
6594#define   NV40TCL_COLOR_MASK_BUFFER0_G_MASK						0x0000ff00
6595#define   NV40TCL_COLOR_MASK_BUFFER0_R_SHIFT						16
6596#define   NV40TCL_COLOR_MASK_BUFFER0_R_MASK						0x00ff0000
6597#define   NV40TCL_COLOR_MASK_BUFFER0_A_SHIFT						24
6598#define   NV40TCL_COLOR_MASK_BUFFER0_A_MASK						0xff000000
6599#define  NV40TCL_STENCIL_FRONT_ENABLE							0x00000328
6600#define  NV40TCL_STENCIL_FRONT_MASK							0x0000032c
6601#define  NV40TCL_STENCIL_FRONT_FUNC_FUNC						0x00000330
6602#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_NEVER						0x00000200
6603#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_LESS						0x00000201
6604#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL						0x00000202
6605#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL					0x00000203
6606#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
6607#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
6608#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL					0x00000205
6609#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL					0x00000206
6610#define   NV40TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS					0x00000207
6611#define  NV40TCL_STENCIL_FRONT_FUNC_REF							0x00000334
6612#define  NV40TCL_STENCIL_FRONT_FUNC_MASK						0x00000338
6613#define  NV40TCL_STENCIL_FRONT_OP_FAIL							0x0000033c
6614#define   NV40TCL_STENCIL_FRONT_OP_FAIL_ZERO						0x00000000
6615#define   NV40TCL_STENCIL_FRONT_OP_FAIL_INVERT						0x0000150a
6616#define   NV40TCL_STENCIL_FRONT_OP_FAIL_KEEP						0x00001e00
6617#define   NV40TCL_STENCIL_FRONT_OP_FAIL_REPLACE						0x00001e01
6618#define   NV40TCL_STENCIL_FRONT_OP_FAIL_INCR						0x00001e02
6619#define   NV40TCL_STENCIL_FRONT_OP_FAIL_DECR						0x00001e03
6620#define   NV40TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP					0x00008507
6621#define   NV40TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP					0x00008508
6622#define  NV40TCL_STENCIL_FRONT_OP_ZFAIL							0x00000340
6623#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_ZERO						0x00000000
6624#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_INVERT						0x0000150a
6625#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_KEEP						0x00001e00
6626#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE					0x00001e01
6627#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_INCR						0x00001e02
6628#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_DECR						0x00001e03
6629#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP					0x00008507
6630#define   NV40TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP					0x00008508
6631#define  NV40TCL_STENCIL_FRONT_OP_ZPASS							0x00000344
6632#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_ZERO						0x00000000
6633#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_INVERT						0x0000150a
6634#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_KEEP						0x00001e00
6635#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_REPLACE					0x00001e01
6636#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_INCR						0x00001e02
6637#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_DECR						0x00001e03
6638#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP					0x00008507
6639#define   NV40TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP					0x00008508
6640#define  NV40TCL_STENCIL_BACK_ENABLE							0x00000348
6641#define  NV40TCL_STENCIL_BACK_MASK							0x0000034c
6642#define  NV40TCL_STENCIL_BACK_FUNC_FUNC							0x00000350
6643#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_NEVER						0x00000200
6644#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_LESS						0x00000201
6645#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_EQUAL						0x00000202
6646#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL						0x00000203
6647#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
6648#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
6649#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL					0x00000205
6650#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL						0x00000206
6651#define   NV40TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS						0x00000207
6652#define  NV40TCL_STENCIL_BACK_FUNC_REF							0x00000354
6653#define  NV40TCL_STENCIL_BACK_FUNC_MASK							0x00000358
6654#define  NV40TCL_STENCIL_BACK_OP_FAIL							0x0000035c
6655#define   NV40TCL_STENCIL_BACK_OP_FAIL_ZERO						0x00000000
6656#define   NV40TCL_STENCIL_BACK_OP_FAIL_INVERT						0x0000150a
6657#define   NV40TCL_STENCIL_BACK_OP_FAIL_KEEP						0x00001e00
6658#define   NV40TCL_STENCIL_BACK_OP_FAIL_REPLACE						0x00001e01
6659#define   NV40TCL_STENCIL_BACK_OP_FAIL_INCR						0x00001e02
6660#define   NV40TCL_STENCIL_BACK_OP_FAIL_DECR						0x00001e03
6661#define   NV40TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP					0x00008507
6662#define   NV40TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP					0x00008508
6663#define  NV40TCL_STENCIL_BACK_OP_ZFAIL							0x00000360
6664#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_ZERO						0x00000000
6665#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_INVERT						0x0000150a
6666#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_KEEP						0x00001e00
6667#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_REPLACE						0x00001e01
6668#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_INCR						0x00001e02
6669#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_DECR						0x00001e03
6670#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP					0x00008507
6671#define   NV40TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP					0x00008508
6672#define  NV40TCL_STENCIL_BACK_OP_ZPASS							0x00000364
6673#define   NV40TCL_STENCIL_BACK_OP_ZPASS_ZERO						0x00000000
6674#define   NV40TCL_STENCIL_BACK_OP_ZPASS_INVERT						0x0000150a
6675#define   NV40TCL_STENCIL_BACK_OP_ZPASS_KEEP						0x00001e00
6676#define   NV40TCL_STENCIL_BACK_OP_ZPASS_REPLACE						0x00001e01
6677#define   NV40TCL_STENCIL_BACK_OP_ZPASS_INCR						0x00001e02
6678#define   NV40TCL_STENCIL_BACK_OP_ZPASS_DECR						0x00001e03
6679#define   NV40TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP					0x00008507
6680#define   NV40TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP					0x00008508
6681#define  NV40TCL_SHADE_MODEL								0x00000368
6682#define   NV40TCL_SHADE_MODEL_FLAT							0x00001d00
6683#define   NV40TCL_SHADE_MODEL_SMOOTH							0x00001d01
6684#define  NV40TCL_MRT_COLOR_MASK								0x00000370
6685#define   NV40TCL_MRT_COLOR_MASK_BUFFER1_A						(1 <<  4)
6686#define   NV40TCL_MRT_COLOR_MASK_BUFFER1_R						(1 <<  5)
6687#define   NV40TCL_MRT_COLOR_MASK_BUFFER1_G						(1 <<  6)
6688#define   NV40TCL_MRT_COLOR_MASK_BUFFER1_B						(1 <<  7)
6689#define   NV40TCL_MRT_COLOR_MASK_BUFFER2_A						(1 <<  8)
6690#define   NV40TCL_MRT_COLOR_MASK_BUFFER2_R						(1 <<  9)
6691#define   NV40TCL_MRT_COLOR_MASK_BUFFER2_G						(1 << 10)
6692#define   NV40TCL_MRT_COLOR_MASK_BUFFER2_B						(1 << 11)
6693#define   NV40TCL_MRT_COLOR_MASK_BUFFER3_A						(1 << 12)
6694#define   NV40TCL_MRT_COLOR_MASK_BUFFER3_R						(1 << 13)
6695#define   NV40TCL_MRT_COLOR_MASK_BUFFER3_G						(1 << 14)
6696#define   NV40TCL_MRT_COLOR_MASK_BUFFER3_B						(1 << 15)
6697#define  NV40TCL_COLOR_LOGIC_OP_ENABLE							0x00000374
6698#define  NV40TCL_COLOR_LOGIC_OP								0x00000378
6699#define   NV40TCL_COLOR_LOGIC_OP_CLEAR							0x00001500
6700#define   NV40TCL_COLOR_LOGIC_OP_AND							0x00001501
6701#define   NV40TCL_COLOR_LOGIC_OP_AND_REVERSE						0x00001502
6702#define   NV40TCL_COLOR_LOGIC_OP_COPY							0x00001503
6703#define   NV40TCL_COLOR_LOGIC_OP_AND_INVERTED						0x00001504
6704#define   NV40TCL_COLOR_LOGIC_OP_NOOP							0x00001505
6705#define   NV40TCL_COLOR_LOGIC_OP_XOR							0x00001506
6706#define   NV40TCL_COLOR_LOGIC_OP_OR							0x00001507
6707#define   NV40TCL_COLOR_LOGIC_OP_NOR							0x00001508
6708#define   NV40TCL_COLOR_LOGIC_OP_EQUIV							0x00001509
6709#define   NV40TCL_COLOR_LOGIC_OP_INVERT							0x0000150a
6710#define   NV40TCL_COLOR_LOGIC_OP_OR_REVERSE						0x0000150b
6711#define   NV40TCL_COLOR_LOGIC_OP_COPY_INVERTED						0x0000150c
6712#define   NV40TCL_COLOR_LOGIC_OP_OR_INVERTED						0x0000150d
6713#define   NV40TCL_COLOR_LOGIC_OP_NAND							0x0000150e
6714#define   NV40TCL_COLOR_LOGIC_OP_SET							0x0000150f
6715#define  NV40TCL_DEPTH_RANGE_NEAR							0x00000394
6716#define  NV40TCL_DEPTH_RANGE_FAR							0x00000398
6717#define  NV40TCL_LINE_WIDTH								0x000003b8
6718#define  NV40TCL_LINE_SMOOTH_ENABLE							0x000003bc
6719#define  NV40TCL_UNK03C0(x)								(0x000003c0+((x)*4))
6720#define  NV40TCL_UNK03C0__SIZE								0x00000010
6721#define  NV40TCL_UNK0400(x)								(0x00000400+((x)*4))
6722#define  NV40TCL_UNK0400__SIZE								0x00000010
6723#define  NV40TCL_UNK0440(x)								(0x00000440+((x)*4))
6724#define  NV40TCL_UNK0440__SIZE								0x00000020
6725#define  NV40TCL_SCISSOR_HORIZ								0x000008c0
6726#define   NV40TCL_SCISSOR_HORIZ_X_SHIFT							0
6727#define   NV40TCL_SCISSOR_HORIZ_X_MASK							0x0000ffff
6728#define   NV40TCL_SCISSOR_HORIZ_W_SHIFT							16
6729#define   NV40TCL_SCISSOR_HORIZ_W_MASK							0xffff0000
6730#define  NV40TCL_SCISSOR_VERT								0x000008c4
6731#define   NV40TCL_SCISSOR_VERT_Y_SHIFT							0
6732#define   NV40TCL_SCISSOR_VERT_Y_MASK							0x0000ffff
6733#define   NV40TCL_SCISSOR_VERT_H_SHIFT							16
6734#define   NV40TCL_SCISSOR_VERT_H_MASK							0xffff0000
6735#define  NV40TCL_FOG_MODE								0x000008cc
6736#define  NV40TCL_FOG_EQUATION_CONSTANT							0x000008d0
6737#define  NV40TCL_FOG_EQUATION_LINEAR							0x000008d4
6738#define  NV40TCL_FOG_EQUATION_QUADRATIC							0x000008d8
6739#define  NV40TCL_FP_ADDRESS								0x000008e4
6740#define   NV40TCL_FP_ADDRESS_OFFSET_SHIFT						8
6741#define   NV40TCL_FP_ADDRESS_OFFSET_MASK						0xffffff00
6742#define   NV40TCL_FP_ADDRESS_DMA1							(1 <<  1)
6743#define   NV40TCL_FP_ADDRESS_DMA0							(1 <<  0)
6744#define  NV40TCL_VIEWPORT_HORIZ								0x00000a00
6745#define   NV40TCL_VIEWPORT_HORIZ_W_SHIFT						16
6746#define   NV40TCL_VIEWPORT_HORIZ_W_MASK							0xffff0000
6747#define   NV40TCL_VIEWPORT_HORIZ_X_SHIFT						0
6748#define   NV40TCL_VIEWPORT_HORIZ_X_MASK							0x0000ffff
6749#define  NV40TCL_VIEWPORT_VERT								0x00000a04
6750#define   NV40TCL_VIEWPORT_VERT_H_SHIFT							16
6751#define   NV40TCL_VIEWPORT_VERT_H_MASK							0xffff0000
6752#define   NV40TCL_VIEWPORT_VERT_Y_SHIFT							0
6753#define   NV40TCL_VIEWPORT_VERT_Y_MASK							0x0000ffff
6754#define  NV40TCL_VIEWPORT_TRANSLATE_X							0x00000a20
6755#define  NV40TCL_VIEWPORT_TRANSLATE_Y							0x00000a24
6756#define  NV40TCL_VIEWPORT_TRANSLATE_Z							0x00000a28
6757#define  NV40TCL_VIEWPORT_TRANSLATE_W							0x00000a2c
6758#define  NV40TCL_VIEWPORT_SCALE_X							0x00000a30
6759#define  NV40TCL_VIEWPORT_SCALE_Y							0x00000a34
6760#define  NV40TCL_VIEWPORT_SCALE_Z							0x00000a38
6761#define  NV40TCL_VIEWPORT_SCALE_W							0x00000a3c
6762#define  NV40TCL_POLYGON_OFFSET_POINT_ENABLE						0x00000a60
6763#define  NV40TCL_POLYGON_OFFSET_LINE_ENABLE						0x00000a64
6764#define  NV40TCL_POLYGON_OFFSET_FILL_ENABLE						0x00000a68
6765#define  NV40TCL_DEPTH_FUNC								0x00000a6c
6766#define   NV40TCL_DEPTH_FUNC_NEVER							0x00000200
6767#define   NV40TCL_DEPTH_FUNC_LESS							0x00000201
6768#define   NV40TCL_DEPTH_FUNC_EQUAL							0x00000202
6769#define   NV40TCL_DEPTH_FUNC_LEQUAL							0x00000203
6770#define   NV40TCL_DEPTH_FUNC_GREATER							0x00000204
6771#define   NV40TCL_DEPTH_FUNC_GREATER							0x00000204
6772#define   NV40TCL_DEPTH_FUNC_NOTEQUAL							0x00000205
6773#define   NV40TCL_DEPTH_FUNC_GEQUAL							0x00000206
6774#define   NV40TCL_DEPTH_FUNC_ALWAYS							0x00000207
6775#define  NV40TCL_DEPTH_WRITE_ENABLE							0x00000a70
6776#define  NV40TCL_DEPTH_TEST_ENABLE							0x00000a74
6777#define  NV40TCL_POLYGON_OFFSET_FACTOR							0x00000a78
6778#define  NV40TCL_POLYGON_OFFSET_UNITS							0x00000a7c
6779#define  NV40TCL_VTX_ATTR_3I_XY(x)							(0x00000a80+((x)*8))
6780#define  NV40TCL_VTX_ATTR_3I_XY__SIZE							0x00000010
6781#define   NV40TCL_VTX_ATTR_3I_XY_X_SHIFT						0
6782#define   NV40TCL_VTX_ATTR_3I_XY_X_MASK							0x0000ffff
6783#define   NV40TCL_VTX_ATTR_3I_XY_Y_SHIFT						16
6784#define   NV40TCL_VTX_ATTR_3I_XY_Y_MASK							0xffff0000
6785#define  NV40TCL_VTX_ATTR_3I_Z(x)							(0x00000a84+((x)*8))
6786#define  NV40TCL_VTX_ATTR_3I_Z__SIZE							0x00000010
6787#define   NV40TCL_VTX_ATTR_3I_Z_Z_SHIFT							0
6788#define   NV40TCL_VTX_ATTR_3I_Z_Z_MASK							0x0000ffff
6789#define  NV40TCL_TEX_FILTER_OPTIMIZATION						0x00000b00
6790#define   NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_SHIFT				0
6791#define   NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_MASK				0x0000001f
6792#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_OFF				0x00000000
6793#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_HIGH_QUALITY			0x00000004
6794#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_QUALITY				0x00000006
6795#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_PERFORMANCE			0x00000008
6796#define    NV40TCL_TEX_FILTER_OPTIMIZATION_TRILINEAR_HIGH_PERFORMANCE			0x00000018
6797#define   NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_SHIFT				6
6798#define   NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_MASK				0x000001c0
6799#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_OFF				0x00000000
6800#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_HIGH_QUALITY			0x000000c0
6801#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_QUALITY				0x000001c0
6802#define    NV40TCL_TEX_FILTER_OPTIMIZATION_ANISO_SAMPLE_PERFORMANCE			0x00000140
6803#define   NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_SHIFT					10
6804#define   NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_MASK					0x00007c00
6805#define    NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_OFF					0x00000000
6806#define    NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_PARTIAL				0x00002c00
6807#define    NV40TCL_TEX_FILTER_OPTIMIZATION_UNKNOWN_FULL					0x00007c00
6808#define  NV40TCL_UNK0B40(x)								(0x00000b40+((x)*4))
6809#define  NV40TCL_UNK0B40__SIZE								0x00000008
6810#define  NV40TCL_VP_UPLOAD_INST(x)							(0x00000b80+((x)*4))
6811#define  NV40TCL_VP_UPLOAD_INST__SIZE							0x00000004
6812#define  NV40TCL_CLIP_PLANE_ENABLE							0x00001478
6813#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE0						(1 <<  1)
6814#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE1						(1 <<  5)
6815#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE2						(1 <<  9)
6816#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE3						(1 << 13)
6817#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE4						(1 << 17)
6818#define   NV40TCL_CLIP_PLANE_ENABLE_PLANE5						(1 << 21)
6819#define  NV40TCL_POLYGON_STIPPLE_ENABLE							0x0000147c
6820#define  NV40TCL_POLYGON_STIPPLE_PATTERN(x)						(0x00001480+((x)*4))
6821#define  NV40TCL_POLYGON_STIPPLE_PATTERN__SIZE						0x00000020
6822#define  NV40TCL_VTX_ATTR_3F_X(x)							(0x00001500+((x)*16))
6823#define  NV40TCL_VTX_ATTR_3F_X__SIZE							0x00000010
6824#define  NV40TCL_VTX_ATTR_3F_Y(x)							(0x00001504+((x)*16))
6825#define  NV40TCL_VTX_ATTR_3F_Y__SIZE							0x00000010
6826#define  NV40TCL_VTX_ATTR_3F_Z(x)							(0x00001508+((x)*16))
6827#define  NV40TCL_VTX_ATTR_3F_Z__SIZE							0x00000010
6828#define  NV40TCL_VTXBUF_ADDRESS(x)							(0x00001680+((x)*4))
6829#define  NV40TCL_VTXBUF_ADDRESS__SIZE							0x00000010
6830#define   NV40TCL_VTXBUF_ADDRESS_DMA1							(1 << 31)
6831#define   NV40TCL_VTXBUF_ADDRESS_OFFSET_SHIFT						0
6832#define   NV40TCL_VTXBUF_ADDRESS_OFFSET_MASK						0x0fffffff
6833#define  NV40TCL_VTX_CACHE_INVALIDATE							0x00001714
6834#define  NV40TCL_VTXFMT(x)								(0x00001740+((x)*4))
6835#define  NV40TCL_VTXFMT__SIZE								0x00000010
6836#define   NV40TCL_VTXFMT_TYPE_SHIFT							0
6837#define   NV40TCL_VTXFMT_TYPE_MASK							0x0000000f
6838#define    NV40TCL_VTXFMT_TYPE_FLOAT							0x00000002
6839#define    NV40TCL_VTXFMT_TYPE_UBYTE							0x00000004
6840#define    NV40TCL_VTXFMT_TYPE_USHORT							0x00000005
6841#define   NV40TCL_VTXFMT_SIZE_SHIFT							4
6842#define   NV40TCL_VTXFMT_SIZE_MASK							0x000000f0
6843#define   NV40TCL_VTXFMT_STRIDE_SHIFT							8
6844#define   NV40TCL_VTXFMT_STRIDE_MASK							0x0000ff00
6845#define  NV40TCL_QUERY_RESET								0x000017c8
6846#define  NV40TCL_QUERY_UNK17CC								0x000017cc
6847#define  NV40TCL_QUERY_GET								0x00001800
6848#define   NV40TCL_QUERY_GET_UNK24_SHIFT							24
6849#define   NV40TCL_QUERY_GET_UNK24_MASK							0xff000000
6850#define   NV40TCL_QUERY_GET_OFFSET_SHIFT						0
6851#define   NV40TCL_QUERY_GET_OFFSET_MASK							0x00ffffff
6852#define  NV40TCL_BEGIN_END								0x00001808
6853#define   NV40TCL_BEGIN_END_STOP							0x00000000
6854#define   NV40TCL_BEGIN_END_POINTS							0x00000001
6855#define   NV40TCL_BEGIN_END_LINES							0x00000002
6856#define   NV40TCL_BEGIN_END_LINE_LOOP							0x00000003
6857#define   NV40TCL_BEGIN_END_LINE_STRIP							0x00000004
6858#define   NV40TCL_BEGIN_END_TRIANGLES							0x00000005
6859#define   NV40TCL_BEGIN_END_TRIANGLE_STRIP						0x00000006
6860#define   NV40TCL_BEGIN_END_TRIANGLE_FAN						0x00000007
6861#define   NV40TCL_BEGIN_END_QUADS							0x00000008
6862#define   NV40TCL_BEGIN_END_QUAD_STRIP							0x00000009
6863#define   NV40TCL_BEGIN_END_POLYGON							0x0000000a
6864#define  NV40TCL_VB_ELEMENT_U16								0x0000180c
6865#define   NV40TCL_VB_ELEMENT_U16_1_SHIFT						16
6866#define   NV40TCL_VB_ELEMENT_U16_1_MASK							0xffff0000
6867#define   NV40TCL_VB_ELEMENT_U16_0_SHIFT						0
6868#define   NV40TCL_VB_ELEMENT_U16_0_MASK							0x0000ffff
6869#define  NV40TCL_VB_ELEMENT_U32								0x00001810
6870#define  NV40TCL_VB_VERTEX_BATCH							0x00001814
6871#define   NV40TCL_VB_VERTEX_BATCH_COUNT_SHIFT						24
6872#define   NV40TCL_VB_VERTEX_BATCH_COUNT_MASK						0xff000000
6873#define   NV40TCL_VB_VERTEX_BATCH_START_SHIFT						0
6874#define   NV40TCL_VB_VERTEX_BATCH_START_MASK						0x00ffffff
6875#define  NV40TCL_VERTEX_DATA								0x00001818
6876#define  NV40TCL_IDXBUF_ADDRESS								0x0000181c
6877#define  NV40TCL_IDXBUF_FORMAT								0x00001820
6878#define   NV40TCL_IDXBUF_FORMAT_TYPE_SHIFT						4
6879#define   NV40TCL_IDXBUF_FORMAT_TYPE_MASK						0x000000f0
6880#define    NV40TCL_IDXBUF_FORMAT_TYPE_U32						0x00000000
6881#define    NV40TCL_IDXBUF_FORMAT_TYPE_U16						0x00000010
6882#define   NV40TCL_IDXBUF_FORMAT_DMA1							(1 <<  0)
6883#define  NV40TCL_VB_INDEX_BATCH								0x00001824
6884#define   NV40TCL_VB_INDEX_BATCH_COUNT_SHIFT						24
6885#define   NV40TCL_VB_INDEX_BATCH_COUNT_MASK						0xff000000
6886#define   NV40TCL_VB_INDEX_BATCH_START_SHIFT						0
6887#define   NV40TCL_VB_INDEX_BATCH_START_MASK						0x00ffffff
6888#define  NV40TCL_POLYGON_MODE_FRONT							0x00001828
6889#define   NV40TCL_POLYGON_MODE_FRONT_POINT						0x00001b00
6890#define   NV40TCL_POLYGON_MODE_FRONT_LINE						0x00001b01
6891#define   NV40TCL_POLYGON_MODE_FRONT_FILL						0x00001b02
6892#define  NV40TCL_POLYGON_MODE_BACK							0x0000182c
6893#define   NV40TCL_POLYGON_MODE_BACK_POINT						0x00001b00
6894#define   NV40TCL_POLYGON_MODE_BACK_LINE						0x00001b01
6895#define   NV40TCL_POLYGON_MODE_BACK_FILL						0x00001b02
6896#define  NV40TCL_CULL_FACE								0x00001830
6897#define   NV40TCL_CULL_FACE_FRONT							0x00000404
6898#define   NV40TCL_CULL_FACE_BACK							0x00000405
6899#define   NV40TCL_CULL_FACE_FRONT_AND_BACK						0x00000408
6900#define  NV40TCL_FRONT_FACE								0x00001834
6901#define   NV40TCL_FRONT_FACE_CW								0x00000900
6902#define   NV40TCL_FRONT_FACE_CCW							0x00000901
6903#define  NV40TCL_POLYGON_SMOOTH_ENABLE							0x00001838
6904#define  NV40TCL_CULL_FACE_ENABLE							0x0000183c
6905#define  NV40TCL_TEX_SIZE1(x)								(0x00001840+((x)*4))
6906#define  NV40TCL_TEX_SIZE1__SIZE							0x00000008
6907#define   NV40TCL_TEX_SIZE1_DEPTH_SHIFT							20
6908#define   NV40TCL_TEX_SIZE1_DEPTH_MASK							0xfff00000
6909#define   NV40TCL_TEX_SIZE1_PITCH_SHIFT							0
6910#define   NV40TCL_TEX_SIZE1_PITCH_MASK							0x0000ffff
6911#define  NV40TCL_VTX_ATTR_2F_X(x)							(0x00001880+((x)*8))
6912#define  NV40TCL_VTX_ATTR_2F_X__SIZE							0x00000010
6913#define  NV40TCL_VTX_ATTR_2F_Y(x)							(0x00001884+((x)*8))
6914#define  NV40TCL_VTX_ATTR_2F_Y__SIZE							0x00000010
6915#define  NV40TCL_VTX_ATTR_2I(x)								(0x00001900+((x)*4))
6916#define  NV40TCL_VTX_ATTR_2I__SIZE							0x00000010
6917#define   NV40TCL_VTX_ATTR_2I_X_SHIFT							0
6918#define   NV40TCL_VTX_ATTR_2I_X_MASK							0x0000ffff
6919#define   NV40TCL_VTX_ATTR_2I_Y_SHIFT							16
6920#define   NV40TCL_VTX_ATTR_2I_Y_MASK							0xffff0000
6921#define  NV40TCL_VTX_ATTR_4UB(x)							(0x00001940+((x)*4))
6922#define  NV40TCL_VTX_ATTR_4UB__SIZE							0x00000010
6923#define   NV40TCL_VTX_ATTR_4UB_X_SHIFT							0
6924#define   NV40TCL_VTX_ATTR_4UB_X_MASK							0x000000ff
6925#define   NV40TCL_VTX_ATTR_4UB_Y_SHIFT							8
6926#define   NV40TCL_VTX_ATTR_4UB_Y_MASK							0x0000ff00
6927#define   NV40TCL_VTX_ATTR_4UB_Z_SHIFT							16
6928#define   NV40TCL_VTX_ATTR_4UB_Z_MASK							0x00ff0000
6929#define   NV40TCL_VTX_ATTR_4UB_W_SHIFT							24
6930#define   NV40TCL_VTX_ATTR_4UB_W_MASK							0xff000000
6931#define  NV40TCL_VTX_ATTR_4I_XY(x)							(0x00001980+((x)*8))
6932#define  NV40TCL_VTX_ATTR_4I_XY__SIZE							0x00000010
6933#define   NV40TCL_VTX_ATTR_4I_XY_X_SHIFT						0
6934#define   NV40TCL_VTX_ATTR_4I_XY_X_MASK							0x0000ffff
6935#define   NV40TCL_VTX_ATTR_4I_XY_Y_SHIFT						16
6936#define   NV40TCL_VTX_ATTR_4I_XY_Y_MASK							0xffff0000
6937#define  NV40TCL_VTX_ATTR_4I_ZW(x)							(0x00001984+((x)*8))
6938#define  NV40TCL_VTX_ATTR_4I_ZW__SIZE							0x00000010
6939#define   NV40TCL_VTX_ATTR_4I_ZW_Z_SHIFT						0
6940#define   NV40TCL_VTX_ATTR_4I_ZW_Z_MASK							0x0000ffff
6941#define   NV40TCL_VTX_ATTR_4I_ZW_W_SHIFT						16
6942#define   NV40TCL_VTX_ATTR_4I_ZW_W_MASK							0xffff0000
6943#define  NV40TCL_TEX_OFFSET(x)								(0x00001a00+((x)*32))
6944#define  NV40TCL_TEX_OFFSET__SIZE							0x00000010
6945#define  NV40TCL_TEX_FORMAT(x)								(0x00001a04+((x)*32))
6946#define  NV40TCL_TEX_FORMAT__SIZE							0x00000010
6947#define   NV40TCL_TEX_FORMAT_MIPMAP_COUNT_SHIFT						16
6948#define   NV40TCL_TEX_FORMAT_MIPMAP_COUNT_MASK						0x000f0000
6949#define   NV40TCL_TEX_FORMAT_RECT							(1 << 14)
6950#define   NV40TCL_TEX_FORMAT_LINEAR							(1 << 13)
6951#define   NV40TCL_TEX_FORMAT_FORMAT_SHIFT						8
6952#define   NV40TCL_TEX_FORMAT_FORMAT_MASK						0x00001f00
6953#define    NV40TCL_TEX_FORMAT_FORMAT_L8							0x00000100
6954#define    NV40TCL_TEX_FORMAT_FORMAT_A1R5G5B5						0x00000200
6955#define    NV40TCL_TEX_FORMAT_FORMAT_A4R4G4B4						0x00000300
6956#define    NV40TCL_TEX_FORMAT_FORMAT_R5G6B5						0x00000400
6957#define    NV40TCL_TEX_FORMAT_FORMAT_A8R8G8B8						0x00000500
6958#define    NV40TCL_TEX_FORMAT_FORMAT_DXT1						0x00000600
6959#define    NV40TCL_TEX_FORMAT_FORMAT_DXT3						0x00000700
6960#define    NV40TCL_TEX_FORMAT_FORMAT_DXT5						0x00000800
6961#define    NV40TCL_TEX_FORMAT_FORMAT_A8L8						0x00000b00
6962#define    NV40TCL_TEX_FORMAT_FORMAT_Z24						0x00001000
6963#define    NV40TCL_TEX_FORMAT_FORMAT_Z16						0x00001200
6964#define    NV40TCL_TEX_FORMAT_FORMAT_A16						0x00001400
6965#define    NV40TCL_TEX_FORMAT_FORMAT_A16L16						0x00001500
6966#define    NV40TCL_TEX_FORMAT_FORMAT_HILO8						0x00001800
6967#define    NV40TCL_TEX_FORMAT_FORMAT_RGBA16F						0x00001a00
6968#define    NV40TCL_TEX_FORMAT_FORMAT_RGBA32F						0x00001b00
6969#define   NV40TCL_TEX_FORMAT_DIMS_SHIFT							4
6970#define   NV40TCL_TEX_FORMAT_DIMS_MASK							0x000000f0
6971#define    NV40TCL_TEX_FORMAT_DIMS_1D							0x00000010
6972#define    NV40TCL_TEX_FORMAT_DIMS_2D							0x00000020
6973#define    NV40TCL_TEX_FORMAT_DIMS_3D							0x00000030
6974#define   NV40TCL_TEX_FORMAT_NO_BORDER							(1 <<  3)
6975#define   NV40TCL_TEX_FORMAT_CUBIC							(1 <<  2)
6976#define   NV40TCL_TEX_FORMAT_DMA1							(1 <<  1)
6977#define   NV40TCL_TEX_FORMAT_DMA0							(1 <<  0)
6978#define  NV40TCL_TEX_WRAP(x)								(0x00001a08+((x)*32))
6979#define  NV40TCL_TEX_WRAP__SIZE								0x00000010
6980#define   NV40TCL_TEX_WRAP_S_SHIFT							0
6981#define   NV40TCL_TEX_WRAP_S_MASK							0x0000000f
6982#define    NV40TCL_TEX_WRAP_S_REPEAT							0x00000001
6983#define    NV40TCL_TEX_WRAP_S_MIRRORED_REPEAT						0x00000002
6984#define    NV40TCL_TEX_WRAP_S_CLAMP_TO_EDGE						0x00000003
6985#define    NV40TCL_TEX_WRAP_S_CLAMP_TO_BORDER						0x00000004
6986#define    NV40TCL_TEX_WRAP_S_CLAMP							0x00000005
6987#define    NV40TCL_TEX_WRAP_S_MIRROR_CLAMP_TO_EDGE					0x00000006
6988#define    NV40TCL_TEX_WRAP_S_MIRROR_CLAMP_TO_BORDER					0x00000007
6989#define    NV40TCL_TEX_WRAP_S_MIRROR_CLAMP						0x00000008
6990#define   NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_SHIFT				4
6991#define   NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_MASK				0x00000070
6992#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_OFF				0x00000000
6993#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_QUALITY			0x00000020
6994#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_PERFORMANCE			0x00000030
6995#define    NV40TCL_TEX_WRAP_ANISO_MIP_FILTER_OPTIMIZATION_HIGH_PERFORMANCE		0x00000070
6996#define   NV40TCL_TEX_WRAP_T_SHIFT							8
6997#define   NV40TCL_TEX_WRAP_T_MASK							0x00000f00
6998#define    NV40TCL_TEX_WRAP_T_REPEAT							0x00000100
6999#define    NV40TCL_TEX_WRAP_T_MIRRORED_REPEAT						0x00000200
7000#define    NV40TCL_TEX_WRAP_T_CLAMP_TO_EDGE						0x00000300
7001#define    NV40TCL_TEX_WRAP_T_CLAMP_TO_BORDER						0x00000400
7002#define    NV40TCL_TEX_WRAP_T_CLAMP							0x00000500
7003#define    NV40TCL_TEX_WRAP_T_MIRROR_CLAMP_TO_EDGE					0x00000600
7004#define    NV40TCL_TEX_WRAP_T_MIRROR_CLAMP_TO_BORDER					0x00000700
7005#define    NV40TCL_TEX_WRAP_T_MIRROR_CLAMP						0x00000800
7006#define   NV40TCL_TEX_WRAP_EXPAND_NORMAL_SHIFT						12
7007#define   NV40TCL_TEX_WRAP_EXPAND_NORMAL_MASK						0x0000f000
7008#define   NV40TCL_TEX_WRAP_R_SHIFT							16
7009#define   NV40TCL_TEX_WRAP_R_MASK							0x000f0000
7010#define    NV40TCL_TEX_WRAP_R_REPEAT							0x00010000
7011#define    NV40TCL_TEX_WRAP_R_MIRRORED_REPEAT						0x00020000
7012#define    NV40TCL_TEX_WRAP_R_CLAMP_TO_EDGE						0x00030000
7013#define    NV40TCL_TEX_WRAP_R_CLAMP_TO_BORDER						0x00040000
7014#define    NV40TCL_TEX_WRAP_R_CLAMP							0x00050000
7015#define    NV40TCL_TEX_WRAP_R_MIRROR_CLAMP_TO_EDGE					0x00060000
7016#define    NV40TCL_TEX_WRAP_R_MIRROR_CLAMP_TO_BORDER					0x00070000
7017#define    NV40TCL_TEX_WRAP_R_MIRROR_CLAMP						0x00080000
7018#define   NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_SHIFT					20
7019#define   NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_MASK					0x00f00000
7020#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_NONE					0x00000000
7021#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_RED					0x00100000
7022#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_GREEN					0x00200000
7023#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_BLUE					0x00400000
7024#define    NV40TCL_TEX_WRAP_GAMMA_DECREASE_FILTER_ALL					0x00f00000
7025#define   NV40TCL_TEX_WRAP_RCOMP_SHIFT							28
7026#define   NV40TCL_TEX_WRAP_RCOMP_MASK							0xf0000000
7027#define    NV40TCL_TEX_WRAP_RCOMP_NEVER							0x00000000
7028#define    NV40TCL_TEX_WRAP_RCOMP_GREATER						0x10000000
7029#define    NV40TCL_TEX_WRAP_RCOMP_EQUAL							0x20000000
7030#define    NV40TCL_TEX_WRAP_RCOMP_GEQUAL						0x30000000
7031#define    NV40TCL_TEX_WRAP_RCOMP_LESS							0x40000000
7032#define    NV40TCL_TEX_WRAP_RCOMP_NOTEQUAL						0x50000000
7033#define    NV40TCL_TEX_WRAP_RCOMP_LEQUAL						0x60000000
7034#define    NV40TCL_TEX_WRAP_RCOMP_ALWAYS						0x70000000
7035#define  NV40TCL_TEX_ENABLE(x)								(0x00001a0c+((x)*32))
7036#define  NV40TCL_TEX_ENABLE__SIZE							0x00000010
7037#define   NV40TCL_TEX_ENABLE_ENABLE							(1 << 31)
7038#define   NV40TCL_TEX_ENABLE_MIPMAP_MIN_LOD_SHIFT					27
7039#define   NV40TCL_TEX_ENABLE_MIPMAP_MIN_LOD_MASK					0x38000000
7040#define   NV40TCL_TEX_ENABLE_MIPMAP_MAX_LOD_SHIFT					15
7041#define   NV40TCL_TEX_ENABLE_MIPMAP_MAX_LOD_MASK					0x00038000
7042#define   NV40TCL_TEX_ENABLE_ANISO_SHIFT						4
7043#define   NV40TCL_TEX_ENABLE_ANISO_MASK							0x000000f0
7044#define    NV40TCL_TEX_ENABLE_ANISO_NONE						0x00000000
7045#define    NV40TCL_TEX_ENABLE_ANISO_2X							0x00000010
7046#define    NV40TCL_TEX_ENABLE_ANISO_4X							0x00000020
7047#define    NV40TCL_TEX_ENABLE_ANISO_6X							0x00000030
7048#define    NV40TCL_TEX_ENABLE_ANISO_8X							0x00000040
7049#define    NV40TCL_TEX_ENABLE_ANISO_10X							0x00000050
7050#define    NV40TCL_TEX_ENABLE_ANISO_12X							0x00000060
7051#define    NV40TCL_TEX_ENABLE_ANISO_16X							0x00000070
7052#define  NV40TCL_TEX_SWIZZLE(x)								(0x00001a10+((x)*32))
7053#define  NV40TCL_TEX_SWIZZLE__SIZE							0x00000010
7054#define   NV40TCL_TEX_SWIZZLE_S0_X_SHIFT						14
7055#define   NV40TCL_TEX_SWIZZLE_S0_X_MASK							0x0000c000
7056#define    NV40TCL_TEX_SWIZZLE_S0_X_ZERO						0x00000000
7057#define    NV40TCL_TEX_SWIZZLE_S0_X_ONE							0x00004000
7058#define    NV40TCL_TEX_SWIZZLE_S0_X_S1							0x00008000
7059#define   NV40TCL_TEX_SWIZZLE_S0_Y_SHIFT						12
7060#define   NV40TCL_TEX_SWIZZLE_S0_Y_MASK							0x00003000
7061#define    NV40TCL_TEX_SWIZZLE_S0_Y_ZERO						0x00000000
7062#define    NV40TCL_TEX_SWIZZLE_S0_Y_ONE							0x00001000
7063#define    NV40TCL_TEX_SWIZZLE_S0_Y_S1							0x00002000
7064#define   NV40TCL_TEX_SWIZZLE_S0_Z_SHIFT						10
7065#define   NV40TCL_TEX_SWIZZLE_S0_Z_MASK							0x00000c00
7066#define    NV40TCL_TEX_SWIZZLE_S0_Z_ZERO						0x00000000
7067#define    NV40TCL_TEX_SWIZZLE_S0_Z_ONE							0x00000400
7068#define    NV40TCL_TEX_SWIZZLE_S0_Z_S1							0x00000800
7069#define   NV40TCL_TEX_SWIZZLE_S0_W_SHIFT						8
7070#define   NV40TCL_TEX_SWIZZLE_S0_W_MASK							0x00000300
7071#define    NV40TCL_TEX_SWIZZLE_S0_W_ZERO						0x00000000
7072#define    NV40TCL_TEX_SWIZZLE_S0_W_ONE							0x00000100
7073#define    NV40TCL_TEX_SWIZZLE_S0_W_S1							0x00000200
7074#define   NV40TCL_TEX_SWIZZLE_S1_X_SHIFT						6
7075#define   NV40TCL_TEX_SWIZZLE_S1_X_MASK							0x000000c0
7076#define    NV40TCL_TEX_SWIZZLE_S1_X_W							0x00000000
7077#define    NV40TCL_TEX_SWIZZLE_S1_X_Z							0x00000040
7078#define    NV40TCL_TEX_SWIZZLE_S1_X_Y							0x00000080
7079#define    NV40TCL_TEX_SWIZZLE_S1_X_X							0x000000c0
7080#define   NV40TCL_TEX_SWIZZLE_S1_Y_SHIFT						4
7081#define   NV40TCL_TEX_SWIZZLE_S1_Y_MASK							0x00000030
7082#define    NV40TCL_TEX_SWIZZLE_S1_Y_W							0x00000000
7083#define    NV40TCL_TEX_SWIZZLE_S1_Y_Z							0x00000010
7084#define    NV40TCL_TEX_SWIZZLE_S1_Y_Y							0x00000020
7085#define    NV40TCL_TEX_SWIZZLE_S1_Y_X							0x00000030
7086#define   NV40TCL_TEX_SWIZZLE_S1_Z_SHIFT						2
7087#define   NV40TCL_TEX_SWIZZLE_S1_Z_MASK							0x0000000c
7088#define    NV40TCL_TEX_SWIZZLE_S1_Z_W							0x00000000
7089#define    NV40TCL_TEX_SWIZZLE_S1_Z_Z							0x00000004
7090#define    NV40TCL_TEX_SWIZZLE_S1_Z_Y							0x00000008
7091#define    NV40TCL_TEX_SWIZZLE_S1_Z_X							0x0000000c
7092#define   NV40TCL_TEX_SWIZZLE_S1_W_SHIFT						0
7093#define   NV40TCL_TEX_SWIZZLE_S1_W_MASK							0x00000003
7094#define    NV40TCL_TEX_SWIZZLE_S1_W_W							0x00000000
7095#define    NV40TCL_TEX_SWIZZLE_S1_W_Z							0x00000001
7096#define    NV40TCL_TEX_SWIZZLE_S1_W_Y							0x00000002
7097#define    NV40TCL_TEX_SWIZZLE_S1_W_X							0x00000003
7098#define  NV40TCL_TEX_FILTER(x)								(0x00001a14+((x)*32))
7099#define  NV40TCL_TEX_FILTER__SIZE							0x00000010
7100#define   NV40TCL_TEX_FILTER_SIGNED_ALPHA						(1 << 31)
7101#define   NV40TCL_TEX_FILTER_SIGNED_RED							(1 << 30)
7102#define   NV40TCL_TEX_FILTER_SIGNED_GREEN						(1 << 29)
7103#define   NV40TCL_TEX_FILTER_SIGNED_BLUE						(1 << 28)
7104#define   NV40TCL_TEX_FILTER_MIN_SHIFT							16
7105#define   NV40TCL_TEX_FILTER_MIN_MASK							0x000f0000
7106#define    NV40TCL_TEX_FILTER_MIN_NEAREST						0x00010000
7107#define    NV40TCL_TEX_FILTER_MIN_LINEAR						0x00020000
7108#define    NV40TCL_TEX_FILTER_MIN_NEAREST_MIPMAP_NEAREST				0x00030000
7109#define    NV40TCL_TEX_FILTER_MIN_LINEAR_MIPMAP_NEAREST					0x00040000
7110#define    NV40TCL_TEX_FILTER_MIN_NEAREST_MIPMAP_LINEAR					0x00050000
7111#define    NV40TCL_TEX_FILTER_MIN_LINEAR_MIPMAP_LINEAR					0x00060000
7112#define   NV40TCL_TEX_FILTER_MAG_SHIFT							24
7113#define   NV40TCL_TEX_FILTER_MAG_MASK							0x0f000000
7114#define    NV40TCL_TEX_FILTER_MAG_NEAREST						0x01000000
7115#define    NV40TCL_TEX_FILTER_MAG_LINEAR						0x02000000
7116#define  NV40TCL_TEX_SIZE0(x)								(0x00001a18+((x)*32))
7117#define  NV40TCL_TEX_SIZE0__SIZE							0x00000010
7118#define   NV40TCL_TEX_SIZE0_H_SHIFT							0
7119#define   NV40TCL_TEX_SIZE0_H_MASK							0x0000ffff
7120#define   NV40TCL_TEX_SIZE0_W_SHIFT							16
7121#define   NV40TCL_TEX_SIZE0_W_MASK							0xffff0000
7122#define  NV40TCL_TEX_BORDER_COLOR(x)							(0x00001a1c+((x)*32))
7123#define  NV40TCL_TEX_BORDER_COLOR__SIZE							0x00000010
7124#define   NV40TCL_TEX_BORDER_COLOR_B_SHIFT						0
7125#define   NV40TCL_TEX_BORDER_COLOR_B_MASK						0x000000ff
7126#define   NV40TCL_TEX_BORDER_COLOR_G_SHIFT						8
7127#define   NV40TCL_TEX_BORDER_COLOR_G_MASK						0x0000ff00
7128#define   NV40TCL_TEX_BORDER_COLOR_R_SHIFT						16
7129#define   NV40TCL_TEX_BORDER_COLOR_R_MASK						0x00ff0000
7130#define   NV40TCL_TEX_BORDER_COLOR_A_SHIFT						24
7131#define   NV40TCL_TEX_BORDER_COLOR_A_MASK						0xff000000
7132#define  NV40TCL_VTX_ATTR_4F_X(x)							(0x00001c00+((x)*16))
7133#define  NV40TCL_VTX_ATTR_4F_X__SIZE							0x00000010
7134#define  NV40TCL_VTX_ATTR_4F_Y(x)							(0x00001c04+((x)*16))
7135#define  NV40TCL_VTX_ATTR_4F_Y__SIZE							0x00000010
7136#define  NV40TCL_VTX_ATTR_4F_Z(x)							(0x00001c08+((x)*16))
7137#define  NV40TCL_VTX_ATTR_4F_Z__SIZE							0x00000010
7138#define  NV40TCL_VTX_ATTR_4F_W(x)							(0x00001c0c+((x)*16))
7139#define  NV40TCL_VTX_ATTR_4F_W__SIZE							0x00000010
7140#define  NV40TCL_FP_CONTROL								0x00001d60
7141#define   NV40TCL_FP_CONTROL_TEMP_COUNT_SHIFT						24
7142#define   NV40TCL_FP_CONTROL_TEMP_COUNT_MASK						0xff000000
7143#define   NV40TCL_FP_CONTROL_KIL							(1 <<  7)
7144#define  NV40TCL_MULTISAMPLE_CONTROL							0x00001d7c
7145#define  NV40TCL_CLEAR_VALUE_DEPTH							0x00001d8c
7146#define  NV40TCL_CLEAR_VALUE_COLOR							0x00001d90
7147#define  NV40TCL_CLEAR_BUFFERS								0x00001d94
7148#define   NV40TCL_CLEAR_BUFFERS_COLOR_A							(1 <<  7)
7149#define   NV40TCL_CLEAR_BUFFERS_COLOR_B							(1 <<  6)
7150#define   NV40TCL_CLEAR_BUFFERS_COLOR_G							(1 <<  5)
7151#define   NV40TCL_CLEAR_BUFFERS_COLOR_R							(1 <<  4)
7152#define   NV40TCL_CLEAR_BUFFERS_STENCIL							(1 <<  1)
7153#define   NV40TCL_CLEAR_BUFFERS_DEPTH							(1 <<  0)
7154#define  NV40TCL_LINE_STIPPLE_ENABLE							0x00001db4
7155#define  NV40TCL_LINE_STIPPLE_PATTERN							0x00001db8
7156#define   NV40TCL_LINE_STIPPLE_PATTERN_FACTOR_SHIFT					0
7157#define   NV40TCL_LINE_STIPPLE_PATTERN_FACTOR_MASK					0x0000ffff
7158#define   NV40TCL_LINE_STIPPLE_PATTERN_PATTERN_SHIFT					16
7159#define   NV40TCL_LINE_STIPPLE_PATTERN_PATTERN_MASK					0xffff0000
7160#define  NV40TCL_VTX_ATTR_1F(x)								(0x00001e40+((x)*4))
7161#define  NV40TCL_VTX_ATTR_1F__SIZE							0x00000010
7162#define  NV40TCL_VP_UPLOAD_FROM_ID							0x00001e9c
7163#define  NV40TCL_VP_START_FROM_ID							0x00001ea0
7164#define  NV40TCL_POINT_SIZE								0x00001ee0
7165#define  NV40TCL_POINT_SPRITE								0x00001ee8
7166#define  NV40TCL_VP_UPLOAD_CONST_ID							0x00001efc
7167#define  NV40TCL_VP_UPLOAD_CONST_X(x)							(0x00001f00+((x)*16))
7168#define  NV40TCL_VP_UPLOAD_CONST_X__SIZE						0x00000004
7169#define  NV40TCL_VP_UPLOAD_CONST_Y(x)							(0x00001f04+((x)*16))
7170#define  NV40TCL_VP_UPLOAD_CONST_Y__SIZE						0x00000004
7171#define  NV40TCL_VP_UPLOAD_CONST_Z(x)							(0x00001f08+((x)*16))
7172#define  NV40TCL_VP_UPLOAD_CONST_Z__SIZE						0x00000004
7173#define  NV40TCL_VP_UPLOAD_CONST_W(x)							(0x00001f0c+((x)*16))
7174#define  NV40TCL_VP_UPLOAD_CONST_W__SIZE						0x00000004
7175#define  NV40TCL_TEX_CACHE_CTL								0x00001fd8
7176#define  NV40TCL_VP_ATTRIB_EN								0x00001ff0
7177#define  NV40TCL_VP_RESULT_EN								0x00001ff4
7178
7179
7180#define NV44TCL										0x00004497
7181
7182
7183
7184#define NV50_2D										0x0000502d
7185
7186#define  NV50_2D_NOP									0x00000100
7187#define  NV50_2D_NOTIFY									0x00000104
7188#define  NV50_2D_DMA_NOTIFY								0x00000180
7189#define  NV50_2D_DMA_IN_MEMORY0								0x00000184
7190#define  NV50_2D_DMA_IN_MEMORY1								0x00000188
7191#define  NV50_2D_DMA_IN_MEMORY2								0x0000018c
7192#define  NV50_2D_DST_FORMAT								0x00000200
7193#define   NV50_2D_DST_FORMAT_R32G32B32A32_FLOAT						0x000000c0
7194#define   NV50_2D_DST_FORMAT_R32G32B32_FLOAT						0x000000c3
7195#define   NV50_2D_DST_FORMAT_R16G16B16A16_UNORM						0x000000c6
7196#define   NV50_2D_DST_FORMAT_R16G16B16A16_SNORM						0x000000c7
7197#define   NV50_2D_DST_FORMAT_R16G16B16A16_FLOAT						0x000000ca
7198#define   NV50_2D_DST_FORMAT_R32G32_FLOAT						0x000000cb
7199#define   NV50_2D_DST_FORMAT_R16G16B16X16_FLOAT						0x000000ce
7200#define   NV50_2D_DST_FORMAT_A8R8G8B8_UNORM						0x000000cf
7201#define   NV50_2D_DST_FORMAT_A2B10G10R10_UNORM						0x000000d1
7202#define   NV50_2D_DST_FORMAT_A8B8G8R8_UNORM						0x000000d6
7203#define   NV50_2D_DST_FORMAT_A8B8G8R8_SNORM						0x000000d7
7204#define   NV50_2D_DST_FORMAT_R16G16_UNORM						0x000000da
7205#define   NV50_2D_DST_FORMAT_R16G16_SNORM						0x000000db
7206#define   NV50_2D_DST_FORMAT_R16G16_FLOAT						0x000000de
7207#define   NV50_2D_DST_FORMAT_A2R10G10B10_UNORM						0x000000df
7208#define   NV50_2D_DST_FORMAT_B10G11R11_FLOAT						0x000000e0
7209#define   NV50_2D_DST_FORMAT_R32_FLOAT							0x000000e5
7210#define   NV50_2D_DST_FORMAT_X8R8G8B8_UNORM						0x000000e6
7211#define   NV50_2D_DST_FORMAT_R5G6B5_UNORM						0x000000e8
7212#define   NV50_2D_DST_FORMAT_R16_FLOAT							0x000000e9
7213#define   NV50_2D_DST_FORMAT_R8G8_UNORM							0x000000ea
7214#define   NV50_2D_DST_FORMAT_R8G8_SNORM							0x000000eb
7215#define   NV50_2D_DST_FORMAT_R16_UNORM							0x000000ee
7216#define   NV50_2D_DST_FORMAT_R16_SNORM							0x000000ef
7217#define   NV50_2D_DST_FORMAT_R8_UNORM							0x000000f3
7218#define   NV50_2D_DST_FORMAT_R32_BOOLEAN						0x000000f6
7219#define   NV50_2D_DST_FORMAT_A8_UNORM							0x000000f7
7220#define   NV50_2D_DST_FORMAT_X1B5G5R5_UNORM						0x000000f8
7221#define   NV50_2D_DST_FORMAT_X8B8G8R8_UNORM						0x000000f9
7222#define  NV50_2D_DST_LINEAR								0x00000204
7223#define  NV50_2D_DST_TILE_MODE								0x00000208
7224#define  NV50_2D_DST_PITCH								0x00000214
7225#define  NV50_2D_DST_WIDTH								0x00000218
7226#define  NV50_2D_DST_HEIGHT								0x0000021c
7227#define  NV50_2D_DST_ADDRESS_HIGH							0x00000220
7228#define  NV50_2D_DST_ADDRESS_LOW							0x00000224
7229#define  NV50_2D_SRC_FORMAT								0x00000230
7230#define   NV50_2D_SRC_FORMAT_R32G32B32A32_FLOAT						0x000000c0
7231#define   NV50_2D_SRC_FORMAT_R32G32B32_FLOAT						0x000000c3
7232#define   NV50_2D_SRC_FORMAT_R16G16B16A16_UNORM						0x000000c6
7233#define   NV50_2D_SRC_FORMAT_R16G16B16A16_SNORM						0x000000c7
7234#define   NV50_2D_SRC_FORMAT_R16G16B16A16_FLOAT						0x000000ca
7235#define   NV50_2D_SRC_FORMAT_R32G32_FLOAT						0x000000cb
7236#define   NV50_2D_SRC_FORMAT_R16G16B16X16_FLOAT						0x000000ce
7237#define   NV50_2D_SRC_FORMAT_A8R8G8B8_UNORM						0x000000cf
7238#define   NV50_2D_SRC_FORMAT_A2B10G10R10_UNORM						0x000000d1
7239#define   NV50_2D_SRC_FORMAT_A8B8G8R8_UNORM						0x000000d6
7240#define   NV50_2D_SRC_FORMAT_A8B8G8R8_SNORM						0x000000d7
7241#define   NV50_2D_SRC_FORMAT_R16G16_UNORM						0x000000da
7242#define   NV50_2D_SRC_FORMAT_R16G16_SNORM						0x000000db
7243#define   NV50_2D_SRC_FORMAT_R16G16_FLOAT						0x000000de
7244#define   NV50_2D_SRC_FORMAT_A2R10G10B10_UNORM						0x000000df
7245#define   NV50_2D_SRC_FORMAT_B10G11R11_FLOAT						0x000000e0
7246#define   NV50_2D_SRC_FORMAT_R32_FLOAT							0x000000e5
7247#define   NV50_2D_SRC_FORMAT_X8R8G8B8_UNORM						0x000000e6
7248#define   NV50_2D_SRC_FORMAT_R5G6B5_UNORM						0x000000e8
7249#define   NV50_2D_SRC_FORMAT_R16_FLOAT							0x000000e9
7250#define   NV50_2D_SRC_FORMAT_R8G8_UNORM							0x000000ea
7251#define   NV50_2D_SRC_FORMAT_R8G8_SNORM							0x000000eb
7252#define   NV50_2D_SRC_FORMAT_R16_UNORM							0x000000ee
7253#define   NV50_2D_SRC_FORMAT_R16_SNORM							0x000000ef
7254#define   NV50_2D_SRC_FORMAT_R8_UNORM							0x000000f3
7255#define   NV50_2D_SRC_FORMAT_R32_BOOLEAN						0x000000f6
7256#define   NV50_2D_SRC_FORMAT_A8_UNORM							0x000000f7
7257#define   NV50_2D_SRC_FORMAT_X1B5G5R5_UNORM						0x000000f8
7258#define   NV50_2D_SRC_FORMAT_X8B8G8R8_UNORM						0x000000f9
7259#define  NV50_2D_SRC_LINEAR								0x00000234
7260#define  NV50_2D_SRC_TILE_MODE								0x00000238
7261#define  NV50_2D_SRC_PITCH								0x00000244
7262#define  NV50_2D_SRC_WIDTH								0x00000248
7263#define  NV50_2D_SRC_HEIGHT								0x0000024c
7264#define  NV50_2D_SRC_ADDRESS_HIGH							0x00000250
7265#define  NV50_2D_SRC_ADDRESS_LOW							0x00000254
7266#define  NV50_2D_CLIP_X									0x00000280
7267#define  NV50_2D_CLIP_Y									0x00000284
7268#define  NV50_2D_CLIP_Z									0x00000288
7269#define  NV50_2D_CLIP_W									0x0000028c
7270#define  NV50_2D_ROP									0x000002a0
7271#define  NV50_2D_OPERATION								0x000002ac
7272#define   NV50_2D_OPERATION_SRCCOPY_AND							0x00000000
7273#define   NV50_2D_OPERATION_ROP_AND							0x00000001
7274#define   NV50_2D_OPERATION_BLEND_AND							0x00000002
7275#define   NV50_2D_OPERATION_SRCCOPY							0x00000003
7276#define   NV50_2D_OPERATION_SRCCOPY_PREMULT						0x00000004
7277#define   NV50_2D_OPERATION_BLEND_PREMULT						0x00000005
7278#define  NV50_2D_PATTERN_FORMAT								0x000002e8
7279#define   NV50_2D_PATTERN_FORMAT_16BPP							0x00000000
7280#define   NV50_2D_PATTERN_FORMAT_15BPP							0x00000001
7281#define   NV50_2D_PATTERN_FORMAT_32BPP							0x00000002
7282#define   NV50_2D_PATTERN_FORMAT_8BPP							0x00000003
7283#define  NV50_2D_PATTERN_COLOR(x)							(0x000002f0+((x)*4))
7284#define  NV50_2D_PATTERN_COLOR__SIZE							0x00000002
7285#define  NV50_2D_PATTERN_BITMAP(x)							(0x000002f8+((x)*4))
7286#define  NV50_2D_PATTERN_BITMAP__SIZE							0x00000002
7287#define  NV50_2D_RECT_FORMAT								0x00000584
7288#define   NV50_2D_RECT_FORMAT_R32G32B32A32_FLOAT					0x000000c0
7289#define   NV50_2D_RECT_FORMAT_R32G32B32_FLOAT						0x000000c3
7290#define   NV50_2D_RECT_FORMAT_R16G16B16A16_UNORM					0x000000c6
7291#define   NV50_2D_RECT_FORMAT_R16G16B16A16_SNORM					0x000000c7
7292#define   NV50_2D_RECT_FORMAT_R16G16B16A16_FLOAT					0x000000ca
7293#define   NV50_2D_RECT_FORMAT_R32G32_FLOAT						0x000000cb
7294#define   NV50_2D_RECT_FORMAT_R16G16B16X16_FLOAT					0x000000ce
7295#define   NV50_2D_RECT_FORMAT_A8R8G8B8_UNORM						0x000000cf
7296#define   NV50_2D_RECT_FORMAT_A2B10G10R10_UNORM						0x000000d1
7297#define   NV50_2D_RECT_FORMAT_A8B8G8R8_UNORM						0x000000d6
7298#define   NV50_2D_RECT_FORMAT_A8B8G8R8_SNORM						0x000000d7
7299#define   NV50_2D_RECT_FORMAT_R16G16_UNORM						0x000000da
7300#define   NV50_2D_RECT_FORMAT_R16G16_SNORM						0x000000db
7301#define   NV50_2D_RECT_FORMAT_R16G16_FLOAT						0x000000de
7302#define   NV50_2D_RECT_FORMAT_A2R10G10B10_UNORM						0x000000df
7303#define   NV50_2D_RECT_FORMAT_B10G11R11_FLOAT						0x000000e0
7304#define   NV50_2D_RECT_FORMAT_R32_FLOAT							0x000000e5
7305#define   NV50_2D_RECT_FORMAT_X8R8G8B8_UNORM						0x000000e6
7306#define   NV50_2D_RECT_FORMAT_R5G6B5_UNORM						0x000000e8
7307#define   NV50_2D_RECT_FORMAT_R16_FLOAT							0x000000e9
7308#define   NV50_2D_RECT_FORMAT_R8G8_UNORM						0x000000ea
7309#define   NV50_2D_RECT_FORMAT_R8G8_SNORM						0x000000eb
7310#define   NV50_2D_RECT_FORMAT_R16_UNORM							0x000000ee
7311#define   NV50_2D_RECT_FORMAT_R16_SNORM							0x000000ef
7312#define   NV50_2D_RECT_FORMAT_R8_UNORM							0x000000f3
7313#define   NV50_2D_RECT_FORMAT_R32_BOOLEAN						0x000000f6
7314#define   NV50_2D_RECT_FORMAT_A8_UNORM							0x000000f7
7315#define   NV50_2D_RECT_FORMAT_X1B5G5R5_UNORM						0x000000f8
7316#define   NV50_2D_RECT_FORMAT_X8B8G8R8_UNORM						0x000000f9
7317#define  NV50_2D_RECT_COLOR								0x00000588
7318#define  NV50_2D_RECT_X1								0x00000600
7319#define  NV50_2D_RECT_Y1								0x00000604
7320#define  NV50_2D_RECT_X2								0x00000608
7321#define  NV50_2D_RECT_Y2								0x0000060c
7322#define  NV50_2D_SIFC_UNK0800								0x00000800
7323#define  NV50_2D_SIFC_FORMAT								0x00000804
7324#define   NV50_2D_SIFC_FORMAT_R32G32B32A32_FLOAT					0x000000c0
7325#define   NV50_2D_SIFC_FORMAT_R32G32B32_FLOAT						0x000000c3
7326#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_UNORM					0x000000c6
7327#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_SNORM					0x000000c7
7328#define   NV50_2D_SIFC_FORMAT_R16G16B16A16_FLOAT					0x000000ca
7329#define   NV50_2D_SIFC_FORMAT_R32G32_FLOAT						0x000000cb
7330#define   NV50_2D_SIFC_FORMAT_R16G16B16X16_FLOAT					0x000000ce
7331#define   NV50_2D_SIFC_FORMAT_A8R8G8B8_UNORM						0x000000cf
7332#define   NV50_2D_SIFC_FORMAT_A2B10G10R10_UNORM						0x000000d1
7333#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_UNORM						0x000000d6
7334#define   NV50_2D_SIFC_FORMAT_A8B8G8R8_SNORM						0x000000d7
7335#define   NV50_2D_SIFC_FORMAT_R16G16_UNORM						0x000000da
7336#define   NV50_2D_SIFC_FORMAT_R16G16_SNORM						0x000000db
7337#define   NV50_2D_SIFC_FORMAT_R16G16_FLOAT						0x000000de
7338#define   NV50_2D_SIFC_FORMAT_A2R10G10B10_UNORM						0x000000df
7339#define   NV50_2D_SIFC_FORMAT_B10G11R11_FLOAT						0x000000e0
7340#define   NV50_2D_SIFC_FORMAT_R32_FLOAT							0x000000e5
7341#define   NV50_2D_SIFC_FORMAT_X8R8G8B8_UNORM						0x000000e6
7342#define   NV50_2D_SIFC_FORMAT_R5G6B5_UNORM						0x000000e8
7343#define   NV50_2D_SIFC_FORMAT_R16_FLOAT							0x000000e9
7344#define   NV50_2D_SIFC_FORMAT_R8G8_UNORM						0x000000ea
7345#define   NV50_2D_SIFC_FORMAT_R8G8_SNORM						0x000000eb
7346#define   NV50_2D_SIFC_FORMAT_R16_UNORM							0x000000ee
7347#define   NV50_2D_SIFC_FORMAT_R16_SNORM							0x000000ef
7348#define   NV50_2D_SIFC_FORMAT_R8_UNORM							0x000000f3
7349#define   NV50_2D_SIFC_FORMAT_R32_BOOLEAN						0x000000f6
7350#define   NV50_2D_SIFC_FORMAT_A8_UNORM							0x000000f7
7351#define   NV50_2D_SIFC_FORMAT_X1B5G5R5_UNORM						0x000000f8
7352#define   NV50_2D_SIFC_FORMAT_X8B8G8R8_UNORM						0x000000f9
7353#define  NV50_2D_SIFC_WIDTH								0x00000838
7354#define  NV50_2D_SIFC_HEIGHT								0x0000083c
7355#define  NV50_2D_SIFC_SCALE_UNK0840							0x00000840
7356#define  NV50_2D_SIFC_SCALE_UNK0844							0x00000844
7357#define  NV50_2D_SIFC_SCALE_UNK0848							0x00000848
7358#define  NV50_2D_SIFC_SCALE_UNK084C							0x0000084c
7359#define  NV50_2D_SIFC_UNK0850								0x00000850
7360#define  NV50_2D_SIFC_DST_X								0x00000854
7361#define  NV50_2D_SIFC_UNK0858								0x00000858
7362#define  NV50_2D_SIFC_DST_Y								0x0000085c
7363#define  NV50_2D_SIFC_DATA								0x00000860
7364#define  NV50_2D_BLIT_DST_X								0x000008b0
7365#define  NV50_2D_BLIT_DST_Y								0x000008b4
7366#define  NV50_2D_BLIT_DST_W								0x000008b8
7367#define  NV50_2D_BLIT_DST_H								0x000008bc
7368#define  NV50_2D_BLIT_SRC_X								0x000008d4
7369#define  NV50_2D_BLIT_SRC_Y								0x000008dc
7370
7371
7372#define NV50_MEMORY_TO_MEMORY_FORMAT							0x00005039
7373
7374#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_IN						0x00000200
7375#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_IN					0x00000204
7376#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_IN					0x00000208
7377#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_IN					0x0000020c
7378#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN				0x00000218
7379#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINEAR_OUT					0x0000021c
7380#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_OUT					0x00000220
7381#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_OUT					0x00000224
7382#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_OUT					0x00000228
7383#define  NV50_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT				0x00000234
7384#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH					0x00000238
7385#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH					0x0000023c
7386#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN						0x0000030c
7387#define  NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT					0x00000310
7388#define  NV50_MEMORY_TO_MEMORY_FORMAT_PITCH_IN						0x00000314
7389#define  NV50_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT						0x00000318
7390#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN					0x0000031c
7391#define  NV50_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT					0x00000320
7392
7393
7394#define NV50TCL										0x00005097
7395
7396#define  NV50TCL_NOP									0x00000100
7397#define  NV50TCL_NOTIFY									0x00000104
7398#define  NV50TCL_DMA_NOTIFY								0x00000180
7399#define  NV50TCL_DMA_UNK0(x)								(0x00000184+((x)*4))
7400#define  NV50TCL_DMA_UNK0__SIZE								0x0000000b
7401#define  NV50TCL_DMA_UNK1(x)								(0x000001c0+((x)*4))
7402#define  NV50TCL_DMA_UNK1__SIZE								0x00000008
7403#define  NV50TCL_RT_ADDRESS_HIGH(x)							(0x00000200+((x)*32))
7404#define  NV50TCL_RT_ADDRESS_HIGH__SIZE							0x00000008
7405#define  NV50TCL_RT_ADDRESS_LOW(x)							(0x00000204+((x)*32))
7406#define  NV50TCL_RT_ADDRESS_LOW__SIZE							0x00000008
7407#define  NV50TCL_RT_FORMAT(x)								(0x00000208+((x)*32))
7408#define  NV50TCL_RT_FORMAT__SIZE							0x00000008
7409#define   NV50TCL_RT_FORMAT_R32G32B32A32_FLOAT						0x000000c0
7410#define   NV50TCL_RT_FORMAT_R32G32B32_FLOAT						0x000000c3
7411#define   NV50TCL_RT_FORMAT_R16G16B16A16_UNORM						0x000000c6
7412#define   NV50TCL_RT_FORMAT_R16G16B16A16_SNORM						0x000000c7
7413#define   NV50TCL_RT_FORMAT_R16G16B16A16_FLOAT						0x000000ca
7414#define   NV50TCL_RT_FORMAT_R32G32_FLOAT						0x000000cb
7415#define   NV50TCL_RT_FORMAT_R16G16B16X16_FLOAT						0x000000ce
7416#define   NV50TCL_RT_FORMAT_A8R8G8B8_UNORM						0x000000cf
7417#define   NV50TCL_RT_FORMAT_A2B10G10R10_UNORM						0x000000d1
7418#define   NV50TCL_RT_FORMAT_A8B8G8R8_UNORM						0x000000d6
7419#define   NV50TCL_RT_FORMAT_A8B8G8R8_SNORM						0x000000d7
7420#define   NV50TCL_RT_FORMAT_R16G16_UNORM						0x000000da
7421#define   NV50TCL_RT_FORMAT_R16G16_SNORM						0x000000db
7422#define   NV50TCL_RT_FORMAT_R16G16_FLOAT						0x000000de
7423#define   NV50TCL_RT_FORMAT_A2R10G10B10_UNORM						0x000000df
7424#define   NV50TCL_RT_FORMAT_B10G11R11_FLOAT						0x000000e0
7425#define   NV50TCL_RT_FORMAT_R32_FLOAT							0x000000e5
7426#define   NV50TCL_RT_FORMAT_X8R8G8B8_UNORM						0x000000e6
7427#define   NV50TCL_RT_FORMAT_R5G6B5_UNORM						0x000000e8
7428#define   NV50TCL_RT_FORMAT_R16_FLOAT							0x000000e9
7429#define   NV50TCL_RT_FORMAT_R8G8_UNORM							0x000000ea
7430#define   NV50TCL_RT_FORMAT_R8G8_SNORM							0x000000eb
7431#define   NV50TCL_RT_FORMAT_R16_UNORM							0x000000ee
7432#define   NV50TCL_RT_FORMAT_R16_SNORM							0x000000ef
7433#define   NV50TCL_RT_FORMAT_R8_UNORM							0x000000f3
7434#define   NV50TCL_RT_FORMAT_R32_BOOLEAN							0x000000f6
7435#define   NV50TCL_RT_FORMAT_A8_UNORM							0x000000f7
7436#define   NV50TCL_RT_FORMAT_X1B5G5R5_UNORM						0x000000f8
7437#define   NV50TCL_RT_FORMAT_X8B8G8R8_UNORM						0x000000f9
7438#define  NV50TCL_RT_TILE_MODE(x)							(0x0000020c+((x)*32))
7439#define  NV50TCL_RT_TILE_MODE__SIZE							0x00000008
7440#define  NV50TCL_RT_UNK4(x)								(0x00000210+((x)*32))
7441#define  NV50TCL_RT_UNK4__SIZE								0x00000008
7442#define  NV50TCL_VTX_ATTR_1F(x)								(0x00000300+((x)*4))
7443#define  NV50TCL_VTX_ATTR_1F__SIZE							0x00000010
7444#define  NV50TCL_VTX_ATTR_2F_X(x)							(0x00000380+((x)*8))
7445#define  NV50TCL_VTX_ATTR_2F_X__SIZE							0x00000010
7446#define  NV50TCL_VTX_ATTR_2F_Y(x)							(0x00000384+((x)*8))
7447#define  NV50TCL_VTX_ATTR_2F_Y__SIZE							0x00000010
7448#define  NV50TCL_VTX_ATTR_3F_X(x)							(0x00000400+((x)*16))
7449#define  NV50TCL_VTX_ATTR_3F_X__SIZE							0x00000010
7450#define  NV50TCL_VTX_ATTR_3F_Y(x)							(0x00000404+((x)*16))
7451#define  NV50TCL_VTX_ATTR_3F_Y__SIZE							0x00000010
7452#define  NV50TCL_VTX_ATTR_3F_Z(x)							(0x00000408+((x)*16))
7453#define  NV50TCL_VTX_ATTR_3F_Z__SIZE							0x00000010
7454#define  NV50TCL_VTX_ATTR_3F_W(x)							(0x0000040c+((x)*16))
7455#define  NV50TCL_VTX_ATTR_3F_W__SIZE							0x00000010
7456#define  NV50TCL_VTX_ATTR_4F_X(x)							(0x00000500+((x)*16))
7457#define  NV50TCL_VTX_ATTR_4F_X__SIZE							0x00000010
7458#define  NV50TCL_VTX_ATTR_4F_Y(x)							(0x00000504+((x)*16))
7459#define  NV50TCL_VTX_ATTR_4F_Y__SIZE							0x00000010
7460#define  NV50TCL_VTX_ATTR_4F_Z(x)							(0x00000508+((x)*16))
7461#define  NV50TCL_VTX_ATTR_4F_Z__SIZE							0x00000010
7462#define  NV50TCL_VTX_ATTR_4F_W(x)							(0x0000050c+((x)*16))
7463#define  NV50TCL_VTX_ATTR_4F_W__SIZE							0x00000010
7464#define  NV50TCL_VTX_ATTR_2I(x)								(0x00000680+((x)*4))
7465#define  NV50TCL_VTX_ATTR_2I__SIZE							0x00000010
7466#define   NV50TCL_VTX_ATTR_2I_X_SHIFT							0
7467#define   NV50TCL_VTX_ATTR_2I_X_MASK							0x0000ffff
7468#define   NV50TCL_VTX_ATTR_2I_Y_SHIFT							16
7469#define   NV50TCL_VTX_ATTR_2I_Y_MASK							0xffff0000
7470#define  NV50TCL_VTX_ATTR_4I_0(x)							(0x00000700+((x)*8))
7471#define  NV50TCL_VTX_ATTR_4I_0__SIZE							0x00000010
7472#define   NV50TCL_VTX_ATTR_4I_0_X_SHIFT							0
7473#define   NV50TCL_VTX_ATTR_4I_0_X_MASK							0x0000ffff
7474#define   NV50TCL_VTX_ATTR_4I_0_Y_SHIFT							16
7475#define   NV50TCL_VTX_ATTR_4I_0_Y_MASK							0xffff0000
7476#define  NV50TCL_VTX_ATTR_4I_1(x)							(0x00000704+((x)*8))
7477#define  NV50TCL_VTX_ATTR_4I_1__SIZE							0x00000010
7478#define   NV50TCL_VTX_ATTR_4I_1_Z_SHIFT							0
7479#define   NV50TCL_VTX_ATTR_4I_1_Z_MASK							0x0000ffff
7480#define   NV50TCL_VTX_ATTR_4I_1_W_SHIFT							16
7481#define   NV50TCL_VTX_ATTR_4I_1_W_MASK							0xffff0000
7482#define  NV50TCL_VTX_ATTR_4NI_0(x)							(0x00000780+((x)*8))
7483#define  NV50TCL_VTX_ATTR_4NI_0__SIZE							0x00000010
7484#define   NV50TCL_VTX_ATTR_4NI_0_X_SHIFT						0
7485#define   NV50TCL_VTX_ATTR_4NI_0_X_MASK							0x0000ffff
7486#define   NV50TCL_VTX_ATTR_4NI_0_Y_SHIFT						16
7487#define   NV50TCL_VTX_ATTR_4NI_0_Y_MASK							0xffff0000
7488#define  NV50TCL_VTX_ATTR_4NI_1(x)							(0x00000784+((x)*8))
7489#define  NV50TCL_VTX_ATTR_4NI_1__SIZE							0x00000010
7490#define   NV50TCL_VTX_ATTR_4NI_1_Z_SHIFT						0
7491#define   NV50TCL_VTX_ATTR_4NI_1_Z_MASK							0x0000ffff
7492#define   NV50TCL_VTX_ATTR_4NI_1_W_SHIFT						16
7493#define   NV50TCL_VTX_ATTR_4NI_1_W_MASK							0xffff0000
7494#define  NV50TCL_VERTEX_ARRAY_FORMAT(x)							(0x00000900+((x)*16))
7495#define  NV50TCL_VERTEX_ARRAY_FORMAT__SIZE						0x00000010
7496#define   NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_SHIFT					0
7497#define   NV50TCL_VERTEX_ARRAY_FORMAT_STRIDE_MASK					0x000000ff
7498#define  NV50TCL_UNK0904_OFFSET_HIGH(x)							(0x00000904+((x)*16))
7499#define  NV50TCL_UNK0904_OFFSET_HIGH__SIZE						0x00000010
7500#define  NV50TCL_UNK0904_OFFSET_LOW(x)							(0x00000908+((x)*16))
7501#define  NV50TCL_UNK0904_OFFSET_LOW__SIZE						0x00000010
7502#define  NV50TCL_VIEWPORT_SCALE(x)							(0x00000a00+((x)*4))
7503#define  NV50TCL_VIEWPORT_SCALE__SIZE							0x00000003
7504#define  NV50TCL_VIEWPORT_TRANSLATE(x)							(0x00000a0c+((x)*4))
7505#define  NV50TCL_VIEWPORT_TRANSLATE__SIZE						0x00000003
7506#define  NV50TCL_VIEWPORT_HORIZ								0x00000c00
7507#define   NV50TCL_VIEWPORT_HORIZ_X_SHIFT						0
7508#define   NV50TCL_VIEWPORT_HORIZ_X_MASK							0x0000ffff
7509#define   NV50TCL_VIEWPORT_HORIZ_W_SHIFT						16
7510#define   NV50TCL_VIEWPORT_HORIZ_W_MASK							0xffff0000
7511#define  NV50TCL_VIEWPORT_VERT								0x00000c04
7512#define   NV50TCL_VIEWPORT_VERT_Y_SHIFT							0
7513#define   NV50TCL_VIEWPORT_VERT_Y_MASK							0x0000ffff
7514#define   NV50TCL_VIEWPORT_VERT_H_SHIFT							16
7515#define   NV50TCL_VIEWPORT_VERT_H_MASK							0xffff0000
7516#define  NV50TCL_DEPTH_RANGE_NEAR							0x00000c08
7517#define  NV50TCL_DEPTH_RANGE_FAR							0x00000c0c
7518#define  NV50TCL_VIEWPORT_CLIP_HORIZ(x)							(0x00000d00+((x)*8))
7519#define  NV50TCL_VIEWPORT_CLIP_HORIZ__SIZE						0x00000008
7520#define  NV50TCL_VIEWPORT_CLIP_VERT(x)							(0x00000d04+((x)*8))
7521#define  NV50TCL_VIEWPORT_CLIP_VERT__SIZE						0x00000008
7522#define  NV50TCL_VERTEX_BUFFER_FIRST							0x00000d74
7523#define  NV50TCL_VERTEX_BUFFER_COUNT							0x00000d78
7524#define  NV50TCL_CLEAR_COLOR(x)								(0x00000d80+((x)*4))
7525#define  NV50TCL_CLEAR_COLOR__SIZE							0x00000004
7526#define  NV50TCL_CLEAR_DEPTH								0x00000d90
7527#define  NV50TCL_CLEAR_STENCIL								0x00000da0
7528#define  NV50TCL_STRMOUT_UNK0DA8							0x00000da8
7529#define  NV50TCL_POLYGON_MODE_FRONT							0x00000dac
7530#define   NV50TCL_POLYGON_MODE_FRONT_POINT						0x00001b00
7531#define   NV50TCL_POLYGON_MODE_FRONT_LINE						0x00001b01
7532#define   NV50TCL_POLYGON_MODE_FRONT_FILL						0x00001b02
7533#define  NV50TCL_POLYGON_MODE_BACK							0x00000db0
7534#define   NV50TCL_POLYGON_MODE_BACK_POINT						0x00001b00
7535#define   NV50TCL_POLYGON_MODE_BACK_LINE						0x00001b01
7536#define   NV50TCL_POLYGON_MODE_BACK_FILL						0x00001b02
7537#define  NV50TCL_POLYGON_SMOOTH_ENABLE							0x00000db4
7538#define  NV50TCL_POLYGON_OFFSET_POINT_ENABLE						0x00000dc0
7539#define  NV50TCL_POLYGON_OFFSET_LINE_ENABLE						0x00000dc4
7540#define  NV50TCL_POLYGON_OFFSET_FILL_ENABLE						0x00000dc8
7541#define  NV50TCL_WINDOW_LEFT								0x00000df8
7542#define  NV50TCL_WINDOW_BOTTOM								0x00000dfc
7543#define  NV50TCL_SCISSOR_ENABLE								0x00000e00
7544#define  NV50TCL_SCISSOR_HORIZ								0x00000e04
7545#define   NV50TCL_SCISSOR_HORIZ_L_SHIFT							0
7546#define   NV50TCL_SCISSOR_HORIZ_L_MASK							0x0000ffff
7547#define   NV50TCL_SCISSOR_HORIZ_R_SHIFT							16
7548#define   NV50TCL_SCISSOR_HORIZ_R_MASK							0xffff0000
7549#define  NV50TCL_SCISSOR_VERT								0x00000e08
7550#define   NV50TCL_SCISSOR_VERT_B_SHIFT							0
7551#define   NV50TCL_SCISSOR_VERT_B_MASK							0x0000ffff
7552#define   NV50TCL_SCISSOR_VERT_T_SHIFT							16
7553#define   NV50TCL_SCISSOR_VERT_T_MASK							0xffff0000
7554#define  NV50TCL_CB_ADDR								0x00000f00
7555#define   NV50TCL_CB_ADDR_ID_SHIFT							8
7556#define   NV50TCL_CB_ADDR_ID_MASK							0xffffff00
7557#define   NV50TCL_CB_ADDR_BUFFER_SHIFT							0
7558#define   NV50TCL_CB_ADDR_BUFFER_MASK							0x000000ff
7559#define  NV50TCL_CB_DATA(x)								(0x00000f04+((x)*4))
7560#define  NV50TCL_CB_DATA__SIZE								0x00000010
7561#define  NV50TCL_STENCIL_FRONT_FUNC_REF							0x00000f54
7562#define  NV50TCL_STENCIL_FRONT_MASK							0x00000f58
7563#define  NV50TCL_STENCIL_FRONT_FUNC_MASK						0x00000f5c
7564#define  NV50TCL_GP_ADDRESS_HIGH							0x00000f70
7565#define  NV50TCL_GP_ADDRESS_LOW								0x00000f74
7566#define  NV50TCL_VP_ADDRESS_HIGH							0x00000f7c
7567#define  NV50TCL_VP_ADDRESS_LOW								0x00000f80
7568#define  NV50TCL_UNK0F84_ADDRESS_HIGH							0x00000f84
7569#define  NV50TCL_UNK0F84_ADDRESS_LOW							0x00000f88
7570#define  NV50TCL_DEPTH_BOUNDS(x)							(0x00000f9c+((x)*4))
7571#define  NV50TCL_DEPTH_BOUNDS__SIZE							0x00000002
7572#define  NV50TCL_FP_ADDRESS_HIGH							0x00000fa4
7573#define  NV50TCL_FP_ADDRESS_LOW								0x00000fa8
7574#define  NV50TCL_MSAA_MASK(x)								(0x00000fbc+((x)*4))
7575#define  NV50TCL_MSAA_MASK__SIZE							0x00000004
7576#define  NV50TCL_ZETA_ADDRESS_HIGH							0x00000fe0
7577#define  NV50TCL_ZETA_ADDRESS_LOW							0x00000fe4
7578#define  NV50TCL_ZETA_FORMAT								0x00000fe8
7579#define   NV50TCL_ZETA_FORMAT_Z32_FLOAT							0x0000000a
7580#define   NV50TCL_ZETA_FORMAT_Z24S8_UNORM						0x00000014
7581#define   NV50TCL_ZETA_FORMAT_X8Z24_UNORM						0x00000015
7582#define   NV50TCL_ZETA_FORMAT_S8Z24_UNORM						0x00000016
7583#define   NV50TCL_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM					0x00000019
7584#define  NV50TCL_ZETA_TILE_MODE								0x00000fec
7585#define  NV50TCL_ZETA_UNK								0x00000ff0
7586#define  NV50TCL_SCREEN_SCISSOR_HORIZ							0x00000ff4
7587#define   NV50TCL_SCREEN_SCISSOR_HORIZ_W_SHIFT						16
7588#define   NV50TCL_SCREEN_SCISSOR_HORIZ_W_MASK						0xffff0000
7589#define   NV50TCL_SCREEN_SCISSOR_HORIZ_X_SHIFT						0
7590#define   NV50TCL_SCREEN_SCISSOR_HORIZ_X_MASK						0x0000ffff
7591#define  NV50TCL_SCREEN_SCISSOR_VERT							0x00000ff8
7592#define   NV50TCL_SCREEN_SCISSOR_VERT_H_SHIFT						16
7593#define   NV50TCL_SCREEN_SCISSOR_VERT_H_MASK						0xffff0000
7594#define   NV50TCL_SCREEN_SCISSOR_VERT_Y_SHIFT						0
7595#define   NV50TCL_SCREEN_SCISSOR_VERT_Y_MASK						0x0000ffff
7596#define  NV50TCL_UNK1080_OFFSET_HIGH(x)							(0x00001080+((x)*8))
7597#define  NV50TCL_UNK1080_OFFSET_HIGH__SIZE						0x00000010
7598#define  NV50TCL_UNK1080_OFFSET_LOW(x)							(0x00001084+((x)*8))
7599#define  NV50TCL_UNK1080_OFFSET_LOW__SIZE						0x00000010
7600#define  NV50TCL_ZETA_HORIZ								0x00001228
7601#define  NV50TCL_ZETA_VERT								0x0000122c
7602#define  NV50TCL_RT_HORIZ(x)								(0x00001240+((x)*8))
7603#define  NV50TCL_RT_HORIZ__SIZE								0x00000008
7604#define  NV50TCL_RT_VERT(x)								(0x00001244+((x)*8))
7605#define  NV50TCL_RT_VERT__SIZE								0x00000008
7606#define  NV50TCL_CB_DEF_ADDRESS_HIGH							0x00001280
7607#define  NV50TCL_CB_DEF_ADDRESS_LOW							0x00001284
7608#define  NV50TCL_CB_DEF_SET								0x00001288
7609#define   NV50TCL_CB_DEF_SET_SIZE_SHIFT							0
7610#define   NV50TCL_CB_DEF_SET_SIZE_MASK							0x0000ffff
7611#define   NV50TCL_CB_DEF_SET_BUFFER_SHIFT						16
7612#define   NV50TCL_CB_DEF_SET_BUFFER_MASK						0xffff0000
7613#define  NV50TCL_STRMOUT_BUFFERS_CTRL							0x00001294
7614#define   NV50TCL_STRMOUT_BUFFERS_CTRL_INTERLEAVED					(1 <<  0)
7615#define   NV50TCL_STRMOUT_BUFFERS_CTRL_SEPARATE_SHIFT					4
7616#define   NV50TCL_STRMOUT_BUFFERS_CTRL_SEPARATE_MASK					0x000000f0
7617#define   NV50TCL_STRMOUT_BUFFERS_CTRL_STRIDE_SHIFT					8
7618#define   NV50TCL_STRMOUT_BUFFERS_CTRL_STRIDE_MASK					0x0000ff00
7619#define  NV50TCL_FP_RESULT_COUNT							0x00001298
7620#define  NV50TCL_DEPTH_TEST_ENABLE							0x000012cc
7621#define  NV50TCL_SHADE_MODEL								0x000012d4
7622#define   NV50TCL_SHADE_MODEL_FLAT							0x00001d00
7623#define   NV50TCL_SHADE_MODEL_SMOOTH							0x00001d01
7624#define  NV50TCL_DEPTH_WRITE_ENABLE							0x000012e8
7625#define  NV50TCL_ALPHA_TEST_ENABLE							0x000012ec
7626#define  NV50TCL_DEPTH_TEST_FUNC							0x0000130c
7627#define   NV50TCL_DEPTH_TEST_FUNC_NEVER							0x00000200
7628#define   NV50TCL_DEPTH_TEST_FUNC_LESS							0x00000201
7629#define   NV50TCL_DEPTH_TEST_FUNC_EQUAL							0x00000202
7630#define   NV50TCL_DEPTH_TEST_FUNC_LEQUAL						0x00000203
7631#define   NV50TCL_DEPTH_TEST_FUNC_GREATER						0x00000204
7632#define   NV50TCL_DEPTH_TEST_FUNC_GREATER						0x00000204
7633#define   NV50TCL_DEPTH_TEST_FUNC_NOTEQUAL						0x00000205
7634#define   NV50TCL_DEPTH_TEST_FUNC_GEQUAL						0x00000206
7635#define   NV50TCL_DEPTH_TEST_FUNC_ALWAYS						0x00000207
7636#define  NV50TCL_ALPHA_TEST_REF								0x00001310
7637#define  NV50TCL_ALPHA_TEST_FUNC							0x00001314
7638#define   NV50TCL_ALPHA_TEST_FUNC_NEVER							0x00000200
7639#define   NV50TCL_ALPHA_TEST_FUNC_LESS							0x00000201
7640#define   NV50TCL_ALPHA_TEST_FUNC_EQUAL							0x00000202
7641#define   NV50TCL_ALPHA_TEST_FUNC_LEQUAL						0x00000203
7642#define   NV50TCL_ALPHA_TEST_FUNC_GREATER						0x00000204
7643#define   NV50TCL_ALPHA_TEST_FUNC_GREATER						0x00000204
7644#define   NV50TCL_ALPHA_TEST_FUNC_NOTEQUAL						0x00000205
7645#define   NV50TCL_ALPHA_TEST_FUNC_GEQUAL						0x00000206
7646#define   NV50TCL_ALPHA_TEST_FUNC_ALWAYS						0x00000207
7647#define  NV50TCL_BLEND_COLOR(x)								(0x0000131c+((x)*4))
7648#define  NV50TCL_BLEND_COLOR__SIZE							0x00000004
7649#define  NV50TCL_BLEND_EQUATION_RGB							0x00001340
7650#define   NV50TCL_BLEND_EQUATION_RGB_FUNC_ADD						0x00008006
7651#define   NV50TCL_BLEND_EQUATION_RGB_MIN						0x00008007
7652#define   NV50TCL_BLEND_EQUATION_RGB_MAX						0x00008008
7653#define   NV50TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT					0x0000800a
7654#define   NV50TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT				0x0000800b
7655#define  NV50TCL_BLEND_FUNC_SRC_RGB							0x00001344
7656#define   NV50TCL_BLEND_FUNC_SRC_RGB_ZERO						0x00000000
7657#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE						0x00000001
7658#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR						0x00000300
7659#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR				0x00000301
7660#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA						0x00000302
7661#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
7662#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA						0x00000304
7663#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA				0x00000305
7664#define   NV50TCL_BLEND_FUNC_SRC_RGB_DST_COLOR						0x00000306
7665#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR				0x00000307
7666#define   NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE					0x00000308
7667#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR					0x00008001
7668#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
7669#define   NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA					0x00008003
7670#define   NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
7671#define  NV50TCL_BLEND_FUNC_DST_RGB							0x00001348
7672#define   NV50TCL_BLEND_FUNC_DST_RGB_ZERO						0x00000000
7673#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE						0x00000001
7674#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_COLOR						0x00000300
7675#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR				0x00000301
7676#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA						0x00000302
7677#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA				0x00000303
7678#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_ALPHA						0x00000304
7679#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA				0x00000305
7680#define   NV50TCL_BLEND_FUNC_DST_RGB_DST_COLOR						0x00000306
7681#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR				0x00000307
7682#define   NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE					0x00000308
7683#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR					0x00008001
7684#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR				0x00008002
7685#define   NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA					0x00008003
7686#define   NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA				0x00008004
7687#define  NV50TCL_BLEND_EQUATION_ALPHA							0x0000134c
7688#define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_ADD						0x00008006
7689#define   NV50TCL_BLEND_EQUATION_ALPHA_MIN						0x00008007
7690#define   NV50TCL_BLEND_EQUATION_ALPHA_MAX						0x00008008
7691#define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT					0x0000800a
7692#define   NV50TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT				0x0000800b
7693#define  NV50TCL_BLEND_FUNC_SRC_ALPHA							0x00001350
7694#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ZERO						0x00000000
7695#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE						0x00000001
7696#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR					0x00000300
7697#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR				0x00000301
7698#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA					0x00000302
7699#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA				0x00000303
7700#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA					0x00000304
7701#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA				0x00000305
7702#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR					0x00000306
7703#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR				0x00000307
7704#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE				0x00000308
7705#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR					0x00008001
7706#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR				0x00008002
7707#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA					0x00008003
7708#define   NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA				0x00008004
7709#define  NV50TCL_BLEND_FUNC_DST_ALPHA							0x00001358
7710#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ZERO						0x00000000
7711#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE						0x00000001
7712#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR					0x00000300
7713#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR				0x00000301
7714#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA					0x00000302
7715#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA				0x00000303
7716#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA					0x00000304
7717#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA				0x00000305
7718#define   NV50TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR					0x00000306
7719#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR				0x00000307
7720#define   NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE				0x00000308
7721#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR					0x00008001
7722#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR				0x00008002
7723#define   NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA					0x00008003
7724#define   NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA				0x00008004
7725#define  NV50TCL_BLEND_ENABLE(x)							(0x00001360+((x)*4))
7726#define  NV50TCL_BLEND_ENABLE__SIZE							0x00000008
7727#define  NV50TCL_STENCIL_BACK_ENABLE							0x00001380
7728#define  NV50TCL_STENCIL_BACK_OP_FAIL							0x00001384
7729#define   NV50TCL_STENCIL_BACK_OP_FAIL_ZERO						0x00000000
7730#define   NV50TCL_STENCIL_BACK_OP_FAIL_INVERT						0x0000150a
7731#define   NV50TCL_STENCIL_BACK_OP_FAIL_KEEP						0x00001e00
7732#define   NV50TCL_STENCIL_BACK_OP_FAIL_REPLACE						0x00001e01
7733#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR						0x00001e02
7734#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR						0x00001e03
7735#define   NV50TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP					0x00008507
7736#define   NV50TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP					0x00008508
7737#define  NV50TCL_STENCIL_BACK_OP_ZFAIL							0x00001388
7738#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_ZERO						0x00000000
7739#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INVERT						0x0000150a
7740#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_KEEP						0x00001e00
7741#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_REPLACE						0x00001e01
7742#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR						0x00001e02
7743#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR						0x00001e03
7744#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP					0x00008507
7745#define   NV50TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP					0x00008508
7746#define  NV50TCL_STENCIL_BACK_OP_ZPASS							0x0000138c
7747#define   NV50TCL_STENCIL_BACK_OP_ZPASS_ZERO						0x00000000
7748#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INVERT						0x0000150a
7749#define   NV50TCL_STENCIL_BACK_OP_ZPASS_KEEP						0x00001e00
7750#define   NV50TCL_STENCIL_BACK_OP_ZPASS_REPLACE						0x00001e01
7751#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR						0x00001e02
7752#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR						0x00001e03
7753#define   NV50TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP					0x00008507
7754#define   NV50TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP					0x00008508
7755#define  NV50TCL_STENCIL_BACK_FUNC_FUNC							0x00001390
7756#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NEVER						0x00000200
7757#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LESS						0x00000201
7758#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_EQUAL						0x00000202
7759#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL						0x00000203
7760#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
7761#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GREATER					0x00000204
7762#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL					0x00000205
7763#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL						0x00000206
7764#define   NV50TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS						0x00000207
7765#define  NV50TCL_STENCIL_BACK_FUNC_REF							0x00001394
7766#define  NV50TCL_STENCIL_BACK_MASK							0x00001398
7767#define  NV50TCL_STENCIL_BACK_FUNC_MASK							0x0000139c
7768#define  NV50TCL_FRAG_COLOR_CLAMP_EN							0x000013a8
7769#define  NV50TCL_LINE_WIDTH								0x000013b0
7770#define  NV50TCL_POINT_COORD_REPLACE_MAP(x)						(0x000013c0+((x)*4))
7771#define  NV50TCL_POINT_COORD_REPLACE_MAP__SIZE						0x00000008
7772#define  NV50TCL_VP_START_ID								0x0000140c
7773#define  NV50TCL_GP_START_ID								0x00001410
7774#define  NV50TCL_FP_START_ID								0x00001414
7775#define  NV50TCL_GP_VERTEX_OUTPUT_COUNT							0x00001420
7776#define  NV50TCL_SET_SAMPLER_TEX							0x00001458
7777#define   NV50TCL_SET_SAMPLER_TEX_SAMPLER_SHIFT						1
7778#define   NV50TCL_SET_SAMPLER_TEX_SAMPLER_MASK						0x000001fe
7779#define   NV50TCL_SET_SAMPLER_TEX_TIC_SHIFT						9
7780#define   NV50TCL_SET_SAMPLER_TEX_TIC_MASK						0x0001fe00
7781#define   NV50TCL_SET_SAMPLER_TEX_VALID							(1 <<  0)
7782#define  NV50TCL_STRMOUT_MAP(x)								(0x00001480+((x)*4))
7783#define  NV50TCL_STRMOUT_MAP__SIZE							0x00000020
7784#define  NV50TCL_VP_CLIP_DISTANCE_ENABLE						0x00001510
7785#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_0						(1 <<  0)
7786#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_1						(1 <<  1)
7787#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_2						(1 <<  2)
7788#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_3						(1 <<  3)
7789#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_4						(1 <<  4)
7790#define   NV50TCL_VP_CLIP_DISTANCE_ENABLE_5						(1 <<  5)
7791#define  NV50TCL_POINT_SIZE								0x00001518
7792#define  NV50TCL_POINT_SPRITE_ENABLE							0x00001520
7793#define  NV50TCL_MULTISAMPLE_CTRL							0x0000153c
7794#define   NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_COVERAGE					(1 <<  0)
7795#define   NV50TCL_MULTISAMPLE_CTRL_ALPHA_TO_ONE						(1 <<  4)
7796#define  NV50TCL_TSC_ADDRESS_HIGH							0x0000155c
7797#define  NV50TCL_TSC_ADDRESS_LOW							0x00001560
7798#define  NV50TCL_POLYGON_OFFSET_FACTOR							0x0000156c
7799#define  NV50TCL_LINE_SMOOTH_ENABLE							0x00001570
7800#define  NV50TCL_TIC_ADDRESS_HIGH							0x00001574
7801#define  NV50TCL_TIC_ADDRESS_LOW							0x00001578
7802#define  NV50TCL_STENCIL_FRONT_ENABLE							0x00001594
7803#define  NV50TCL_STENCIL_FRONT_OP_FAIL							0x00001598
7804#define   NV50TCL_STENCIL_FRONT_OP_FAIL_ZERO						0x00000000
7805#define   NV50TCL_STENCIL_FRONT_OP_FAIL_INVERT						0x0000150a
7806#define   NV50TCL_STENCIL_FRONT_OP_FAIL_KEEP						0x00001e00
7807#define   NV50TCL_STENCIL_FRONT_OP_FAIL_REPLACE						0x00001e01
7808#define   NV50TCL_STENCIL_FRONT_OP_FAIL_INCR						0x00001e02
7809#define   NV50TCL_STENCIL_FRONT_OP_FAIL_DECR						0x00001e03
7810#define   NV50TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP					0x00008507
7811#define   NV50TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP					0x00008508
7812#define  NV50TCL_STENCIL_FRONT_OP_ZFAIL							0x0000159c
7813#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_ZERO						0x00000000
7814#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_INVERT						0x0000150a
7815#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_KEEP						0x00001e00
7816#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE					0x00001e01
7817#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_INCR						0x00001e02
7818#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_DECR						0x00001e03
7819#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP					0x00008507
7820#define   NV50TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP					0x00008508
7821#define  NV50TCL_STENCIL_FRONT_OP_ZPASS							0x000015a0
7822#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_ZERO						0x00000000
7823#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_INVERT						0x0000150a
7824#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_KEEP						0x00001e00
7825#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_REPLACE					0x00001e01
7826#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_INCR						0x00001e02
7827#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_DECR						0x00001e03
7828#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP					0x00008507
7829#define   NV50TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP					0x00008508
7830#define  NV50TCL_STENCIL_FRONT_FUNC_FUNC						0x000015a4
7831#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_NEVER						0x00000200
7832#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_LESS						0x00000201
7833#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL						0x00000202
7834#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL					0x00000203
7835#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
7836#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GREATER					0x00000204
7837#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL					0x00000205
7838#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL					0x00000206
7839#define   NV50TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS					0x00000207
7840#define  NV50TCL_POLYGON_OFFSET_UNITS							0x000015bc
7841#define  NV50TCL_MULTISAMPLE_SAMPLES_LOG2						0x000015d0
7842#define  NV50TCL_VERTEX_BEGIN								0x000015dc
7843#define   NV50TCL_VERTEX_BEGIN_POINTS							0x00000000
7844#define   NV50TCL_VERTEX_BEGIN_LINES							0x00000001
7845#define   NV50TCL_VERTEX_BEGIN_LINE_LOOP						0x00000002
7846#define   NV50TCL_VERTEX_BEGIN_LINE_STRIP						0x00000003
7847#define   NV50TCL_VERTEX_BEGIN_TRIANGLES						0x00000004
7848#define   NV50TCL_VERTEX_BEGIN_TRIANGLE_STRIP						0x00000005
7849#define   NV50TCL_VERTEX_BEGIN_TRIANGLE_FAN						0x00000006
7850#define   NV50TCL_VERTEX_BEGIN_QUADS							0x00000007
7851#define   NV50TCL_VERTEX_BEGIN_QUAD_STRIP						0x00000008
7852#define   NV50TCL_VERTEX_BEGIN_POLYGON							0x00000009
7853#define   NV50TCL_VERTEX_BEGIN_LINES_ADJACENCY						0x0000000a
7854#define   NV50TCL_VERTEX_BEGIN_LINE_STRIP_ADJACENCY					0x0000000b
7855#define   NV50TCL_VERTEX_BEGIN_TRIANGLES_ADJACENCY					0x0000000c
7856#define   NV50TCL_VERTEX_BEGIN_TRIANGLE_STRIP_ADJACENCY					0x0000000d
7857#define  NV50TCL_VERTEX_END								0x000015e0
7858#define  NV50TCL_VERTEX_DATA								0x00001640
7859#define  NV50TCL_PRIM_RESTART_ENABLE							0x00001644
7860#define  NV50TCL_PRIM_RESTART_INDEX							0x00001648
7861#define  NV50TCL_VP_ATTR_EN_0								0x00001650
7862#define   NV50TCL_VP_ATTR_EN_0_7_SHIFT							28
7863#define   NV50TCL_VP_ATTR_EN_0_7_MASK							0xf0000000
7864#define    NV50TCL_VP_ATTR_EN_0_7_NONE							0x00000000
7865#define    NV50TCL_VP_ATTR_EN_0_7_XNNN							0x10000000
7866#define    NV50TCL_VP_ATTR_EN_0_7_NYNN							0x20000000
7867#define    NV50TCL_VP_ATTR_EN_0_7_XYNN							0x30000000
7868#define    NV50TCL_VP_ATTR_EN_0_7_NNZN							0x40000000
7869#define    NV50TCL_VP_ATTR_EN_0_7_XNZN							0x50000000
7870#define    NV50TCL_VP_ATTR_EN_0_7_NYZN							0x60000000
7871#define    NV50TCL_VP_ATTR_EN_0_7_XYZN							0x70000000
7872#define    NV50TCL_VP_ATTR_EN_0_7_NNNW							0x80000000
7873#define    NV50TCL_VP_ATTR_EN_0_7_XNNW							0x90000000
7874#define    NV50TCL_VP_ATTR_EN_0_7_NYNW							0xa0000000
7875#define    NV50TCL_VP_ATTR_EN_0_7_XYNW							0xb0000000
7876#define    NV50TCL_VP_ATTR_EN_0_7_NNZW							0xc0000000
7877#define    NV50TCL_VP_ATTR_EN_0_7_XNZW							0xd0000000
7878#define    NV50TCL_VP_ATTR_EN_0_7_NYZW							0xe0000000
7879#define    NV50TCL_VP_ATTR_EN_0_7_XYZW							0xf0000000
7880#define   NV50TCL_VP_ATTR_EN_0_6_SHIFT							24
7881#define   NV50TCL_VP_ATTR_EN_0_6_MASK							0x0f000000
7882#define    NV50TCL_VP_ATTR_EN_0_6_NONE							0x00000000
7883#define    NV50TCL_VP_ATTR_EN_0_6_XNNN							0x01000000
7884#define    NV50TCL_VP_ATTR_EN_0_6_NYNN							0x02000000
7885#define    NV50TCL_VP_ATTR_EN_0_6_XYNN							0x03000000
7886#define    NV50TCL_VP_ATTR_EN_0_6_NNZN							0x04000000
7887#define    NV50TCL_VP_ATTR_EN_0_6_XNZN							0x05000000
7888#define    NV50TCL_VP_ATTR_EN_0_6_NYZN							0x06000000
7889#define    NV50TCL_VP_ATTR_EN_0_6_XYZN							0x07000000
7890#define    NV50TCL_VP_ATTR_EN_0_6_NNNW							0x08000000
7891#define    NV50TCL_VP_ATTR_EN_0_6_XNNW							0x09000000
7892#define    NV50TCL_VP_ATTR_EN_0_6_NYNW							0x0a000000
7893#define    NV50TCL_VP_ATTR_EN_0_6_XYNW							0x0b000000
7894#define    NV50TCL_VP_ATTR_EN_0_6_NNZW							0x0c000000
7895#define    NV50TCL_VP_ATTR_EN_0_6_XNZW							0x0d000000
7896#define    NV50TCL_VP_ATTR_EN_0_6_NYZW							0x0e000000
7897#define    NV50TCL_VP_ATTR_EN_0_6_XYZW							0x0f000000
7898#define   NV50TCL_VP_ATTR_EN_0_5_SHIFT							20
7899#define   NV50TCL_VP_ATTR_EN_0_5_MASK							0x00f00000
7900#define    NV50TCL_VP_ATTR_EN_0_5_NONE							0x00000000
7901#define    NV50TCL_VP_ATTR_EN_0_5_XNNN							0x00100000
7902#define    NV50TCL_VP_ATTR_EN_0_5_NYNN							0x00200000
7903#define    NV50TCL_VP_ATTR_EN_0_5_XYNN							0x00300000
7904#define    NV50TCL_VP_ATTR_EN_0_5_NNZN							0x00400000
7905#define    NV50TCL_VP_ATTR_EN_0_5_XNZN							0x00500000
7906#define    NV50TCL_VP_ATTR_EN_0_5_NYZN							0x00600000
7907#define    NV50TCL_VP_ATTR_EN_0_5_XYZN							0x00700000
7908#define    NV50TCL_VP_ATTR_EN_0_5_NNNW							0x00800000
7909#define    NV50TCL_VP_ATTR_EN_0_5_XNNW							0x00900000
7910#define    NV50TCL_VP_ATTR_EN_0_5_NYNW							0x00a00000
7911#define    NV50TCL_VP_ATTR_EN_0_5_XYNW							0x00b00000
7912#define    NV50TCL_VP_ATTR_EN_0_5_NNZW							0x00c00000
7913#define    NV50TCL_VP_ATTR_EN_0_5_XNZW							0x00d00000
7914#define    NV50TCL_VP_ATTR_EN_0_5_NYZW							0x00e00000
7915#define    NV50TCL_VP_ATTR_EN_0_5_XYZW							0x00f00000
7916#define   NV50TCL_VP_ATTR_EN_0_4_SHIFT							16
7917#define   NV50TCL_VP_ATTR_EN_0_4_MASK							0x000f0000
7918#define    NV50TCL_VP_ATTR_EN_0_4_NONE							0x00000000
7919#define    NV50TCL_VP_ATTR_EN_0_4_XNNN							0x00010000
7920#define    NV50TCL_VP_ATTR_EN_0_4_NYNN							0x00020000
7921#define    NV50TCL_VP_ATTR_EN_0_4_XYNN							0x00030000
7922#define    NV50TCL_VP_ATTR_EN_0_4_NNZN							0x00040000
7923#define    NV50TCL_VP_ATTR_EN_0_4_XNZN							0x00050000
7924#define    NV50TCL_VP_ATTR_EN_0_4_NYZN							0x00060000
7925#define    NV50TCL_VP_ATTR_EN_0_4_XYZN							0x00070000
7926#define    NV50TCL_VP_ATTR_EN_0_4_NNNW							0x00080000
7927#define    NV50TCL_VP_ATTR_EN_0_4_XNNW							0x00090000
7928#define    NV50TCL_VP_ATTR_EN_0_4_NYNW							0x000a0000
7929#define    NV50TCL_VP_ATTR_EN_0_4_XYNW							0x000b0000
7930#define    NV50TCL_VP_ATTR_EN_0_4_NNZW							0x000c0000
7931#define    NV50TCL_VP_ATTR_EN_0_4_XNZW							0x000d0000
7932#define    NV50TCL_VP_ATTR_EN_0_4_NYZW							0x000e0000
7933#define    NV50TCL_VP_ATTR_EN_0_4_XYZW							0x000f0000
7934#define   NV50TCL_VP_ATTR_EN_0_3_SHIFT							12
7935#define   NV50TCL_VP_ATTR_EN_0_3_MASK							0x0000f000
7936#define    NV50TCL_VP_ATTR_EN_0_3_NONE							0x00000000
7937#define    NV50TCL_VP_ATTR_EN_0_3_XNNN							0x00001000
7938#define    NV50TCL_VP_ATTR_EN_0_3_NYNN							0x00002000
7939#define    NV50TCL_VP_ATTR_EN_0_3_XYNN							0x00003000
7940#define    NV50TCL_VP_ATTR_EN_0_3_NNZN							0x00004000
7941#define    NV50TCL_VP_ATTR_EN_0_3_XNZN							0x00005000
7942#define    NV50TCL_VP_ATTR_EN_0_3_NYZN							0x00006000
7943#define    NV50TCL_VP_ATTR_EN_0_3_XYZN							0x00007000
7944#define    NV50TCL_VP_ATTR_EN_0_3_NNNW							0x00008000
7945#define    NV50TCL_VP_ATTR_EN_0_3_XNNW							0x00009000
7946#define    NV50TCL_VP_ATTR_EN_0_3_NYNW							0x0000a000
7947#define    NV50TCL_VP_ATTR_EN_0_3_XYNW							0x0000b000
7948#define    NV50TCL_VP_ATTR_EN_0_3_NNZW							0x0000c000
7949#define    NV50TCL_VP_ATTR_EN_0_3_XNZW							0x0000d000
7950#define    NV50TCL_VP_ATTR_EN_0_3_NYZW							0x0000e000
7951#define    NV50TCL_VP_ATTR_EN_0_3_XYZW							0x0000f000
7952#define   NV50TCL_VP_ATTR_EN_0_2_SHIFT							8
7953#define   NV50TCL_VP_ATTR_EN_0_2_MASK							0x00000f00
7954#define    NV50TCL_VP_ATTR_EN_0_2_NONE							0x00000000
7955#define    NV50TCL_VP_ATTR_EN_0_2_XNNN							0x00000100
7956#define    NV50TCL_VP_ATTR_EN_0_2_NYNN							0x00000200
7957#define    NV50TCL_VP_ATTR_EN_0_2_XYNN							0x00000300
7958#define    NV50TCL_VP_ATTR_EN_0_2_NNZN							0x00000400
7959#define    NV50TCL_VP_ATTR_EN_0_2_XNZN							0x00000500
7960#define    NV50TCL_VP_ATTR_EN_0_2_NYZN							0x00000600
7961#define    NV50TCL_VP_ATTR_EN_0_2_XYZN							0x00000700
7962#define    NV50TCL_VP_ATTR_EN_0_2_NNNW							0x00000800
7963#define    NV50TCL_VP_ATTR_EN_0_2_XNNW							0x00000900
7964#define    NV50TCL_VP_ATTR_EN_0_2_NYNW							0x00000a00
7965#define    NV50TCL_VP_ATTR_EN_0_2_XYNW							0x00000b00
7966#define    NV50TCL_VP_ATTR_EN_0_2_NNZW							0x00000c00
7967#define    NV50TCL_VP_ATTR_EN_0_2_XNZW							0x00000d00
7968#define    NV50TCL_VP_ATTR_EN_0_2_NYZW							0x00000e00
7969#define    NV50TCL_VP_ATTR_EN_0_2_XYZW							0x00000f00
7970#define   NV50TCL_VP_ATTR_EN_0_1_SHIFT							4
7971#define   NV50TCL_VP_ATTR_EN_0_1_MASK							0x000000f0
7972#define    NV50TCL_VP_ATTR_EN_0_1_NONE							0x00000000
7973#define    NV50TCL_VP_ATTR_EN_0_1_XNNN							0x00000010
7974#define    NV50TCL_VP_ATTR_EN_0_1_NYNN							0x00000020
7975#define    NV50TCL_VP_ATTR_EN_0_1_XYNN							0x00000030
7976#define    NV50TCL_VP_ATTR_EN_0_1_NNZN							0x00000040
7977#define    NV50TCL_VP_ATTR_EN_0_1_XNZN							0x00000050
7978#define    NV50TCL_VP_ATTR_EN_0_1_NYZN							0x00000060
7979#define    NV50TCL_VP_ATTR_EN_0_1_XYZN							0x00000070
7980#define    NV50TCL_VP_ATTR_EN_0_1_NNNW							0x00000080
7981#define    NV50TCL_VP_ATTR_EN_0_1_XNNW							0x00000090
7982#define    NV50TCL_VP_ATTR_EN_0_1_NYNW							0x000000a0
7983#define    NV50TCL_VP_ATTR_EN_0_1_XYNW							0x000000b0
7984#define    NV50TCL_VP_ATTR_EN_0_1_NNZW							0x000000c0
7985#define    NV50TCL_VP_ATTR_EN_0_1_XNZW							0x000000d0
7986#define    NV50TCL_VP_ATTR_EN_0_1_NYZW							0x000000e0
7987#define    NV50TCL_VP_ATTR_EN_0_1_XYZW							0x000000f0
7988#define   NV50TCL_VP_ATTR_EN_0_0_SHIFT							0
7989#define   NV50TCL_VP_ATTR_EN_0_0_MASK							0x0000000f
7990#define    NV50TCL_VP_ATTR_EN_0_0_NONE							0x00000000
7991#define    NV50TCL_VP_ATTR_EN_0_0_XNNN							0x00000001
7992#define    NV50TCL_VP_ATTR_EN_0_0_NYNN							0x00000002
7993#define    NV50TCL_VP_ATTR_EN_0_0_XYNN							0x00000003
7994#define    NV50TCL_VP_ATTR_EN_0_0_NNZN							0x00000004
7995#define    NV50TCL_VP_ATTR_EN_0_0_XNZN							0x00000005
7996#define    NV50TCL_VP_ATTR_EN_0_0_NYZN							0x00000006
7997#define    NV50TCL_VP_ATTR_EN_0_0_XYZN							0x00000007
7998#define    NV50TCL_VP_ATTR_EN_0_0_NNNW							0x00000008
7999#define    NV50TCL_VP_ATTR_EN_0_0_XNNW							0x00000009
8000#define    NV50TCL_VP_ATTR_EN_0_0_NYNW							0x0000000a
8001#define    NV50TCL_VP_ATTR_EN_0_0_XYNW							0x0000000b
8002#define    NV50TCL_VP_ATTR_EN_0_0_NNZW							0x0000000c
8003#define    NV50TCL_VP_ATTR_EN_0_0_XNZW							0x0000000d
8004#define    NV50TCL_VP_ATTR_EN_0_0_NYZW							0x0000000e
8005#define    NV50TCL_VP_ATTR_EN_0_0_XYZW							0x0000000f
8006#define  NV50TCL_VP_ATTR_EN_1								0x00001654
8007#define   NV50TCL_VP_ATTR_EN_1_15_SHIFT							28
8008#define   NV50TCL_VP_ATTR_EN_1_15_MASK							0xf0000000
8009#define    NV50TCL_VP_ATTR_EN_1_15_NONE							0x00000000
8010#define    NV50TCL_VP_ATTR_EN_1_15_XNNN							0x10000000
8011#define    NV50TCL_VP_ATTR_EN_1_15_NYNN							0x20000000
8012#define    NV50TCL_VP_ATTR_EN_1_15_XYNN							0x30000000
8013#define    NV50TCL_VP_ATTR_EN_1_15_NNZN							0x40000000
8014#define    NV50TCL_VP_ATTR_EN_1_15_XNZN							0x50000000
8015#define    NV50TCL_VP_ATTR_EN_1_15_NYZN							0x60000000
8016#define    NV50TCL_VP_ATTR_EN_1_15_XYZN							0x70000000
8017#define    NV50TCL_VP_ATTR_EN_1_15_NNNW							0x80000000
8018#define    NV50TCL_VP_ATTR_EN_1_15_XNNW							0x90000000
8019#define    NV50TCL_VP_ATTR_EN_1_15_NYNW							0xa0000000
8020#define    NV50TCL_VP_ATTR_EN_1_15_XYNW							0xb0000000
8021#define    NV50TCL_VP_ATTR_EN_1_15_NNZW							0xc0000000
8022#define    NV50TCL_VP_ATTR_EN_1_15_XNZW							0xd0000000
8023#define    NV50TCL_VP_ATTR_EN_1_15_NYZW							0xe0000000
8024#define    NV50TCL_VP_ATTR_EN_1_15_XYZW							0xf0000000
8025#define   NV50TCL_VP_ATTR_EN_1_14_SHIFT							24
8026#define   NV50TCL_VP_ATTR_EN_1_14_MASK							0x0f000000
8027#define    NV50TCL_VP_ATTR_EN_1_14_NONE							0x00000000
8028#define    NV50TCL_VP_ATTR_EN_1_14_XNNN							0x01000000
8029#define    NV50TCL_VP_ATTR_EN_1_14_NYNN							0x02000000
8030#define    NV50TCL_VP_ATTR_EN_1_14_XYNN							0x03000000
8031#define    NV50TCL_VP_ATTR_EN_1_14_NNZN							0x04000000
8032#define    NV50TCL_VP_ATTR_EN_1_14_XNZN							0x05000000
8033#define    NV50TCL_VP_ATTR_EN_1_14_NYZN							0x06000000
8034#define    NV50TCL_VP_ATTR_EN_1_14_XYZN							0x07000000
8035#define    NV50TCL_VP_ATTR_EN_1_14_NNNW							0x08000000
8036#define    NV50TCL_VP_ATTR_EN_1_14_XNNW							0x09000000
8037#define    NV50TCL_VP_ATTR_EN_1_14_NYNW							0x0a000000
8038#define    NV50TCL_VP_ATTR_EN_1_14_XYNW							0x0b000000
8039#define    NV50TCL_VP_ATTR_EN_1_14_NNZW							0x0c000000
8040#define    NV50TCL_VP_ATTR_EN_1_14_XNZW							0x0d000000
8041#define    NV50TCL_VP_ATTR_EN_1_14_NYZW							0x0e000000
8042#define    NV50TCL_VP_ATTR_EN_1_14_XYZW							0x0f000000
8043#define   NV50TCL_VP_ATTR_EN_1_13_SHIFT							20
8044#define   NV50TCL_VP_ATTR_EN_1_13_MASK							0x00f00000
8045#define    NV50TCL_VP_ATTR_EN_1_13_NONE							0x00000000
8046#define    NV50TCL_VP_ATTR_EN_1_13_XNNN							0x00100000
8047#define    NV50TCL_VP_ATTR_EN_1_13_NYNN							0x00200000
8048#define    NV50TCL_VP_ATTR_EN_1_13_XYNN							0x00300000
8049#define    NV50TCL_VP_ATTR_EN_1_13_NNZN							0x00400000
8050#define    NV50TCL_VP_ATTR_EN_1_13_XNZN							0x00500000
8051#define    NV50TCL_VP_ATTR_EN_1_13_NYZN							0x00600000
8052#define    NV50TCL_VP_ATTR_EN_1_13_XYZN							0x00700000
8053#define    NV50TCL_VP_ATTR_EN_1_13_NNNW							0x00800000
8054#define    NV50TCL_VP_ATTR_EN_1_13_XNNW							0x00900000
8055#define    NV50TCL_VP_ATTR_EN_1_13_NYNW							0x00a00000
8056#define    NV50TCL_VP_ATTR_EN_1_13_XYNW							0x00b00000
8057#define    NV50TCL_VP_ATTR_EN_1_13_NNZW							0x00c00000
8058#define    NV50TCL_VP_ATTR_EN_1_13_XNZW							0x00d00000
8059#define    NV50TCL_VP_ATTR_EN_1_13_NYZW							0x00e00000
8060#define    NV50TCL_VP_ATTR_EN_1_13_XYZW							0x00f00000
8061#define   NV50TCL_VP_ATTR_EN_1_12_SHIFT							16
8062#define   NV50TCL_VP_ATTR_EN_1_12_MASK							0x000f0000
8063#define    NV50TCL_VP_ATTR_EN_1_12_NONE							0x00000000
8064#define    NV50TCL_VP_ATTR_EN_1_12_XNNN							0x00010000
8065#define    NV50TCL_VP_ATTR_EN_1_12_NYNN							0x00020000
8066#define    NV50TCL_VP_ATTR_EN_1_12_XYNN							0x00030000
8067#define    NV50TCL_VP_ATTR_EN_1_12_NNZN							0x00040000
8068#define    NV50TCL_VP_ATTR_EN_1_12_XNZN							0x00050000
8069#define    NV50TCL_VP_ATTR_EN_1_12_NYZN							0x00060000
8070#define    NV50TCL_VP_ATTR_EN_1_12_XYZN							0x00070000
8071#define    NV50TCL_VP_ATTR_EN_1_12_NNNW							0x00080000
8072#define    NV50TCL_VP_ATTR_EN_1_12_XNNW							0x00090000
8073#define    NV50TCL_VP_ATTR_EN_1_12_NYNW							0x000a0000
8074#define    NV50TCL_VP_ATTR_EN_1_12_XYNW							0x000b0000
8075#define    NV50TCL_VP_ATTR_EN_1_12_NNZW							0x000c0000
8076#define    NV50TCL_VP_ATTR_EN_1_12_XNZW							0x000d0000
8077#define    NV50TCL_VP_ATTR_EN_1_12_NYZW							0x000e0000
8078#define    NV50TCL_VP_ATTR_EN_1_12_XYZW							0x000f0000
8079#define   NV50TCL_VP_ATTR_EN_1_11_SHIFT							12
8080#define   NV50TCL_VP_ATTR_EN_1_11_MASK							0x0000f000
8081#define    NV50TCL_VP_ATTR_EN_1_11_NONE							0x00000000
8082#define    NV50TCL_VP_ATTR_EN_1_11_XNNN							0x00001000
8083#define    NV50TCL_VP_ATTR_EN_1_11_NYNN							0x00002000
8084#define    NV50TCL_VP_ATTR_EN_1_11_XYNN							0x00003000
8085#define    NV50TCL_VP_ATTR_EN_1_11_NNZN							0x00004000
8086#define    NV50TCL_VP_ATTR_EN_1_11_XNZN							0x00005000
8087#define    NV50TCL_VP_ATTR_EN_1_11_NYZN							0x00006000
8088#define    NV50TCL_VP_ATTR_EN_1_11_XYZN							0x00007000
8089#define    NV50TCL_VP_ATTR_EN_1_11_NNNW							0x00008000
8090#define    NV50TCL_VP_ATTR_EN_1_11_XNNW							0x00009000
8091#define    NV50TCL_VP_ATTR_EN_1_11_NYNW							0x0000a000
8092#define    NV50TCL_VP_ATTR_EN_1_11_XYNW							0x0000b000
8093#define    NV50TCL_VP_ATTR_EN_1_11_NNZW							0x0000c000
8094#define    NV50TCL_VP_ATTR_EN_1_11_XNZW							0x0000d000
8095#define    NV50TCL_VP_ATTR_EN_1_11_NYZW							0x0000e000
8096#define    NV50TCL_VP_ATTR_EN_1_11_XYZW							0x0000f000
8097#define   NV50TCL_VP_ATTR_EN_1_10_SHIFT							8
8098#define   NV50TCL_VP_ATTR_EN_1_10_MASK							0x00000f00
8099#define    NV50TCL_VP_ATTR_EN_1_10_NONE							0x00000000
8100#define    NV50TCL_VP_ATTR_EN_1_10_XNNN							0x00000100
8101#define    NV50TCL_VP_ATTR_EN_1_10_NYNN							0x00000200
8102#define    NV50TCL_VP_ATTR_EN_1_10_XYNN							0x00000300
8103#define    NV50TCL_VP_ATTR_EN_1_10_NNZN							0x00000400
8104#define    NV50TCL_VP_ATTR_EN_1_10_XNZN							0x00000500
8105#define    NV50TCL_VP_ATTR_EN_1_10_NYZN							0x00000600
8106#define    NV50TCL_VP_ATTR_EN_1_10_XYZN							0x00000700
8107#define    NV50TCL_VP_ATTR_EN_1_10_NNNW							0x00000800
8108#define    NV50TCL_VP_ATTR_EN_1_10_XNNW							0x00000900
8109#define    NV50TCL_VP_ATTR_EN_1_10_NYNW							0x00000a00
8110#define    NV50TCL_VP_ATTR_EN_1_10_XYNW							0x00000b00
8111#define    NV50TCL_VP_ATTR_EN_1_10_NNZW							0x00000c00
8112#define    NV50TCL_VP_ATTR_EN_1_10_XNZW							0x00000d00
8113#define    NV50TCL_VP_ATTR_EN_1_10_NYZW							0x00000e00
8114#define    NV50TCL_VP_ATTR_EN_1_10_XYZW							0x00000f00
8115#define   NV50TCL_VP_ATTR_EN_1_9_SHIFT							4
8116#define   NV50TCL_VP_ATTR_EN_1_9_MASK							0x000000f0
8117#define    NV50TCL_VP_ATTR_EN_1_9_NONE							0x00000000
8118#define    NV50TCL_VP_ATTR_EN_1_9_XNNN							0x00000010
8119#define    NV50TCL_VP_ATTR_EN_1_9_NYNN							0x00000020
8120#define    NV50TCL_VP_ATTR_EN_1_9_XYNN							0x00000030
8121#define    NV50TCL_VP_ATTR_EN_1_9_NNZN							0x00000040
8122#define    NV50TCL_VP_ATTR_EN_1_9_XNZN							0x00000050
8123#define    NV50TCL_VP_ATTR_EN_1_9_NYZN							0x00000060
8124#define    NV50TCL_VP_ATTR_EN_1_9_XYZN							0x00000070
8125#define    NV50TCL_VP_ATTR_EN_1_9_NNNW							0x00000080
8126#define    NV50TCL_VP_ATTR_EN_1_9_XNNW							0x00000090
8127#define    NV50TCL_VP_ATTR_EN_1_9_NYNW							0x000000a0
8128#define    NV50TCL_VP_ATTR_EN_1_9_XYNW							0x000000b0
8129#define    NV50TCL_VP_ATTR_EN_1_9_NNZW							0x000000c0
8130#define    NV50TCL_VP_ATTR_EN_1_9_XNZW							0x000000d0
8131#define    NV50TCL_VP_ATTR_EN_1_9_NYZW							0x000000e0
8132#define    NV50TCL_VP_ATTR_EN_1_9_XYZW							0x000000f0
8133#define   NV50TCL_VP_ATTR_EN_1_8_SHIFT							0
8134#define   NV50TCL_VP_ATTR_EN_1_8_MASK							0x0000000f
8135#define    NV50TCL_VP_ATTR_EN_1_8_NONE							0x00000000
8136#define    NV50TCL_VP_ATTR_EN_1_8_XNNN							0x00000001
8137#define    NV50TCL_VP_ATTR_EN_1_8_NYNN							0x00000002
8138#define    NV50TCL_VP_ATTR_EN_1_8_XYNN							0x00000003
8139#define    NV50TCL_VP_ATTR_EN_1_8_NNZN							0x00000004
8140#define    NV50TCL_VP_ATTR_EN_1_8_XNZN							0x00000005
8141#define    NV50TCL_VP_ATTR_EN_1_8_NYZN							0x00000006
8142#define    NV50TCL_VP_ATTR_EN_1_8_XYZN							0x00000007
8143#define    NV50TCL_VP_ATTR_EN_1_8_NNNW							0x00000008
8144#define    NV50TCL_VP_ATTR_EN_1_8_XNNW							0x00000009
8145#define    NV50TCL_VP_ATTR_EN_1_8_NYNW							0x0000000a
8146#define    NV50TCL_VP_ATTR_EN_1_8_XYNW							0x0000000b
8147#define    NV50TCL_VP_ATTR_EN_1_8_NNZW							0x0000000c
8148#define    NV50TCL_VP_ATTR_EN_1_8_XNZW							0x0000000d
8149#define    NV50TCL_VP_ATTR_EN_1_8_NYZW							0x0000000e
8150#define    NV50TCL_VP_ATTR_EN_1_8_XYZW							0x0000000f
8151#define  NV50TCL_POINT_SPRITE_CTRL							0x00001660
8152#define  NV50TCL_LINE_STIPPLE_ENABLE							0x0000166c
8153#define  NV50TCL_LINE_STIPPLE_PATTERN							0x00001680
8154#define  NV50TCL_VERTEX_TWO_SIDE_ENABLE							0x00001688
8155#define  NV50TCL_POLYGON_STIPPLE_ENABLE							0x0000168c
8156#define  NV50TCL_SET_PROGRAM_CB								0x00001694
8157#define   NV50TCL_SET_PROGRAM_CB_PROGRAM_SHIFT						4
8158#define   NV50TCL_SET_PROGRAM_CB_PROGRAM_MASK						0x000000f0
8159#define    NV50TCL_SET_PROGRAM_CB_PROGRAM_VERTEX					0x00000000
8160#define    NV50TCL_SET_PROGRAM_CB_PROGRAM_GEOMETRY					0x00000020
8161#define    NV50TCL_SET_PROGRAM_CB_PROGRAM_FRAGMENT					0x00000030
8162#define   NV50TCL_SET_PROGRAM_CB_INDEX_SHIFT						8
8163#define   NV50TCL_SET_PROGRAM_CB_INDEX_MASK						0x00000f00
8164#define   NV50TCL_SET_PROGRAM_CB_BUFFER_SHIFT						12
8165#define   NV50TCL_SET_PROGRAM_CB_BUFFER_MASK						0x000ff000
8166#define   NV50TCL_SET_PROGRAM_CB_VALID							(1 <<  0)
8167#define  NV50TCL_VP_RESULT_MAP_SIZE							0x000016ac
8168#define  NV50TCL_VP_REG_ALLOC_TEMP							0x000016b0
8169#define  NV50TCL_VP_REG_ALLOC_RESULT							0x000016b8
8170#define  NV50TCL_VP_RESULT_MAP(x)							(0x000016bc+((x)*4))
8171#define  NV50TCL_VP_RESULT_MAP__SIZE							0x00000008
8172#define   NV50TCL_VP_RESULT_MAP_0_SHIFT							0
8173#define   NV50TCL_VP_RESULT_MAP_0_MASK							0x000000ff
8174#define   NV50TCL_VP_RESULT_MAP_1_SHIFT							8
8175#define   NV50TCL_VP_RESULT_MAP_1_MASK							0x0000ff00
8176#define   NV50TCL_VP_RESULT_MAP_2_SHIFT							16
8177#define   NV50TCL_VP_RESULT_MAP_2_MASK							0x00ff0000
8178#define   NV50TCL_VP_RESULT_MAP_3_SHIFT							24
8179#define   NV50TCL_VP_RESULT_MAP_3_MASK							0xff000000
8180#define  NV50TCL_POLYGON_STIPPLE_PATTERN(x)						(0x00001700+((x)*4))
8181#define  NV50TCL_POLYGON_STIPPLE_PATTERN__SIZE						0x00000020
8182#define  NV50TCL_GP_ENABLE								0x00001798
8183#define  NV50TCL_GP_REG_ALLOC_TEMP							0x000017a0
8184#define  NV50TCL_GP_REG_ALLOC_RESULT							0x000017a8
8185#define  NV50TCL_GP_RESULT_MAP_SIZE							0x000017ac
8186#define  NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE						0x000017b0
8187#define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_POINTS					0x00000001
8188#define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_LINE_STRIP					0x00000002
8189#define   NV50TCL_GP_OUTPUT_PRIMITIVE_TYPE_TRIANGLE_STRIP				0x00000003
8190#define  NV50TCL_RASTERIZE_ENABLE							0x000017b4
8191#define  NV50TCL_GP_RESULT_MAP(x)							(0x000017fc+((x)*4))
8192#define  NV50TCL_GP_RESULT_MAP__SIZE							0x00000008
8193#define   NV50TCL_GP_RESULT_MAP_0_SHIFT							0
8194#define   NV50TCL_GP_RESULT_MAP_0_MASK							0x000000ff
8195#define   NV50TCL_GP_RESULT_MAP_1_SHIFT							8
8196#define   NV50TCL_GP_RESULT_MAP_1_MASK							0x0000ff00
8197#define   NV50TCL_GP_RESULT_MAP_2_SHIFT							16
8198#define   NV50TCL_GP_RESULT_MAP_2_MASK							0x00ff0000
8199#define   NV50TCL_GP_RESULT_MAP_3_SHIFT							24
8200#define   NV50TCL_GP_RESULT_MAP_3_MASK							0xff000000
8201#define  NV50TCL_MAP_SEMANTIC_0								0x00001904
8202#define   NV50TCL_MAP_SEMANTIC_0_FFC0_ID_SHIFT						0
8203#define   NV50TCL_MAP_SEMANTIC_0_FFC0_ID_MASK						0x000000ff
8204#define   NV50TCL_MAP_SEMANTIC_0_BFC0_ID_SHIFT						8
8205#define   NV50TCL_MAP_SEMANTIC_0_BFC0_ID_MASK						0x0000ff00
8206#define   NV50TCL_MAP_SEMANTIC_0_COLR_NR_SHIFT						16
8207#define   NV50TCL_MAP_SEMANTIC_0_COLR_NR_MASK						0x00ff0000
8208#define   NV50TCL_MAP_SEMANTIC_0_CLMP_EN_SHIFT						24
8209#define   NV50TCL_MAP_SEMANTIC_0_CLMP_EN_MASK						0xff000000
8210#define  NV50TCL_MAP_SEMANTIC_1								0x00001908
8211#define   NV50TCL_MAP_SEMANTIC_1_CLIP_LO_SHIFT						0
8212#define   NV50TCL_MAP_SEMANTIC_1_CLIP_LO_MASK						0x000000ff
8213#define   NV50TCL_MAP_SEMANTIC_1_CLIP_HI_SHIFT						8
8214#define   NV50TCL_MAP_SEMANTIC_1_CLIP_HI_MASK						0x0000ff00
8215#define   NV50TCL_MAP_SEMANTIC_1_UNKN_02_SHIFT						16
8216#define   NV50TCL_MAP_SEMANTIC_1_UNKN_02_MASK						0x00ff0000
8217#define   NV50TCL_MAP_SEMANTIC_1_UNKN_03_SHIFT						24
8218#define   NV50TCL_MAP_SEMANTIC_1_UNKN_03_MASK						0xff000000
8219#define  NV50TCL_MAP_SEMANTIC_2								0x0000190c
8220#define   NV50TCL_MAP_SEMANTIC_2_UNKN_00_SHIFT						0
8221#define   NV50TCL_MAP_SEMANTIC_2_UNKN_00_MASK						0x000000ff
8222#define   NV50TCL_MAP_SEMANTIC_2_UNKN_01_SHIFT						8
8223#define   NV50TCL_MAP_SEMANTIC_2_UNKN_01_MASK						0x0000ff00
8224#define   NV50TCL_MAP_SEMANTIC_2_UNKN_02_SHIFT						16
8225#define   NV50TCL_MAP_SEMANTIC_2_UNKN_02_MASK						0x00ff0000
8226#define   NV50TCL_MAP_SEMANTIC_2_UNKN_03_SHIFT						24
8227#define   NV50TCL_MAP_SEMANTIC_2_UNKN_03_MASK						0xff000000
8228#define  NV50TCL_MAP_SEMANTIC_3								0x00001910
8229#define   NV50TCL_MAP_SEMANTIC_3_PTSZ_EN						(1 <<  0)
8230#define   NV50TCL_MAP_SEMANTIC_3_PTSZ_ID_SHIFT						4
8231#define   NV50TCL_MAP_SEMANTIC_3_PTSZ_ID_MASK						0x00000ff0
8232#define  NV50TCL_CULL_FACE_ENABLE							0x00001918
8233#define  NV50TCL_FRONT_FACE								0x0000191c
8234#define   NV50TCL_FRONT_FACE_CW								0x00000900
8235#define   NV50TCL_FRONT_FACE_CCW							0x00000901
8236#define  NV50TCL_CULL_FACE								0x00001920
8237#define   NV50TCL_CULL_FACE_FRONT							0x00000404
8238#define   NV50TCL_CULL_FACE_BACK							0x00000405
8239#define   NV50TCL_CULL_FACE_FRONT_AND_BACK						0x00000408
8240#define  NV50TCL_VIEWPORT_TRANSFORM_EN							0x0000192c
8241#define  NV50TCL_VIEW_VOLUME_CLIP_CTRL							0x0000193c
8242#define  NV50TCL_FP_CTRL_UNK196C							0x0000196c
8243#define  NV50TCL_FP_INTERPOLANT_CTRL							0x00001988
8244#define   NV50TCL_FP_INTERPOLANT_CTRL_UMASK_SHIFT					24
8245#define   NV50TCL_FP_INTERPOLANT_CTRL_UMASK_MASK					0xff000000
8246#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NONE					0x00000000
8247#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNNN					0x01000000
8248#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYNN					0x02000000
8249#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYNN					0x03000000
8250#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNZN					0x04000000
8251#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNZN					0x05000000
8252#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYZN					0x06000000
8253#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYZN					0x07000000
8254#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNNW					0x08000000
8255#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNNW					0x09000000
8256#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYNW					0x0a000000
8257#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYNW					0x0b000000
8258#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NNZW					0x0c000000
8259#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XNZW					0x0d000000
8260#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_NYZW					0x0e000000
8261#define    NV50TCL_FP_INTERPOLANT_CTRL_UMASK_XYZW					0x0f000000
8262#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_SHIFT					16
8263#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_MASK					0x00ff0000
8264#define   NV50TCL_FP_INTERPOLANT_CTRL_OFFSET_SHIFT					8
8265#define   NV50TCL_FP_INTERPOLANT_CTRL_OFFSET_MASK					0x0000ff00
8266#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_UNK_SHIFT					0
8267#define   NV50TCL_FP_INTERPOLANT_CTRL_COUNT_UNK_MASK					0x000000ff
8268#define  NV50TCL_FP_REG_ALLOC_TEMP							0x0000198c
8269#define  NV50TCL_FP_CTRL_UNK19A8							0x000019a8
8270#define   NV50TCL_FP_CTRL_UNK19A8_DEP							(1 << 20)
8271#define   NV50TCL_FP_CTRL_UNK19A8_KIL							(1 <<  8)
8272#define  NV50TCL_DEPTH_BOUNDS_EN							0x000019bc
8273#define  NV50TCL_LOGIC_OP_ENABLE							0x000019c4
8274#define  NV50TCL_LOGIC_OP								0x000019c8
8275#define   NV50TCL_LOGIC_OP_CLEAR							0x00001500
8276#define   NV50TCL_LOGIC_OP_AND								0x00001501
8277#define   NV50TCL_LOGIC_OP_AND_REVERSE							0x00001502
8278#define   NV50TCL_LOGIC_OP_COPY								0x00001503
8279#define   NV50TCL_LOGIC_OP_AND_INVERTED							0x00001504
8280#define   NV50TCL_LOGIC_OP_NOOP								0x00001505
8281#define   NV50TCL_LOGIC_OP_XOR								0x00001506
8282#define   NV50TCL_LOGIC_OP_OR								0x00001507
8283#define   NV50TCL_LOGIC_OP_NOR								0x00001508
8284#define   NV50TCL_LOGIC_OP_EQUIV							0x00001509
8285#define   NV50TCL_LOGIC_OP_INVERT							0x0000150a
8286#define   NV50TCL_LOGIC_OP_OR_REVERSE							0x0000150b
8287#define   NV50TCL_LOGIC_OP_COPY_INVERTED						0x0000150c
8288#define   NV50TCL_LOGIC_OP_OR_INVERTED							0x0000150d
8289#define   NV50TCL_LOGIC_OP_NAND								0x0000150e
8290#define   NV50TCL_LOGIC_OP_SET								0x0000150f
8291#define  NV50TCL_CLEAR_BUFFERS								0x000019d0
8292#define  NV50TCL_COLOR_MASK(x)								(0x00001a00+((x)*4))
8293#define  NV50TCL_COLOR_MASK__SIZE							0x00000008
8294#define   NV50TCL_COLOR_MASK_R_SHIFT							0
8295#define   NV50TCL_COLOR_MASK_R_MASK							0x0000000f
8296#define   NV50TCL_COLOR_MASK_G_SHIFT							4
8297#define   NV50TCL_COLOR_MASK_G_MASK							0x000000f0
8298#define   NV50TCL_COLOR_MASK_B_SHIFT							8
8299#define   NV50TCL_COLOR_MASK_B_MASK							0x00000f00
8300#define   NV50TCL_COLOR_MASK_A_SHIFT							12
8301#define   NV50TCL_COLOR_MASK_A_MASK							0x0000f000
8302#define  NV50TCL_STRMOUT_ADDRESS_HIGH(x)						(0x00001a80+((x)*16))
8303#define  NV50TCL_STRMOUT_ADDRESS_HIGH__SIZE						0x00000004
8304#define  NV50TCL_STRMOUT_ADDRESS_LOW(x)							(0x00001a84+((x)*16))
8305#define  NV50TCL_STRMOUT_ADDRESS_LOW__SIZE						0x00000004
8306#define  NV50TCL_STRMOUT_NUM_ATTRIBS(x)							(0x00001a88+((x)*16))
8307#define  NV50TCL_STRMOUT_NUM_ATTRIBS__SIZE						0x00000004
8308#define  NV50TCL_VERTEX_ARRAY_ATTRIB(x)							(0x00001ac0+((x)*4))
8309#define  NV50TCL_VERTEX_ARRAY_ATTRIB__SIZE						0x00000010
8310#define   NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_SHIFT					0
8311#define   NV50TCL_VERTEX_ARRAY_ATTRIB_BUFFER_MASK					0x000000ff
8312#define   NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_SHIFT					16
8313#define   NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_MASK						0x00ff0000
8314#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32_32_32_32					0x00080000
8315#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32_32_32					0x00100000
8316#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32_32					0x00200000
8317#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_32						0x00900000
8318#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16_16_16_16					0x00180000
8319#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16_16_16					0x00280000
8320#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16_16					0x00780000
8321#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_16						0x00d80000
8322#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8_8_8_8					0x00500000
8323#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8_8_8					0x00980000
8324#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8_8						0x00c00000
8325#define    NV50TCL_VERTEX_ARRAY_ATTRIB_SIZE_8						0x00e80000
8326#define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SHIFT					24
8327#define   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_MASK						0xff000000
8328#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT					0x7e000000
8329#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UNORM					0x24000000
8330#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SNORM					0x12000000
8331#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_USCALED					0x5a000000
8332#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED					0x6c000000
8333#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UINT					0x48000000
8334#define    NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SINT					0x36000000
8335#define  NV50TCL_QUERY_ADDRESS_HIGH							0x00001b00
8336#define  NV50TCL_QUERY_ADDRESS_LOW							0x00001b04
8337#define  NV50TCL_QUERY_COUNTER								0x00001b08
8338#define  NV50TCL_QUERY_GET								0x00001b0c
8339
8340
8341#define NV50_COMPUTE									0x000050c0
8342
8343#define  NV50_COMPUTE_DMA_UNK0								0x000001a0
8344#define  NV50_COMPUTE_DMA_STATUS							0x000001a4
8345#define  NV50_COMPUTE_DMA_UNK1								0x000001b8
8346#define  NV50_COMPUTE_DMA_UNK2								0x000001bc
8347#define  NV50_COMPUTE_DMA_UNK3								0x000001c0
8348#define  NV50_COMPUTE_UNK4_HIGH								0x00000210
8349#define  NV50_COMPUTE_UNK4_LOW								0x00000214
8350#define  NV50_COMPUTE_UNK5_HIGH								0x00000218
8351#define  NV50_COMPUTE_UNK5_LOW								0x0000021c
8352#define  NV50_COMPUTE_UNK6_HIGH								0x00000294
8353#define  NV50_COMPUTE_UNK6_LOW								0x00000298
8354#define  NV50_COMPUTE_CONST_BASE_HIGH							0x000002a4
8355#define  NV50_COMPUTE_CONST_BASE_LO							0x000002a8
8356#define  NV50_COMPUTE_CONST_SIZE_SEG							0x000002ac
8357#define  NV50_COMPUTE_REG_COUNT								0x000002c0
8358#define  NV50_COMPUTE_STATUS_HIGH							0x00000310
8359#define  NV50_COMPUTE_STATUS_LOW							0x00000314
8360#define  NV50_COMPUTE_EXECUTE								0x0000031c
8361#define  NV50_COMPUTE_USER_PARAM_COUNT							0x00000374
8362#define  NV50_COMPUTE_GRIDDIM_YX							0x000003a4
8363#define  NV50_COMPUTE_SHARED_SIZE							0x000003a8
8364#define  NV50_COMPUTE_BLOCKDIM_YX							0x000003ac
8365#define  NV50_COMPUTE_BLOCKDIM_Z							0x000003b0
8366#define  NV50_COMPUTE_CALL_ADDRESS							0x000003b4
8367#define  NV50_COMPUTE_GLOBAL_BASE_HIGH(x)						(0x00000400+((x)*32))
8368#define  NV50_COMPUTE_GLOBAL_BASE_HIGH__SIZE						0x00000010
8369#define  NV50_COMPUTE_GLOBAL_BASE_LOW(x)						(0x00000404+((x)*32))
8370#define  NV50_COMPUTE_GLOBAL_BASE_LOW__SIZE						0x00000010
8371#define  NV50_COMPUTE_GLOBAL_LIMIT_HIGH(x)						(0x00000408+((x)*32))
8372#define  NV50_COMPUTE_GLOBAL_LIMIT_HIGH__SIZE						0x00000010
8373#define  NV50_COMPUTE_GLOBAL_LIMIT_LOW(x)						(0x0000040c+((x)*32))
8374#define  NV50_COMPUTE_GLOBAL_LIMIT_LOW__SIZE						0x00000010
8375#define  NV50_COMPUTE_GLOBAL_UNK(x)							(0x00000410+((x)*32))
8376#define  NV50_COMPUTE_GLOBAL_UNK__SIZE							0x00000010
8377#define  NV50_COMPUTE_USER_PARAM(x)							(0x00000600+((x)*4))
8378#define  NV50_COMPUTE_USER_PARAM__SIZE							0x00000040
8379
8380
8381#define NV54TCL										0x00008297
8382
8383
8384
8385#define NVA0TCL										0x00008397
8386
8387
8388
8389#endif /* NOUVEAU_REG_H */
8390