2 * Mesa 3-D graphics library
4 * Copyright (C) 2013 LunarG, Inc.
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation
9 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 * and/or sell copies of the Software, and to permit persons to whom the
11 * Software is furnished to do so, subject to the following conditions:
13 * The above copyright notice and this permission notice shall be included
14 * in all copies or substantial portions of the Software.
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
25 * Chia-I Wu <olv@lunarg.com>
28 #ifndef ILO_GPE_GEN7_H
29 #define ILO_GPE_GEN7_H
31 #include "ilo_common.h"
32 #include "ilo_gpe_gen6.h"
35 * Commands that GEN7 GPE could emit.
37 enum ilo_gpe_gen7_command
{
38 ILO_GPE_GEN7_STATE_BASE_ADDRESS
, /* (0x0, 0x1, 0x01) */
39 ILO_GPE_GEN7_STATE_SIP
, /* (0x0, 0x1, 0x02) */
40 ILO_GPE_GEN7_3DSTATE_VF_STATISTICS
, /* (0x1, 0x0, 0x0b) */
41 ILO_GPE_GEN7_PIPELINE_SELECT
, /* (0x1, 0x1, 0x04) */
42 ILO_GPE_GEN7_MEDIA_VFE_STATE
, /* (0x2, 0x0, 0x00) */
43 ILO_GPE_GEN7_MEDIA_CURBE_LOAD
, /* (0x2, 0x0, 0x01) */
44 ILO_GPE_GEN7_MEDIA_INTERFACE_DESCRIPTOR_LOAD
, /* (0x2, 0x0, 0x02) */
45 ILO_GPE_GEN7_MEDIA_STATE_FLUSH
, /* (0x2, 0x0, 0x04) */
46 ILO_GPE_GEN7_GPGPU_WALKER
, /* (0x2, 0x1, 0x05) */
47 ILO_GPE_GEN7_3DSTATE_CLEAR_PARAMS
, /* (0x3, 0x0, 0x04) */
48 ILO_GPE_GEN7_3DSTATE_DEPTH_BUFFER
, /* (0x3, 0x0, 0x05) */
49 ILO_GPE_GEN7_3DSTATE_STENCIL_BUFFER
, /* (0x3, 0x0, 0x06) */
50 ILO_GPE_GEN7_3DSTATE_HIER_DEPTH_BUFFER
, /* (0x3, 0x0, 0x07) */
51 ILO_GPE_GEN7_3DSTATE_VERTEX_BUFFERS
, /* (0x3, 0x0, 0x08) */
52 ILO_GPE_GEN7_3DSTATE_VERTEX_ELEMENTS
, /* (0x3, 0x0, 0x09) */
53 ILO_GPE_GEN7_3DSTATE_INDEX_BUFFER
, /* (0x3, 0x0, 0x0a) */
54 ILO_GPE_GEN7_3DSTATE_CC_STATE_POINTERS
, /* (0x3, 0x0, 0x0e) */
55 ILO_GPE_GEN7_3DSTATE_SCISSOR_STATE_POINTERS
, /* (0x3, 0x0, 0x0f) */
56 ILO_GPE_GEN7_3DSTATE_VS
, /* (0x3, 0x0, 0x10) */
57 ILO_GPE_GEN7_3DSTATE_GS
, /* (0x3, 0x0, 0x11) */
58 ILO_GPE_GEN7_3DSTATE_CLIP
, /* (0x3, 0x0, 0x12) */
59 ILO_GPE_GEN7_3DSTATE_SF
, /* (0x3, 0x0, 0x13) */
60 ILO_GPE_GEN7_3DSTATE_WM
, /* (0x3, 0x0, 0x14) */
61 ILO_GPE_GEN7_3DSTATE_CONSTANT_VS
, /* (0x3, 0x0, 0x15) */
62 ILO_GPE_GEN7_3DSTATE_CONSTANT_GS
, /* (0x3, 0x0, 0x16) */
63 ILO_GPE_GEN7_3DSTATE_CONSTANT_PS
, /* (0x3, 0x0, 0x17) */
64 ILO_GPE_GEN7_3DSTATE_SAMPLE_MASK
, /* (0x3, 0x0, 0x18) */
65 ILO_GPE_GEN7_3DSTATE_CONSTANT_HS
, /* (0x3, 0x0, 0x19) */
66 ILO_GPE_GEN7_3DSTATE_CONSTANT_DS
, /* (0x3, 0x0, 0x1a) */
67 ILO_GPE_GEN7_3DSTATE_HS
, /* (0x3, 0x0, 0x1b) */
68 ILO_GPE_GEN7_3DSTATE_TE
, /* (0x3, 0x0, 0x1c) */
69 ILO_GPE_GEN7_3DSTATE_DS
, /* (0x3, 0x0, 0x1d) */
70 ILO_GPE_GEN7_3DSTATE_STREAMOUT
, /* (0x3, 0x0, 0x1e) */
71 ILO_GPE_GEN7_3DSTATE_SBE
, /* (0x3, 0x0, 0x1f) */
72 ILO_GPE_GEN7_3DSTATE_PS
, /* (0x3, 0x0, 0x20) */
73 ILO_GPE_GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
, /* (0x3, 0x0, 0x21) */
74 ILO_GPE_GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC
, /* (0x3, 0x0, 0x23) */
75 ILO_GPE_GEN7_3DSTATE_BLEND_STATE_POINTERS
, /* (0x3, 0x0, 0x24) */
76 ILO_GPE_GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
, /* (0x3, 0x0, 0x25) */
77 ILO_GPE_GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS
, /* (0x3, 0x0, 0x26) */
78 ILO_GPE_GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS
, /* (0x3, 0x0, 0x27) */
79 ILO_GPE_GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS
, /* (0x3, 0x0, 0x28) */
80 ILO_GPE_GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS
, /* (0x3, 0x0, 0x29) */
81 ILO_GPE_GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS
, /* (0x3, 0x0, 0x2a) */
82 ILO_GPE_GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS
, /* (0x3, 0x0, 0x2b) */
83 ILO_GPE_GEN7_3DSTATE_SAMPLER_STATE_POINTERS_HS
, /* (0x3, 0x0, 0x2c) */
84 ILO_GPE_GEN7_3DSTATE_SAMPLER_STATE_POINTERS_DS
, /* (0x3, 0x0, 0x2d) */
85 ILO_GPE_GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS
, /* (0x3, 0x0, 0x2e) */
86 ILO_GPE_GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS
, /* (0x3, 0x0, 0x2f) */
87 ILO_GPE_GEN7_3DSTATE_URB_VS
, /* (0x3, 0x0, 0x30) */
88 ILO_GPE_GEN7_3DSTATE_URB_HS
, /* (0x3, 0x0, 0x31) */
89 ILO_GPE_GEN7_3DSTATE_URB_DS
, /* (0x3, 0x0, 0x32) */
90 ILO_GPE_GEN7_3DSTATE_URB_GS
, /* (0x3, 0x0, 0x33) */
91 ILO_GPE_GEN7_3DSTATE_DRAWING_RECTANGLE
, /* (0x3, 0x1, 0x00) */
92 ILO_GPE_GEN7_3DSTATE_POLY_STIPPLE_OFFSET
, /* (0x3, 0x1, 0x06) */
93 ILO_GPE_GEN7_3DSTATE_POLY_STIPPLE_PATTERN
, /* (0x3, 0x1, 0x07) */
94 ILO_GPE_GEN7_3DSTATE_LINE_STIPPLE
, /* (0x3, 0x1, 0x08) */
95 ILO_GPE_GEN7_3DSTATE_AA_LINE_PARAMETERS
, /* (0x3, 0x1, 0x0a) */
96 ILO_GPE_GEN7_3DSTATE_MULTISAMPLE
, /* (0x3, 0x1, 0x0d) */
97 ILO_GPE_GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS
, /* (0x3, 0x1, 0x12) */
98 ILO_GPE_GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_HS
, /* (0x3, 0x1, 0x13) */
99 ILO_GPE_GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_DS
, /* (0x3, 0x1, 0x14) */
100 ILO_GPE_GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_GS
, /* (0x3, 0x1, 0x15) */
101 ILO_GPE_GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS
, /* (0x3, 0x1, 0x16) */
102 ILO_GPE_GEN7_3DSTATE_SO_DECL_LIST
, /* (0x3, 0x1, 0x17) */
103 ILO_GPE_GEN7_3DSTATE_SO_BUFFER
, /* (0x3, 0x1, 0x18) */
104 ILO_GPE_GEN7_PIPE_CONTROL
, /* (0x3, 0x2, 0x00) */
105 ILO_GPE_GEN7_3DPRIMITIVE
, /* (0x3, 0x3, 0x00) */
107 ILO_GPE_GEN7_COMMAND_COUNT
,
111 * Indirect states that GEN7 GPE could emit.
113 enum ilo_gpe_gen7_state
{
114 ILO_GPE_GEN7_INTERFACE_DESCRIPTOR_DATA
,
115 ILO_GPE_GEN7_SF_CLIP_VIEWPORT
,
116 ILO_GPE_GEN7_CC_VIEWPORT
,
117 ILO_GPE_GEN7_COLOR_CALC_STATE
,
118 ILO_GPE_GEN7_BLEND_STATE
,
119 ILO_GPE_GEN7_DEPTH_STENCIL_STATE
,
120 ILO_GPE_GEN7_SCISSOR_RECT
,
121 ILO_GPE_GEN7_BINDING_TABLE_STATE
,
122 ILO_GPE_GEN7_SURFACE_STATE
,
123 ILO_GPE_GEN7_SAMPLER_STATE
,
124 ILO_GPE_GEN7_SAMPLER_BORDER_COLOR_STATE
,
125 ILO_GPE_GEN7_PUSH_CONSTANT_BUFFER
,
127 ILO_GPE_GEN7_STATE_COUNT
,
130 typedef ilo_gpe_gen6_STATE_BASE_ADDRESS ilo_gpe_gen7_STATE_BASE_ADDRESS
;
131 typedef ilo_gpe_gen6_STATE_SIP ilo_gpe_gen7_STATE_SIP
;
132 typedef ilo_gpe_gen6_3DSTATE_VF_STATISTICS ilo_gpe_gen7_3DSTATE_VF_STATISTICS
;
133 typedef ilo_gpe_gen6_PIPELINE_SELECT ilo_gpe_gen7_PIPELINE_SELECT
;
134 typedef ilo_gpe_gen6_MEDIA_VFE_STATE ilo_gpe_gen7_MEDIA_VFE_STATE
;
135 typedef ilo_gpe_gen6_MEDIA_CURBE_LOAD ilo_gpe_gen7_MEDIA_CURBE_LOAD
;
136 typedef ilo_gpe_gen6_MEDIA_INTERFACE_DESCRIPTOR_LOAD ilo_gpe_gen7_MEDIA_INTERFACE_DESCRIPTOR_LOAD
;
137 typedef ilo_gpe_gen6_MEDIA_STATE_FLUSH ilo_gpe_gen7_MEDIA_STATE_FLUSH
;
140 (*ilo_gpe_gen7_GPGPU_WALKER
)(const struct ilo_dev_info
*dev
,
143 typedef ilo_gpe_gen6_3DSTATE_CLEAR_PARAMS ilo_gpe_gen7_3DSTATE_CLEAR_PARAMS
;
144 typedef ilo_gpe_gen6_3DSTATE_DEPTH_BUFFER ilo_gpe_gen7_3DSTATE_DEPTH_BUFFER
;
145 typedef ilo_gpe_gen6_3DSTATE_STENCIL_BUFFER ilo_gpe_gen7_3DSTATE_STENCIL_BUFFER
;
146 typedef ilo_gpe_gen6_3DSTATE_HIER_DEPTH_BUFFER ilo_gpe_gen7_3DSTATE_HIER_DEPTH_BUFFER
;
147 typedef ilo_gpe_gen6_3DSTATE_VERTEX_BUFFERS ilo_gpe_gen7_3DSTATE_VERTEX_BUFFERS
;
148 typedef ilo_gpe_gen6_3DSTATE_VERTEX_ELEMENTS ilo_gpe_gen7_3DSTATE_VERTEX_ELEMENTS
;
149 typedef ilo_gpe_gen6_3DSTATE_INDEX_BUFFER ilo_gpe_gen7_3DSTATE_INDEX_BUFFER
;
152 (*ilo_gpe_gen7_3DSTATE_CC_STATE_POINTERS
)(const struct ilo_dev_info
*dev
,
153 uint32_t color_calc_state
,
156 typedef ilo_gpe_gen6_3DSTATE_SCISSOR_STATE_POINTERS ilo_gpe_gen7_3DSTATE_SCISSOR_STATE_POINTERS
;
157 typedef ilo_gpe_gen6_3DSTATE_VS ilo_gpe_gen7_3DSTATE_VS
;
160 (*ilo_gpe_gen7_3DSTATE_GS
)(const struct ilo_dev_info
*dev
,
161 const struct ilo_shader_state
*gs
,
165 typedef ilo_gpe_gen6_3DSTATE_CLIP ilo_gpe_gen7_3DSTATE_CLIP
;
168 (*ilo_gpe_gen7_3DSTATE_SF
)(const struct ilo_dev_info
*dev
,
169 const struct ilo_rasterizer_state
*rasterizer
,
170 const struct pipe_surface
*zs_surf
,
174 (*ilo_gpe_gen7_3DSTATE_WM
)(const struct ilo_dev_info
*dev
,
175 const struct ilo_shader_state
*fs
,
176 const struct ilo_rasterizer_state
*rasterizer
,
180 typedef ilo_gpe_gen6_3DSTATE_CONSTANT_VS ilo_gpe_gen7_3DSTATE_CONSTANT_VS
;
181 typedef ilo_gpe_gen6_3DSTATE_CONSTANT_GS ilo_gpe_gen7_3DSTATE_CONSTANT_GS
;
182 typedef ilo_gpe_gen6_3DSTATE_CONSTANT_PS ilo_gpe_gen7_3DSTATE_CONSTANT_PS
;
185 (*ilo_gpe_gen7_3DSTATE_SAMPLE_MASK
)(const struct ilo_dev_info
*dev
,
186 unsigned sample_mask
,
191 (*ilo_gpe_gen7_3DSTATE_CONSTANT_HS
)(const struct ilo_dev_info
*dev
,
192 const uint32_t *bufs
, const int *sizes
,
197 (*ilo_gpe_gen7_3DSTATE_CONSTANT_DS
)(const struct ilo_dev_info
*dev
,
198 const uint32_t *bufs
, const int *sizes
,
203 (*ilo_gpe_gen7_3DSTATE_HS
)(const struct ilo_dev_info
*dev
,
204 const struct ilo_shader_state
*hs
,
209 (*ilo_gpe_gen7_3DSTATE_TE
)(const struct ilo_dev_info
*dev
,
213 (*ilo_gpe_gen7_3DSTATE_DS
)(const struct ilo_dev_info
*dev
,
214 const struct ilo_shader_state
*ds
,
219 (*ilo_gpe_gen7_3DSTATE_STREAMOUT
)(const struct ilo_dev_info
*dev
,
220 unsigned buffer_mask
,
221 int vertex_attrib_count
,
222 bool rasterizer_discard
,
226 (*ilo_gpe_gen7_3DSTATE_SBE
)(const struct ilo_dev_info
*dev
,
227 const struct ilo_rasterizer_state
*rasterizer
,
228 const struct ilo_shader_state
*fs
,
229 const struct ilo_shader_state
*last_sh
,
233 (*ilo_gpe_gen7_3DSTATE_PS
)(const struct ilo_dev_info
*dev
,
234 const struct ilo_shader_state
*fs
,
235 int num_samplers
, bool dual_blend
,
239 (*ilo_gpe_gen7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
)(const struct ilo_dev_info
*dev
,
244 (*ilo_gpe_gen7_3DSTATE_VIEWPORT_STATE_POINTERS_CC
)(const struct ilo_dev_info
*dev
,
249 (*ilo_gpe_gen7_3DSTATE_BLEND_STATE_POINTERS
)(const struct ilo_dev_info
*dev
,
254 (*ilo_gpe_gen7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS
)(const struct ilo_dev_info
*dev
,
255 uint32_t depth_stencil
,
259 (*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_VS
)(const struct ilo_dev_info
*dev
,
260 uint32_t binding_table
,
264 (*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_HS
)(const struct ilo_dev_info
*dev
,
265 uint32_t binding_table
,
269 (*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_DS
)(const struct ilo_dev_info
*dev
,
270 uint32_t binding_table
,
274 (*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_GS
)(const struct ilo_dev_info
*dev
,
275 uint32_t binding_table
,
279 (*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_PS
)(const struct ilo_dev_info
*dev
,
280 uint32_t binding_table
,
284 (*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_VS
)(const struct ilo_dev_info
*dev
,
285 uint32_t sampler_state
,
289 (*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_HS
)(const struct ilo_dev_info
*dev
,
290 uint32_t sampler_state
,
294 (*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_DS
)(const struct ilo_dev_info
*dev
,
295 uint32_t sampler_state
,
299 (*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_GS
)(const struct ilo_dev_info
*dev
,
300 uint32_t sampler_state
,
304 (*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_PS
)(const struct ilo_dev_info
*dev
,
305 uint32_t sampler_state
,
309 (*ilo_gpe_gen7_3DSTATE_URB_VS
)(const struct ilo_dev_info
*dev
,
310 int offset
, int size
, int entry_size
,
314 (*ilo_gpe_gen7_3DSTATE_URB_HS
)(const struct ilo_dev_info
*dev
,
315 int offset
, int size
, int entry_size
,
319 (*ilo_gpe_gen7_3DSTATE_URB_DS
)(const struct ilo_dev_info
*dev
,
320 int offset
, int size
, int entry_size
,
324 (*ilo_gpe_gen7_3DSTATE_URB_GS
)(const struct ilo_dev_info
*dev
,
325 int offset
, int size
, int entry_size
,
328 typedef ilo_gpe_gen6_3DSTATE_DRAWING_RECTANGLE ilo_gpe_gen7_3DSTATE_DRAWING_RECTANGLE
;
329 typedef ilo_gpe_gen6_3DSTATE_POLY_STIPPLE_OFFSET ilo_gpe_gen7_3DSTATE_POLY_STIPPLE_OFFSET
;
330 typedef ilo_gpe_gen6_3DSTATE_POLY_STIPPLE_PATTERN ilo_gpe_gen7_3DSTATE_POLY_STIPPLE_PATTERN
;
331 typedef ilo_gpe_gen6_3DSTATE_LINE_STIPPLE ilo_gpe_gen7_3DSTATE_LINE_STIPPLE
;
332 typedef ilo_gpe_gen6_3DSTATE_AA_LINE_PARAMETERS ilo_gpe_gen7_3DSTATE_AA_LINE_PARAMETERS
;
333 typedef ilo_gpe_gen6_3DSTATE_MULTISAMPLE ilo_gpe_gen7_3DSTATE_MULTISAMPLE
;
336 (*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_VS
)(const struct ilo_dev_info
*dev
,
337 int offset
, int size
,
341 (*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_HS
)(const struct ilo_dev_info
*dev
,
342 int offset
, int size
,
346 (*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_DS
)(const struct ilo_dev_info
*dev
,
347 int offset
, int size
,
351 (*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_GS
)(const struct ilo_dev_info
*dev
,
352 int offset
, int size
,
356 (*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_PS
)(const struct ilo_dev_info
*dev
,
357 int offset
, int size
,
361 (*ilo_gpe_gen7_3DSTATE_SO_DECL_LIST
)(const struct ilo_dev_info
*dev
,
362 const struct pipe_stream_output_info
*so_info
,
366 (*ilo_gpe_gen7_3DSTATE_SO_BUFFER
)(const struct ilo_dev_info
*dev
,
367 int index
, int base
, int stride
,
368 const struct pipe_stream_output_target
*so_target
,
371 typedef ilo_gpe_gen6_PIPE_CONTROL ilo_gpe_gen7_PIPE_CONTROL
;
372 typedef ilo_gpe_gen6_3DPRIMITIVE ilo_gpe_gen7_3DPRIMITIVE
;
373 typedef ilo_gpe_gen6_INTERFACE_DESCRIPTOR_DATA ilo_gpe_gen7_INTERFACE_DESCRIPTOR_DATA
;
376 (*ilo_gpe_gen7_SF_CLIP_VIEWPORT
)(const struct ilo_dev_info
*dev
,
377 const struct ilo_viewport_cso
*viewports
,
378 unsigned num_viewports
,
381 typedef ilo_gpe_gen6_CC_VIEWPORT ilo_gpe_gen7_CC_VIEWPORT
;
382 typedef ilo_gpe_gen6_COLOR_CALC_STATE ilo_gpe_gen7_COLOR_CALC_STATE
;
383 typedef ilo_gpe_gen6_BLEND_STATE ilo_gpe_gen7_BLEND_STATE
;
384 typedef ilo_gpe_gen6_DEPTH_STENCIL_STATE ilo_gpe_gen7_DEPTH_STENCIL_STATE
;
385 typedef ilo_gpe_gen6_SCISSOR_RECT ilo_gpe_gen7_SCISSOR_RECT
;
386 typedef ilo_gpe_gen6_BINDING_TABLE_STATE ilo_gpe_gen7_BINDING_TABLE_STATE
;
387 typedef ilo_gpe_gen6_SURFACE_STATE ilo_gpe_gen7_SURFACE_STATE
;
388 typedef ilo_gpe_gen6_SAMPLER_STATE ilo_gpe_gen7_SAMPLER_STATE
;
389 typedef ilo_gpe_gen6_SAMPLER_BORDER_COLOR_STATE ilo_gpe_gen7_SAMPLER_BORDER_COLOR_STATE
;
390 typedef ilo_gpe_gen6_push_constant_buffer ilo_gpe_gen7_push_constant_buffer
;
393 * GEN7 graphics processing engine
397 struct ilo_gpe_gen7
{
398 int (*estimate_command_size
)(const struct ilo_dev_info
*dev
,
399 enum ilo_gpe_gen7_command cmd
,
402 int (*estimate_state_size
)(const struct ilo_dev_info
*dev
,
403 enum ilo_gpe_gen7_state state
,
406 #define GEN7_EMIT(name) ilo_gpe_gen7_ ## name emit_ ## name
407 GEN7_EMIT(STATE_BASE_ADDRESS
);
408 GEN7_EMIT(STATE_SIP
);
409 GEN7_EMIT(3DSTATE_VF_STATISTICS
);
410 GEN7_EMIT(PIPELINE_SELECT
);
411 GEN7_EMIT(MEDIA_VFE_STATE
);
412 GEN7_EMIT(MEDIA_CURBE_LOAD
);
413 GEN7_EMIT(MEDIA_INTERFACE_DESCRIPTOR_LOAD
);
414 GEN7_EMIT(MEDIA_STATE_FLUSH
);
415 GEN7_EMIT(GPGPU_WALKER
);
416 GEN7_EMIT(3DSTATE_CLEAR_PARAMS
);
417 GEN7_EMIT(3DSTATE_DEPTH_BUFFER
);
418 GEN7_EMIT(3DSTATE_STENCIL_BUFFER
);
419 GEN7_EMIT(3DSTATE_HIER_DEPTH_BUFFER
);
420 GEN7_EMIT(3DSTATE_VERTEX_BUFFERS
);
421 GEN7_EMIT(3DSTATE_VERTEX_ELEMENTS
);
422 GEN7_EMIT(3DSTATE_INDEX_BUFFER
);
423 GEN7_EMIT(3DSTATE_CC_STATE_POINTERS
);
424 GEN7_EMIT(3DSTATE_SCISSOR_STATE_POINTERS
);
425 GEN7_EMIT(3DSTATE_VS
);
426 GEN7_EMIT(3DSTATE_GS
);
427 GEN7_EMIT(3DSTATE_CLIP
);
428 GEN7_EMIT(3DSTATE_SF
);
429 GEN7_EMIT(3DSTATE_WM
);
430 GEN7_EMIT(3DSTATE_CONSTANT_VS
);
431 GEN7_EMIT(3DSTATE_CONSTANT_GS
);
432 GEN7_EMIT(3DSTATE_CONSTANT_PS
);
433 GEN7_EMIT(3DSTATE_SAMPLE_MASK
);
434 GEN7_EMIT(3DSTATE_CONSTANT_HS
);
435 GEN7_EMIT(3DSTATE_CONSTANT_DS
);
436 GEN7_EMIT(3DSTATE_HS
);
437 GEN7_EMIT(3DSTATE_TE
);
438 GEN7_EMIT(3DSTATE_DS
);
439 GEN7_EMIT(3DSTATE_STREAMOUT
);
440 GEN7_EMIT(3DSTATE_SBE
);
441 GEN7_EMIT(3DSTATE_PS
);
442 GEN7_EMIT(3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP
);
443 GEN7_EMIT(3DSTATE_VIEWPORT_STATE_POINTERS_CC
);
444 GEN7_EMIT(3DSTATE_BLEND_STATE_POINTERS
);
445 GEN7_EMIT(3DSTATE_DEPTH_STENCIL_STATE_POINTERS
);
446 GEN7_EMIT(3DSTATE_BINDING_TABLE_POINTERS_VS
);
447 GEN7_EMIT(3DSTATE_BINDING_TABLE_POINTERS_HS
);
448 GEN7_EMIT(3DSTATE_BINDING_TABLE_POINTERS_DS
);
449 GEN7_EMIT(3DSTATE_BINDING_TABLE_POINTERS_GS
);
450 GEN7_EMIT(3DSTATE_BINDING_TABLE_POINTERS_PS
);
451 GEN7_EMIT(3DSTATE_SAMPLER_STATE_POINTERS_VS
);
452 GEN7_EMIT(3DSTATE_SAMPLER_STATE_POINTERS_HS
);
453 GEN7_EMIT(3DSTATE_SAMPLER_STATE_POINTERS_DS
);
454 GEN7_EMIT(3DSTATE_SAMPLER_STATE_POINTERS_GS
);
455 GEN7_EMIT(3DSTATE_SAMPLER_STATE_POINTERS_PS
);
456 GEN7_EMIT(3DSTATE_URB_VS
);
457 GEN7_EMIT(3DSTATE_URB_HS
);
458 GEN7_EMIT(3DSTATE_URB_DS
);
459 GEN7_EMIT(3DSTATE_URB_GS
);
460 GEN7_EMIT(3DSTATE_DRAWING_RECTANGLE
);
461 GEN7_EMIT(3DSTATE_POLY_STIPPLE_OFFSET
);
462 GEN7_EMIT(3DSTATE_POLY_STIPPLE_PATTERN
);
463 GEN7_EMIT(3DSTATE_LINE_STIPPLE
);
464 GEN7_EMIT(3DSTATE_AA_LINE_PARAMETERS
);
465 GEN7_EMIT(3DSTATE_MULTISAMPLE
);
466 GEN7_EMIT(3DSTATE_PUSH_CONSTANT_ALLOC_VS
);
467 GEN7_EMIT(3DSTATE_PUSH_CONSTANT_ALLOC_HS
);
468 GEN7_EMIT(3DSTATE_PUSH_CONSTANT_ALLOC_DS
);
469 GEN7_EMIT(3DSTATE_PUSH_CONSTANT_ALLOC_GS
);
470 GEN7_EMIT(3DSTATE_PUSH_CONSTANT_ALLOC_PS
);
471 GEN7_EMIT(3DSTATE_SO_DECL_LIST
);
472 GEN7_EMIT(3DSTATE_SO_BUFFER
);
473 GEN7_EMIT(PIPE_CONTROL
);
474 GEN7_EMIT(3DPRIMITIVE
);
475 GEN7_EMIT(INTERFACE_DESCRIPTOR_DATA
);
476 GEN7_EMIT(SF_CLIP_VIEWPORT
);
477 GEN7_EMIT(CC_VIEWPORT
);
478 GEN7_EMIT(COLOR_CALC_STATE
);
479 GEN7_EMIT(BLEND_STATE
);
480 GEN7_EMIT(DEPTH_STENCIL_STATE
);
481 GEN7_EMIT(SCISSOR_RECT
);
482 GEN7_EMIT(BINDING_TABLE_STATE
);
483 GEN7_EMIT(SURFACE_STATE
);
484 GEN7_EMIT(SAMPLER_STATE
);
485 GEN7_EMIT(SAMPLER_BORDER_COLOR_STATE
);
486 GEN7_EMIT(push_constant_buffer
);
490 const struct ilo_gpe_gen7
*
491 ilo_gpe_gen7_get(void);
493 #endif /* ILO_GPE_GEN7_H */