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);
+
+void st_nir_opts(struct nir_shader *nir, bool is_scalar);
+
+bool
+st_link_nir(struct gl_context *ctx,
+ struct gl_shader_program *shader_program);
+
+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);
+
+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
}