1 #ifndef __NV20_STATE_H__
2 #define __NV20_STATE_H__
4 #include "pipe/p_state.h"
5 #include "tgsi/tgsi_scan.h"
7 struct nv20_blend_state
{
17 struct nv20_sampler_state
{
24 struct nv20_rasterizer_state
{
28 uint32_t line_smooth_en
;
32 uint32_t poly_smooth_en
;
34 uint32_t poly_mode_front
;
35 uint32_t poly_mode_back
;
39 uint32_t cull_face_en
;
41 uint32_t point_sprite
;
43 const struct pipe_rasterizer_state
*templ
;
46 struct nv20_vertex_program_exec
{
48 boolean has_branch_offset
;
52 struct nv20_vertex_program_data
{
53 int index
; /* immediates == -1 */
57 struct nv20_vertex_program
{
58 const struct pipe_shader_state
*pipe
;
61 struct nv20_vertex_program_exec
*insns
;
63 struct nv20_vertex_program_data
*consts
;
66 struct nouveau_resource
*exec
;
68 struct nouveau_resource
*data
;
70 unsigned data_start_min
;
76 struct nv20_fragment_program_data
{
81 struct nv20_fragment_program
{
82 struct pipe_shader_state pipe
;
83 struct tgsi_shader_info info
;
92 struct nv20_fragment_program_data
*consts
;
95 struct pipe_buffer
*buffer
;
98 uint32_t fp_reg_control
;
102 struct nv20_depth_stencil_alpha_state
{
105 uint32_t write_enable
;
106 uint32_t test_enable
;
127 struct nv20_miptree
{
128 struct pipe_texture base
;
130 struct pipe_buffer
*buffer
;
136 } level
[PIPE_MAX_TEXTURE_LEVELS
];