1bf215546Sopenharmony_ci#ifndef NV50_3D_XML
2bf215546Sopenharmony_ci#define NV50_3D_XML
3bf215546Sopenharmony_ci
4bf215546Sopenharmony_ci/* Autogenerated file, DO NOT EDIT manually!
5bf215546Sopenharmony_ci
6bf215546Sopenharmony_ciThis file was generated by the rules-ng-ng headergen tool in this git repository:
7bf215546Sopenharmony_cihttp://github.com/envytools/envytools/
8bf215546Sopenharmony_cigit clone https://github.com/envytools/envytools.git
9bf215546Sopenharmony_ci
10bf215546Sopenharmony_ciThe rules-ng-ng source files this header was generated from are:
11bf215546Sopenharmony_ci- rnndb/graph/g80_3d.xml    (  65900 bytes, from 2014-09-25 06:32:11)
12bf215546Sopenharmony_ci- rnndb/copyright.xml       (   6452 bytes, from 2013-05-14 03:57:49)
13bf215546Sopenharmony_ci- rnndb/nv_defs.xml         (   4399 bytes, from 2013-09-07 03:32:45)
14bf215546Sopenharmony_ci- rnndb/g80_defs.xml        (  18175 bytes, from 2014-09-25 06:32:11)
15bf215546Sopenharmony_ci- rnndb/nvchipsets.xml      (   2759 bytes, from 2014-10-05 01:51:02)
16bf215546Sopenharmony_ci- rnndb/graph/nv_3ddefs.xml (  16390 bytes, from 2014-09-25 06:32:11)
17bf215546Sopenharmony_ci- rnndb/fifo/nv_object.xml  (  15326 bytes, from 2014-09-25 06:32:11)
18bf215546Sopenharmony_ci
19bf215546Sopenharmony_ciCopyright (C) 2006-2014 by the following authors:
20bf215546Sopenharmony_ci- Artur Huillet <arthur.huillet@free.fr> (ahuillet)
21bf215546Sopenharmony_ci- Ben Skeggs (darktama, darktama_)
22bf215546Sopenharmony_ci- B. R. <koala_br@users.sourceforge.net> (koala_br)
23bf215546Sopenharmony_ci- Carlos Martin <carlosmn@users.sf.net> (carlosmn)
24bf215546Sopenharmony_ci- Christoph Bumiller <e0425955@student.tuwien.ac.at> (calim, chrisbmr)
25bf215546Sopenharmony_ci- Dawid Gajownik <gajownik@users.sf.net> (gajownik)
26bf215546Sopenharmony_ci- Dmitry Baryshkov
27bf215546Sopenharmony_ci- Dmitry Eremin-Solenikov <lumag@users.sf.net> (lumag)
28bf215546Sopenharmony_ci- EdB <edb_@users.sf.net> (edb_)
29bf215546Sopenharmony_ci- Erik Waling <erikwailing@users.sf.net> (erikwaling)
30bf215546Sopenharmony_ci- Francisco Jerez <currojerez@riseup.net> (curro)
31bf215546Sopenharmony_ci- imirkin <imirkin@users.sf.net> (imirkin)
32bf215546Sopenharmony_ci- jb17bsome <jb17bsome@bellsouth.net> (jb17bsome)
33bf215546Sopenharmony_ci- Jeremy Kolb <kjeremy@users.sf.net> (kjeremy)
34bf215546Sopenharmony_ci- Laurent Carlier <lordheavym@gmail.com> (lordheavy)
35bf215546Sopenharmony_ci- Luca Barbieri <luca@luca-barbieri.com> (lb, lb1)
36bf215546Sopenharmony_ci- Maarten Maathuis <madman2003@gmail.com> (stillunknown)
37bf215546Sopenharmony_ci- Marcin Kościelnicki <koriakin@0x04.net> (mwk, koriakin)
38bf215546Sopenharmony_ci- Mark Carey <mark.carey@gmail.com> (careym)
39bf215546Sopenharmony_ci- Matthieu Castet <matthieu.castet@parrot.com> (mat-c)
40bf215546Sopenharmony_ci- nvidiaman <nvidiaman@users.sf.net> (nvidiaman)
41bf215546Sopenharmony_ci- Patrice Mandin <patmandin@gmail.com> (pmandin, pmdata)
42bf215546Sopenharmony_ci- Pekka Paalanen <pq@iki.fi> (pq, ppaalanen)
43bf215546Sopenharmony_ci- Peter Popov <ironpeter@users.sf.net> (ironpeter)
44bf215546Sopenharmony_ci- Richard Hughes <hughsient@users.sf.net> (hughsient)
45bf215546Sopenharmony_ci- Rudi Cilibrasi <cilibrar@users.sf.net> (cilibrar)
46bf215546Sopenharmony_ci- Serge Martin
47bf215546Sopenharmony_ci- Simon Raffeiner
48bf215546Sopenharmony_ci- Stephane Loeuillet <leroutier@users.sf.net> (leroutier)
49bf215546Sopenharmony_ci- Stephane Marchesin <stephane.marchesin@gmail.com> (marcheu)
50bf215546Sopenharmony_ci- sturmflut <sturmflut@users.sf.net> (sturmflut)
51bf215546Sopenharmony_ci- Sylvain Munaut <tnt@246tNt.com>
52bf215546Sopenharmony_ci- Victor Stinner <victor.stinner@haypocalc.com> (haypo)
53bf215546Sopenharmony_ci- Wladmir van der Laan <laanwj@gmail.com> (miathan6)
54bf215546Sopenharmony_ci- Younes Manton <younes.m@gmail.com> (ymanton)
55bf215546Sopenharmony_ci
56bf215546Sopenharmony_ciPermission is hereby granted, free of charge, to any person obtaining
57bf215546Sopenharmony_cia copy of this software and associated documentation files (the
58bf215546Sopenharmony_ci"Software"), to deal in the Software without restriction, including
59bf215546Sopenharmony_ciwithout limitation the rights to use, copy, modify, merge, publish,
60bf215546Sopenharmony_cidistribute, sublicense, and/or sell copies of the Software, and to
61bf215546Sopenharmony_cipermit persons to whom the Software is furnished to do so, subject to
62bf215546Sopenharmony_cithe following conditions:
63bf215546Sopenharmony_ci
64bf215546Sopenharmony_ciThe above copyright notice and this permission notice (including the
65bf215546Sopenharmony_cinext paragraph) shall be included in all copies or substantial
66bf215546Sopenharmony_ciportions of the Software.
67bf215546Sopenharmony_ci
68bf215546Sopenharmony_ciTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
69bf215546Sopenharmony_ciEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
70bf215546Sopenharmony_ciMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
71bf215546Sopenharmony_ciIN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
72bf215546Sopenharmony_ciLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
73bf215546Sopenharmony_ciOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
74bf215546Sopenharmony_ciWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
75bf215546Sopenharmony_ci*/
76bf215546Sopenharmony_ci
77bf215546Sopenharmony_ci
78bf215546Sopenharmony_ci
79bf215546Sopenharmony_ci#define NV50_3D_DMA_NOTIFY					0x00000180
80bf215546Sopenharmony_ci
81bf215546Sopenharmony_ci#define NV50_3D_DMA_ZETA						0x00000184
82bf215546Sopenharmony_ci
83bf215546Sopenharmony_ci#define NV50_3D_DMA_QUERY					0x00000188
84bf215546Sopenharmony_ci
85bf215546Sopenharmony_ci#define NV50_3D_DMA_VTXBUF					0x0000018c
86bf215546Sopenharmony_ci
87bf215546Sopenharmony_ci#define NV50_3D_DMA_LOCAL					0x00000190
88bf215546Sopenharmony_ci
89bf215546Sopenharmony_ci#define NV50_3D_DMA_STACK					0x00000194
90bf215546Sopenharmony_ci
91bf215546Sopenharmony_ci#define NV50_3D_DMA_CODE_CB					0x00000198
92bf215546Sopenharmony_ci
93bf215546Sopenharmony_ci#define NV50_3D_DMA_TSC						0x0000019c
94bf215546Sopenharmony_ci
95bf215546Sopenharmony_ci#define NV50_3D_DMA_TIC						0x000001a0
96bf215546Sopenharmony_ci
97bf215546Sopenharmony_ci#define NV50_3D_DMA_TEXTURE					0x000001a4
98bf215546Sopenharmony_ci
99bf215546Sopenharmony_ci#define NV50_3D_DMA_STRMOUT					0x000001a8
100bf215546Sopenharmony_ci
101bf215546Sopenharmony_ci#define NV50_3D_DMA_CLIPID					0x000001ac
102bf215546Sopenharmony_ci
103bf215546Sopenharmony_ci#define NV50_3D_DMA_COLOR(i0)				       (0x000001c0 + 0x4*(i0))
104bf215546Sopenharmony_ci#define NV50_3D_DMA_COLOR__ESIZE					0x00000004
105bf215546Sopenharmony_ci#define NV50_3D_DMA_COLOR__LEN					0x00000008
106bf215546Sopenharmony_ci
107bf215546Sopenharmony_ci#define NV50_3D_RT(i0)					       (0x00000200 + 0x20*(i0))
108bf215546Sopenharmony_ci#define NV50_3D_RT__ESIZE					0x00000020
109bf215546Sopenharmony_ci#define NV50_3D_RT__LEN						0x00000008
110bf215546Sopenharmony_ci
111bf215546Sopenharmony_ci#define NV50_3D_RT_ADDRESS_HIGH(i0)			       (0x00000200 + 0x20*(i0))
112bf215546Sopenharmony_ci
113bf215546Sopenharmony_ci#define NV50_3D_RT_ADDRESS_LOW(i0)			       (0x00000204 + 0x20*(i0))
114bf215546Sopenharmony_ci
115bf215546Sopenharmony_ci#define NV50_3D_RT_FORMAT(i0)				       (0x00000208 + 0x20*(i0))
116bf215546Sopenharmony_ci
117bf215546Sopenharmony_ci#define NV50_3D_RT_TILE_MODE(i0)				       (0x0000020c + 0x20*(i0))
118bf215546Sopenharmony_ci#define NV50_3D_RT_TILE_MODE_X__MASK				0x0000000f
119bf215546Sopenharmony_ci#define NV50_3D_RT_TILE_MODE_X__SHIFT				0
120bf215546Sopenharmony_ci#define NV50_3D_RT_TILE_MODE_Y__MASK				0x000000f0
121bf215546Sopenharmony_ci#define NV50_3D_RT_TILE_MODE_Y__SHIFT				4
122bf215546Sopenharmony_ci#define NV50_3D_RT_TILE_MODE_Z__MASK				0x00000f00
123bf215546Sopenharmony_ci#define NV50_3D_RT_TILE_MODE_Z__SHIFT				8
124bf215546Sopenharmony_ci
125bf215546Sopenharmony_ci#define NV50_3D_RT_LAYER_STRIDE(i0)			       (0x00000210 + 0x20*(i0))
126bf215546Sopenharmony_ci#define NV50_3D_RT_LAYER_STRIDE__SHR				2
127bf215546Sopenharmony_ci
128bf215546Sopenharmony_ci#define NV50_3D_RT_UNK14(i0)				       (0x00000214 + 0x20*(i0))
129bf215546Sopenharmony_ci
130bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_1F(i0)				       (0x00000300 + 0x4*(i0))
131bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_1F__ESIZE				0x00000004
132bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_1F__LEN					0x00000010
133bf215546Sopenharmony_ci
134bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2H(i0)				       (0x00000340 + 0x4*(i0))
135bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2H__ESIZE				0x00000004
136bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2H__LEN					0x00000010
137bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2H_X__MASK				0x0000ffff
138bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2H_X__SHIFT				0
139bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2H_Y__MASK				0xffff0000
140bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2H_Y__SHIFT				16
141bf215546Sopenharmony_ci
142bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2F_X(i0)			       (0x00000380 + 0x8*(i0))
143bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2F_X__ESIZE				0x00000008
144bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2F_X__LEN				0x00000010
145bf215546Sopenharmony_ci
146bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2F_Y(i0)			       (0x00000384 + 0x8*(i0))
147bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2F_Y__ESIZE				0x00000008
148bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2F_Y__LEN				0x00000010
149bf215546Sopenharmony_ci
150bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_3F_X(i0)			       (0x00000400 + 0x10*(i0))
151bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_3F_X__ESIZE				0x00000010
152bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_3F_X__LEN				0x00000010
153bf215546Sopenharmony_ci
154bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_3F_Y(i0)			       (0x00000404 + 0x10*(i0))
155bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_3F_Y__ESIZE				0x00000010
156bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_3F_Y__LEN				0x00000010
157bf215546Sopenharmony_ci
158bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_3F_Z(i0)			       (0x00000408 + 0x10*(i0))
159bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_3F_Z__ESIZE				0x00000010
160bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_3F_Z__LEN				0x00000010
161bf215546Sopenharmony_ci
162bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_X(i0)			       (0x00000500 + 0x10*(i0))
163bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_X__ESIZE				0x00000010
164bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_X__LEN				0x00000010
165bf215546Sopenharmony_ci
166bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_Y(i0)			       (0x00000504 + 0x10*(i0))
167bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_Y__ESIZE				0x00000010
168bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_Y__LEN				0x00000010
169bf215546Sopenharmony_ci
170bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_Z(i0)			       (0x00000508 + 0x10*(i0))
171bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_Z__ESIZE				0x00000010
172bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_Z__LEN				0x00000010
173bf215546Sopenharmony_ci
174bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_W(i0)			       (0x0000050c + 0x10*(i0))
175bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_W__ESIZE				0x00000010
176bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4F_W__LEN				0x00000010
177bf215546Sopenharmony_ci
178bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_0(i0)			       (0x00000600 + 0x8*(i0))
179bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_0__ESIZE				0x00000008
180bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_0__LEN				0x00000010
181bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_0_X__MASK				0x0000ffff
182bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_0_X__SHIFT				0
183bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_0_Y__MASK				0xffff0000
184bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_0_Y__SHIFT				16
185bf215546Sopenharmony_ci
186bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_1(i0)			       (0x00000604 + 0x8*(i0))
187bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_1__ESIZE				0x00000008
188bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_1__LEN				0x00000010
189bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_1_Z__MASK				0x0000ffff
190bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_1_Z__SHIFT				0
191bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_1_W__MASK				0xffff0000
192bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4H_1_W__SHIFT				16
193bf215546Sopenharmony_ci
194bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2I(i0)				       (0x00000680 + 0x4*(i0))
195bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2I__ESIZE				0x00000004
196bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2I__LEN					0x00000010
197bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2I_X__MASK				0x0000ffff
198bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2I_X__SHIFT				0
199bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2I_Y__MASK				0xffff0000
200bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2I_Y__SHIFT				16
201bf215546Sopenharmony_ci
202bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2NI(i0)				       (0x000006c0 + 0x4*(i0))
203bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2NI__ESIZE				0x00000004
204bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2NI__LEN				0x00000010
205bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2NI_X__MASK				0x0000ffff
206bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2NI_X__SHIFT				0
207bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2NI_Y__MASK				0xffff0000
208bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_2NI_Y__SHIFT				16
209bf215546Sopenharmony_ci
210bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_0(i0)			       (0x00000700 + 0x8*(i0))
211bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_0__ESIZE				0x00000008
212bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_0__LEN				0x00000010
213bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_0_X__MASK				0x0000ffff
214bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_0_X__SHIFT				0
215bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_0_Y__MASK				0xffff0000
216bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_0_Y__SHIFT				16
217bf215546Sopenharmony_ci
218bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_1(i0)			       (0x00000704 + 0x8*(i0))
219bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_1__ESIZE				0x00000008
220bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_1__LEN				0x00000010
221bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_1_Z__MASK				0x0000ffff
222bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_1_Z__SHIFT				0
223bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_1_W__MASK				0xffff0000
224bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4I_1_W__SHIFT				16
225bf215546Sopenharmony_ci
226bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_0(i0)			       (0x00000780 + 0x8*(i0))
227bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_0__ESIZE				0x00000008
228bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_0__LEN				0x00000010
229bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_0_X__MASK				0x0000ffff
230bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_0_X__SHIFT				0
231bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_0_Y__MASK				0xffff0000
232bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_0_Y__SHIFT				16
233bf215546Sopenharmony_ci
234bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_1(i0)			       (0x00000784 + 0x8*(i0))
235bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_1__ESIZE				0x00000008
236bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_1__LEN				0x00000010
237bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_1_Z__MASK				0x0000ffff
238bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_1_Z__SHIFT				0
239bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_1_W__MASK				0xffff0000
240bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NI_1_W__SHIFT				16
241bf215546Sopenharmony_ci
242bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB(i0)				       (0x00000800 + 0x4*(i0))
243bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB__ESIZE				0x00000004
244bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB__LEN				0x00000010
245bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB_X__MASK				0x000000ff
246bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB_X__SHIFT				0
247bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB_Y__MASK				0x0000ff00
248bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB_Y__SHIFT				8
249bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB_Z__MASK				0x00ff0000
250bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB_Z__SHIFT				16
251bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB_W__MASK				0xff000000
252bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4UB_W__SHIFT				24
253bf215546Sopenharmony_ci
254bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B(i0)				       (0x00000840 + 0x4*(i0))
255bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B__ESIZE				0x00000004
256bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B__LEN					0x00000010
257bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B_X__MASK				0x000000ff
258bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B_X__SHIFT				0
259bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B_Y__MASK				0x0000ff00
260bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B_Y__SHIFT				8
261bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B_Z__MASK				0x00ff0000
262bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B_Z__SHIFT				16
263bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B_W__MASK				0xff000000
264bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4B_W__SHIFT				24
265bf215546Sopenharmony_ci
266bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB(i0)			       (0x00000880 + 0x4*(i0))
267bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB__ESIZE				0x00000004
268bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB__LEN				0x00000010
269bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB_X__MASK				0x000000ff
270bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB_X__SHIFT				0
271bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB_Y__MASK				0x0000ff00
272bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB_Y__SHIFT				8
273bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB_Z__MASK				0x00ff0000
274bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB_Z__SHIFT				16
275bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB_W__MASK				0xff000000
276bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NUB_W__SHIFT				24
277bf215546Sopenharmony_ci
278bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB(i0)				       (0x000008c0 + 0x4*(i0))
279bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB__ESIZE				0x00000004
280bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB__LEN				0x00000010
281bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB_X__MASK				0x000000ff
282bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB_X__SHIFT				0
283bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB_Y__MASK				0x0000ff00
284bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB_Y__SHIFT				8
285bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB_Z__MASK				0x00ff0000
286bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB_Z__SHIFT				16
287bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB_W__MASK				0xff000000
288bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_4NB_W__SHIFT				24
289bf215546Sopenharmony_ci
290bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_FETCH(i0)			       (0x00000900 + 0x10*(i0))
291bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_FETCH__ESIZE			0x00000010
292bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_FETCH__LEN				0x00000010
293bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_FETCH_STRIDE__MASK			0x00000fff
294bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_FETCH_STRIDE__SHIFT			0
295bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_FETCH_ENABLE			0x20000000
296bf215546Sopenharmony_ci
297bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_START_HIGH(i0)		       (0x00000904 + 0x10*(i0))
298bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_START_HIGH__ESIZE			0x00000010
299bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_START_HIGH__LEN			0x00000010
300bf215546Sopenharmony_ci
301bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_START_LOW(i0)		       (0x00000908 + 0x10*(i0))
302bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_START_LOW__ESIZE			0x00000010
303bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_START_LOW__LEN			0x00000010
304bf215546Sopenharmony_ci
305bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_DIVISOR(i0)			       (0x0000090c + 0x10*(i0))
306bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_DIVISOR__ESIZE			0x00000010
307bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_DIVISOR__LEN			0x00000010
308bf215546Sopenharmony_ci
309bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_SCALE_X(i0)			       (0x00000a00 + 0x20*(i0))
310bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_SCALE_X__ESIZE				0x00000020
311bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_SCALE_X__LEN				0x00000010
312bf215546Sopenharmony_ci
313bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_SCALE_Y(i0)			       (0x00000a04 + 0x20*(i0))
314bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_SCALE_Y__ESIZE				0x00000020
315bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_SCALE_Y__LEN				0x00000010
316bf215546Sopenharmony_ci
317bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_SCALE_Z(i0)			       (0x00000a08 + 0x20*(i0))
318bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_SCALE_Z__ESIZE				0x00000020
319bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_SCALE_Z__LEN				0x00000010
320bf215546Sopenharmony_ci
321bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_TRANSLATE_X(i0)			       (0x00000a0c + 0x20*(i0))
322bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_TRANSLATE_X__ESIZE			0x00000020
323bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_TRANSLATE_X__LEN			0x00000010
324bf215546Sopenharmony_ci
325bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_TRANSLATE_Y(i0)			       (0x00000a10 + 0x20*(i0))
326bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_TRANSLATE_Y__ESIZE			0x00000020
327bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_TRANSLATE_Y__LEN			0x00000010
328bf215546Sopenharmony_ci
329bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_TRANSLATE_Z(i0)			       (0x00000a14 + 0x20*(i0))
330bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_TRANSLATE_Z__ESIZE			0x00000020
331bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_TRANSLATE_Z__LEN			0x00000010
332bf215546Sopenharmony_ci
333bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_HORIZ(i0)			       (0x00000c00 + 0x10*(i0))
334bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_HORIZ__ESIZE				0x00000010
335bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_HORIZ__LEN				0x00000010
336bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_HORIZ_X__MASK				0x0000ffff
337bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_HORIZ_X__SHIFT				0
338bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_HORIZ_W__MASK				0xffff0000
339bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_HORIZ_W__SHIFT				16
340bf215546Sopenharmony_ci
341bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_VERT(i0)			       (0x00000c04 + 0x10*(i0))
342bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_VERT__ESIZE				0x00000010
343bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_VERT__LEN				0x00000010
344bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_VERT_Y__MASK				0x0000ffff
345bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_VERT_Y__SHIFT				0
346bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_VERT_H__MASK				0xffff0000
347bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_VERT_H__SHIFT				16
348bf215546Sopenharmony_ci
349bf215546Sopenharmony_ci#define NV50_3D_DEPTH_RANGE_NEAR(i0)			       (0x00000c08 + 0x10*(i0))
350bf215546Sopenharmony_ci#define NV50_3D_DEPTH_RANGE_NEAR__ESIZE				0x00000010
351bf215546Sopenharmony_ci#define NV50_3D_DEPTH_RANGE_NEAR__LEN				0x00000010
352bf215546Sopenharmony_ci
353bf215546Sopenharmony_ci#define NV50_3D_DEPTH_RANGE_FAR(i0)			       (0x00000c0c + 0x10*(i0))
354bf215546Sopenharmony_ci#define NV50_3D_DEPTH_RANGE_FAR__ESIZE				0x00000010
355bf215546Sopenharmony_ci#define NV50_3D_DEPTH_RANGE_FAR__LEN				0x00000010
356bf215546Sopenharmony_ci
357bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_HORIZ(i0)			       (0x00000d00 + 0x8*(i0))
358bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_HORIZ__ESIZE				0x00000008
359bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_HORIZ__LEN				0x00000008
360bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_HORIZ_MIN__MASK			0x0000ffff
361bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_HORIZ_MIN__SHIFT			0
362bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_HORIZ_MAX__MASK			0xffff0000
363bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_HORIZ_MAX__SHIFT			16
364bf215546Sopenharmony_ci
365bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_VERT(i0)			       (0x00000d04 + 0x8*(i0))
366bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_VERT__ESIZE				0x00000008
367bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_VERT__LEN				0x00000008
368bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_VERT_MIN__MASK				0x0000ffff
369bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_VERT_MIN__SHIFT			0
370bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_VERT_MAX__MASK				0xffff0000
371bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECT_VERT_MAX__SHIFT			16
372bf215546Sopenharmony_ci
373bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_HORIZ(i0)			       (0x00000d40 + 0x8*(i0))
374bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_HORIZ__ESIZE			0x00000008
375bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_HORIZ__LEN				0x00000004
376bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_HORIZ_X__MASK			0x0000ffff
377bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_HORIZ_X__SHIFT			0
378bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_HORIZ_W__MASK			0xffff0000
379bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_HORIZ_W__SHIFT			16
380bf215546Sopenharmony_ci
381bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_VERT(i0)			       (0x00000d44 + 0x8*(i0))
382bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_VERT__ESIZE			0x00000008
383bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_VERT__LEN				0x00000004
384bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_VERT_Y__MASK			0x0000ffff
385bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_VERT_Y__SHIFT			0
386bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_VERT_H__MASK			0xffff0000
387bf215546Sopenharmony_ci#define NV50_3D_CLIPID_REGION_VERT_H__SHIFT			16
388bf215546Sopenharmony_ci
389bf215546Sopenharmony_ci#define NV50_3D_UNK0D60						0x00000d60
390bf215546Sopenharmony_ci
391bf215546Sopenharmony_ci#define NV50_3D_UNK0D64						0x00000d64
392bf215546Sopenharmony_ci
393bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE					0x00000d68
394bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE_VFETCH_VERTICES			0x00000001
395bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE_VFETCH_PRIMITIVES			0x00000002
396bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE_VP_LAUNCHES			0x00000004
397bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE_GP_LAUNCHES			0x00000008
398bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE_GP_PRIMITIVES_OUT			0x00000010
399bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE_TRANSFORM_FEEDBACK		0x00000020
400bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE_GENERATED_PRIMITIVES		0x00000040
401bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE_RAST_PRIMITIVES_PRECLIP		0x00000080
402bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE_RAST_PRIMITIVES_POSTCLIP		0x00000100
403bf215546Sopenharmony_ci#define NV50_3D_COUNTER_ENABLE_FP_PIXELS				0x00000200
404bf215546Sopenharmony_ci#define NV84_3D_COUNTER_ENABLE_UNK0A				0x00000400
405bf215546Sopenharmony_ci
406bf215546Sopenharmony_ci#define NV50_3D_UNK0D6C(i0)				       (0x00000d6c + 0x4*(i0))
407bf215546Sopenharmony_ci#define NV50_3D_UNK0D6C__ESIZE					0x00000004
408bf215546Sopenharmony_ci#define NV50_3D_UNK0D6C__LEN					0x00000002
409bf215546Sopenharmony_ci#define NV50_3D_UNK0D6C_X__MASK					0x0000ffff
410bf215546Sopenharmony_ci#define NV50_3D_UNK0D6C_X__SHIFT					0
411bf215546Sopenharmony_ci#define NV50_3D_UNK0D6C_Y__MASK					0xffff0000
412bf215546Sopenharmony_ci#define NV50_3D_UNK0D6C_Y__SHIFT					16
413bf215546Sopenharmony_ci
414bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BUFFER_FIRST				0x00000d74
415bf215546Sopenharmony_ci
416bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BUFFER_COUNT				0x00000d78
417bf215546Sopenharmony_ci
418bf215546Sopenharmony_ci#define NV50_3D_DEPTH_CLIP_NEGATIVE_Z				0x00000d7c
419bf215546Sopenharmony_ci
420bf215546Sopenharmony_ci#define NV50_3D_CLEAR_COLOR(i0)				       (0x00000d80 + 0x4*(i0))
421bf215546Sopenharmony_ci#define NV50_3D_CLEAR_COLOR__ESIZE				0x00000004
422bf215546Sopenharmony_ci#define NV50_3D_CLEAR_COLOR__LEN					0x00000004
423bf215546Sopenharmony_ci
424bf215546Sopenharmony_ci#define NV50_3D_CLEAR_DEPTH					0x00000d90
425bf215546Sopenharmony_ci
426bf215546Sopenharmony_ci#define NV50_3D_STACK_ADDRESS_HIGH				0x00000d94
427bf215546Sopenharmony_ci
428bf215546Sopenharmony_ci#define NV50_3D_STACK_ADDRESS_LOW				0x00000d98
429bf215546Sopenharmony_ci
430bf215546Sopenharmony_ci#define NV50_3D_STACK_SIZE_LOG					0x00000d9c
431bf215546Sopenharmony_ci
432bf215546Sopenharmony_ci#define NV50_3D_CLEAR_STENCIL					0x00000da0
433bf215546Sopenharmony_ci
434bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_PARAMS_LATCH				0x00000da4
435bf215546Sopenharmony_ci
436bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_PRIMITIVE_LIMIT				0x00000da8
437bf215546Sopenharmony_ci
438bf215546Sopenharmony_ci#define NV50_3D_POLYGON_MODE_FRONT				0x00000dac
439bf215546Sopenharmony_ci#define NV50_3D_POLYGON_MODE_FRONT_POINT				0x00001b00
440bf215546Sopenharmony_ci#define NV50_3D_POLYGON_MODE_FRONT_LINE				0x00001b01
441bf215546Sopenharmony_ci#define NV50_3D_POLYGON_MODE_FRONT_FILL				0x00001b02
442bf215546Sopenharmony_ci
443bf215546Sopenharmony_ci#define NV50_3D_POLYGON_MODE_BACK				0x00000db0
444bf215546Sopenharmony_ci#define NV50_3D_POLYGON_MODE_BACK_POINT				0x00001b00
445bf215546Sopenharmony_ci#define NV50_3D_POLYGON_MODE_BACK_LINE				0x00001b01
446bf215546Sopenharmony_ci#define NV50_3D_POLYGON_MODE_BACK_FILL				0x00001b02
447bf215546Sopenharmony_ci
448bf215546Sopenharmony_ci#define NV50_3D_POLYGON_SMOOTH_ENABLE				0x00000db4
449bf215546Sopenharmony_ci
450bf215546Sopenharmony_ci#define NV50_3D_UNK0DB8						0x00000db8
451bf215546Sopenharmony_ci
452bf215546Sopenharmony_ci#define NV50_3D_ZCULL_UNK0DBC					0x00000dbc
453bf215546Sopenharmony_ci#define NV50_3D_ZCULL_UNK0DBC_UNK0				0x00000001
454bf215546Sopenharmony_ci#define NV50_3D_ZCULL_UNK0DBC_UNK16__MASK			0x00030000
455bf215546Sopenharmony_ci#define NV50_3D_ZCULL_UNK0DBC_UNK16__SHIFT			16
456bf215546Sopenharmony_ci
457bf215546Sopenharmony_ci#define NV50_3D_POLYGON_OFFSET_POINT_ENABLE			0x00000dc0
458bf215546Sopenharmony_ci
459bf215546Sopenharmony_ci#define NV50_3D_POLYGON_OFFSET_LINE_ENABLE			0x00000dc4
460bf215546Sopenharmony_ci
461bf215546Sopenharmony_ci#define NV50_3D_POLYGON_OFFSET_FILL_ENABLE			0x00000dc8
462bf215546Sopenharmony_ci
463bf215546Sopenharmony_ci#define NV50_3D_UNK0DCC						0x00000dcc
464bf215546Sopenharmony_ci
465bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_MASK_UNK0DD0(i0)		       (0x00000dd0 + 0x4*(i0))
466bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_MASK_UNK0DD0__ESIZE			0x00000004
467bf215546Sopenharmony_ci#define NV50_3D_VTX_ATTR_MASK_UNK0DD0__LEN			0x00000002
468bf215546Sopenharmony_ci
469bf215546Sopenharmony_ci#define NV50_3D_ZCULL_UNK0DD8					0x00000dd8
470bf215546Sopenharmony_ci#define NV50_3D_ZCULL_UNK0DD8_UNK0__MASK				0x00000007
471bf215546Sopenharmony_ci#define NV50_3D_ZCULL_UNK0DD8_UNK0__SHIFT			0
472bf215546Sopenharmony_ci#define NVA3_3D_ZCULL_UNK0DD8_UNK9				0x00000200
473bf215546Sopenharmony_ci#define NV50_3D_ZCULL_UNK0DD8_UNK16__MASK			0xffff0000
474bf215546Sopenharmony_ci#define NV50_3D_ZCULL_UNK0DD8_UNK16__SHIFT			16
475bf215546Sopenharmony_ci
476bf215546Sopenharmony_ci#define NV50_3D_UNK0DDC						0x00000ddc
477bf215546Sopenharmony_ci
478bf215546Sopenharmony_ci#define NV50_3D_UNK0DE0						0x00000de0
479bf215546Sopenharmony_ci
480bf215546Sopenharmony_ci#define NV50_3D_WATCHDOG_TIMER					0x00000de4
481bf215546Sopenharmony_ci
482bf215546Sopenharmony_ci#define NV50_3D_PRIM_RESTART_WITH_DRAW_ARRAYS			0x00000de8
483bf215546Sopenharmony_ci
484bf215546Sopenharmony_ci#define NV50_3D_UNK0DEC						0x00000dec
485bf215546Sopenharmony_ci
486bf215546Sopenharmony_ci#define NV50_3D_UNK0DF0						0x00000df0
487bf215546Sopenharmony_ci#define NV50_3D_UNK0DF0_UNK0					0x00000001
488bf215546Sopenharmony_ci#define NV50_3D_UNK0DF0_UNK1__MASK				0x00000ff0
489bf215546Sopenharmony_ci#define NV50_3D_UNK0DF0_UNK1__SHIFT				4
490bf215546Sopenharmony_ci
491bf215546Sopenharmony_ci#define NV50_3D_UNK0DF4						0x00000df4
492bf215546Sopenharmony_ci
493bf215546Sopenharmony_ci#define NV50_3D_WINDOW_OFFSET_X					0x00000df8
494bf215546Sopenharmony_ci
495bf215546Sopenharmony_ci#define NV50_3D_WINDOW_OFFSET_Y					0x00000dfc
496bf215546Sopenharmony_ci
497bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_ENABLE(i0)			       (0x00000e00 + 0x10*(i0))
498bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_ENABLE__ESIZE				0x00000010
499bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_ENABLE__LEN				0x00000010
500bf215546Sopenharmony_ci
501bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_HORIZ(i0)			       (0x00000e04 + 0x10*(i0))
502bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_HORIZ__ESIZE				0x00000010
503bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_HORIZ__LEN				0x00000010
504bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_HORIZ_MIN__MASK				0x0000ffff
505bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_HORIZ_MIN__SHIFT				0
506bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_HORIZ_MAX__MASK				0xffff0000
507bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_HORIZ_MAX__SHIFT				16
508bf215546Sopenharmony_ci
509bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_VERT(i0)				       (0x00000e08 + 0x10*(i0))
510bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_VERT__ESIZE				0x00000010
511bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_VERT__LEN				0x00000010
512bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_VERT_MIN__MASK				0x0000ffff
513bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_VERT_MIN__SHIFT				0
514bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_VERT_MAX__MASK				0xffff0000
515bf215546Sopenharmony_ci#define NV50_3D_SCISSOR_VERT_MAX__SHIFT				16
516bf215546Sopenharmony_ci
517bf215546Sopenharmony_ci#define NV50_3D_CB_ADDR						0x00000f00
518bf215546Sopenharmony_ci#define NV50_3D_CB_ADDR_ID__MASK					0x003fff00
519bf215546Sopenharmony_ci#define NV50_3D_CB_ADDR_ID__SHIFT				8
520bf215546Sopenharmony_ci#define NV50_3D_CB_ADDR_BUFFER__MASK				0x0000007f
521bf215546Sopenharmony_ci#define NV50_3D_CB_ADDR_BUFFER__SHIFT				0
522bf215546Sopenharmony_ci
523bf215546Sopenharmony_ci#define NV50_3D_CB_DATA(i0)				       (0x00000f04 + 0x4*(i0))
524bf215546Sopenharmony_ci#define NV50_3D_CB_DATA__ESIZE					0x00000004
525bf215546Sopenharmony_ci#define NV50_3D_CB_DATA__LEN					0x00000010
526bf215546Sopenharmony_ci
527bf215546Sopenharmony_ci#define NV50_3D_LOCAL_WARPS_LOG_ALLOC				0x00000f44
528bf215546Sopenharmony_ci
529bf215546Sopenharmony_ci#define NV50_3D_LOCAL_WARPS_NO_CLAMP				0x00000f48
530bf215546Sopenharmony_ci
531bf215546Sopenharmony_ci#define NV50_3D_STACK_WARPS_LOG_ALLOC				0x00000f4c
532bf215546Sopenharmony_ci
533bf215546Sopenharmony_ci#define NV50_3D_STACK_WARPS_NO_CLAMP				0x00000f50
534bf215546Sopenharmony_ci
535bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_REF				0x00000f54
536bf215546Sopenharmony_ci
537bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_MASK				0x00000f58
538bf215546Sopenharmony_ci
539bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_MASK				0x00000f5c
540bf215546Sopenharmony_ci
541bf215546Sopenharmony_ci#define NV50_3D_UNK0F60(i0)				       (0x00000f60 + 0x4*(i0))
542bf215546Sopenharmony_ci#define NV50_3D_UNK0F60__ESIZE					0x00000004
543bf215546Sopenharmony_ci#define NV50_3D_UNK0F60__LEN					0x00000004
544bf215546Sopenharmony_ci
545bf215546Sopenharmony_ci#define NV50_3D_GP_ADDRESS_HIGH					0x00000f70
546bf215546Sopenharmony_ci
547bf215546Sopenharmony_ci#define NV50_3D_GP_ADDRESS_LOW					0x00000f74
548bf215546Sopenharmony_ci
549bf215546Sopenharmony_ci#define NV50_3D_UNK0F78						0x00000f78
550bf215546Sopenharmony_ci
551bf215546Sopenharmony_ci#define NV50_3D_VP_ADDRESS_HIGH					0x00000f7c
552bf215546Sopenharmony_ci
553bf215546Sopenharmony_ci#define NV50_3D_VP_ADDRESS_LOW					0x00000f80
554bf215546Sopenharmony_ci
555bf215546Sopenharmony_ci#define NV50_3D_VERTEX_RUNOUT_ADDRESS_HIGH			0x00000f84
556bf215546Sopenharmony_ci
557bf215546Sopenharmony_ci#define NV50_3D_VERTEX_RUNOUT_ADDRESS_LOW			0x00000f88
558bf215546Sopenharmony_ci
559bf215546Sopenharmony_ci#define NV50_3D_UNK0F8C						0x00000f8c
560bf215546Sopenharmony_ci
561bf215546Sopenharmony_ci#define NV50_3D_COLOR_MASK_COMMON				0x00000f90
562bf215546Sopenharmony_ci
563bf215546Sopenharmony_ci#define NV50_3D_UNK0F94						0x00000f94
564bf215546Sopenharmony_ci
565bf215546Sopenharmony_ci#define NV50_3D_UNK0F98						0x00000f98
566bf215546Sopenharmony_ci
567bf215546Sopenharmony_ci#define NV50_3D_DEPTH_BOUNDS(i0)				       (0x00000f9c + 0x4*(i0))
568bf215546Sopenharmony_ci#define NV50_3D_DEPTH_BOUNDS__ESIZE				0x00000004
569bf215546Sopenharmony_ci#define NV50_3D_DEPTH_BOUNDS__LEN				0x00000002
570bf215546Sopenharmony_ci
571bf215546Sopenharmony_ci#define NV50_3D_FP_ADDRESS_HIGH					0x00000fa4
572bf215546Sopenharmony_ci
573bf215546Sopenharmony_ci#define NV50_3D_FP_ADDRESS_LOW					0x00000fa8
574bf215546Sopenharmony_ci
575bf215546Sopenharmony_ci#define NV50_3D_UNK0FAC						0x00000fac
576bf215546Sopenharmony_ci#define NV50_3D_UNK0FAC_UNK0					0x00000001
577bf215546Sopenharmony_ci#define NVA0_3D_UNK0FAC_UNK2					0x00000002
578bf215546Sopenharmony_ci#define NV50_3D_UNK0FAC_UNK1__MASK				0x000ffff0
579bf215546Sopenharmony_ci#define NV50_3D_UNK0FAC_UNK1__SHIFT				4
580bf215546Sopenharmony_ci
581bf215546Sopenharmony_ci#define NV50_3D_UNK0FB0						0x00000fb0
582bf215546Sopenharmony_ci
583bf215546Sopenharmony_ci#define NV50_3D_UNK0FB4						0x00000fb4
584bf215546Sopenharmony_ci
585bf215546Sopenharmony_ci#define NV50_3D_UNK0FB8						0x00000fb8
586bf215546Sopenharmony_ci
587bf215546Sopenharmony_ci#define NV50_3D_MSAA_MASK(i0)				       (0x00000fbc + 0x4*(i0))
588bf215546Sopenharmony_ci#define NV50_3D_MSAA_MASK__ESIZE					0x00000004
589bf215546Sopenharmony_ci#define NV50_3D_MSAA_MASK__LEN					0x00000004
590bf215546Sopenharmony_ci
591bf215546Sopenharmony_ci#define NV50_3D_CLIPID_ADDRESS_HIGH				0x00000fcc
592bf215546Sopenharmony_ci
593bf215546Sopenharmony_ci#define NV50_3D_CLIPID_ADDRESS_LOW				0x00000fd0
594bf215546Sopenharmony_ci
595bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_VIEWPORT				0x00000fd4
596bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_VIEWPORT_VIEWPORT_ID__MASK		0x000000ff
597bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_VIEWPORT_VIEWPORT_ID__SHIFT		0
598bf215546Sopenharmony_ci
599bf215546Sopenharmony_ci#define NV50_3D_UNK0FD8						0x00000fd8
600bf215546Sopenharmony_ci#define NV50_3D_UNK0FD8_UNK0					0x00000001
601bf215546Sopenharmony_ci#define NV50_3D_UNK0FD8_UNK1					0x00000010
602bf215546Sopenharmony_ci
603bf215546Sopenharmony_ci#define NV50_3D_UNK0FDC						0x00000fdc
604bf215546Sopenharmony_ci
605bf215546Sopenharmony_ci#define NV50_3D_ZETA_ADDRESS_HIGH				0x00000fe0
606bf215546Sopenharmony_ci
607bf215546Sopenharmony_ci#define NV50_3D_ZETA_ADDRESS_LOW					0x00000fe4
608bf215546Sopenharmony_ci
609bf215546Sopenharmony_ci#define NV50_3D_ZETA_FORMAT					0x00000fe8
610bf215546Sopenharmony_ci
611bf215546Sopenharmony_ci#define NV50_3D_ZETA_TILE_MODE					0x00000fec
612bf215546Sopenharmony_ci
613bf215546Sopenharmony_ci#define NV50_3D_ZETA_LAYER_STRIDE				0x00000ff0
614bf215546Sopenharmony_ci#define NV50_3D_ZETA_LAYER_STRIDE__SHR				2
615bf215546Sopenharmony_ci
616bf215546Sopenharmony_ci#define NV50_3D_SCREEN_SCISSOR_HORIZ				0x00000ff4
617bf215546Sopenharmony_ci#define NV50_3D_SCREEN_SCISSOR_HORIZ_W__MASK			0xffff0000
618bf215546Sopenharmony_ci#define NV50_3D_SCREEN_SCISSOR_HORIZ_W__SHIFT			16
619bf215546Sopenharmony_ci#define NV50_3D_SCREEN_SCISSOR_HORIZ_X__MASK			0x0000ffff
620bf215546Sopenharmony_ci#define NV50_3D_SCREEN_SCISSOR_HORIZ_X__SHIFT			0
621bf215546Sopenharmony_ci
622bf215546Sopenharmony_ci#define NV50_3D_SCREEN_SCISSOR_VERT				0x00000ff8
623bf215546Sopenharmony_ci#define NV50_3D_SCREEN_SCISSOR_VERT_H__MASK			0xffff0000
624bf215546Sopenharmony_ci#define NV50_3D_SCREEN_SCISSOR_VERT_H__SHIFT			16
625bf215546Sopenharmony_ci#define NV50_3D_SCREEN_SCISSOR_VERT_Y__MASK			0x0000ffff
626bf215546Sopenharmony_ci#define NV50_3D_SCREEN_SCISSOR_VERT_Y__SHIFT			0
627bf215546Sopenharmony_ci
628bf215546Sopenharmony_ci#define NV50_3D_UNK0FFC						0x00000ffc
629bf215546Sopenharmony_ci
630bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_PER_INSTANCE(i0)		       (0x00001000 + 0x4*(i0))
631bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_PER_INSTANCE__ESIZE			0x00000004
632bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_PER_INSTANCE__LEN			0x00000010
633bf215546Sopenharmony_ci
634bf215546Sopenharmony_ci#define NV50_3D_UNK1040(i0)				       (0x00001040 + 0x4*(i0))
635bf215546Sopenharmony_ci#define NV50_3D_UNK1040__ESIZE					0x00000004
636bf215546Sopenharmony_ci#define NV50_3D_UNK1040__LEN					0x00000010
637bf215546Sopenharmony_ci
638bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_LIMIT_HIGH(i0)		       (0x00001080 + 0x8*(i0))
639bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_LIMIT_HIGH__ESIZE			0x00000008
640bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_LIMIT_HIGH__LEN			0x00000010
641bf215546Sopenharmony_ci
642bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_LIMIT_LOW(i0)		       (0x00001084 + 0x8*(i0))
643bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_LIMIT_LOW__ESIZE			0x00000008
644bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_LIMIT_LOW__LEN			0x00000010
645bf215546Sopenharmony_ci
646bf215546Sopenharmony_ci#define NV50_3D_UNK1100						0x00001100
647bf215546Sopenharmony_ci
648bf215546Sopenharmony_ci#define NV84_3D_UNK1104						0x00001104
649bf215546Sopenharmony_ci#define NV84_3D_UNK1104_0__MASK					0x0000ffff
650bf215546Sopenharmony_ci#define NV84_3D_UNK1104_0__SHIFT					0
651bf215546Sopenharmony_ci#define NV84_3D_UNK1104_0__MAX					0x00002000
652bf215546Sopenharmony_ci#define NV84_3D_UNK1104_0__ALIGN					0x00000040
653bf215546Sopenharmony_ci#define NV84_3D_UNK1104_1__MASK					0xffff0000
654bf215546Sopenharmony_ci#define NV84_3D_UNK1104_1__SHIFT					16
655bf215546Sopenharmony_ci#define NV84_3D_UNK1104_1__MAX					0x00002000
656bf215546Sopenharmony_ci#define NV84_3D_UNK1104_1__ALIGN					0x00000040
657bf215546Sopenharmony_ci
658bf215546Sopenharmony_ci#define NV84_3D_UNK1108						0x00001108
659bf215546Sopenharmony_ci#define NV84_3D_UNK1108_0					0x00000001
660bf215546Sopenharmony_ci#define NV84_3D_UNK1108_1					0x00000010
661bf215546Sopenharmony_ci
662bf215546Sopenharmony_ci#define NV84_3D_UNK110C						0x0000110c
663bf215546Sopenharmony_ci
664bf215546Sopenharmony_ci#define NV84_3D_UNK1110						0x00001110
665bf215546Sopenharmony_ci
666bf215546Sopenharmony_ci#define NV84_3D_WRCACHE_FLUSH					0x00001114
667bf215546Sopenharmony_ci
668bf215546Sopenharmony_ci#define NV84_3D_VERTEX_ID_BASE					0x00001118
669bf215546Sopenharmony_ci
670bf215546Sopenharmony_ci#define NV84_3D_PRIMITIVE_ID					0x0000111c
671bf215546Sopenharmony_ci
672bf215546Sopenharmony_ci#define NVA3_3D_VTX_ATTR_MASK_UNK0DD0_ALT(i0)		       (0x00001120 + 0x4*(i0))
673bf215546Sopenharmony_ci#define NVA3_3D_VTX_ATTR_MASK_UNK0DD0_ALT__ESIZE		0x00000004
674bf215546Sopenharmony_ci#define NVA3_3D_VTX_ATTR_MASK_UNK0DD0_ALT__LEN			0x00000004
675bf215546Sopenharmony_ci
676bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT(i0)			       (0x00001130 + 0x4*(i0))
677bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT__ESIZE				0x00000004
678bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT__LEN				0x00000004
679bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_7__MASK				0xf0000000
680bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_7__SHIFT			28
681bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_7_X				0x10000000
682bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_7_Y				0x20000000
683bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_7_Z				0x40000000
684bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_7_W				0x80000000
685bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_6__MASK				0x0f000000
686bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_6__SHIFT			24
687bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_6_X				0x01000000
688bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_6_Y				0x02000000
689bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_6_Z				0x04000000
690bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_6_W				0x08000000
691bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_5__MASK				0x00f00000
692bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_5__SHIFT			20
693bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_5_X				0x00100000
694bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_5_Y				0x00200000
695bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_5_Z				0x00400000
696bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_5_W				0x00800000
697bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_4__MASK				0x000f0000
698bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_4__SHIFT			16
699bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_4_X				0x00010000
700bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_4_Y				0x00020000
701bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_4_Z				0x00040000
702bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_4_W				0x00080000
703bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_3__MASK				0x0000f000
704bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_3__SHIFT			12
705bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_3_X				0x00001000
706bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_3_Y				0x00002000
707bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_3_Z				0x00004000
708bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_3_W				0x00008000
709bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_2__MASK				0x00000f00
710bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_2__SHIFT			8
711bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_2_X				0x00000100
712bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_2_Y				0x00000200
713bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_2_Z				0x00000400
714bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_2_W				0x00000800
715bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_1__MASK				0x000000f0
716bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_1__SHIFT			4
717bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_1_X				0x00000010
718bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_1_Y				0x00000020
719bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_1_Z				0x00000040
720bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_1_W				0x00000080
721bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_0__MASK				0x0000000f
722bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_0__SHIFT			0
723bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_0_X				0x00000001
724bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_0_Y				0x00000002
725bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_0_Z				0x00000004
726bf215546Sopenharmony_ci#define NVA3_3D_VP_ATTR_EN_ALT_0_W				0x00000008
727bf215546Sopenharmony_ci
728bf215546Sopenharmony_ci#define NVA3_3D_UNK1140					0x00001140
729bf215546Sopenharmony_ci
730bf215546Sopenharmony_ci#define NVA0_3D_UNK1144						0x00001144
731bf215546Sopenharmony_ci
732bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE					0x0000114c
733bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_ATTR__MASK			0x000000ff
734bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_ATTR__SHIFT			0
735bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_COMP__MASK			0x00000700
736bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_COMP__SHIFT			8
737bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_COMP__MIN			0x00000001
738bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_COMP__MAX			0x00000004
739bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_SIZE__MASK			0x00007000
740bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_SIZE__SHIFT			12
741bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_SIZE_8				0x00001000
742bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_SIZE_16				0x00002000
743bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_SIZE_32				0x00004000
744bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_TYPE__MASK			0x00070000
745bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_TYPE__SHIFT			16
746bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_TYPE_SNORM			0x00010000
747bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_TYPE_UNORM			0x00020000
748bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_TYPE_SINT			0x00030000
749bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_TYPE_UINT			0x00040000
750bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_TYPE_USCALED			0x00050000
751bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_TYPE_SSCALED			0x00060000
752bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DEFINE_TYPE_FLOAT			0x00070000
753bf215546Sopenharmony_ci
754bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DATA(i0)			       (0x00001150 + 0x4*(i0))
755bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DATA__ESIZE				0x00000004
756bf215546Sopenharmony_ci#define NVA0_3D_VTX_ATTR_DATA__LEN				0x00000004
757bf215546Sopenharmony_ci
758bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT(i0)		       (0x00001160 + 0x4*(i0))
759bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT__ESIZE			0x00000004
760bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT__LEN			0x00000020
761bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_BUFFER__MASK		0x0000001f
762bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_BUFFER__SHIFT		0
763bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_CONST			0x00000040
764bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_OFFSET__MASK		0x001fff80
765bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_OFFSET__SHIFT		7
766bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT__MASK		0x07e00000
767bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT__SHIFT		21
768bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_32_32_32_32	0x00200000
769bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_32_32_32	0x00400000
770bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_16_16_16_16	0x00600000
771bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_32_32		0x00800000
772bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_16_16_16	0x00a00000
773bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_8_8_8_8		0x01400000
774bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_16_16		0x01e00000
775bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_32		0x02400000
776bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_8_8_8		0x02600000
777bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_8_8		0x03000000
778bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_16		0x03600000
779bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_8		0x03a00000
780bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_10_10_10_2	0x06000000
781bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_FORMAT_11_11_10	0x06200000
782bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_TYPE__MASK		0x38000000
783bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_TYPE__SHIFT		27
784bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_TYPE_SNORM		0x08000000
785bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_TYPE_UNORM		0x10000000
786bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_TYPE_SINT		0x18000000
787bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_TYPE_UINT		0x20000000
788bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_TYPE_USCALED		0x28000000
789bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_TYPE_SSCALED		0x30000000
790bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_TYPE_FLOAT		0x38000000
791bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_ATTRIB_ALT_BGRA			0x80000000
792bf215546Sopenharmony_ci
793bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL					0x0000121c
794bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_COUNT__MASK				0x0000000f
795bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_COUNT__SHIFT				0
796bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP0__MASK				0x00000070
797bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP0__SHIFT				4
798bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP1__MASK				0x00000380
799bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP1__SHIFT				7
800bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP2__MASK				0x00001c00
801bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP2__SHIFT				10
802bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP3__MASK				0x0000e000
803bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP3__SHIFT				13
804bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP4__MASK				0x00070000
805bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP4__SHIFT				16
806bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP5__MASK				0x00380000
807bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP5__SHIFT				19
808bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP6__MASK				0x01c00000
809bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP6__SHIFT				22
810bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP7__MASK				0x0e000000
811bf215546Sopenharmony_ci#define NV50_3D_RT_CONTROL_MAP7__SHIFT				25
812bf215546Sopenharmony_ci
813bf215546Sopenharmony_ci#define NV50_3D_UNK1220						0x00001220
814bf215546Sopenharmony_ci
815bf215546Sopenharmony_ci#define NV50_3D_RT_ARRAY_MODE					0x00001224
816bf215546Sopenharmony_ci#define NV50_3D_RT_ARRAY_MODE_LAYERS__MASK			0x0000ffff
817bf215546Sopenharmony_ci#define NV50_3D_RT_ARRAY_MODE_LAYERS__SHIFT			0
818bf215546Sopenharmony_ci#define NV50_3D_RT_ARRAY_MODE_MODE__MASK				0x00010000
819bf215546Sopenharmony_ci#define NV50_3D_RT_ARRAY_MODE_MODE__SHIFT			16
820bf215546Sopenharmony_ci#define NV50_3D_RT_ARRAY_MODE_MODE_2D_ARRAY			0x00000000
821bf215546Sopenharmony_ci#define NV50_3D_RT_ARRAY_MODE_MODE_3D				0x00010000
822bf215546Sopenharmony_ci
823bf215546Sopenharmony_ci#define NV50_3D_ZETA_HORIZ					0x00001228
824bf215546Sopenharmony_ci
825bf215546Sopenharmony_ci#define NV50_3D_ZETA_VERT					0x0000122c
826bf215546Sopenharmony_ci
827bf215546Sopenharmony_ci#define NV50_3D_ZETA_ARRAY_MODE					0x00001230
828bf215546Sopenharmony_ci#define NV50_3D_ZETA_ARRAY_MODE_LAYERS__MASK			0x0000ffff
829bf215546Sopenharmony_ci#define NV50_3D_ZETA_ARRAY_MODE_LAYERS__SHIFT			0
830bf215546Sopenharmony_ci#define NV50_3D_ZETA_ARRAY_MODE_UNK				0x00010000
831bf215546Sopenharmony_ci
832bf215546Sopenharmony_ci#define NV50_3D_LINKED_TSC					0x00001234
833bf215546Sopenharmony_ci
834bf215546Sopenharmony_ci#define NV50_3D_UNK1238						0x00001238
835bf215546Sopenharmony_ci
836bf215546Sopenharmony_ci#define NVA0_3D_DRAW_TFB_BYTES					0x0000123c
837bf215546Sopenharmony_ci
838bf215546Sopenharmony_ci#define NV50_3D_RT_HORIZ(i0)				       (0x00001240 + 0x8*(i0))
839bf215546Sopenharmony_ci#define NV50_3D_RT_HORIZ__ESIZE					0x00000008
840bf215546Sopenharmony_ci#define NV50_3D_RT_HORIZ__LEN					0x00000008
841bf215546Sopenharmony_ci#define NV50_3D_RT_HORIZ_WIDTH__MASK				0x0fffffff
842bf215546Sopenharmony_ci#define NV50_3D_RT_HORIZ_WIDTH__SHIFT				0
843bf215546Sopenharmony_ci#define NV50_3D_RT_HORIZ_LINEAR					0x80000000
844bf215546Sopenharmony_ci
845bf215546Sopenharmony_ci#define NV50_3D_RT_VERT(i0)				       (0x00001244 + 0x8*(i0))
846bf215546Sopenharmony_ci#define NV50_3D_RT_VERT__ESIZE					0x00000008
847bf215546Sopenharmony_ci#define NV50_3D_RT_VERT__LEN					0x00000008
848bf215546Sopenharmony_ci
849bf215546Sopenharmony_ci#define NV50_3D_CB_DEF_ADDRESS_HIGH				0x00001280
850bf215546Sopenharmony_ci
851bf215546Sopenharmony_ci#define NV50_3D_CB_DEF_ADDRESS_LOW				0x00001284
852bf215546Sopenharmony_ci
853bf215546Sopenharmony_ci#define NV50_3D_CB_DEF_SET					0x00001288
854bf215546Sopenharmony_ci#define NV50_3D_CB_DEF_SET_SIZE__MASK				0x0000ffff
855bf215546Sopenharmony_ci#define NV50_3D_CB_DEF_SET_SIZE__SHIFT				0
856bf215546Sopenharmony_ci#define NV50_3D_CB_DEF_SET_BUFFER__MASK				0x007f0000
857bf215546Sopenharmony_ci#define NV50_3D_CB_DEF_SET_BUFFER__SHIFT				16
858bf215546Sopenharmony_ci
859bf215546Sopenharmony_ci#define NV50_3D_UNK128C						0x0000128c
860bf215546Sopenharmony_ci#define NV50_3D_UNK128C_0__MASK					0x00000003
861bf215546Sopenharmony_ci#define NV50_3D_UNK128C_0__SHIFT					0
862bf215546Sopenharmony_ci#define NV50_3D_UNK128C_1__MASK					0x00000030
863bf215546Sopenharmony_ci#define NV50_3D_UNK128C_1__SHIFT					4
864bf215546Sopenharmony_ci#define NV50_3D_UNK128C_2__MASK					0x00000300
865bf215546Sopenharmony_ci#define NV50_3D_UNK128C_2__SHIFT					8
866bf215546Sopenharmony_ci#define NV50_3D_UNK128C_3__MASK					0x00003000
867bf215546Sopenharmony_ci#define NV50_3D_UNK128C_3__SHIFT					12
868bf215546Sopenharmony_ci
869bf215546Sopenharmony_ci#define NV50_3D_CALL_LIMIT_LOG					0x00001290
870bf215546Sopenharmony_ci#define NV50_3D_CALL_LIMIT_LOG_VP__MASK				0x0000000f
871bf215546Sopenharmony_ci#define NV50_3D_CALL_LIMIT_LOG_VP__SHIFT				0
872bf215546Sopenharmony_ci#define NV50_3D_CALL_LIMIT_LOG_GP__MASK				0x000000f0
873bf215546Sopenharmony_ci#define NV50_3D_CALL_LIMIT_LOG_GP__SHIFT				4
874bf215546Sopenharmony_ci#define NV50_3D_CALL_LIMIT_LOG_FP__MASK				0x00000f00
875bf215546Sopenharmony_ci#define NV50_3D_CALL_LIMIT_LOG_FP__SHIFT				8
876bf215546Sopenharmony_ci
877bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_BUFFERS_CTRL				0x00001294
878bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_BUFFERS_CTRL_INTERLEAVED			0x00000001
879bf215546Sopenharmony_ci#define NVA0_3D_STRMOUT_BUFFERS_CTRL_LIMIT_MODE__MASK		0x00000002
880bf215546Sopenharmony_ci#define NVA0_3D_STRMOUT_BUFFERS_CTRL_LIMIT_MODE__SHIFT		1
881bf215546Sopenharmony_ci#define NVA0_3D_STRMOUT_BUFFERS_CTRL_LIMIT_MODE_PRIMITIVES	0x00000000
882bf215546Sopenharmony_ci#define NVA0_3D_STRMOUT_BUFFERS_CTRL_LIMIT_MODE_OFFSET		0x00000002
883bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_BUFFERS_CTRL_SEPARATE__MASK		0x000000f0
884bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_BUFFERS_CTRL_SEPARATE__SHIFT		4
885bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_BUFFERS_CTRL_STRIDE__MASK		0x000fff00
886bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_BUFFERS_CTRL_STRIDE__SHIFT		8
887bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_BUFFERS_CTRL_STRIDE__MAX			0x00000800
888bf215546Sopenharmony_ci
889bf215546Sopenharmony_ci#define NV50_3D_FP_RESULT_COUNT					0x00001298
890bf215546Sopenharmony_ci
891bf215546Sopenharmony_ci#define NV50_3D_VTX_UNK129C					0x0000129c
892bf215546Sopenharmony_ci
893bf215546Sopenharmony_ci#define NV50_3D_UNK12A0						0x000012a0
894bf215546Sopenharmony_ci
895bf215546Sopenharmony_ci#define NV50_3D_UNK12A8						0x000012a8
896bf215546Sopenharmony_ci#define NV50_3D_UNK12A8_UNK0					0x00000001
897bf215546Sopenharmony_ci#define NV50_3D_UNK12A8_UNK4__MASK				0x00000ff0
898bf215546Sopenharmony_ci#define NV50_3D_UNK12A8_UNK4__SHIFT				4
899bf215546Sopenharmony_ci#define NV50_3D_UNK12A8_UNK12__MASK				0x000ff000
900bf215546Sopenharmony_ci#define NV50_3D_UNK12A8_UNK12__SHIFT				12
901bf215546Sopenharmony_ci
902bf215546Sopenharmony_ci#define NV50_3D_UNK12AC						0x000012ac
903bf215546Sopenharmony_ci
904bf215546Sopenharmony_ci#define NV50_3D_UNK12B0						0x000012b0
905bf215546Sopenharmony_ci#define NV50_3D_UNK12B0_UNK0__MASK				0x000000ff
906bf215546Sopenharmony_ci#define NV50_3D_UNK12B0_UNK0__SHIFT				0
907bf215546Sopenharmony_ci#define NV50_3D_UNK12B0_UNK1__MASK				0x0000ff00
908bf215546Sopenharmony_ci#define NV50_3D_UNK12B0_UNK1__SHIFT				8
909bf215546Sopenharmony_ci#define NV50_3D_UNK12B0_UNK2__MASK				0x00ff0000
910bf215546Sopenharmony_ci#define NV50_3D_UNK12B0_UNK2__SHIFT				16
911bf215546Sopenharmony_ci#define NV50_3D_UNK12B0_UNK3__MASK				0xff000000
912bf215546Sopenharmony_ci#define NV50_3D_UNK12B0_UNK3__SHIFT				24
913bf215546Sopenharmony_ci#define NV50_3D_UNK12B0_UNK3__MAX				0x00000080
914bf215546Sopenharmony_ci
915bf215546Sopenharmony_ci#define NV50_3D_UNK12B4						0x000012b4
916bf215546Sopenharmony_ci
917bf215546Sopenharmony_ci#define NV50_3D_UNK12B8						0x000012b8
918bf215546Sopenharmony_ci
919bf215546Sopenharmony_ci#define NV50_3D_DEPTH_TEST_ENABLE				0x000012cc
920bf215546Sopenharmony_ci
921bf215546Sopenharmony_ci#define NV50_3D_D3D_FILL_MODE					0x000012d0
922bf215546Sopenharmony_ci#define NV50_3D_D3D_FILL_MODE_POINT				0x00000001
923bf215546Sopenharmony_ci#define NV50_3D_D3D_FILL_MODE_WIREFRAME				0x00000002
924bf215546Sopenharmony_ci#define NV50_3D_D3D_FILL_MODE_SOLID				0x00000003
925bf215546Sopenharmony_ci
926bf215546Sopenharmony_ci#define NV50_3D_SHADE_MODEL					0x000012d4
927bf215546Sopenharmony_ci#define NV50_3D_SHADE_MODEL_FLAT					0x00001d00
928bf215546Sopenharmony_ci#define NV50_3D_SHADE_MODEL_SMOOTH				0x00001d01
929bf215546Sopenharmony_ci
930bf215546Sopenharmony_ci#define NV50_3D_LOCAL_ADDRESS_HIGH				0x000012d8
931bf215546Sopenharmony_ci
932bf215546Sopenharmony_ci#define NV50_3D_LOCAL_ADDRESS_LOW				0x000012dc
933bf215546Sopenharmony_ci
934bf215546Sopenharmony_ci#define NV50_3D_LOCAL_SIZE_LOG					0x000012e0
935bf215546Sopenharmony_ci
936bf215546Sopenharmony_ci#define NV50_3D_BLEND_INDEPENDENT				0x000012e4
937bf215546Sopenharmony_ci
938bf215546Sopenharmony_ci#define NV50_3D_DEPTH_WRITE_ENABLE				0x000012e8
939bf215546Sopenharmony_ci
940bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_ENABLE				0x000012ec
941bf215546Sopenharmony_ci
942bf215546Sopenharmony_ci#define NV50_3D_MP_PM_SET(i0)				       (0x000012f0 + 0x4*(i0))
943bf215546Sopenharmony_ci#define NV50_3D_MP_PM_SET__ESIZE					0x00000004
944bf215546Sopenharmony_ci#define NV50_3D_MP_PM_SET__LEN					0x00000004
945bf215546Sopenharmony_ci
946bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_SETUP				0x00001300
947bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_SETUP_OFFSET__MASK			0xc0000000
948bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_SETUP_OFFSET__SHIFT		30
949bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_SETUP_COUNT__MASK			0x3fffffff
950bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_SETUP_COUNT__SHIFT			0
951bf215546Sopenharmony_ci
952bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8					0x00001304
953bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_I0__MASK				0x000000ff
954bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_I0__SHIFT				0
955bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_I1__MASK				0x0000ff00
956bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_I1__SHIFT				8
957bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_I2__MASK				0x00ff0000
958bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_I2__SHIFT				16
959bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_I3__MASK				0xff000000
960bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U8_I3__SHIFT				24
961bf215546Sopenharmony_ci
962bf215546Sopenharmony_ci#define NV50_3D_D3D_CULL_MODE					0x00001308
963bf215546Sopenharmony_ci#define NV50_3D_D3D_CULL_MODE_NONE				0x00000001
964bf215546Sopenharmony_ci#define NV50_3D_D3D_CULL_MODE_FRONT				0x00000002
965bf215546Sopenharmony_ci#define NV50_3D_D3D_CULL_MODE_BACK				0x00000003
966bf215546Sopenharmony_ci
967bf215546Sopenharmony_ci#define NV50_3D_DEPTH_TEST_FUNC					0x0000130c
968bf215546Sopenharmony_ci#define NV50_3D_DEPTH_TEST_FUNC_NEVER				0x00000200
969bf215546Sopenharmony_ci#define NV50_3D_DEPTH_TEST_FUNC_LESS				0x00000201
970bf215546Sopenharmony_ci#define NV50_3D_DEPTH_TEST_FUNC_EQUAL				0x00000202
971bf215546Sopenharmony_ci#define NV50_3D_DEPTH_TEST_FUNC_LEQUAL				0x00000203
972bf215546Sopenharmony_ci#define NV50_3D_DEPTH_TEST_FUNC_GREATER				0x00000204
973bf215546Sopenharmony_ci#define NV50_3D_DEPTH_TEST_FUNC_NOTEQUAL				0x00000205
974bf215546Sopenharmony_ci#define NV50_3D_DEPTH_TEST_FUNC_GEQUAL				0x00000206
975bf215546Sopenharmony_ci#define NV50_3D_DEPTH_TEST_FUNC_ALWAYS				0x00000207
976bf215546Sopenharmony_ci
977bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_REF					0x00001310
978bf215546Sopenharmony_ci
979bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_FUNC					0x00001314
980bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_FUNC_NEVER				0x00000200
981bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_FUNC_LESS				0x00000201
982bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_FUNC_EQUAL				0x00000202
983bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_FUNC_LEQUAL				0x00000203
984bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_FUNC_GREATER				0x00000204
985bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_FUNC_NOTEQUAL				0x00000205
986bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_FUNC_GEQUAL				0x00000206
987bf215546Sopenharmony_ci#define NV50_3D_ALPHA_TEST_FUNC_ALWAYS				0x00000207
988bf215546Sopenharmony_ci
989bf215546Sopenharmony_ci#define NVA0_3D_DRAW_TFB_STRIDE					0x00001318
990bf215546Sopenharmony_ci#define NVA0_3D_DRAW_TFB_STRIDE__MIN				0x00000001
991bf215546Sopenharmony_ci#define NVA0_3D_DRAW_TFB_STRIDE__MAX				0x00000fff
992bf215546Sopenharmony_ci
993bf215546Sopenharmony_ci#define NV50_3D_BLEND_COLOR(i0)				       (0x0000131c + 0x4*(i0))
994bf215546Sopenharmony_ci#define NV50_3D_BLEND_COLOR__ESIZE				0x00000004
995bf215546Sopenharmony_ci#define NV50_3D_BLEND_COLOR__LEN					0x00000004
996bf215546Sopenharmony_ci
997bf215546Sopenharmony_ci#define NV50_3D_MP_PM_OVERFLOW_TRAP_ENABLE			0x0000132c
998bf215546Sopenharmony_ci#define NV50_3D_MP_PM_OVERFLOW_TRAP_ENABLE_0			0x00000001
999bf215546Sopenharmony_ci#define NV50_3D_MP_PM_OVERFLOW_TRAP_ENABLE_1			0x00000002
1000bf215546Sopenharmony_ci#define NV50_3D_MP_PM_OVERFLOW_TRAP_ENABLE_2			0x00000004
1001bf215546Sopenharmony_ci#define NV50_3D_MP_PM_OVERFLOW_TRAP_ENABLE_3			0x00000008
1002bf215546Sopenharmony_ci
1003bf215546Sopenharmony_ci#define NV50_3D_TSC_FLUSH					0x00001330
1004bf215546Sopenharmony_ci#define NV50_3D_TSC_FLUSH_SPECIFIC				0x00000001
1005bf215546Sopenharmony_ci#define NV50_3D_TSC_FLUSH_ENTRY__MASK				0x03fffff0
1006bf215546Sopenharmony_ci#define NV50_3D_TSC_FLUSH_ENTRY__SHIFT				4
1007bf215546Sopenharmony_ci
1008bf215546Sopenharmony_ci#define NV50_3D_TIC_FLUSH					0x00001334
1009bf215546Sopenharmony_ci#define NV50_3D_TIC_FLUSH_SPECIFIC				0x00000001
1010bf215546Sopenharmony_ci#define NV50_3D_TIC_FLUSH_ENTRY__MASK				0x03fffff0
1011bf215546Sopenharmony_ci#define NV50_3D_TIC_FLUSH_ENTRY__SHIFT				4
1012bf215546Sopenharmony_ci
1013bf215546Sopenharmony_ci#define NV50_3D_TEX_CACHE_CTL					0x00001338
1014bf215546Sopenharmony_ci#define NV50_3D_TEX_CACHE_CTL_UNK1__MASK				0x00000030
1015bf215546Sopenharmony_ci#define NV50_3D_TEX_CACHE_CTL_UNK1__SHIFT			4
1016bf215546Sopenharmony_ci
1017bf215546Sopenharmony_ci#define NV50_3D_BLEND_SEPARATE_ALPHA				0x0000133c
1018bf215546Sopenharmony_ci
1019bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_RGB				0x00001340
1020bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_RGB_FUNC_ADD			0x00008006
1021bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_RGB_MIN				0x00008007
1022bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_RGB_MAX				0x00008008
1023bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_RGB_FUNC_SUBTRACT			0x0000800a
1024bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT		0x0000800b
1025bf215546Sopenharmony_ci
1026bf215546Sopenharmony_ci#define NV50_3D_BLEND_FUNC_SRC_RGB				0x00001344
1027bf215546Sopenharmony_ci
1028bf215546Sopenharmony_ci#define NV50_3D_BLEND_FUNC_DST_RGB				0x00001348
1029bf215546Sopenharmony_ci
1030bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_ALPHA				0x0000134c
1031bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_ALPHA_FUNC_ADD			0x00008006
1032bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_ALPHA_MIN				0x00008007
1033bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_ALPHA_MAX				0x00008008
1034bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT		0x0000800a
1035bf215546Sopenharmony_ci#define NV50_3D_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT	0x0000800b
1036bf215546Sopenharmony_ci
1037bf215546Sopenharmony_ci#define NV50_3D_BLEND_FUNC_SRC_ALPHA				0x00001350
1038bf215546Sopenharmony_ci
1039bf215546Sopenharmony_ci#define NV50_3D_UNK1354						0x00001354
1040bf215546Sopenharmony_ci
1041bf215546Sopenharmony_ci#define NV50_3D_BLEND_FUNC_DST_ALPHA				0x00001358
1042bf215546Sopenharmony_ci
1043bf215546Sopenharmony_ci#define NV50_3D_BLEND_ENABLE_COMMON				0x0000135c
1044bf215546Sopenharmony_ci
1045bf215546Sopenharmony_ci#define NV50_3D_BLEND_ENABLE(i0)				       (0x00001360 + 0x4*(i0))
1046bf215546Sopenharmony_ci#define NV50_3D_BLEND_ENABLE__ESIZE				0x00000004
1047bf215546Sopenharmony_ci#define NV50_3D_BLEND_ENABLE__LEN				0x00000008
1048bf215546Sopenharmony_ci
1049bf215546Sopenharmony_ci#define NV50_3D_STENCIL_ENABLE					0x00001380
1050bf215546Sopenharmony_ci
1051bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_FAIL				0x00001384
1052bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_FAIL_ZERO			0x00000000
1053bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_FAIL_INVERT			0x0000150a
1054bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_FAIL_KEEP			0x00001e00
1055bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_FAIL_REPLACE			0x00001e01
1056bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_FAIL_INCR			0x00001e02
1057bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_FAIL_DECR			0x00001e03
1058bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_FAIL_INCR_WRAP			0x00008507
1059bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_FAIL_DECR_WRAP			0x00008508
1060bf215546Sopenharmony_ci
1061bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZFAIL				0x00001388
1062bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZFAIL_ZERO			0x00000000
1063bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZFAIL_INVERT			0x0000150a
1064bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZFAIL_KEEP			0x00001e00
1065bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZFAIL_REPLACE			0x00001e01
1066bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZFAIL_INCR			0x00001e02
1067bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZFAIL_DECR			0x00001e03
1068bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP			0x00008507
1069bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP			0x00008508
1070bf215546Sopenharmony_ci
1071bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZPASS				0x0000138c
1072bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZPASS_ZERO			0x00000000
1073bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZPASS_INVERT			0x0000150a
1074bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZPASS_KEEP			0x00001e00
1075bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZPASS_REPLACE			0x00001e01
1076bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZPASS_INCR			0x00001e02
1077bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZPASS_DECR			0x00001e03
1078bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZPASS_INCR_WRAP			0x00008507
1079bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_OP_ZPASS_DECR_WRAP			0x00008508
1080bf215546Sopenharmony_ci
1081bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_FUNC				0x00001390
1082bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_FUNC_NEVER			0x00000200
1083bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_FUNC_LESS			0x00000201
1084bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_FUNC_EQUAL			0x00000202
1085bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_FUNC_LEQUAL			0x00000203
1086bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_FUNC_GREATER			0x00000204
1087bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL			0x00000205
1088bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_FUNC_GEQUAL			0x00000206
1089bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_FUNC_ALWAYS			0x00000207
1090bf215546Sopenharmony_ci
1091bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_REF				0x00001394
1092bf215546Sopenharmony_ci
1093bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_MASK				0x00001398
1094bf215546Sopenharmony_ci
1095bf215546Sopenharmony_ci#define NV50_3D_STENCIL_FRONT_FUNC_MASK				0x0000139c
1096bf215546Sopenharmony_ci
1097bf215546Sopenharmony_ci#define NV50_3D_UNK13A0						0x000013a0
1098bf215546Sopenharmony_ci
1099bf215546Sopenharmony_ci#define NVA0_3D_DRAW_TFB_BASE					0x000013a4
1100bf215546Sopenharmony_ci
1101bf215546Sopenharmony_ci#define NV50_3D_FRAG_COLOR_CLAMP_EN				0x000013a8
1102bf215546Sopenharmony_ci#define NV50_3D_FRAG_COLOR_CLAMP_EN_0				0x00000001
1103bf215546Sopenharmony_ci#define NV50_3D_FRAG_COLOR_CLAMP_EN_1				0x00000010
1104bf215546Sopenharmony_ci#define NV50_3D_FRAG_COLOR_CLAMP_EN_2				0x00000100
1105bf215546Sopenharmony_ci#define NV50_3D_FRAG_COLOR_CLAMP_EN_3				0x00001000
1106bf215546Sopenharmony_ci#define NV50_3D_FRAG_COLOR_CLAMP_EN_4				0x00010000
1107bf215546Sopenharmony_ci#define NV50_3D_FRAG_COLOR_CLAMP_EN_5				0x00100000
1108bf215546Sopenharmony_ci#define NV50_3D_FRAG_COLOR_CLAMP_EN_6				0x01000000
1109bf215546Sopenharmony_ci#define NV50_3D_FRAG_COLOR_CLAMP_EN_7				0x10000000
1110bf215546Sopenharmony_ci
1111bf215546Sopenharmony_ci#define NV50_3D_SCREEN_Y_CONTROL					0x000013ac
1112bf215546Sopenharmony_ci#define NV50_3D_SCREEN_Y_CONTROL_Y_NEGATE			0x00000001
1113bf215546Sopenharmony_ci#define NV50_3D_SCREEN_Y_CONTROL_TRIANGLE_RAST_FLIP		0x00000010
1114bf215546Sopenharmony_ci
1115bf215546Sopenharmony_ci#define NV50_3D_LINE_WIDTH					0x000013b0
1116bf215546Sopenharmony_ci
1117bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS(i0)				       (0x000013b4 + 0x4*(i0))
1118bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS__ESIZE				0x00000004
1119bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS__LEN					0x00000003
1120bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS_SAMPLERS_LOG2__MASK			0x0000000f
1121bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS_SAMPLERS_LOG2__SHIFT			0
1122bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS_SAMPLERS_LOG2__MIN			0x00000000
1123bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS_SAMPLERS_LOG2__MAX			0x00000004
1124bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS_TEXTURES_LOG2__MASK			0x000000f0
1125bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS_TEXTURES_LOG2__SHIFT			4
1126bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS_TEXTURES_LOG2__MIN			0x00000000
1127bf215546Sopenharmony_ci#define NV50_3D_TEX_LIMITS_TEXTURES_LOG2__MAX			0x00000007
1128bf215546Sopenharmony_ci
1129bf215546Sopenharmony_ci#define NV50_3D_POINT_COORD_REPLACE_MAP(i0)		       (0x000013c0 + 0x4*(i0))
1130bf215546Sopenharmony_ci#define NV50_3D_POINT_COORD_REPLACE_MAP__ESIZE			0x00000004
1131bf215546Sopenharmony_ci#define NV50_3D_POINT_COORD_REPLACE_MAP__LEN			0x00000010
1132bf215546Sopenharmony_ci
1133bf215546Sopenharmony_ci#define NV50_3D_UNK1400_LANES					0x00001400
1134bf215546Sopenharmony_ci
1135bf215546Sopenharmony_ci#define NV50_3D_UNK1404						0x00001404
1136bf215546Sopenharmony_ci
1137bf215546Sopenharmony_ci#define NV50_3D_UNK1408						0x00001408
1138bf215546Sopenharmony_ci
1139bf215546Sopenharmony_ci#define NV50_3D_VP_START_ID					0x0000140c
1140bf215546Sopenharmony_ci
1141bf215546Sopenharmony_ci#define NV50_3D_GP_START_ID					0x00001410
1142bf215546Sopenharmony_ci
1143bf215546Sopenharmony_ci#define NV50_3D_FP_START_ID					0x00001414
1144bf215546Sopenharmony_ci
1145bf215546Sopenharmony_ci#define NVA3_3D_UNK1418					0x00001418
1146bf215546Sopenharmony_ci
1147bf215546Sopenharmony_ci#define NV50_3D_UNK141C						0x0000141c
1148bf215546Sopenharmony_ci
1149bf215546Sopenharmony_ci#define NV50_3D_GP_VERTEX_OUTPUT_COUNT				0x00001420
1150bf215546Sopenharmony_ci#define NV50_3D_GP_VERTEX_OUTPUT_COUNT__MIN			0x00000001
1151bf215546Sopenharmony_ci#define NV50_3D_GP_VERTEX_OUTPUT_COUNT__MAX			0x00000400
1152bf215546Sopenharmony_ci
1153bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_FLUSH				0x0000142c
1154bf215546Sopenharmony_ci
1155bf215546Sopenharmony_ci#define NV50_3D_UNK1430						0x00001430
1156bf215546Sopenharmony_ci#define NV50_3D_UNK1430_UNK0					0x00000010
1157bf215546Sopenharmony_ci#define NV50_3D_UNK1430_UNK1					0x00000100
1158bf215546Sopenharmony_ci
1159bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_BASE					0x00001434
1160bf215546Sopenharmony_ci
1161bf215546Sopenharmony_ci#define NV50_3D_VB_INSTANCE_BASE					0x00001438
1162bf215546Sopenharmony_ci
1163bf215546Sopenharmony_ci#define NV50_3D_CLEAR_FLAGS					0x0000143c
1164bf215546Sopenharmony_ci#define NV50_3D_CLEAR_FLAGS_STENCIL_MASK				0x00000001
1165bf215546Sopenharmony_ci#define NV50_3D_CLEAR_FLAGS_CLEAR_RECT__MASK			0x00000010
1166bf215546Sopenharmony_ci#define NV50_3D_CLEAR_FLAGS_CLEAR_RECT__SHIFT			4
1167bf215546Sopenharmony_ci#define NV50_3D_CLEAR_FLAGS_CLEAR_RECT_SCISSOR			0x00000000
1168bf215546Sopenharmony_ci#define NV50_3D_CLEAR_FLAGS_CLEAR_RECT_VIEWPORT			0x00000010
1169bf215546Sopenharmony_ci
1170bf215546Sopenharmony_ci#define NV50_3D_CODE_CB_FLUSH					0x00001440
1171bf215546Sopenharmony_ci
1172bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC(i0)				       (0x00001444 + 0x8*(i0))
1173bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC__ESIZE					0x00000008
1174bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC__LEN					0x00000003
1175bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC_VALID					0x00000001
1176bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC_SAMPLER__MASK				0x000000f0
1177bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC_SAMPLER__SHIFT				4
1178bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC_TSC__MASK				0x001ff000
1179bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC_TSC__SHIFT				12
1180bf215546Sopenharmony_ci
1181bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC(i0)				       (0x00001448 + 0x8*(i0))
1182bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC__ESIZE					0x00000008
1183bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC__LEN					0x00000003
1184bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC_VALID					0x00000001
1185bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC_TEXTURE__MASK				0x000001fe
1186bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC_TEXTURE__SHIFT				1
1187bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC_TIC__MASK				0x7ffffe00
1188bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC_TIC__SHIFT				9
1189bf215546Sopenharmony_ci
1190bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC2(i0)				       (0x00001468 + 0x8*(i0))
1191bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC2__ESIZE					0x00000008
1192bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC2__LEN					0x00000003
1193bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC2_VALID					0x00000001
1194bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC2_SAMPLER__MASK				0x00000010
1195bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC2_SAMPLER__SHIFT				4
1196bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC2_TSC__MASK				0x001ff000
1197bf215546Sopenharmony_ci#define NV50_3D_BIND_TSC2_TSC__SHIFT				12
1198bf215546Sopenharmony_ci
1199bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC2(i0)				       (0x0000146c + 0x8*(i0))
1200bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC2__ESIZE					0x00000008
1201bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC2__LEN					0x00000003
1202bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC2_VALID					0x00000001
1203bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC2_TEXTURE__MASK				0x00000002
1204bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC2_TEXTURE__SHIFT				1
1205bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC2_TIC__MASK				0x7ffffe00
1206bf215546Sopenharmony_ci#define NV50_3D_BIND_TIC2_TIC__SHIFT				9
1207bf215546Sopenharmony_ci
1208bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_MAP(i0)				       (0x00001480 + 0x4*(i0))
1209bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_MAP__ESIZE				0x00000004
1210bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_MAP__LEN					0x00000020
1211bf215546Sopenharmony_ci
1212bf215546Sopenharmony_ci#define NV50_3D_CLIPID_HEIGHT					0x00001504
1213bf215546Sopenharmony_ci#define NV50_3D_CLIPID_HEIGHT__MAX				0x00002000
1214bf215546Sopenharmony_ci
1215bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL_RECT_HORIZ				0x00001508
1216bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL_RECT_HORIZ_LOW__MASK			0x0000ffff
1217bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL_RECT_HORIZ_LOW__SHIFT		0
1218bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL_RECT_HORIZ_HIGH__MASK		0xffff0000
1219bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL_RECT_HORIZ_HIGH__SHIFT		16
1220bf215546Sopenharmony_ci
1221bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL_RECT_VERT				0x0000150c
1222bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL_RECT_VERT_LOW__MASK			0x0000ffff
1223bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL_RECT_VERT_LOW__SHIFT			0
1224bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL_RECT_VERT_HIGH__MASK			0xffff0000
1225bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL_RECT_VERT_HIGH__SHIFT		16
1226bf215546Sopenharmony_ci
1227bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_ENABLE				0x00001510
1228bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_ENABLE_0				0x00000001
1229bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_ENABLE_1				0x00000002
1230bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_ENABLE_2				0x00000004
1231bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_ENABLE_3				0x00000008
1232bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_ENABLE_4				0x00000010
1233bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_ENABLE_5				0x00000020
1234bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_ENABLE_6				0x00000040
1235bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_ENABLE_7				0x00000080
1236bf215546Sopenharmony_ci
1237bf215546Sopenharmony_ci#define NV50_3D_SAMPLECNT_ENABLE					0x00001514
1238bf215546Sopenharmony_ci
1239bf215546Sopenharmony_ci#define NV50_3D_POINT_SIZE					0x00001518
1240bf215546Sopenharmony_ci
1241bf215546Sopenharmony_ci#define NV50_3D_ZCULL_STATCTRS_ENABLE				0x0000151c
1242bf215546Sopenharmony_ci
1243bf215546Sopenharmony_ci#define NV50_3D_POINT_SPRITE_ENABLE				0x00001520
1244bf215546Sopenharmony_ci
1245bf215546Sopenharmony_ci#define NVA0_3D_UNK152C						0x0000152c
1246bf215546Sopenharmony_ci#define NVA0_3D_UNK152C_UNK0					0x00000001
1247bf215546Sopenharmony_ci#define NVA0_3D_UNK152C_UNK1					0x00000010
1248bf215546Sopenharmony_ci#define NVA0_3D_UNK152C_UNK2					0x00000100
1249bf215546Sopenharmony_ci#define NVA0_3D_UNK152C_UNK3__MASK				0x000ff000
1250bf215546Sopenharmony_ci#define NVA0_3D_UNK152C_UNK3__SHIFT				12
1251bf215546Sopenharmony_ci#define NVA0_3D_UNK152C_UNK3__MAX				0x00000028
1252bf215546Sopenharmony_ci
1253bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET					0x00001530
1254bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_SAMPLECNT				0x00000001
1255bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_ZCULL_STATS			0x00000002
1256bf215546Sopenharmony_ci#define NVA0_3D_COUNTER_RESET_STRMOUT_VERTICES			0x00000008
1257bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_TRANSFORM_FEEDBACK			0x00000010
1258bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_GENERATED_PRIMITIVES		0x00000011
1259bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_VFETCH_VERTICES			0x00000012
1260bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_VFETCH_PRIMITIVES			0x00000013
1261bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_VP_LAUNCHES			0x00000015
1262bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_GP_LAUNCHES			0x0000001a
1263bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_GP_PRIMITIVES_OUT			0x0000001b
1264bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_RAST_PRIMITIVES_PRECLIP		0x0000001c
1265bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_RAST_PRIMITIVES_POSTCLIP		0x0000001d
1266bf215546Sopenharmony_ci#define NV50_3D_COUNTER_RESET_FP_PIXELS				0x0000001e
1267bf215546Sopenharmony_ci
1268bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_ENABLE				0x00001534
1269bf215546Sopenharmony_ci
1270bf215546Sopenharmony_ci#define NV50_3D_ZETA_ENABLE					0x00001538
1271bf215546Sopenharmony_ci
1272bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_CTRL					0x0000153c
1273bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_CTRL_ALPHA_TO_COVERAGE		0x00000001
1274bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_CTRL_ALPHA_TO_ONE			0x00000010
1275bf215546Sopenharmony_ci
1276bf215546Sopenharmony_ci#define NV50_3D_NOPERSPECTIVE_BITMAP(i0)			       (0x00001540 + 0x4*(i0))
1277bf215546Sopenharmony_ci#define NV50_3D_NOPERSPECTIVE_BITMAP__ESIZE			0x00000004
1278bf215546Sopenharmony_ci#define NV50_3D_NOPERSPECTIVE_BITMAP__LEN			0x00000004
1279bf215546Sopenharmony_ci
1280bf215546Sopenharmony_ci#define NV50_3D_COND_ADDRESS_HIGH				0x00001550
1281bf215546Sopenharmony_ci
1282bf215546Sopenharmony_ci#define NV50_3D_COND_ADDRESS_LOW					0x00001554
1283bf215546Sopenharmony_ci
1284bf215546Sopenharmony_ci#define NV50_3D_COND_MODE					0x00001558
1285bf215546Sopenharmony_ci#define NV50_3D_COND_MODE_NEVER					0x00000000
1286bf215546Sopenharmony_ci#define NV50_3D_COND_MODE_ALWAYS					0x00000001
1287bf215546Sopenharmony_ci#define NV50_3D_COND_MODE_RES_NON_ZERO				0x00000002
1288bf215546Sopenharmony_ci#define NV50_3D_COND_MODE_EQUAL					0x00000003
1289bf215546Sopenharmony_ci#define NV50_3D_COND_MODE_NOT_EQUAL				0x00000004
1290bf215546Sopenharmony_ci
1291bf215546Sopenharmony_ci#define NV50_3D_TSC_ADDRESS_HIGH					0x0000155c
1292bf215546Sopenharmony_ci
1293bf215546Sopenharmony_ci#define NV50_3D_TSC_ADDRESS_LOW					0x00001560
1294bf215546Sopenharmony_ci#define NV50_3D_TSC_ADDRESS_LOW__ALIGN				0x00000020
1295bf215546Sopenharmony_ci
1296bf215546Sopenharmony_ci#define NV50_3D_TSC_LIMIT					0x00001564
1297bf215546Sopenharmony_ci#define NV50_3D_TSC_LIMIT__MAX					0x00001fff
1298bf215546Sopenharmony_ci
1299bf215546Sopenharmony_ci#define NV50_3D_UNK1568						0x00001568
1300bf215546Sopenharmony_ci
1301bf215546Sopenharmony_ci#define NV50_3D_POLYGON_OFFSET_FACTOR				0x0000156c
1302bf215546Sopenharmony_ci
1303bf215546Sopenharmony_ci#define NV50_3D_LINE_SMOOTH_ENABLE				0x00001570
1304bf215546Sopenharmony_ci
1305bf215546Sopenharmony_ci#define NV50_3D_TIC_ADDRESS_HIGH					0x00001574
1306bf215546Sopenharmony_ci
1307bf215546Sopenharmony_ci#define NV50_3D_TIC_ADDRESS_LOW					0x00001578
1308bf215546Sopenharmony_ci
1309bf215546Sopenharmony_ci#define NV50_3D_TIC_LIMIT					0x0000157c
1310bf215546Sopenharmony_ci
1311bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL(i0)			       (0x00001580 + 0x4*(i0))
1312bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL__ESIZE				0x00000004
1313bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL__LEN				0x00000004
1314bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_MODE__MASK				0x00000001
1315bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_MODE__SHIFT			0
1316bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_MODE_LOGOP				0x00000000
1317bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_MODE_LOGOP_PULSE			0x00000001
1318bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_UNIT__MASK				0x00000070
1319bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_UNIT__SHIFT			4
1320bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_UNIT_UNK0				0x00000000
1321bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_UNIT_UNK1				0x00000010
1322bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_UNIT_UNK2				0x00000020
1323bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_UNIT_UNK3				0x00000030
1324bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_UNIT_UNK4				0x00000040
1325bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_UNIT_UNK5				0x00000050
1326bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_FUNC__MASK				0x00ffff00
1327bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_FUNC__SHIFT			8
1328bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_SIG__MASK				0xff000000
1329bf215546Sopenharmony_ci#define NV50_3D_MP_PM_CONTROL_SIG__SHIFT				24
1330bf215546Sopenharmony_ci
1331bf215546Sopenharmony_ci#define NV50_3D_ZCULL_REGION					0x00001590
1332bf215546Sopenharmony_ci
1333bf215546Sopenharmony_ci#define NV50_3D_STENCIL_TWO_SIDE_ENABLE				0x00001594
1334bf215546Sopenharmony_ci
1335bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_FAIL				0x00001598
1336bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_FAIL_ZERO			0x00000000
1337bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_FAIL_INVERT			0x0000150a
1338bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_FAIL_KEEP			0x00001e00
1339bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_FAIL_REPLACE			0x00001e01
1340bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_FAIL_INCR			0x00001e02
1341bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_FAIL_DECR			0x00001e03
1342bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_FAIL_INCR_WRAP			0x00008507
1343bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_FAIL_DECR_WRAP			0x00008508
1344bf215546Sopenharmony_ci
1345bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZFAIL				0x0000159c
1346bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZFAIL_ZERO			0x00000000
1347bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZFAIL_INVERT			0x0000150a
1348bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZFAIL_KEEP			0x00001e00
1349bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZFAIL_REPLACE			0x00001e01
1350bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZFAIL_INCR			0x00001e02
1351bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZFAIL_DECR			0x00001e03
1352bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZFAIL_INCR_WRAP			0x00008507
1353bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZFAIL_DECR_WRAP			0x00008508
1354bf215546Sopenharmony_ci
1355bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZPASS				0x000015a0
1356bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZPASS_ZERO			0x00000000
1357bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZPASS_INVERT			0x0000150a
1358bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZPASS_KEEP			0x00001e00
1359bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZPASS_REPLACE			0x00001e01
1360bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZPASS_INCR			0x00001e02
1361bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZPASS_DECR			0x00001e03
1362bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZPASS_INCR_WRAP			0x00008507
1363bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_OP_ZPASS_DECR_WRAP			0x00008508
1364bf215546Sopenharmony_ci
1365bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_FUNC				0x000015a4
1366bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_FUNC_NEVER			0x00000200
1367bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_FUNC_LESS			0x00000201
1368bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_FUNC_EQUAL			0x00000202
1369bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_FUNC_LEQUAL			0x00000203
1370bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_FUNC_GREATER			0x00000204
1371bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_FUNC_NOTEQUAL			0x00000205
1372bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_FUNC_GEQUAL			0x00000206
1373bf215546Sopenharmony_ci#define NV50_3D_STENCIL_BACK_FUNC_FUNC_ALWAYS			0x00000207
1374bf215546Sopenharmony_ci
1375bf215546Sopenharmony_ci#define NV50_3D_UNK15A8						0x000015a8
1376bf215546Sopenharmony_ci#define NV50_3D_UNK15A8_UNK1__MASK				0x00000007
1377bf215546Sopenharmony_ci#define NV50_3D_UNK15A8_UNK1__SHIFT				0
1378bf215546Sopenharmony_ci#define NV50_3D_UNK15A8_UNK2__MASK				0x00000070
1379bf215546Sopenharmony_ci#define NV50_3D_UNK15A8_UNK2__SHIFT				4
1380bf215546Sopenharmony_ci
1381bf215546Sopenharmony_ci#define NV50_3D_UNK15AC						0x000015ac
1382bf215546Sopenharmony_ci
1383bf215546Sopenharmony_ci#define NV50_3D_UNK15B0						0x000015b0
1384bf215546Sopenharmony_ci#define NV50_3D_UNK15B0_0					0x00000001
1385bf215546Sopenharmony_ci#define NV50_3D_UNK15B0_1					0x00000010
1386bf215546Sopenharmony_ci#define NV50_3D_UNK15B0_2					0x00000100
1387bf215546Sopenharmony_ci
1388bf215546Sopenharmony_ci#define NV50_3D_CSAA_ENABLE					0x000015b4
1389bf215546Sopenharmony_ci
1390bf215546Sopenharmony_ci#define NV50_3D_FRAMEBUFFER_SRGB					0x000015b8
1391bf215546Sopenharmony_ci
1392bf215546Sopenharmony_ci#define NV50_3D_POLYGON_OFFSET_UNITS				0x000015bc
1393bf215546Sopenharmony_ci
1394bf215546Sopenharmony_ci#define NVA3_3D_UNK15C4					0x000015c4
1395bf215546Sopenharmony_ci
1396bf215546Sopenharmony_ci#define NVA3_3D_UNK15C8					0x000015c8
1397bf215546Sopenharmony_ci
1398bf215546Sopenharmony_ci#define NV50_3D_LAYER						0x000015cc
1399bf215546Sopenharmony_ci#define NV50_3D_LAYER_IDX__MASK					0x0000ffff
1400bf215546Sopenharmony_ci#define NV50_3D_LAYER_IDX__SHIFT					0
1401bf215546Sopenharmony_ci#define NV50_3D_LAYER_USE_GP					0x00010000
1402bf215546Sopenharmony_ci
1403bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE					0x000015d0
1404bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_MS1				0x00000000
1405bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_MS2				0x00000001
1406bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_MS4				0x00000002
1407bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_MS8				0x00000003
1408bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_MS8_ALT				0x00000004
1409bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_MS2_ALT				0x00000005
1410bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_UNK6				0x00000006
1411bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_MS4_CS4				0x00000008
1412bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_MS4_CS12			0x00000009
1413bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_MS8_CS8				0x0000000a
1414bf215546Sopenharmony_ci#define NV50_3D_MULTISAMPLE_MODE_MS8_CS24			0x0000000b
1415bf215546Sopenharmony_ci
1416bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D					0x000015d4
1417bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE__MASK			0x0fffffff
1418bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE__SHIFT		0
1419bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE_POINTS		0x00000001
1420bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINES			0x00000002
1421bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINE_STRIP		0x00000003
1422bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLES		0x00000004
1423bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLE_STRIP	0x00000005
1424bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINES_ADJACENCY	0x0000000a
1425bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE_LINE_STRIP_ADJACENCY	0x0000000b
1426bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLES_ADJACENCY	0x0000000c
1427bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_PRIMITIVE_TRIANGLE_STRIP_ADJACENCY	0x0000000d
1428bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_D3D_INSTANCE_NEXT			0x10000000
1429bf215546Sopenharmony_ci#define NV84_3D_VERTEX_BEGIN_D3D_PRIMITIVE_ID_CONT		0x20000000
1430bf215546Sopenharmony_ci#define NVA0_3D_VERTEX_BEGIN_D3D_INSTANCE_CONT			0x40000000
1431bf215546Sopenharmony_ci
1432bf215546Sopenharmony_ci#define NV50_3D_VERTEX_END_D3D					0x000015d8
1433bf215546Sopenharmony_ci#define NV50_3D_VERTEX_END_D3D_UNK0				0x00000001
1434bf215546Sopenharmony_ci#define NVA0_3D_VERTEX_END_D3D_UNK1				0x00000002
1435bf215546Sopenharmony_ci
1436bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL					0x000015dc
1437bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE__MASK			0x0fffffff
1438bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE__SHIFT			0
1439bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_POINTS			0x00000000
1440bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINES			0x00000001
1441bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINE_LOOP		0x00000002
1442bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINE_STRIP		0x00000003
1443bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLES		0x00000004
1444bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLE_STRIP		0x00000005
1445bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLE_FAN		0x00000006
1446bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_QUADS			0x00000007
1447bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_QUAD_STRIP		0x00000008
1448bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_POLYGON		0x00000009
1449bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINES_ADJACENCY	0x0000000a
1450bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_LINE_STRIP_ADJACENCY	0x0000000b
1451bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLES_ADJACENCY	0x0000000c
1452bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_PRIMITIVE_TRIANGLE_STRIP_ADJACENCY	0x0000000d
1453bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BEGIN_GL_INSTANCE_NEXT			0x10000000
1454bf215546Sopenharmony_ci#define NV84_3D_VERTEX_BEGIN_GL_PRIMITIVE_ID_CONT		0x20000000
1455bf215546Sopenharmony_ci#define NVA0_3D_VERTEX_BEGIN_GL_INSTANCE_CONT			0x40000000
1456bf215546Sopenharmony_ci
1457bf215546Sopenharmony_ci#define NV50_3D_VERTEX_END_GL					0x000015e0
1458bf215546Sopenharmony_ci#define NV50_3D_VERTEX_END_GL_UNK0				0x00000001
1459bf215546Sopenharmony_ci#define NVA0_3D_VERTEX_END_GL_UNK1				0x00000002
1460bf215546Sopenharmony_ci
1461bf215546Sopenharmony_ci#define NV50_3D_EDGEFLAG						0x000015e4
1462bf215546Sopenharmony_ci
1463bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U32					0x000015e8
1464bf215546Sopenharmony_ci
1465bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U16_SETUP				0x000015ec
1466bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U16_SETUP_OFFSET__MASK		0xc0000000
1467bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U16_SETUP_OFFSET__SHIFT		30
1468bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U16_SETUP_COUNT__MASK			0x3fffffff
1469bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U16_SETUP_COUNT__SHIFT		0
1470bf215546Sopenharmony_ci
1471bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U16					0x000015f0
1472bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U16_I0__MASK				0x0000ffff
1473bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U16_I0__SHIFT				0
1474bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U16_I1__MASK				0xffff0000
1475bf215546Sopenharmony_ci#define NV50_3D_VB_ELEMENT_U16_I1__SHIFT				16
1476bf215546Sopenharmony_ci
1477bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BASE_HIGH					0x000015f4
1478bf215546Sopenharmony_ci
1479bf215546Sopenharmony_ci#define NV50_3D_VERTEX_BASE_LOW					0x000015f8
1480bf215546Sopenharmony_ci
1481bf215546Sopenharmony_ci#define NV50_3D_VERTEX_DATA					0x00001640
1482bf215546Sopenharmony_ci
1483bf215546Sopenharmony_ci#define NV50_3D_PRIM_RESTART_ENABLE				0x00001644
1484bf215546Sopenharmony_ci
1485bf215546Sopenharmony_ci#define NV50_3D_PRIM_RESTART_INDEX				0x00001648
1486bf215546Sopenharmony_ci
1487bf215546Sopenharmony_ci#define NV50_3D_VP_GP_BUILTIN_ATTR_EN				0x0000164c
1488bf215546Sopenharmony_ci#define NV50_3D_VP_GP_BUILTIN_ATTR_EN_VERTEX_ID			0x00000001
1489bf215546Sopenharmony_ci#define NV50_3D_VP_GP_BUILTIN_ATTR_EN_INSTANCE_ID		0x00000010
1490bf215546Sopenharmony_ci#define NV50_3D_VP_GP_BUILTIN_ATTR_EN_PRIMITIVE_ID		0x00000100
1491bf215546Sopenharmony_ci#define NV50_3D_VP_GP_BUILTIN_ATTR_EN_VERTEX_ID_DRAW_ARRAYS_ADD_START	0x00001000
1492bf215546Sopenharmony_ci
1493bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN(i0)				       (0x00001650 + 0x4*(i0))
1494bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN__ESIZE				0x00000004
1495bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN__LEN					0x00000002
1496bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_7__MASK				0xf0000000
1497bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_7__SHIFT				28
1498bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_7_X					0x10000000
1499bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_7_Y					0x20000000
1500bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_7_Z					0x40000000
1501bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_7_W					0x80000000
1502bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_6__MASK				0x0f000000
1503bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_6__SHIFT				24
1504bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_6_X					0x01000000
1505bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_6_Y					0x02000000
1506bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_6_Z					0x04000000
1507bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_6_W					0x08000000
1508bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_5__MASK				0x00f00000
1509bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_5__SHIFT				20
1510bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_5_X					0x00100000
1511bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_5_Y					0x00200000
1512bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_5_Z					0x00400000
1513bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_5_W					0x00800000
1514bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_4__MASK				0x000f0000
1515bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_4__SHIFT				16
1516bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_4_X					0x00010000
1517bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_4_Y					0x00020000
1518bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_4_Z					0x00040000
1519bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_4_W					0x00080000
1520bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_3__MASK				0x0000f000
1521bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_3__SHIFT				12
1522bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_3_X					0x00001000
1523bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_3_Y					0x00002000
1524bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_3_Z					0x00004000
1525bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_3_W					0x00008000
1526bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_2__MASK				0x00000f00
1527bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_2__SHIFT				8
1528bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_2_X					0x00000100
1529bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_2_Y					0x00000200
1530bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_2_Z					0x00000400
1531bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_2_W					0x00000800
1532bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_1__MASK				0x000000f0
1533bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_1__SHIFT				4
1534bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_1_X					0x00000010
1535bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_1_Y					0x00000020
1536bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_1_Z					0x00000040
1537bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_1_W					0x00000080
1538bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_0__MASK				0x0000000f
1539bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_0__SHIFT				0
1540bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_0_X					0x00000001
1541bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_0_Y					0x00000002
1542bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_0_Z					0x00000004
1543bf215546Sopenharmony_ci#define NV50_3D_VP_ATTR_EN_0_W					0x00000008
1544bf215546Sopenharmony_ci
1545bf215546Sopenharmony_ci#define NV50_3D_POINT_SMOOTH_ENABLE				0x00001658
1546bf215546Sopenharmony_ci
1547bf215546Sopenharmony_ci#define NV50_3D_POINT_RASTER_RULES				0x0000165c
1548bf215546Sopenharmony_ci#define NV50_3D_POINT_RASTER_RULES_OGL				0x00000000
1549bf215546Sopenharmony_ci#define NV50_3D_POINT_RASTER_RULES_D3D				0x00000001
1550bf215546Sopenharmony_ci
1551bf215546Sopenharmony_ci#define NV50_3D_POINT_SPRITE_CTRL				0x00001660
1552bf215546Sopenharmony_ci#define NV50_3D_POINT_SPRITE_CTRL_COORD_ORIGIN__MASK		0x00000010
1553bf215546Sopenharmony_ci#define NV50_3D_POINT_SPRITE_CTRL_COORD_ORIGIN__SHIFT		4
1554bf215546Sopenharmony_ci#define NV50_3D_POINT_SPRITE_CTRL_COORD_ORIGIN_LOWER_LEFT	0x00000000
1555bf215546Sopenharmony_ci#define NV50_3D_POINT_SPRITE_CTRL_COORD_ORIGIN_UPPER_LEFT	0x00000010
1556bf215546Sopenharmony_ci
1557bf215546Sopenharmony_ci#define NVA0_3D_TEX_MISC					0x00001664
1558bf215546Sopenharmony_ci#define NVA0_3D_TEX_MISC_UNK1					0x00000002
1559bf215546Sopenharmony_ci#define NVA0_3D_TEX_MISC_SEAMLESS_CUBE_MAP			0x00000004
1560bf215546Sopenharmony_ci
1561bf215546Sopenharmony_ci#define NV50_3D_LINE_SMOOTH_BLUR					0x00001668
1562bf215546Sopenharmony_ci#define NV50_3D_LINE_SMOOTH_BLUR_LOW				0x00000000
1563bf215546Sopenharmony_ci#define NV50_3D_LINE_SMOOTH_BLUR_MEDIUM				0x00000001
1564bf215546Sopenharmony_ci#define NV50_3D_LINE_SMOOTH_BLUR_HIGH				0x00000002
1565bf215546Sopenharmony_ci
1566bf215546Sopenharmony_ci#define NV50_3D_LINE_STIPPLE_ENABLE				0x0000166c
1567bf215546Sopenharmony_ci
1568bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT(i0)				       (0x00001670 + 0x4*(i0))
1569bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT__ESIZE				0x00000004
1570bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT__LEN				0x00000004
1571bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT_0__MASK				0x000000ff
1572bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT_0__SHIFT				0
1573bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT_1__MASK				0x0000ff00
1574bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT_1__SHIFT				8
1575bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT_2__MASK				0x00ff0000
1576bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT_2__SHIFT				16
1577bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT_3__MASK				0xff000000
1578bf215546Sopenharmony_ci#define NV50_3D_COVERAGE_LUT_3__SHIFT				24
1579bf215546Sopenharmony_ci
1580bf215546Sopenharmony_ci#define NV50_3D_LINE_STIPPLE					0x00001680
1581bf215546Sopenharmony_ci#define NV50_3D_LINE_STIPPLE_FACTOR_M1__MASK			0x000000ff
1582bf215546Sopenharmony_ci#define NV50_3D_LINE_STIPPLE_FACTOR_M1__SHIFT			0
1583bf215546Sopenharmony_ci#define NV50_3D_LINE_STIPPLE_PATTERN__MASK			0x00ffff00
1584bf215546Sopenharmony_ci#define NV50_3D_LINE_STIPPLE_PATTERN__SHIFT			8
1585bf215546Sopenharmony_ci
1586bf215546Sopenharmony_ci#define NV50_3D_PROVOKING_VERTEX_LAST				0x00001684
1587bf215546Sopenharmony_ci
1588bf215546Sopenharmony_ci#define NV50_3D_VERTEX_TWO_SIDE_ENABLE				0x00001688
1589bf215546Sopenharmony_ci
1590bf215546Sopenharmony_ci#define NV50_3D_POLYGON_STIPPLE_ENABLE				0x0000168c
1591bf215546Sopenharmony_ci
1592bf215546Sopenharmony_ci#define NV50_3D_UNK1690						0x00001690
1593bf215546Sopenharmony_ci#define NV50_3D_UNK1690_ALWAYS_DERIV				0x00000001
1594bf215546Sopenharmony_ci#define NV50_3D_UNK1690_UNK16					0x00010000
1595bf215546Sopenharmony_ci
1596bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB					0x00001694
1597bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB_PROGRAM__MASK			0x000000f0
1598bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB_PROGRAM__SHIFT			4
1599bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB_PROGRAM_VERTEX			0x00000000
1600bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB_PROGRAM_GEOMETRY			0x00000020
1601bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB_PROGRAM_FRAGMENT			0x00000030
1602bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB_INDEX__MASK			0x00000f00
1603bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB_INDEX__SHIFT			8
1604bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB_BUFFER__MASK			0x0007f000
1605bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB_BUFFER__SHIFT			12
1606bf215546Sopenharmony_ci#define NV50_3D_SET_PROGRAM_CB_VALID				0x00000001
1607bf215546Sopenharmony_ci
1608bf215546Sopenharmony_ci#define NV50_3D_UNK1698						0x00001698
1609bf215546Sopenharmony_ci#define NV50_3D_UNK1698_UNK0					0x00000001
1610bf215546Sopenharmony_ci#define NV50_3D_UNK1698_UNK4					0x00000010
1611bf215546Sopenharmony_ci#define NV50_3D_UNK1698_UNK8					0x00000100
1612bf215546Sopenharmony_ci
1613bf215546Sopenharmony_ci#define NVA3_3D_SAMPLE_SHADING					0x0000169c
1614bf215546Sopenharmony_ci#define NVA3_3D_SAMPLE_SHADING_MIN_SAMPLES__MASK		0x0000000f
1615bf215546Sopenharmony_ci#define NVA3_3D_SAMPLE_SHADING_MIN_SAMPLES__SHIFT		0
1616bf215546Sopenharmony_ci#define NVA3_3D_SAMPLE_SHADING_ENABLE				0x00000010
1617bf215546Sopenharmony_ci
1618bf215546Sopenharmony_ci#define NVA3_3D_UNK16A0					0x000016a0
1619bf215546Sopenharmony_ci
1620bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP_SIZE				0x000016ac
1621bf215546Sopenharmony_ci
1622bf215546Sopenharmony_ci#define NV50_3D_VP_REG_ALLOC_TEMP				0x000016b0
1623bf215546Sopenharmony_ci
1624bf215546Sopenharmony_ci#define NVA0_3D_UNK16B4						0x000016b4
1625bf215546Sopenharmony_ci#define NVA0_3D_UNK16B4_UNK0					0x00000001
1626bf215546Sopenharmony_ci#define NVA3_3D_UNK16B4_UNK1					0x00000002
1627bf215546Sopenharmony_ci
1628bf215546Sopenharmony_ci#define NV50_3D_VP_REG_ALLOC_RESULT				0x000016b8
1629bf215546Sopenharmony_ci
1630bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP(i0)			       (0x000016bc + 0x4*(i0))
1631bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP__ESIZE				0x00000004
1632bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP__LEN				0x00000011
1633bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP_0__MASK				0x000000ff
1634bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP_0__SHIFT				0
1635bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP_1__MASK				0x0000ff00
1636bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP_1__SHIFT				8
1637bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP_2__MASK				0x00ff0000
1638bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP_2__SHIFT				16
1639bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP_3__MASK				0xff000000
1640bf215546Sopenharmony_ci#define NV50_3D_VP_RESULT_MAP_3__SHIFT				24
1641bf215546Sopenharmony_ci
1642bf215546Sopenharmony_ci#define NV50_3D_POLYGON_STIPPLE_PATTERN(i0)		       (0x00001700 + 0x4*(i0))
1643bf215546Sopenharmony_ci#define NV50_3D_POLYGON_STIPPLE_PATTERN__ESIZE			0x00000004
1644bf215546Sopenharmony_ci#define NV50_3D_POLYGON_STIPPLE_PATTERN__LEN			0x00000020
1645bf215546Sopenharmony_ci
1646bf215546Sopenharmony_ci#define NVA0_3D_STRMOUT_OFFSET(i0)			       (0x00001780 + 0x4*(i0))
1647bf215546Sopenharmony_ci#define NVA0_3D_STRMOUT_OFFSET__ESIZE				0x00000004
1648bf215546Sopenharmony_ci#define NVA0_3D_STRMOUT_OFFSET__LEN				0x00000004
1649bf215546Sopenharmony_ci
1650bf215546Sopenharmony_ci#define NV50_3D_GP_ENABLE					0x00001798
1651bf215546Sopenharmony_ci
1652bf215546Sopenharmony_ci#define NV50_3D_GP_REG_ALLOC_TEMP				0x000017a0
1653bf215546Sopenharmony_ci
1654bf215546Sopenharmony_ci#define NV50_3D_GP_REG_ALLOC_RESULT				0x000017a8
1655bf215546Sopenharmony_ci
1656bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP_SIZE				0x000017ac
1657bf215546Sopenharmony_ci
1658bf215546Sopenharmony_ci#define NV50_3D_GP_OUTPUT_PRIMITIVE_TYPE				0x000017b0
1659bf215546Sopenharmony_ci#define NV50_3D_GP_OUTPUT_PRIMITIVE_TYPE_POINTS			0x00000001
1660bf215546Sopenharmony_ci#define NV50_3D_GP_OUTPUT_PRIMITIVE_TYPE_LINE_STRIP		0x00000002
1661bf215546Sopenharmony_ci#define NV50_3D_GP_OUTPUT_PRIMITIVE_TYPE_TRIANGLE_STRIP		0x00000003
1662bf215546Sopenharmony_ci
1663bf215546Sopenharmony_ci#define NV50_3D_RASTERIZE_ENABLE					0x000017b4
1664bf215546Sopenharmony_ci
1665bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_ENABLE					0x000017b8
1666bf215546Sopenharmony_ci
1667bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP(i0)			       (0x000017fc + 0x4*(i0))
1668bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP__ESIZE				0x00000004
1669bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP__LEN				0x00000021
1670bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP_0__MASK				0x000000ff
1671bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP_0__SHIFT				0
1672bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP_1__MASK				0x0000ff00
1673bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP_1__SHIFT				8
1674bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP_2__MASK				0x00ff0000
1675bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP_2__SHIFT				16
1676bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP_3__MASK				0xff000000
1677bf215546Sopenharmony_ci#define NV50_3D_GP_RESULT_MAP_3__SHIFT				24
1678bf215546Sopenharmony_ci
1679bf215546Sopenharmony_ci#define NV50_3D_POLYGON_OFFSET_CLAMP				0x0000187c
1680bf215546Sopenharmony_ci
1681bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_PER_INSTANCE_ALT(i0)	       (0x00001880 + 0x4*(i0))
1682bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_PER_INSTANCE_ALT__ESIZE		0x00000004
1683bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_PER_INSTANCE_ALT__LEN		0x00000020
1684bf215546Sopenharmony_ci
1685bf215546Sopenharmony_ci#define NV50_3D_GP_VIEWPORT_ID_ENABLE				0x00001900
1686bf215546Sopenharmony_ci
1687bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_COLOR					0x00001904
1688bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_COLOR_FFC0_ID__MASK			0x000000ff
1689bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_COLOR_FFC0_ID__SHIFT			0
1690bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_COLOR_BFC0_ID__MASK			0x0000ff00
1691bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_COLOR_BFC0_ID__SHIFT			8
1692bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_COLOR_COLR_NR__MASK			0x00ff0000
1693bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_COLOR_COLR_NR__SHIFT			16
1694bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_COLOR_CLMP_EN				0x01000000
1695bf215546Sopenharmony_ci
1696bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_CLIP					0x00001908
1697bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_CLIP_CLIP_START__MASK			0x000000ff
1698bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_CLIP_CLIP_START__SHIFT			0
1699bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_CLIP_CLIP_NUM__MASK			0x00000f00
1700bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_CLIP_CLIP_NUM__SHIFT			8
1701bf215546Sopenharmony_ci
1702bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_LAYER					0x0000190c
1703bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_LAYER_LAYER_ID__MASK			0x000000ff
1704bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_LAYER_LAYER_ID__SHIFT			0
1705bf215546Sopenharmony_ci
1706bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_PTSZ					0x00001910
1707bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_PTSZ_PTSZ_EN__MASK			0x00000001
1708bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_PTSZ_PTSZ_EN__SHIFT			0
1709bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_PTSZ_PTSZ_ID__MASK			0x00000ff0
1710bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_PTSZ_PTSZ_ID__SHIFT			4
1711bf215546Sopenharmony_ci
1712bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_PRIM_ID					0x00001914
1713bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_PRIM_ID_PRIM_ID__MASK			0x000000ff
1714bf215546Sopenharmony_ci#define NV50_3D_SEMANTIC_PRIM_ID_PRIM_ID__SHIFT			0
1715bf215546Sopenharmony_ci
1716bf215546Sopenharmony_ci#define NV50_3D_CULL_FACE_ENABLE					0x00001918
1717bf215546Sopenharmony_ci
1718bf215546Sopenharmony_ci#define NV50_3D_FRONT_FACE					0x0000191c
1719bf215546Sopenharmony_ci#define NV50_3D_FRONT_FACE_CW					0x00000900
1720bf215546Sopenharmony_ci#define NV50_3D_FRONT_FACE_CCW					0x00000901
1721bf215546Sopenharmony_ci
1722bf215546Sopenharmony_ci#define NV50_3D_CULL_FACE					0x00001920
1723bf215546Sopenharmony_ci#define NV50_3D_CULL_FACE_FRONT					0x00000404
1724bf215546Sopenharmony_ci#define NV50_3D_CULL_FACE_BACK					0x00000405
1725bf215546Sopenharmony_ci#define NV50_3D_CULL_FACE_FRONT_AND_BACK				0x00000408
1726bf215546Sopenharmony_ci
1727bf215546Sopenharmony_ci#define NV50_3D_PIXEL_CENTER_INTEGER				0x00001924
1728bf215546Sopenharmony_ci
1729bf215546Sopenharmony_ci#define NVA3_3D_FP_MULTISAMPLE					0x00001928
1730bf215546Sopenharmony_ci#define NVA3_3D_FP_MULTISAMPLE_EXPORT_SAMPLE_MASK		0x00000001
1731bf215546Sopenharmony_ci#define NVA3_3D_FP_MULTISAMPLE_FORCE_PER_SAMPLE		0x00000002
1732bf215546Sopenharmony_ci
1733bf215546Sopenharmony_ci#define NV50_3D_VIEWPORT_TRANSFORM_EN				0x0000192c
1734bf215546Sopenharmony_ci
1735bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL				0x0000193c
1736bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK0			0x00000001
1737bf215546Sopenharmony_ci#define NVA0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1			0x00000002
1738bf215546Sopenharmony_ci#define NVA0_3D_VIEW_VOLUME_CLIP_CTRL_UNK2			0x00000004
1739bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_CLAMP_NEAR		0x00000008
1740bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_CLAMP_FAR		0x00000010
1741bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK7			0x00000080
1742bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK10			0x00000400
1743bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK11			0x00000800
1744bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK12__MASK		0x00003000
1745bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK12__SHIFT		12
1746bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK12_UNK0			0x00000000
1747bf215546Sopenharmony_ci#define NV50_3D_VIEW_VOLUME_CLIP_CTRL_UNK12_UNK1			0x00001000
1748bf215546Sopenharmony_ci#define NV84_3D_VIEW_VOLUME_CLIP_CTRL_UNK12_UNK2			0x00002000
1749bf215546Sopenharmony_ci
1750bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE				0x00001940
1751bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_0__MASK			0x00000001
1752bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_0__SHIFT			0
1753bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_0_CLIP			0x00000000
1754bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_0_CULL			0x00000001
1755bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_1__MASK			0x00000010
1756bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_1__SHIFT			4
1757bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_1_CLIP			0x00000000
1758bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_1_CULL			0x00000010
1759bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_2__MASK			0x00000100
1760bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_2__SHIFT			8
1761bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_2_CLIP			0x00000000
1762bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_2_CULL			0x00000100
1763bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_3__MASK			0x00001000
1764bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_3__SHIFT			12
1765bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_3_CLIP			0x00000000
1766bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_3_CULL			0x00001000
1767bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_4__MASK			0x00010000
1768bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_4__SHIFT			16
1769bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_4_CLIP			0x00000000
1770bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_4_CULL			0x00010000
1771bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_5__MASK			0x00100000
1772bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_5__SHIFT			20
1773bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_5_CLIP			0x00000000
1774bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_5_CULL			0x00100000
1775bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_6__MASK			0x01000000
1776bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_6__SHIFT			24
1777bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_6_CLIP			0x00000000
1778bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_6_CULL			0x01000000
1779bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_7__MASK			0x10000000
1780bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_7__SHIFT			28
1781bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_7_CLIP			0x00000000
1782bf215546Sopenharmony_ci#define NV50_3D_CLIP_DISTANCE_MODE_7_CULL			0x10000000
1783bf215546Sopenharmony_ci
1784bf215546Sopenharmony_ci#define NVA3_3D_UNK1944					0x00001944
1785bf215546Sopenharmony_ci
1786bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECTS_EN					0x0000194c
1787bf215546Sopenharmony_ci
1788bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECTS_MODE					0x00001950
1789bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECTS_MODE_INSIDE_ANY			0x00000000
1790bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECTS_MODE_OUTSIDE_ALL			0x00000001
1791bf215546Sopenharmony_ci#define NV50_3D_CLIP_RECTS_MODE_NEVER				0x00000002
1792bf215546Sopenharmony_ci
1793bf215546Sopenharmony_ci#define NV50_3D_ZCULL_VALIDATE					0x00001954
1794bf215546Sopenharmony_ci#define NV50_3D_ZCULL_VALIDATE_CLEAR_UNK0			0x00000001
1795bf215546Sopenharmony_ci#define NV50_3D_ZCULL_VALIDATE_CLEAR_UNK1			0x00000010
1796bf215546Sopenharmony_ci
1797bf215546Sopenharmony_ci#define NV50_3D_ZCULL_INVALIDATE					0x00001958
1798bf215546Sopenharmony_ci
1799bf215546Sopenharmony_ci#define NVA3_3D_UNK1960					0x00001960
1800bf215546Sopenharmony_ci#define NVA3_3D_UNK1960_0					0x00000001
1801bf215546Sopenharmony_ci#define NVA3_3D_UNK1960_1					0x00000010
1802bf215546Sopenharmony_ci
1803bf215546Sopenharmony_ci#define NV50_3D_UNK1968						0x00001968
1804bf215546Sopenharmony_ci#define NV50_3D_UNK1968_0					0x00000001
1805bf215546Sopenharmony_ci#define NV50_3D_UNK1968_1					0x00000010
1806bf215546Sopenharmony_ci
1807bf215546Sopenharmony_ci#define NV50_3D_FP_CTRL_UNK196C					0x0000196c
1808bf215546Sopenharmony_ci#define NV50_3D_FP_CTRL_UNK196C_0				0x00000001
1809bf215546Sopenharmony_ci#define NV50_3D_FP_CTRL_UNK196C_1				0x00000010
1810bf215546Sopenharmony_ci
1811bf215546Sopenharmony_ci#define NV50_3D_UNK1978						0x00001978
1812bf215546Sopenharmony_ci
1813bf215546Sopenharmony_ci#define NV50_3D_CLIPID_ENABLE					0x0000197c
1814bf215546Sopenharmony_ci
1815bf215546Sopenharmony_ci#define NV50_3D_CLIPID_WIDTH					0x00001980
1816bf215546Sopenharmony_ci#define NV50_3D_CLIPID_WIDTH__MAX				0x00002000
1817bf215546Sopenharmony_ci#define NV50_3D_CLIPID_WIDTH__ALIGN				0x00000040
1818bf215546Sopenharmony_ci
1819bf215546Sopenharmony_ci#define NV50_3D_CLIPID_ID					0x00001984
1820bf215546Sopenharmony_ci
1821bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL				0x00001988
1822bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_COUNT__MASK			0x000000ff
1823bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_COUNT__SHIFT			0
1824bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_OFFSET__MASK			0x0000ff00
1825bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_OFFSET__SHIFT		8
1826bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_COUNT_NONFLAT__MASK		0x00ff0000
1827bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_COUNT_NONFLAT__SHIFT		16
1828bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_UMASK__MASK			0x0f000000
1829bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_UMASK__SHIFT			24
1830bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_UMASK_X			0x01000000
1831bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_UMASK_Y			0x02000000
1832bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_UMASK_Z			0x04000000
1833bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_UMASK_W			0x08000000
1834bf215546Sopenharmony_ci#define NV50_3D_FP_INTERPOLANT_CTRL_UNK28			0x10000000
1835bf215546Sopenharmony_ci
1836bf215546Sopenharmony_ci#define NV50_3D_FP_REG_ALLOC_TEMP				0x0000198c
1837bf215546Sopenharmony_ci
1838bf215546Sopenharmony_ci#define NV50_3D_REG_MODE						0x000019a0
1839bf215546Sopenharmony_ci#define NV50_3D_REG_MODE_PACKED					0x00000001
1840bf215546Sopenharmony_ci#define NV50_3D_REG_MODE_STRIPED					0x00000002
1841bf215546Sopenharmony_ci
1842bf215546Sopenharmony_ci#define NV50_3D_FP_CONTROL					0x000019a8
1843bf215546Sopenharmony_ci#define NV50_3D_FP_CONTROL_MULTIPLE_RESULTS			0x00000001
1844bf215546Sopenharmony_ci#define NV50_3D_FP_CONTROL_EXPORTS_Z				0x00000100
1845bf215546Sopenharmony_ci#define NV50_3D_FP_CONTROL_USES_KIL				0x00100000
1846bf215546Sopenharmony_ci
1847bf215546Sopenharmony_ci#define NV50_3D_DEPTH_BOUNDS_EN					0x000019bc
1848bf215546Sopenharmony_ci
1849bf215546Sopenharmony_ci#define NV50_3D_UNK19C0						0x000019c0
1850bf215546Sopenharmony_ci
1851bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_ENABLE					0x000019c4
1852bf215546Sopenharmony_ci
1853bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP						0x000019c8
1854bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_CLEAR					0x00001500
1855bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_AND					0x00001501
1856bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_AND_REVERSE				0x00001502
1857bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_COPY					0x00001503
1858bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_AND_INVERTED				0x00001504
1859bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_NOOP					0x00001505
1860bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_XOR					0x00001506
1861bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_OR					0x00001507
1862bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_NOR					0x00001508
1863bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_EQUIV					0x00001509
1864bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_INVERT					0x0000150a
1865bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_OR_REVERSE				0x0000150b
1866bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_COPY_INVERTED				0x0000150c
1867bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_OR_INVERTED				0x0000150d
1868bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_NAND					0x0000150e
1869bf215546Sopenharmony_ci#define NV50_3D_LOGIC_OP_SET					0x0000150f
1870bf215546Sopenharmony_ci
1871bf215546Sopenharmony_ci#define NV50_3D_ZETA_COMP_ENABLE					0x000019cc
1872bf215546Sopenharmony_ci
1873bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS					0x000019d0
1874bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS_Z					0x00000001
1875bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS_S					0x00000002
1876bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS_R					0x00000004
1877bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS_G					0x00000008
1878bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS_B					0x00000010
1879bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS_A					0x00000020
1880bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS_RT__MASK				0x000003c0
1881bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS_RT__SHIFT				6
1882bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS_LAYER__MASK			0x001ffc00
1883bf215546Sopenharmony_ci#define NV50_3D_CLEAR_BUFFERS_LAYER__SHIFT			10
1884bf215546Sopenharmony_ci
1885bf215546Sopenharmony_ci#define NV50_3D_CLIPID_FILL					0x000019d4
1886bf215546Sopenharmony_ci
1887bf215546Sopenharmony_ci#define NV50_3D_UNK19D8(i0)				       (0x000019d8 + 0x4*(i0))
1888bf215546Sopenharmony_ci#define NV50_3D_UNK19D8__ESIZE					0x00000004
1889bf215546Sopenharmony_ci#define NV50_3D_UNK19D8__LEN					0x00000002
1890bf215546Sopenharmony_ci
1891bf215546Sopenharmony_ci#define NV50_3D_RT_COMP_ENABLE(i0)			       (0x000019e0 + 0x4*(i0))
1892bf215546Sopenharmony_ci#define NV50_3D_RT_COMP_ENABLE__ESIZE				0x00000004
1893bf215546Sopenharmony_ci#define NV50_3D_RT_COMP_ENABLE__LEN				0x00000008
1894bf215546Sopenharmony_ci
1895bf215546Sopenharmony_ci#define NV50_3D_COLOR_MASK(i0)				       (0x00001a00 + 0x4*(i0))
1896bf215546Sopenharmony_ci#define NV50_3D_COLOR_MASK__ESIZE				0x00000004
1897bf215546Sopenharmony_ci#define NV50_3D_COLOR_MASK__LEN					0x00000008
1898bf215546Sopenharmony_ci#define NV50_3D_COLOR_MASK_R					0x0000000f
1899bf215546Sopenharmony_ci#define NV50_3D_COLOR_MASK_G					0x000000f0
1900bf215546Sopenharmony_ci#define NV50_3D_COLOR_MASK_B					0x00000f00
1901bf215546Sopenharmony_ci#define NV50_3D_COLOR_MASK_A					0x0000f000
1902bf215546Sopenharmony_ci
1903bf215546Sopenharmony_ci#define NV50_3D_UNK1A20						0x00001a20
1904bf215546Sopenharmony_ci
1905bf215546Sopenharmony_ci#define NV50_3D_DELAY						0x00001a24
1906bf215546Sopenharmony_ci
1907bf215546Sopenharmony_ci#define NV50_3D_UNK1A28						0x00001a28
1908bf215546Sopenharmony_ci#define NV50_3D_UNK1A28_0__MASK					0x000000ff
1909bf215546Sopenharmony_ci#define NV50_3D_UNK1A28_0__SHIFT					0
1910bf215546Sopenharmony_ci#define NV50_3D_UNK1A28_1					0x00000100
1911bf215546Sopenharmony_ci
1912bf215546Sopenharmony_ci#define NV50_3D_UNK1A2C						0x00001a2c
1913bf215546Sopenharmony_ci
1914bf215546Sopenharmony_ci#define NV50_3D_UNK1A30						0x00001a30
1915bf215546Sopenharmony_ci
1916bf215546Sopenharmony_ci#define NV50_3D_UNK1A34						0x00001a34
1917bf215546Sopenharmony_ci
1918bf215546Sopenharmony_ci#define NV50_3D_UNK1A38						0x00001a38
1919bf215546Sopenharmony_ci
1920bf215546Sopenharmony_ci#define NV50_3D_UNK1A3C						0x00001a3c
1921bf215546Sopenharmony_ci
1922bf215546Sopenharmony_ci#define NV50_3D_UNK1A40(i0)				       (0x00001a40 + 0x4*(i0))
1923bf215546Sopenharmony_ci#define NV50_3D_UNK1A40__ESIZE					0x00000004
1924bf215546Sopenharmony_ci#define NV50_3D_UNK1A40__LEN					0x00000010
1925bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_0__MASK					0x00000007
1926bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_0__SHIFT					0
1927bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_1__MASK					0x00000070
1928bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_1__SHIFT					4
1929bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_2__MASK					0x00000700
1930bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_2__SHIFT					8
1931bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_3__MASK					0x00007000
1932bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_3__SHIFT					12
1933bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_4__MASK					0x00070000
1934bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_4__SHIFT					16
1935bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_5__MASK					0x00700000
1936bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_5__SHIFT					20
1937bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_6__MASK					0x07000000
1938bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_6__SHIFT					24
1939bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_7__MASK					0x70000000
1940bf215546Sopenharmony_ci#define NV50_3D_UNK1A40_7__SHIFT					28
1941bf215546Sopenharmony_ci
1942bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_ADDRESS_HIGH(i0)			       (0x00001a80 + 0x10*(i0))
1943bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_ADDRESS_HIGH__ESIZE			0x00000010
1944bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_ADDRESS_HIGH__LEN			0x00000004
1945bf215546Sopenharmony_ci
1946bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_ADDRESS_LOW(i0)			       (0x00001a84 + 0x10*(i0))
1947bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_ADDRESS_LOW__ESIZE			0x00000010
1948bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_ADDRESS_LOW__LEN				0x00000004
1949bf215546Sopenharmony_ci
1950bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_NUM_ATTRIBS(i0)			       (0x00001a88 + 0x10*(i0))
1951bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_NUM_ATTRIBS__ESIZE			0x00000010
1952bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_NUM_ATTRIBS__LEN				0x00000004
1953bf215546Sopenharmony_ci#define NV50_3D_STRMOUT_NUM_ATTRIBS__MAX				0x00000040
1954bf215546Sopenharmony_ci
1955bf215546Sopenharmony_ci#define NVA0_3D_STRMOUT_OFFSET_LIMIT(i0)		       (0x00001a8c + 0x10*(i0))
1956bf215546Sopenharmony_ci#define NVA0_3D_STRMOUT_OFFSET_LIMIT__ESIZE			0x00000010
1957bf215546Sopenharmony_ci#define NVA0_3D_STRMOUT_OFFSET_LIMIT__LEN			0x00000004
1958bf215546Sopenharmony_ci
1959bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB(i0)			       (0x00001ac0 + 0x4*(i0))
1960bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB__ESIZE			0x00000004
1961bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB__LEN				0x00000010
1962bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_BUFFER__MASK			0x0000000f
1963bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_BUFFER__SHIFT		0
1964bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_CONST			0x00000010
1965bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_OFFSET__MASK			0x0007ffe0
1966bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_OFFSET__SHIFT		5
1967bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT__MASK			0x01f80000
1968bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT__SHIFT		19
1969bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32_32		0x00080000
1970bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_32_32_32		0x00100000
1971bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16_16		0x00180000
1972bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_32_32			0x00200000
1973bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_16_16_16		0x00280000
1974bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8_8		0x00500000
1975bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_16_16			0x00780000
1976bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_32			0x00900000
1977bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_8_8_8			0x00980000
1978bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_8_8			0x00c00000
1979bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_16			0x00d80000
1980bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_8			0x00e80000
1981bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_10_10_10_2		0x01800000
1982bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_11_11_10		0x01880000
1983bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_TYPE__MASK			0x7e000000
1984bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_TYPE__SHIFT			25
1985bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT			0x7e000000
1986bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_TYPE_UNORM			0x24000000
1987bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_TYPE_SNORM			0x12000000
1988bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_TYPE_USCALED			0x5a000000
1989bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED			0x6c000000
1990bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_TYPE_UINT			0x48000000
1991bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_TYPE_SINT			0x36000000
1992bf215546Sopenharmony_ci#define NV50_3D_VERTEX_ARRAY_ATTRIB_BGRA				0x80000000
1993bf215546Sopenharmony_ci
1994bf215546Sopenharmony_ci#define NV50_3D_QUERY_ADDRESS_HIGH				0x00001b00
1995bf215546Sopenharmony_ci
1996bf215546Sopenharmony_ci#define NV50_3D_QUERY_ADDRESS_LOW				0x00001b04
1997bf215546Sopenharmony_ci
1998bf215546Sopenharmony_ci#define NV50_3D_QUERY_SEQUENCE					0x00001b08
1999bf215546Sopenharmony_ci
2000bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET					0x00001b0c
2001bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_MODE__MASK				0x00000003
2002bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_MODE__SHIFT				0
2003bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_MODE_WRITE_UNK0			0x00000000
2004bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_MODE_SYNC				0x00000001
2005bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_MODE_WRITE_UNK2			0x00000002
2006bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNK4					0x00000010
2007bf215546Sopenharmony_ci#define NVA0_3D_QUERY_GET_INDEX__MASK				0x000000e0
2008bf215546Sopenharmony_ci#define NVA0_3D_QUERY_GET_INDEX__SHIFT				5
2009bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNK8					0x00000100
2010bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT__MASK				0x0000f000
2011bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT__SHIFT				12
2012bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT_UNK00				0x00000000
2013bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT_VFETCH				0x00001000
2014bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT_VP				0x00002000
2015bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT_RAST				0x00004000
2016bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT_STRMOUT				0x00005000
2017bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT_GP				0x00006000
2018bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT_ZCULL				0x00007000
2019bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT_PROP				0x0000a000
2020bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT_UNK0C				0x0000c000
2021bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_UNIT_CROP				0x0000f000
2022bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_SYNC_COND__MASK			0x00010000
2023bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_SYNC_COND__SHIFT			16
2024bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_SYNC_COND_NEQUAL			0x00000000
2025bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_SYNC_COND_GREATER			0x00010000
2026bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_INTR					0x00100000
2027bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_TYPE__MASK				0x00800000
2028bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_TYPE__SHIFT				23
2029bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_TYPE_QUERY				0x00000000
2030bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_TYPE_COUNTER				0x00800000
2031bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_QUERY_SELECT__MASK			0x0f000000
2032bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_QUERY_SELECT__SHIFT			24
2033bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_QUERY_SELECT_ZERO			0x00000000
2034bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_QUERY_SELECT_SAMPLECNT			0x01000000
2035bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_QUERY_SELECT_STRMOUT_NO_OVERFLOW	0x02000000
2036bf215546Sopenharmony_ci#define NVA0_3D_QUERY_GET_QUERY_SELECT_STRMOUT_DROPPED_PRIMITIVES	0x03000000
2037bf215546Sopenharmony_ci#define NVA0_3D_QUERY_GET_QUERY_SELECT_STRMOUT_VERTICES		0x04000000
2038bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_QUERY_SELECT_ZCULL_STAT_UNK0		0x05000000
2039bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_QUERY_SELECT_ZCULL_STAT_UNK1		0x06000000
2040bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_QUERY_SELECT_ZCULL_STAT_UNK2		0x07000000
2041bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_QUERY_SELECT_ZCULL_STAT_UNK3		0x08000000
2042bf215546Sopenharmony_ci#define NVA0_3D_QUERY_GET_QUERY_SELECT_RT_UNK14			0x0c000000
2043bf215546Sopenharmony_ci#define NVA0_3D_QUERY_GET_QUERY_SELECT_STRMOUT_OFFSET		0x0d000000
2044bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT__MASK			0x0f000000
2045bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT__SHIFT			24
2046bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT_VFETCH_VERTICES		0x00000000
2047bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT_VFETCH_PRIMITIVES	0x01000000
2048bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT_VP_LAUNCHES		0x02000000
2049bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT_GP_LAUNCHES		0x03000000
2050bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT_GP_PRIMITIVES_OUT	0x04000000
2051bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT_TRANSFORM_FEEDBACK	0x05000000
2052bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT_GENERATED_PRIMITIVES	0x06000000
2053bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT_RAST_PRIMITIVES_PRECLIP	0x07000000
2054bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT_RAST_PRIMITIVES_POSTCLIP	0x08000000
2055bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_COUNTER_SELECT_FP_PIXELS		0x09000000
2056bf215546Sopenharmony_ci#define NV84_3D_QUERY_GET_COUNTER_SELECT_UNK0A			0x0a000000
2057bf215546Sopenharmony_ci#define NVA0_3D_QUERY_GET_COUNTER_SELECT_UNK0C			0x0c000000
2058bf215546Sopenharmony_ci#define NV50_3D_QUERY_GET_SHORT					0x10000000
2059bf215546Sopenharmony_ci
2060bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT(i0)			       (0x00001b3c + 0x4*(i0))
2061bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT__ESIZE			0x00000004
2062bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT__LEN				0x00000020
2063bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT_0__MASK			0x000000ff
2064bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT_0__SHIFT			0
2065bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT_1__MASK			0x0000ff00
2066bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT_1__SHIFT			8
2067bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT_2__MASK			0x00ff0000
2068bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT_2__SHIFT			16
2069bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT_3__MASK			0xff000000
2070bf215546Sopenharmony_ci#define NVA3_3D_VP_RESULT_MAP_ALT_3__SHIFT			24
2071bf215546Sopenharmony_ci
2072bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_FETCH_ALT(i0)		       (0x00001c00 + 0x10*(i0))
2073bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_FETCH_ALT__ESIZE			0x00000010
2074bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_FETCH_ALT__LEN			0x00000020
2075bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_FETCH_ALT_STRIDE__MASK		0x00000fff
2076bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_FETCH_ALT_STRIDE__SHIFT		0
2077bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_FETCH_ALT_ENABLE			0x20000000
2078bf215546Sopenharmony_ci
2079bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_START_HIGH_ALT(i0)	       (0x00001c04 + 0x10*(i0))
2080bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_START_HIGH_ALT__ESIZE		0x00000010
2081bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_START_HIGH_ALT__LEN		0x00000020
2082bf215546Sopenharmony_ci
2083bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_START_LOW_ALT(i0)		       (0x00001c08 + 0x10*(i0))
2084bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_START_LOW_ALT__ESIZE		0x00000010
2085bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_START_LOW_ALT__LEN		0x00000020
2086bf215546Sopenharmony_ci
2087bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_DIVISOR_ALT(i0)		       (0x00001c0c + 0x10*(i0))
2088bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_DIVISOR_ALT__ESIZE		0x00000010
2089bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_DIVISOR_ALT__LEN			0x00000020
2090bf215546Sopenharmony_ci
2091bf215546Sopenharmony_ci#define NVA3_3D_IBLEND(i0)				       (0x00001e00 + 0x20*(i0))
2092bf215546Sopenharmony_ci#define NVA3_3D_IBLEND__ESIZE					0x00000020
2093bf215546Sopenharmony_ci#define NVA3_3D_IBLEND__LEN					0x00000008
2094bf215546Sopenharmony_ci
2095bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_SEPARATE_ALPHA(i0)		       (0x00001e00 + 0x20*(i0))
2096bf215546Sopenharmony_ci
2097bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_RGB(i0)		       (0x00001e04 + 0x20*(i0))
2098bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_RGB_FUNC_ADD			0x00008006
2099bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_RGB_MIN			0x00008007
2100bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_RGB_MAX			0x00008008
2101bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_RGB_FUNC_SUBTRACT		0x0000800a
2102bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT	0x0000800b
2103bf215546Sopenharmony_ci
2104bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_FUNC_SRC_RGB(i0)		       (0x00001e08 + 0x20*(i0))
2105bf215546Sopenharmony_ci
2106bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_FUNC_DST_RGB(i0)		       (0x00001e0c + 0x20*(i0))
2107bf215546Sopenharmony_ci
2108bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_ALPHA(i0)		       (0x00001e10 + 0x20*(i0))
2109bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_ALPHA_FUNC_ADD			0x00008006
2110bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_ALPHA_MIN			0x00008007
2111bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_ALPHA_MAX			0x00008008
2112bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_ALPHA_FUNC_SUBTRACT		0x0000800a
2113bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT	0x0000800b
2114bf215546Sopenharmony_ci
2115bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_FUNC_SRC_ALPHA(i0)		       (0x00001e14 + 0x20*(i0))
2116bf215546Sopenharmony_ci
2117bf215546Sopenharmony_ci#define NVA3_3D_IBLEND_FUNC_DST_ALPHA(i0)		       (0x00001e18 + 0x20*(i0))
2118bf215546Sopenharmony_ci
2119bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_LIMIT_HIGH_ALT(i0)	       (0x00001f00 + 0x8*(i0))
2120bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_LIMIT_HIGH_ALT__ESIZE		0x00000008
2121bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_LIMIT_HIGH_ALT__LEN		0x00000020
2122bf215546Sopenharmony_ci
2123bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_LIMIT_LOW_ALT(i0)		       (0x00001f04 + 0x8*(i0))
2124bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_LIMIT_LOW_ALT__ESIZE		0x00000008
2125bf215546Sopenharmony_ci#define NVA3_3D_VERTEX_ARRAY_LIMIT_LOW_ALT__LEN		0x00000020
2126bf215546Sopenharmony_ci
2127bf215546Sopenharmony_ci
2128bf215546Sopenharmony_ci#endif /* NV50_3D_XML */
2129