diff options
Diffstat (limited to 'drivers/gpu/drm/emgd/emgd/include/plb/state3d.h')
-rw-r--r-- | drivers/gpu/drm/emgd/emgd/include/plb/state3d.h | 393 |
1 files changed, 0 insertions, 393 deletions
diff --git a/drivers/gpu/drm/emgd/emgd/include/plb/state3d.h b/drivers/gpu/drm/emgd/emgd/include/plb/state3d.h deleted file mode 100644 index 6962693fc73d..000000000000 --- a/drivers/gpu/drm/emgd/emgd/include/plb/state3d.h +++ /dev/null @@ -1,393 +0,0 @@ -/* -*- pse-c -*- - *----------------------------------------------------------------------------- - * Filename: state3d.h - * $Revision: 1.3 $ - *----------------------------------------------------------------------------- - * Copyright © 2002-2010, Intel Corporation. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. - * - *----------------------------------------------------------------------------- - * Description: - * This file is an inter-module header file for manipulating the 3D - * State variables. - *----------------------------------------------------------------------------- - */ -/* - * This is referenced from Napa code. For Poulsbo, the HW spec may be - * different. Be ready for the new change. - */ - -#ifndef _STATE3D_H -#define _STATE3D_H - -#include <plb/appcontext.h> - -/* The dispatch table */ -typedef struct _state3d_dispatch_plb_t { - int lsi1_s2_needs_s3; /* Does LSI1 S2 also require S3? */ - int lsi2_s3_830_845; -} state3d_dispatch_plb_t; - -/* The array of buffer infos are used for these purposes */ -#define COLOR_BUFFER_INDEX 0 -#define DEPTH_BUFFER_INDEX 1 -#define AUX0_BUFFER_INDEX 2 -#define AUX1_BUFFER_INDEX 3 -#define INTRA_BUFFER_INDEX 4 - -typedef struct _state3d_buffer_info_plb { - union { - struct { - unsigned long pitch :14; - unsigned long :7; - unsigned long tile_walk :1; - unsigned long tiled :1; - unsigned long fenced :1; - unsigned long buffer_id :4; - unsigned long aux_id :1; - unsigned long :3; - }; - unsigned long dw1; - }; - union { - unsigned long base; - unsigned long dw2; - }; - unsigned long mod; -} state3d_buffer_info_plb_t; - -typedef struct _state3d_dest_buffer_vars_plb { - union { - struct { - unsigned long vert_offset :1; - unsigned long vert_stride :1; - unsigned long depth_format :3; - unsigned long :1; - unsigned long depth_component :1; - unsigned long :1; - unsigned long color_format :4; - unsigned long write_select :3; - unsigned long :1; - unsigned long vert_bias :4; - unsigned long horiz_bias :4; - unsigned long dither_disable :1; - unsigned long gamma_blend_enable :1; - unsigned long dither_patten :2; - unsigned long :4; - }; - unsigned long dw1; - }; - unsigned long mod; -} state3d_dest_buffer_vars_plb_t; - -typedef struct _state3d_vertex_buffer { - unsigned long addr; - unsigned long width; - unsigned long pitch; - unsigned long enable; - unsigned long mod; -} state3d_vertex_buffer_t; - -#define VERTEX_BUFFER_ADDR_MODIFIED 0x1 -#define VERTEX_BUFFER_WIDTH_MODIFIED 0x2 -#define VERTEX_BUFFER_PITCH_MODIFIED 0x4 -#define VERTEX_BUFFER_ENABLE_MODIFIED 0x8 - -typedef struct _state3d_texture_coord_set { - unsigned long format; - unsigned long enable; - unsigned long mod; -} state3d_texture_coord_set_t; - -typedef struct _state3d_coord_set { - unsigned long transform_enable; - unsigned long normalized_coords; - unsigned long source; - unsigned long type; - unsigned long addr_v_control_mode; - unsigned long addr_u_control_mode; - unsigned long mod; -} state3d_coord_set_t; - -typedef struct _state3d_texel_stream { - unsigned long modification_enable; - unsigned long modifier_unit_index; - unsigned long coord_select; - unsigned long map_select; - unsigned long mod; -} state3d_texel_stream_t; - -#define MODIFICATION_ENABLE_MODIFIED 0x1 -#define MODIFIER_UNIT_INDEX_MODIFIED 0x2 -#define COORD_SELECT_MODIFIED 0x4 -#define MAP_SELECT_MODIFIED 0x8 - -typedef struct _state3d_texel_modifier { - unsigned long texel_stream_index; - unsigned long bump_param_table_index; - unsigned long enable; - unsigned long mod; -} state3d_texel_modifier_t; - -#define TEXEL_STREAM_INDEX_MODIFIED 0x1 -#define BUMP_PARAM_TABLE_INDEX_MODIFIED 0x2 -#define ENABLE_MODIFIED 0x4 - -/* - * These can be changed with the LOAD_STATE_IMMEDIATE_1 S3 Instruction. - */ -typedef struct _state3d_imm1_state3 { - unsigned long point_width; - unsigned long line_width; - unsigned long alpha_shade_mode; - unsigned long fog_shade_mode; - unsigned long specular_shade_mode; - unsigned long color_shade_mode; - unsigned long cull_mode; - unsigned long point_width_present; - unsigned long specular_color_present; /* And Fog Factor */ - unsigned long diffuse_color_present; - unsigned long depth_offset_present; - unsigned long position_mask; - unsigned long specular_add_enable; - unsigned long fog_enable; - unsigned long local_depth_bias_enable; - unsigned long sprite_point_enable; - unsigned long antialiasing_enable; - unsigned long mod; -} state3d_imm1_state3_t; - -#define POINT_WIDTH_MODIFIED 0x1 -#define LINE_WIDTH_MODIFIED 0x2 -#define ALPHA_SHADE_MODE_MODIFIED 0x4 -#define FOG_SHADE_MODE_MODIFIED 0x8 -#define SPECULAR_SHADE_MODE_MODIFIED 0x10 -#define COLOR_SHADE_MODE_MODIFIED 0x20 -#define CULL_MODE_MODIFIED 0x40 -#define POINT_WIDTH_PRESENT_MODIFIED 0x80 -#define SPECULAR_COLOR_PRESENT_MODIFIED 0x100 -#define DIFFUSE_COLOR_PRESENT_MODIFIED 0x200 -#define DEPTH_OFFSET_PRESENT_MODIFIED 0x400 -#define POSITION_MASK_MODIFIED 0x800 -#define SPECULAR_ADD_ENABLE_MODIFIED 0x1000 -#define FOG_ENABLE_MODIFIED 0x2000 -#define LOCAL_DEPTH_BIAS_ENABLE_MODIFIED 0x4000 -#define SPRITE_POINT_ENABLE_MODIFIED 0x8000 -#define ANTIALAISING_ENABLE_MODIFIED 0x10000 - -/* - * These can be changed with the LOAD_STATE_IMMEDIATE_1 S7 Instruction. - */ -typedef struct _state3d_imm1_state7 { - unsigned long global_depth_bias; - unsigned long stencil_reference_value; - unsigned long stencil_test_function; - unsigned long stencil_fail_op; - unsigned long stencil_pass_depth_fail_op; - unsigned long stencil_pass_depth_pass_op; - unsigned long stencil_buffer_write_enable; - unsigned long stencil_test_enable; - unsigned long color_dither_enable; - unsigned long logic_op_enable; - unsigned long mod; -} state3d_imm1_state7_t; - -#define GLOBAL_DEPTH_BIAS_MODIFIED 0x1 -#define STENCIL_REFERENCE_VALUE_MODIFIED 0x2 -#define STENCIL_TEST_FUNCTION_MODIFIED 0x4 -#define STENCIL_FAIL_OP_MODIFIED 0x8 -#define STENCIL_PASS_DEPTH_FAIL_OP_MODIFIED 0x10 -#define STENCIL_PASS_DEPTH_PASS_OP_MODIFIED 0x20 -#define STENCIL_BUFFER_WRITE_ENABLE_MODIFIED 0x40 -#define STENCIL_TEST_ENABLE_MODIFIED 0x80 -#define COLOR_DITHER_ENABLE_MODIFIED 0x100 -#define LOGIC_OP_ENABLE_MODIFIED 0x200 - -/* - * These can be changed with the LOAD_STATE_IMMEDIATE_1 S8 Instruction. - */ -typedef struct _state3d_imm1_state8 { - unsigned long alpha_test_enable; - unsigned long alpha_test_function; - unsigned long alpha_reference_value; - unsigned long depth_test_enable; - unsigned long depth_test_function; - unsigned long color_buffer_blend_enable; - unsigned long color_blend_function; - unsigned long source_blend_factor; - unsigned long destination_blend_factor; - unsigned long depth_buffer_write_enable; - unsigned long color_buffer_write_enable; - unsigned long triangle_provoking_vertex_select; -} state3d_imm1_state8_t; - -typedef struct _state3d_imm2_tms0 { - unsigned long tm_map_base_addr; - unsigned long tm_utilize_fence_regs; - unsigned long reverse_gamma_enable; -} state3d_imm2_tms0_t; - -typedef struct _state3d_imm2_tms1 { - unsigned long tm_height; - unsigned long tm_width; - unsigned long tm_palette_select; - unsigned long tm_surface_format; - unsigned long tm_texel_format; - unsigned long tm_color_space_conversion_enable; - unsigned long tm_tiled_surface; - unsigned long tm_tile_walk; -} state3d_imm2_tms1_t; - -typedef struct _state3d_imm2_tms2 { - unsigned long tm_dword_pitch; - unsigned long tm_cube_face_enables; - unsigned long tm_map_format; - unsigned long tm_vertical_line_stride; - unsigned long tm_vertical_line_stride_offset; - unsigned long tm_output_channel_selection; - unsigned long tm_base_mip_level; - unsigned long tm_lod_preclamp_enable; -} state3d_imm2_tms2_t; - -typedef struct _state3d_imm2_tms3 { - unsigned long tm_mip_mode_filter; - unsigned long tm_mag_mode_filter; - unsigned long tm_min_mode_filter; - unsigned long tm_texture_lod_bias; - unsigned long tm_colorkey_enable; - unsigned long tm_chromakey_enable; - unsigned long tm_maximum_mip_level; - unsigned long tm_minimum_mip_level; - unsigned long tm_kill_pixel_enable; - unsigned long tm_keyed_texture_filter_mode; -} state3d_imm2_tms3_t; - -typedef struct _state3d_imm2_tms4 { - unsigned long tm_default_color; -} state3d_imm2_tms4_t; - -/* - * All pointers may be NULL. If so defaults should be assumed. - */ -typedef struct _state3d { - igd_surface_t color_buffer; - igd_surface_t depth_buffer; - state3d_vertex_buffer_t vertex_buffer[2]; - state3d_texture_coord_set_t texture_coord_set[8]; - unsigned long texture_coord_count; - state3d_imm1_state3_t imm1_s3; - state3d_coord_set_t coord_set[4]; - state3d_texel_modifier_t texel_modifier[2]; - state3d_texel_stream_t texel_stream[4]; - state3d_imm1_state7_t imm1_s7; - state3d_imm1_state8_t imm1_s8; - state3d_imm2_tms0_t imm2_tms0[4]; - state3d_imm2_tms1_t imm2_tms1[4]; - state3d_imm2_tms2_t imm2_tms2[4]; - state3d_imm2_tms3_t imm2_tms3[4]; - state3d_imm2_tms4_t imm2_tms4[4]; - state3d_buffer_info_plb_t buffer_info[5]; - state3d_dest_buffer_vars_plb_t buffer_vars; - unsigned long mod; - state3d_dispatch_plb_t *dispatch; -} state3d_t, state3d_plb_t; - -#define IMM1_MODIFIED 0x1ff -#define IMM1_S0_MODIFIED 0x1 -#define IMM1_S1_MODIFIED 0x2 -#define IMM1_S2_MODIFIED 0x4 -#define IMM1_S3_MODIFIED 0x8 -#define IMM1_S4_MODIFIED 0x10 -#define IMM1_S5_MODIFIED 0x20 -#define IMM1_S6_MODIFIED 0x40 -#define IMM1_S7_MODIFIED 0x80 -#define IMM1_S8_MODIFIED 0x100 -#define IMM2_MODIFIED 0xf0000 -#define IMM2_TM0_MODIFIED 0x10000 -#define IMM2_TM1_MODIFIED 0x20000 -#define IMM2_TM2_MODIFIED 0x40000 -#define IMM2_TM3_MODIFIED 0x80000 - -#define LOAD_S0 0x1 -#define LOAD_S1 0x2 -#define LOAD_S2 0x4 -#define LOAD_S3 0x8 -#define LOAD_S4 0x10 -#define LOAD_S5 0x20 -#define LOAD_S6 0x40 -#define LOAD_S7 0x80 -#define LOAD_S8 0x100 -#define LOAD_TM 0xf0000 -#define LOAD_TM0 0x10000 -#define LOAD_TM1 0x20000 -#define LOAD_TM2 0x40000 -#define LOAD_TM3 0x80000 - -#define STATE3D_SET_ALPHA_TEST_ENABLE(s, v) \ - s->imm1_s8.alpha_test_enable = (v & 1); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_ALPHA_TEST_FUNCTION(s, v) \ - s->imm1_s8.alpha_test_function = (v & 7); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_ALPHA_REFERENCE_VALUE(s, v) \ - s->imm1_s8.alpha_reference_value = (v & 0xf); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_DEPTH_TEST_ENABLE(s, v) \ - s->imm1_s8.depth_test_enable = (v & 1); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_DEPTH_TEST_FUNCTION(s, v) \ - s->imm1_s8.depth_test_function = (v & 7); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_COLOR_BUFFER_BLEND_ENABLE(s, v) \ - s->imm1_s8.color_buffer_blend_enable = (v & 1); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_COLOR_BLEND_FUNCTION(s, v) \ - s->imm1_s8.color_blend_function = (v & 7); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_SOURCE_BLEND_FACTOR(s, v) \ - s->imm1_s8.source_blend_factor = (v & 0xf); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_DESTINATION_BLEND_FACTOR(s, v) \ - s->imm1_s8.destination_blend_factor = (v & 0xf); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_DEPTH_BUFFER_WRITE_ENABLE(s, v) \ - s->imm1_s8.depth_buffer_write_enable = (v & 1); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_COLOR_BUFFER_WRITE_ENABLE(s, v) \ - s->imm1_s8.color_buffer_write_enable = (v & 1); \ - s->mod |= IMM1_S8_MODIFIED; - -#define STATE3D_SET_TRIANGLE_PROVOKING_VERTEX_SELECT(s, v) \ - s->imm1_s8.triangle_provoking_vertex_select = (v & 3); \ - s->mod |= IMM1_S8_MODIFIED; - - -#define STATE3D(ac) ((state3d_t *)((appcontext_plb_t *)ac)->state3d) - -int state3d_update_plb(igd_command_t **in, appcontext_t *appcontext); -int state3d_update_size(appcontext_t *appcontext); - -#endif - |