1b8e80941Smrg#ifndef CMDSTREAM_XML
2b8e80941Smrg#define CMDSTREAM_XML
3b8e80941Smrg
4b8e80941Smrg/* Autogenerated file, DO NOT EDIT manually!
5b8e80941Smrg
6b8e80941SmrgThis file was generated by the rules-ng-ng headergen tool in this git repository:
7b8e80941Smrghttp://0x04.net/cgit/index.cgi/rules-ng-ng
8b8e80941Smrggit clone git://0x04.net/rules-ng-ng
9b8e80941Smrg
10b8e80941SmrgThe rules-ng-ng source files this header was generated from are:
11b8e80941Smrg- cmdstream.xml (  16930 bytes, from 2019-01-04 11:37:39)
12b8e80941Smrg- copyright.xml (   1597 bytes, from 2018-02-10 13:09:26)
13b8e80941Smrg- common.xml    (  35468 bytes, from 2018-02-10 13:09:26)
14b8e80941Smrg
15b8e80941SmrgCopyright (C) 2012-2019 by the following authors:
16b8e80941Smrg- Wladimir J. van der Laan <laanwj@gmail.com>
17b8e80941Smrg- Christian Gmeiner <christian.gmeiner@gmail.com>
18b8e80941Smrg- Lucas Stach <l.stach@pengutronix.de>
19b8e80941Smrg- Russell King <rmk@arm.linux.org.uk>
20b8e80941Smrg
21b8e80941SmrgPermission is hereby granted, free of charge, to any person obtaining a
22b8e80941Smrgcopy of this software and associated documentation files (the "Software"),
23b8e80941Smrgto deal in the Software without restriction, including without limitation
24b8e80941Smrgthe rights to use, copy, modify, merge, publish, distribute, sub license,
25b8e80941Smrgand/or sell copies of the Software, and to permit persons to whom the
26b8e80941SmrgSoftware is furnished to do so, subject to the following conditions:
27b8e80941Smrg
28b8e80941SmrgThe above copyright notice and this permission notice (including the
29b8e80941Smrgnext paragraph) shall be included in all copies or substantial portions
30b8e80941Smrgof the Software.
31b8e80941Smrg
32b8e80941SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
33b8e80941SmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
34b8e80941SmrgFITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
35b8e80941SmrgTHE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
36b8e80941SmrgLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37b8e80941SmrgFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
38b8e80941SmrgDEALINGS IN THE SOFTWARE.
39b8e80941Smrg*/
40b8e80941Smrg
41b8e80941Smrg
42b8e80941Smrg#define FE_OPCODE_LOAD_STATE					0x00000001
43b8e80941Smrg#define FE_OPCODE_END						0x00000002
44b8e80941Smrg#define FE_OPCODE_NOP						0x00000003
45b8e80941Smrg#define FE_OPCODE_DRAW_2D					0x00000004
46b8e80941Smrg#define FE_OPCODE_DRAW_PRIMITIVES				0x00000005
47b8e80941Smrg#define FE_OPCODE_DRAW_INDEXED_PRIMITIVES			0x00000006
48b8e80941Smrg#define FE_OPCODE_WAIT						0x00000007
49b8e80941Smrg#define FE_OPCODE_LINK						0x00000008
50b8e80941Smrg#define FE_OPCODE_STALL						0x00000009
51b8e80941Smrg#define FE_OPCODE_CALL						0x0000000a
52b8e80941Smrg#define FE_OPCODE_RETURN					0x0000000b
53b8e80941Smrg#define FE_OPCODE_DRAW_INSTANCED				0x0000000c
54b8e80941Smrg#define FE_OPCODE_CHIP_SELECT					0x0000000d
55b8e80941Smrg#define FE_OPCODE_WAIT_FENCE					0x0000000f
56b8e80941Smrg#define FE_OPCODE_DRAW_INDIRECT					0x00000010
57b8e80941Smrg#define FE_OPCODE_SNAP_PAGES					0x00000013
58b8e80941Smrg#define PRIMITIVE_TYPE_POINTS					0x00000001
59b8e80941Smrg#define PRIMITIVE_TYPE_LINES					0x00000002
60b8e80941Smrg#define PRIMITIVE_TYPE_LINE_STRIP				0x00000003
61b8e80941Smrg#define PRIMITIVE_TYPE_TRIANGLES				0x00000004
62b8e80941Smrg#define PRIMITIVE_TYPE_TRIANGLE_STRIP				0x00000005
63b8e80941Smrg#define PRIMITIVE_TYPE_TRIANGLE_FAN				0x00000006
64b8e80941Smrg#define PRIMITIVE_TYPE_LINE_LOOP				0x00000007
65b8e80941Smrg#define PRIMITIVE_TYPE_QUADS					0x00000008
66b8e80941Smrg#define VIV_FE_LOAD_STATE					0x00000000
67b8e80941Smrg
68b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER				0x00000000
69b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_OP__MASK			0xf8000000
70b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_OP__SHIFT			27
71b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_OP_LOAD_STATE			0x08000000
72b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_FIXP				0x04000000
73b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_COUNT__MASK			0x03ff0000
74b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_COUNT__SHIFT			16
75b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_COUNT(x)			(((x) << VIV_FE_LOAD_STATE_HEADER_COUNT__SHIFT) & VIV_FE_LOAD_STATE_HEADER_COUNT__MASK)
76b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_OFFSET__MASK			0x0000ffff
77b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_OFFSET__SHIFT			0
78b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_OFFSET(x)			(((x) << VIV_FE_LOAD_STATE_HEADER_OFFSET__SHIFT) & VIV_FE_LOAD_STATE_HEADER_OFFSET__MASK)
79b8e80941Smrg#define VIV_FE_LOAD_STATE_HEADER_OFFSET__SHR			2
80b8e80941Smrg
81b8e80941Smrg#define VIV_FE_END						0x00000000
82b8e80941Smrg
83b8e80941Smrg#define VIV_FE_END_HEADER					0x00000000
84b8e80941Smrg#define VIV_FE_END_HEADER_EVENT_ID__MASK			0x0000001f
85b8e80941Smrg#define VIV_FE_END_HEADER_EVENT_ID__SHIFT			0
86b8e80941Smrg#define VIV_FE_END_HEADER_EVENT_ID(x)				(((x) << VIV_FE_END_HEADER_EVENT_ID__SHIFT) & VIV_FE_END_HEADER_EVENT_ID__MASK)
87b8e80941Smrg#define VIV_FE_END_HEADER_EVENT_ENABLE				0x00000100
88b8e80941Smrg#define VIV_FE_END_HEADER_OP__MASK				0xf8000000
89b8e80941Smrg#define VIV_FE_END_HEADER_OP__SHIFT				27
90b8e80941Smrg#define VIV_FE_END_HEADER_OP_END				0x10000000
91b8e80941Smrg
92b8e80941Smrg#define VIV_FE_NOP						0x00000000
93b8e80941Smrg
94b8e80941Smrg#define VIV_FE_NOP_HEADER					0x00000000
95b8e80941Smrg#define VIV_FE_NOP_HEADER_OP__MASK				0xf8000000
96b8e80941Smrg#define VIV_FE_NOP_HEADER_OP__SHIFT				27
97b8e80941Smrg#define VIV_FE_NOP_HEADER_OP_NOP				0x18000000
98b8e80941Smrg
99b8e80941Smrg#define VIV_FE_DRAW_2D						0x00000000
100b8e80941Smrg
101b8e80941Smrg#define VIV_FE_DRAW_2D_HEADER					0x00000000
102b8e80941Smrg#define VIV_FE_DRAW_2D_HEADER_COUNT__MASK			0x0000ff00
103b8e80941Smrg#define VIV_FE_DRAW_2D_HEADER_COUNT__SHIFT			8
104b8e80941Smrg#define VIV_FE_DRAW_2D_HEADER_COUNT(x)				(((x) << VIV_FE_DRAW_2D_HEADER_COUNT__SHIFT) & VIV_FE_DRAW_2D_HEADER_COUNT__MASK)
105b8e80941Smrg#define VIV_FE_DRAW_2D_HEADER_DATA_COUNT__MASK			0x07ff0000
106b8e80941Smrg#define VIV_FE_DRAW_2D_HEADER_DATA_COUNT__SHIFT			16
107b8e80941Smrg#define VIV_FE_DRAW_2D_HEADER_DATA_COUNT(x)			(((x) << VIV_FE_DRAW_2D_HEADER_DATA_COUNT__SHIFT) & VIV_FE_DRAW_2D_HEADER_DATA_COUNT__MASK)
108b8e80941Smrg#define VIV_FE_DRAW_2D_HEADER_OP__MASK				0xf8000000
109b8e80941Smrg#define VIV_FE_DRAW_2D_HEADER_OP__SHIFT				27
110b8e80941Smrg#define VIV_FE_DRAW_2D_HEADER_OP_DRAW_2D			0x20000000
111b8e80941Smrg
112b8e80941Smrg#define VIV_FE_DRAW_2D_TOP_LEFT					0x00000008
113b8e80941Smrg#define VIV_FE_DRAW_2D_TOP_LEFT_X__MASK				0x0000ffff
114b8e80941Smrg#define VIV_FE_DRAW_2D_TOP_LEFT_X__SHIFT			0
115b8e80941Smrg#define VIV_FE_DRAW_2D_TOP_LEFT_X(x)				(((x) << VIV_FE_DRAW_2D_TOP_LEFT_X__SHIFT) & VIV_FE_DRAW_2D_TOP_LEFT_X__MASK)
116b8e80941Smrg#define VIV_FE_DRAW_2D_TOP_LEFT_Y__MASK				0xffff0000
117b8e80941Smrg#define VIV_FE_DRAW_2D_TOP_LEFT_Y__SHIFT			16
118b8e80941Smrg#define VIV_FE_DRAW_2D_TOP_LEFT_Y(x)				(((x) << VIV_FE_DRAW_2D_TOP_LEFT_Y__SHIFT) & VIV_FE_DRAW_2D_TOP_LEFT_Y__MASK)
119b8e80941Smrg
120b8e80941Smrg#define VIV_FE_DRAW_2D_BOTTOM_RIGHT				0x0000000c
121b8e80941Smrg#define VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__MASK			0x0000ffff
122b8e80941Smrg#define VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__SHIFT			0
123b8e80941Smrg#define VIV_FE_DRAW_2D_BOTTOM_RIGHT_X(x)			(((x) << VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__SHIFT) & VIV_FE_DRAW_2D_BOTTOM_RIGHT_X__MASK)
124b8e80941Smrg#define VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__MASK			0xffff0000
125b8e80941Smrg#define VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__SHIFT			16
126b8e80941Smrg#define VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y(x)			(((x) << VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__SHIFT) & VIV_FE_DRAW_2D_BOTTOM_RIGHT_Y__MASK)
127b8e80941Smrg
128b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES					0x00000000
129b8e80941Smrg
130b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES_HEADER				0x00000000
131b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES_HEADER_OP__MASK			0xf8000000
132b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES_HEADER_OP__SHIFT			27
133b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES_HEADER_OP_DRAW_PRIMITIVES	0x28000000
134b8e80941Smrg
135b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES_COMMAND				0x00000004
136b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__MASK		0x000000ff
137b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__SHIFT		0
138b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE(x)			(((x) << VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__SHIFT) & VIV_FE_DRAW_PRIMITIVES_COMMAND_TYPE__MASK)
139b8e80941Smrg
140b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES_START				0x00000008
141b8e80941Smrg
142b8e80941Smrg#define VIV_FE_DRAW_PRIMITIVES_COUNT				0x0000000c
143b8e80941Smrg
144b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES				0x00000000
145b8e80941Smrg
146b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER			0x00000000
147b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER_OP__MASK		0xf8000000
148b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER_OP__SHIFT		27
149b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_HEADER_OP_DRAW_INDEXED_PRIMITIVES	0x30000000
150b8e80941Smrg
151b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND			0x00000004
152b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__MASK	0x000000ff
153b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__SHIFT	0
154b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE(x)		(((x) << VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__SHIFT) & VIV_FE_DRAW_INDEXED_PRIMITIVES_COMMAND_TYPE__MASK)
155b8e80941Smrg
156b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_START			0x00000008
157b8e80941Smrg
158b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_COUNT			0x0000000c
159b8e80941Smrg
160b8e80941Smrg#define VIV_FE_DRAW_INDEXED_PRIMITIVES_OFFSET			0x00000010
161b8e80941Smrg
162b8e80941Smrg#define VIV_FE_WAIT						0x00000000
163b8e80941Smrg
164b8e80941Smrg#define VIV_FE_WAIT_HEADER					0x00000000
165b8e80941Smrg#define VIV_FE_WAIT_HEADER_DELAY__MASK				0x0000ffff
166b8e80941Smrg#define VIV_FE_WAIT_HEADER_DELAY__SHIFT				0
167b8e80941Smrg#define VIV_FE_WAIT_HEADER_DELAY(x)				(((x) << VIV_FE_WAIT_HEADER_DELAY__SHIFT) & VIV_FE_WAIT_HEADER_DELAY__MASK)
168b8e80941Smrg#define VIV_FE_WAIT_HEADER_OP__MASK				0xf8000000
169b8e80941Smrg#define VIV_FE_WAIT_HEADER_OP__SHIFT				27
170b8e80941Smrg#define VIV_FE_WAIT_HEADER_OP_WAIT				0x38000000
171b8e80941Smrg
172b8e80941Smrg#define VIV_FE_LINK						0x00000000
173b8e80941Smrg
174b8e80941Smrg#define VIV_FE_LINK_HEADER					0x00000000
175b8e80941Smrg#define VIV_FE_LINK_HEADER_PREFETCH__MASK			0x0000ffff
176b8e80941Smrg#define VIV_FE_LINK_HEADER_PREFETCH__SHIFT			0
177b8e80941Smrg#define VIV_FE_LINK_HEADER_PREFETCH(x)				(((x) << VIV_FE_LINK_HEADER_PREFETCH__SHIFT) & VIV_FE_LINK_HEADER_PREFETCH__MASK)
178b8e80941Smrg#define VIV_FE_LINK_HEADER_OP__MASK				0xf8000000
179b8e80941Smrg#define VIV_FE_LINK_HEADER_OP__SHIFT				27
180b8e80941Smrg#define VIV_FE_LINK_HEADER_OP_LINK				0x40000000
181b8e80941Smrg
182b8e80941Smrg#define VIV_FE_LINK_ADDRESS					0x00000004
183b8e80941Smrg
184b8e80941Smrg#define VIV_FE_STALL						0x00000000
185b8e80941Smrg
186b8e80941Smrg#define VIV_FE_STALL_HEADER					0x00000000
187b8e80941Smrg#define VIV_FE_STALL_HEADER_OP__MASK				0xf8000000
188b8e80941Smrg#define VIV_FE_STALL_HEADER_OP__SHIFT				27
189b8e80941Smrg#define VIV_FE_STALL_HEADER_OP_STALL				0x48000000
190b8e80941Smrg
191b8e80941Smrg#define VIV_FE_STALL_TOKEN					0x00000004
192b8e80941Smrg#define VIV_FE_STALL_TOKEN_FROM__MASK				0x0000001f
193b8e80941Smrg#define VIV_FE_STALL_TOKEN_FROM__SHIFT				0
194b8e80941Smrg#define VIV_FE_STALL_TOKEN_FROM(x)				(((x) << VIV_FE_STALL_TOKEN_FROM__SHIFT) & VIV_FE_STALL_TOKEN_FROM__MASK)
195b8e80941Smrg#define VIV_FE_STALL_TOKEN_TO__MASK				0x00001f00
196b8e80941Smrg#define VIV_FE_STALL_TOKEN_TO__SHIFT				8
197b8e80941Smrg#define VIV_FE_STALL_TOKEN_TO(x)				(((x) << VIV_FE_STALL_TOKEN_TO__SHIFT) & VIV_FE_STALL_TOKEN_TO__MASK)
198b8e80941Smrg#define VIV_FE_STALL_TOKEN_UNK28__MASK				0x30000000
199b8e80941Smrg#define VIV_FE_STALL_TOKEN_UNK28__SHIFT				28
200b8e80941Smrg#define VIV_FE_STALL_TOKEN_UNK28(x)				(((x) << VIV_FE_STALL_TOKEN_UNK28__SHIFT) & VIV_FE_STALL_TOKEN_UNK28__MASK)
201b8e80941Smrg
202b8e80941Smrg#define VIV_FE_CALL						0x00000000
203b8e80941Smrg
204b8e80941Smrg#define VIV_FE_CALL_HEADER					0x00000000
205b8e80941Smrg#define VIV_FE_CALL_HEADER_PREFETCH__MASK			0x0000ffff
206b8e80941Smrg#define VIV_FE_CALL_HEADER_PREFETCH__SHIFT			0
207b8e80941Smrg#define VIV_FE_CALL_HEADER_PREFETCH(x)				(((x) << VIV_FE_CALL_HEADER_PREFETCH__SHIFT) & VIV_FE_CALL_HEADER_PREFETCH__MASK)
208b8e80941Smrg#define VIV_FE_CALL_HEADER_OP__MASK				0xf8000000
209b8e80941Smrg#define VIV_FE_CALL_HEADER_OP__SHIFT				27
210b8e80941Smrg#define VIV_FE_CALL_HEADER_OP_CALL				0x50000000
211b8e80941Smrg
212b8e80941Smrg#define VIV_FE_CALL_ADDRESS					0x00000004
213b8e80941Smrg
214b8e80941Smrg#define VIV_FE_CALL_RETURN_PREFETCH				0x00000008
215b8e80941Smrg
216b8e80941Smrg#define VIV_FE_CALL_RETURN_ADDRESS				0x0000000c
217b8e80941Smrg
218b8e80941Smrg#define VIV_FE_RETURN						0x00000000
219b8e80941Smrg
220b8e80941Smrg#define VIV_FE_RETURN_HEADER					0x00000000
221b8e80941Smrg#define VIV_FE_RETURN_HEADER_OP__MASK				0xf8000000
222b8e80941Smrg#define VIV_FE_RETURN_HEADER_OP__SHIFT				27
223b8e80941Smrg#define VIV_FE_RETURN_HEADER_OP_RETURN				0x58000000
224b8e80941Smrg
225b8e80941Smrg#define VIV_FE_CHIP_SELECT					0x00000000
226b8e80941Smrg
227b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER				0x00000000
228b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_OP__MASK			0xf8000000
229b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_OP__SHIFT			27
230b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_OP_CHIP_SELECT		0x68000000
231b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP15			0x00008000
232b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP14			0x00004000
233b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP13			0x00002000
234b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP12			0x00001000
235b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP11			0x00000800
236b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP10			0x00000400
237b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP9			0x00000200
238b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP8			0x00000100
239b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP7			0x00000080
240b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP6			0x00000040
241b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP5			0x00000020
242b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP4			0x00000010
243b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP3			0x00000008
244b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP2			0x00000004
245b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP1			0x00000002
246b8e80941Smrg#define VIV_FE_CHIP_SELECT_HEADER_ENABLE_CHIP0			0x00000001
247b8e80941Smrg
248b8e80941Smrg#define VIV_FE_DRAW_INSTANCED					0x00000000
249b8e80941Smrg
250b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER				0x00000000
251b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER_OP__MASK			0xf8000000
252b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER_OP__SHIFT			27
253b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER_OP_DRAW_INSTANCED		0x60000000
254b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER_INDEXED			0x00100000
255b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER_TYPE__MASK			0x000f0000
256b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER_TYPE__SHIFT		16
257b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER_TYPE(x)			(((x) << VIV_FE_DRAW_INSTANCED_HEADER_TYPE__SHIFT) & VIV_FE_DRAW_INSTANCED_HEADER_TYPE__MASK)
258b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__MASK	0x0000ffff
259b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__SHIFT	0
260b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO(x)	(((x) << VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__SHIFT) & VIV_FE_DRAW_INSTANCED_HEADER_INSTANCE_COUNT_LO__MASK)
261b8e80941Smrg
262b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_COUNT				0x00000004
263b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__MASK	0xff000000
264b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__SHIFT	24
265b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI(x)	(((x) << VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__SHIFT) & VIV_FE_DRAW_INSTANCED_COUNT_INSTANCE_COUNT_HI__MASK)
266b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__MASK		0x00ffffff
267b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__SHIFT		0
268b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT(x)		(((x) << VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__SHIFT) & VIV_FE_DRAW_INSTANCED_COUNT_VERTEX_COUNT__MASK)
269b8e80941Smrg
270b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_START				0x00000008
271b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_START_INDEX__MASK			0xffffffff
272b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_START_INDEX__SHIFT		0
273b8e80941Smrg#define VIV_FE_DRAW_INSTANCED_START_INDEX(x)			(((x) << VIV_FE_DRAW_INSTANCED_START_INDEX__SHIFT) & VIV_FE_DRAW_INSTANCED_START_INDEX__MASK)
274b8e80941Smrg
275b8e80941Smrg#define VIV_FE_WAIT_FENCE					0x00000000
276b8e80941Smrg
277b8e80941Smrg#define VIV_FE_WAIT_FENCE_HEADER				0x00000000
278b8e80941Smrg#define VIV_FE_WAIT_FENCE_HEADER_OP__MASK			0xf8000000
279b8e80941Smrg#define VIV_FE_WAIT_FENCE_HEADER_OP__SHIFT			27
280b8e80941Smrg#define VIV_FE_WAIT_FENCE_HEADER_OP_WAIT_FENCE			0x78000000
281b8e80941Smrg#define VIV_FE_WAIT_FENCE_HEADER_UNK16__MASK			0x00030000
282b8e80941Smrg#define VIV_FE_WAIT_FENCE_HEADER_UNK16__SHIFT			16
283b8e80941Smrg#define VIV_FE_WAIT_FENCE_HEADER_UNK16(x)			(((x) << VIV_FE_WAIT_FENCE_HEADER_UNK16__SHIFT) & VIV_FE_WAIT_FENCE_HEADER_UNK16__MASK)
284b8e80941Smrg#define VIV_FE_WAIT_FENCE_HEADER_WAITCOUNT__MASK		0x0000ffff
285b8e80941Smrg#define VIV_FE_WAIT_FENCE_HEADER_WAITCOUNT__SHIFT		0
286b8e80941Smrg#define VIV_FE_WAIT_FENCE_HEADER_WAITCOUNT(x)			(((x) << VIV_FE_WAIT_FENCE_HEADER_WAITCOUNT__SHIFT) & VIV_FE_WAIT_FENCE_HEADER_WAITCOUNT__MASK)
287b8e80941Smrg
288b8e80941Smrg#define VIV_FE_WAIT_FENCE_ADDRESS				0x00000004
289b8e80941Smrg
290b8e80941Smrg#define VIV_FE_DRAW_INDIRECT					0x00000000
291b8e80941Smrg
292b8e80941Smrg#define VIV_FE_DRAW_INDIRECT_HEADER				0x00000000
293b8e80941Smrg#define VIV_FE_DRAW_INDIRECT_HEADER_OP__MASK			0xf8000000
294b8e80941Smrg#define VIV_FE_DRAW_INDIRECT_HEADER_OP__SHIFT			27
295b8e80941Smrg#define VIV_FE_DRAW_INDIRECT_HEADER_OP_DRAW_INDIRECT		0x80000000
296b8e80941Smrg#define VIV_FE_DRAW_INDIRECT_HEADER_UNK8			0x00000100
297b8e80941Smrg#define VIV_FE_DRAW_INDIRECT_HEADER_TYPE__MASK			0x0000000f
298b8e80941Smrg#define VIV_FE_DRAW_INDIRECT_HEADER_TYPE__SHIFT			0
299b8e80941Smrg#define VIV_FE_DRAW_INDIRECT_HEADER_TYPE(x)			(((x) << VIV_FE_DRAW_INDIRECT_HEADER_TYPE__SHIFT) & VIV_FE_DRAW_INDIRECT_HEADER_TYPE__MASK)
300b8e80941Smrg
301b8e80941Smrg#define VIV_FE_DRAW_INDIRECT_ADDRESS				0x00000004
302b8e80941Smrg
303b8e80941Smrg#define VIV_FE_SNAP_PAGES					0x00000000
304b8e80941Smrg
305b8e80941Smrg#define VIV_FE_SNAP_PAGES_HEADER				0x00000000
306b8e80941Smrg#define VIV_FE_SNAP_PAGES_HEADER_OP__MASK			0xf8000000
307b8e80941Smrg#define VIV_FE_SNAP_PAGES_HEADER_OP__SHIFT			27
308b8e80941Smrg#define VIV_FE_SNAP_PAGES_HEADER_OP_SNAP_PAGES			0x98000000
309b8e80941Smrg#define VIV_FE_SNAP_PAGES_HEADER_UNK0__MASK			0x0000001f
310b8e80941Smrg#define VIV_FE_SNAP_PAGES_HEADER_UNK0__SHIFT			0
311b8e80941Smrg#define VIV_FE_SNAP_PAGES_HEADER_UNK0(x)			(((x) << VIV_FE_SNAP_PAGES_HEADER_UNK0__SHIFT) & VIV_FE_SNAP_PAGES_HEADER_UNK0__MASK)
312b8e80941Smrg
313b8e80941Smrg
314b8e80941Smrg#endif /* CMDSTREAM_XML */
315