i965_reg.h revision 428d7b3d
1/*
2 * New regs for broadwater -- we need to split this file up sensibly somehow.
3 */
4#define BRW_3D(Pipeline,Opcode,Subopcode) ((3 << 29) | \
5					   ((Pipeline) << 27) | \
6					   ((Opcode) << 24) | \
7					   ((Subopcode) << 16))
8
9#define BRW_URB_FENCE				BRW_3D(0, 0, 0)
10#define BRW_CS_URB_STATE			BRW_3D(0, 0, 1)
11#define BRW_CONSTANT_BUFFER			BRW_3D(0, 0, 2)
12#define BRW_STATE_PREFETCH			BRW_3D(0, 0, 3)
13
14#define BRW_STATE_BASE_ADDRESS			BRW_3D(0, 1, 1)
15#define BRW_STATE_SIP				BRW_3D(0, 1, 2)
16#define BRW_PIPELINE_SELECT			BRW_3D(0, 1, 4)
17
18#define NEW_PIPELINE_SELECT			BRW_3D(1, 1, 4)
19
20#define BRW_MEDIA_STATE_POINTERS		BRW_3D(2, 0, 0)
21#define BRW_MEDIA_OBJECT			BRW_3D(2, 1, 0)
22
23#define BRW_3DSTATE_PIPELINED_POINTERS		BRW_3D(3, 0, 0)
24#define BRW_3DSTATE_BINDING_TABLE_POINTERS	BRW_3D(3, 0, 1)
25# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_PS  (1 << 12)/* for GEN6 */
26# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_GS  (1 << 9) /* for GEN6 */
27# define GEN6_3DSTATE_BINDING_TABLE_MODIFY_VS  (1 << 8) /* for GEN6 */
28
29#define BRW_3DSTATE_VERTEX_BUFFERS		BRW_3D(3, 0, 8)
30#define BRW_3DSTATE_VERTEX_ELEMENTS		BRW_3D(3, 0, 9)
31#define BRW_3DSTATE_INDEX_BUFFER		BRW_3D(3, 0, 0xa)
32#define BRW_3DSTATE_VF_STATISTICS		BRW_3D(3, 0, 0xb)
33
34#define BRW_3DSTATE_DRAWING_RECTANGLE		BRW_3D(3, 1, 0)
35#define BRW_3DSTATE_CONSTANT_COLOR		BRW_3D(3, 1, 1)
36#define BRW_3DSTATE_SAMPLER_PALETTE_LOAD	BRW_3D(3, 1, 2)
37#define BRW_3DSTATE_CHROMA_KEY			BRW_3D(3, 1, 4)
38#define BRW_3DSTATE_DEPTH_BUFFER		BRW_3D(3, 1, 5)
39# define BRW_3DSTATE_DEPTH_BUFFER_TYPE_SHIFT	29
40# define BRW_3DSTATE_DEPTH_BUFFER_FORMAT_SHIFT	18
41
42#define BRW_3DSTATE_POLY_STIPPLE_OFFSET		BRW_3D(3, 1, 6)
43#define BRW_3DSTATE_POLY_STIPPLE_PATTERN	BRW_3D(3, 1, 7)
44#define BRW_3DSTATE_LINE_STIPPLE		BRW_3D(3, 1, 8)
45#define BRW_3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP	BRW_3D(3, 1, 9)
46/* These two are BLC and CTG only, not BW or CL */
47#define BRW_3DSTATE_AA_LINE_PARAMS		BRW_3D(3, 1, 0xa)
48#define BRW_3DSTATE_GS_SVB_INDEX		BRW_3D(3, 1, 0xb)
49
50#define BRW_PIPE_CONTROL			BRW_3D(3, 2, 0)
51
52#define BRW_3DPRIMITIVE				BRW_3D(3, 3, 0)
53
54#define BRW_3DSTATE_CLEAR_PARAMS		BRW_3D(3, 1, 0x10)
55/* DW1 */
56# define BRW_3DSTATE_DEPTH_CLEAR_VALID		(1 << 15)
57
58/* for GEN6+ */
59#define GEN6_3DSTATE_SAMPLER_STATE_POINTERS	BRW_3D(3, 0, 0x02)
60# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_PS	(1 << 12)
61# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_GS	(1 << 9)
62# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_VS	(1 << 8)
63
64#define GEN6_3DSTATE_URB			BRW_3D(3, 0, 0x05)
65/* DW1 */
66# define GEN6_3DSTATE_URB_VS_SIZE_SHIFT		16
67# define GEN6_3DSTATE_URB_VS_ENTRIES_SHIFT	0
68/* DW2 */
69# define GEN6_3DSTATE_URB_GS_ENTRIES_SHIFT	8
70# define GEN6_3DSTATE_URB_GS_SIZE_SHIFT		0
71
72#define GEN6_3DSTATE_VIEWPORT_STATE_POINTERS	BRW_3D(3, 0, 0x0d)
73# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CC		(1 << 12)
74# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_SF		(1 << 11)
75# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CLIP	(1 << 10)
76
77#define GEN6_3DSTATE_CC_STATE_POINTERS		BRW_3D(3, 0, 0x0e)
78
79#define GEN6_3DSTATE_VS				BRW_3D(3, 0, 0x10)
80
81#define GEN6_3DSTATE_GS				BRW_3D(3, 0, 0x11)
82/* DW4 */
83# define GEN6_3DSTATE_GS_DISPATCH_START_GRF_SHIFT	0
84
85#define GEN6_3DSTATE_CLIP			BRW_3D(3, 0, 0x12)
86
87#define GEN6_3DSTATE_SF				BRW_3D(3, 0, 0x13)
88/* DW1 */
89# define GEN6_3DSTATE_SF_NUM_OUTPUTS_SHIFT		22
90# define GEN6_3DSTATE_SF_URB_ENTRY_READ_LENGTH_SHIFT	11
91# define GEN6_3DSTATE_SF_URB_ENTRY_READ_OFFSET_SHIFT	4
92/* DW2 */
93/* DW3 */
94# define GEN6_3DSTATE_SF_CULL_BOTH			(0 << 29)
95# define GEN6_3DSTATE_SF_CULL_NONE			(1 << 29)
96# define GEN6_3DSTATE_SF_CULL_FRONT			(2 << 29)
97# define GEN6_3DSTATE_SF_CULL_BACK			(3 << 29)
98/* DW4 */
99# define GEN6_3DSTATE_SF_TRI_PROVOKE_SHIFT		29
100# define GEN6_3DSTATE_SF_LINE_PROVOKE_SHIFT		27
101# define GEN6_3DSTATE_SF_TRIFAN_PROVOKE_SHIFT		25
102
103
104#define GEN6_3DSTATE_WM				BRW_3D(3, 0, 0x14)
105/* DW2 */
106# define GEN6_3DSTATE_WM_SAMPLER_COUNT_SHITF			27
107# define GEN6_3DSTATE_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT	18
108/* DW4 */
109# define GEN6_3DSTATE_WM_DISPATCH_START_GRF_0_SHIFT		16
110/* DW5 */
111# define GEN6_3DSTATE_WM_MAX_THREADS_SHIFT			25
112# define GEN6_3DSTATE_WM_DISPATCH_ENABLE			(1 << 19)
113# define GEN6_3DSTATE_WM_16_DISPATCH_ENABLE			(1 << 1)
114# define GEN6_3DSTATE_WM_8_DISPATCH_ENABLE			(1 << 0)
115/* DW6 */
116# define GEN6_3DSTATE_WM_NUM_SF_OUTPUTS_SHIFT			20
117# define GEN6_3DSTATE_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC	(1 << 15)
118# define GEN6_3DSTATE_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC	(1 << 14)
119# define GEN6_3DSTATE_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC	(1 << 13)
120# define GEN6_3DSTATE_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC		(1 << 12)
121# define GEN6_3DSTATE_WM_PERSPECTIVE_CENTROID_BARYCENTRIC	(1 << 11)
122# define GEN6_3DSTATE_WM_PERSPECTIVE_PIXEL_BARYCENTRIC		(1 << 10)
123
124
125#define GEN6_3DSTATE_CONSTANT_VS		BRW_3D(3, 0, 0x15)
126#define GEN6_3DSTATE_CONSTANT_GS          	BRW_3D(3, 0, 0x16)
127#define GEN6_3DSTATE_CONSTANT_PS          	BRW_3D(3, 0, 0x17)
128
129#define GEN6_3DSTATE_SAMPLE_MASK		BRW_3D(3, 0, 0x18)
130
131#define GEN6_3DSTATE_MULTISAMPLE		BRW_3D(3, 1, 0x0d)
132/* DW1 */
133# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_CENTER		(0 << 4)
134# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_UPPER_LEFT	(1 << 4)
135# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_1			(0 << 1)
136# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_4			(2 << 1)
137# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_8			(3 << 1)
138
139/* on GEN7+ */
140/* _3DSTATE_VERTEX_BUFFERS on GEN7*/
141/* DW1 */
142#define GEN7_VB0_ADDRESS_MODIFYENABLE   (1 << 14)
143
144/* _3DPRIMITIVE on GEN7 */
145/* DW1 */
146# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL     (0 << 8)
147# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM         (1 << 8)
148
149/* 3DSTATE_WM on GEN7 */
150/* DW1 */
151# define GEN7_WM_STATISTICS_ENABLE                              (1 << 31)
152# define GEN7_WM_DEPTH_CLEAR                                    (1 << 30)
153# define GEN7_WM_DISPATCH_ENABLE                                (1 << 29)
154# define GEN6_WM_DEPTH_RESOLVE                                  (1 << 28)
155# define GEN7_WM_HIERARCHICAL_DEPTH_RESOLVE                     (1 << 27)
156# define GEN7_WM_KILL_ENABLE                                    (1 << 25)
157# define GEN7_WM_PSCDEPTH_OFF                                   (0 << 23)
158# define GEN7_WM_PSCDEPTH_ON                                    (1 << 23)
159# define GEN7_WM_PSCDEPTH_ON_GE                                 (2 << 23)
160# define GEN7_WM_PSCDEPTH_ON_LE                                 (3 << 23)
161# define GEN7_WM_USES_SOURCE_DEPTH                              (1 << 20)
162# define GEN7_WM_USES_SOURCE_W                                  (1 << 19)
163# define GEN7_WM_POSITION_ZW_PIXEL                              (0 << 17)
164# define GEN7_WM_POSITION_ZW_CENTROID                           (2 << 17)
165# define GEN7_WM_POSITION_ZW_SAMPLE                             (3 << 17)
166# define GEN7_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC              (1 << 16)
167# define GEN7_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC            (1 << 15)
168# define GEN7_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC               (1 << 14)
169# define GEN7_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC                 (1 << 13)
170# define GEN7_WM_PERSPECTIVE_CENTROID_BARYCENTRIC               (1 << 12)
171# define GEN7_WM_PERSPECTIVE_PIXEL_BARYCENTRIC                  (1 << 11)
172# define GEN7_WM_USES_INPUT_COVERAGE_MASK                       (1 << 10)
173# define GEN7_WM_LINE_END_CAP_AA_WIDTH_0_5                      (0 << 8)
174# define GEN7_WM_LINE_END_CAP_AA_WIDTH_1_0                      (1 << 8)
175# define GEN7_WM_LINE_END_CAP_AA_WIDTH_2_0                      (2 << 8)
176# define GEN7_WM_LINE_END_CAP_AA_WIDTH_4_0                      (3 << 8)
177# define GEN7_WM_LINE_AA_WIDTH_0_5                              (0 << 6)
178# define GEN7_WM_LINE_AA_WIDTH_1_0                              (1 << 6)
179# define GEN7_WM_LINE_AA_WIDTH_2_0                              (2 << 6)
180# define GEN7_WM_LINE_AA_WIDTH_4_0                              (3 << 6)
181# define GEN7_WM_POLYGON_STIPPLE_ENABLE                         (1 << 4)
182# define GEN7_WM_LINE_STIPPLE_ENABLE                            (1 << 3)
183# define GEN7_WM_POINT_RASTRULE_UPPER_RIGHT                     (1 << 2)
184# define GEN7_WM_MSRAST_OFF_PIXEL                               (0 << 0)
185# define GEN7_WM_MSRAST_OFF_PATTERN                             (1 << 0)
186# define GEN7_WM_MSRAST_ON_PIXEL                                (2 << 0)
187# define GEN7_WM_MSRAST_ON_PATTERN                              (3 << 0)
188/* DW2 */
189# define GEN7_WM_MSDISPMODE_PERPIXEL                            (1 << 31)
190
191#define GEN7_3DSTATE_CLEAR_PARAMS               BRW_3D(3, 0, 0x04)
192#define GEN7_3DSTATE_DEPTH_BUFFER               BRW_3D(3, 0, 0x05)
193
194#define GEN7_3DSTATE_CONSTANT_HS                BRW_3D(3, 0, 0x19)
195#define GEN7_3DSTATE_CONSTANT_DS                BRW_3D(3, 0, 0x1a)
196
197#define GEN7_3DSTATE_HS                         BRW_3D(3, 0, 0x1b)
198#define GEN7_3DSTATE_TE                         BRW_3D(3, 0, 0x1c)
199#define GEN7_3DSTATE_DS                         BRW_3D(3, 0, 0x1d)
200#define GEN7_3DSTATE_STREAMOUT                  BRW_3D(3, 0, 0x1e)
201#define GEN7_3DSTATE_SBE                        BRW_3D(3, 0, 0x1f)
202
203/* DW1 */
204# define GEN7_SBE_SWIZZLE_CONTROL_MODE          (1 << 28)
205# define GEN7_SBE_NUM_OUTPUTS_SHIFT             22
206# define GEN7_SBE_SWIZZLE_ENABLE                (1 << 21)
207# define GEN7_SBE_POINT_SPRITE_LOWERLEFT        (1 << 20)
208# define GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT   11
209# define GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT   4
210
211#define GEN7_3DSTATE_PS                                 BRW_3D(3, 0, 0x20)
212/* DW1: kernel pointer */
213/* DW2 */
214# define GEN7_PS_SPF_MODE                               (1 << 31)
215# define GEN7_PS_VECTOR_MASK_ENABLE                     (1 << 30)
216# define GEN7_PS_SAMPLER_COUNT_SHIFT                    27
217# define GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT        18
218# define GEN7_PS_FLOATING_POINT_MODE_IEEE_754           (0 << 16)
219# define GEN7_PS_FLOATING_POINT_MODE_ALT                (1 << 16)
220/* DW3: scratch space */
221/* DW4 */
222# define GEN7_PS_MAX_THREADS_SHIFT_IVB                  24
223# define GEN7_PS_MAX_THREADS_SHIFT_HSW                  23
224# define GEN7_PS_SAMPLE_MASK_SHIFT_HSW			12
225# define GEN7_PS_PUSH_CONSTANT_ENABLE                   (1 << 11)
226# define GEN7_PS_ATTRIBUTE_ENABLE                       (1 << 10)
227# define GEN7_PS_OMASK_TO_RENDER_TARGET                 (1 << 9)
228# define GEN7_PS_DUAL_SOURCE_BLEND_ENABLE               (1 << 7)
229# define GEN7_PS_POSOFFSET_NONE                         (0 << 3)
230# define GEN7_PS_POSOFFSET_CENTROID                     (2 << 3)
231# define GEN7_PS_POSOFFSET_SAMPLE                       (3 << 3)
232# define GEN7_PS_32_DISPATCH_ENABLE                     (1 << 2)
233# define GEN7_PS_16_DISPATCH_ENABLE                     (1 << 1)
234# define GEN7_PS_8_DISPATCH_ENABLE                      (1 << 0)
235/* DW5 */
236# define GEN7_PS_DISPATCH_START_GRF_SHIFT_0             16
237# define GEN7_PS_DISPATCH_START_GRF_SHIFT_1             8
238# define GEN7_PS_DISPATCH_START_GRF_SHIFT_2             0
239/* DW6: kernel 1 pointer */
240/* DW7: kernel 2 pointer */
241
242#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL      BRW_3D(3, 0, 0x21)
243#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC         BRW_3D(3, 0, 0x23)
244
245#define GEN7_3DSTATE_BLEND_STATE_POINTERS               BRW_3D(3, 0, 0x24)
246#define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS       BRW_3D(3, 0, 0x25)
247
248#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS          BRW_3D(3, 0, 0x26)
249#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS          BRW_3D(3, 0, 0x27)
250#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS          BRW_3D(3, 0, 0x28)
251#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS          BRW_3D(3, 0, 0x29)
252#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS          BRW_3D(3, 0, 0x2a)
253
254#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS          BRW_3D(3, 0, 0x2b)
255#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS          BRW_3D(3, 0, 0x2e)
256#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS          BRW_3D(3, 0, 0x2f)
257
258#define GEN7_3DSTATE_URB_VS                             BRW_3D(3, 0, 0x30)
259#define GEN7_3DSTATE_URB_HS                             BRW_3D(3, 0, 0x31)
260#define GEN7_3DSTATE_URB_DS                             BRW_3D(3, 0, 0x32)
261#define GEN7_3DSTATE_URB_GS                             BRW_3D(3, 0, 0x33)
262/* DW1 */
263# define GEN7_URB_ENTRY_NUMBER_SHIFT            0
264# define GEN7_URB_ENTRY_SIZE_SHIFT              16
265# define GEN7_URB_STARTING_ADDRESS_SHIFT        25
266
267#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS             BRW_3D(3, 1, 0x12)
268#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS             BRW_3D(3, 1, 0x16)
269/* DW1 */
270# define GEN7_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT 16
271
272
273#define PIPELINE_SELECT_3D		0
274#define PIPELINE_SELECT_MEDIA		1
275
276#define UF0_CS_REALLOC			(1 << 13)
277#define UF0_VFE_REALLOC			(1 << 12)
278#define UF0_SF_REALLOC			(1 << 11)
279#define UF0_CLIP_REALLOC		(1 << 10)
280#define UF0_GS_REALLOC			(1 << 9)
281#define UF0_VS_REALLOC			(1 << 8)
282#define UF1_CLIP_FENCE_SHIFT		20
283#define UF1_GS_FENCE_SHIFT		10
284#define UF1_VS_FENCE_SHIFT		0
285#define UF2_CS_FENCE_SHIFT		20
286#define UF2_VFE_FENCE_SHIFT		10
287#define UF2_SF_FENCE_SHIFT		0
288
289/* for BRW_STATE_BASE_ADDRESS */
290#define BASE_ADDRESS_MODIFY		(1 << 0)
291
292/* for BRW_3DSTATE_PIPELINED_POINTERS */
293#define BRW_GS_DISABLE		       0
294#define BRW_GS_ENABLE		       1
295#define BRW_CLIP_DISABLE	       0
296#define BRW_CLIP_ENABLE		       1
297
298/* for BRW_PIPE_CONTROL */
299#define BRW_PIPE_CONTROL_CS_STALL      (1 << 20)
300#define BRW_PIPE_CONTROL_NOWRITE       (0 << 14)
301#define BRW_PIPE_CONTROL_WRITE_QWORD   (1 << 14)
302#define BRW_PIPE_CONTROL_WRITE_DEPTH   (2 << 14)
303#define BRW_PIPE_CONTROL_WRITE_TIME    (3 << 14)
304#define BRW_PIPE_CONTROL_DEPTH_STALL   (1 << 13)
305#define BRW_PIPE_CONTROL_WC_FLUSH      (1 << 12)
306#define BRW_PIPE_CONTROL_IS_FLUSH      (1 << 11)
307#define BRW_PIPE_CONTROL_TC_FLUSH      (1 << 10)
308#define BRW_PIPE_CONTROL_NOTIFY_ENABLE (1 << 8)
309#define BRW_PIPE_CONTROL_GLOBAL_GTT    (1 << 2)
310#define BRW_PIPE_CONTROL_LOCAL_PGTT    (0 << 2)
311#define BRW_PIPE_CONTROL_STALL_AT_SCOREBOARD    (1 << 1)
312#define BRW_PIPE_CONTROL_DEPTH_CACHE_FLUSH	(1 << 0)
313
314/* VERTEX_BUFFER_STATE Structure */
315#define VB0_BUFFER_INDEX_SHIFT		27
316#define GEN6_VB0_BUFFER_INDEX_SHIFT	26
317#define VB0_VERTEXDATA			(0 << 26)
318#define VB0_INSTANCEDATA		(1 << 26)
319#define GEN6_VB0_VERTEXDATA		(0 << 20)
320#define GEN6_VB0_INSTANCEDATA		(1 << 20)
321#define VB0_BUFFER_PITCH_SHIFT		0
322
323/* VERTEX_ELEMENT_STATE Structure */
324#define VE0_VERTEX_BUFFER_INDEX_SHIFT	27
325#define GEN6_VE0_VERTEX_BUFFER_INDEX_SHIFT	26 /* for GEN6 */
326#define VE0_VALID			(1 << 26)
327#define GEN6_VE0_VALID			(1 << 25) /* for GEN6 */
328#define VE0_FORMAT_SHIFT		16
329#define VE0_OFFSET_SHIFT		0
330#define VE1_VFCOMPONENT_0_SHIFT		28
331#define VE1_VFCOMPONENT_1_SHIFT		24
332#define VE1_VFCOMPONENT_2_SHIFT		20
333#define VE1_VFCOMPONENT_3_SHIFT		16
334#define VE1_DESTINATION_ELEMENT_OFFSET_SHIFT	0
335
336/* 3DPRIMITIVE bits */
337#define BRW_3DPRIMITIVE_VERTEX_SEQUENTIAL (0 << 15)
338#define BRW_3DPRIMITIVE_VERTEX_RANDOM	  (1 << 15)
339/* Primitive types are in brw_defines.h */
340#define BRW_3DPRIMITIVE_TOPOLOGY_SHIFT	  10
341
342#define BRW_SVG_CTL		       0x7400
343
344#define BRW_SVG_CTL_GS_BA	       (0 << 8)
345#define BRW_SVG_CTL_SS_BA	       (1 << 8)
346#define BRW_SVG_CTL_IO_BA	       (2 << 8)
347#define BRW_SVG_CTL_GS_AUB	       (3 << 8)
348#define BRW_SVG_CTL_IO_AUB	       (4 << 8)
349#define BRW_SVG_CTL_SIP		       (5 << 8)
350
351#define BRW_SVG_RDATA		       0x7404
352#define BRW_SVG_WORK_CTL	       0x7408
353
354#define BRW_VF_CTL		       0x7500
355
356#define BRW_VF_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
357#define BRW_VF_CTL_SNAPSHOT_MUX_SELECT_THREADID	   (0 << 8)
358#define BRW_VF_CTL_SNAPSHOT_MUX_SELECT_VF_DEBUG	   (1 << 8)
359#define BRW_VF_CTL_SNAPSHOT_TYPE_VERTEX_SEQUENCE   (0 << 4)
360#define BRW_VF_CTL_SNAPSHOT_TYPE_VERTEX_INDEX	   (1 << 4)
361#define BRW_VF_CTL_SKIP_INITIAL_PRIMITIVES	   (1 << 3)
362#define BRW_VF_CTL_MAX_PRIMITIVES_LIMIT_ENABLE	   (1 << 2)
363#define BRW_VF_CTL_VERTEX_RANGE_LIMIT_ENABLE	   (1 << 1)
364#define BRW_VF_CTL_SNAPSHOT_ENABLE	     	   (1 << 0)
365
366#define BRW_VF_STRG_VAL		       0x7504
367#define BRW_VF_STR_VL_OVR	       0x7508
368#define BRW_VF_VC_OVR		       0x750c
369#define BRW_VF_STR_PSKIP	       0x7510
370#define BRW_VF_MAX_PRIM		       0x7514
371#define BRW_VF_RDATA		       0x7518
372
373#define BRW_VS_CTL		       0x7600
374#define BRW_VS_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
375#define BRW_VS_CTL_SNAPSHOT_MUX_VERTEX_0	   (0 << 8)
376#define BRW_VS_CTL_SNAPSHOT_MUX_VERTEX_1	   (1 << 8)
377#define BRW_VS_CTL_SNAPSHOT_MUX_VALID_COUNT	   (2 << 8)
378#define BRW_VS_CTL_SNAPSHOT_MUX_VS_KERNEL_POINTER  (3 << 8)
379#define BRW_VS_CTL_SNAPSHOT_ALL_THREADS		   (1 << 2)
380#define BRW_VS_CTL_THREAD_SNAPSHOT_ENABLE	   (1 << 1)
381#define BRW_VS_CTL_SNAPSHOT_ENABLE		   (1 << 0)
382
383#define BRW_VS_STRG_VAL		       0x7604
384#define BRW_VS_RDATA		       0x7608
385
386#define BRW_SF_CTL		       0x7b00
387#define BRW_SF_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
388#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_0_FF_ID	   (0 << 8)
389#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_0_REL_COUNT (1 << 8)
390#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_1_FF_ID	   (2 << 8)
391#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_1_REL_COUNT (3 << 8)
392#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_2_FF_ID	   (4 << 8)
393#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_2_REL_COUNT (5 << 8)
394#define BRW_SF_CTL_SNAPSHOT_MUX_VERTEX_COUNT	   (6 << 8)
395#define BRW_SF_CTL_SNAPSHOT_MUX_SF_KERNEL_POINTER  (7 << 8)
396#define BRW_SF_CTL_MIN_MAX_PRIMITIVE_RANGE_ENABLE  (1 << 4)
397#define BRW_SF_CTL_DEBUG_CLIP_RECTANGLE_ENABLE	   (1 << 3)
398#define BRW_SF_CTL_SNAPSHOT_ALL_THREADS		   (1 << 2)
399#define BRW_SF_CTL_THREAD_SNAPSHOT_ENABLE	   (1 << 1)
400#define BRW_SF_CTL_SNAPSHOT_ENABLE		   (1 << 0)
401
402#define BRW_SF_STRG_VAL		       0x7b04
403#define BRW_SF_RDATA		       0x7b18
404
405#define BRW_WIZ_CTL		       0x7c00
406#define BRW_WIZ_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
407#define BRW_WIZ_CTL_SUBSPAN_INSTANCE_SHIFT	   16
408#define BRW_WIZ_CTL_SNAPSHOT_MUX_WIZ_KERNEL_POINTER   (0 << 8)
409#define BRW_WIZ_CTL_SNAPSHOT_MUX_SUBSPAN_INSTANCE     (1 << 8)
410#define BRW_WIZ_CTL_SNAPSHOT_MUX_PRIMITIVE_SEQUENCE   (2 << 8)
411#define BRW_WIZ_CTL_SINGLE_SUBSPAN_DISPATCH	      (1 << 6)
412#define BRW_WIZ_CTL_IGNORE_COLOR_SCOREBOARD_STALLS    (1 << 5)
413#define BRW_WIZ_CTL_ENABLE_SUBSPAN_INSTANCE_COMPARE   (1 << 4)
414#define BRW_WIZ_CTL_USE_UPSTREAM_SNAPSHOT_FLAG	      (1 << 3)
415#define BRW_WIZ_CTL_SNAPSHOT_ALL_THREADS	      (1 << 2)
416#define BRW_WIZ_CTL_THREAD_SNAPSHOT_ENABLE	      (1 << 1)
417#define BRW_WIZ_CTL_SNAPSHOT_ENABLE		      (1 << 0)
418
419#define BRW_WIZ_STRG_VAL			      0x7c04
420#define BRW_WIZ_RDATA				      0x7c18
421
422#define BRW_TS_CTL		       0x7e00
423#define BRW_TS_CTL_SNAPSHOT_COMPLETE		   (1 << 31)
424#define BRW_TS_CTL_SNAPSHOT_MESSAGE_ERROR	   (0 << 8)
425#define BRW_TS_CTL_SNAPSHOT_INTERFACE_DESCRIPTOR   (3 << 8)
426#define BRW_TS_CTL_SNAPSHOT_ALL_CHILD_THREADS	   (1 << 2)
427#define BRW_TS_CTL_SNAPSHOT_ALL_ROOT_THREADS  	   (1 << 1)
428#define BRW_TS_CTL_SNAPSHOT_ENABLE		   (1 << 0)
429
430#define BRW_TS_STRG_VAL		       0x7e04
431#define BRW_TS_RDATA		       0x7e08
432
433#define BRW_TD_CTL		       0x8000
434#define BRW_TD_CTL_MUX_SHIFT	       8
435#define BRW_TD_CTL_EXTERNAL_HALT_R0_DEBUG_MATCH	   (1 << 7)
436#define BRW_TD_CTL_FORCE_EXTERNAL_HALT		   (1 << 6)
437#define BRW_TD_CTL_EXCEPTION_MASK_OVERRIDE	   (1 << 5)
438#define BRW_TD_CTL_FORCE_THREAD_BREAKPOINT_ENABLE  (1 << 4)
439#define BRW_TD_CTL_BREAKPOINT_ENABLE		   (1 << 2)
440#define BRW_TD_CTL2		       0x8004
441#define BRW_TD_CTL2_ILLEGAL_OPCODE_EXCEPTION_OVERRIDE (1 << 28)
442#define BRW_TD_CTL2_MASKSTACK_EXCEPTION_OVERRIDE      (1 << 26)
443#define BRW_TD_CTL2_SOFTWARE_EXCEPTION_OVERRIDE	      (1 << 25)
444#define BRW_TD_CTL2_ACTIVE_THREAD_LIMIT_SHIFT	      16
445#define BRW_TD_CTL2_ACTIVE_THREAD_LIMIT_ENABLE	      (1 << 8)
446#define BRW_TD_CTL2_THREAD_SPAWNER_EXECUTION_MASK_ENABLE (1 << 7)
447#define BRW_TD_CTL2_WIZ_EXECUTION_MASK_ENABLE	      (1 << 6)
448#define BRW_TD_CTL2_SF_EXECUTION_MASK_ENABLE	      (1 << 5)
449#define BRW_TD_CTL2_CLIPPER_EXECUTION_MASK_ENABLE     (1 << 4)
450#define BRW_TD_CTL2_GS_EXECUTION_MASK_ENABLE	      (1 << 3)
451#define BRW_TD_CTL2_VS_EXECUTION_MASK_ENABLE	      (1 << 0)
452#define BRW_TD_VF_VS_EMSK	       0x8008
453#define BRW_TD_GS_EMSK		       0x800c
454#define BRW_TD_CLIP_EMSK	       0x8010
455#define BRW_TD_SF_EMSK		       0x8014
456#define BRW_TD_WIZ_EMSK		       0x8018
457#define BRW_TD_0_6_EHTRG_VAL	       0x801c
458#define BRW_TD_0_7_EHTRG_VAL	       0x8020
459#define BRW_TD_0_6_EHTRG_MSK           0x8024
460#define BRW_TD_0_7_EHTRG_MSK	       0x8028
461#define BRW_TD_RDATA		       0x802c
462#define BRW_TD_TS_EMSK		       0x8030
463
464#define BRW_EU_CTL		       0x8800
465#define BRW_EU_CTL_SELECT_SHIFT	       16
466#define BRW_EU_CTL_DATA_MUX_SHIFT      8
467#define BRW_EU_ATT_0		       0x8810
468#define BRW_EU_ATT_1		       0x8814
469#define BRW_EU_ATT_DATA_0	       0x8820
470#define BRW_EU_ATT_DATA_1	       0x8824
471#define BRW_EU_ATT_CLR_0	       0x8830
472#define BRW_EU_ATT_CLR_1	       0x8834
473#define BRW_EU_RDATA		       0x8840
474
475/* End regs for broadwater */
476
477