gallium/util: make WRITES_ALL_CBUFS optional in the passthrough fragment shader
[mesa.git] / src / gallium / auxiliary / util / u_simple_shaders.h
index ca219a092c70ee613e63ef62d4966696ec3fecdf..06da2490ec7a3f4637626f25ba3aaff95ffbd823 100644 (file)
@@ -34,6 +34,8 @@
 
 
 struct pipe_context;
+struct pipe_shader_state;
+struct pipe_stream_output_info;
 
 
 #ifdef __cplusplus
@@ -47,14 +49,74 @@ util_make_vertex_passthrough_shader(struct pipe_context *pipe,
                                     const uint *semantic_names,
                                     const uint *semantic_indexes);
 
+extern void *
+util_make_vertex_passthrough_shader_with_so(struct pipe_context *pipe,
+                                    uint num_attribs,
+                                    const uint *semantic_names,
+                                    const uint *semantic_indexes,
+                                    const struct pipe_stream_output_info *so);
+
+
+extern void *
+util_make_fragment_tex_shader_writemask(struct pipe_context *pipe, 
+                                        unsigned tex_target,
+                                        unsigned interp_mode,
+                                        unsigned writemask);
+
+extern void *
+util_make_fragment_tex_shader(struct pipe_context *pipe, unsigned tex_target,
+                              unsigned interp_mode);
+
+
+extern void *
+util_make_fragment_tex_shader_writedepth(struct pipe_context *pipe,
+                                         unsigned tex_target,
+                                         unsigned interp_mode);
+
+
+extern void *
+util_make_fragment_tex_shader_writedepthstencil(struct pipe_context *pipe,
+                                                unsigned tex_target,
+                                                unsigned interp_mode);
+
+
+extern void *
+util_make_fragment_tex_shader_writestencil(struct pipe_context *pipe,
+                                           unsigned tex_target,
+                                           unsigned interp_mode);
+
+
+extern void *
+util_make_fragment_passthrough_shader(struct pipe_context *pipe,
+                                      int input_semantic,
+                                      int input_interpolate,
+                                      boolean write_all_cbufs);
+
 
 extern void *
-util_make_fragment_tex_shader(struct pipe_context *pipe);
+util_make_fragment_cloneinput_shader(struct pipe_context *pipe, int num_cbufs,
+                                     int input_semantic,
+                                     int input_interpolate);
 
 
 extern void *
-util_make_fragment_passthrough_shader(struct pipe_context *pipe);
+util_make_fs_blit_msaa_color(struct pipe_context *pipe,
+                             unsigned tgsi_tex);
+
+
+extern void *
+util_make_fs_blit_msaa_depth(struct pipe_context *pipe,
+                             unsigned tgsi_tex);
+
+
+extern void *
+util_make_fs_blit_msaa_depthstencil(struct pipe_context *pipe,
+                                    unsigned tgsi_tex);
+
 
+void *
+util_make_fs_blit_msaa_stencil(struct pipe_context *pipe,
+                               unsigned tgsi_tex);
 
 #ifdef __cplusplus
 }