OSDN Git Service

93fa2f09682c81a3660d3cb5a76adc14789e6e59
[android-x86/hardware-intel-common-libva.git] / i965_drv_video / i965_structs.h
1 #ifndef _I965_STRUCTS_H_
2 #define _I965_STRUCTS_H_
3
4 struct i965_vfe_state 
5 {
6     struct {
7         unsigned int per_thread_scratch_space:4;
8         unsigned int pad3:3;
9         unsigned int extend_vfe_state_present:1;
10         unsigned int pad2:2;
11         unsigned int scratch_base:22;
12     } vfe0;
13
14     struct {
15         unsigned int debug_counter_control:2;
16         unsigned int children_present:1;
17         unsigned int vfe_mode:4;
18         unsigned int pad2:2;
19         unsigned int num_urb_entries:7;
20         unsigned int urb_entry_alloc_size:9;
21         unsigned int max_threads:7;
22     } vfe1;
23
24     struct {
25         unsigned int pad4:4;
26         unsigned int interface_descriptor_base:28;
27     } vfe2;
28 };
29
30 struct i965_vfe_state_ex 
31 {
32     struct {
33         unsigned int pad:8;
34         unsigned int obj_id:24;
35     } vfex0;
36
37     struct {
38         unsigned int residual_grf_offset:5;
39         unsigned int pad0:3;
40         unsigned int weight_grf_offset:5;
41         unsigned int pad1:3;
42         unsigned int residual_data_offset:8;
43         unsigned int sub_field_present_flag:2;
44         unsigned int residual_data_fix_offset:1;
45         unsigned int pad2:5;
46     }vfex1;
47
48     struct {
49         unsigned int remap_index_0:4;
50         unsigned int remap_index_1:4;
51         unsigned int remap_index_2:4;
52         unsigned int remap_index_3:4;
53         unsigned int remap_index_4:4;
54         unsigned int remap_index_5:4;
55         unsigned int remap_index_6:4;
56         unsigned int remap_index_7:4;
57     }remap_table0;
58
59     struct {
60         unsigned int remap_index_8:4;
61         unsigned int remap_index_9:4;
62         unsigned int remap_index_10:4;
63         unsigned int remap_index_11:4;
64         unsigned int remap_index_12:4;
65         unsigned int remap_index_13:4;
66         unsigned int remap_index_14:4;
67         unsigned int remap_index_15:4;
68     } remap_table1;
69
70     struct {
71         unsigned int scoreboard_mask:8;
72         unsigned int pad:22;
73         unsigned int type:1;
74         unsigned int enable:1;
75     } scoreboard0;
76
77     struct {
78         unsigned int ignore;
79     } scoreboard1;
80
81     struct {
82         unsigned int ignore;
83     } scoreboard2;
84
85     unsigned int pad;
86 };
87
88 struct i965_vld_state 
89 {
90     struct {
91         unsigned int pad6:6;
92         unsigned int scan_order:1;
93         unsigned int intra_vlc_format:1;
94         unsigned int quantizer_scale_type:1;
95         unsigned int concealment_motion_vector:1;
96         unsigned int frame_predict_frame_dct:1;
97         unsigned int top_field_first:1;
98         unsigned int picture_structure:2;
99         unsigned int intra_dc_precision:2;
100         unsigned int f_code_0_0:4;
101         unsigned int f_code_0_1:4;
102         unsigned int f_code_1_0:4;
103         unsigned int f_code_1_1:4;
104     } vld0;
105
106     struct {
107         unsigned int pad2:9;
108         unsigned int picture_coding_type:2;
109         unsigned int pad:21;
110     } vld1;
111
112     struct {
113         unsigned int index_0:4;
114         unsigned int index_1:4;
115         unsigned int index_2:4;
116         unsigned int index_3:4;
117         unsigned int index_4:4;
118         unsigned int index_5:4;
119         unsigned int index_6:4;
120         unsigned int index_7:4;
121     } desc_remap_table0;
122
123     struct {
124         unsigned int index_8:4;
125         unsigned int index_9:4;
126         unsigned int index_10:4;
127         unsigned int index_11:4;
128         unsigned int index_12:4;
129         unsigned int index_13:4;
130         unsigned int index_14:4;
131         unsigned int index_15:4;
132     } desc_remap_table1;
133 };
134
135 struct i965_interface_descriptor 
136 {
137     struct {
138         unsigned int grf_reg_blocks:4;
139         unsigned int pad:2;
140         unsigned int kernel_start_pointer:26;
141     } desc0;
142
143     struct {
144         unsigned int pad:7;
145         unsigned int software_exception:1;
146         unsigned int pad2:3;
147         unsigned int maskstack_exception:1;
148         unsigned int pad3:1;
149         unsigned int illegal_opcode_exception:1;
150         unsigned int pad4:2;
151         unsigned int floating_point_mode:1;
152         unsigned int thread_priority:1;
153         unsigned int single_program_flow:1;
154         unsigned int pad5:1;
155         unsigned int const_urb_entry_read_offset:6;
156         unsigned int const_urb_entry_read_len:6;
157     } desc1;
158
159     struct {
160         unsigned int pad:2;
161         unsigned int sampler_count:3;
162         unsigned int sampler_state_pointer:27;
163     } desc2;
164
165     struct {
166         unsigned int binding_table_entry_count:5;
167         unsigned int binding_table_pointer:27;
168     } desc3;
169 };
170
171 struct i965_surface_state 
172 {
173     struct {
174         unsigned int cube_pos_z:1;
175         unsigned int cube_neg_z:1;
176         unsigned int cube_pos_y:1;
177         unsigned int cube_neg_y:1;
178         unsigned int cube_pos_x:1;
179         unsigned int cube_neg_x:1;
180         unsigned int pad:3;
181         unsigned int render_cache_read_mode:1;
182         unsigned int mipmap_layout_mode:1;
183         unsigned int vert_line_stride_ofs:1;
184         unsigned int vert_line_stride:1;
185         unsigned int color_blend:1;
186         unsigned int writedisable_blue:1;
187         unsigned int writedisable_green:1;
188         unsigned int writedisable_red:1;
189         unsigned int writedisable_alpha:1;
190         unsigned int surface_format:9;
191         unsigned int data_return_format:1;
192         unsigned int pad0:1;
193         unsigned int surface_type:3;
194     } ss0;
195
196     struct {
197         unsigned int base_addr;
198     } ss1;
199
200     struct {
201         unsigned int render_target_rotation:2;
202         unsigned int mip_count:4;
203         unsigned int width:13;
204         unsigned int height:13;
205     } ss2;
206
207     struct {
208         unsigned int tile_walk:1;
209         unsigned int tiled_surface:1;
210         unsigned int pad:1;
211         unsigned int pitch:18;
212         unsigned int depth:11;
213     } ss3;
214
215     struct {
216         unsigned int pad:19;
217         unsigned int min_array_elt:9;
218         unsigned int min_lod:4;
219     } ss4;
220
221     struct {
222         unsigned int pad:20;
223         unsigned int y_offset:4;
224         unsigned int pad2:1;
225         unsigned int x_offset:7;
226     } ss5;
227 };
228
229 struct thread0
230 {
231     unsigned int pad0:1;
232     unsigned int grf_reg_count:3; 
233     unsigned int pad1:2;
234     unsigned int kernel_start_pointer:26; 
235 };
236
237 struct thread1
238 {
239     unsigned int ext_halt_exception_enable:1; 
240     unsigned int sw_exception_enable:1; 
241     unsigned int mask_stack_exception_enable:1; 
242     unsigned int timeout_exception_enable:1; 
243     unsigned int illegal_op_exception_enable:1; 
244     unsigned int pad0:3;
245     unsigned int depth_coef_urb_read_offset:6;  /* WM only */
246     unsigned int pad1:2;
247     unsigned int floating_point_mode:1; 
248     unsigned int thread_priority:1; 
249     unsigned int binding_table_entry_count:8; 
250     unsigned int pad3:5;
251     unsigned int single_program_flow:1; 
252 };
253
254 struct thread2
255 {
256     unsigned int per_thread_scratch_space:4; 
257     unsigned int pad0:6;
258     unsigned int scratch_space_base_pointer:22; 
259 };
260
261    
262 struct thread3
263 {
264     unsigned int dispatch_grf_start_reg:4; 
265     unsigned int urb_entry_read_offset:6; 
266     unsigned int pad0:1;
267     unsigned int urb_entry_read_length:6; 
268     unsigned int pad1:1;
269     unsigned int const_urb_entry_read_offset:6; 
270     unsigned int pad2:1;
271     unsigned int const_urb_entry_read_length:6; 
272     unsigned int pad3:1;
273 };
274
275 struct i965_vs_unit_state
276 {
277     struct thread0 thread0;
278     struct thread1 thread1;
279     struct thread2 thread2;
280     struct thread3 thread3;
281    
282     struct {
283         unsigned int pad0:10;
284         unsigned int stats_enable:1; 
285         unsigned int nr_urb_entries:7; 
286         unsigned int pad1:1;
287         unsigned int urb_entry_allocation_size:5; 
288         unsigned int pad2:1;
289         unsigned int max_threads:4; 
290         unsigned int pad3:3;
291     } thread4;   
292
293     struct {
294         unsigned int sampler_count:3; 
295         unsigned int pad0:2;
296         unsigned int sampler_state_pointer:27; 
297     } vs5;
298
299     struct {
300         unsigned int vs_enable:1; 
301         unsigned int vert_cache_disable:1; 
302         unsigned int pad0:30;
303     } vs6;
304 };
305
306 struct i965_gs_unit_state
307 {
308    struct thread0 thread0;
309    struct thread1 thread1;
310    struct thread2 thread2;
311    struct thread3 thread3;
312
313    struct {
314       unsigned int pad0:10;
315       unsigned int stats_enable:1; 
316       unsigned int nr_urb_entries:7; 
317       unsigned int pad1:1;
318       unsigned int urb_entry_allocation_size:5; 
319       unsigned int pad2:1;
320       unsigned int max_threads:1; 
321       unsigned int pad3:6;
322    } thread4;   
323       
324    struct {
325       unsigned int sampler_count:3; 
326       unsigned int pad0:2;
327       unsigned int sampler_state_pointer:27; 
328    } gs5;
329
330    
331    struct {
332       unsigned int max_vp_index:4; 
333       unsigned int pad0:26;
334       unsigned int reorder_enable:1; 
335       unsigned int pad1:1;
336    } gs6;
337 };
338
339 struct i965_clip_unit_state
340 {
341    struct thread0 thread0;
342    struct thread1 thread1;
343    struct thread2 thread2;
344    struct thread3 thread3;
345
346    struct {
347       unsigned int pad0:9;
348       unsigned int gs_output_stats:1; /* not always */
349       unsigned int stats_enable:1; 
350       unsigned int nr_urb_entries:7; 
351       unsigned int pad1:1;
352       unsigned int urb_entry_allocation_size:5; 
353       unsigned int pad2:1;
354       unsigned int max_threads:6;       /* may be less */
355       unsigned int pad3:1;
356    } thread4;   
357       
358    struct {
359       unsigned int pad0:13;
360       unsigned int clip_mode:3; 
361       unsigned int userclip_enable_flags:8; 
362       unsigned int userclip_must_clip:1; 
363       unsigned int pad1:1;
364       unsigned int guard_band_enable:1; 
365       unsigned int viewport_z_clip_enable:1; 
366       unsigned int viewport_xy_clip_enable:1; 
367       unsigned int vertex_position_space:1; 
368       unsigned int api_mode:1; 
369       unsigned int pad2:1;
370    } clip5;
371    
372    struct {
373       unsigned int pad0:5;
374       unsigned int clipper_viewport_state_ptr:27; 
375    } clip6;
376
377    
378    float viewport_xmin;  
379    float viewport_xmax;  
380    float viewport_ymin;  
381    float viewport_ymax;  
382 };
383
384 struct i965_sf_unit_state
385 {
386    struct thread0 thread0;
387    struct {
388       unsigned int pad0:7;
389       unsigned int sw_exception_enable:1; 
390       unsigned int pad1:3;
391       unsigned int mask_stack_exception_enable:1; 
392       unsigned int pad2:1;
393       unsigned int illegal_op_exception_enable:1; 
394       unsigned int pad3:2;
395       unsigned int floating_point_mode:1; 
396       unsigned int thread_priority:1; 
397       unsigned int binding_table_entry_count:8; 
398       unsigned int pad4:5;
399       unsigned int single_program_flow:1; 
400    } sf1;
401    
402    struct thread2 thread2;
403    struct thread3 thread3;
404
405    struct {
406       unsigned int pad0:10;
407       unsigned int stats_enable:1; 
408       unsigned int nr_urb_entries:7; 
409       unsigned int pad1:1;
410       unsigned int urb_entry_allocation_size:5; 
411       unsigned int pad2:1;
412       unsigned int max_threads:6; 
413       unsigned int pad3:1;
414    } thread4;   
415
416    struct {
417       unsigned int front_winding:1; 
418       unsigned int viewport_transform:1; 
419       unsigned int pad0:3;
420       unsigned int sf_viewport_state_offset:27; 
421    } sf5;
422    
423    struct {
424       unsigned int pad0:9;
425       unsigned int dest_org_vbias:4; 
426       unsigned int dest_org_hbias:4; 
427       unsigned int scissor:1; 
428       unsigned int disable_2x2_trifilter:1; 
429       unsigned int disable_zero_pix_trifilter:1; 
430       unsigned int point_rast_rule:2; 
431       unsigned int line_endcap_aa_region_width:2; 
432       unsigned int line_width:4; 
433       unsigned int fast_scissor_disable:1; 
434       unsigned int cull_mode:2; 
435       unsigned int aa_enable:1; 
436    } sf6;
437
438    struct {
439       unsigned int point_size:11; 
440       unsigned int use_point_size_state:1; 
441       unsigned int subpixel_precision:1; 
442       unsigned int sprite_point:1; 
443       unsigned int pad0:11;
444       unsigned int trifan_pv:2; 
445       unsigned int linestrip_pv:2; 
446       unsigned int tristrip_pv:2; 
447       unsigned int line_last_pixel_enable:1; 
448    } sf7;
449 };
450
451 struct i965_sampler_state
452 {
453    struct {
454       unsigned int shadow_function:3; 
455       unsigned int lod_bias:11; 
456       unsigned int min_filter:3; 
457       unsigned int mag_filter:3; 
458       unsigned int mip_filter:2; 
459       unsigned int base_level:5; 
460       unsigned int pad:1;
461       unsigned int lod_preclamp:1; 
462       unsigned int border_color_mode:1; 
463       unsigned int pad0:1;
464       unsigned int disable:1; 
465    } ss0;
466
467    struct {
468       unsigned int r_wrap_mode:3; 
469       unsigned int t_wrap_mode:3; 
470       unsigned int s_wrap_mode:3; 
471       unsigned int pad:3;
472       unsigned int max_lod:10; 
473       unsigned int min_lod:10; 
474    } ss1;
475
476    
477    struct {
478       unsigned int pad:5;
479       unsigned int border_color_pointer:27; 
480    } ss2;
481    
482    struct {
483       unsigned int pad:19;
484       unsigned int max_aniso:3; 
485       unsigned int chroma_key_mode:1; 
486       unsigned int chroma_key_index:2; 
487       unsigned int chroma_key_enable:1; 
488       unsigned int monochrome_filter_width:3; 
489       unsigned int monochrome_filter_height:3; 
490    } ss3;
491 };
492
493 struct i965_wm_unit_state
494 {
495    struct thread0 thread0;
496    struct thread1 thread1;
497    struct thread2 thread2;
498    struct thread3 thread3;
499    
500    struct {
501       unsigned int stats_enable:1; 
502       unsigned int pad0:1;
503       unsigned int sampler_count:3; 
504       unsigned int sampler_state_pointer:27; 
505    } wm4;
506    
507    struct {
508       unsigned int enable_8_pix:1; 
509       unsigned int enable_16_pix:1; 
510       unsigned int enable_32_pix:1; 
511       unsigned int pad0:7;
512       unsigned int legacy_global_depth_bias:1; 
513       unsigned int line_stipple:1; 
514       unsigned int depth_offset:1; 
515       unsigned int polygon_stipple:1; 
516       unsigned int line_aa_region_width:2; 
517       unsigned int line_endcap_aa_region_width:2; 
518       unsigned int early_depth_test:1; 
519       unsigned int thread_dispatch_enable:1; 
520       unsigned int program_uses_depth:1; 
521       unsigned int program_computes_depth:1; 
522       unsigned int program_uses_killpixel:1; 
523       unsigned int legacy_line_rast: 1; 
524       unsigned int transposed_urb_read:1; 
525       unsigned int max_threads:7; 
526    } wm5;
527    
528    float global_depth_offset_constant;  
529    float global_depth_offset_scale;   
530 };
531
532 struct i965_cc_viewport
533 {
534    float min_depth;  
535    float max_depth;  
536 };
537
538 struct i965_cc_unit_state
539 {
540    struct {
541       unsigned int pad0:3;
542       unsigned int bf_stencil_pass_depth_pass_op:3; 
543       unsigned int bf_stencil_pass_depth_fail_op:3; 
544       unsigned int bf_stencil_fail_op:3; 
545       unsigned int bf_stencil_func:3; 
546       unsigned int bf_stencil_enable:1; 
547       unsigned int pad1:2;
548       unsigned int stencil_write_enable:1; 
549       unsigned int stencil_pass_depth_pass_op:3; 
550       unsigned int stencil_pass_depth_fail_op:3; 
551       unsigned int stencil_fail_op:3; 
552       unsigned int stencil_func:3; 
553       unsigned int stencil_enable:1; 
554    } cc0;
555
556    
557    struct {
558       unsigned int bf_stencil_ref:8; 
559       unsigned int stencil_write_mask:8; 
560       unsigned int stencil_test_mask:8; 
561       unsigned int stencil_ref:8; 
562    } cc1;
563
564    
565    struct {
566       unsigned int logicop_enable:1; 
567       unsigned int pad0:10;
568       unsigned int depth_write_enable:1; 
569       unsigned int depth_test_function:3; 
570       unsigned int depth_test:1; 
571       unsigned int bf_stencil_write_mask:8; 
572       unsigned int bf_stencil_test_mask:8; 
573    } cc2;
574
575    
576    struct {
577       unsigned int pad0:8;
578       unsigned int alpha_test_func:3; 
579       unsigned int alpha_test:1; 
580       unsigned int blend_enable:1; 
581       unsigned int ia_blend_enable:1; 
582       unsigned int pad1:1;
583       unsigned int alpha_test_format:1;
584       unsigned int pad2:16;
585    } cc3;
586    
587    struct {
588       unsigned int pad0:5; 
589       unsigned int cc_viewport_state_offset:27; 
590    } cc4;
591    
592    struct {
593       unsigned int pad0:2;
594       unsigned int ia_dest_blend_factor:5; 
595       unsigned int ia_src_blend_factor:5; 
596       unsigned int ia_blend_function:3; 
597       unsigned int statistics_enable:1; 
598       unsigned int logicop_func:4; 
599       unsigned int pad1:11;
600       unsigned int dither_enable:1; 
601    } cc5;
602
603    struct {
604       unsigned int clamp_post_alpha_blend:1; 
605       unsigned int clamp_pre_alpha_blend:1; 
606       unsigned int clamp_range:2; 
607       unsigned int pad0:11;
608       unsigned int y_dither_offset:2; 
609       unsigned int x_dither_offset:2; 
610       unsigned int dest_blend_factor:5; 
611       unsigned int src_blend_factor:5; 
612       unsigned int blend_function:3; 
613    } cc6;
614
615    struct {
616       union {
617          float f;  
618          unsigned char ub[4];
619       } alpha_ref;
620    } cc7;
621 };
622
623 #endif /* _I965_STRUCTS_H_ */