gallium: add st_context_iface::flush_resource to call FLUSH_VERTICES
[mesa.git] / src / gallium / include / state_tracker / st_api.h
index 297954d70bffae39e067a16b655cb2824704e384..955d84b5b4442d6be4aa6b0beb4344a6b917f9f9 100644 (file)
@@ -182,6 +182,8 @@ struct st_egl_image
 
    unsigned level;
    unsigned layer;
+   /* GL internal format. */
+   unsigned internalformat;
 };
 
 /**
@@ -228,6 +230,7 @@ struct st_config_options
    bool allow_glsl_builtin_variable_redeclaration;
    bool allow_higher_compat_version;
    bool glsl_zero_init;
+   bool vs_position_always_invariant;
    bool force_glsl_abs_sqrt;
    bool allow_glsl_cross_stage_interpolation_mismatch;
    bool allow_glsl_layout_qualifier_on_function_parameters;
@@ -388,7 +391,16 @@ struct st_context_iface
     * Flush all drawing from context to the pipe also flushes the pipe.
     */
    void (*flush)(struct st_context_iface *stctxi, unsigned flags,
-                 struct pipe_fence_handle **fence);
+                 struct pipe_fence_handle **fence,
+                 void (*notify_before_flush_cb) (void*),
+                 void* notify_before_flush_cb_args);
+
+   /**
+    * Flush all enqueued vertices (e.g. vbo module) and call
+    * pipe_context::flush_resource.
+    */
+   void (*flush_resource)(struct st_context_iface *stctxi,
+                          struct pipe_resource *resource);
 
    /**
     * Replace the texture image of a texture object at the specified level.