diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-07-26 09:35:06 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-07-28 14:49:07 +0100 |
commit | 45d4e8dcf9aee37015b1ee026997ed4dabdf112e (patch) | |
tree | c140efa6a28d80266849d08d5ea368419e95c977 /src/brw_structs.h | |
parent | ab28526ea43728fb675448515e1519a970fb5f56 (diff) |
uxa: Clear up the common intel directory
Move all the UXA backend specifc files into their own subdirectory.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/brw_structs.h')
-rw-r--r-- | src/brw_structs.h | 1723 |
1 files changed, 0 insertions, 1723 deletions
diff --git a/src/brw_structs.h b/src/brw_structs.h deleted file mode 100644 index 20c2f857..00000000 --- a/src/brw_structs.h +++ /dev/null @@ -1,1723 +0,0 @@ - /************************************************************************** - * - * Copyright 2005 Tungsten Graphics, Inc., Cedar Park, Texas. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the - * "Software"), to deal in the Software without restriction, including - * without limitation the rights to use, copy, modify, merge, publish, - * distribute, sub license, and/or sell copies of the Software, and to - * permit persons to whom the Software is furnished to do so, subject to - * the following conditions: - * - * The above copyright notice and this permission notice (including the - * next paragraph) shall be included in all copies or substantial portions - * of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR - * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - **************************************************************************/ - -#ifndef BRW_STRUCTS_H -#define BRW_STRUCTS_H - -/* Command packets: - */ -struct header -{ - unsigned int length:16; - unsigned int opcode:16; -}; - - -union header_union -{ - struct header bits; - unsigned int dword; -}; - -struct brw_3d_control -{ - struct - { - unsigned int length:8; - unsigned int notify_enable:1; - unsigned int pad:3; - unsigned int wc_flush_enable:1; - unsigned int depth_stall_enable:1; - unsigned int operation:2; - unsigned int opcode:16; - } header; - - struct - { - unsigned int pad:2; - unsigned int dest_addr_type:1; - unsigned int dest_addr:29; - } dest; - - unsigned int dword2; - unsigned int dword3; -}; - - -struct brw_3d_primitive -{ - struct - { - unsigned int length:8; - unsigned int pad:2; - unsigned int topology:5; - unsigned int indexed:1; - unsigned int opcode:16; - } header; - - unsigned int verts_per_instance; - unsigned int start_vert_location; - unsigned int instance_count; - unsigned int start_instance_location; - unsigned int base_vert_location; -}; - -/* These seem to be passed around as function args, so it works out - * better to keep them as #defines: - */ -#define BRW_FLUSH_READ_CACHE 0x1 -#define BRW_FLUSH_STATE_CACHE 0x2 -#define BRW_INHIBIT_FLUSH_RENDER_CACHE 0x4 -#define BRW_FLUSH_SNAPSHOT_COUNTERS 0x8 - -struct brw_mi_flush -{ - unsigned int flags:4; - unsigned int pad:12; - unsigned int opcode:16; -}; - -struct brw_vf_statistics -{ - unsigned int statistics_enable:1; - unsigned int pad:15; - unsigned int opcode:16; -}; - - - -struct brw_binding_table_pointers -{ - struct header header; - unsigned int vs; - unsigned int gs; - unsigned int clp; - unsigned int sf; - unsigned int wm; -}; - - -struct brw_blend_constant_color -{ - struct header header; - float blend_constant_color[4]; -}; - - -struct brw_depthbuffer -{ - union header_union header; - - union { - struct { - unsigned int pitch:18; - unsigned int format:3; - unsigned int pad:4; - unsigned int depth_offset_disable:1; - unsigned int tile_walk:1; - unsigned int tiled_surface:1; - unsigned int pad2:1; - unsigned int surface_type:3; - } bits; - unsigned int dword; - } dword1; - - unsigned int dword2_base_addr; - - union { - struct { - unsigned int pad:1; - unsigned int mipmap_layout:1; - unsigned int lod:4; - unsigned int width:13; - unsigned int height:13; - } bits; - unsigned int dword; - } dword3; - - union { - struct { - unsigned int pad:12; - unsigned int min_array_element:9; - unsigned int depth:11; - } bits; - unsigned int dword; - } dword4; -}; - -struct brw_drawrect -{ - struct header header; - unsigned int xmin:16; - unsigned int ymin:16; - unsigned int xmax:16; - unsigned int ymax:16; - unsigned int xorg:16; - unsigned int yorg:16; -}; - - - - -struct brw_global_depth_offset_clamp -{ - struct header header; - float depth_offset_clamp; -}; - -struct brw_indexbuffer -{ - union { - struct - { - unsigned int length:8; - unsigned int index_format:2; - unsigned int cut_index_enable:1; - unsigned int pad:5; - unsigned int opcode:16; - } bits; - unsigned int dword; - - } header; - - unsigned int buffer_start; - unsigned int buffer_end; -}; - - -struct brw_line_stipple -{ - struct header header; - - struct - { - unsigned int pattern:16; - unsigned int pad:16; - } bits0; - - struct - { - unsigned int repeat_count:9; - unsigned int pad:7; - unsigned int inverse_repeat_count:16; - } bits1; -}; - - -struct brw_pipelined_state_pointers -{ - struct header header; - - struct { - unsigned int pad:5; - unsigned int offset:27; - } vs; - - struct - { - unsigned int enable:1; - unsigned int pad:4; - unsigned int offset:27; - } gs; - - struct - { - unsigned int enable:1; - unsigned int pad:4; - unsigned int offset:27; - } clp; - - struct - { - unsigned int pad:5; - unsigned int offset:27; - } sf; - - struct - { - unsigned int pad:5; - unsigned int offset:27; - } wm; - - struct - { - unsigned int pad:5; - unsigned int offset:27; /* KW: check me! */ - } cc; -}; - - -struct brw_polygon_stipple_offset -{ - struct header header; - - struct { - unsigned int y_offset:5; - unsigned int pad:3; - unsigned int x_offset:5; - unsigned int pad0:19; - } bits0; -}; - - - -struct brw_polygon_stipple -{ - struct header header; - unsigned int stipple[32]; -}; - - - -struct brw_pipeline_select -{ - struct - { - unsigned int pipeline_select:1; - unsigned int pad:15; - unsigned int opcode:16; - } header; -}; - - -struct brw_pipe_control -{ - struct - { - unsigned int length:8; - unsigned int notify_enable:1; - unsigned int pad:2; - unsigned int instruction_state_cache_flush_enable:1; - unsigned int write_cache_flush_enable:1; - unsigned int depth_stall_enable:1; - unsigned int post_sync_operation:2; - - unsigned int opcode:16; - } header; - - struct - { - unsigned int pad:2; - unsigned int dest_addr_type:1; - unsigned int dest_addr:29; - } bits1; - - unsigned int data0; - unsigned int data1; -}; - - -struct brw_urb_fence -{ - struct - { - unsigned int length:8; - unsigned int vs_realloc:1; - unsigned int gs_realloc:1; - unsigned int clp_realloc:1; - unsigned int sf_realloc:1; - unsigned int vfe_realloc:1; - unsigned int cs_realloc:1; - unsigned int pad:2; - unsigned int opcode:16; - } header; - - struct - { - unsigned int vs_fence:10; - unsigned int gs_fence:10; - unsigned int clp_fence:10; - unsigned int pad:2; - } bits0; - - struct - { - unsigned int sf_fence:10; - unsigned int vf_fence:10; - unsigned int cs_fence:10; - unsigned int pad:2; - } bits1; -}; - -struct brw_constant_buffer_state /* previously brw_command_streamer */ -{ - struct header header; - - struct - { - unsigned int nr_urb_entries:3; - unsigned int pad:1; - unsigned int urb_entry_size:5; - unsigned int pad0:23; - } bits0; -}; - -struct brw_constant_buffer -{ - struct - { - unsigned int length:8; - unsigned int valid:1; - unsigned int pad:7; - unsigned int opcode:16; - } header; - - struct - { - unsigned int buffer_length:6; - unsigned int buffer_address:26; - } bits0; -}; - -struct brw_state_base_address -{ - struct header header; - - struct - { - unsigned int modify_enable:1; - unsigned int pad:4; - unsigned int general_state_address:27; - } bits0; - - struct - { - unsigned int modify_enable:1; - unsigned int pad:4; - unsigned int surface_state_address:27; - } bits1; - - struct - { - unsigned int modify_enable:1; - unsigned int pad:4; - unsigned int indirect_object_state_address:27; - } bits2; - - struct - { - unsigned int modify_enable:1; - unsigned int pad:11; - unsigned int general_state_upper_bound:20; - } bits3; - - struct - { - unsigned int modify_enable:1; - unsigned int pad:11; - unsigned int indirect_object_state_upper_bound:20; - } bits4; -}; - -struct brw_state_prefetch -{ - struct header header; - - struct - { - unsigned int prefetch_count:3; - unsigned int pad:3; - unsigned int prefetch_pointer:26; - } bits0; -}; - -struct brw_system_instruction_pointer -{ - struct header header; - - struct - { - unsigned int pad:4; - unsigned int system_instruction_pointer:28; - } bits0; -}; - - - - -/* State structs for the various fixed function units: - */ - - -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 brw_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 brw_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 brw_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 brw_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 brw_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 brw_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 { - unsigned int pad0:1; - unsigned int grf_reg_count_1:3; - unsigned int pad1:2; - unsigned int kernel_start_pointer_1:26; - } wm8; - - struct { - unsigned int pad0:1; - unsigned int grf_reg_count_2:3; - unsigned int pad1:2; - unsigned int kernel_start_pointer_2:26; - } wm9; - - struct { - unsigned int pad0:1; - unsigned int grf_reg_count_3:3; - unsigned int pad1:2; - unsigned int kernel_start_pointer_3:26; - } wm10; -}; - -struct brw_wm_unit_state_padded { - struct brw_wm_unit_state state; - char pad[64 - sizeof(struct brw_wm_unit_state)]; -}; - -/* The hardware supports two different modes for border color. The - * default (OpenGL) mode uses floating-point color channels, while the - * legacy mode uses 4 bytes. - * - * More significantly, the legacy mode respects the components of the - * border color for channels not present in the source, (whereas the - * default mode will ignore the border color's alpha channel and use - * alpha==1 for an RGB source, for example). - * - * The legacy mode matches the semantics specified by the Render - * extension. - */ -struct brw_sampler_default_border_color { - float color[4]; -}; - -struct brw_sampler_legacy_border_color { - uint8_t color[4]; -}; - -struct brw_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 brw_clipper_viewport -{ - float xmin; - float xmax; - float ymin; - float ymax; -}; - -struct brw_cc_viewport -{ - float min_depth; - float max_depth; -}; - -struct brw_sf_viewport -{ - struct { - float m00; - float m11; - float m22; - float m30; - float m31; - float m32; - } viewport; - - struct { - short xmin; - short ymin; - short xmax; - short ymax; - } scissor; -}; - -/* Documented in the subsystem/shared-functions/sampler chapter... - */ -struct brw_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:3; - unsigned int render_cache_read_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 brw_vertex_buffer_state -{ - struct { - unsigned int pitch:11; - unsigned int pad:15; - unsigned int access_type:1; - unsigned int vb_index:5; - } vb0; - - unsigned int start_addr; - unsigned int max_index; -#if 1 - unsigned int instance_data_step_rate; /* not included for sequential/random vertices? */ -#endif -}; - -#define BRW_VBP_MAX 17 - -struct brw_vb_array_state { - struct header header; - struct brw_vertex_buffer_state vb[BRW_VBP_MAX]; -}; - - -struct brw_vertex_element_state -{ - struct - { - unsigned int src_offset:11; - unsigned int pad:5; - unsigned int src_format:9; - unsigned int pad0:1; - unsigned int valid:1; - unsigned int vertex_buffer_index:5; - } ve0; - - struct - { - unsigned int dst_offset:8; - unsigned int pad:8; - unsigned int vfcomponent3:4; - unsigned int vfcomponent2:4; - unsigned int vfcomponent1:4; - unsigned int vfcomponent0:4; - } ve1; -}; - -#define BRW_VEP_MAX 18 - -struct brw_vertex_element_packet { - struct header header; - struct brw_vertex_element_state ve[BRW_VEP_MAX]; /* note: less than _TNL_ATTRIB_MAX */ -}; - - -struct brw_urb_immediate { - unsigned int opcode:4; - unsigned int offset:6; - unsigned int swizzle_control:2; - unsigned int pad:1; - unsigned int allocate:1; - unsigned int used:1; - unsigned int complete:1; - unsigned int response_length:4; - unsigned int msg_length:4; - unsigned int msg_target:4; - unsigned int pad1:3; - unsigned int end_of_thread:1; -}; - -/* Instruction format for the execution units: - */ - -struct brw_instruction -{ - struct - { - unsigned int opcode:7; - unsigned int pad:1; - unsigned int access_mode:1; - unsigned int mask_control:1; - unsigned int dependency_control:2; - unsigned int compression_control:2; - unsigned int thread_control:2; - unsigned int predicate_control:4; - unsigned int predicate_inverse:1; - unsigned int execution_size:3; - unsigned int destreg__conditonalmod:4; /* destreg - send, conditionalmod - others */ - unsigned int pad0:2; - unsigned int debug_control:1; - unsigned int saturate:1; - } header; - - union { - struct - { - unsigned int dest_reg_file:2; - unsigned int dest_reg_type:3; - unsigned int src0_reg_file:2; - unsigned int src0_reg_type:3; - unsigned int src1_reg_file:2; - unsigned int src1_reg_type:3; - unsigned int pad:1; - unsigned int dest_subreg_nr:5; - unsigned int dest_reg_nr:8; - unsigned int dest_horiz_stride:2; - unsigned int dest_address_mode:1; - } da1; - - struct - { - unsigned int dest_reg_file:2; - unsigned int dest_reg_type:3; - unsigned int src0_reg_file:2; - unsigned int src0_reg_type:3; - unsigned int pad:6; - int dest_indirect_offset:10; /* offset against the deref'd address reg */ - unsigned int dest_subreg_nr:3; /* subnr for the address reg a0.x */ - unsigned int dest_horiz_stride:2; - unsigned int dest_address_mode:1; - } ia1; - - struct - { - unsigned int dest_reg_file:2; - unsigned int dest_reg_type:3; - unsigned int src0_reg_file:2; - unsigned int src0_reg_type:3; - unsigned int src1_reg_file:2; - unsigned int src1_reg_type:3; - unsigned int pad0:1; - unsigned int dest_writemask:4; - unsigned int dest_subreg_nr:1; - unsigned int dest_reg_nr:8; - unsigned int pad1:2; - unsigned int dest_address_mode:1; - } da16; - - struct - { - unsigned int dest_reg_file:2; - unsigned int dest_reg_type:3; - unsigned int src0_reg_file:2; - unsigned int src0_reg_type:3; - unsigned int pad0:6; - unsigned int dest_writemask:4; - int dest_indirect_offset:6; - unsigned int dest_subreg_nr:3; - unsigned int pad1:2; - unsigned int dest_address_mode:1; - } ia16; - } bits1; - - - union { - struct - { - unsigned int src0_subreg_nr:5; - unsigned int src0_reg_nr:8; - unsigned int src0_abs:1; - unsigned int src0_negate:1; - unsigned int src0_address_mode:1; - unsigned int src0_horiz_stride:2; - unsigned int src0_width:3; - unsigned int src0_vert_stride:4; - unsigned int flag_reg_nr:1; - unsigned int pad:6; - } da1; - - struct - { - int src0_indirect_offset:10; - unsigned int src0_subreg_nr:3; - unsigned int src0_abs:1; - unsigned int src0_negate:1; - unsigned int src0_address_mode:1; - unsigned int src0_horiz_stride:2; - unsigned int src0_width:3; - unsigned int src0_vert_stride:4; - unsigned int flag_reg_nr:1; - unsigned int pad:6; - } ia1; - - struct - { - unsigned int src0_swz_x:2; - unsigned int src0_swz_y:2; - unsigned int src0_subreg_nr:1; - unsigned int src0_reg_nr:8; - unsigned int src0_abs:1; - unsigned int src0_negate:1; - unsigned int src0_address_mode:1; - unsigned int src0_swz_z:2; - unsigned int src0_swz_w:2; - unsigned int pad0:1; - unsigned int src0_vert_stride:4; - unsigned int flag_reg_nr:1; - unsigned int pad1:6; - } da16; - - struct - { - unsigned int src0_swz_x:2; - unsigned int src0_swz_y:2; - int src0_indirect_offset:6; - unsigned int src0_subreg_nr:3; - unsigned int src0_abs:1; - unsigned int src0_negate:1; - unsigned int src0_address_mode:1; - unsigned int src0_swz_z:2; - unsigned int src0_swz_w:2; - unsigned int pad0:1; - unsigned int src0_vert_stride:4; - unsigned int flag_reg_nr:1; - unsigned int pad1:6; - } ia16; - - } bits2; - - union - { - struct - { - unsigned int src1_subreg_nr:5; - unsigned int src1_reg_nr:8; - unsigned int src1_abs:1; - unsigned int src1_negate:1; - unsigned int pad:1; - unsigned int src1_horiz_stride:2; - unsigned int src1_width:3; - unsigned int src1_vert_stride:4; - unsigned int pad0:7; - } da1; - - struct - { - unsigned int src1_swz_x:2; - unsigned int src1_swz_y:2; - unsigned int src1_subreg_nr:1; - unsigned int src1_reg_nr:8; - unsigned int src1_abs:1; - unsigned int src1_negate:1; - unsigned int pad0:1; - unsigned int src1_swz_z:2; - unsigned int src1_swz_w:2; - unsigned int pad1:1; - unsigned int src1_vert_stride:4; - unsigned int pad2:7; - } da16; - - struct - { - int src1_indirect_offset:10; - unsigned int src1_subreg_nr:3; - unsigned int src1_abs:1; - unsigned int src1_negate:1; - unsigned int pad0:1; - unsigned int src1_horiz_stride:2; - unsigned int src1_width:3; - unsigned int src1_vert_stride:4; - unsigned int flag_reg_nr:1; - unsigned int pad1:6; - } ia1; - - struct - { - unsigned int src1_swz_x:2; - unsigned int src1_swz_y:2; - int src1_indirect_offset:6; - unsigned int src1_subreg_nr:3; - unsigned int src1_abs:1; - unsigned int src1_negate:1; - unsigned int pad0:1; - unsigned int src1_swz_z:2; - unsigned int src1_swz_w:2; - unsigned int pad1:1; - unsigned int src1_vert_stride:4; - unsigned int flag_reg_nr:1; - unsigned int pad2:6; - } ia16; - - - struct - { - int jump_count:16; /* note: signed */ - unsigned int pop_count:4; - unsigned int pad0:12; - } if_else; - - struct { - unsigned int function:4; - unsigned int int_type:1; - unsigned int precision:1; - unsigned int saturate:1; - unsigned int data_type:1; - unsigned int pad0:8; - unsigned int response_length:4; - unsigned int msg_length:4; - unsigned int msg_target:4; - unsigned int pad1:3; - unsigned int end_of_thread:1; - } math; - - struct { - unsigned int binding_table_index:8; - unsigned int sampler:4; - unsigned int return_format:2; - unsigned int msg_type:2; - unsigned int response_length:4; - unsigned int msg_length:4; - unsigned int msg_target:4; - unsigned int pad1:3; - unsigned int end_of_thread:1; - } sampler; - - struct brw_urb_immediate urb; - - struct { - unsigned int binding_table_index:8; - unsigned int msg_control:4; - unsigned int msg_type:2; - unsigned int target_cache:2; - unsigned int response_length:4; - unsigned int msg_length:4; - unsigned int msg_target:4; - unsigned int pad1:3; - unsigned int end_of_thread:1; - } dp_read; - - struct { - unsigned int binding_table_index:8; - unsigned int msg_control:3; - unsigned int pixel_scoreboard_clear:1; - unsigned int msg_type:3; - unsigned int send_commit_msg:1; - unsigned int response_length:4; - unsigned int msg_length:4; - unsigned int msg_target:4; - unsigned int pad1:3; - unsigned int end_of_thread:1; - } dp_write; - - struct { - unsigned int pad:16; - unsigned int response_length:4; - unsigned int msg_length:4; - unsigned int msg_target:4; - unsigned int pad1:3; - unsigned int end_of_thread:1; - } generic; - - unsigned int ud; - } bits3; -}; - -/* media pipeline */ - -struct brw_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 brw_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 brw_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 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 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; -}; - -#endif |