intel/perf: create a vtable entry for emit_report_count
[mesa.git] / src / mesa / state_tracker / st_atom.h
index f9711d53938e505848c08ba08438b550f6728325..ccf58b10e9e954b7501fdb41c6ef5828dcac6005 100644 (file)
 #include "main/glheader.h"
 
 struct st_context;
+struct st_vertex_program;
+struct st_vp_variant;
+struct pipe_vertex_buffer;
+struct pipe_vertex_element;
 
 /**
  * Enumeration of state tracker pipelines.
@@ -44,6 +48,7 @@ struct st_context;
 enum st_pipeline {
    ST_PIPELINE_RENDER,
    ST_PIPELINE_CLEAR,
+   ST_PIPELINE_META,
    ST_PIPELINE_UPDATE_FRAMEBUFFER,
    ST_PIPELINE_COMPUTE,
 };
@@ -53,10 +58,26 @@ void st_destroy_atoms( struct st_context *st );
 void st_validate_state( struct st_context *st, enum st_pipeline pipeline );
 GLuint st_compare_func_to_pipe(GLenum func);
 
-enum pipe_format
-st_pipe_vertex_format(GLenum type, GLuint size, GLenum format,
-                      GLboolean normalized, GLboolean integer);
-
+void
+st_setup_arrays(struct st_context *st,
+                const struct st_vertex_program *vp,
+                const struct st_vp_variant *vp_variant,
+                struct pipe_vertex_element *velements,
+                struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers);
+
+void
+st_setup_current(struct st_context *st,
+                 const struct st_vertex_program *vp,
+                 const struct st_vp_variant *vp_variant,
+                 struct pipe_vertex_element *velements,
+                 struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers);
+
+void
+st_setup_current_user(struct st_context *st,
+                      const struct st_vertex_program *vp,
+                      const struct st_vp_variant *vp_variant,
+                      struct pipe_vertex_element *velements,
+                      struct pipe_vertex_buffer *vbuffer, unsigned *num_vbuffers);
 
 /* Define ST_NEW_xxx_INDEX */
 enum {
@@ -86,7 +107,7 @@ enum {
                                  ST_NEW_CS_SAMPLERS)
 
 #define ST_NEW_FRAMEBUFFER      (ST_NEW_FB_STATE | \
-                                 ST_NEW_SAMPLE_MASK | \
+                                 ST_NEW_SAMPLE_STATE | \
                                  ST_NEW_SAMPLE_SHADING)
 
 #define ST_NEW_VERTEX_PROGRAM(st, p) (p->affected_states | \
@@ -149,6 +170,8 @@ enum {
 #define ST_PIPELINE_CLEAR_STATE_MASK (ST_NEW_FB_STATE | \
                                       ST_NEW_SCISSOR | \
                                       ST_NEW_WINDOW_RECTANGLES)
+#define ST_PIPELINE_META_STATE_MASK (ST_PIPELINE_RENDER_STATE_MASK & \
+                                     ~ST_NEW_VERTEX_ARRAYS)
 /* For ReadPixels, ReadBuffer, GetSamplePosition: */
 #define ST_PIPELINE_UPDATE_FB_STATE_MASK (ST_NEW_FB_STATE)