xref: /aosp_15_r20/external/igt-gpu-tools/lib/gen8_render.h (revision d83cc019efdc2edc6c4b16e9034a3ceb8d35d77c)
1*d83cc019SAndroid Build Coastguard Worker #ifndef GEN8_RENDER_H
2*d83cc019SAndroid Build Coastguard Worker #define GEN8_RENDER_H
3*d83cc019SAndroid Build Coastguard Worker 
4*d83cc019SAndroid Build Coastguard Worker #include "gen7_render.h"
5*d83cc019SAndroid Build Coastguard Worker 
6*d83cc019SAndroid Build Coastguard Worker # define GEN8_WM_LEGACY_DIAMOND_LINE_RASTERIZATION	(1 << 26)
7*d83cc019SAndroid Build Coastguard Worker 
8*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_SCISSOR_STATE_POINTERS	GEN4_3D(3, 0, 0xf)
9*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_STENCIL_BUFFER		GEN4_3D(3, 0, 0x06)
10*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_HIER_DEPTH_BUFFER		GEN4_3D(3, 0, 0x07)
11*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_MULTISAMPLE		GEN4_3D(3, 0, 0x0d)
12*d83cc019SAndroid Build Coastguard Worker # define GEN8_3DSTATE_MULTISAMPLE_NUMSAMPLES_2			(1 << 1)
13*d83cc019SAndroid Build Coastguard Worker 
14*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_WM_HZ_OP			GEN4_3D(3, 0, 0x52)
15*d83cc019SAndroid Build Coastguard Worker 
16*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_VF_INSTANCING		GEN4_3D(3, 0, 0x49)
17*d83cc019SAndroid Build Coastguard Worker # define GEN8_SBE_FORCE_URB_ENTRY_READ_LENGTH	(1 << 29)
18*d83cc019SAndroid Build Coastguard Worker # define GEN8_SBE_FORCE_URB_ENTRY_READ_OFFSET	(1 << 28)
19*d83cc019SAndroid Build Coastguard Worker # define GEN8_SBE_URB_ENTRY_READ_OFFSET_SHIFT   5
20*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_SBE_SWIZ			GEN4_3D(3, 0, 0x51)
21*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_RASTER			GEN4_3D(3, 0, 0x50)
22*d83cc019SAndroid Build Coastguard Worker # define GEN8_RASTER_FRONT_WINDING_CCW			(1 << 21)
23*d83cc019SAndroid Build Coastguard Worker # define GEN8_RASTER_CULL_NONE                          (1 << 16)
24*d83cc019SAndroid Build Coastguard Worker 
25*d83cc019SAndroid Build Coastguard Worker # define GEN8_SF_POINT_WIDTH_FROM_SOURCE                (1 << 11)
26*d83cc019SAndroid Build Coastguard Worker 
27*d83cc019SAndroid Build Coastguard Worker # define GEN8_VS_FLOATING_POINT_MODE_ALTERNATE          (1 << 16)
28*d83cc019SAndroid Build Coastguard Worker 
29*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP	\
30*d83cc019SAndroid Build Coastguard Worker 						GEN4_3D(3, 0, 0x21)
31*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_PS_BLEND			GEN4_3D(3, 0, 0x4d)
32*d83cc019SAndroid Build Coastguard Worker # define GEN8_PS_BLEND_HAS_WRITEABLE_RT			(1 << 30)
33*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_WM_DEPTH_STENCIL		GEN4_3D(3, 0, 0x4e)
34*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_PS_EXTRA			GEN4_3D(3, 0, 0x4f)
35*d83cc019SAndroid Build Coastguard Worker # define GEN8_PSX_PIXEL_SHADER_VALID			(1 << 31)
36*d83cc019SAndroid Build Coastguard Worker # define GEN8_PSX_ATTRIBUTE_ENABLE			(1 << 8)
37*d83cc019SAndroid Build Coastguard Worker 
38*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_DS_STATE_POINTERS		GEN4_3D(3, 0, 0x25)
39*d83cc019SAndroid Build Coastguard Worker 
40*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_HS	GEN4_3D(3, 0, 0x2c)
41*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_SAMPLER_STATE_POINTERS_DS	GEN4_3D(3, 0, 0x2d)
42*d83cc019SAndroid Build Coastguard Worker 
43*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_VF				GEN4_3D(3, 0, 0x0c)
44*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_VF_TOPOLOGY		GEN4_3D(3, 0, 0x4b)
45*d83cc019SAndroid Build Coastguard Worker 
46*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_BIND_TABLE_POOL_ALLOC	GEN4_3D(3, 1, 0x19)
47*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_GATHER_POOL_ALLOC		GEN4_3D(3, 1, 0x1a)
48*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_DX9_CONSTANT_BUFFER_POOL_ALLOC	GEN4_3D(3, 1, 0x1b)
49*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_HS	GEN4_3D(3, 1, 0x13)
50*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_DS	GEN4_3D(3, 1, 0x14)
51*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_PUSH_CONSTANT_ALLOC_GS	GEN4_3D(3, 1, 0x15)
52*d83cc019SAndroid Build Coastguard Worker 
53*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_VF_SGVS			GEN4_3D(3, 0, 0x4a)
54*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_SO_DECL_LIST		GEN4_3D(3, 1, 0x17)
55*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_SO_BUFFER			GEN4_3D(3, 1, 0x18)
56*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD0	GEN4_3D(3, 1, 0x02)
57*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_SAMPLER_PALETTE_LOAD1	GEN4_3D(3, 1, 0x0c)
58*d83cc019SAndroid Build Coastguard Worker 
59*d83cc019SAndroid Build Coastguard Worker /* Some random bits that we care about */
60*d83cc019SAndroid Build Coastguard Worker #define GEN8_VB0_BUFFER_ADDR_MOD_EN		(1 << 14)
61*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_PS_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 11)
62*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_PS_ATTRIBUTE_ENABLED	 (1 << 10)
63*d83cc019SAndroid Build Coastguard Worker 
64*d83cc019SAndroid Build Coastguard Worker /* Random shifts */
65*d83cc019SAndroid Build Coastguard Worker #define GEN8_3DSTATE_PS_MAX_THREADS_SHIFT 23
66*d83cc019SAndroid Build Coastguard Worker 
67*d83cc019SAndroid Build Coastguard Worker /* STATE_BASE_ADDRESS state size in pages*/
68*d83cc019SAndroid Build Coastguard Worker #define GEN8_STATE_SIZE_PAGES(x) ((x) << 12)
69*d83cc019SAndroid Build Coastguard Worker 
70*d83cc019SAndroid Build Coastguard Worker #define BDW_MOCS_PTE		(0 << 5)
71*d83cc019SAndroid Build Coastguard Worker #define BDW_MOCS_UC		(1 << 5)
72*d83cc019SAndroid Build Coastguard Worker #define BDW_MOCS_WT		(2 << 5)
73*d83cc019SAndroid Build Coastguard Worker #define BDW_MOCS_WB		(3 << 5)
74*d83cc019SAndroid Build Coastguard Worker #define BDW_MOCS_TC_ELLC	(0 << 3)
75*d83cc019SAndroid Build Coastguard Worker #define BDW_MOCS_TC_LLC		(1 << 3)
76*d83cc019SAndroid Build Coastguard Worker #define BDW_MOCS_TC_LLC_ELLC	(2 << 3)
77*d83cc019SAndroid Build Coastguard Worker #define BDW_MOCS_TC_L3_PTE	(3 << 3)
78*d83cc019SAndroid Build Coastguard Worker #define BDW_MOCS_AGE(x)		((x) << 0)
79*d83cc019SAndroid Build Coastguard Worker 
80*d83cc019SAndroid Build Coastguard Worker #define CHV_MOCS_UC		(0 << 5)
81*d83cc019SAndroid Build Coastguard Worker #define CHV_MOCS_WB		(3 << 5)
82*d83cc019SAndroid Build Coastguard Worker #define CHV_MOCS_NO_CACHING	(0 << 3)
83*d83cc019SAndroid Build Coastguard Worker #define CHV_MOCS_L3		(3 << 3)
84*d83cc019SAndroid Build Coastguard Worker 
85*d83cc019SAndroid Build Coastguard Worker /* Shamelessly ripped from mesa */
86*d83cc019SAndroid Build Coastguard Worker struct gen8_surface_state
87*d83cc019SAndroid Build Coastguard Worker {
88*d83cc019SAndroid Build Coastguard Worker 	struct {
89*d83cc019SAndroid Build Coastguard Worker 		uint32_t cube_pos_z:1;
90*d83cc019SAndroid Build Coastguard Worker 		uint32_t cube_neg_z:1;
91*d83cc019SAndroid Build Coastguard Worker 		uint32_t cube_pos_y:1;
92*d83cc019SAndroid Build Coastguard Worker 		uint32_t cube_neg_y:1;
93*d83cc019SAndroid Build Coastguard Worker 		uint32_t cube_pos_x:1;
94*d83cc019SAndroid Build Coastguard Worker 		uint32_t cube_neg_x:1;
95*d83cc019SAndroid Build Coastguard Worker 		uint32_t media_boundary_pixel_mode:2;
96*d83cc019SAndroid Build Coastguard Worker 		uint32_t render_cache_read_write:1;
97*d83cc019SAndroid Build Coastguard Worker 		uint32_t smapler_l2_bypass:1;
98*d83cc019SAndroid Build Coastguard Worker 		uint32_t vert_line_stride_ofs:1;
99*d83cc019SAndroid Build Coastguard Worker 		uint32_t vert_line_stride:1;
100*d83cc019SAndroid Build Coastguard Worker 		uint32_t tiled_mode:2;
101*d83cc019SAndroid Build Coastguard Worker 		uint32_t horizontal_alignment:2;
102*d83cc019SAndroid Build Coastguard Worker 		uint32_t vertical_alignment:2;
103*d83cc019SAndroid Build Coastguard Worker 		uint32_t surface_format:9;     /**< BRW_SURFACEFORMAT_x */
104*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:1;
105*d83cc019SAndroid Build Coastguard Worker 		uint32_t is_array:1;
106*d83cc019SAndroid Build Coastguard Worker 		uint32_t surface_type:3;       /**< BRW_SURFACE_1D/2D/3D/CUBE */
107*d83cc019SAndroid Build Coastguard Worker 	} ss0;
108*d83cc019SAndroid Build Coastguard Worker 
109*d83cc019SAndroid Build Coastguard Worker 	struct {
110*d83cc019SAndroid Build Coastguard Worker 		uint32_t qpitch:15;
111*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad1:4;
112*d83cc019SAndroid Build Coastguard Worker 		uint32_t base_mip_level:5;
113*d83cc019SAndroid Build Coastguard Worker 		uint32_t memory_object_control:7;
114*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:1;
115*d83cc019SAndroid Build Coastguard Worker 	} ss1;
116*d83cc019SAndroid Build Coastguard Worker 
117*d83cc019SAndroid Build Coastguard Worker 	struct {
118*d83cc019SAndroid Build Coastguard Worker 		uint32_t width:14;
119*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad1:2;
120*d83cc019SAndroid Build Coastguard Worker 		uint32_t height:14;
121*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:2;
122*d83cc019SAndroid Build Coastguard Worker 	} ss2;
123*d83cc019SAndroid Build Coastguard Worker 
124*d83cc019SAndroid Build Coastguard Worker 	struct {
125*d83cc019SAndroid Build Coastguard Worker 		uint32_t pitch:18;
126*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad:3;
127*d83cc019SAndroid Build Coastguard Worker 		uint32_t depth:11;
128*d83cc019SAndroid Build Coastguard Worker 	} ss3;
129*d83cc019SAndroid Build Coastguard Worker 
130*d83cc019SAndroid Build Coastguard Worker 	struct {
131*d83cc019SAndroid Build Coastguard Worker 		uint32_t minimum_array_element:27;
132*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:5;
133*d83cc019SAndroid Build Coastguard Worker 	} ss4;
134*d83cc019SAndroid Build Coastguard Worker 
135*d83cc019SAndroid Build Coastguard Worker 	struct {
136*d83cc019SAndroid Build Coastguard Worker 		uint32_t mip_count:4;
137*d83cc019SAndroid Build Coastguard Worker 		uint32_t min_lod:4;
138*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad3:6;
139*d83cc019SAndroid Build Coastguard Worker 		uint32_t coherency_type:1;
140*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad2:5;
141*d83cc019SAndroid Build Coastguard Worker 		uint32_t ewa_disable_for_cube:1;
142*d83cc019SAndroid Build Coastguard Worker 		uint32_t y_offset:3;
143*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:1;
144*d83cc019SAndroid Build Coastguard Worker 		uint32_t x_offset:7;
145*d83cc019SAndroid Build Coastguard Worker 	} ss5;
146*d83cc019SAndroid Build Coastguard Worker 
147*d83cc019SAndroid Build Coastguard Worker 	struct {
148*d83cc019SAndroid Build Coastguard Worker 		uint32_t aux_mode:3;
149*d83cc019SAndroid Build Coastguard Worker 		uint32_t aux_pitch:9;
150*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:4;
151*d83cc019SAndroid Build Coastguard Worker 		uint32_t aux_qpitch:15;
152*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad1:1;
153*d83cc019SAndroid Build Coastguard Worker 	} ss6;
154*d83cc019SAndroid Build Coastguard Worker 
155*d83cc019SAndroid Build Coastguard Worker 	struct {
156*d83cc019SAndroid Build Coastguard Worker 		uint32_t resource_min_lod:12;
157*d83cc019SAndroid Build Coastguard Worker 
158*d83cc019SAndroid Build Coastguard Worker 		/* Only on Haswell */
159*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:4;
160*d83cc019SAndroid Build Coastguard Worker 		uint32_t shader_chanel_select_a:3;
161*d83cc019SAndroid Build Coastguard Worker 		uint32_t shader_chanel_select_b:3;
162*d83cc019SAndroid Build Coastguard Worker 		uint32_t shader_chanel_select_g:3;
163*d83cc019SAndroid Build Coastguard Worker 		uint32_t shader_chanel_select_r:3;
164*d83cc019SAndroid Build Coastguard Worker 
165*d83cc019SAndroid Build Coastguard Worker 		uint32_t alpha_clear_color:1;
166*d83cc019SAndroid Build Coastguard Worker 		uint32_t blue_clear_color:1;
167*d83cc019SAndroid Build Coastguard Worker 		uint32_t green_clear_color:1;
168*d83cc019SAndroid Build Coastguard Worker 		uint32_t red_clear_color:1;
169*d83cc019SAndroid Build Coastguard Worker 	} ss7;
170*d83cc019SAndroid Build Coastguard Worker 
171*d83cc019SAndroid Build Coastguard Worker 	struct {
172*d83cc019SAndroid Build Coastguard Worker 		uint32_t base_addr;
173*d83cc019SAndroid Build Coastguard Worker 	} ss8;
174*d83cc019SAndroid Build Coastguard Worker 
175*d83cc019SAndroid Build Coastguard Worker 	struct {
176*d83cc019SAndroid Build Coastguard Worker 		uint32_t base_addr_hi;
177*d83cc019SAndroid Build Coastguard Worker 	} ss9;
178*d83cc019SAndroid Build Coastguard Worker 
179*d83cc019SAndroid Build Coastguard Worker 	struct {
180*d83cc019SAndroid Build Coastguard Worker 		uint32_t aux_base_addr;
181*d83cc019SAndroid Build Coastguard Worker 	} ss10;
182*d83cc019SAndroid Build Coastguard Worker 
183*d83cc019SAndroid Build Coastguard Worker 	struct {
184*d83cc019SAndroid Build Coastguard Worker 		uint32_t aux_base_addr_hi;
185*d83cc019SAndroid Build Coastguard Worker 	} ss11;
186*d83cc019SAndroid Build Coastguard Worker 
187*d83cc019SAndroid Build Coastguard Worker 	struct {
188*d83cc019SAndroid Build Coastguard Worker 		uint32_t hiz_depth_clear_value;
189*d83cc019SAndroid Build Coastguard Worker 	} ss12;
190*d83cc019SAndroid Build Coastguard Worker 
191*d83cc019SAndroid Build Coastguard Worker 	struct {
192*d83cc019SAndroid Build Coastguard Worker 		uint32_t reserved;
193*d83cc019SAndroid Build Coastguard Worker 	} ss13;
194*d83cc019SAndroid Build Coastguard Worker 
195*d83cc019SAndroid Build Coastguard Worker 	struct {
196*d83cc019SAndroid Build Coastguard Worker 		uint32_t reserved;
197*d83cc019SAndroid Build Coastguard Worker 	} ss14;
198*d83cc019SAndroid Build Coastguard Worker 
199*d83cc019SAndroid Build Coastguard Worker 	struct {
200*d83cc019SAndroid Build Coastguard Worker 		uint32_t reserved;
201*d83cc019SAndroid Build Coastguard Worker 	} ss15;
202*d83cc019SAndroid Build Coastguard Worker };
203*d83cc019SAndroid Build Coastguard Worker 
204*d83cc019SAndroid Build Coastguard Worker struct gen8_sampler_state
205*d83cc019SAndroid Build Coastguard Worker {
206*d83cc019SAndroid Build Coastguard Worker 	struct
207*d83cc019SAndroid Build Coastguard Worker 	{
208*d83cc019SAndroid Build Coastguard Worker 		uint32_t aniso_algorithm:1;
209*d83cc019SAndroid Build Coastguard Worker 		uint32_t lod_bias:13;
210*d83cc019SAndroid Build Coastguard Worker 		uint32_t min_filter:3;
211*d83cc019SAndroid Build Coastguard Worker 		uint32_t mag_filter:3;
212*d83cc019SAndroid Build Coastguard Worker 		uint32_t mip_filter:2;
213*d83cc019SAndroid Build Coastguard Worker 		uint32_t base_level:5;
214*d83cc019SAndroid Build Coastguard Worker 		uint32_t lod_preclamp:2;
215*d83cc019SAndroid Build Coastguard Worker 		uint32_t default_color_mode:1;
216*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:1;
217*d83cc019SAndroid Build Coastguard Worker 		uint32_t disable:1;
218*d83cc019SAndroid Build Coastguard Worker 	} ss0;
219*d83cc019SAndroid Build Coastguard Worker 
220*d83cc019SAndroid Build Coastguard Worker 	struct
221*d83cc019SAndroid Build Coastguard Worker 	{
222*d83cc019SAndroid Build Coastguard Worker 		uint32_t cube_control_mode:1;
223*d83cc019SAndroid Build Coastguard Worker 		uint32_t shadow_function:3;
224*d83cc019SAndroid Build Coastguard Worker 		uint32_t chromakey_mode:1;
225*d83cc019SAndroid Build Coastguard Worker 		uint32_t chromakey_index:2;
226*d83cc019SAndroid Build Coastguard Worker 		uint32_t chromakey_enable:1;
227*d83cc019SAndroid Build Coastguard Worker 		uint32_t max_lod:12;
228*d83cc019SAndroid Build Coastguard Worker 		uint32_t min_lod:12;
229*d83cc019SAndroid Build Coastguard Worker 	} ss1;
230*d83cc019SAndroid Build Coastguard Worker 
231*d83cc019SAndroid Build Coastguard Worker 	struct
232*d83cc019SAndroid Build Coastguard Worker 	{
233*d83cc019SAndroid Build Coastguard Worker 		uint32_t lod_clamp_mag_mode:1;
234*d83cc019SAndroid Build Coastguard Worker 		uint32_t flexible_filter_valign:1;
235*d83cc019SAndroid Build Coastguard Worker 		uint32_t flexible_filter_halign:1;
236*d83cc019SAndroid Build Coastguard Worker 		uint32_t flexible_filter_coeff_size:1;
237*d83cc019SAndroid Build Coastguard Worker 		uint32_t flexible_filter_mode:1;
238*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad1:1;
239*d83cc019SAndroid Build Coastguard Worker 		uint32_t indirect_state_ptr:18;
240*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:2;
241*d83cc019SAndroid Build Coastguard Worker 		uint32_t sep_filter_height:2;
242*d83cc019SAndroid Build Coastguard Worker 		uint32_t sep_filter_width:2;
243*d83cc019SAndroid Build Coastguard Worker 		uint32_t sep_filter_coeff_table_size:2;
244*d83cc019SAndroid Build Coastguard Worker 	} ss2;
245*d83cc019SAndroid Build Coastguard Worker 
246*d83cc019SAndroid Build Coastguard Worker 	struct
247*d83cc019SAndroid Build Coastguard Worker 	{
248*d83cc019SAndroid Build Coastguard Worker 		uint32_t r_wrap_mode:3;
249*d83cc019SAndroid Build Coastguard Worker 		uint32_t t_wrap_mode:3;
250*d83cc019SAndroid Build Coastguard Worker 		uint32_t s_wrap_mode:3;
251*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad:1;
252*d83cc019SAndroid Build Coastguard Worker 		uint32_t non_normalized_coord:1;
253*d83cc019SAndroid Build Coastguard Worker 		uint32_t trilinear_quality:2;
254*d83cc019SAndroid Build Coastguard Worker 		uint32_t address_round:6;
255*d83cc019SAndroid Build Coastguard Worker 		uint32_t max_aniso:3;
256*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:2;
257*d83cc019SAndroid Build Coastguard Worker 		uint32_t non_sep_filter_footprint_mask:8;
258*d83cc019SAndroid Build Coastguard Worker 	} ss3;
259*d83cc019SAndroid Build Coastguard Worker };
260*d83cc019SAndroid Build Coastguard Worker 
261*d83cc019SAndroid Build Coastguard Worker struct gen8_blend_state {
262*d83cc019SAndroid Build Coastguard Worker 	struct {
263*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:19;
264*d83cc019SAndroid Build Coastguard Worker 		uint32_t y_dither_offset:2;
265*d83cc019SAndroid Build Coastguard Worker 		uint32_t x_dither_offset:2;
266*d83cc019SAndroid Build Coastguard Worker 		uint32_t dither_enable:1;
267*d83cc019SAndroid Build Coastguard Worker 		uint32_t alpha_test_func:3;
268*d83cc019SAndroid Build Coastguard Worker 		uint32_t alpha_test:1;
269*d83cc019SAndroid Build Coastguard Worker 		uint32_t alpha_to_coverage_dither:1;
270*d83cc019SAndroid Build Coastguard Worker 		uint32_t alpha_to_one:1;
271*d83cc019SAndroid Build Coastguard Worker 		uint32_t ia_blend:1;
272*d83cc019SAndroid Build Coastguard Worker 		uint32_t alpha_to_coverage:1;
273*d83cc019SAndroid Build Coastguard Worker 	} bs0;
274*d83cc019SAndroid Build Coastguard Worker 
275*d83cc019SAndroid Build Coastguard Worker 	struct {
276*d83cc019SAndroid Build Coastguard Worker 		uint32_t write_disable_blue:1;
277*d83cc019SAndroid Build Coastguard Worker 		uint32_t write_disable_green:1;
278*d83cc019SAndroid Build Coastguard Worker 		uint32_t write_disable_red:1;
279*d83cc019SAndroid Build Coastguard Worker 		uint32_t write_disable_alpha:1;
280*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad1:1;
281*d83cc019SAndroid Build Coastguard Worker 		uint32_t alpha_blend_func:3;
282*d83cc019SAndroid Build Coastguard Worker 		uint32_t dest_alpha_blend_factor:5;
283*d83cc019SAndroid Build Coastguard Worker 		uint32_t source_alpha_blend_factor:5;
284*d83cc019SAndroid Build Coastguard Worker 		uint32_t color_blend_func:3;
285*d83cc019SAndroid Build Coastguard Worker 		uint32_t dest_blend_factor:5;
286*d83cc019SAndroid Build Coastguard Worker 		uint32_t source_blend_factor:5;
287*d83cc019SAndroid Build Coastguard Worker 		uint32_t color_buffer_blend:1;
288*d83cc019SAndroid Build Coastguard Worker 		uint32_t post_blend_color_clamp:1;
289*d83cc019SAndroid Build Coastguard Worker 		uint32_t pre_blend_color_clamp:1;
290*d83cc019SAndroid Build Coastguard Worker 		uint32_t color_clamp_range:2;
291*d83cc019SAndroid Build Coastguard Worker 		uint32_t pre_blend_source_only_clamp:1;
292*d83cc019SAndroid Build Coastguard Worker 		uint32_t pad0:22;
293*d83cc019SAndroid Build Coastguard Worker 		uint32_t logic_op_func:4;
294*d83cc019SAndroid Build Coastguard Worker 		uint32_t logic_op_enable:1;
295*d83cc019SAndroid Build Coastguard Worker 	} bs[16];
296*d83cc019SAndroid Build Coastguard Worker };
297*d83cc019SAndroid Build Coastguard Worker 
298*d83cc019SAndroid Build Coastguard Worker struct gen7_sf_clip_viewport {
299*d83cc019SAndroid Build Coastguard Worker 	struct {
300*d83cc019SAndroid Build Coastguard Worker 		float m00;
301*d83cc019SAndroid Build Coastguard Worker 		float m11;
302*d83cc019SAndroid Build Coastguard Worker 		float m22;
303*d83cc019SAndroid Build Coastguard Worker 		float m30;
304*d83cc019SAndroid Build Coastguard Worker 		float m31;
305*d83cc019SAndroid Build Coastguard Worker 		float m32;
306*d83cc019SAndroid Build Coastguard Worker 	} viewport;
307*d83cc019SAndroid Build Coastguard Worker 
308*d83cc019SAndroid Build Coastguard Worker 	uint32_t pad0[2];
309*d83cc019SAndroid Build Coastguard Worker 
310*d83cc019SAndroid Build Coastguard Worker 	struct {
311*d83cc019SAndroid Build Coastguard Worker 		float xmin;
312*d83cc019SAndroid Build Coastguard Worker 		float xmax;
313*d83cc019SAndroid Build Coastguard Worker 		float ymin;
314*d83cc019SAndroid Build Coastguard Worker 		float ymax;
315*d83cc019SAndroid Build Coastguard Worker 	} guardband;
316*d83cc019SAndroid Build Coastguard Worker 
317*d83cc019SAndroid Build Coastguard Worker 	float pad1[4];
318*d83cc019SAndroid Build Coastguard Worker };
319*d83cc019SAndroid Build Coastguard Worker 
320*d83cc019SAndroid Build Coastguard Worker struct gen6_scissor_rect
321*d83cc019SAndroid Build Coastguard Worker {
322*d83cc019SAndroid Build Coastguard Worker 	uint32_t xmin:16;
323*d83cc019SAndroid Build Coastguard Worker 	uint32_t ymin:16;
324*d83cc019SAndroid Build Coastguard Worker 	uint32_t xmax:16;
325*d83cc019SAndroid Build Coastguard Worker 	uint32_t ymax:16;
326*d83cc019SAndroid Build Coastguard Worker };
327*d83cc019SAndroid Build Coastguard Worker 
328*d83cc019SAndroid Build Coastguard Worker #endif
329