diff options
Diffstat (limited to 'src/i965_structs.h')
-rw-r--r-- | src/i965_structs.h | 2369 |
1 files changed, 0 insertions, 2369 deletions
diff --git a/src/i965_structs.h b/src/i965_structs.h deleted file mode 100644 index a8c9b95..0000000 --- a/src/i965_structs.h +++ /dev/null @@ -1,2369 +0,0 @@ -#ifndef _I965_STRUCTS_H_ -#define _I965_STRUCTS_H_ - -struct i965_vfe_state -{ - struct { - unsigned int per_thread_scratch_space:4; - unsigned int pad3:3; - unsigned int extend_vfe_state_present:1; - unsigned int pad2:2; - unsigned int scratch_base:22; - } vfe0; - - struct { - unsigned int debug_counter_control:2; - unsigned int children_present:1; - unsigned int vfe_mode:4; - unsigned int pad2:2; - unsigned int num_urb_entries:7; - unsigned int urb_entry_alloc_size:9; - unsigned int max_threads:7; - } vfe1; - - struct { - unsigned int pad4:4; - unsigned int interface_descriptor_base:28; - } vfe2; -}; - -struct i965_vfe_state_ex -{ - struct { - unsigned int pad:8; - unsigned int obj_id:24; - } vfex0; - - union { - struct { - unsigned int residual_grf_offset:5; - unsigned int pad0:3; - unsigned int weight_grf_offset:5; - unsigned int pad1:3; - unsigned int residual_data_offset:8; - unsigned int sub_field_present_flag:2; - unsigned int residual_data_fix_offset_flag:1; - unsigned int pad2:5; - } avc; - - unsigned int vc1; - } vfex1; - - struct { - unsigned int remap_index_0:4; - unsigned int remap_index_1:4; - unsigned int remap_index_2:4; - unsigned int remap_index_3:4; - unsigned int remap_index_4:4; - unsigned int remap_index_5:4; - unsigned int remap_index_6:4; - unsigned int remap_index_7:4; - }remap_table0; - - struct { - unsigned int remap_index_8:4; - unsigned int remap_index_9:4; - unsigned int remap_index_10:4; - unsigned int remap_index_11:4; - unsigned int remap_index_12:4; - unsigned int remap_index_13:4; - unsigned int remap_index_14:4; - unsigned int remap_index_15:4; - } remap_table1; - - struct { - unsigned int mask:8; - unsigned int pad:22; - unsigned int type:1; - unsigned int enable:1; - } scoreboard0; - - struct { - int delta_x0:4; - int delta_y0:4; - int delta_x1:4; - int delta_y1:4; - int delta_x2:4; - int delta_y2:4; - int delta_x3:4; - int delta_y3:4; - } scoreboard1; - - struct { - int delta_x4:4; - int delta_y4:4; - int delta_x5:4; - int delta_y5:4; - int delta_x6:4; - int delta_y6:4; - int delta_x7:4; - int delta_y7:4; - } scoreboard2; - - unsigned int pad; -}; - -struct i965_vld_state -{ - struct { - unsigned int pad6:6; - unsigned int scan_order:1; - unsigned int intra_vlc_format:1; - unsigned int quantizer_scale_type:1; - unsigned int concealment_motion_vector:1; - unsigned int frame_predict_frame_dct:1; - unsigned int top_field_first:1; - unsigned int picture_structure:2; - unsigned int intra_dc_precision:2; - unsigned int f_code_0_0:4; - unsigned int f_code_0_1:4; - unsigned int f_code_1_0:4; - unsigned int f_code_1_1:4; - } vld0; - - struct { - unsigned int pad2:9; - unsigned int picture_coding_type:2; - unsigned int pad:21; - } vld1; - - struct { - unsigned int index_0:4; - unsigned int index_1:4; - unsigned int index_2:4; - unsigned int index_3:4; - unsigned int index_4:4; - unsigned int index_5:4; - unsigned int index_6:4; - unsigned int index_7:4; - } desc_remap_table0; - - struct { - unsigned int index_8:4; - unsigned int index_9:4; - unsigned int index_10:4; - unsigned int index_11:4; - unsigned int index_12:4; - unsigned int index_13:4; - unsigned int index_14:4; - unsigned int index_15:4; - } desc_remap_table1; -}; - -struct i965_interface_descriptor -{ - struct { - unsigned int grf_reg_blocks:4; - unsigned int pad:2; - unsigned int kernel_start_pointer:26; - } desc0; - - struct { - unsigned int pad:7; - unsigned int software_exception:1; - unsigned int pad2:3; - unsigned int maskstack_exception:1; - unsigned int pad3:1; - unsigned int illegal_opcode_exception:1; - unsigned int pad4:2; - unsigned int floating_point_mode:1; - unsigned int thread_priority:1; - unsigned int single_program_flow:1; - unsigned int pad5:1; - unsigned int const_urb_entry_read_offset:6; - unsigned int const_urb_entry_read_len:6; - } desc1; - - struct { - unsigned int pad:2; - unsigned int sampler_count:3; - unsigned int sampler_state_pointer:27; - } desc2; - - struct { - unsigned int binding_table_entry_count:5; - unsigned int binding_table_pointer:27; - } desc3; -}; - -struct i965_surface_state -{ - struct { - unsigned int cube_pos_z:1; - unsigned int cube_neg_z:1; - unsigned int cube_pos_y:1; - unsigned int cube_neg_y:1; - unsigned int cube_pos_x:1; - unsigned int cube_neg_x:1; - unsigned int pad:2; - unsigned int render_cache_read_mode:1; - unsigned int cube_map_corner_mode:1; - unsigned int mipmap_layout_mode:1; - unsigned int vert_line_stride_ofs:1; - unsigned int vert_line_stride:1; - unsigned int color_blend:1; - unsigned int writedisable_blue:1; - unsigned int writedisable_green:1; - unsigned int writedisable_red:1; - unsigned int writedisable_alpha:1; - unsigned int surface_format:9; - unsigned int data_return_format:1; - unsigned int pad0:1; - unsigned int surface_type:3; - } ss0; - - struct { - unsigned int base_addr; - } ss1; - - struct { - unsigned int render_target_rotation:2; - unsigned int mip_count:4; - unsigned int width:13; - unsigned int height:13; - } ss2; - - struct { - unsigned int tile_walk:1; - unsigned int tiled_surface:1; - unsigned int pad:1; - unsigned int pitch:18; - unsigned int depth:11; - } ss3; - - struct { - unsigned int pad:19; - unsigned int min_array_elt:9; - unsigned int min_lod:4; - } ss4; - - struct { - unsigned int pad:20; - unsigned int y_offset:4; - unsigned int pad2:1; - unsigned int x_offset:7; - } ss5; -}; - -struct thread0 -{ - unsigned int pad0:1; - unsigned int grf_reg_count:3; - unsigned int pad1:2; - unsigned int kernel_start_pointer:26; -}; - -struct thread1 -{ - unsigned int ext_halt_exception_enable:1; - unsigned int sw_exception_enable:1; - unsigned int mask_stack_exception_enable:1; - unsigned int timeout_exception_enable:1; - unsigned int illegal_op_exception_enable:1; - unsigned int pad0:3; - unsigned int depth_coef_urb_read_offset:6; /* WM only */ - unsigned int pad1:2; - unsigned int floating_point_mode:1; - unsigned int thread_priority:1; - unsigned int binding_table_entry_count:8; - unsigned int pad3:5; - unsigned int single_program_flow:1; -}; - -struct thread2 -{ - unsigned int per_thread_scratch_space:4; - unsigned int pad0:6; - unsigned int scratch_space_base_pointer:22; -}; - - -struct thread3 -{ - unsigned int dispatch_grf_start_reg:4; - unsigned int urb_entry_read_offset:6; - unsigned int pad0:1; - unsigned int urb_entry_read_length:6; - unsigned int pad1:1; - unsigned int const_urb_entry_read_offset:6; - unsigned int pad2:1; - unsigned int const_urb_entry_read_length:6; - unsigned int pad3:1; -}; - -struct i965_vs_unit_state -{ - struct thread0 thread0; - struct thread1 thread1; - struct thread2 thread2; - struct thread3 thread3; - - struct { - unsigned int pad0:10; - unsigned int stats_enable:1; - unsigned int nr_urb_entries:7; - unsigned int pad1:1; - unsigned int urb_entry_allocation_size:5; - unsigned int pad2:1; - unsigned int max_threads:4; - unsigned int pad3:3; - } thread4; - - struct { - unsigned int sampler_count:3; - unsigned int pad0:2; - unsigned int sampler_state_pointer:27; - } vs5; - - struct { - unsigned int vs_enable:1; - unsigned int vert_cache_disable:1; - unsigned int pad0:30; - } vs6; -}; - -struct i965_gs_unit_state -{ - struct thread0 thread0; - struct thread1 thread1; - struct thread2 thread2; - struct thread3 thread3; - - struct { - unsigned int pad0:10; - unsigned int stats_enable:1; - unsigned int nr_urb_entries:7; - unsigned int pad1:1; - unsigned int urb_entry_allocation_size:5; - unsigned int pad2:1; - unsigned int max_threads:1; - unsigned int pad3:6; - } thread4; - - struct { - unsigned int sampler_count:3; - unsigned int pad0:2; - unsigned int sampler_state_pointer:27; - } gs5; - - - struct { - unsigned int max_vp_index:4; - unsigned int pad0:26; - unsigned int reorder_enable:1; - unsigned int pad1:1; - } gs6; -}; - -struct i965_clip_unit_state -{ - struct thread0 thread0; - struct thread1 thread1; - struct thread2 thread2; - struct thread3 thread3; - - struct { - unsigned int pad0:9; - unsigned int gs_output_stats:1; /* not always */ - unsigned int stats_enable:1; - unsigned int nr_urb_entries:7; - unsigned int pad1:1; - unsigned int urb_entry_allocation_size:5; - unsigned int pad2:1; - unsigned int max_threads:6; /* may be less */ - unsigned int pad3:1; - } thread4; - - struct { - unsigned int pad0:13; - unsigned int clip_mode:3; - unsigned int userclip_enable_flags:8; - unsigned int userclip_must_clip:1; - unsigned int pad1:1; - unsigned int guard_band_enable:1; - unsigned int viewport_z_clip_enable:1; - unsigned int viewport_xy_clip_enable:1; - unsigned int vertex_position_space:1; - unsigned int api_mode:1; - unsigned int pad2:1; - } clip5; - - struct { - unsigned int pad0:5; - unsigned int clipper_viewport_state_ptr:27; - } clip6; - - - float viewport_xmin; - float viewport_xmax; - float viewport_ymin; - float viewport_ymax; -}; - -struct i965_sf_unit_state -{ - struct thread0 thread0; - struct { - unsigned int pad0:7; - unsigned int sw_exception_enable:1; - unsigned int pad1:3; - unsigned int mask_stack_exception_enable:1; - unsigned int pad2:1; - unsigned int illegal_op_exception_enable:1; - unsigned int pad3:2; - unsigned int floating_point_mode:1; - unsigned int thread_priority:1; - unsigned int binding_table_entry_count:8; - unsigned int pad4:5; - unsigned int single_program_flow:1; - } sf1; - - struct thread2 thread2; - struct thread3 thread3; - - struct { - unsigned int pad0:10; - unsigned int stats_enable:1; - unsigned int nr_urb_entries:7; - unsigned int pad1:1; - unsigned int urb_entry_allocation_size:5; - unsigned int pad2:1; - unsigned int max_threads:6; - unsigned int pad3:1; - } thread4; - - struct { - unsigned int front_winding:1; - unsigned int viewport_transform:1; - unsigned int pad0:3; - unsigned int sf_viewport_state_offset:27; - } sf5; - - struct { - unsigned int pad0:9; - unsigned int dest_org_vbias:4; - unsigned int dest_org_hbias:4; - unsigned int scissor:1; - unsigned int disable_2x2_trifilter:1; - unsigned int disable_zero_pix_trifilter:1; - unsigned int point_rast_rule:2; - unsigned int line_endcap_aa_region_width:2; - unsigned int line_width:4; - unsigned int fast_scissor_disable:1; - unsigned int cull_mode:2; - unsigned int aa_enable:1; - } sf6; - - struct { - unsigned int point_size:11; - unsigned int use_point_size_state:1; - unsigned int subpixel_precision:1; - unsigned int sprite_point:1; - unsigned int pad0:11; - unsigned int trifan_pv:2; - unsigned int linestrip_pv:2; - unsigned int tristrip_pv:2; - unsigned int line_last_pixel_enable:1; - } sf7; -}; - -struct i965_sampler_state -{ - struct { - unsigned int shadow_function:3; - unsigned int lod_bias:11; - unsigned int min_filter:3; - unsigned int mag_filter:3; - unsigned int mip_filter:2; - unsigned int base_level:5; - unsigned int pad:1; - unsigned int lod_preclamp:1; - unsigned int border_color_mode:1; - unsigned int pad0:1; - unsigned int disable:1; - } ss0; - - struct { - unsigned int r_wrap_mode:3; - unsigned int t_wrap_mode:3; - unsigned int s_wrap_mode:3; - unsigned int pad:3; - unsigned int max_lod:10; - unsigned int min_lod:10; - } ss1; - - - struct { - unsigned int pad:5; - unsigned int border_color_pointer:27; - } ss2; - - struct { - unsigned int pad:19; - unsigned int max_aniso:3; - unsigned int chroma_key_mode:1; - unsigned int chroma_key_index:2; - unsigned int chroma_key_enable:1; - unsigned int monochrome_filter_width:3; - unsigned int monochrome_filter_height:3; - } ss3; -}; - -struct i965_wm_unit_state -{ - struct thread0 thread0; - struct thread1 thread1; - struct thread2 thread2; - struct thread3 thread3; - - struct { - unsigned int stats_enable:1; - unsigned int pad0:1; - unsigned int sampler_count:3; - unsigned int sampler_state_pointer:27; - } wm4; - - struct { - unsigned int enable_8_pix:1; - unsigned int enable_16_pix:1; - unsigned int enable_32_pix:1; - unsigned int pad0:7; - unsigned int legacy_global_depth_bias:1; - unsigned int line_stipple:1; - unsigned int depth_offset:1; - unsigned int polygon_stipple:1; - unsigned int line_aa_region_width:2; - unsigned int line_endcap_aa_region_width:2; - unsigned int early_depth_test:1; - unsigned int thread_dispatch_enable:1; - unsigned int program_uses_depth:1; - unsigned int program_computes_depth:1; - unsigned int program_uses_killpixel:1; - unsigned int legacy_line_rast: 1; - unsigned int transposed_urb_read:1; - unsigned int max_threads:7; - } wm5; - - float global_depth_offset_constant; - float global_depth_offset_scale; -}; - -struct i965_cc_viewport -{ - float min_depth; - float max_depth; -}; - -struct i965_cc_unit_state -{ - struct { - unsigned int pad0:3; - unsigned int bf_stencil_pass_depth_pass_op:3; - unsigned int bf_stencil_pass_depth_fail_op:3; - unsigned int bf_stencil_fail_op:3; - unsigned int bf_stencil_func:3; - unsigned int bf_stencil_enable:1; - unsigned int pad1:2; - unsigned int stencil_write_enable:1; - unsigned int stencil_pass_depth_pass_op:3; - unsigned int stencil_pass_depth_fail_op:3; - unsigned int stencil_fail_op:3; - unsigned int stencil_func:3; - unsigned int stencil_enable:1; - } cc0; - - - struct { - unsigned int bf_stencil_ref:8; - unsigned int stencil_write_mask:8; - unsigned int stencil_test_mask:8; - unsigned int stencil_ref:8; - } cc1; - - - struct { - unsigned int logicop_enable:1; - unsigned int pad0:10; - unsigned int depth_write_enable:1; - unsigned int depth_test_function:3; - unsigned int depth_test:1; - unsigned int bf_stencil_write_mask:8; - unsigned int bf_stencil_test_mask:8; - } cc2; - - - struct { - unsigned int pad0:8; - unsigned int alpha_test_func:3; - unsigned int alpha_test:1; - unsigned int blend_enable:1; - unsigned int ia_blend_enable:1; - unsigned int pad1:1; - unsigned int alpha_test_format:1; - unsigned int pad2:16; - } cc3; - - struct { - unsigned int pad0:5; - unsigned int cc_viewport_state_offset:27; - } cc4; - - struct { - unsigned int pad0:2; - unsigned int ia_dest_blend_factor:5; - unsigned int ia_src_blend_factor:5; - unsigned int ia_blend_function:3; - unsigned int statistics_enable:1; - unsigned int logicop_func:4; - unsigned int pad1:11; - unsigned int dither_enable:1; - } cc5; - - struct { - unsigned int clamp_post_alpha_blend:1; - unsigned int clamp_pre_alpha_blend:1; - unsigned int clamp_range:2; - unsigned int pad0:11; - unsigned int y_dither_offset:2; - unsigned int x_dither_offset:2; - unsigned int dest_blend_factor:5; - unsigned int src_blend_factor:5; - unsigned int blend_function:3; - } cc6; - - struct { - union { - float f; - unsigned char ub[4]; - } alpha_ref; - } cc7; -}; - -struct i965_sampler_8x8 -{ - struct { - unsigned int pad0:16; - unsigned int chroma_key_index:2; - unsigned int chroma_key_enable:1; - unsigned int pad1:8; - unsigned int ief_filter_size:1; - unsigned int ief_filter_type:1; - unsigned int ief_bypass:1; - unsigned int pad2:1; - unsigned int avs_filter_type:1; - } dw0; - - struct { - unsigned int pad0:5; - unsigned int sampler_8x8_state_pointer:27; - } dw1; - - struct { - unsigned int weak_edge_threshold:4; - unsigned int strong_edge_threshold:4; - unsigned int global_noise_estimation:8; - unsigned int pad0:16; - } dw2; - - struct { - unsigned int r3x_coefficient:5; - unsigned int pad0:1; - unsigned int r3c_coefficient:5; - unsigned int pad1:3; - unsigned int gain_factor:6; - unsigned int non_edge_weight:3; - unsigned int pad2:1; - unsigned int regular_weight:3; - unsigned int pad3:1; - unsigned int strong_edge_weight:3; - unsigned int pad4:1; - } dw3; - - struct { - unsigned int pad0:2; - unsigned int mr_boost:1; - unsigned int mr_threshold:4; - unsigned int steepness_boost:1; - unsigned int steepness_threshold:4; - unsigned int pad1:2; - unsigned int r5x_coefficient:5; - unsigned int pad2:1; - unsigned int r5cx_coefficient:5; - unsigned int pad3:1; - unsigned int r5c_coefficient:5; - unsigned int pad4:1; - } dw4; - - struct { - unsigned int pwl1_point_1:8; - unsigned int pwl1_point_2:8; - unsigned int pwl1_point_3:8; - unsigned int pwl1_point_4:8; - } dw5; - - struct { - unsigned int pwl1_point_5:8; - unsigned int pwl1_point_6:8; - unsigned int pwl1_r3_bias_0:8; - unsigned int pwl1_r3_bias_1:8; - } dw6; - - struct { - unsigned int pwl1_r3_bias_2:8; - unsigned int pwl1_r3_bias_3:8; - unsigned int pwl1_r3_bias_4:8; - unsigned int pwl1_r3_bias_5:8; - } dw7; - - struct { - unsigned int pwl1_r3_bias_6:8; - unsigned int pwl1_r5_bias_0:8; - unsigned int pwl1_r5_bias_1:8; - unsigned int pwl1_r5_bias_2:8; - } dw8; - - struct { - unsigned int pwl1_r5_bias_3:8; - unsigned int pwl1_r5_bias_4:8; - unsigned int pwl1_r5_bias_5:8; - unsigned int pwl1_r5_bias_6:8; - } dw9; - - struct { - int pwl1_r3_slope_0:8; - int pwl1_r3_slope_1:8; - int pwl1_r3_slope_2:8; - int pwl1_r3_slope_3:8; - } dw10; - - struct { - int pwl1_r3_slope_4:8; - int pwl1_r3_slope_5:8; - int pwl1_r3_slope_6:8; - int pwl1_r5_slope_0:8; - } dw11; - - struct { - int pwl1_r5_slope_1:8; - int pwl1_r5_slope_2:8; - int pwl1_r5_slope_3:8; - int pwl1_r5_slope_4:8; - } dw12; - - struct { - int pwl1_r5_slope_5:8; - int pwl1_r5_slope_6:8; - unsigned int limiter_boost:4; - unsigned int pad0:4; - unsigned int minimum_limiter:4; - unsigned int maximum_limiter:4; - } dw13; - - struct { - unsigned int pad0:8; - unsigned int clip_limiter:10; - unsigned int pad1:14; - } dw14; - - unsigned int dw15; /* Just a pad */ -}; - -struct i965_sampler_8x8_coefficient -{ - struct { - int table_0x_filter_c0:8; - int table_0x_filter_c1:8; - int table_0x_filter_c2:8; - int table_0x_filter_c3:8; - } dw0; - - struct { - int table_0x_filter_c4:8; - int table_0x_filter_c5:8; - int table_0x_filter_c6:8; - int table_0x_filter_c7:8; - } dw1; - - struct { - int table_0y_filter_c0:8; - int table_0y_filter_c1:8; - int table_0y_filter_c2:8; - int table_0y_filter_c3:8; - } dw2; - - struct { - int table_0y_filter_c4:8; - int table_0y_filter_c5:8; - int table_0y_filter_c6:8; - int table_0y_filter_c7:8; - } dw3; - - struct { - int table_1x_filter_c0:8; - int table_1x_filter_c1:8; - int table_1x_filter_c2:8; - int table_1x_filter_c3:8; - } dw4; - - struct { - int table_1x_filter_c4:8; - int table_1x_filter_c5:8; - int table_1x_filter_c6:8; - int table_1x_filter_c7:8; - } dw5; - - struct { - int table_1y_filter_c0:8; - int table_1y_filter_c1:8; - int table_1y_filter_c2:8; - int table_1y_filter_c3:8; - } dw6; - - struct { - int table_1y_filter_c4:8; - int table_1y_filter_c5:8; - int table_1y_filter_c6:8; - int table_1y_filter_c7:8; - } dw7; -}; - -struct i965_sampler_8x8_state -{ - struct i965_sampler_8x8_coefficient coefficients[17]; - - struct { - unsigned int transition_area_with_8_pixels:3; - unsigned int pad0:1; - unsigned int transition_area_with_4_pixels:3; - unsigned int pad1:1; - unsigned int max_derivative_8_pixels:8; - unsigned int max_derivative_4_pixels:8; - unsigned int default_sharpness_level:8; - } dw136; - - union { - /* Ironlake, Sandybridge, Ivybridge (Gen5+) */ - struct { - unsigned int pad0:21; - unsigned int bypass_y_adaptive_filtering:1; - unsigned int bypass_x_adaptive_filtering:1; - unsigned int pad1:9; - } ilk; - - /* Haswell (Gen7.5+) */ - struct { - unsigned int rgb_adaptive:1; - unsigned int adaptive_filter_for_all_channel:1; - unsigned int pad0:19; - unsigned int bypass_y_adaptive_filtering:1; - unsigned int bypass_x_adaptive_filtering:1; - unsigned int pad1:9; - } hsw; - } dw137; -}; - -struct i965_surface_state2 -{ - struct { - unsigned int surface_base_address; - } ss0; - - struct { - unsigned int cbcr_pixel_offset_v_direction:2; - unsigned int pad0:4; - unsigned int width:13; - unsigned int height:13; - } ss1; - - struct { - unsigned int tile_walk:1; - unsigned int tiled_surface:1; - unsigned int half_pitch_for_chroma:1; - unsigned int pitch:17; - unsigned int pad0:2; - unsigned int surface_object_control_data:4; - unsigned int pad1:1; - unsigned int interleave_chroma:1; - unsigned int surface_format:4; - } ss2; - - struct { - unsigned int y_offset_for_cb:13; - unsigned int pad0:3; - unsigned int x_offset_for_cb:13; - unsigned int pad1:3; - } ss3; - - struct { - unsigned int y_offset_for_cr:13; - unsigned int pad0:3; - unsigned int x_offset_for_cr:13; - unsigned int pad1:3; - } ss4; -}; - -struct i965_sampler_dndi -{ - struct { - unsigned int denoise_asd_threshold:8; - unsigned int denoise_history_delta:8; - unsigned int denoise_maximum_history:8; - unsigned int denoise_stad_threshold:8; - } dw0; - - struct { - unsigned int denoise_threshold_for_sum_of_complexity_measure:8; - unsigned int denoise_moving_pixel_threshold:5; - unsigned int stmm_c2:3; - unsigned int low_temporal_difference_threshold:6; - unsigned int pad0:2; - unsigned int temporal_difference_threshold:6; - unsigned int pad1:2; - } dw1; - - struct { - unsigned int block_noise_estimate_noise_threshold:8; - unsigned int block_noise_estimate_edge_threshold:8; - unsigned int denoise_edge_threshold:8; - unsigned int good_neighbor_threshold:8; - } dw2; - - struct { - unsigned int maximum_stmm:8; - unsigned int multipler_for_vecm:6; - unsigned int pad0:2; - unsigned int blending_constant_across_time_for_small_values_of_stmm:8; - unsigned int blending_constant_across_time_for_large_values_of_stmm:7; - unsigned int stmm_blending_constant_select:1; - } dw3; - - struct { - unsigned int sdi_delta:8; - unsigned int sdi_threshold:8; - unsigned int stmm_output_shift:4; - unsigned int stmm_shift_up:2; - unsigned int stmm_shift_down:2; - unsigned int minimum_stmm:8; - } dw4; - - struct { - unsigned int fmd_temporal_difference_threshold:8; - unsigned int sdi_fallback_mode_2_constant:8; - unsigned int sdi_fallback_mode_1_t2_constant:8; - unsigned int sdi_fallback_mode_1_t1_constant:8; - } dw5; - - struct { - unsigned int dn_enable:1; - unsigned int di_enable:1; - unsigned int di_partial:1; - unsigned int dndi_top_first:1; - unsigned int dndi_stream_id:1; - unsigned int dndi_first_frame:1; - unsigned int progressive_dn:1; - unsigned int pad0:1; - unsigned int fmd_tear_threshold:6; - unsigned int pad1:2; - unsigned int fmd2_vertical_difference_threshold:8; - unsigned int fmd1_vertical_difference_threshold:8; - } dw6; - - struct { - unsigned int pad0:8; - unsigned int fmd_for_1st_field_of_current_frame:2; - unsigned int pad1:6; - unsigned int fmd_for_2nd_field_of_previous_frame:2; - unsigned int vdi_walker_enable:1; - unsigned int pad2:4; - unsigned int column_width_minus1:9; - } dw7; -}; - -struct gen8_interface_descriptor_data -{ - struct { - unsigned int pad0:6; - unsigned int kernel_start_pointer:26; - } desc0; - - struct { - unsigned int kernel_start_pointer_high:16; - unsigned int pad0:16; - } desc1; - - struct { - unsigned int pad0:7; - unsigned int software_exception_enable:1; - unsigned int pad1:3; - unsigned int maskstack_exception_enable:1; - unsigned int pad2:1; - unsigned int illegal_opcode_exception_enable:1; - unsigned int pad3:2; - unsigned int floating_point_mode:1; - unsigned int thread_priority:1; - unsigned int single_program_flow:1; - unsigned int denorm_mode:1; - unsigned int pad4:12; - } desc2; - - struct { - unsigned int pad0:2; - unsigned int sampler_count:3; - unsigned int sampler_state_pointer:27; - } desc3; - - struct { - unsigned int binding_table_entry_count:5; - unsigned int binding_table_pointer:11; - unsigned int pad0: 16; - } desc4; - - struct { - unsigned int constant_urb_entry_read_offset:16; - unsigned int constant_urb_entry_read_length:16; - } desc5; - - struct { - unsigned int num_threads_in_tg:10; - unsigned int pad0:5; - unsigned int global_barrier_enable:1; - unsigned int shared_local_memory_size:5; - unsigned int barrier_enable:1; - unsigned int rounding_mode:2; - unsigned int pad1:8; - } desc6; - - struct { - unsigned int cross_thread_constant_data_read_length:8; - unsigned int pad0:24; - } desc7; -}; - -struct gen8_surface_state -{ - struct { - unsigned int cube_pos_z:1; - unsigned int cube_neg_z:1; - unsigned int cube_pos_y:1; - unsigned int cube_neg_y:1; - unsigned int cube_pos_x:1; - unsigned int cube_neg_x:1; - unsigned int media_boundary_pixel_mode:2; - unsigned int render_cache_read_write:1; - unsigned int sampler_l2bypass_disable:1; - unsigned int vert_line_stride_ofs:1; - unsigned int vert_line_stride:1; - unsigned int tile_walk:1; - unsigned int tiled_surface:1; - unsigned int horizontal_alignment:2; - /* Field 16 */ - unsigned int vertical_alignment:2; - unsigned int surface_format:9; /**< BRW_SURFACEFORMAT_x */ - unsigned int pad0:1; - unsigned int is_array:1; - unsigned int surface_type:3; /**< BRW_SURFACE_1D/2D/3D/CUBE */ - } ss0; - - struct { - unsigned int surface_qpitch:15; - unsigned int pad0:4; - unsigned int base_mip_level:5; - unsigned int surface_mocs:7; - unsigned int pad1:1; - } ss1; - - struct { - unsigned int width:14; - unsigned int pad0:2; - unsigned int height:14; - unsigned int pad1:2; - } ss2; - - struct { - unsigned int pitch:18; - unsigned int pad:3; - unsigned int depth:11; - } ss3; - - struct { - unsigned int multisample_position_palette_index:3; - unsigned int num_multisamples:3; - unsigned int multisampled_surface_storage_format:1; - unsigned int render_target_view_extent:11; - unsigned int min_array_elt:11; - unsigned int rotation:2; - unsigned int force_ncmp_reduce_type:1; - } ss4; - - struct { - unsigned int mip_count:4; - unsigned int min_lod:4; - unsigned int pad0:4; - unsigned int pad1:2; - unsigned int coherence_type:1; - unsigned int pad2:3; - unsigned int pad3:2; - unsigned int ewa_disable_cube:1; - unsigned int y_offset:3; - unsigned int pad4:1; - unsigned int x_offset:7; - } ss5; - - struct { - unsigned int y_offset_uv_plane:14; - unsigned int pad0:2; - unsigned int x_offset_uv_plane:14; - unsigned int pad1:1; - unsigned int separate_uv_plane:1; - } ss6; - - struct { - unsigned int resource_min_lod:12; - unsigned int pad0:4; - unsigned int shader_chanel_select_a:3; - unsigned int shader_chanel_select_b:3; - unsigned int shader_chanel_select_g:3; - unsigned int shader_chanel_select_r:3; - unsigned int alpha_clear_color:1; - unsigned int blue_clear_color:1; - unsigned int green_clear_color:1; - unsigned int red_clear_color:1; - } ss7; - struct { - unsigned int base_addr; - } ss8; - - struct { - unsigned int base_addr_high:16; - unsigned int pad0:16; - } ss9; - - struct { - unsigned int pad0:12; - unsigned int aux_base_addr:20; - } ss10; - - union { - struct { - unsigned int y_offset_v_plane:14; - unsigned int pad0:2; - unsigned int x_offset_v_plane:14; - unsigned int pad1:2; - } planar; - struct { - unsigned int aux_base_addr_high:16; - unsigned int pad2:16; - } aux_buffer; - } ss11; - - struct { - unsigned int hier_depth_clear; - } ss12; - - struct { - unsigned int pad0; - } ss13; - - struct { - unsigned int pad0; - } ss14; - - struct { - unsigned int pad0; - } ss15; -}; - -struct gen8_surface_state2 -{ - struct { - unsigned int pad0; - } ss0; - - struct { - unsigned int cbcr_pixel_offset_v_direction:2; - unsigned int picture_structure:2; - unsigned int width:14; - unsigned int height:14; - } ss1; - - struct { - unsigned int tile_walk:1; - unsigned int tiled_surface:1; - unsigned int half_pitch_for_chroma:1; - unsigned int pitch:18; - unsigned int address_ctrl:1; /* clamp or mirror mode */ - unsigned int pad0:4; - unsigned int interleave_chroma:1; - unsigned int surface_format:5; - } ss2; - - struct { - unsigned int y_offset_for_cb:14; - unsigned int pad0:2; - unsigned int x_offset_for_cb:14; - unsigned int pad1:2; - } ss3; - - struct { - unsigned int y_offset_for_cr:15; - unsigned int pad0:1; - unsigned int x_offset_for_cr:14; - unsigned int pad1:2; - } ss4; - - struct { - unsigned int surface_object_mocs:7; - unsigned int pad0:11; - unsigned int pad1:2; - unsigned int pad2:10; - unsigned int vert_line_stride_offset:1; - unsigned int vert_line_stride:1; - } ss5; - - struct { - unsigned int base_addr; - } ss6; - - struct { - unsigned int base_addr_high:16; - unsigned int pad0:16; - } ss7; -}; - -struct gen9_surface_state2 -{ - struct { - unsigned int pad0:16; - unsigned int y_offset:4; - unsigned int x_offset:7; - unsigned int pad1:3; - unsigned int rotation:2; - } ss0; - - struct { - unsigned int cbcr_pixel_offset_v_direction:2; - unsigned int picture_structure:2; - unsigned int width:14; - unsigned int height:14; - } ss1; - - struct { - unsigned int tile_walk:1; - unsigned int tiled_surface:1; - unsigned int half_pitch_for_chroma:1; - unsigned int pitch:18; - unsigned int address_ctrl:1; /* clamp or mirror mode */ - unsigned int memory_compression_enable:1; - unsigned int memory_compression_mode:1; - unsigned int cbcr_pixel_offset_v_direction_msb:1; - unsigned int cbcr_pixel_offset_u_direction:1; - unsigned int interleave_chroma:1; - unsigned int surface_format:5; - } ss2; - - struct { - unsigned int y_offset_for_cb:14; - unsigned int pad0:2; - unsigned int x_offset_for_cb:14; - unsigned int pad1:2; - } ss3; - - struct { - unsigned int y_offset_for_cr:15; - unsigned int pad0:1; - unsigned int x_offset_for_cr:14; - unsigned int pad1:2; - } ss4; - - struct { - unsigned int surface_object_mocs:7; - unsigned int pad0:11; - unsigned int tr_mode:2; - unsigned int pad1:10; - unsigned int vert_line_stride_offset:1; - unsigned int vert_line_stride:1; - } ss5; - - struct { - unsigned int base_addr; - } ss6; - - struct { - unsigned int base_addr_high:16; - unsigned int pad0:16; - } ss7; -}; - -struct gen9_surface_state -{ - struct { - unsigned int pad0:6; - unsigned int media_boundary_pixel_mode:2; - unsigned int render_cache_read_write:1; - unsigned int sampler_l2bypass_disable:1; - unsigned int vert_line_stride_ofs:1; - unsigned int vert_line_stride:1; - unsigned int tile_walk:1; - unsigned int tiled_surface:1; - unsigned int horizontal_alignment:2; - /* Field 16 */ - unsigned int vertical_alignment:2; - unsigned int surface_format:9; /**< BRW_SURFACEFORMAT_x */ - unsigned int astc_enable:1; - unsigned int is_array:1; - unsigned int surface_type:3; /**< BRW_SURFACE_1D/2D/3D/CUBE */ - } ss0; - - struct { - unsigned int surface_qpitch:15; - unsigned int pad0:4; - unsigned int base_mip_level:5; - unsigned int surface_mocs:7; - unsigned int pad1:1; - } ss1; - - struct { - unsigned int width:14; - unsigned int pad0:2; - unsigned int height:14; - unsigned int pad1:2; - } ss2; - - struct { - unsigned int pitch:18; - unsigned int pad:3; - unsigned int depth:11; - } ss3; - - struct { - unsigned int multisample_position_palette_index:3; - unsigned int num_multisamples:3; - unsigned int multisampled_surface_storage_format:1; - unsigned int render_target_view_extent:11; - unsigned int min_array_elt:11; - unsigned int rotation:2; - unsigned int force_ncmp_reduce_type:1; - } ss4; - - struct { - unsigned int mip_count:4; - unsigned int min_lod:4; - unsigned int miptail_start_lod:4; - unsigned int pad0:2; - unsigned int coherence_type:1; - unsigned int pad1:3; - unsigned int tr_mode:2; - unsigned int ewa_disable_cube:1; - unsigned int y_offset:3; - unsigned int pad2:1; - unsigned int x_offset:7; - } ss5; - - struct { - unsigned int y_offset_uv_plane:14; - unsigned int pad0:2; - unsigned int x_offset_uv_plane:14; - unsigned int pad1:1; - unsigned int separate_uv_plane:1; - } ss6; - - struct { - unsigned int resource_min_lod:12; - unsigned int pad0:4; - unsigned int shader_chanel_select_a:3; - unsigned int shader_chanel_select_b:3; - unsigned int shader_chanel_select_g:3; - unsigned int shader_chanel_select_r:3; - unsigned int pad1:2; - unsigned int memory_compression_enable:1; - unsigned int memory_compression_mode:1; - } ss7; - - struct { - unsigned int base_addr; - } ss8; - - struct { - unsigned int base_addr_high; - } ss9; - - struct { - unsigned int quilt_width:5; - unsigned int quilt_height:5; - unsigned int pad0:6; - unsigned int pad1:16; - } ss10; - - struct { - unsigned int y_offset_v_plane:14; - unsigned int pad0:2; - unsigned int x_offset_v_plane:14; - unsigned int pad1:2; - } ss11; - - struct { - unsigned int pad0; - } ss12; - - struct { - unsigned int pad0; - } ss13; - - struct { - unsigned int pad0; - } ss14; - - struct { - unsigned int pad0; - } ss15; -}; - -struct gen8_sampler_state -{ - struct - { - unsigned int aniso_algorithm:1; - unsigned int lod_bias:13; - unsigned int min_filter:3; - unsigned int mag_filter:3; - unsigned int mip_filter:2; - unsigned int base_level:5; - unsigned int lod_preclamp:2; - unsigned int default_color_mode:1; - unsigned int pad0:1; - unsigned int disable:1; - } ss0; - - struct - { - unsigned int cube_control_mode:1; - unsigned int shadow_function:3; - unsigned int chroma_key_mode:1; - unsigned int chroma_key_index:2; - unsigned int chroma_key_enable:1; - unsigned int max_lod:12; - unsigned int min_lod:12; - } ss1; - - struct - { - unsigned int lod_clamp_mag_mode:1; /* MIPNONE or MIPFILTER */ - unsigned int flex_filter_vert_align:1; - unsigned int flex_filter_hort_align:1; - unsigned int flex_filter_coff_size:1; /* coff8 or coff 16 */ - unsigned int flex_filter_mode:1; - unsigned int pad0:1; - unsigned int indirect_state_pointer:18; /* point to the SAMPLE_INDIRECT_STATE */ - union { - unsigned char nonsep_filter_footer_highmask; - struct { - unsigned char pad1:2; - unsigned char sep_filter_height:2; - unsigned char sep_filter_width:2; - unsigned char sep_filter_coff_size:2; - } sep_filter; - } ss2_byte3; - } ss2; - - struct - { - unsigned int r_wrap_mode:3; - unsigned int t_wrap_mode:3; - unsigned int s_wrap_mode:3; - unsigned int pad0:1; - unsigned int non_normalized_coord:1; - unsigned int trilinear_quality:2; - unsigned int address_round:6; - unsigned int max_aniso:3; - unsigned int pad1:2; - unsigned int nonsep_filter_foot_lowmask:8; - } ss3; -}; - -struct gen8_global_blend_state -{ - unsigned int pad0:19; - unsigned int ydither_offset:2; - unsigned int xdither_offset:2; - unsigned int color_dither_enable:1; - unsigned int alpha_test_func:3; - unsigned int alpha_test_enable:1; - unsigned int alpha_to_coverage_dither:1; - unsigned int alpha_to_one:1; - unsigned int ia_blend_enable:1; - unsigned int alpha_to_coverage:1; -}; - -struct gen8_blend_state_rt { - struct { - unsigned int blue_write_dis:1; - unsigned int green_write_dis:1; - unsigned int red_write_dis:1; - unsigned int alpha_write_dis:1; - unsigned int pad0:1; - unsigned int alpha_blend_func:3; - unsigned int ia_dest_blend_factor:5; - unsigned int ia_src_blend_factor:5; - unsigned int color_blend_func:3; - unsigned int dest_blend_factor:5; - unsigned int src_blend_factor:5; - unsigned int colorbuf_blend:1; - } blend0; - - struct { - unsigned int post_blend_clamp_enable:1; - unsigned int pre_blend_clamp_enable:1; - unsigned int clamp_range:2; - unsigned int pre_blend_src_clamp:1; - unsigned int pad0:22; - unsigned int logic_op_func:4; - unsigned int logic_op_enable:1; - } blend1; -}; - -/* TODO: Add the sampler_8x8 for Gen8+. - * AVS/Convolve is 256DWs. - * MinMaxfilter/Erode/Dilate: 8DWs*/ - - -struct gen6_blend_state -{ - struct { - unsigned int dest_blend_factor:5; - unsigned int source_blend_factor:5; - unsigned int pad3:1; - unsigned int blend_func:3; - unsigned int pad2:1; - unsigned int ia_dest_blend_factor:5; - unsigned int ia_source_blend_factor:5; - unsigned int pad1:1; - unsigned int ia_blend_func:3; - unsigned int pad0:1; - unsigned int ia_blend_enable:1; - unsigned int blend_enable:1; - } blend0; - - struct { - unsigned int post_blend_clamp_enable:1; - unsigned int pre_blend_clamp_enable:1; - unsigned int clamp_range:2; - unsigned int pad0:4; - unsigned int x_dither_offset:2; - unsigned int y_dither_offset:2; - unsigned int dither_enable:1; - unsigned int alpha_test_func:3; - unsigned int alpha_test_enable:1; - unsigned int pad1:1; - unsigned int logic_op_func:4; - unsigned int logic_op_enable:1; - unsigned int pad2:1; - unsigned int write_disable_b:1; - unsigned int write_disable_g:1; - unsigned int write_disable_r:1; - unsigned int write_disable_a:1; - unsigned int pad3:1; - unsigned int alpha_to_coverage_dither:1; - unsigned int alpha_to_one:1; - unsigned int alpha_to_coverage:1; - } blend1; -}; - -struct gen6_color_calc_state -{ - struct { - unsigned int alpha_test_format:1; - unsigned int pad0:14; - unsigned int round_disable:1; - unsigned int bf_stencil_ref:8; - unsigned int stencil_ref:8; - } cc0; - - union { - float alpha_ref_f; - struct { - unsigned int ui:8; - unsigned int pad0:24; - } alpha_ref_fi; - } cc1; - - float constant_r; - float constant_g; - float constant_b; - float constant_a; -}; - -struct gen6_depth_stencil_state -{ - struct { - unsigned int pad0:3; - unsigned int bf_stencil_pass_depth_pass_op:3; - unsigned int bf_stencil_pass_depth_fail_op:3; - unsigned int bf_stencil_fail_op:3; - unsigned int bf_stencil_func:3; - unsigned int bf_stencil_enable:1; - unsigned int pad1:2; - unsigned int stencil_write_enable:1; - unsigned int stencil_pass_depth_pass_op:3; - unsigned int stencil_pass_depth_fail_op:3; - unsigned int stencil_fail_op:3; - unsigned int stencil_func:3; - unsigned int stencil_enable:1; - } ds0; - - struct { - unsigned int bf_stencil_write_mask:8; - unsigned int bf_stencil_test_mask:8; - unsigned int stencil_write_mask:8; - unsigned int stencil_test_mask:8; - } ds1; - - struct { - unsigned int pad0:26; - unsigned int depth_write_enable:1; - unsigned int depth_test_func:3; - unsigned int pad1:1; - unsigned int depth_test_enable:1; - } ds2; -}; - -struct gen6_interface_descriptor_data -{ - struct { - unsigned int pad0:6; - unsigned int kernel_start_pointer:26; - } desc0; - - struct { - unsigned int pad0:7; - unsigned int software_exception_enable:1; - unsigned int pad1:3; - unsigned int maskstack_exception_enable:1; - unsigned int pad2:1; - unsigned int illegal_opcode_exception_enable:1; - unsigned int pad3:2; - unsigned int floating_point_mode:1; - unsigned int thread_priority:1; - unsigned int single_program_flow:1; - unsigned int pad4:13; - } desc1; - - struct { - unsigned int pad0:2; - unsigned int sampler_count:3; - unsigned int sampler_state_pointer:27; - } desc2; - - struct { - unsigned int binding_table_entry_count:5; - unsigned int binding_table_pointer:27; - } desc3; - - struct { - unsigned int constant_urb_entry_read_offset:16; - unsigned int constant_urb_entry_read_length:16; - } desc4; - - union { - struct { - unsigned int num_threads:8; - unsigned int barrier_return_byte:8; - unsigned int shared_local_memory_size:5; - unsigned int barrier_enable:1; - unsigned int rounding_mode:2; - unsigned int barrier_return_grf_offset:8; - } gen7; - - struct { - unsigned int barrier_id:4; - unsigned int pad0:28; - } gen6; - } desc5; - - struct { - unsigned int cross_thread_constant_data_read_length:8; - unsigned int pad0:24; - } desc6; - - struct { - unsigned int pad0; - } desc7; -}; - -struct gen7_surface_state -{ - struct { - unsigned int cube_pos_z:1; - unsigned int cube_neg_z:1; - unsigned int cube_pos_y:1; - unsigned int cube_neg_y:1; - unsigned int cube_pos_x:1; - unsigned int cube_neg_x:1; - unsigned int pad2:2; - unsigned int render_cache_read_write:1; - unsigned int pad1:1; - unsigned int surface_array_spacing:1; - unsigned int vert_line_stride_ofs:1; - unsigned int vert_line_stride:1; - unsigned int tile_walk:1; - unsigned int tiled_surface:1; - unsigned int horizontal_alignment:1; - unsigned int vertical_alignment:2; - unsigned int surface_format:9; /**< BRW_SURFACEFORMAT_x */ - unsigned int pad0:1; - unsigned int is_array:1; - unsigned int surface_type:3; /**< BRW_SURFACE_1D/2D/3D/CUBE */ - } ss0; - - struct { - unsigned int base_addr; - } ss1; - - struct { - unsigned int width:14; - unsigned int pad1:2; - unsigned int height:14; - unsigned int pad0:2; - } ss2; - - struct { - unsigned int pitch:18; - unsigned int pad:3; - unsigned int depth:11; - } ss3; - - struct { - unsigned int multisample_position_palette_index:3; - unsigned int num_multisamples:3; - unsigned int multisampled_surface_storage_format:1; - unsigned int render_target_view_extent:11; - unsigned int min_array_elt:11; - unsigned int rotation:2; - unsigned int pad0:1; - } ss4; - - struct { - unsigned int mip_count:4; - unsigned int min_lod:4; - unsigned int pad1:12; - unsigned int y_offset:4; - unsigned int pad0:1; - unsigned int x_offset:7; - } ss5; - - struct { - unsigned int pad; /* Multisample Control Surface stuff */ - } ss6; - - struct { - unsigned int resource_min_lod:12; - unsigned int pad0:4; - unsigned int shader_chanel_select_a:3; - unsigned int shader_chanel_select_b:3; - unsigned int shader_chanel_select_g:3; - unsigned int shader_chanel_select_r:3; - unsigned int alpha_clear_color:1; - unsigned int blue_clear_color:1; - unsigned int green_clear_color:1; - unsigned int red_clear_color:1; - } ss7; -}; - -struct gen7_sampler_state -{ - struct - { - unsigned int aniso_algorithm:1; - unsigned int lod_bias:13; - unsigned int min_filter:3; - unsigned int mag_filter:3; - unsigned int mip_filter:2; - unsigned int base_level:5; - unsigned int pad1:1; - unsigned int lod_preclamp:1; - unsigned int default_color_mode:1; - unsigned int pad0:1; - unsigned int disable:1; - } ss0; - - struct - { - unsigned int cube_control_mode:1; - unsigned int shadow_function:3; - unsigned int pad:4; - unsigned int max_lod:12; - unsigned int min_lod:12; - } ss1; - - struct - { - unsigned int pad:5; - unsigned int default_color_pointer:27; - } ss2; - - struct - { - unsigned int r_wrap_mode:3; - unsigned int t_wrap_mode:3; - unsigned int s_wrap_mode:3; - unsigned int pad:1; - unsigned int non_normalized_coord:1; - unsigned int trilinear_quality:2; - unsigned int address_round:6; - unsigned int max_aniso:3; - unsigned int chroma_key_mode:1; - unsigned int chroma_key_index:2; - unsigned int chroma_key_enable:1; - unsigned int pad0:6; - } ss3; -}; - -struct gen7_surface_state2 -{ - struct { - unsigned int surface_base_address; - } ss0; - - struct { - unsigned int cbcr_pixel_offset_v_direction:2; - unsigned int picture_structure:2; - unsigned int width:14; - unsigned int height:14; - } ss1; - - struct { - unsigned int tile_walk:1; - unsigned int tiled_surface:1; - unsigned int half_pitch_for_chroma:1; - unsigned int pitch:18; - unsigned int pad0:1; - unsigned int surface_object_control_data:4; - unsigned int pad1:1; - unsigned int interleave_chroma:1; - unsigned int surface_format:4; - } ss2; - - struct { - unsigned int y_offset_for_cb:15; - unsigned int pad0:1; - unsigned int x_offset_for_cb:14; - unsigned int pad1:2; - } ss3; - - struct { - unsigned int y_offset_for_cr:15; - unsigned int pad0:1; - unsigned int x_offset_for_cr:14; - unsigned int pad1:2; - } ss4; - - struct { - unsigned int pad0; - } ss5; - - struct { - unsigned int pad0; - } ss6; - - struct { - unsigned int pad0; - } ss7; -}; - -struct gen7_sampler_8x8 -{ - struct { - unsigned int global_noise_estimation:8; - unsigned int pad0:8; - unsigned int chroma_key_index:2; - unsigned int chroma_key_enable:1; - unsigned int pad1:10; - unsigned int ief_bypass:1; - unsigned int pad2:1; - unsigned int disable_8x8_filter:1; - } dw0; - - struct { - unsigned int pad0:5; - unsigned int sampler_8x8_state_pointer:27; - } dw1; - - struct { - unsigned int weak_edge_threshold:6; - unsigned int pad0:2; - unsigned int strong_edge_threshold:6; - unsigned int pad1:2; - unsigned int r5x_coefficient:5; - unsigned int r5cx_coefficient:5; - unsigned int r5c_coefficient:5; - unsigned int pad2:1; - } dw2; - - struct { - unsigned int r3x_coefficient:5; - unsigned int pad0:1; - unsigned int r3c_coefficient:5; - unsigned int pad1:3; - unsigned int gain_factor:6; - unsigned int non_edge_weight:3; - unsigned int pad2:1; - unsigned int regular_weight:3; - unsigned int pad3:1; - unsigned int strong_edge_weight:3; - unsigned int ief4_smooth_enable:1; - } dw3; -}; - -/* This can also be used for BDW+ */ -struct gen7_sampler_dndi -{ - struct { - unsigned int denoise_asd_threshold:8; - unsigned int dnmh_delt:4; - unsigned int vdi_walker_y_stride:2; - unsigned int vdi_walker_frame_sharing_enable:1; - unsigned int pad0:1; - unsigned int denoise_maximum_history:8; - unsigned int denoise_stad_threshold:8; - } dw0; - - struct { - unsigned int denoise_threshold_for_sum_of_complexity_measure:8; - unsigned int denoise_moving_pixel_threshold:5; - unsigned int stmm_c2:3; - unsigned int low_temporal_difference_threshold:6; - unsigned int pad0:2; - unsigned int temporal_difference_threshold:6; - unsigned int pad1:2; - } dw1; - - struct { - unsigned int block_noise_estimate_noise_threshold:8; - unsigned int bne_edge_th:4; - unsigned int pad0:2; - unsigned int smooth_mv_th:2; - unsigned int sad_tight_th:4; - unsigned int cat_slope_minus1:4; - unsigned int good_neighbor_th:6; - unsigned int pad1:2; - } dw2; - - struct { - unsigned int maximum_stmm:8; - unsigned int multipler_for_vecm:6; - unsigned int pad0:2; - unsigned int blending_constant_across_time_for_small_values_of_stmm:8; - unsigned int blending_constant_across_time_for_large_values_of_stmm:7; - unsigned int stmm_blending_constant_select:1; - } dw3; - - struct { - unsigned int sdi_delta:8; - unsigned int sdi_threshold:8; - unsigned int stmm_output_shift:4; - unsigned int stmm_shift_up:2; - unsigned int stmm_shift_down:2; - unsigned int minimum_stmm:8; - } dw4; - - struct { - unsigned int fmd_temporal_difference_threshold:8; - unsigned int sdi_fallback_mode_2_constant:8; - unsigned int sdi_fallback_mode_1_t2_constant:8; - unsigned int sdi_fallback_mode_1_t1_constant:8; - } dw5; - - struct { - unsigned int dn_enable:1; - unsigned int di_enable:1; - unsigned int di_partial:1; - unsigned int dndi_top_first:1; - unsigned int dndi_stream_id:1; - unsigned int dndi_first_frame:1; - unsigned int progressive_dn:1; - unsigned int mcdi_enable:1; - unsigned int fmd_tear_threshold:6; - unsigned int cat_th1:2; - unsigned int fmd2_vertical_difference_threshold:8; - unsigned int fmd1_vertical_difference_threshold:8; - } dw6; - - struct { - unsigned int sad_tha:4; - unsigned int sad_thb:4; - unsigned int fmd_for_1st_field_of_current_frame:2; - unsigned int mc_pixel_consistency_th:6; - unsigned int fmd_for_2nd_field_of_previous_frame:2; - unsigned int vdi_walker_enable:1; - unsigned int neighborpixel_th:4; - unsigned int column_width_minus1:9; - } dw7; -}; - -struct gen8_sampler_8x8_avs_coefficients -{ - struct { - unsigned int table_0x_filter_c0:8; - unsigned int table_0y_filter_c0:8; - unsigned int table_0x_filter_c1:8; - unsigned int table_0y_filter_c1:8; - } dw0; - - struct { - unsigned int table_0x_filter_c2:8; - unsigned int table_0y_filter_c2:8; - unsigned int table_0x_filter_c3:8; - unsigned int table_0y_filter_c3:8; - } dw1; - - struct { - unsigned int table_0x_filter_c4:8; - unsigned int table_0y_filter_c4:8; - unsigned int table_0x_filter_c5:8; - unsigned int table_0y_filter_c5:8; - } dw2; - - struct { - unsigned int table_0x_filter_c6:8; - unsigned int table_0y_filter_c6:8; - unsigned int table_0x_filter_c7:8; - unsigned int table_0y_filter_c7:8; - } dw3; - - struct { - unsigned int pad0:16; - unsigned int table_1x_filter_c2:8; - unsigned int table_1x_filter_c3:8; - } dw4; - - struct { - unsigned int table_1x_filter_c4:8; - unsigned int table_1x_filter_c5:8; - unsigned int pad0:16; - } dw5; - - struct { - unsigned int pad0:16; - unsigned int table_1y_filter_c2:8; - unsigned int table_1y_filter_c3:8; - } dw6; - - struct { - unsigned int table_1y_filter_c4:8; - unsigned int table_1y_filter_c5:8; - unsigned int pad0:16; - } dw7; -}; - -struct gen8_sampler_8x8_avs { - struct { - unsigned int gain_factor:6; - unsigned int weak_edge_threshold:6; - unsigned int strong_edge_threshold:6; - unsigned int r3x_coefficient:5; - unsigned int r3c_coefficient:5; - unsigned int chroma_key_index:2; - unsigned int chroma_key_enable:1; - unsigned int pad1:1; - } dw0; - - struct { - unsigned int pad0; - } dw1; - - struct { - unsigned int global_noise_estimation:8; - unsigned int non_edge_weight:3; - unsigned int regular_weight:3; - unsigned int strong_edge_weight:3; - unsigned int r5x_coefficient:5; - unsigned int r5cx_coefficient:5; - unsigned int r5c_coefficient:5; - } dw2; - - struct { - unsigned int sin_alpha:8; /* S0.7 */ - unsigned int cos_alpha:8; /* S0.7 */ - unsigned int sat_max:6; - unsigned int hue_max:6; - unsigned int enable_8tap_filter:2; - unsigned int ief4_smooth_enable:1; - unsigned int skin_ief_enable:1; - } dw3; - - struct { - unsigned int s3u:11; /* S2.8 */ - unsigned int pad0:1; - unsigned int diamond_margin:3; - unsigned int vy_std_enable:1; - unsigned int umid:8; - unsigned int vmid:8; - } dw4; - - struct { - unsigned int diamond_dv:7; - unsigned int diamond_th:6; - unsigned int diamond_alpha:8; - unsigned int hs_margin:3; - unsigned int diamond_du:7; - unsigned int skin_detailfilter:1; - } dw5; - - struct { - unsigned int y_point1:8; - unsigned int y_point2:8; - unsigned int y_point3:8; - unsigned int y_point4:8; - } dw6; - - struct { - unsigned int inv_margin_vyl:16; - unsigned int pad0:16; - } dw7; - - struct { - unsigned int inv_margin_vyu:16; - unsigned int p0l:8; - unsigned int p1l:8; - } dw8; - - struct { - unsigned int p2l:8; - unsigned int p3l:8; - unsigned int b0l:8; - unsigned int b1l:8; - } dw9; - - struct { - unsigned int b2l:8; - unsigned int b3l:8; - unsigned int s0l:11; - unsigned int y_slope2:5; - } dw10; - - struct { - unsigned int s1l:11; - unsigned int s2l:11; - unsigned int pad0:10; - } dw11; - - struct { - unsigned int s3l:11; - unsigned int p0u:8; - unsigned int p1u:8; - unsigned int y_slope1:5; - } dw12; - - struct { - unsigned int p2u:8; - unsigned int p3u:8; - unsigned int b0u:8; - unsigned int b1u:8; - } dw13; - - struct { - unsigned int b2u:8; - unsigned int b3u:8; - unsigned int s0u:11; - unsigned int pad0:5; - } dw14; - - struct { - unsigned int s1u:11; - unsigned int s2u:11; - unsigned int pad0:10; - } dw15; - - /* DW16-DW151 */ - struct gen8_sampler_8x8_avs_coefficients coefficients[17]; - - struct { - unsigned int transition_area_with_8_pixels:3; - unsigned int pad0:1; - unsigned int transition_area_with_4_pixels:3; - unsigned int pad1:1; - unsigned int max_derivative_8_pixels:8; - unsigned int max_derivative_4_pixels:8; - unsigned int default_sharpness_level:8; - } dw152; - - struct { - unsigned int rgb_adaptive:1; - unsigned int adaptive_filter_for_all_channel:1; - unsigned int pad0:19; - unsigned int bypass_y_adaptive_filtering:1; - unsigned int bypass_x_adaptive_filtering:1; - unsigned int pad1:9; - } dw153; - - unsigned int reserved[6]; - - /* DW160-DW279 */ - struct gen8_sampler_8x8_avs_coefficients coefficients1[15]; -}; - -struct gen9_sampler_8x8_avs -{ - struct { - unsigned int gain_factor:6; - unsigned int weak_edge_threshold:6; - unsigned int strong_edge_threshold:6; - unsigned int r3x_coefficient:5; - unsigned int r3c_coefficient:5; - unsigned int pad1:4; - } dw0; - - struct { - unsigned int pad0; - } dw1; - - struct { - unsigned int global_noise_estimation:8; - unsigned int non_edge_weight:3; - unsigned int regular_weight:3; - unsigned int strong_edge_weight:3; - unsigned int r5x_coefficient:5; - unsigned int r5cx_coefficient:5; - unsigned int r5c_coefficient:5; - } dw2; - - struct { - unsigned int sin_alpha:8; /* S0.7 */ - unsigned int cos_alpha:8; /* S0.7 */ - unsigned int sat_max:6; - unsigned int hue_max:6; - unsigned int enable_8tap_adaptive_filter:2; - unsigned int ief4_smooth_enable:1; - unsigned int skin_ief_enable:1; - } dw3; - - struct { - unsigned int s3u:11; /* S2.8 */ - unsigned int shuffle_output_write_back:1; - unsigned int diamond_margin:3; - unsigned int vy_std_enable:1; - unsigned int umid:8; - unsigned int vmid:8; - } dw4; - - struct { - unsigned int diamond_dv:7; - unsigned int diamond_th:6; - unsigned int diamond_alpha:8; - unsigned int hs_margin:3; - unsigned int diamond_du:7; - unsigned int skin_detailfilter:1; - } dw5; - - struct { - unsigned int y_point1:8; - unsigned int y_point2:8; - unsigned int y_point3:8; - unsigned int y_point4:8; - } dw6; - - struct { - unsigned int inv_margin_vyl:16; - unsigned int pad0:16; - } dw7; - - struct { - unsigned int inv_margin_vyu:16; - unsigned int p0l:8; - unsigned int p1l:8; - } dw8; - - struct { - unsigned int p2l:8; - unsigned int p3l:8; - unsigned int b0l:8; - unsigned int b1l:8; - } dw9; - - struct { - unsigned int b2l:8; - unsigned int b3l:8; - unsigned int s0l:11; - unsigned int y_slope2:5; - } dw10; - - struct { - unsigned int s1l:11; - unsigned int s2l:11; - unsigned int pad0:10; - } dw11; - - struct { - unsigned int s3l:11; - unsigned int p0u:8; - unsigned int p1u:8; - unsigned int y_slope1:5; - } dw12; - - struct { - unsigned int p2u:8; - unsigned int p3u:8; - unsigned int b0u:8; - unsigned int b1u:8; - } dw13; - - struct { - unsigned int b2u:8; - unsigned int b3u:8; - unsigned int s0u:11; - unsigned int pad0:5; - } dw14; - - struct { - unsigned int s1u:11; - unsigned int s2u:11; - unsigned int pad0:10; - } dw15; - - /* DW16-DW151 for 17 coeff tabls */ - struct gen8_sampler_8x8_avs_coefficients coefficients[17]; - - struct { - unsigned int transition_area_with_8_pixels:3; - unsigned int pad0:1; - unsigned int transition_area_with_4_pixels:3; - unsigned int pad1:1; - unsigned int max_derivative_8_pixels:8; - unsigned int max_derivative_4_pixels:8; - unsigned int default_sharpness_level:8; - } dw152; - - struct { - unsigned int rgb_adaptive:1; - unsigned int adaptive_filter_for_all_channel:1; - unsigned int pad0:19; - unsigned int bypass_y_adaptive_filtering:1; - unsigned int bypass_x_adaptive_filtering:1; - unsigned int pad1:9; - } dw153; - - unsigned int reserved1[6]; - - /* 160-279 for 17..31 avs_coeff */ - struct gen8_sampler_8x8_avs_coefficients extra_coefficients[15]; - - // 280 - 511 (padding to align it to 512 dwords) - unsigned int reserved2[232]; -}; - -#define SURFACE_STATE_PADDED_SIZE_0_GEN7 ALIGN(sizeof(struct gen7_surface_state), 32) -#define SURFACE_STATE_PADDED_SIZE_1_GEN7 ALIGN(sizeof(struct gen7_surface_state2), 32) -#define SURFACE_STATE_PADDED_SIZE_GEN7 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN7, SURFACE_STATE_PADDED_SIZE_1_GEN7) - -#define SURFACE_STATE_PADDED_SIZE_0_GEN6 ALIGN(sizeof(struct i965_surface_state), 32) -#define SURFACE_STATE_PADDED_SIZE_1_GEN6 ALIGN(sizeof(struct i965_surface_state2), 32) -#define SURFACE_STATE_PADDED_SIZE_GEN6 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN6, SURFACE_STATE_PADDED_SIZE_1_GEN6) - -#define SURFACE_STATE_PADDED_SIZE_0_GEN8 ALIGN(sizeof(struct gen8_surface_state), 32) -#define SURFACE_STATE_PADDED_SIZE_1_GEN8 ALIGN(sizeof(struct gen8_surface_state2), 32) -#define SURFACE_STATE_PADDED_SIZE_GEN8 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN8, SURFACE_STATE_PADDED_SIZE_1_GEN8) - -#define SURFACE_STATE_PADDED_SIZE_0_GEN9 ALIGN(sizeof(struct gen9_surface_state), 32) -#define SURFACE_STATE_PADDED_SIZE_1_GEN9 ALIGN(sizeof(struct gen9_surface_state2), 32) -#define SURFACE_STATE_PADDED_SIZE_GEN9 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN9, SURFACE_STATE_PADDED_SIZE_1_GEN9) - -#endif /* _I965_STRUCTS_H_ */ |