u_vbuf: override create/bind/destroy_vertex_elements_state
[profile/ivi/mesa.git] / src / gallium / drivers / r600 / r600_pipe.h
index a84f9cc..c3f603c 100644 (file)
@@ -124,6 +124,7 @@ struct r600_screen {
 
        unsigned                        num_contexts;
        bool                            use_surface_alloc;
+       int                             glsl_feature_level;
 
        /* for thread-safe write accessing to num_contexts */
        pipe_mutex                      mutex_num_contexts;
@@ -151,6 +152,7 @@ struct r600_pipe_blend {
        struct r600_pipe_state          rstate;
        unsigned                        cb_target_mask;
        unsigned                        cb_color_control;
+       bool                            dual_src_blend;
 };
 
 struct r600_pipe_dsa {
@@ -165,7 +167,6 @@ struct r600_vertex_element
 {
        unsigned                        count;
        struct pipe_vertex_element      elements[PIPE_MAX_ATTRIBS];
-       struct u_vbuf_elements          *vmgr_elements;
        struct r600_resource            *fetch_shader;
        unsigned                        fs_size;
        struct r600_pipe_state          rstate;
@@ -181,6 +182,7 @@ struct r600_pipe_shader {
        unsigned        sprite_coord_enable;
        unsigned        flatshade;
        unsigned        pa_cl_vs_out_cntl;
+       unsigned        ps_cb_shader_mask;
        struct pipe_stream_output_info  so;
 };
 
@@ -254,6 +256,8 @@ struct r600_context {
        struct r600_vertex_element      *vertex_elements;
        struct pipe_framebuffer_state   framebuffer;
        unsigned                        cb_target_mask;
+       unsigned                        fb_cb_shader_mask;
+       unsigned                        cb_shader_mask;
        unsigned                        cb_color_control;
        unsigned                        pa_sc_line_stipple;
        unsigned                        pa_cl_clip_cntl;
@@ -346,6 +350,12 @@ struct r600_context {
        void                    *dummy_pixel_shader;
 
        bool                    vertex_buffers_dirty;
+       boolean                 dual_src_blend;
+       unsigned color0_format;
+
+       struct pipe_index_buffer index_buffer;
+       struct pipe_vertex_buffer vertex_buffer[PIPE_MAX_ATTRIBS];
+       unsigned                nr_vertex_buffers;
 };
 
 static INLINE void r600_emit_atom(struct r600_context *rctx, struct r600_atom *atom)