mesa: fix fallthrough in glformats
[mesa.git] / src / mesa / state_tracker / st_nir.h
index 523a274bb130a9685dd80f94041b24d6dcbaedb6..43f2a91702290c58a33e2ed72fb29d0e64330414 100644 (file)
@@ -34,16 +34,46 @@ extern "C" {
 struct nir_shader;
 
 void st_nir_lower_builtin(struct nir_shader *shader);
-struct nir_shader * st_glsl_to_nir(struct st_context *st, struct gl_program *prog,
-                                   struct gl_shader_program *shader_program,
-                                   gl_shader_stage stage);
+void st_nir_lower_tex_src_plane(struct nir_shader *shader, unsigned free_slots,
+                                unsigned lower_2plane, unsigned lower_3plane);
 
-void st_finalize_nir(struct st_context *st, struct gl_program *prog, struct nir_shader *nir);
+void st_nir_lower_wpos_ytransform(struct nir_shader *nir,
+                                  struct gl_program *prog,
+                                  struct pipe_screen *pscreen);
 
-struct gl_program *
-st_nir_get_mesa_program(struct gl_context *ctx,
-                        struct gl_shader_program *shader_program,
-                        struct gl_linked_shader *shader);
+void st_finalize_nir(struct st_context *st, struct gl_program *prog,
+                     struct gl_shader_program *shader_program,
+                     struct nir_shader *nir, bool finalize_by_driver);
+
+void st_nir_opts(struct nir_shader *nir);
+
+bool
+st_link_nir(struct gl_context *ctx,
+            struct gl_shader_program *shader_program);
+
+void st_nir_assign_vs_in_locations(struct nir_shader *nir);
+void st_nir_assign_varying_locations(struct st_context *st,
+                                     struct nir_shader *nir);
+
+void st_nir_lower_samplers(struct pipe_screen *screen, struct nir_shader *nir,
+                           struct gl_shader_program *shader_program,
+                           struct gl_program *prog);
+void st_nir_lower_uniforms(struct st_context *st, struct nir_shader *nir);
+
+struct pipe_shader_state *
+st_nir_finish_builtin_shader(struct st_context *st,
+                             struct nir_shader *nir,
+                             const char *name);
+
+struct pipe_shader_state *
+st_nir_make_passthrough_shader(struct st_context *st,
+                               const char *shader_name,
+                               gl_shader_stage stage,
+                               unsigned num_vars,
+                               unsigned *input_locations,
+                               unsigned *output_locations,
+                               unsigned *interpolation_modes,
+                               unsigned sysval_mask);
 
 #ifdef __cplusplus
 }