Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4358 Serge 1
/*
2
 * Mesa 3-D graphics library
3
 *
4
 * Copyright (C) 2013 LunarG, Inc.
5
 *
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:
12
 *
13
 * The above copyright notice and this permission notice shall be included
14
 * in all copies or substantial portions of the Software.
15
 *
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.
23
 *
24
 * Authors:
25
 *    Chia-I Wu 
26
 */
27
 
28
#ifndef ILO_GPE_GEN7_H
29
#define ILO_GPE_GEN7_H
30
 
31
#include "ilo_common.h"
32
#include "ilo_gpe_gen6.h"
33
 
34
/**
35
 * Commands that GEN7 GPE could emit.
36
 */
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) */
106
 
107
   ILO_GPE_GEN7_COMMAND_COUNT,
108
};
109
 
110
/**
111
 * Indirect states that GEN7 GPE could emit.
112
 */
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,
126
 
127
   ILO_GPE_GEN7_STATE_COUNT,
128
};
129
 
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;
138
 
139
typedef void
140
(*ilo_gpe_gen7_GPGPU_WALKER)(const struct ilo_dev_info *dev,
141
                             struct ilo_cp *cp);
142
 
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;
150
 
151
typedef void
152
(*ilo_gpe_gen7_3DSTATE_CC_STATE_POINTERS)(const struct ilo_dev_info *dev,
153
                                          uint32_t color_calc_state,
154
                                          struct ilo_cp *cp);
155
 
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;
158
 
159
typedef void
160
(*ilo_gpe_gen7_3DSTATE_GS)(const struct ilo_dev_info *dev,
161
                           const struct ilo_shader_state *gs,
162
                           int num_samplers,
163
                           struct ilo_cp *cp);
164
 
165
typedef ilo_gpe_gen6_3DSTATE_CLIP ilo_gpe_gen7_3DSTATE_CLIP;
166
 
167
typedef void
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,
171
                           struct ilo_cp *cp);
172
 
173
typedef void
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,
177
                           bool cc_may_kill,
178
                           struct ilo_cp *cp);
179
 
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;
183
 
184
typedef void
185
(*ilo_gpe_gen7_3DSTATE_SAMPLE_MASK)(const struct ilo_dev_info *dev,
186
                                    unsigned sample_mask,
187
                                    int num_samples,
188
                                    struct ilo_cp *cp);
189
 
190
typedef void
191
(*ilo_gpe_gen7_3DSTATE_CONSTANT_HS)(const struct ilo_dev_info *dev,
192
                                    const uint32_t *bufs, const int *sizes,
193
                                    int num_bufs,
194
                                    struct ilo_cp *cp);
195
 
196
typedef void
197
(*ilo_gpe_gen7_3DSTATE_CONSTANT_DS)(const struct ilo_dev_info *dev,
198
                                    const uint32_t *bufs, const int *sizes,
199
                                    int num_bufs,
200
                                    struct ilo_cp *cp);
201
 
202
typedef void
203
(*ilo_gpe_gen7_3DSTATE_HS)(const struct ilo_dev_info *dev,
204
                           const struct ilo_shader_state *hs,
205
                           int num_samplers,
206
                           struct ilo_cp *cp);
207
 
208
typedef void
209
(*ilo_gpe_gen7_3DSTATE_TE)(const struct ilo_dev_info *dev,
210
                           struct ilo_cp *cp);
211
 
212
typedef void
213
(*ilo_gpe_gen7_3DSTATE_DS)(const struct ilo_dev_info *dev,
214
                           const struct ilo_shader_state *ds,
215
                           int num_samplers,
216
                           struct ilo_cp *cp);
217
 
218
typedef void
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,
223
                                  struct ilo_cp *cp);
224
 
225
typedef void
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,
230
                            struct ilo_cp *cp);
231
 
232
typedef void
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,
236
                           struct ilo_cp *cp);
237
 
238
typedef void
239
(*ilo_gpe_gen7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CLIP)(const struct ilo_dev_info *dev,
240
                                                        uint32_t viewport,
241
                                                        struct ilo_cp *cp);
242
 
243
typedef void
244
(*ilo_gpe_gen7_3DSTATE_VIEWPORT_STATE_POINTERS_CC)(const struct ilo_dev_info *dev,
245
                                                   uint32_t viewport,
246
                                                   struct ilo_cp *cp);
247
 
248
typedef void
249
(*ilo_gpe_gen7_3DSTATE_BLEND_STATE_POINTERS)(const struct ilo_dev_info *dev,
250
                                             uint32_t blend,
251
                                             struct ilo_cp *cp);
252
 
253
typedef void
254
(*ilo_gpe_gen7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS)(const struct ilo_dev_info *dev,
255
                                                     uint32_t depth_stencil,
256
                                                     struct ilo_cp *cp);
257
 
258
typedef void
259
(*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_VS)(const struct ilo_dev_info *dev,
260
                                                  uint32_t binding_table,
261
                                                  struct ilo_cp *cp);
262
 
