Merge remote branch 'upstream/gallium-0.2' into nouveau-gallium-0.2
[mesa.git] / src / gallium / drivers / nv30 / nv30_state.h
index 117520dd13c0ec73c5a1a55373b3a0cc693d4717..e6f23bf166715c2fbcaf4e03d994212d6d74f2b9 100644 (file)
@@ -2,20 +2,7 @@
 #define __NV30_STATE_H__
 
 #include "pipe/p_state.h"
-
-struct nv30_blend_state {
-       uint32_t b_enable;
-       uint32_t b_srcfunc;
-       uint32_t b_dstfunc;
-       uint32_t b_eqn;
-
-       uint32_t l_enable;
-       uint32_t l_op;
-
-       uint32_t c_mask;
-
-       uint32_t d_enable;
-};
+#include "tgsi/tgsi_scan.h"
 
 struct nv30_sampler_state {
        uint32_t fmt;
@@ -25,29 +12,6 @@ struct nv30_sampler_state {
        uint32_t bcol;
 };
 
-struct nv30_rasterizer_state {
-       uint32_t shade_model;
-
-       uint32_t line_width;
-       uint32_t line_smooth_en;
-       uint32_t line_stipple_en;
-       uint32_t line_stipple;
-
-       uint32_t point_size;
-
-       uint32_t poly_smooth_en;
-       uint32_t poly_stipple_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;
-};
-
 struct nv30_vertex_program_exec {
        uint32_t data[4];
        boolean has_branch_offset;
@@ -63,6 +27,7 @@ struct nv30_vertex_program {
        struct pipe_shader_state pipe;
 
        boolean translated;
+
        struct nv30_vertex_program_exec *insns;
        unsigned nr_insns;
        struct nv30_vertex_program_data *consts;
@@ -76,6 +41,7 @@ struct nv30_vertex_program {
 
        uint32_t ir;
        uint32_t or;
+       struct nouveau_stateobj *so;
 };
 
 struct nv30_fragment_program_data {
@@ -85,6 +51,7 @@ struct nv30_fragment_program_data {
 
 struct nv30_fragment_program {
        struct pipe_shader_state pipe;
+       struct tgsi_shader_info info;
 
        boolean translated;
        boolean on_hw;
@@ -100,36 +67,7 @@ struct nv30_fragment_program {
 
        uint32_t fp_control;
        uint32_t fp_reg_control;
-};
-
-struct nv30_stencil_push {
-       uint32_t enable;
-       uint32_t wmask;
-       uint32_t func;
-       uint32_t ref;
-       uint32_t vmask;
-       uint32_t fail;
-       uint32_t zfail;
-       uint32_t zpass;
-};
-
-struct nv30_depth_stencil_alpha_state {
-       struct {
-               uint32_t func;
-               uint32_t write_enable;
-               uint32_t test_enable;
-       } depth;
-
-       struct {
-               struct nv30_stencil_push back;
-               struct nv30_stencil_push front;
-       } stencil;
-
-       struct {
-               uint32_t enabled;
-               uint32_t func;
-               uint32_t ref;
-       } alpha;
+       struct nouveau_stateobj *so;
 };
 
 struct nv30_miptree {