2 * Mesa 3-D graphics library
4 * Copyright (C) 2012-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_GEN6_H
29 #define ILO_GPE_GEN6_H
31 #include "ilo_common.h"
33 #define ILO_GPE_VALID_GEN(dev, min_gen, max_gen) \
34 assert((dev)->gen >= ILO_GEN(min_gen) && (dev)->gen <= ILO_GEN(max_gen))
36 #define ILO_GPE_CMD(pipeline, op, subop) \
37 (0x3 << 29 | (pipeline) << 27 | (op) << 24 | (subop) << 16)
40 * Commands that GEN6 GPE could emit.
42 enum ilo_gpe_gen6_command
{
43 ILO_GPE_GEN6_STATE_BASE_ADDRESS
, /* (0x0, 0x1, 0x01) */
44 ILO_GPE_GEN6_STATE_SIP
, /* (0x0, 0x1, 0x02) */
45 ILO_GPE_GEN6_3DSTATE_VF_STATISTICS
, /* (0x1, 0x0, 0x0b) */
46 ILO_GPE_GEN6_PIPELINE_SELECT
, /* (0x1, 0x1, 0x04) */
47 ILO_GPE_GEN6_MEDIA_VFE_STATE
, /* (0x2, 0x0, 0x00) */
48 ILO_GPE_GEN6_MEDIA_CURBE_LOAD
, /* (0x2, 0x0, 0x01) */
49 ILO_GPE_GEN6_MEDIA_INTERFACE_DESCRIPTOR_LOAD
, /* (0x2, 0x0, 0x02) */
50 ILO_GPE_GEN6_MEDIA_GATEWAY_STATE
, /* (0x2, 0x0, 0x03) */
51 ILO_GPE_GEN6_MEDIA_STATE_FLUSH
, /* (0x2, 0x0, 0x04) */
52 ILO_GPE_GEN6_MEDIA_OBJECT_WALKER
, /* (0x2, 0x1, 0x03) */
53 ILO_GPE_GEN6_3DSTATE_BINDING_TABLE_POINTERS
, /* (0x3, 0x0, 0x01) */
54 ILO_GPE_GEN6_3DSTATE_SAMPLER_STATE_POINTERS
, /* (0x3, 0x0, 0x02) */
55 ILO_GPE_GEN6_3DSTATE_URB
, /* (0x3, 0x0, 0x05) */
56 ILO_GPE_GEN6_3DSTATE_VERTEX_BUFFERS
, /* (0x3, 0x0, 0x08) */
57 ILO_GPE_GEN6_3DSTATE_VERTEX_ELEMENTS
, /* (0x3, 0x0, 0x09) */
58 ILO_GPE_GEN6_3DSTATE_INDEX_BUFFER
, /* (0x3, 0x0, 0x0a) */
59 ILO_GPE_GEN6_3DSTATE_VIEWPORT_STATE_POINTERS
, /* (0x3, 0x0, 0x0d) */
60 ILO_GPE_GEN6_3DSTATE_CC_STATE_POINTERS
, /* (0x3, 0x0, 0x0e) */
61 ILO_GPE_GEN6_3DSTATE_SCISSOR_STATE_POINTERS
, /* (0x3, 0x0, 0x0f) */
62 ILO_GPE_GEN6_3DSTATE_VS
, /* (0x3, 0x0, 0x10) */
63 ILO_GPE_GEN6_3DSTATE_GS
, /* (0x3, 0x0, 0x11) */
64 ILO_GPE_GEN6_3DSTATE_CLIP
, /* (0x3, 0x0, 0x12) */
65 ILO_GPE_GEN6_3DSTATE_SF
, /* (0x3, 0x0, 0x13) */
66 ILO_GPE_GEN6_3DSTATE_WM
, /* (0x3, 0x0, 0x14) */
67 ILO_GPE_GEN6_3DSTATE_CONSTANT_VS
, /* (0x3, 0x0, 0x15) */
68 ILO_GPE_GEN6_3DSTATE_CONSTANT_GS
, /* (0x3, 0x0, 0x16) */
69 ILO_GPE_GEN6_3DSTATE_CONSTANT_PS
, /* (0x3, 0x0, 0x17) */
70 ILO_GPE_GEN6_3DSTATE_SAMPLE_MASK
, /* (0x3, 0x0, 0x18) */
71 ILO_GPE_GEN6_3DSTATE_DRAWING_RECTANGLE
, /* (0x3, 0x1, 0x00) */
72 ILO_GPE_GEN6_3DSTATE_DEPTH_BUFFER
, /* (0x3, 0x1, 0x05) */
73 ILO_GPE_GEN6_3DSTATE_POLY_STIPPLE_OFFSET
, /* (0x3, 0x1, 0x06) */
74 ILO_GPE_GEN6_3DSTATE_POLY_STIPPLE_PATTERN
, /* (0x3, 0x1, 0x07) */
75 ILO_GPE_GEN6_3DSTATE_LINE_STIPPLE
, /* (0x3, 0x1, 0x08) */
76 ILO_GPE_GEN6_3DSTATE_AA_LINE_PARAMETERS
, /* (0x3, 0x1, 0x0a) */
77 ILO_GPE_GEN6_3DSTATE_GS_SVB_INDEX
, /* (0x3, 0x1, 0x0b) */
78 ILO_GPE_GEN6_3DSTATE_MULTISAMPLE
, /* (0x3, 0x1, 0x0d) */
79 ILO_GPE_GEN6_3DSTATE_STENCIL_BUFFER
, /* (0x3, 0x1, 0x0e) */
80 ILO_GPE_GEN6_3DSTATE_HIER_DEPTH_BUFFER
, /* (0x3, 0x1, 0x0f) */
81 ILO_GPE_GEN6_3DSTATE_CLEAR_PARAMS
, /* (0x3, 0x1, 0x10) */
82 ILO_GPE_GEN6_PIPE_CONTROL
, /* (0x3, 0x2, 0x00) */
83 ILO_GPE_GEN6_3DPRIMITIVE
, /* (0x3, 0x3, 0x00) */
85 ILO_GPE_GEN6_COMMAND_COUNT
,
89 * Indirect states that GEN6 GPE could emit.
91 enum ilo_gpe_gen6_state
{
92 ILO_GPE_GEN6_INTERFACE_DESCRIPTOR_DATA
,
93 ILO_GPE_GEN6_SF_VIEWPORT
,
94 ILO_GPE_GEN6_CLIP_VIEWPORT
,
95 ILO_GPE_GEN6_CC_VIEWPORT
,
96 ILO_GPE_GEN6_COLOR_CALC_STATE
,
97 ILO_GPE_GEN6_BLEND_STATE
,
98 ILO_GPE_GEN6_DEPTH_STENCIL_STATE
,
99 ILO_GPE_GEN6_SCISSOR_RECT
,
100 ILO_GPE_GEN6_BINDING_TABLE_STATE
,
101 ILO_GPE_GEN6_SURFACE_STATE
,
102 ILO_GPE_GEN6_SAMPLER_STATE
,
103 ILO_GPE_GEN6_SAMPLER_BORDER_COLOR_STATE
,
104 ILO_GPE_GEN6_PUSH_CONSTANT_BUFFER
,
106 ILO_GPE_GEN6_STATE_COUNT
,
109 enum intel_tiling_mode
;
117 (*ilo_gpe_gen6_STATE_BASE_ADDRESS
)(const struct ilo_dev_info
*dev
,
118 struct intel_bo
*general_state_bo
,
119 struct intel_bo
*surface_state_bo
,
120 struct intel_bo
*dynamic_state_bo
,
121 struct intel_bo
*indirect_object_bo
,
122 struct intel_bo
*instruction_bo
,
123 uint32_t general_state_size
,
124 uint32_t dynamic_state_size
,
125 uint32_t indirect_object_size
,
126 uint32_t instruction_size
,
130 (*ilo_gpe_gen6_STATE_SIP
)(const struct ilo_dev_info
*dev
,
135 (*ilo_gpe_gen6_3DSTATE_VF_STATISTICS
)(const struct ilo_dev_info
*dev
,
140 (*ilo_gpe_gen6_PIPELINE_SELECT
)(const struct ilo_dev_info
*dev
,
145 (*ilo_gpe_gen6_MEDIA_VFE_STATE
)(const struct ilo_dev_info
*dev
,
146 int max_threads
, int num_urb_entries
,
151 (*ilo_gpe_gen6_MEDIA_CURBE_LOAD
)(const struct ilo_dev_info
*dev
,
152 uint32_t buf
, int size
,
156 (*ilo_gpe_gen6_MEDIA_INTERFACE_DESCRIPTOR_LOAD
)(const struct ilo_dev_info
*dev
,
157 uint32_t offset
, int num_ids
,
161 (*ilo_gpe_gen6_MEDIA_GATEWAY_STATE
)(const struct ilo_dev_info
*dev
,
162 int id
, int byte
, int thread_count
,
166 (*ilo_gpe_gen6_MEDIA_STATE_FLUSH
)(const struct ilo_dev_info
*dev
,
167 int thread_count_water_mark
,
172 (*ilo_gpe_gen6_MEDIA_OBJECT_WALKER
)(const struct ilo_dev_info
*dev
,
176 (*ilo_gpe_gen6_3DSTATE_BINDING_TABLE_POINTERS
)(const struct ilo_dev_info
*dev
,
177 uint32_t vs_binding_table
,
178 uint32_t gs_binding_table
,
179 uint32_t ps_binding_table
,
183 (*ilo_gpe_gen6_3DSTATE_SAMPLER_STATE_POINTERS
)(const struct ilo_dev_info
*dev
,
184 uint32_t vs_sampler_state
,
185 uint32_t gs_sampler_state
,
186 uint32_t ps_sampler_state
,
190 (*ilo_gpe_gen6_3DSTATE_URB
)(const struct ilo_dev_info
*dev
,
191 int vs_total_size
, int gs_total_size
,
192 int vs_entry_size
, int gs_entry_size
,
196 (*ilo_gpe_gen6_3DSTATE_VERTEX_BUFFERS
)(const struct ilo_dev_info
*dev
,
197 const struct pipe_vertex_buffer
*vbuffers
,
198 const int *instance_divisors
,
199 uint32_t vbuffer_mask
,
203 (*ilo_gpe_gen6_3DSTATE_VERTEX_ELEMENTS
)(const struct ilo_dev_info
*dev
,
204 const struct pipe_vertex_element
*velements
,
206 bool last_velement_edgeflag
,
207 bool prepend_generated_ids
,
211 (*ilo_gpe_gen6_3DSTATE_INDEX_BUFFER
)(const struct ilo_dev_info
*dev
,
212 const struct pipe_index_buffer
*ib
,
213 bool enable_cut_index
,
217 (*ilo_gpe_gen6_3DSTATE_VIEWPORT_STATE_POINTERS
)(const struct ilo_dev_info
*dev
,
218 uint32_t clip_viewport
,
219 uint32_t sf_viewport
,
220 uint32_t cc_viewport
,
224 (*ilo_gpe_gen6_3DSTATE_CC_STATE_POINTERS
)(const struct ilo_dev_info
*dev
,
225 uint32_t blend_state
,
226 uint32_t depth_stencil_state
,
227 uint32_t color_calc_state
,
231 (*ilo_gpe_gen6_3DSTATE_SCISSOR_STATE_POINTERS
)(const struct ilo_dev_info
*dev
,
232 uint32_t scissor_rect
,
237 (*ilo_gpe_gen6_3DSTATE_VS
)(const struct ilo_dev_info
*dev
,
238 const struct ilo_shader
*vs
,
243 (*ilo_gpe_gen6_3DSTATE_GS
)(const struct ilo_dev_info
*dev
,
244 const struct ilo_shader
*gs
,
245 const struct ilo_shader
*vs
,
250 (*ilo_gpe_gen6_3DSTATE_CLIP
)(const struct ilo_dev_info
*dev
,
251 const struct pipe_rasterizer_state
*rasterizer
,
252 bool has_linear_interp
,
253 bool enable_guardband
,
258 (*ilo_gpe_gen6_3DSTATE_SF
)(const struct ilo_dev_info
*dev
,
259 const struct pipe_rasterizer_state
*rasterizer
,
260 const struct ilo_shader
*fs
,
261 const struct ilo_shader
*last_sh
,
265 (*ilo_gpe_gen6_3DSTATE_WM
)(const struct ilo_dev_info
*dev
,
266 const struct ilo_shader
*fs
,
268 const struct pipe_rasterizer_state
*rasterizer
,
269 bool dual_blend
, bool cc_may_kill
,
273 (*ilo_gpe_gen6_3DSTATE_CONSTANT_VS
)(const struct ilo_dev_info
*dev
,
274 const uint32_t *bufs
, const int *sizes
,
279 (*ilo_gpe_gen6_3DSTATE_CONSTANT_GS
)(const struct ilo_dev_info
*dev
,
280 const uint32_t *bufs
, const int *sizes
,
285 (*ilo_gpe_gen6_3DSTATE_CONSTANT_PS
)(const struct ilo_dev_info
*dev
,
286 const uint32_t *bufs
, const int *sizes
,
291 (*ilo_gpe_gen6_3DSTATE_SAMPLE_MASK
)(const struct ilo_dev_info
*dev
,
292 unsigned sample_mask
,
296 (*ilo_gpe_gen6_3DSTATE_DRAWING_RECTANGLE
)(const struct ilo_dev_info
*dev
,
297 unsigned x
, unsigned y
,
298 unsigned width
, unsigned height
,
302 (*ilo_gpe_gen6_3DSTATE_DEPTH_BUFFER
)(const struct ilo_dev_info
*dev
,
303 const struct pipe_surface
*surface
,
308 (*ilo_gpe_gen6_3DSTATE_POLY_STIPPLE_OFFSET
)(const struct ilo_dev_info
*dev
,
309 int x_offset
, int y_offset
,
313 (*ilo_gpe_gen6_3DSTATE_POLY_STIPPLE_PATTERN
)(const struct ilo_dev_info
*dev
,
314 const struct pipe_poly_stipple
*pattern
,
318 (*ilo_gpe_gen6_3DSTATE_LINE_STIPPLE
)(const struct ilo_dev_info
*dev
,
319 unsigned pattern
, unsigned factor
,
323 (*ilo_gpe_gen6_3DSTATE_AA_LINE_PARAMETERS
)(const struct ilo_dev_info
*dev
,
327 (*ilo_gpe_gen6_3DSTATE_GS_SVB_INDEX
)(const struct ilo_dev_info
*dev
,
328 int index
, unsigned svbi
,
330 bool load_vertex_count
,
335 (*ilo_gpe_gen6_3DSTATE_MULTISAMPLE
)(const struct ilo_dev_info
*dev
,
337 const uint32_t *packed_sample_pos
,
338 bool pixel_location_center
,
342 (*ilo_gpe_gen6_3DSTATE_STENCIL_BUFFER
)(const struct ilo_dev_info
*dev
,
343 const struct pipe_surface
*surface
,
347 (*ilo_gpe_gen6_3DSTATE_HIER_DEPTH_BUFFER
)(const struct ilo_dev_info
*dev
,
348 const struct pipe_surface
*surface
,
352 (*ilo_gpe_gen6_3DSTATE_CLEAR_PARAMS
)(const struct ilo_dev_info
*dev
,
357 (*ilo_gpe_gen6_PIPE_CONTROL
)(const struct ilo_dev_info
*dev
,
359 struct intel_bo
*bo
, uint32_t bo_offset
,
364 (*ilo_gpe_gen6_3DPRIMITIVE
)(const struct ilo_dev_info
*dev
,
365 const struct pipe_draw_info
*info
,
370 (*ilo_gpe_gen6_INTERFACE_DESCRIPTOR_DATA
)(const struct ilo_dev_info
*dev
,
371 const struct ilo_shader
**cs
,
372 uint32_t *sampler_state
,
374 uint32_t *binding_table_state
,
379 (*ilo_gpe_gen6_SF_VIEWPORT
)(const struct ilo_dev_info
*dev
,
380 const struct ilo_viewport_cso
*viewports
,
381 unsigned num_viewports
,
385 (*ilo_gpe_gen6_CLIP_VIEWPORT
)(const struct ilo_dev_info
*dev
,
386 const struct ilo_viewport_cso
*viewports
,
387 unsigned num_viewports
,
391 (*ilo_gpe_gen6_CC_VIEWPORT
)(const struct ilo_dev_info
*dev
,
392 const struct ilo_viewport_cso
*viewports
,
393 unsigned num_viewports
,
397 (*ilo_gpe_gen6_COLOR_CALC_STATE
)(const struct ilo_dev_info
*dev
,
398 const struct pipe_stencil_ref
*stencil_ref
,
400 const struct pipe_blend_color
*blend_color
,
404 (*ilo_gpe_gen6_BLEND_STATE
)(const struct ilo_dev_info
*dev
,
405 const struct ilo_blend_state
*blend
,
406 const struct ilo_fb_state
*fb
,
407 const struct pipe_alpha_state
*alpha
,
411 (*ilo_gpe_gen6_DEPTH_STENCIL_STATE
)(const struct ilo_dev_info
*dev
,
412 const struct pipe_depth_stencil_alpha_state
*dsa
,
416 (*ilo_gpe_gen6_SCISSOR_RECT
)(const struct ilo_dev_info
*dev
,
417 const struct ilo_scissor_state
*scissor
,
418 unsigned num_viewports
,
422 (*ilo_gpe_gen6_BINDING_TABLE_STATE
)(const struct ilo_dev_info
*dev
,
423 uint32_t *surface_states
,
424 int num_surface_states
,
428 (*ilo_gpe_gen6_surf_SURFACE_STATE
)(const struct ilo_dev_info
*dev
,
429 const struct pipe_surface
*surface
,
433 (*ilo_gpe_gen6_view_SURFACE_STATE
)(const struct ilo_dev_info
*dev
,
434 const struct pipe_sampler_view
*view
,
438 (*ilo_gpe_gen6_cbuf_SURFACE_STATE
)(const struct ilo_dev_info
*dev
,
439 const struct pipe_constant_buffer
*cbuf
,
443 (*ilo_gpe_gen6_so_SURFACE_STATE
)(const struct ilo_dev_info
*dev
,
444 const struct pipe_stream_output_target
*so
,
445 const struct pipe_stream_output_info
*so_info
,
450 (*ilo_gpe_gen6_SAMPLER_STATE
)(const struct ilo_dev_info
*dev
,
451 const struct ilo_sampler_cso
* const *samplers
,
452 const struct pipe_sampler_view
* const *sampler_views
,
453 const uint32_t *sampler_border_colors
,
458 (*ilo_gpe_gen6_SAMPLER_BORDER_COLOR_STATE
)(const struct ilo_dev_info
*dev
,
459 const struct ilo_sampler_cso
*sampler
,
463 (*ilo_gpe_gen6_push_constant_buffer
)(const struct ilo_dev_info
*dev
,
464 int size
, void **pcb
,
468 * GEN6 graphics processing engine
470 * This is a low-level interface. It does not handle the interdependencies
473 struct ilo_gpe_gen6
{
474 int (*estimate_command_size
)(const struct ilo_dev_info
*dev
,
475 enum ilo_gpe_gen6_command cmd
,
478 int (*estimate_state_size
)(const struct ilo_dev_info
*dev
,
479 enum ilo_gpe_gen6_state state
,
482 #define GEN6_EMIT(name) ilo_gpe_gen6_ ## name emit_ ## name
483 GEN6_EMIT(STATE_BASE_ADDRESS
);
484 GEN6_EMIT(STATE_SIP
);
485 GEN6_EMIT(3DSTATE_VF_STATISTICS
);
486 GEN6_EMIT(PIPELINE_SELECT
);
487 GEN6_EMIT(MEDIA_VFE_STATE
);
488 GEN6_EMIT(MEDIA_CURBE_LOAD
);
489 GEN6_EMIT(MEDIA_INTERFACE_DESCRIPTOR_LOAD
);
490 GEN6_EMIT(MEDIA_GATEWAY_STATE
);
491 GEN6_EMIT(MEDIA_STATE_FLUSH
);
492 GEN6_EMIT(MEDIA_OBJECT_WALKER
);
493 GEN6_EMIT(3DSTATE_BINDING_TABLE_POINTERS
);
494 GEN6_EMIT(3DSTATE_SAMPLER_STATE_POINTERS
);
495 GEN6_EMIT(3DSTATE_URB
);
496 GEN6_EMIT(3DSTATE_VERTEX_BUFFERS
);
497 GEN6_EMIT(3DSTATE_VERTEX_ELEMENTS
);
498 GEN6_EMIT(3DSTATE_INDEX_BUFFER
);
499 GEN6_EMIT(3DSTATE_VIEWPORT_STATE_POINTERS
);
500 GEN6_EMIT(3DSTATE_CC_STATE_POINTERS
);
501 GEN6_EMIT(3DSTATE_SCISSOR_STATE_POINTERS
);
502 GEN6_EMIT(3DSTATE_VS
);
503 GEN6_EMIT(3DSTATE_GS
);
504 GEN6_EMIT(3DSTATE_CLIP
);
505 GEN6_EMIT(3DSTATE_SF
);
506 GEN6_EMIT(3DSTATE_WM
);
507 GEN6_EMIT(3DSTATE_CONSTANT_VS
);
508 GEN6_EMIT(3DSTATE_CONSTANT_GS
);
509 GEN6_EMIT(3DSTATE_CONSTANT_PS
);
510 GEN6_EMIT(3DSTATE_SAMPLE_MASK
);
511 GEN6_EMIT(3DSTATE_DRAWING_RECTANGLE
);
512 GEN6_EMIT(3DSTATE_DEPTH_BUFFER
);
513 GEN6_EMIT(3DSTATE_POLY_STIPPLE_OFFSET
);
514 GEN6_EMIT(3DSTATE_POLY_STIPPLE_PATTERN
);
515 GEN6_EMIT(3DSTATE_LINE_STIPPLE
);
516 GEN6_EMIT(3DSTATE_AA_LINE_PARAMETERS
);
517 GEN6_EMIT(3DSTATE_GS_SVB_INDEX
);
518 GEN6_EMIT(3DSTATE_MULTISAMPLE
);
519 GEN6_EMIT(3DSTATE_STENCIL_BUFFER
);
520 GEN6_EMIT(3DSTATE_HIER_DEPTH_BUFFER
);
521 GEN6_EMIT(3DSTATE_CLEAR_PARAMS
);
522 GEN6_EMIT(PIPE_CONTROL
);
523 GEN6_EMIT(3DPRIMITIVE
);
524 GEN6_EMIT(INTERFACE_DESCRIPTOR_DATA
);
525 GEN6_EMIT(SF_VIEWPORT
);
526 GEN6_EMIT(CLIP_VIEWPORT
);
527 GEN6_EMIT(CC_VIEWPORT
);
528 GEN6_EMIT(COLOR_CALC_STATE
);
529 GEN6_EMIT(BLEND_STATE
);
530 GEN6_EMIT(DEPTH_STENCIL_STATE
);
531 GEN6_EMIT(SCISSOR_RECT
);
532 GEN6_EMIT(BINDING_TABLE_STATE
);
533 GEN6_EMIT(surf_SURFACE_STATE
);
534 GEN6_EMIT(view_SURFACE_STATE
);
535 GEN6_EMIT(cbuf_SURFACE_STATE
);
536 GEN6_EMIT(so_SURFACE_STATE
);
537 GEN6_EMIT(SAMPLER_STATE
);
538 GEN6_EMIT(SAMPLER_BORDER_COLOR_STATE
);
539 GEN6_EMIT(push_constant_buffer
);
543 const struct ilo_gpe_gen6
*
544 ilo_gpe_gen6_get(void);
546 /* Below are helpers for other GENs */
549 ilo_gpe_gen6_translate_winsys_tiling(enum intel_tiling_mode tiling
);
552 ilo_gpe_gen6_translate_pipe_prim(unsigned prim
);
555 ilo_gpe_gen6_translate_texture(enum pipe_texture_target target
);
558 ilo_gpe_gen6_fill_3dstate_sf_raster(const struct ilo_dev_info
*dev
,
559 const struct pipe_rasterizer_state
*rasterizer
,
561 enum pipe_format depth_format
,
562 bool separate_stencil
,
563 uint32_t *dw
, int num_dwords
);
566 ilo_gpe_gen6_fill_3dstate_sf_sbe(const struct ilo_dev_info
*dev
,
567 const struct pipe_rasterizer_state
*rasterizer
,
568 const struct ilo_shader
*fs
,
569 const struct ilo_shader
*last_sh
,
570 uint32_t *dw
, int num_dwords
);
573 ilo_gpe_gen6_emit_3DSTATE_DEPTH_BUFFER(const struct ilo_dev_info
*dev
,
574 const struct pipe_surface
*surface
,
575 const struct pipe_depth_stencil_alpha_state
*dsa
,
579 #endif /* ILO_GPE_GEN6_H */