263
typedef void
264
(*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_HS)(const struct ilo_dev_info *dev,
265
                                                  uint32_t binding_table,
266
                                                  struct ilo_cp *cp);
267
 
268
typedef void
269
(*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_DS)(const struct ilo_dev_info *dev,
270
                                                  uint32_t binding_table,
271
                                                  struct ilo_cp *cp);
272
 
273
typedef void
274
(*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_GS)(const struct ilo_dev_info *dev,
275
                                                  uint32_t binding_table,
276
                                                  struct ilo_cp *cp);
277
 
278
typedef void
279
(*ilo_gpe_gen7_3DSTATE_BINDING_TABLE_POINTERS_PS)(const struct ilo_dev_info *dev,
280
                                                  uint32_t binding_table,
281
                                                  struct ilo_cp *cp);
282
 
283
typedef void
284
(*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_VS)(const struct ilo_dev_info *dev,
285
                                                  uint32_t sampler_state,
286
                                                  struct ilo_cp *cp);
287
 
288
typedef void
289
(*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_HS)(const struct ilo_dev_info *dev,
290
                                                  uint32_t sampler_state,
291
                                                  struct ilo_cp *cp);
292
 
293
typedef void
294
(*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_DS)(const struct ilo_dev_info *dev,
295
                                                  uint32_t sampler_state,
296
                                                  struct ilo_cp *cp);
297
 
298
typedef void
299
(*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_GS)(const struct ilo_dev_info *dev,
300
                                                  uint32_t sampler_state,
301
                                                  struct ilo_cp *cp);
302
 
303
typedef void
304
(*ilo_gpe_gen7_3DSTATE_SAMPLER_STATE_POINTERS_PS)(const struct ilo_dev_info *dev,
305
                                                  uint32_t sampler_state,
306
                                                  struct ilo_cp *cp);
307
 
308
typedef void
309
(*ilo_gpe_gen7_3DSTATE_URB_VS)(const struct ilo_dev_info *dev,
310
                               int offset, int size, int entry_size,
311
                               struct ilo_cp *cp);
312
 
313
typedef void
314
(*ilo_gpe_gen7_3DSTATE_URB_HS)(const struct ilo_dev_info *dev,
315
                               int offset, int size, int entry_size,
316
                               struct ilo_cp *cp);
317
 
318
typedef void
319
(*ilo_gpe_gen7_3DSTATE_URB_DS)(const struct ilo_dev_info *dev,
320
                               int offset, int size, int entry_size,
321
                               struct ilo_cp *cp);
322
 
323
typedef void
324
(*ilo_gpe_gen7_3DSTATE_URB_GS)(const struct ilo_dev_info *dev,
325
                               int offset, int size, int entry_size,
326
                               struct ilo_cp *cp);
327
 
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;
334
 
335
typedef void
336
(*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_VS)(const struct ilo_dev_info *dev,
337
                                               int offset, int size,
338
                                               struct ilo_cp *cp);
339
 
340
typedef void
341
(*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_HS)(const struct ilo_dev_info *dev,
342
                                               int offset, int size,
343
                                               struct ilo_cp *cp);
344
 
345
typedef void
346
(*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_DS)(const struct ilo_dev_info *dev,
347
                                               int offset, int size,
348
                                               struct ilo_cp *cp);
349
 
350
typedef void
351
(*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_GS)(const struct ilo_dev_info *dev,
352
                                               int offset, int size,
353
                                               struct ilo_cp *cp);
354
 
355
typedef void
356
(*ilo_gpe_gen7_3DSTATE_PUSH_CONSTANT_ALLOC_PS)(const struct ilo_dev_info *dev,
357
                                               int offset, int size,
358
                                               struct ilo_cp *cp);
359
 
360
typedef void
361
(*ilo_gpe_gen7_3DSTATE_SO_DECL_LIST)(const struct ilo_dev_info *dev,
362
                                     const struct pipe_stream_output_info *so_info,
363
                                     struct ilo_cp *cp);
364
 
365
typedef void
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,
369
                                  struct ilo_cp *cp);
370
 
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;
374
 
375
typedef uint32_t
376
(*ilo_gpe_gen7_SF_CLIP_VIEWPORT)(const struct ilo_dev_info *dev,
377
                                 const struct ilo_viewport_cso *viewports,
378
                                 unsigned num_viewports,
379
                                 struct ilo_cp *cp);
380
 
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;
391
 
392
/**
393
 * GEN7 graphics processing engine
394
 *
395
 * \see ilo_gpe_gen6
396
 */
397
struct ilo_gpe_gen7 {
398
   int (*estimate_command_size)(const struct ilo_dev_info *dev,
399
                                enum ilo_gpe_gen7_command cmd,
400
                                int arg);
401
 
402
   int (*estimate_state_size)(const struct ilo_dev_info *dev,
403
                              enum ilo_gpe_gen7_state state,
404
                              int arg);
405
 
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);
487
#undef GEN7_EMIT
488
};
489
 
490
const struct ilo_gpe_gen7 *
491
ilo_gpe_gen7_get(void);
492
 
493
#endif /* ILO_GPE_GEN7_H */