xref: /aosp_15_r20/external/igt-gpu-tools/assembler/brw_defines.h (revision d83cc019efdc2edc6c4b16e9034a3ceb8d35d77c)
1*d83cc019SAndroid Build Coastguard Worker /*
2*d83cc019SAndroid Build Coastguard Worker  Copyright (C) Intel Corp.  2006.  All Rights Reserved.
3*d83cc019SAndroid Build Coastguard Worker  Intel funded Tungsten Graphics (http://www.tungstengraphics.com) to
4*d83cc019SAndroid Build Coastguard Worker  develop this 3D driver.
5*d83cc019SAndroid Build Coastguard Worker 
6*d83cc019SAndroid Build Coastguard Worker  Permission is hereby granted, free of charge, to any person obtaining
7*d83cc019SAndroid Build Coastguard Worker  a copy of this software and associated documentation files (the
8*d83cc019SAndroid Build Coastguard Worker  "Software"), to deal in the Software without restriction, including
9*d83cc019SAndroid Build Coastguard Worker  without limitation the rights to use, copy, modify, merge, publish,
10*d83cc019SAndroid Build Coastguard Worker  distribute, sublicense, and/or sell copies of the Software, and to
11*d83cc019SAndroid Build Coastguard Worker  permit persons to whom the Software is furnished to do so, subject to
12*d83cc019SAndroid Build Coastguard Worker  the following conditions:
13*d83cc019SAndroid Build Coastguard Worker 
14*d83cc019SAndroid Build Coastguard Worker  The above copyright notice and this permission notice (including the
15*d83cc019SAndroid Build Coastguard Worker  next paragraph) shall be included in all copies or substantial
16*d83cc019SAndroid Build Coastguard Worker  portions of the Software.
17*d83cc019SAndroid Build Coastguard Worker 
18*d83cc019SAndroid Build Coastguard Worker  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19*d83cc019SAndroid Build Coastguard Worker  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20*d83cc019SAndroid Build Coastguard Worker  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21*d83cc019SAndroid Build Coastguard Worker  IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
22*d83cc019SAndroid Build Coastguard Worker  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23*d83cc019SAndroid Build Coastguard Worker  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24*d83cc019SAndroid Build Coastguard Worker  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25*d83cc019SAndroid Build Coastguard Worker 
26*d83cc019SAndroid Build Coastguard Worker  **********************************************************************/
27*d83cc019SAndroid Build Coastguard Worker  /*
28*d83cc019SAndroid Build Coastguard Worker   * Authors:
29*d83cc019SAndroid Build Coastguard Worker   *   Keith Whitwell <[email protected]>
30*d83cc019SAndroid Build Coastguard Worker   */
31*d83cc019SAndroid Build Coastguard Worker 
32*d83cc019SAndroid Build Coastguard Worker #define INTEL_MASK(high, low) (((1<<((high)-(low)+1))-1)<<(low))
33*d83cc019SAndroid Build Coastguard Worker #define SET_FIELD(value, field) (((value) << field ## _SHIFT) & field ## _MASK)
34*d83cc019SAndroid Build Coastguard Worker #define GET_FIELD(word, field) (((word)  & field ## _MASK) >> field ## _SHIFT)
35*d83cc019SAndroid Build Coastguard Worker 
36*d83cc019SAndroid Build Coastguard Worker #ifndef BRW_DEFINES_H
37*d83cc019SAndroid Build Coastguard Worker #define BRW_DEFINES_H
38*d83cc019SAndroid Build Coastguard Worker 
39*d83cc019SAndroid Build Coastguard Worker /* 3D state:
40*d83cc019SAndroid Build Coastguard Worker  */
41*d83cc019SAndroid Build Coastguard Worker #define PIPE_CONTROL_NOWRITE          0x00
42*d83cc019SAndroid Build Coastguard Worker #define PIPE_CONTROL_WRITEIMMEDIATE   0x01
43*d83cc019SAndroid Build Coastguard Worker #define PIPE_CONTROL_WRITEDEPTH       0x02
44*d83cc019SAndroid Build Coastguard Worker #define PIPE_CONTROL_WRITETIMESTAMP   0x03
45*d83cc019SAndroid Build Coastguard Worker 
46*d83cc019SAndroid Build Coastguard Worker #define PIPE_CONTROL_GTTWRITE_PROCESS_LOCAL 0x00
47*d83cc019SAndroid Build Coastguard Worker #define PIPE_CONTROL_GTTWRITE_GLOBAL        0x01
48*d83cc019SAndroid Build Coastguard Worker 
49*d83cc019SAndroid Build Coastguard Worker #define CMD_3D_PRIM                                 0x7b00 /* 3DPRIMITIVE */
50*d83cc019SAndroid Build Coastguard Worker /* DW0 */
51*d83cc019SAndroid Build Coastguard Worker # define GEN4_3DPRIM_TOPOLOGY_TYPE_SHIFT            10
52*d83cc019SAndroid Build Coastguard Worker # define GEN4_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 15)
53*d83cc019SAndroid Build Coastguard Worker # define GEN4_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM     (1 << 15)
54*d83cc019SAndroid Build Coastguard Worker /* DW1 */
55*d83cc019SAndroid Build Coastguard Worker # define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 8)
56*d83cc019SAndroid Build Coastguard Worker # define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM     (1 << 8)
57*d83cc019SAndroid Build Coastguard Worker 
58*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_POINTLIST         0x01
59*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_LINELIST          0x02
60*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_LINESTRIP         0x03
61*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_TRILIST           0x04
62*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_TRISTRIP          0x05
63*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_TRIFAN            0x06
64*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_QUADLIST          0x07
65*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_QUADSTRIP         0x08
66*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_LINELIST_ADJ      0x09
67*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_LINESTRIP_ADJ     0x0A
68*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_TRILIST_ADJ       0x0B
69*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_TRISTRIP_ADJ      0x0C
70*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_TRISTRIP_REVERSE  0x0D
71*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_POLYGON           0x0E
72*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_RECTLIST          0x0F
73*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_LINELOOP          0x10
74*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_POINTLIST_BF      0x11
75*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_LINESTRIP_CONT    0x12
76*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_LINESTRIP_BF      0x13
77*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_LINESTRIP_CONT_BF 0x14
78*d83cc019SAndroid Build Coastguard Worker #define _3DPRIM_TRIFAN_NOSTIPPLE  0x15
79*d83cc019SAndroid Build Coastguard Worker 
80*d83cc019SAndroid Build Coastguard Worker #define BRW_ANISORATIO_2     0
81*d83cc019SAndroid Build Coastguard Worker #define BRW_ANISORATIO_4     1
82*d83cc019SAndroid Build Coastguard Worker #define BRW_ANISORATIO_6     2
83*d83cc019SAndroid Build Coastguard Worker #define BRW_ANISORATIO_8     3
84*d83cc019SAndroid Build Coastguard Worker #define BRW_ANISORATIO_10    4
85*d83cc019SAndroid Build Coastguard Worker #define BRW_ANISORATIO_12    5
86*d83cc019SAndroid Build Coastguard Worker #define BRW_ANISORATIO_14    6
87*d83cc019SAndroid Build Coastguard Worker #define BRW_ANISORATIO_16    7
88*d83cc019SAndroid Build Coastguard Worker 
89*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_ONE                 0x1
90*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_SRC_COLOR           0x2
91*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_SRC_ALPHA           0x3
92*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_DST_ALPHA           0x4
93*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_DST_COLOR           0x5
94*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_SRC_ALPHA_SATURATE  0x6
95*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_CONST_COLOR         0x7
96*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_CONST_ALPHA         0x8
97*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_SRC1_COLOR          0x9
98*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_SRC1_ALPHA          0x0A
99*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_ZERO                0x11
100*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_INV_SRC_COLOR       0x12
101*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_INV_SRC_ALPHA       0x13
102*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_INV_DST_ALPHA       0x14
103*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_INV_DST_COLOR       0x15
104*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_INV_CONST_COLOR     0x17
105*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_INV_CONST_ALPHA     0x18
106*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_INV_SRC1_COLOR      0x19
107*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFACTOR_INV_SRC1_ALPHA      0x1A
108*d83cc019SAndroid Build Coastguard Worker 
109*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFUNCTION_ADD               0
110*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFUNCTION_SUBTRACT          1
111*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFUNCTION_REVERSE_SUBTRACT  2
112*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFUNCTION_MIN               3
113*d83cc019SAndroid Build Coastguard Worker #define BRW_BLENDFUNCTION_MAX               4
114*d83cc019SAndroid Build Coastguard Worker 
115*d83cc019SAndroid Build Coastguard Worker #define BRW_ALPHATEST_FORMAT_UNORM8         0
116*d83cc019SAndroid Build Coastguard Worker #define BRW_ALPHATEST_FORMAT_FLOAT32        1
117*d83cc019SAndroid Build Coastguard Worker 
118*d83cc019SAndroid Build Coastguard Worker #define BRW_CHROMAKEY_KILL_ON_ANY_MATCH  0
119*d83cc019SAndroid Build Coastguard Worker #define BRW_CHROMAKEY_REPLACE_BLACK      1
120*d83cc019SAndroid Build Coastguard Worker 
121*d83cc019SAndroid Build Coastguard Worker #define BRW_CLIP_API_OGL     0
122*d83cc019SAndroid Build Coastguard Worker #define BRW_CLIP_API_DX      1
123*d83cc019SAndroid Build Coastguard Worker 
124*d83cc019SAndroid Build Coastguard Worker #define BRW_CLIPMODE_NORMAL              0
125*d83cc019SAndroid Build Coastguard Worker #define BRW_CLIPMODE_CLIP_ALL            1
126*d83cc019SAndroid Build Coastguard Worker #define BRW_CLIPMODE_CLIP_NON_REJECTED   2
127*d83cc019SAndroid Build Coastguard Worker #define BRW_CLIPMODE_REJECT_ALL          3
128*d83cc019SAndroid Build Coastguard Worker #define BRW_CLIPMODE_ACCEPT_ALL          4
129*d83cc019SAndroid Build Coastguard Worker #define BRW_CLIPMODE_KERNEL_CLIP         5
130*d83cc019SAndroid Build Coastguard Worker 
131*d83cc019SAndroid Build Coastguard Worker #define BRW_CLIP_NDCSPACE     0
132*d83cc019SAndroid Build Coastguard Worker #define BRW_CLIP_SCREENSPACE  1
133*d83cc019SAndroid Build Coastguard Worker 
134*d83cc019SAndroid Build Coastguard Worker #define BRW_COMPAREFUNCTION_ALWAYS       0
135*d83cc019SAndroid Build Coastguard Worker #define BRW_COMPAREFUNCTION_NEVER        1
136*d83cc019SAndroid Build Coastguard Worker #define BRW_COMPAREFUNCTION_LESS         2
137*d83cc019SAndroid Build Coastguard Worker #define BRW_COMPAREFUNCTION_EQUAL        3
138*d83cc019SAndroid Build Coastguard Worker #define BRW_COMPAREFUNCTION_LEQUAL       4
139*d83cc019SAndroid Build Coastguard Worker #define BRW_COMPAREFUNCTION_GREATER      5
140*d83cc019SAndroid Build Coastguard Worker #define BRW_COMPAREFUNCTION_NOTEQUAL     6
141*d83cc019SAndroid Build Coastguard Worker #define BRW_COMPAREFUNCTION_GEQUAL       7
142*d83cc019SAndroid Build Coastguard Worker 
143*d83cc019SAndroid Build Coastguard Worker #define BRW_COVERAGE_PIXELS_HALF     0
144*d83cc019SAndroid Build Coastguard Worker #define BRW_COVERAGE_PIXELS_1        1
145*d83cc019SAndroid Build Coastguard Worker #define BRW_COVERAGE_PIXELS_2        2
146*d83cc019SAndroid Build Coastguard Worker #define BRW_COVERAGE_PIXELS_4        3
147*d83cc019SAndroid Build Coastguard Worker 
148*d83cc019SAndroid Build Coastguard Worker #define BRW_CULLMODE_BOTH        0
149*d83cc019SAndroid Build Coastguard Worker #define BRW_CULLMODE_NONE        1
150*d83cc019SAndroid Build Coastguard Worker #define BRW_CULLMODE_FRONT       2
151*d83cc019SAndroid Build Coastguard Worker #define BRW_CULLMODE_BACK        3
152*d83cc019SAndroid Build Coastguard Worker 
153*d83cc019SAndroid Build Coastguard Worker #define BRW_DEFAULTCOLOR_R8G8B8A8_UNORM      0
154*d83cc019SAndroid Build Coastguard Worker #define BRW_DEFAULTCOLOR_R32G32B32A32_FLOAT  1
155*d83cc019SAndroid Build Coastguard Worker 
156*d83cc019SAndroid Build Coastguard Worker #define BRW_DEPTHFORMAT_D32_FLOAT_S8X24_UINT     0
157*d83cc019SAndroid Build Coastguard Worker #define BRW_DEPTHFORMAT_D32_FLOAT                1
158*d83cc019SAndroid Build Coastguard Worker #define BRW_DEPTHFORMAT_D24_UNORM_S8_UINT        2
159*d83cc019SAndroid Build Coastguard Worker #define BRW_DEPTHFORMAT_D24_UNORM_X8_UINT        3 /* GEN5 */
160*d83cc019SAndroid Build Coastguard Worker #define BRW_DEPTHFORMAT_D16_UNORM                5
161*d83cc019SAndroid Build Coastguard Worker 
162*d83cc019SAndroid Build Coastguard Worker #define BRW_FLOATING_POINT_IEEE_754        0
163*d83cc019SAndroid Build Coastguard Worker #define BRW_FLOATING_POINT_NON_IEEE_754    1
164*d83cc019SAndroid Build Coastguard Worker 
165*d83cc019SAndroid Build Coastguard Worker #define BRW_FRONTWINDING_CW      0
166*d83cc019SAndroid Build Coastguard Worker #define BRW_FRONTWINDING_CCW     1
167*d83cc019SAndroid Build Coastguard Worker 
168*d83cc019SAndroid Build Coastguard Worker #define BRW_SPRITE_POINT_ENABLE  16
169*d83cc019SAndroid Build Coastguard Worker 
170*d83cc019SAndroid Build Coastguard Worker #define BRW_CUT_INDEX_ENABLE     (1 << 10)
171*d83cc019SAndroid Build Coastguard Worker 
172*d83cc019SAndroid Build Coastguard Worker #define BRW_INDEX_BYTE     0
173*d83cc019SAndroid Build Coastguard Worker #define BRW_INDEX_WORD     1
174*d83cc019SAndroid Build Coastguard Worker #define BRW_INDEX_DWORD    2
175*d83cc019SAndroid Build Coastguard Worker 
176*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_CLEAR            0
177*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_NOR              1
178*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_AND_INVERTED     2
179*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_COPY_INVERTED    3
180*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_AND_REVERSE      4
181*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_INVERT           5
182*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_XOR              6
183*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_NAND             7
184*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_AND              8
185*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_EQUIV            9
186*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_NOOP             10
187*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_OR_INVERTED      11
188*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_COPY             12
189*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_OR_REVERSE       13
190*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_OR               14
191*d83cc019SAndroid Build Coastguard Worker #define BRW_LOGICOPFUNCTION_SET              15
192*d83cc019SAndroid Build Coastguard Worker 
193*d83cc019SAndroid Build Coastguard Worker #define BRW_MAPFILTER_NEAREST        0x0
194*d83cc019SAndroid Build Coastguard Worker #define BRW_MAPFILTER_LINEAR         0x1
195*d83cc019SAndroid Build Coastguard Worker #define BRW_MAPFILTER_ANISOTROPIC    0x2
196*d83cc019SAndroid Build Coastguard Worker 
197*d83cc019SAndroid Build Coastguard Worker #define BRW_MIPFILTER_NONE        0
198*d83cc019SAndroid Build Coastguard Worker #define BRW_MIPFILTER_NEAREST     1
199*d83cc019SAndroid Build Coastguard Worker #define BRW_MIPFILTER_LINEAR      3
200*d83cc019SAndroid Build Coastguard Worker 
201*d83cc019SAndroid Build Coastguard Worker #define BRW_ADDRESS_ROUNDING_ENABLE_U_MAG	0x20
202*d83cc019SAndroid Build Coastguard Worker #define BRW_ADDRESS_ROUNDING_ENABLE_U_MIN	0x10
203*d83cc019SAndroid Build Coastguard Worker #define BRW_ADDRESS_ROUNDING_ENABLE_V_MAG	0x08
204*d83cc019SAndroid Build Coastguard Worker #define BRW_ADDRESS_ROUNDING_ENABLE_V_MIN	0x04
205*d83cc019SAndroid Build Coastguard Worker #define BRW_ADDRESS_ROUNDING_ENABLE_R_MAG	0x02
206*d83cc019SAndroid Build Coastguard Worker #define BRW_ADDRESS_ROUNDING_ENABLE_R_MIN	0x01
207*d83cc019SAndroid Build Coastguard Worker 
208*d83cc019SAndroid Build Coastguard Worker #define BRW_POLYGON_FRONT_FACING     0
209*d83cc019SAndroid Build Coastguard Worker #define BRW_POLYGON_BACK_FACING      1
210*d83cc019SAndroid Build Coastguard Worker 
211*d83cc019SAndroid Build Coastguard Worker #define BRW_PREFILTER_ALWAYS     0x0
212*d83cc019SAndroid Build Coastguard Worker #define BRW_PREFILTER_NEVER      0x1
213*d83cc019SAndroid Build Coastguard Worker #define BRW_PREFILTER_LESS       0x2
214*d83cc019SAndroid Build Coastguard Worker #define BRW_PREFILTER_EQUAL      0x3
215*d83cc019SAndroid Build Coastguard Worker #define BRW_PREFILTER_LEQUAL     0x4
216*d83cc019SAndroid Build Coastguard Worker #define BRW_PREFILTER_GREATER    0x5
217*d83cc019SAndroid Build Coastguard Worker #define BRW_PREFILTER_NOTEQUAL   0x6
218*d83cc019SAndroid Build Coastguard Worker #define BRW_PREFILTER_GEQUAL     0x7
219*d83cc019SAndroid Build Coastguard Worker 
220*d83cc019SAndroid Build Coastguard Worker #define BRW_PROVOKING_VERTEX_0    0
221*d83cc019SAndroid Build Coastguard Worker #define BRW_PROVOKING_VERTEX_1    1
222*d83cc019SAndroid Build Coastguard Worker #define BRW_PROVOKING_VERTEX_2    2
223*d83cc019SAndroid Build Coastguard Worker 
224*d83cc019SAndroid Build Coastguard Worker #define BRW_RASTRULE_UPPER_LEFT  0
225*d83cc019SAndroid Build Coastguard Worker #define BRW_RASTRULE_UPPER_RIGHT 1
226*d83cc019SAndroid Build Coastguard Worker /* These are listed as "Reserved, but not seen as useful"
227*d83cc019SAndroid Build Coastguard Worker  * in Intel documentation (page 212, "Point Rasterization Rule",
228*d83cc019SAndroid Build Coastguard Worker  * section 7.4 "SF Pipeline State Summary", of document
229*d83cc019SAndroid Build Coastguard Worker  * "Intel® 965 Express Chipset Family and Intel® G35 Express
230*d83cc019SAndroid Build Coastguard Worker  * Chipset Graphics Controller Programmer's Reference Manual,
231*d83cc019SAndroid Build Coastguard Worker  * Volume 2: 3D/Media", Revision 1.0b as of January 2008,
232*d83cc019SAndroid Build Coastguard Worker  * available at
233*d83cc019SAndroid Build Coastguard Worker  *     http://intellinuxgraphics.org/documentation.html
234*d83cc019SAndroid Build Coastguard Worker  * at the time of this writing).
235*d83cc019SAndroid Build Coastguard Worker  *
236*d83cc019SAndroid Build Coastguard Worker  * These appear to be supported on at least some
237*d83cc019SAndroid Build Coastguard Worker  * i965-family devices, and the BRW_RASTRULE_LOWER_RIGHT
238*d83cc019SAndroid Build Coastguard Worker  * is useful when using OpenGL to render to a FBO
239*d83cc019SAndroid Build Coastguard Worker  * (which has the pixel coordinate Y orientation inverted
240*d83cc019SAndroid Build Coastguard Worker  * with respect to the normal OpenGL pixel coordinate system).
241*d83cc019SAndroid Build Coastguard Worker  */
242*d83cc019SAndroid Build Coastguard Worker #define BRW_RASTRULE_LOWER_LEFT  2
243*d83cc019SAndroid Build Coastguard Worker #define BRW_RASTRULE_LOWER_RIGHT 3
244*d83cc019SAndroid Build Coastguard Worker 
245*d83cc019SAndroid Build Coastguard Worker #define BRW_RENDERTARGET_CLAMPRANGE_UNORM    0
246*d83cc019SAndroid Build Coastguard Worker #define BRW_RENDERTARGET_CLAMPRANGE_SNORM    1
247*d83cc019SAndroid Build Coastguard Worker #define BRW_RENDERTARGET_CLAMPRANGE_FORMAT   2
248*d83cc019SAndroid Build Coastguard Worker 
249*d83cc019SAndroid Build Coastguard Worker #define BRW_STENCILOP_KEEP               0
250*d83cc019SAndroid Build Coastguard Worker #define BRW_STENCILOP_ZERO               1
251*d83cc019SAndroid Build Coastguard Worker #define BRW_STENCILOP_REPLACE            2
252*d83cc019SAndroid Build Coastguard Worker #define BRW_STENCILOP_INCRSAT            3
253*d83cc019SAndroid Build Coastguard Worker #define BRW_STENCILOP_DECRSAT            4
254*d83cc019SAndroid Build Coastguard Worker #define BRW_STENCILOP_INCR               5
255*d83cc019SAndroid Build Coastguard Worker #define BRW_STENCILOP_DECR               6
256*d83cc019SAndroid Build Coastguard Worker #define BRW_STENCILOP_INVERT             7
257*d83cc019SAndroid Build Coastguard Worker 
258*d83cc019SAndroid Build Coastguard Worker /* Surface state DW0 */
259*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_RC_READ_WRITE	(1 << 8)
260*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_MIPLAYOUT_SHIFT	10
261*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_MIPMAPLAYOUT_BELOW   0
262*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_MIPMAPLAYOUT_RIGHT   1
263*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_CUBEFACE_ENABLES	0x3f
264*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_BLEND_ENABLED	(1 << 13)
265*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_WRITEDISABLE_B_SHIFT	14
266*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_WRITEDISABLE_G_SHIFT	15
267*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_WRITEDISABLE_R_SHIFT	16
268*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_WRITEDISABLE_A_SHIFT	17
269*d83cc019SAndroid Build Coastguard Worker 
270*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32A32_FLOAT             0x000
271*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32A32_SINT              0x001
272*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32A32_UINT              0x002
273*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32A32_UNORM             0x003
274*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32A32_SNORM             0x004
275*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R64G64_FLOAT                   0x005
276*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32X32_FLOAT             0x006
277*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32A32_SSCALED           0x007
278*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32A32_USCALED           0x008
279*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32A32_SFIXED            0x020
280*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32_FLOAT                0x040
281*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32_SINT                 0x041
282*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32_UINT                 0x042
283*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32_UNORM                0x043
284*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32_SNORM                0x044
285*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32_SSCALED              0x045
286*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32_USCALED              0x046
287*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32B32_SFIXED               0x050
288*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16A16_UNORM             0x080
289*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16A16_SNORM             0x081
290*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16A16_SINT              0x082
291*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16A16_UINT              0x083
292*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16A16_FLOAT             0x084
293*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32_FLOAT                   0x085
294*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32_SINT                    0x086
295*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32_UINT                    0x087
296*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32_FLOAT_X8X24_TYPELESS       0x088
297*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_X32_TYPELESS_G8X24_UINT        0x089
298*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L32A32_FLOAT                   0x08A
299*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32_UNORM                   0x08B
300*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32_SNORM                   0x08C
301*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R64_FLOAT                      0x08D
302*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16X16_UNORM             0x08E
303*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16X16_FLOAT             0x08F
304*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_A32X32_FLOAT                   0x090
305*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L32X32_FLOAT                   0x091
306*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_I32X32_FLOAT                   0x092
307*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16A16_SSCALED           0x093
308*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16A16_USCALED           0x094
309*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32_SSCALED                 0x095
310*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32_USCALED                 0x096
311*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32G32_SFIXED                  0x0A0
312*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B8G8R8A8_UNORM                 0x0C0
313*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B8G8R8A8_UNORM_SRGB            0x0C1
314*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R10G10B10A2_UNORM              0x0C2
315*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R10G10B10A2_UNORM_SRGB         0x0C3
316*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R10G10B10A2_UINT               0x0C4
317*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R10G10B10_SNORM_A2_UNORM       0x0C5
318*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8A8_UNORM                 0x0C7
319*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8A8_UNORM_SRGB            0x0C8
320*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8A8_SNORM                 0x0C9
321*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8A8_SINT                  0x0CA
322*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8A8_UINT                  0x0CB
323*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16_UNORM                   0x0CC
324*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16_SNORM                   0x0CD
325*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16_SINT                    0x0CE
326*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16_UINT                    0x0CF
327*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16_FLOAT                   0x0D0
328*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B10G10R10A2_UNORM              0x0D1
329*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B10G10R10A2_UNORM_SRGB         0x0D2
330*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R11G11B10_FLOAT                0x0D3
331*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32_SINT                       0x0D6
332*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32_UINT                       0x0D7
333*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32_FLOAT                      0x0D8
334*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R24_UNORM_X8_TYPELESS          0x0D9
335*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_X24_TYPELESS_G8_UINT           0x0DA
336*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L16A16_UNORM                   0x0DF
337*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_I24X8_UNORM                    0x0E0
338*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L24X8_UNORM                    0x0E1
339*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_A24X8_UNORM                    0x0E2
340*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_I32_FLOAT                      0x0E3
341*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L32_FLOAT                      0x0E4
342*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_A32_FLOAT                      0x0E5
343*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B8G8R8X8_UNORM                 0x0E9
344*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B8G8R8X8_UNORM_SRGB            0x0EA
345*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8X8_UNORM                 0x0EB
346*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8X8_UNORM_SRGB            0x0EC
347*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R9G9B9E5_SHAREDEXP             0x0ED
348*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B10G10R10X2_UNORM              0x0EE
349*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L16A16_FLOAT                   0x0F0
350*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32_UNORM                      0x0F1
351*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32_SNORM                      0x0F2
352*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R10G10B10X2_USCALED            0x0F3
353*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8A8_SSCALED               0x0F4
354*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8A8_USCALED               0x0F5
355*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16_SSCALED                 0x0F6
356*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16_USCALED                 0x0F7
357*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32_SSCALED                    0x0F8
358*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32_USCALED                    0x0F9
359*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B5G6R5_UNORM                   0x100
360*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B5G6R5_UNORM_SRGB              0x101
361*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B5G5R5A1_UNORM                 0x102
362*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B5G5R5A1_UNORM_SRGB            0x103
363*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B4G4R4A4_UNORM                 0x104
364*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B4G4R4A4_UNORM_SRGB            0x105
365*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8_UNORM                     0x106
366*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8_SNORM                     0x107
367*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8_SINT                      0x108
368*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8_UINT                      0x109
369*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16_UNORM                      0x10A
370*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16_SNORM                      0x10B
371*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16_SINT                       0x10C
372*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16_UINT                       0x10D
373*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16_FLOAT                      0x10E
374*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_I16_UNORM                      0x111
375*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L16_UNORM                      0x112
376*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_A16_UNORM                      0x113
377*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L8A8_UNORM                     0x114
378*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_I16_FLOAT                      0x115
379*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L16_FLOAT                      0x116
380*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_A16_FLOAT                      0x117
381*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L8A8_UNORM_SRGB                0x118
382*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R5G5_SNORM_B6_UNORM            0x119
383*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B5G5R5X1_UNORM                 0x11A
384*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B5G5R5X1_UNORM_SRGB            0x11B
385*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8_SSCALED                   0x11C
386*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8_USCALED                   0x11D
387*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16_SSCALED                    0x11E
388*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16_USCALED                    0x11F
389*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8_UNORM                       0x140
390*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8_SNORM                       0x141
391*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8_SINT                        0x142
392*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8_UINT                        0x143
393*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_A8_UNORM                       0x144
394*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_I8_UNORM                       0x145
395*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L8_UNORM                       0x146
396*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_P4A4_UNORM                     0x147
397*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_A4P4_UNORM                     0x148
398*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8_SSCALED                     0x149
399*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8_USCALED                     0x14A
400*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_L8_UNORM_SRGB                  0x14C
401*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_DXT1_RGB_SRGB                  0x180
402*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R1_UINT                        0x181
403*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_YCRCB_NORMAL                   0x182
404*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_YCRCB_SWAPUVY                  0x183
405*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_BC1_UNORM                      0x186
406*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_BC2_UNORM                      0x187
407*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_BC3_UNORM                      0x188
408*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_BC4_UNORM                      0x189
409*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_BC5_UNORM                      0x18A
410*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_BC1_UNORM_SRGB                 0x18B
411*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_BC2_UNORM_SRGB                 0x18C
412*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_BC3_UNORM_SRGB                 0x18D
413*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_MONO8                          0x18E
414*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_YCRCB_SWAPUV                   0x18F
415*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_YCRCB_SWAPY                    0x190
416*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_DXT1_RGB                       0x191
417*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_FXT1                           0x192
418*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8_UNORM                   0x193
419*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8_SNORM                   0x194
420*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8_SSCALED                 0x195
421*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R8G8B8_USCALED                 0x196
422*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R64G64B64A64_FLOAT             0x197
423*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R64G64B64_FLOAT                0x198
424*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_BC4_SNORM                      0x199
425*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_BC5_SNORM                      0x19A
426*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16_UNORM                0x19C
427*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16_SNORM                0x19D
428*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16_SSCALED              0x19E
429*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R16G16B16_USCALED              0x19F
430*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R32_SFIXED                     0x1B2
431*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R10G10B10A2_SNORM              0x1B3
432*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R10G10B10A2_USCALED            0x1B4
433*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R10G10B10A2_SSCALED            0x1B5
434*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_R10G10B10A2_SINT               0x1B6
435*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B10G10R10A2_SNORM              0x1B7
436*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B10G10R10A2_USCALED            0x1B8
437*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B10G10R10A2_SSCALED            0x1B9
438*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B10G10R10A2_UINT               0x1BA
439*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACEFORMAT_B10G10R10A2_SINT               0x1BB
440*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_FORMAT_SHIFT	18
441*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_FORMAT_MASK		INTEL_MASK(26, 18)
442*d83cc019SAndroid Build Coastguard Worker 
443*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACERETURNFORMAT_FLOAT32  0
444*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACERETURNFORMAT_S1       1
445*d83cc019SAndroid Build Coastguard Worker 
446*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_TYPE_SHIFT		29
447*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_TYPE_MASK		INTEL_MASK(31, 29)
448*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_1D      0
449*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_2D      1
450*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_3D      2
451*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_CUBE    3
452*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_BUFFER  4
453*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_NULL    7
454*d83cc019SAndroid Build Coastguard Worker 
455*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_IS_ARRAY           (1 << 28)
456*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_VALIGN_2           (0 << 16)
457*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_VALIGN_4           (1 << 16)
458*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_HALIGN_4           (0 << 15)
459*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_HALIGN_8           (1 << 15)
460*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_TILING_NONE        (0 << 13)
461*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_TILING_X           (2 << 13)
462*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_TILING_Y           (3 << 13)
463*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_ARYSPC_FULL	(0 << 10)
464*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_ARYSPC_LOD0	(1 << 10)
465*d83cc019SAndroid Build Coastguard Worker 
466*d83cc019SAndroid Build Coastguard Worker /* Surface state DW2 */
467*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_HEIGHT_SHIFT	19
468*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_HEIGHT_MASK		INTEL_MASK(31, 19)
469*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_WIDTH_SHIFT		6
470*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_WIDTH_MASK		INTEL_MASK(18, 6)
471*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_LOD_SHIFT		2
472*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_LOD_MASK		INTEL_MASK(5, 2)
473*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_HEIGHT_SHIFT       16
474*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_HEIGHT_MASK        INTEL_MASK(29, 16)
475*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_WIDTH_SHIFT        0
476*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_WIDTH_MASK         INTEL_MASK(13, 0)
477*d83cc019SAndroid Build Coastguard Worker 
478*d83cc019SAndroid Build Coastguard Worker /* Surface state DW3 */
479*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_DEPTH_SHIFT		21
480*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_DEPTH_MASK		INTEL_MASK(31, 21)
481*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_PITCH_SHIFT		3
482*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_PITCH_MASK		INTEL_MASK(19, 3)
483*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_TILED		(1 << 1)
484*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_TILED_Y		(1 << 0)
485*d83cc019SAndroid Build Coastguard Worker 
486*d83cc019SAndroid Build Coastguard Worker /* Surface state DW4 */
487*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_MIN_LOD_SHIFT	28
488*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_MIN_LOD_MASK	INTEL_MASK(31, 28)
489*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_MULTISAMPLECOUNT_1  (0 << 4)
490*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_MULTISAMPLECOUNT_4  (2 << 4)
491*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_MULTISAMPLECOUNT_1         (0 << 3)
492*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_MULTISAMPLECOUNT_4         (2 << 3)
493*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_MULTISAMPLECOUNT_8         (3 << 3)
494*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_MSFMT_MSS                  (0 << 6)
495*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_MSFMT_DEPTH_STENCIL        (1 << 6)
496*d83cc019SAndroid Build Coastguard Worker 
497*d83cc019SAndroid Build Coastguard Worker /* Surface state DW5 */
498*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_X_OFFSET_SHIFT		25
499*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_X_OFFSET_MASK		INTEL_MASK(31, 25)
500*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_VERTICAL_ALIGN_ENABLE	(1 << 24)
501*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_Y_OFFSET_SHIFT		20
502*d83cc019SAndroid Build Coastguard Worker #define BRW_SURFACE_Y_OFFSET_MASK		INTEL_MASK(23, 20)
503*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_MIN_LOD_SHIFT              4
504*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_MIN_LOD_MASK               INTEL_MASK(7, 4)
505*d83cc019SAndroid Build Coastguard Worker 
506*d83cc019SAndroid Build Coastguard Worker /* Surface state DW6 */
507*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_MCS_ENABLE                 (1 << 0)
508*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_MCS_PITCH_SHIFT            3
509*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_MCS_PITCH_MASK             INTEL_MASK(11, 3)
510*d83cc019SAndroid Build Coastguard Worker 
511*d83cc019SAndroid Build Coastguard Worker /* Surface state DW7 */
512*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_SCS_R_SHIFT                25
513*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_SCS_R_MASK                 INTEL_MASK(27, 25)
514*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_SCS_G_SHIFT                22
515*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_SCS_G_MASK                 INTEL_MASK(24, 22)
516*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_SCS_B_SHIFT                19
517*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_SCS_B_MASK                 INTEL_MASK(21, 19)
518*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_SCS_A_SHIFT                16
519*d83cc019SAndroid Build Coastguard Worker #define GEN7_SURFACE_SCS_A_MASK                 INTEL_MASK(18, 16)
520*d83cc019SAndroid Build Coastguard Worker 
521*d83cc019SAndroid Build Coastguard Worker /* The actual swizzle values/what channel to use */
522*d83cc019SAndroid Build Coastguard Worker #define HSW_SCS_ZERO                     0
523*d83cc019SAndroid Build Coastguard Worker #define HSW_SCS_ONE                      1
524*d83cc019SAndroid Build Coastguard Worker #define HSW_SCS_RED                      4
525*d83cc019SAndroid Build Coastguard Worker #define HSW_SCS_GREEN                    5
526*d83cc019SAndroid Build Coastguard Worker #define HSW_SCS_BLUE                     6
527*d83cc019SAndroid Build Coastguard Worker #define HSW_SCS_ALPHA                    7
528*d83cc019SAndroid Build Coastguard Worker 
529*d83cc019SAndroid Build Coastguard Worker #define BRW_TEXCOORDMODE_WRAP            0
530*d83cc019SAndroid Build Coastguard Worker #define BRW_TEXCOORDMODE_MIRROR          1
531*d83cc019SAndroid Build Coastguard Worker #define BRW_TEXCOORDMODE_CLAMP           2
532*d83cc019SAndroid Build Coastguard Worker #define BRW_TEXCOORDMODE_CUBE            3
533*d83cc019SAndroid Build Coastguard Worker #define BRW_TEXCOORDMODE_CLAMP_BORDER    4
534*d83cc019SAndroid Build Coastguard Worker #define BRW_TEXCOORDMODE_MIRROR_ONCE     5
535*d83cc019SAndroid Build Coastguard Worker 
536*d83cc019SAndroid Build Coastguard Worker #define BRW_THREAD_PRIORITY_NORMAL   0
537*d83cc019SAndroid Build Coastguard Worker #define BRW_THREAD_PRIORITY_HIGH     1
538*d83cc019SAndroid Build Coastguard Worker 
539*d83cc019SAndroid Build Coastguard Worker #define BRW_TILEWALK_XMAJOR                 0
540*d83cc019SAndroid Build Coastguard Worker #define BRW_TILEWALK_YMAJOR                 1
541*d83cc019SAndroid Build Coastguard Worker 
542*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTEX_SUBPIXEL_PRECISION_8BITS  0
543*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTEX_SUBPIXEL_PRECISION_4BITS  1
544*d83cc019SAndroid Build Coastguard Worker 
545*d83cc019SAndroid Build Coastguard Worker /* Execution Unit (EU) defines
546*d83cc019SAndroid Build Coastguard Worker  */
547*d83cc019SAndroid Build Coastguard Worker 
548*d83cc019SAndroid Build Coastguard Worker #define BRW_ALIGN_1   0
549*d83cc019SAndroid Build Coastguard Worker #define BRW_ALIGN_16  1
550*d83cc019SAndroid Build Coastguard Worker 
551*d83cc019SAndroid Build Coastguard Worker #define BRW_ADDRESS_DIRECT                        0
552*d83cc019SAndroid Build Coastguard Worker #define BRW_ADDRESS_REGISTER_INDIRECT_REGISTER    1
553*d83cc019SAndroid Build Coastguard Worker 
554*d83cc019SAndroid Build Coastguard Worker #define BRW_CHANNEL_X     0
555*d83cc019SAndroid Build Coastguard Worker #define BRW_CHANNEL_Y     1
556*d83cc019SAndroid Build Coastguard Worker #define BRW_CHANNEL_Z     2
557*d83cc019SAndroid Build Coastguard Worker #define BRW_CHANNEL_W     3
558*d83cc019SAndroid Build Coastguard Worker 
559*d83cc019SAndroid Build Coastguard Worker enum brw_compression {
560*d83cc019SAndroid Build Coastguard Worker    BRW_COMPRESSION_NONE       = 0,
561*d83cc019SAndroid Build Coastguard Worker    BRW_COMPRESSION_2NDHALF    = 1,
562*d83cc019SAndroid Build Coastguard Worker    BRW_COMPRESSION_COMPRESSED = 2,
563*d83cc019SAndroid Build Coastguard Worker };
564*d83cc019SAndroid Build Coastguard Worker 
565*d83cc019SAndroid Build Coastguard Worker #define GEN6_COMPRESSION_1Q		0
566*d83cc019SAndroid Build Coastguard Worker #define GEN6_COMPRESSION_2Q		1
567*d83cc019SAndroid Build Coastguard Worker #define GEN6_COMPRESSION_3Q		2
568*d83cc019SAndroid Build Coastguard Worker #define GEN6_COMPRESSION_4Q		3
569*d83cc019SAndroid Build Coastguard Worker #define GEN6_COMPRESSION_1H		0
570*d83cc019SAndroid Build Coastguard Worker #define GEN6_COMPRESSION_2H		2
571*d83cc019SAndroid Build Coastguard Worker 
572*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_NONE  0
573*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_Z     1
574*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_NZ    2
575*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_EQ    1	/* Z */
576*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_NEQ   2	/* NZ */
577*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_G     3
578*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_GE    4
579*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_L     5
580*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_LE    6
581*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_R     7
582*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_O     8
583*d83cc019SAndroid Build Coastguard Worker #define BRW_CONDITIONAL_U     9
584*d83cc019SAndroid Build Coastguard Worker 
585*d83cc019SAndroid Build Coastguard Worker #define BRW_DEBUG_NONE        0
586*d83cc019SAndroid Build Coastguard Worker #define BRW_DEBUG_BREAKPOINT  1
587*d83cc019SAndroid Build Coastguard Worker 
588*d83cc019SAndroid Build Coastguard Worker #define BRW_DEPENDENCY_NORMAL         0
589*d83cc019SAndroid Build Coastguard Worker #define BRW_DEPENDENCY_NOTCLEARED     1
590*d83cc019SAndroid Build Coastguard Worker #define BRW_DEPENDENCY_NOTCHECKED     2
591*d83cc019SAndroid Build Coastguard Worker #define BRW_DEPENDENCY_DISABLE        3
592*d83cc019SAndroid Build Coastguard Worker 
593*d83cc019SAndroid Build Coastguard Worker #define BRW_EXECUTE_1     0
594*d83cc019SAndroid Build Coastguard Worker #define BRW_EXECUTE_2     1
595*d83cc019SAndroid Build Coastguard Worker #define BRW_EXECUTE_4     2
596*d83cc019SAndroid Build Coastguard Worker #define BRW_EXECUTE_8     3
597*d83cc019SAndroid Build Coastguard Worker #define BRW_EXECUTE_16    4
598*d83cc019SAndroid Build Coastguard Worker #define BRW_EXECUTE_32    5
599*d83cc019SAndroid Build Coastguard Worker 
600*d83cc019SAndroid Build Coastguard Worker #define BRW_HORIZONTAL_STRIDE_0   0
601*d83cc019SAndroid Build Coastguard Worker #define BRW_HORIZONTAL_STRIDE_1   1
602*d83cc019SAndroid Build Coastguard Worker #define BRW_HORIZONTAL_STRIDE_2   2
603*d83cc019SAndroid Build Coastguard Worker #define BRW_HORIZONTAL_STRIDE_4   3
604*d83cc019SAndroid Build Coastguard Worker 
605*d83cc019SAndroid Build Coastguard Worker #define BRW_INSTRUCTION_NORMAL    0
606*d83cc019SAndroid Build Coastguard Worker #define BRW_INSTRUCTION_SATURATE  1
607*d83cc019SAndroid Build Coastguard Worker 
608*d83cc019SAndroid Build Coastguard Worker #define BRW_MASK_ENABLE   0
609*d83cc019SAndroid Build Coastguard Worker #define BRW_MASK_DISABLE  1
610*d83cc019SAndroid Build Coastguard Worker 
611*d83cc019SAndroid Build Coastguard Worker #define BRW_ACCUMULATOR_WRITE_DISABLE 0
612*d83cc019SAndroid Build Coastguard Worker #define BRW_ACCUMULATOR_WRITE_ENABLE  1
613*d83cc019SAndroid Build Coastguard Worker 
614*d83cc019SAndroid Build Coastguard Worker /** @{
615*d83cc019SAndroid Build Coastguard Worker  *
616*d83cc019SAndroid Build Coastguard Worker  * Gen6 has replaced "mask enable/disable" with WECtrl, which is
617*d83cc019SAndroid Build Coastguard Worker  * effectively the same but much simpler to think about.  Now, there
618*d83cc019SAndroid Build Coastguard Worker  * are two contributors ANDed together to whether channels are
619*d83cc019SAndroid Build Coastguard Worker  * executed: The predication on the instruction, and the channel write
620*d83cc019SAndroid Build Coastguard Worker  * enable.
621*d83cc019SAndroid Build Coastguard Worker  */
622*d83cc019SAndroid Build Coastguard Worker /**
623*d83cc019SAndroid Build Coastguard Worker  * This is the default value.  It means that a channel's write enable is set
624*d83cc019SAndroid Build Coastguard Worker  * if the per-channel IP is pointing at this instruction.
625*d83cc019SAndroid Build Coastguard Worker  */
626*d83cc019SAndroid Build Coastguard Worker #define BRW_WE_NORMAL		0
627*d83cc019SAndroid Build Coastguard Worker /**
628*d83cc019SAndroid Build Coastguard Worker  * This is used like BRW_MASK_DISABLE, and causes all channels to have
629*d83cc019SAndroid Build Coastguard Worker  * their write enable set.  Note that predication still contributes to
630*d83cc019SAndroid Build Coastguard Worker  * whether the channel actually gets written.
631*d83cc019SAndroid Build Coastguard Worker  */
632*d83cc019SAndroid Build Coastguard Worker #define BRW_WE_ALL		1
633*d83cc019SAndroid Build Coastguard Worker /** @} */
634*d83cc019SAndroid Build Coastguard Worker 
635*d83cc019SAndroid Build Coastguard Worker enum opcode {
636*d83cc019SAndroid Build Coastguard Worker    /* These are the actual hardware opcodes. */
637*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_MOV =	1,
638*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_SEL =	2,
639*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_NOT =	4,
640*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_AND =	5,
641*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_OR =	6,
642*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_XOR =	7,
643*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_SHR =	8,
644*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_SHL =	9,
645*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_RSR =	10,
646*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_RSL =	11,
647*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_ASR =	12,
648*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_CMP =	16,
649*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_CMPN =	17,
650*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_F32TO16 = 19,
651*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_F16TO32 = 20,
652*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_BFREV =	23,
653*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_BFE =	24,
654*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_BFI1 =	25,
655*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_BFI2 =	26,
656*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_JMPI =	32,
657*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_BRD =	33,
658*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_IF =	34,
659*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_IFF =	35,
660*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_BRC =	35,
661*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_ELSE =	36,
662*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_ENDIF =	37,
663*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_DO =	38,
664*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_WHILE =	39,
665*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_BREAK =	40,
666*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_CONTINUE = 41,
667*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_HALT =	42,
668*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_MSAVE =	44,
669*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_CALL =	44,
670*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_MRESTORE = 45,
671*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_RET =	45,
672*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_PUSH =	46,
673*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_POP =	47,
674*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_WAIT =	48,
675*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_SEND =	49,
676*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_SENDC =	50,
677*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_MATH =	56,
678*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_ADD =	64,
679*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_MUL =	65,
680*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_AVG =	66,
681*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_FRC =	67,
682*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_RNDU =	68,
683*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_RNDD =	69,
684*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_RNDE =	70,
685*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_RNDZ =	71,
686*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_MAC =	72,
687*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_MACH =	73,
688*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_LZD =	74,
689*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_FBH =	75,
690*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_FBL =	76,
691*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_CBIT =	77,
692*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_ADDC =	78,
693*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_SUBB =	79,
694*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_SAD2 =	80,
695*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_SADA2 =	81,
696*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_DP4 =	84,
697*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_DPH =	85,
698*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_DP3 =	86,
699*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_DP2 =	87,
700*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_DPA2 =	88,
701*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_LINE =	89,
702*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_PLN =	90,
703*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_MAD =	91,
704*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_LRP =	92,
705*d83cc019SAndroid Build Coastguard Worker    BRW_OPCODE_NOP =	126,
706*d83cc019SAndroid Build Coastguard Worker 
707*d83cc019SAndroid Build Coastguard Worker    /* These are compiler backend opcodes that get translated into other
708*d83cc019SAndroid Build Coastguard Worker     * instructions.
709*d83cc019SAndroid Build Coastguard Worker     */
710*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_FB_WRITE = 128,
711*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_RCP,
712*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_RSQ,
713*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_SQRT,
714*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_EXP2,
715*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_LOG2,
716*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_POW,
717*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_INT_QUOTIENT,
718*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_INT_REMAINDER,
719*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_SIN,
720*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_COS,
721*d83cc019SAndroid Build Coastguard Worker 
722*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_TEX,
723*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_TXD,
724*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_TXF,
725*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_TXL,
726*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_TXS,
727*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_TXB,
728*d83cc019SAndroid Build Coastguard Worker 
729*d83cc019SAndroid Build Coastguard Worker    SHADER_OPCODE_SHADER_TIME_ADD,
730*d83cc019SAndroid Build Coastguard Worker 
731*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_DDX,
732*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_DDY,
733*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_PIXEL_X,
734*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_PIXEL_Y,
735*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_CINTERP,
736*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_LINTERP,
737*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_SPILL,
738*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_UNSPILL,
739*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD,
740*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_UNIFORM_PULL_CONSTANT_LOAD_GEN7,
741*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_VARYING_PULL_CONSTANT_LOAD,
742*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_VARYING_PULL_CONSTANT_LOAD_GEN7,
743*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_MOV_DISPATCH_TO_FLAGS,
744*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_DISCARD_JUMP,
745*d83cc019SAndroid Build Coastguard Worker    FS_OPCODE_SET_GLOBAL_OFFSET,
746*d83cc019SAndroid Build Coastguard Worker 
747*d83cc019SAndroid Build Coastguard Worker    VS_OPCODE_URB_WRITE,
748*d83cc019SAndroid Build Coastguard Worker    VS_OPCODE_SCRATCH_READ,
749*d83cc019SAndroid Build Coastguard Worker    VS_OPCODE_SCRATCH_WRITE,
750*d83cc019SAndroid Build Coastguard Worker    VS_OPCODE_PULL_CONSTANT_LOAD,
751*d83cc019SAndroid Build Coastguard Worker };
752*d83cc019SAndroid Build Coastguard Worker 
753*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_NONE             0
754*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_NORMAL           1
755*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN1_ANYV             2
756*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN1_ALLV             3
757*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN1_ANY2H            4
758*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN1_ALL2H            5
759*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN1_ANY4H            6
760*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN1_ALL4H            7
761*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN1_ANY8H            8
762*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN1_ALL8H            9
763*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN1_ANY16H           10
764*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN1_ALL16H           11
765*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN16_REPLICATE_X     2
766*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN16_REPLICATE_Y     3
767*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN16_REPLICATE_Z     4
768*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN16_REPLICATE_W     5
769*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN16_ANY4H           6
770*d83cc019SAndroid Build Coastguard Worker #define BRW_PREDICATE_ALIGN16_ALL4H           7
771*d83cc019SAndroid Build Coastguard Worker 
772*d83cc019SAndroid Build Coastguard Worker #define BRW_ARCHITECTURE_REGISTER_FILE    0
773*d83cc019SAndroid Build Coastguard Worker #define BRW_GENERAL_REGISTER_FILE         1
774*d83cc019SAndroid Build Coastguard Worker #define BRW_MESSAGE_REGISTER_FILE         2
775*d83cc019SAndroid Build Coastguard Worker #define BRW_IMMEDIATE_VALUE               3
776*d83cc019SAndroid Build Coastguard Worker 
777*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_TYPE_UD  0
778*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_TYPE_D   1
779*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_TYPE_UW  2
780*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_TYPE_W   3
781*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_TYPE_UB  4
782*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_TYPE_B   5
783*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_TYPE_VF  5	/* packed float vector, immediates only? */
784*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_TYPE_HF  6
785*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_TYPE_V   6	/* packed int vector, immediates only, uword dest only */
786*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_TYPE_F   7
787*d83cc019SAndroid Build Coastguard Worker 
788*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_3SRC_TYPE_F    0
789*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_3SRC_TYPE_D    1
790*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_3SRC_TYPE_UD   2
791*d83cc019SAndroid Build Coastguard Worker #define BRW_REGISTER_3SRC_TYPE_DF   3
792*d83cc019SAndroid Build Coastguard Worker 
793*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_NULL                  0x00
794*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_ADDRESS               0x10
795*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_ACCUMULATOR           0x20
796*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_FLAG                  0x30
797*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_MASK                  0x40
798*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_MASK_STACK            0x50
799*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_MASK_STACK_DEPTH      0x60
800*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_STATE                 0x70
801*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_CONTROL               0x80
802*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_NOTIFICATION_COUNT    0x90
803*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_IP                    0xA0
804*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_TDR                   0xB0
805*d83cc019SAndroid Build Coastguard Worker #define BRW_ARF_TIMESTAMP             0xC0
806*d83cc019SAndroid Build Coastguard Worker 
807*d83cc019SAndroid Build Coastguard Worker #define BRW_MRF_COMPR4			(1 << 7)
808*d83cc019SAndroid Build Coastguard Worker 
809*d83cc019SAndroid Build Coastguard Worker #define BRW_AMASK   0
810*d83cc019SAndroid Build Coastguard Worker #define BRW_IMASK   1
811*d83cc019SAndroid Build Coastguard Worker #define BRW_LMASK   2
812*d83cc019SAndroid Build Coastguard Worker #define BRW_CMASK   3
813*d83cc019SAndroid Build Coastguard Worker 
814*d83cc019SAndroid Build Coastguard Worker 
815*d83cc019SAndroid Build Coastguard Worker 
816*d83cc019SAndroid Build Coastguard Worker #define BRW_THREAD_NORMAL     0
817*d83cc019SAndroid Build Coastguard Worker #define BRW_THREAD_ATOMIC     1
818*d83cc019SAndroid Build Coastguard Worker #define BRW_THREAD_SWITCH     2
819*d83cc019SAndroid Build Coastguard Worker 
820*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_0                 0
821*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_1                 1
822*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_2                 2
823*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_4                 3
824*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_8                 4
825*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_16                5
826*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_32                6
827*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_64                7
828*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_128               8
829*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_256               9
830*d83cc019SAndroid Build Coastguard Worker #define BRW_VERTICAL_STRIDE_ONE_DIMENSIONAL   0xF
831*d83cc019SAndroid Build Coastguard Worker 
832*d83cc019SAndroid Build Coastguard Worker #define BRW_WIDTH_1       0
833*d83cc019SAndroid Build Coastguard Worker #define BRW_WIDTH_2       1
834*d83cc019SAndroid Build Coastguard Worker #define BRW_WIDTH_4       2
835*d83cc019SAndroid Build Coastguard Worker #define BRW_WIDTH_8       3
836*d83cc019SAndroid Build Coastguard Worker #define BRW_WIDTH_16      4
837*d83cc019SAndroid Build Coastguard Worker 
838*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_1K      0
839*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_2K      1
840*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_4K      2
841*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_8K      3
842*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_16K     4
843*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_32K     5
844*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_64K     6
845*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_128K    7
846*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_256K    8
847*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_512K    9
848*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_1M      10
849*d83cc019SAndroid Build Coastguard Worker #define BRW_STATELESS_BUFFER_BOUNDARY_2M      11
850*d83cc019SAndroid Build Coastguard Worker 
851*d83cc019SAndroid Build Coastguard Worker #define BRW_POLYGON_FACING_FRONT      0
852*d83cc019SAndroid Build Coastguard Worker #define BRW_POLYGON_FACING_BACK       1
853*d83cc019SAndroid Build Coastguard Worker 
854*d83cc019SAndroid Build Coastguard Worker /**
855*d83cc019SAndroid Build Coastguard Worker  * Message target: Shared Function ID for where to SEND a message.
856*d83cc019SAndroid Build Coastguard Worker  *
857*d83cc019SAndroid Build Coastguard Worker  * These are enumerated in the ISA reference under "send - Send Message".
858*d83cc019SAndroid Build Coastguard Worker  * In particular, see the following tables:
859*d83cc019SAndroid Build Coastguard Worker  * - G45 PRM, Volume 4, Table 14-15 "Message Descriptor Definition"
860*d83cc019SAndroid Build Coastguard Worker  * - Sandybridge PRM, Volume 4 Part 2, Table 8-16 "Extended Message Descriptor"
861*d83cc019SAndroid Build Coastguard Worker  * - BSpec, Volume 1a (GPU Overview) / Graphics Processing Engine (GPE) /
862*d83cc019SAndroid Build Coastguard Worker  *   Overview / GPE Function IDs
863*d83cc019SAndroid Build Coastguard Worker  */
864*d83cc019SAndroid Build Coastguard Worker enum brw_message_target {
865*d83cc019SAndroid Build Coastguard Worker    BRW_SFID_NULL                     = 0,
866*d83cc019SAndroid Build Coastguard Worker    BRW_SFID_MATH                     = 1, /* Only valid on Gen4-5 */
867*d83cc019SAndroid Build Coastguard Worker    BRW_SFID_SAMPLER                  = 2,
868*d83cc019SAndroid Build Coastguard Worker    BRW_SFID_MESSAGE_GATEWAY          = 3,
869*d83cc019SAndroid Build Coastguard Worker    BRW_SFID_DATAPORT_READ            = 4,
870*d83cc019SAndroid Build Coastguard Worker    BRW_SFID_DATAPORT_WRITE           = 5,
871*d83cc019SAndroid Build Coastguard Worker    BRW_SFID_URB                      = 6,
872*d83cc019SAndroid Build Coastguard Worker    BRW_SFID_THREAD_SPAWNER           = 7,
873*d83cc019SAndroid Build Coastguard Worker 
874*d83cc019SAndroid Build Coastguard Worker    GEN6_SFID_DATAPORT_SAMPLER_CACHE  = 4,
875*d83cc019SAndroid Build Coastguard Worker    GEN6_SFID_DATAPORT_RENDER_CACHE   = 5,
876*d83cc019SAndroid Build Coastguard Worker    GEN6_SFID_VME                     = 8,
877*d83cc019SAndroid Build Coastguard Worker    GEN6_SFID_DATAPORT_CONSTANT_CACHE = 9,
878*d83cc019SAndroid Build Coastguard Worker 
879*d83cc019SAndroid Build Coastguard Worker    GEN7_SFID_DATAPORT_DATA_CACHE     = 10,
880*d83cc019SAndroid Build Coastguard Worker 
881*d83cc019SAndroid Build Coastguard Worker    HSW_SFID_DATAPORT_DATA_CACHE1     = 0x0c,
882*d83cc019SAndroid Build Coastguard Worker    HSW_SFID_CRE                      = 0x0d,
883*d83cc019SAndroid Build Coastguard Worker 
884*d83cc019SAndroid Build Coastguard Worker    /* There is no Sampler data port cache(0x04) on SKL and it is used
885*d83cc019SAndroid Build Coastguard Worker     * as the extension of DP_DC0/DP_DC1.
886*d83cc019SAndroid Build Coastguard Worker     */
887*d83cc019SAndroid Build Coastguard Worker    SKL_SFID_DATAPORT_DATA_CACHE2     = 0x4,
888*d83cc019SAndroid Build Coastguard Worker    /* Data Read only Data port cache */
889*d83cc019SAndroid Build Coastguard Worker    SKL_SFID_DATAPORT_DCR0            = 0x9,
890*d83cc019SAndroid Build Coastguard Worker };
891*d83cc019SAndroid Build Coastguard Worker 
892*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_RETURN_FORMAT_FLOAT32     0
893*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_RETURN_FORMAT_UINT32      2
894*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_RETURN_FORMAT_SINT32      3
895*d83cc019SAndroid Build Coastguard Worker 
896*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE              0
897*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE             0
898*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_BIAS        0
899*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD8_KILLPIX             1
900*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_LOD        1
901*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_LOD         1
902*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_GRADIENTS  2
903*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_GRADIENTS    2
904*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_COMPARE    0
905*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD16_SAMPLE_COMPARE     2
906*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_BIAS_COMPARE 0
907*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD4X2_SAMPLE_LOD_COMPARE 1
908*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD8_SAMPLE_LOD_COMPARE  1
909*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD4X2_RESINFO           2
910*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD16_RESINFO            2
911*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD4X2_LD                3
912*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD8_LD                  3
913*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_MESSAGE_SIMD16_LD                 3
914*d83cc019SAndroid Build Coastguard Worker 
915*d83cc019SAndroid Build Coastguard Worker #define GEN5_SAMPLER_MESSAGE_SAMPLE              0
916*d83cc019SAndroid Build Coastguard Worker #define GEN5_SAMPLER_MESSAGE_SAMPLE_BIAS         1
917*d83cc019SAndroid Build Coastguard Worker #define GEN5_SAMPLER_MESSAGE_SAMPLE_LOD          2
918*d83cc019SAndroid Build Coastguard Worker #define GEN5_SAMPLER_MESSAGE_SAMPLE_COMPARE      3
919*d83cc019SAndroid Build Coastguard Worker #define GEN5_SAMPLER_MESSAGE_SAMPLE_DERIVS       4
920*d83cc019SAndroid Build Coastguard Worker #define GEN5_SAMPLER_MESSAGE_SAMPLE_BIAS_COMPARE 5
921*d83cc019SAndroid Build Coastguard Worker #define GEN5_SAMPLER_MESSAGE_SAMPLE_LOD_COMPARE  6
922*d83cc019SAndroid Build Coastguard Worker #define GEN5_SAMPLER_MESSAGE_SAMPLE_LD           7
923*d83cc019SAndroid Build Coastguard Worker #define GEN5_SAMPLER_MESSAGE_SAMPLE_RESINFO      10
924*d83cc019SAndroid Build Coastguard Worker #define HSW_SAMPLER_MESSAGE_SAMPLE_DERIV_COMPARE 20
925*d83cc019SAndroid Build Coastguard Worker #define GEN7_SAMPLER_MESSAGE_SAMPLE_LD_MCS       29
926*d83cc019SAndroid Build Coastguard Worker #define GEN7_SAMPLER_MESSAGE_SAMPLE_LD2DMS       30
927*d83cc019SAndroid Build Coastguard Worker #define GEN7_SAMPLER_MESSAGE_SAMPLE_LD2DSS       31
928*d83cc019SAndroid Build Coastguard Worker 
929*d83cc019SAndroid Build Coastguard Worker /* for GEN5 only */
930*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_SIMD_MODE_SIMD4X2                   0
931*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_SIMD_MODE_SIMD8                     1
932*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_SIMD_MODE_SIMD16                    2
933*d83cc019SAndroid Build Coastguard Worker #define BRW_SAMPLER_SIMD_MODE_SIMD32_64                 3
934*d83cc019SAndroid Build Coastguard Worker 
935*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_OWORD_BLOCK_1_OWORDLOW   0
936*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_OWORD_BLOCK_1_OWORDHIGH  1
937*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_OWORD_BLOCK_2_OWORDS     2
938*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_OWORD_BLOCK_4_OWORDS     3
939*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_OWORD_BLOCK_8_OWORDS     4
940*d83cc019SAndroid Build Coastguard Worker 
941*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_OWORD_DUAL_BLOCK_1OWORD     0
942*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_OWORD_DUAL_BLOCK_4OWORDS    2
943*d83cc019SAndroid Build Coastguard Worker 
944*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_DWORD_SCATTERED_BLOCK_8DWORDS   2
945*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_DWORD_SCATTERED_BLOCK_16DWORDS  3
946*d83cc019SAndroid Build Coastguard Worker 
947*d83cc019SAndroid Build Coastguard Worker /* This one stays the same across generations. */
948*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_READ_MESSAGE_OWORD_BLOCK_READ          0
949*d83cc019SAndroid Build Coastguard Worker /* GEN4 */
950*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_READ_MESSAGE_OWORD_DUAL_BLOCK_READ     1
951*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_READ_MESSAGE_MEDIA_BLOCK_READ          2
952*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_READ_MESSAGE_DWORD_SCATTERED_READ      3
953*d83cc019SAndroid Build Coastguard Worker /* G45, GEN5 */
954*d83cc019SAndroid Build Coastguard Worker #define G45_DATAPORT_READ_MESSAGE_RENDER_UNORM_READ	    1
955*d83cc019SAndroid Build Coastguard Worker #define G45_DATAPORT_READ_MESSAGE_OWORD_DUAL_BLOCK_READ     2
956*d83cc019SAndroid Build Coastguard Worker #define G45_DATAPORT_READ_MESSAGE_AVC_LOOP_FILTER_READ	    3
957*d83cc019SAndroid Build Coastguard Worker #define G45_DATAPORT_READ_MESSAGE_MEDIA_BLOCK_READ          4
958*d83cc019SAndroid Build Coastguard Worker #define G45_DATAPORT_READ_MESSAGE_DWORD_SCATTERED_READ      6
959*d83cc019SAndroid Build Coastguard Worker /* GEN6 */
960*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_READ_MESSAGE_RENDER_UNORM_READ	    1
961*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_READ_MESSAGE_OWORD_DUAL_BLOCK_READ     2
962*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_READ_MESSAGE_MEDIA_BLOCK_READ          4
963*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_READ_MESSAGE_OWORD_UNALIGN_BLOCK_READ  5
964*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_READ_MESSAGE_DWORD_SCATTERED_READ      6
965*d83cc019SAndroid Build Coastguard Worker 
966*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_READ_TARGET_DATA_CACHE      0
967*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_READ_TARGET_RENDER_CACHE    1
968*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_READ_TARGET_SAMPLER_CACHE   2
969*d83cc019SAndroid Build Coastguard Worker 
970*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE                0
971*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD16_SINGLE_SOURCE_REPLICATED     1
972*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN01         2
973*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_DUAL_SOURCE_SUBSPAN23         3
974*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_RENDER_TARGET_WRITE_SIMD8_SINGLE_SOURCE_SUBSPAN01       4
975*d83cc019SAndroid Build Coastguard Worker 
976*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE                0
977*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE           1
978*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_WRITE_MESSAGE_MEDIA_BLOCK_WRITE                2
979*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_WRITE_MESSAGE_DWORD_SCATTERED_WRITE            3
980*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE              4
981*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_WRITE_MESSAGE_STREAMED_VERTEX_BUFFER_WRITE     5
982*d83cc019SAndroid Build Coastguard Worker #define BRW_DATAPORT_WRITE_MESSAGE_FLUSH_RENDER_CACHE               7
983*d83cc019SAndroid Build Coastguard Worker 
984*d83cc019SAndroid Build Coastguard Worker /* GEN6 */
985*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_WRITE_MESSAGE_DWORD_ATOMIC_WRITE              7
986*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_WRITE_MESSAGE_OWORD_BLOCK_WRITE               8
987*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE          9
988*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_WRITE_MESSAGE_MEDIA_BLOCK_WRITE               10
989*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_WRITE_MESSAGE_DWORD_SCATTERED_WRITE           11
990*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE             12
991*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_WRITE_MESSAGE_STREAMED_VB_WRITE               13
992*d83cc019SAndroid Build Coastguard Worker #define GEN6_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_UNORM_WRITE       14
993*d83cc019SAndroid Build Coastguard Worker 
994*d83cc019SAndroid Build Coastguard Worker /* GEN7 */
995*d83cc019SAndroid Build Coastguard Worker #define GEN7_DATAPORT_WRITE_MESSAGE_OWORD_DUAL_BLOCK_WRITE          10
996*d83cc019SAndroid Build Coastguard Worker #define GEN7_DATAPORT_DC_DWORD_SCATTERED_READ                       3
997*d83cc019SAndroid Build Coastguard Worker 
998*d83cc019SAndroid Build Coastguard Worker /* dataport atomic operations. */
999*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_AND                   1
1000*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_OR                    2
1001*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_XOR                   3
1002*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_MOV                   4
1003*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_INC                   5
1004*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_DEC                   6
1005*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_ADD                   7
1006*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_SUB                   8
1007*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_REVSUB                9
1008*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_IMAX                  10
1009*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_IMIN                  11
1010*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_UMAX                  12
1011*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_UMIN                  13
1012*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_CMPWR                 14
1013*d83cc019SAndroid Build Coastguard Worker #define BRW_AOP_PREDEC                15
1014*d83cc019SAndroid Build Coastguard Worker 
1015*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_INV                              1
1016*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_LOG                              2
1017*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_EXP                              3
1018*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_SQRT                             4
1019*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_RSQ                              5
1020*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_SIN                              6 /* was 7 */
1021*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_COS                              7 /* was 8 */
1022*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_SINCOS                           8 /* was 6 */
1023*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_TAN                              9 /* gen4 */
1024*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_FDIV                             9 /* gen6+ */
1025*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_POW                              10
1026*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_INT_DIV_QUOTIENT_AND_REMAINDER   11
1027*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_INT_DIV_QUOTIENT                 12
1028*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_FUNCTION_INT_DIV_REMAINDER                13
1029*d83cc019SAndroid Build Coastguard Worker 
1030*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_INTEGER_UNSIGNED     0
1031*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_INTEGER_SIGNED       1
1032*d83cc019SAndroid Build Coastguard Worker 
1033*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_PRECISION_FULL        0
1034*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_PRECISION_PARTIAL     1
1035*d83cc019SAndroid Build Coastguard Worker 
1036*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_SATURATE_NONE         0
1037*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_SATURATE_SATURATE     1
1038*d83cc019SAndroid Build Coastguard Worker 
1039*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_DATA_VECTOR  0
1040*d83cc019SAndroid Build Coastguard Worker #define BRW_MATH_DATA_SCALAR  1
1041*d83cc019SAndroid Build Coastguard Worker 
1042*d83cc019SAndroid Build Coastguard Worker #define BRW_URB_OPCODE_WRITE  0
1043*d83cc019SAndroid Build Coastguard Worker 
1044*d83cc019SAndroid Build Coastguard Worker #define BRW_URB_SWIZZLE_NONE          0
1045*d83cc019SAndroid Build Coastguard Worker #define BRW_URB_SWIZZLE_INTERLEAVE    1
1046*d83cc019SAndroid Build Coastguard Worker #define BRW_URB_SWIZZLE_TRANSPOSE     2
1047*d83cc019SAndroid Build Coastguard Worker 
1048*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_1K     0
1049*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_2K     1
1050*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_4K     2
1051*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_8K     3
1052*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_16K    4
1053*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_32K    5
1054*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_64K    6
1055*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_128K   7
1056*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_256K   8
1057*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_512K   9
1058*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_1M     10
1059*d83cc019SAndroid Build Coastguard Worker #define BRW_SCRATCH_SPACE_SIZE_2M     11
1060*d83cc019SAndroid Build Coastguard Worker 
1061*d83cc019SAndroid Build Coastguard Worker 
1062*d83cc019SAndroid Build Coastguard Worker #define CMD_URB_FENCE                 0x6000
1063*d83cc019SAndroid Build Coastguard Worker #define CMD_CS_URB_STATE              0x6001
1064*d83cc019SAndroid Build Coastguard Worker #define CMD_CONST_BUFFER              0x6002
1065*d83cc019SAndroid Build Coastguard Worker 
1066*d83cc019SAndroid Build Coastguard Worker #define CMD_STATE_BASE_ADDRESS        0x6101
1067*d83cc019SAndroid Build Coastguard Worker #define CMD_STATE_SIP                 0x6102
1068*d83cc019SAndroid Build Coastguard Worker #define CMD_PIPELINE_SELECT_965       0x6104
1069*d83cc019SAndroid Build Coastguard Worker #define CMD_PIPELINE_SELECT_GM45      0x6904
1070*d83cc019SAndroid Build Coastguard Worker 
1071*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_PIPELINED_POINTERS		0x7800
1072*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_BINDING_TABLE_POINTERS		0x7801
1073*d83cc019SAndroid Build Coastguard Worker # define GEN6_BINDING_TABLE_MODIFY_VS	(1 << 8)
1074*d83cc019SAndroid Build Coastguard Worker # define GEN6_BINDING_TABLE_MODIFY_GS	(1 << 9)
1075*d83cc019SAndroid Build Coastguard Worker # define GEN6_BINDING_TABLE_MODIFY_PS	(1 << 12)
1076*d83cc019SAndroid Build Coastguard Worker 
1077*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_BINDING_TABLE_POINTERS_VS	0x7826 /* GEN7+ */
1078*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_BINDING_TABLE_POINTERS_HS	0x7827 /* GEN7+ */
1079*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_BINDING_TABLE_POINTERS_DS	0x7828 /* GEN7+ */
1080*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_BINDING_TABLE_POINTERS_GS	0x7829 /* GEN7+ */
1081*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_BINDING_TABLE_POINTERS_PS	0x782A /* GEN7+ */
1082*d83cc019SAndroid Build Coastguard Worker 
1083*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_SAMPLER_STATE_POINTERS		0x7802 /* GEN6+ */
1084*d83cc019SAndroid Build Coastguard Worker # define PS_SAMPLER_STATE_CHANGE				(1 << 12)
1085*d83cc019SAndroid Build Coastguard Worker # define GS_SAMPLER_STATE_CHANGE				(1 << 9)
1086*d83cc019SAndroid Build Coastguard Worker # define VS_SAMPLER_STATE_CHANGE				(1 << 8)
1087*d83cc019SAndroid Build Coastguard Worker /* DW1: VS */
1088*d83cc019SAndroid Build Coastguard Worker /* DW2: GS */
1089*d83cc019SAndroid Build Coastguard Worker /* DW3: PS */
1090*d83cc019SAndroid Build Coastguard Worker 
1091*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_SAMPLER_STATE_POINTERS_VS	0x782B /* GEN7+ */
1092*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_SAMPLER_STATE_POINTERS_GS	0x782E /* GEN7+ */
1093*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_SAMPLER_STATE_POINTERS_PS	0x782F /* GEN7+ */
1094*d83cc019SAndroid Build Coastguard Worker 
1095*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_VERTEX_BUFFERS       0x7808
1096*d83cc019SAndroid Build Coastguard Worker # define BRW_VB0_INDEX_SHIFT		27
1097*d83cc019SAndroid Build Coastguard Worker # define GEN6_VB0_INDEX_SHIFT		26
1098*d83cc019SAndroid Build Coastguard Worker # define BRW_VB0_ACCESS_VERTEXDATA	(0 << 26)
1099*d83cc019SAndroid Build Coastguard Worker # define BRW_VB0_ACCESS_INSTANCEDATA	(1 << 26)
1100*d83cc019SAndroid Build Coastguard Worker # define GEN6_VB0_ACCESS_VERTEXDATA	(0 << 20)
1101*d83cc019SAndroid Build Coastguard Worker # define GEN6_VB0_ACCESS_INSTANCEDATA	(1 << 20)
1102*d83cc019SAndroid Build Coastguard Worker # define GEN7_VB0_ADDRESS_MODIFYENABLE  (1 << 14)
1103*d83cc019SAndroid Build Coastguard Worker # define BRW_VB0_PITCH_SHIFT		0
1104*d83cc019SAndroid Build Coastguard Worker 
1105*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_VERTEX_ELEMENTS      0x7809
1106*d83cc019SAndroid Build Coastguard Worker # define BRW_VE0_INDEX_SHIFT		27
1107*d83cc019SAndroid Build Coastguard Worker # define GEN6_VE0_INDEX_SHIFT		26
1108*d83cc019SAndroid Build Coastguard Worker # define BRW_VE0_FORMAT_SHIFT		16
1109*d83cc019SAndroid Build Coastguard Worker # define BRW_VE0_VALID			(1 << 26)
1110*d83cc019SAndroid Build Coastguard Worker # define GEN6_VE0_VALID			(1 << 25)
1111*d83cc019SAndroid Build Coastguard Worker # define GEN6_VE0_EDGE_FLAG_ENABLE	(1 << 15)
1112*d83cc019SAndroid Build Coastguard Worker # define BRW_VE0_SRC_OFFSET_SHIFT	0
1113*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_NOSTORE	0
1114*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_STORE_SRC	1
1115*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_STORE_0	2
1116*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_STORE_1_FLT	3
1117*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_STORE_1_INT	4
1118*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_STORE_VID	5
1119*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_STORE_IID	6
1120*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_STORE_PID	7
1121*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_0_SHIFT	28
1122*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_1_SHIFT	24
1123*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_2_SHIFT	20
1124*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_COMPONENT_3_SHIFT	16
1125*d83cc019SAndroid Build Coastguard Worker # define BRW_VE1_DST_OFFSET_SHIFT	0
1126*d83cc019SAndroid Build Coastguard Worker 
1127*d83cc019SAndroid Build Coastguard Worker #define CMD_INDEX_BUFFER              0x780a
1128*d83cc019SAndroid Build Coastguard Worker #define GEN4_3DSTATE_VF_STATISTICS		0x780b
1129*d83cc019SAndroid Build Coastguard Worker #define GM45_3DSTATE_VF_STATISTICS		0x680b
1130*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_CC_STATE_POINTERS		0x780e /* GEN6+ */
1131*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_BLEND_STATE_POINTERS		0x7824 /* GEN7+ */
1132*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_DEPTH_STENCIL_STATE_POINTERS	0x7825 /* GEN7+ */
1133*d83cc019SAndroid Build Coastguard Worker 
1134*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_URB				0x7805 /* GEN6 */
1135*d83cc019SAndroid Build Coastguard Worker # define GEN6_URB_VS_SIZE_SHIFT				16
1136*d83cc019SAndroid Build Coastguard Worker # define GEN6_URB_VS_ENTRIES_SHIFT			0
1137*d83cc019SAndroid Build Coastguard Worker # define GEN6_URB_GS_ENTRIES_SHIFT			8
1138*d83cc019SAndroid Build Coastguard Worker # define GEN6_URB_GS_SIZE_SHIFT				0
1139*d83cc019SAndroid Build Coastguard Worker 
1140*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_VF                             0x780c /* GEN7.5+ */
1141*d83cc019SAndroid Build Coastguard Worker #define HSW_CUT_INDEX_ENABLE                            (1 << 8)
1142*d83cc019SAndroid Build Coastguard Worker 
1143*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_URB_VS                         0x7830 /* GEN7+ */
1144*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_URB_HS                         0x7831 /* GEN7+ */
1145*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_URB_DS                         0x7832 /* GEN7+ */
1146*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_URB_GS                         0x7833 /* GEN7+ */
1147*d83cc019SAndroid Build Coastguard Worker # define GEN7_URB_ENTRY_SIZE_SHIFT                      16
1148*d83cc019SAndroid Build Coastguard Worker # define GEN7_URB_STARTING_ADDRESS_SHIFT                25
1149*d83cc019SAndroid Build Coastguard Worker 
1150*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_PUSH_CONSTANT_ALLOC_VS         0x7912 /* GEN7+ */
1151*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_PUSH_CONSTANT_ALLOC_PS         0x7916 /* GEN7+ */
1152*d83cc019SAndroid Build Coastguard Worker # define GEN7_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT         16
1153*d83cc019SAndroid Build Coastguard Worker 
1154*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_VIEWPORT_STATE_POINTERS	0x780d /* GEN6+ */
1155*d83cc019SAndroid Build Coastguard Worker # define GEN6_CC_VIEWPORT_MODIFY			(1 << 12)
1156*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_VIEWPORT_MODIFY			(1 << 11)
1157*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_VIEWPORT_MODIFY			(1 << 10)
1158*d83cc019SAndroid Build Coastguard Worker 
1159*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_VIEWPORT_STATE_POINTERS_CC	0x7823 /* GEN7+ */
1160*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL	0x7821 /* GEN7+ */
1161*d83cc019SAndroid Build Coastguard Worker 
1162*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_SCISSOR_STATE_POINTERS		0x780f /* GEN6+ */
1163*d83cc019SAndroid Build Coastguard Worker 
1164*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_VS				0x7810 /* GEN6+ */
1165*d83cc019SAndroid Build Coastguard Worker /* DW2 */
1166*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_SPF_MODE				(1 << 31)
1167*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_VECTOR_MASK_ENABLE			(1 << 30)
1168*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_SAMPLER_COUNT_SHIFT			27
1169*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_BINDING_TABLE_ENTRY_COUNT_SHIFT	18
1170*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_FLOATING_POINT_MODE_IEEE_754		(0 << 16)
1171*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_FLOATING_POINT_MODE_ALT		(1 << 16)
1172*d83cc019SAndroid Build Coastguard Worker /* DW4 */
1173*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_DISPATCH_START_GRF_SHIFT		20
1174*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_URB_READ_LENGTH_SHIFT			11
1175*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_URB_ENTRY_READ_OFFSET_SHIFT		4
1176*d83cc019SAndroid Build Coastguard Worker /* DW5 */
1177*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_MAX_THREADS_SHIFT			25
1178*d83cc019SAndroid Build Coastguard Worker # define HSW_VS_MAX_THREADS_SHIFT			23
1179*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_STATISTICS_ENABLE			(1 << 10)
1180*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_CACHE_DISABLE				(1 << 1)
1181*d83cc019SAndroid Build Coastguard Worker # define GEN6_VS_ENABLE					(1 << 0)
1182*d83cc019SAndroid Build Coastguard Worker 
1183*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_GS		      		0x7811 /* GEN6+ */
1184*d83cc019SAndroid Build Coastguard Worker /* DW2 */
1185*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_SPF_MODE				(1 << 31)
1186*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_VECTOR_MASK_ENABLE			(1 << 30)
1187*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_SAMPLER_COUNT_SHIFT			27
1188*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_BINDING_TABLE_ENTRY_COUNT_SHIFT	18
1189*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_FLOATING_POINT_MODE_IEEE_754		(0 << 16)
1190*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_FLOATING_POINT_MODE_ALT		(1 << 16)
1191*d83cc019SAndroid Build Coastguard Worker /* DW4 */
1192*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_URB_READ_LENGTH_SHIFT			11
1193*d83cc019SAndroid Build Coastguard Worker # define GEN7_GS_INCLUDE_VERTEX_HANDLES		        (1 << 10)
1194*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_URB_ENTRY_READ_OFFSET_SHIFT		4
1195*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_DISPATCH_START_GRF_SHIFT		0
1196*d83cc019SAndroid Build Coastguard Worker /* DW5 */
1197*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_MAX_THREADS_SHIFT			25
1198*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_STATISTICS_ENABLE			(1 << 10)
1199*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_SO_STATISTICS_ENABLE			(1 << 9)
1200*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_RENDERING_ENABLE			(1 << 8)
1201*d83cc019SAndroid Build Coastguard Worker # define GEN7_GS_ENABLE					(1 << 0)
1202*d83cc019SAndroid Build Coastguard Worker /* DW6 */
1203*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_REORDER				(1 << 30)
1204*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_DISCARD_ADJACENCY			(1 << 29)
1205*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_SVBI_PAYLOAD_ENABLE			(1 << 28)
1206*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_SVBI_POSTINCREMENT_ENABLE		(1 << 27)
1207*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_SVBI_POSTINCREMENT_VALUE_SHIFT		16
1208*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_SVBI_POSTINCREMENT_VALUE_MASK		INTEL_MASK(25, 16)
1209*d83cc019SAndroid Build Coastguard Worker # define GEN6_GS_ENABLE					(1 << 15)
1210*d83cc019SAndroid Build Coastguard Worker 
1211*d83cc019SAndroid Build Coastguard Worker # define BRW_GS_EDGE_INDICATOR_0			(1 << 8)
1212*d83cc019SAndroid Build Coastguard Worker # define BRW_GS_EDGE_INDICATOR_1			(1 << 9)
1213*d83cc019SAndroid Build Coastguard Worker 
1214*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_HS                             0x781B /* GEN7+ */
1215*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_TE                             0x781C /* GEN7+ */
1216*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_DS                             0x781D /* GEN7+ */
1217*d83cc019SAndroid Build Coastguard Worker 
1218*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_CLIP				0x7812 /* GEN6+ */
1219*d83cc019SAndroid Build Coastguard Worker /* DW1 */
1220*d83cc019SAndroid Build Coastguard Worker # define GEN7_CLIP_WINDING_CW                           (0 << 20)
1221*d83cc019SAndroid Build Coastguard Worker # define GEN7_CLIP_WINDING_CCW                          (1 << 20)
1222*d83cc019SAndroid Build Coastguard Worker # define GEN7_CLIP_VERTEX_SUBPIXEL_PRECISION_8          (0 << 19)
1223*d83cc019SAndroid Build Coastguard Worker # define GEN7_CLIP_VERTEX_SUBPIXEL_PRECISION_4          (1 << 19)
1224*d83cc019SAndroid Build Coastguard Worker # define GEN7_CLIP_EARLY_CULL                           (1 << 18)
1225*d83cc019SAndroid Build Coastguard Worker # define GEN7_CLIP_CULLMODE_BOTH                        (0 << 16)
1226*d83cc019SAndroid Build Coastguard Worker # define GEN7_CLIP_CULLMODE_NONE                        (1 << 16)
1227*d83cc019SAndroid Build Coastguard Worker # define GEN7_CLIP_CULLMODE_FRONT                       (2 << 16)
1228*d83cc019SAndroid Build Coastguard Worker # define GEN7_CLIP_CULLMODE_BACK                        (3 << 16)
1229*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_STATISTICS_ENABLE			(1 << 10)
1230*d83cc019SAndroid Build Coastguard Worker /**
1231*d83cc019SAndroid Build Coastguard Worker  * Just does cheap culling based on the clip distance.  Bits must be
1232*d83cc019SAndroid Build Coastguard Worker  * disjoint with USER_CLIP_CLIP_DISTANCE bits.
1233*d83cc019SAndroid Build Coastguard Worker  */
1234*d83cc019SAndroid Build Coastguard Worker # define GEN6_USER_CLIP_CULL_DISTANCES_SHIFT		0
1235*d83cc019SAndroid Build Coastguard Worker /* DW2 */
1236*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_ENABLE				(1 << 31)
1237*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_API_OGL				(0 << 30)
1238*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_API_D3D				(1 << 30)
1239*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_XY_TEST				(1 << 28)
1240*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_Z_TEST				(1 << 27)
1241*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_GB_TEST				(1 << 26)
1242*d83cc019SAndroid Build Coastguard Worker /** 8-bit field of which user clip distances to clip aganist. */
1243*d83cc019SAndroid Build Coastguard Worker # define GEN6_USER_CLIP_CLIP_DISTANCES_SHIFT		16
1244*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_MODE_NORMAL				(0 << 13)
1245*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_MODE_REJECT_ALL			(3 << 13)
1246*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_MODE_ACCEPT_ALL			(4 << 13)
1247*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_PERSPECTIVE_DIVIDE_DISABLE		(1 << 9)
1248*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_NON_PERSPECTIVE_BARYCENTRIC_ENABLE	(1 << 8)
1249*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_TRI_PROVOKE_SHIFT			4
1250*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_LINE_PROVOKE_SHIFT			2
1251*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_TRIFAN_PROVOKE_SHIFT			0
1252*d83cc019SAndroid Build Coastguard Worker /* DW3 */
1253*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_MIN_POINT_WIDTH_SHIFT		17
1254*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_MAX_POINT_WIDTH_SHIFT		6
1255*d83cc019SAndroid Build Coastguard Worker # define GEN6_CLIP_FORCE_ZERO_RTAINDEX			(1 << 5)
1256*d83cc019SAndroid Build Coastguard Worker 
1257*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_SF				0x7813 /* GEN6+ */
1258*d83cc019SAndroid Build Coastguard Worker /* DW1 (for gen6) */
1259*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_NUM_OUTPUTS_SHIFT			22
1260*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_SWIZZLE_ENABLE				(1 << 21)
1261*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_POINT_SPRITE_UPPERLEFT			(0 << 20)
1262*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_POINT_SPRITE_LOWERLEFT			(1 << 20)
1263*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_URB_ENTRY_READ_LENGTH_SHIFT		11
1264*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_URB_ENTRY_READ_OFFSET_SHIFT		4
1265*d83cc019SAndroid Build Coastguard Worker /* DW2 */
1266*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_LEGACY_GLOBAL_DEPTH_BIAS		(1 << 11)
1267*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_STATISTICS_ENABLE			(1 << 10)
1268*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_GLOBAL_DEPTH_OFFSET_SOLID		(1 << 9)
1269*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_GLOBAL_DEPTH_OFFSET_WIREFRAME		(1 << 8)
1270*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_GLOBAL_DEPTH_OFFSET_POINT		(1 << 7)
1271*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_FRONT_SOLID				(0 << 5)
1272*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_FRONT_WIREFRAME			(1 << 5)
1273*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_FRONT_POINT				(2 << 5)
1274*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_BACK_SOLID				(0 << 3)
1275*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_BACK_WIREFRAME				(1 << 3)
1276*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_BACK_POINT				(2 << 3)
1277*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_VIEWPORT_TRANSFORM_ENABLE		(1 << 1)
1278*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_WINDING_CCW				(1 << 0)
1279*d83cc019SAndroid Build Coastguard Worker /* DW3 */
1280*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_LINE_AA_ENABLE				(1 << 31)
1281*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_CULL_BOTH				(0 << 29)
1282*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_CULL_NONE				(1 << 29)
1283*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_CULL_FRONT				(2 << 29)
1284*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_CULL_BACK				(3 << 29)
1285*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_LINE_WIDTH_SHIFT			18 /* U3.7 */
1286*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_LINE_END_CAP_WIDTH_0_5			(0 << 16)
1287*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_LINE_END_CAP_WIDTH_1_0			(1 << 16)
1288*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_LINE_END_CAP_WIDTH_2_0			(2 << 16)
1289*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_LINE_END_CAP_WIDTH_4_0			(3 << 16)
1290*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_SCISSOR_ENABLE				(1 << 11)
1291*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_MSRAST_OFF_PIXEL			(0 << 8)
1292*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_MSRAST_OFF_PATTERN			(1 << 8)
1293*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_MSRAST_ON_PIXEL			(2 << 8)
1294*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_MSRAST_ON_PATTERN			(3 << 8)
1295*d83cc019SAndroid Build Coastguard Worker /* DW4 */
1296*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_TRI_PROVOKE_SHIFT			29
1297*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_LINE_PROVOKE_SHIFT			27
1298*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_TRIFAN_PROVOKE_SHIFT			25
1299*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_LINE_AA_MODE_MANHATTAN			(0 << 14)
1300*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_LINE_AA_MODE_TRUE			(1 << 14)
1301*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_VERTEX_SUBPIXEL_8BITS			(0 << 12)
1302*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_VERTEX_SUBPIXEL_4BITS			(1 << 12)
1303*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_USE_STATE_POINT_WIDTH			(1 << 11)
1304*d83cc019SAndroid Build Coastguard Worker # define GEN6_SF_POINT_WIDTH_SHIFT			0 /* U8.3 */
1305*d83cc019SAndroid Build Coastguard Worker /* DW5: depth offset constant */
1306*d83cc019SAndroid Build Coastguard Worker /* DW6: depth offset scale */
1307*d83cc019SAndroid Build Coastguard Worker /* DW7: depth offset clamp */
1308*d83cc019SAndroid Build Coastguard Worker /* DW8 */
1309*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_1_OVERRIDE_W				(1 << 31)
1310*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_1_OVERRIDE_Z				(1 << 30)
1311*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_1_OVERRIDE_Y				(1 << 29)
1312*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_1_OVERRIDE_X				(1 << 28)
1313*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_1_CONST_SOURCE_SHIFT			25
1314*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_1_SWIZZLE_SHIFT			22
1315*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_1_SOURCE_SHIFT			16
1316*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_0_OVERRIDE_W				(1 << 15)
1317*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_0_OVERRIDE_Z				(1 << 14)
1318*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_0_OVERRIDE_Y				(1 << 13)
1319*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_0_OVERRIDE_X				(1 << 12)
1320*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_0_CONST_SOURCE_SHIFT			9
1321*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_0_SWIZZLE_SHIFT			6
1322*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_0_SOURCE_SHIFT			0
1323*d83cc019SAndroid Build Coastguard Worker 
1324*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_SWIZZLE_INPUTATTR                    0
1325*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_SWIZZLE_INPUTATTR_FACING             1
1326*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_SWIZZLE_INPUTATTR_W                  2
1327*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_SWIZZLE_INPUTATTR_FACING_W           3
1328*d83cc019SAndroid Build Coastguard Worker # define ATTRIBUTE_SWIZZLE_SHIFT                        6
1329*d83cc019SAndroid Build Coastguard Worker 
1330*d83cc019SAndroid Build Coastguard Worker /* DW16: Point sprite texture coordinate enables */
1331*d83cc019SAndroid Build Coastguard Worker /* DW17: Constant interpolation enables */
1332*d83cc019SAndroid Build Coastguard Worker /* DW18: attr 0-7 wrap shortest enables */
1333*d83cc019SAndroid Build Coastguard Worker /* DW19: attr 8-16 wrap shortest enables */
1334*d83cc019SAndroid Build Coastguard Worker 
1335*d83cc019SAndroid Build Coastguard Worker /* On GEN7, many fields of 3DSTATE_SF were split out into a new command:
1336*d83cc019SAndroid Build Coastguard Worker  * 3DSTATE_SBE.  The remaining fields live in different DWords, but retain
1337*d83cc019SAndroid Build Coastguard Worker  * the same bit-offset.  The only new field:
1338*d83cc019SAndroid Build Coastguard Worker  */
1339*d83cc019SAndroid Build Coastguard Worker /* GEN7/DW1: */
1340*d83cc019SAndroid Build Coastguard Worker # define GEN7_SF_DEPTH_BUFFER_SURFACE_FORMAT_SHIFT	12
1341*d83cc019SAndroid Build Coastguard Worker /* GEN7/DW2: */
1342*d83cc019SAndroid Build Coastguard Worker # define HSW_SF_LINE_STIPPLE_ENABLE			14
1343*d83cc019SAndroid Build Coastguard Worker 
1344*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_SBE				0x781F /* GEN7+ */
1345*d83cc019SAndroid Build Coastguard Worker /* DW1 */
1346*d83cc019SAndroid Build Coastguard Worker # define GEN7_SBE_SWIZZLE_CONTROL_MODE			(1 << 28)
1347*d83cc019SAndroid Build Coastguard Worker # define GEN7_SBE_NUM_OUTPUTS_SHIFT			22
1348*d83cc019SAndroid Build Coastguard Worker # define GEN7_SBE_SWIZZLE_ENABLE			(1 << 21)
1349*d83cc019SAndroid Build Coastguard Worker # define GEN7_SBE_POINT_SPRITE_LOWERLEFT		(1 << 20)
1350*d83cc019SAndroid Build Coastguard Worker # define GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT		11
1351*d83cc019SAndroid Build Coastguard Worker # define GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT		4
1352*d83cc019SAndroid Build Coastguard Worker /* DW2-9: Attribute setup (same as DW8-15 of gen6 _3DSTATE_SF) */
1353*d83cc019SAndroid Build Coastguard Worker /* DW10: Point sprite texture coordinate enables */
1354*d83cc019SAndroid Build Coastguard Worker /* DW11: Constant interpolation enables */
1355*d83cc019SAndroid Build Coastguard Worker /* DW12: attr 0-7 wrap shortest enables */
1356*d83cc019SAndroid Build Coastguard Worker /* DW13: attr 8-16 wrap shortest enables */
1357*d83cc019SAndroid Build Coastguard Worker 
1358*d83cc019SAndroid Build Coastguard Worker enum brw_wm_barycentric_interp_mode {
1359*d83cc019SAndroid Build Coastguard Worker    BRW_WM_PERSPECTIVE_PIXEL_BARYCENTRIC		= 0,
1360*d83cc019SAndroid Build Coastguard Worker    BRW_WM_PERSPECTIVE_CENTROID_BARYCENTRIC	= 1,
1361*d83cc019SAndroid Build Coastguard Worker    BRW_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC	= 2,
1362*d83cc019SAndroid Build Coastguard Worker    BRW_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC	= 3,
1363*d83cc019SAndroid Build Coastguard Worker    BRW_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC	= 4,
1364*d83cc019SAndroid Build Coastguard Worker    BRW_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC	= 5,
1365*d83cc019SAndroid Build Coastguard Worker    BRW_WM_BARYCENTRIC_INTERP_MODE_COUNT  = 6
1366*d83cc019SAndroid Build Coastguard Worker };
1367*d83cc019SAndroid Build Coastguard Worker #define BRW_WM_NONPERSPECTIVE_BARYCENTRIC_BITS \
1368*d83cc019SAndroid Build Coastguard Worker    ((1 << BRW_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC) | \
1369*d83cc019SAndroid Build Coastguard Worker     (1 << BRW_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC) | \
1370*d83cc019SAndroid Build Coastguard Worker     (1 << BRW_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC))
1371*d83cc019SAndroid Build Coastguard Worker 
1372*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_WM				0x7814 /* GEN6+ */
1373*d83cc019SAndroid Build Coastguard Worker /* DW1: kernel pointer */
1374*d83cc019SAndroid Build Coastguard Worker /* DW2 */
1375*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_SPF_MODE				(1 << 31)
1376*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_VECTOR_MASK_ENABLE			(1 << 30)
1377*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_SAMPLER_COUNT_SHIFT			27
1378*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT	18
1379*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_FLOATING_POINT_MODE_IEEE_754		(0 << 16)
1380*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_FLOATING_POINT_MODE_ALT		(1 << 16)
1381*d83cc019SAndroid Build Coastguard Worker /* DW3: scratch space */
1382*d83cc019SAndroid Build Coastguard Worker /* DW4 */
1383*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_STATISTICS_ENABLE			(1 << 31)
1384*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_DEPTH_CLEAR				(1 << 30)
1385*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_DEPTH_RESOLVE				(1 << 28)
1386*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_HIERARCHICAL_DEPTH_RESOLVE		(1 << 27)
1387*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_DISPATCH_START_GRF_SHIFT_0		16
1388*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_DISPATCH_START_GRF_SHIFT_1		8
1389*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_DISPATCH_START_GRF_SHIFT_2		0
1390*d83cc019SAndroid Build Coastguard Worker /* DW5 */
1391*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_MAX_THREADS_SHIFT			25
1392*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_KILL_ENABLE				(1 << 22)
1393*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_COMPUTED_DEPTH				(1 << 21)
1394*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_USES_SOURCE_DEPTH			(1 << 20)
1395*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_DISPATCH_ENABLE			(1 << 19)
1396*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_LINE_END_CAP_AA_WIDTH_0_5		(0 << 16)
1397*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_LINE_END_CAP_AA_WIDTH_1_0		(1 << 16)
1398*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_LINE_END_CAP_AA_WIDTH_2_0		(2 << 16)
1399*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_LINE_END_CAP_AA_WIDTH_4_0		(3 << 16)
1400*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_LINE_AA_WIDTH_0_5			(0 << 14)
1401*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_LINE_AA_WIDTH_1_0			(1 << 14)
1402*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_LINE_AA_WIDTH_2_0			(2 << 14)
1403*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_LINE_AA_WIDTH_4_0			(3 << 14)
1404*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_POLYGON_STIPPLE_ENABLE			(1 << 13)
1405*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_LINE_STIPPLE_ENABLE			(1 << 11)
1406*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_OMASK_TO_RENDER_TARGET			(1 << 9)
1407*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_USES_SOURCE_W				(1 << 8)
1408*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_DUAL_SOURCE_BLEND_ENABLE		(1 << 7)
1409*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_32_DISPATCH_ENABLE			(1 << 2)
1410*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_16_DISPATCH_ENABLE			(1 << 1)
1411*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_8_DISPATCH_ENABLE			(1 << 0)
1412*d83cc019SAndroid Build Coastguard Worker /* DW6 */
1413*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_NUM_SF_OUTPUTS_SHIFT			20
1414*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_POSOFFSET_NONE				(0 << 18)
1415*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_POSOFFSET_CENTROID			(2 << 18)
1416*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_POSOFFSET_SAMPLE			(3 << 18)
1417*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_POSITION_ZW_PIXEL			(0 << 16)
1418*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_POSITION_ZW_CENTROID			(2 << 16)
1419*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_POSITION_ZW_SAMPLE			(3 << 16)
1420*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC	(1 << 15)
1421*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC	(1 << 14)
1422*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC	(1 << 13)
1423*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC		(1 << 12)
1424*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_PERSPECTIVE_CENTROID_BARYCENTRIC	(1 << 11)
1425*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_PERSPECTIVE_PIXEL_BARYCENTRIC		(1 << 10)
1426*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_BARYCENTRIC_INTERPOLATION_MODE_SHIFT   10
1427*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_POINT_RASTRULE_UPPER_RIGHT		(1 << 9)
1428*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_MSRAST_OFF_PIXEL			(0 << 1)
1429*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_MSRAST_OFF_PATTERN			(1 << 1)
1430*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_MSRAST_ON_PIXEL			(2 << 1)
1431*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_MSRAST_ON_PATTERN			(3 << 1)
1432*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_MSDISPMODE_PERSAMPLE			(0 << 0)
1433*d83cc019SAndroid Build Coastguard Worker # define GEN6_WM_MSDISPMODE_PERPIXEL			(1 << 0)
1434*d83cc019SAndroid Build Coastguard Worker /* DW7: kernel 1 pointer */
1435*d83cc019SAndroid Build Coastguard Worker /* DW8: kernel 2 pointer */
1436*d83cc019SAndroid Build Coastguard Worker 
1437*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_CONSTANT_VS		      0x7815 /* GEN6+ */
1438*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_CONSTANT_GS		      0x7816 /* GEN6+ */
1439*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_CONSTANT_PS		      0x7817 /* GEN6+ */
1440*d83cc019SAndroid Build Coastguard Worker # define GEN6_CONSTANT_BUFFER_3_ENABLE			(1 << 15)
1441*d83cc019SAndroid Build Coastguard Worker # define GEN6_CONSTANT_BUFFER_2_ENABLE			(1 << 14)
1442*d83cc019SAndroid Build Coastguard Worker # define GEN6_CONSTANT_BUFFER_1_ENABLE			(1 << 13)
1443*d83cc019SAndroid Build Coastguard Worker # define GEN6_CONSTANT_BUFFER_0_ENABLE			(1 << 12)
1444*d83cc019SAndroid Build Coastguard Worker 
1445*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_CONSTANT_HS                  0x7819 /* GEN7+ */
1446*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_CONSTANT_DS                  0x781A /* GEN7+ */
1447*d83cc019SAndroid Build Coastguard Worker 
1448*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_STREAMOUT                    0x781e /* GEN7+ */
1449*d83cc019SAndroid Build Coastguard Worker /* DW1 */
1450*d83cc019SAndroid Build Coastguard Worker # define SO_FUNCTION_ENABLE				(1 << 31)
1451*d83cc019SAndroid Build Coastguard Worker # define SO_RENDERING_DISABLE				(1 << 30)
1452*d83cc019SAndroid Build Coastguard Worker /* This selects which incoming rendering stream goes down the pipeline.  The
1453*d83cc019SAndroid Build Coastguard Worker  * rendering stream is 0 if not defined by special cases in the GS state.
1454*d83cc019SAndroid Build Coastguard Worker  */
1455*d83cc019SAndroid Build Coastguard Worker # define SO_RENDER_STREAM_SELECT_SHIFT			27
1456*d83cc019SAndroid Build Coastguard Worker # define SO_RENDER_STREAM_SELECT_MASK			INTEL_MASK(28, 27)
1457*d83cc019SAndroid Build Coastguard Worker /* Controls reordering of TRISTRIP_* elements in stream output (not rendering).
1458*d83cc019SAndroid Build Coastguard Worker  */
1459*d83cc019SAndroid Build Coastguard Worker # define SO_REORDER_TRAILING				(1 << 26)
1460*d83cc019SAndroid Build Coastguard Worker /* Controls SO_NUM_PRIMS_WRITTEN_* and SO_PRIM_STORAGE_* */
1461*d83cc019SAndroid Build Coastguard Worker # define SO_STATISTICS_ENABLE				(1 << 25)
1462*d83cc019SAndroid Build Coastguard Worker # define SO_BUFFER_ENABLE(n)				(1 << (8 + (n)))
1463*d83cc019SAndroid Build Coastguard Worker /* DW2 */
1464*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_3_VERTEX_READ_OFFSET_SHIFT		29
1465*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_3_VERTEX_READ_OFFSET_MASK		INTEL_MASK(29, 29)
1466*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_3_VERTEX_READ_LENGTH_SHIFT		24
1467*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_3_VERTEX_READ_LENGTH_MASK		INTEL_MASK(28, 24)
1468*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_2_VERTEX_READ_OFFSET_SHIFT		21
1469*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_2_VERTEX_READ_OFFSET_MASK		INTEL_MASK(21, 21)
1470*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_2_VERTEX_READ_LENGTH_SHIFT		16
1471*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_2_VERTEX_READ_LENGTH_MASK		INTEL_MASK(20, 16)
1472*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_1_VERTEX_READ_OFFSET_SHIFT		13
1473*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_1_VERTEX_READ_OFFSET_MASK		INTEL_MASK(13, 13)
1474*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_1_VERTEX_READ_LENGTH_SHIFT		8
1475*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_1_VERTEX_READ_LENGTH_MASK		INTEL_MASK(12, 8)
1476*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_0_VERTEX_READ_OFFSET_SHIFT		5
1477*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_0_VERTEX_READ_OFFSET_MASK		INTEL_MASK(5, 5)
1478*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_0_VERTEX_READ_LENGTH_SHIFT		0
1479*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_0_VERTEX_READ_LENGTH_MASK		INTEL_MASK(4, 0)
1480*d83cc019SAndroid Build Coastguard Worker 
1481*d83cc019SAndroid Build Coastguard Worker /* 3DSTATE_WM for Gen7 */
1482*d83cc019SAndroid Build Coastguard Worker /* DW1 */
1483*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_STATISTICS_ENABLE			(1 << 31)
1484*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_DEPTH_CLEAR				(1 << 30)
1485*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_DISPATCH_ENABLE			(1 << 29)
1486*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_DEPTH_RESOLVE				(1 << 28)
1487*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_HIERARCHICAL_DEPTH_RESOLVE		(1 << 27)
1488*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_KILL_ENABLE				(1 << 25)
1489*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_PSCDEPTH_OFF			        (0 << 23)
1490*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_PSCDEPTH_ON			        (1 << 23)
1491*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_PSCDEPTH_ON_GE			        (2 << 23)
1492*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_PSCDEPTH_ON_LE			        (3 << 23)
1493*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_USES_SOURCE_DEPTH			(1 << 20)
1494*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_USES_SOURCE_W			        (1 << 19)
1495*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_POSITION_ZW_PIXEL			(0 << 17)
1496*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_POSITION_ZW_CENTROID			(2 << 17)
1497*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_POSITION_ZW_SAMPLE			(3 << 17)
1498*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_BARYCENTRIC_INTERPOLATION_MODE_SHIFT   11
1499*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_USES_INPUT_COVERAGE_MASK	        (1 << 10)
1500*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_LINE_END_CAP_AA_WIDTH_0_5		(0 << 8)
1501*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_LINE_END_CAP_AA_WIDTH_1_0		(1 << 8)
1502*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_LINE_END_CAP_AA_WIDTH_2_0		(2 << 8)
1503*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_LINE_END_CAP_AA_WIDTH_4_0		(3 << 8)
1504*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_LINE_AA_WIDTH_0_5			(0 << 6)
1505*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_LINE_AA_WIDTH_1_0			(1 << 6)
1506*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_LINE_AA_WIDTH_2_0			(2 << 6)
1507*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_LINE_AA_WIDTH_4_0			(3 << 6)
1508*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_POLYGON_STIPPLE_ENABLE			(1 << 4)
1509*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_LINE_STIPPLE_ENABLE			(1 << 3)
1510*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_POINT_RASTRULE_UPPER_RIGHT		(1 << 2)
1511*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_MSRAST_OFF_PIXEL			(0 << 0)
1512*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_MSRAST_OFF_PATTERN			(1 << 0)
1513*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_MSRAST_ON_PIXEL			(2 << 0)
1514*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_MSRAST_ON_PATTERN			(3 << 0)
1515*d83cc019SAndroid Build Coastguard Worker /* DW2 */
1516*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_MSDISPMODE_PERSAMPLE			(0 << 31)
1517*d83cc019SAndroid Build Coastguard Worker # define GEN7_WM_MSDISPMODE_PERPIXEL			(1 << 31)
1518*d83cc019SAndroid Build Coastguard Worker 
1519*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_PS				0x7820 /* GEN7+ */
1520*d83cc019SAndroid Build Coastguard Worker /* DW1: kernel pointer */
1521*d83cc019SAndroid Build Coastguard Worker /* DW2 */
1522*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_SPF_MODE				(1 << 31)
1523*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_VECTOR_MASK_ENABLE			(1 << 30)
1524*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_SAMPLER_COUNT_SHIFT			27
1525*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT	18
1526*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_FLOATING_POINT_MODE_IEEE_754		(0 << 16)
1527*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_FLOATING_POINT_MODE_ALT		(1 << 16)
1528*d83cc019SAndroid Build Coastguard Worker /* DW3: scratch space */
1529*d83cc019SAndroid Build Coastguard Worker /* DW4 */
1530*d83cc019SAndroid Build Coastguard Worker # define IVB_PS_MAX_THREADS_SHIFT			24
1531*d83cc019SAndroid Build Coastguard Worker # define HSW_PS_MAX_THREADS_SHIFT			23
1532*d83cc019SAndroid Build Coastguard Worker # define HSW_PS_SAMPLE_MASK_SHIFT		        12
1533*d83cc019SAndroid Build Coastguard Worker # define HSW_PS_SAMPLE_MASK_MASK			INTEL_MASK(19, 12)
1534*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_PUSH_CONSTANT_ENABLE		        (1 << 11)
1535*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_ATTRIBUTE_ENABLE		        (1 << 10)
1536*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_OMASK_TO_RENDER_TARGET			(1 << 9)
1537*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_DUAL_SOURCE_BLEND_ENABLE		(1 << 7)
1538*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_POSOFFSET_NONE				(0 << 3)
1539*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_POSOFFSET_CENTROID			(2 << 3)
1540*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_POSOFFSET_SAMPLE			(3 << 3)
1541*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_32_DISPATCH_ENABLE			(1 << 2)
1542*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_16_DISPATCH_ENABLE			(1 << 1)
1543*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_8_DISPATCH_ENABLE			(1 << 0)
1544*d83cc019SAndroid Build Coastguard Worker /* DW5 */
1545*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_DISPATCH_START_GRF_SHIFT_0		16
1546*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_DISPATCH_START_GRF_SHIFT_1		8
1547*d83cc019SAndroid Build Coastguard Worker # define GEN7_PS_DISPATCH_START_GRF_SHIFT_2		0
1548*d83cc019SAndroid Build Coastguard Worker /* DW6: kernel 1 pointer */
1549*d83cc019SAndroid Build Coastguard Worker /* DW7: kernel 2 pointer */
1550*d83cc019SAndroid Build Coastguard Worker 
1551*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_SAMPLE_MASK			0x7818 /* GEN6+ */
1552*d83cc019SAndroid Build Coastguard Worker 
1553*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_DRAWING_RECTANGLE		0x7900
1554*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_BLEND_CONSTANT_COLOR		0x7901
1555*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_CHROMA_KEY			0x7904
1556*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_DEPTH_BUFFER			0x7905 /* GEN4-6 */
1557*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_POLY_STIPPLE_OFFSET		0x7906
1558*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_POLY_STIPPLE_PATTERN		0x7907
1559*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_LINE_STIPPLE_PATTERN		0x7908
1560*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_GLOBAL_DEPTH_OFFSET_CLAMP	0x7909
1561*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_AA_LINE_PARAMETERS		0x790a /* G45+ */
1562*d83cc019SAndroid Build Coastguard Worker 
1563*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_GS_SVB_INDEX			0x790b /* CTG+ */
1564*d83cc019SAndroid Build Coastguard Worker /* DW1 */
1565*d83cc019SAndroid Build Coastguard Worker # define SVB_INDEX_SHIFT				29
1566*d83cc019SAndroid Build Coastguard Worker # define SVB_LOAD_INTERNAL_VERTEX_COUNT			(1 << 0) /* SNB+ */
1567*d83cc019SAndroid Build Coastguard Worker /* DW2: SVB index */
1568*d83cc019SAndroid Build Coastguard Worker /* DW3: SVB maximum index */
1569*d83cc019SAndroid Build Coastguard Worker 
1570*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_MULTISAMPLE			0x790d /* GEN6+ */
1571*d83cc019SAndroid Build Coastguard Worker /* DW1 */
1572*d83cc019SAndroid Build Coastguard Worker # define MS_PIXEL_LOCATION_CENTER			(0 << 4)
1573*d83cc019SAndroid Build Coastguard Worker # define MS_PIXEL_LOCATION_UPPER_LEFT			(1 << 4)
1574*d83cc019SAndroid Build Coastguard Worker # define MS_NUMSAMPLES_1				(0 << 1)
1575*d83cc019SAndroid Build Coastguard Worker # define MS_NUMSAMPLES_4				(2 << 1)
1576*d83cc019SAndroid Build Coastguard Worker # define MS_NUMSAMPLES_8				(3 << 1)
1577*d83cc019SAndroid Build Coastguard Worker 
1578*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_STENCIL_BUFFER			0x790e /* ILK, SNB */
1579*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_HIER_DEPTH_BUFFER		0x790f /* ILK, SNB */
1580*d83cc019SAndroid Build Coastguard Worker 
1581*d83cc019SAndroid Build Coastguard Worker #define GEN7_3DSTATE_CLEAR_PARAMS		0x7804
1582*d83cc019SAndroid Build Coastguard Worker #define GEN7_3DSTATE_DEPTH_BUFFER		0x7805
1583*d83cc019SAndroid Build Coastguard Worker #define GEN7_3DSTATE_STENCIL_BUFFER		0x7806
1584*d83cc019SAndroid Build Coastguard Worker # define HSW_STENCIL_ENABLED                            (1 << 31)
1585*d83cc019SAndroid Build Coastguard Worker #define GEN7_3DSTATE_HIER_DEPTH_BUFFER		0x7807
1586*d83cc019SAndroid Build Coastguard Worker 
1587*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_CLEAR_PARAMS			0x7910 /* ILK, SNB */
1588*d83cc019SAndroid Build Coastguard Worker # define GEN5_DEPTH_CLEAR_VALID				(1 << 15)
1589*d83cc019SAndroid Build Coastguard Worker /* DW1: depth clear value */
1590*d83cc019SAndroid Build Coastguard Worker /* DW2 */
1591*d83cc019SAndroid Build Coastguard Worker # define GEN7_DEPTH_CLEAR_VALID				(1 << 0)
1592*d83cc019SAndroid Build Coastguard Worker 
1593*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_SO_DECL_LIST			0x7917 /* GEN7+ */
1594*d83cc019SAndroid Build Coastguard Worker /* DW1 */
1595*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_TO_BUFFER_SELECTS_3_SHIFT		12
1596*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_TO_BUFFER_SELECTS_3_MASK		INTEL_MASK(15, 12)
1597*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_TO_BUFFER_SELECTS_2_SHIFT		8
1598*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_TO_BUFFER_SELECTS_2_MASK		INTEL_MASK(11, 8)
1599*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_TO_BUFFER_SELECTS_1_SHIFT		4
1600*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_TO_BUFFER_SELECTS_1_MASK		INTEL_MASK(7, 4)
1601*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_TO_BUFFER_SELECTS_0_SHIFT		0
1602*d83cc019SAndroid Build Coastguard Worker # define SO_STREAM_TO_BUFFER_SELECTS_0_MASK		INTEL_MASK(3, 0)
1603*d83cc019SAndroid Build Coastguard Worker /* DW2 */
1604*d83cc019SAndroid Build Coastguard Worker # define SO_NUM_ENTRIES_3_SHIFT				24
1605*d83cc019SAndroid Build Coastguard Worker # define SO_NUM_ENTRIES_3_MASK				INTEL_MASK(31, 24)
1606*d83cc019SAndroid Build Coastguard Worker # define SO_NUM_ENTRIES_2_SHIFT				16
1607*d83cc019SAndroid Build Coastguard Worker # define SO_NUM_ENTRIES_2_MASK				INTEL_MASK(23, 16)
1608*d83cc019SAndroid Build Coastguard Worker # define SO_NUM_ENTRIES_1_SHIFT				8
1609*d83cc019SAndroid Build Coastguard Worker # define SO_NUM_ENTRIES_1_MASK				INTEL_MASK(15, 8)
1610*d83cc019SAndroid Build Coastguard Worker # define SO_NUM_ENTRIES_0_SHIFT				0
1611*d83cc019SAndroid Build Coastguard Worker # define SO_NUM_ENTRIES_0_MASK				INTEL_MASK(7, 0)
1612*d83cc019SAndroid Build Coastguard Worker 
1613*d83cc019SAndroid Build Coastguard Worker /* SO_DECL DW0 */
1614*d83cc019SAndroid Build Coastguard Worker # define SO_DECL_OUTPUT_BUFFER_SLOT_SHIFT		12
1615*d83cc019SAndroid Build Coastguard Worker # define SO_DECL_OUTPUT_BUFFER_SLOT_MASK		INTEL_MASK(13, 12)
1616*d83cc019SAndroid Build Coastguard Worker # define SO_DECL_HOLE_FLAG				(1 << 11)
1617*d83cc019SAndroid Build Coastguard Worker # define SO_DECL_REGISTER_INDEX_SHIFT			4
1618*d83cc019SAndroid Build Coastguard Worker # define SO_DECL_REGISTER_INDEX_MASK			INTEL_MASK(9, 4)
1619*d83cc019SAndroid Build Coastguard Worker # define SO_DECL_COMPONENT_MASK_SHIFT			0
1620*d83cc019SAndroid Build Coastguard Worker # define SO_DECL_COMPONENT_MASK_MASK			INTEL_MASK(3, 0)
1621*d83cc019SAndroid Build Coastguard Worker 
1622*d83cc019SAndroid Build Coastguard Worker #define _3DSTATE_SO_BUFFER                    0x7918 /* GEN7+ */
1623*d83cc019SAndroid Build Coastguard Worker /* DW1 */
1624*d83cc019SAndroid Build Coastguard Worker # define SO_BUFFER_INDEX_SHIFT				29
1625*d83cc019SAndroid Build Coastguard Worker # define SO_BUFFER_INDEX_MASK				INTEL_MASK(30, 29)
1626*d83cc019SAndroid Build Coastguard Worker # define SO_BUFFER_PITCH_SHIFT				0
1627*d83cc019SAndroid Build Coastguard Worker # define SO_BUFFER_PITCH_MASK				INTEL_MASK(11, 0)
1628*d83cc019SAndroid Build Coastguard Worker /* DW2: start address */
1629*d83cc019SAndroid Build Coastguard Worker /* DW3: end address. */
1630*d83cc019SAndroid Build Coastguard Worker 
1631*d83cc019SAndroid Build Coastguard Worker #define CMD_PIPE_CONTROL              0x7a00
1632*d83cc019SAndroid Build Coastguard Worker 
1633*d83cc019SAndroid Build Coastguard Worker #define CMD_MI_FLUSH                  0x0200
1634*d83cc019SAndroid Build Coastguard Worker 
1635*d83cc019SAndroid Build Coastguard Worker 
1636*d83cc019SAndroid Build Coastguard Worker /* Bitfields for the URB_WRITE message, DW2 of message header: */
1637*d83cc019SAndroid Build Coastguard Worker #define URB_WRITE_PRIM_END		0x1
1638*d83cc019SAndroid Build Coastguard Worker #define URB_WRITE_PRIM_START		0x2
1639*d83cc019SAndroid Build Coastguard Worker #define URB_WRITE_PRIM_TYPE_SHIFT	2
1640*d83cc019SAndroid Build Coastguard Worker 
1641*d83cc019SAndroid Build Coastguard Worker 
1642*d83cc019SAndroid Build Coastguard Worker /* Maximum number of entries that can be addressed using a binding table
1643*d83cc019SAndroid Build Coastguard Worker  * pointer of type SURFTYPE_BUFFER
1644*d83cc019SAndroid Build Coastguard Worker  */
1645*d83cc019SAndroid Build Coastguard Worker #define BRW_MAX_NUM_BUFFER_ENTRIES	(1 << 27)
1646*d83cc019SAndroid Build Coastguard Worker 
1647*d83cc019SAndroid Build Coastguard Worker #define EX_DESC_SFID_MASK 0xF
1648*d83cc019SAndroid Build Coastguard Worker #define EX_DESC_EOT_MASK  0x20
1649*d83cc019SAndroid Build Coastguard Worker 
1650*d83cc019SAndroid Build Coastguard Worker #define EX_DESC_FUNC_MASK 0xFFFFFFC0
1651*d83cc019SAndroid Build Coastguard Worker 
1652*d83cc019SAndroid Build Coastguard Worker #endif
1653