| #ifndef __NV20_STATE_H__ |
| #define __NV20_STATE_H__ |
| |
| #include "pipe/p_state.h" |
| #include "tgsi/tgsi_scan.h" |
| |
| struct nv20_blend_state { |
| uint32_t b_enable; |
| uint32_t b_srcfunc; |
| uint32_t b_dstfunc; |
| |
| uint32_t c_mask; |
| |
| uint32_t d_enable; |
| }; |
| |
| struct nv20_sampler_state { |
| uint32_t wrap; |
| uint32_t en; |
| uint32_t filt; |
| uint32_t bcol; |
| }; |
| |
| struct nv20_rasterizer_state { |
| uint32_t shade_model; |
| |
| uint32_t line_width; |
| uint32_t line_smooth_en; |
| |
| uint32_t point_size; |
| |
| uint32_t poly_smooth_en; |
| |
| uint32_t poly_mode_front; |
| uint32_t poly_mode_back; |
| |
| uint32_t front_face; |
| uint32_t cull_face; |
| uint32_t cull_face_en; |
| |
| uint32_t point_sprite; |
| |
| const struct pipe_rasterizer_state *templ; |
| }; |
| |
| struct nv20_vertex_program_exec { |
| uint32_t data[4]; |
| boolean has_branch_offset; |
| int const_index; |
| }; |
| |
| struct nv20_vertex_program_data { |
| int index; /* immediates == -1 */ |
| float value[4]; |
| }; |
| |
| struct nv20_vertex_program { |
| const struct pipe_shader_state *pipe; |
| |
| boolean translated; |
| struct nv20_vertex_program_exec *insns; |
| unsigned nr_insns; |
| struct nv20_vertex_program_data *consts; |
| unsigned nr_consts; |
| |
| struct nouveau_resource *exec; |
| unsigned exec_start; |
| struct nouveau_resource *data; |
| unsigned data_start; |
| unsigned data_start_min; |
| |
| uint32_t ir; |
| uint32_t or; |
| }; |
| |
| struct nv20_fragment_program_data { |
| unsigned offset; |
| unsigned index; |
| }; |
| |
| struct nv20_fragment_program { |
| struct pipe_shader_state pipe; |
| struct tgsi_shader_info info; |
| |
| boolean translated; |
| boolean on_hw; |
| unsigned samplers; |
| |
| uint32_t *insn; |
| int insn_len; |
| |
| struct nv20_fragment_program_data *consts; |
| unsigned nr_consts; |
| |
| struct pipe_buffer *buffer; |
| |
| uint32_t fp_control; |
| uint32_t fp_reg_control; |
| }; |
| |
| |
| struct nv20_depth_stencil_alpha_state { |
| struct { |
| uint32_t func; |
| uint32_t write_enable; |
| uint32_t test_enable; |
| } depth; |
| |
| struct { |
| uint32_t enable; |
| uint32_t wmask; |
| uint32_t func; |
| uint32_t ref; |
| uint32_t vmask; |
| uint32_t fail; |
| uint32_t zfail; |
| uint32_t zpass; |
| } stencil; |
| |
| struct { |
| uint32_t enabled; |
| uint32_t func; |
| uint32_t ref; |
| } alpha; |
| }; |
| |
| struct nv20_miptree { |
| struct pipe_texture base; |
| struct nouveau_bo *bo; |
| |
| struct pipe_buffer *buffer; |
| uint total_size; |
| |
| struct { |
| uint pitch; |
| uint *image_offset; |
| } level[PIPE_MAX_TEXTURE_LEVELS]; |
| }; |
| |
| #endif |