void st_nir_lower_tex_src_plane(struct nir_shader *shader, unsigned free_slots,
unsigned lower_2plane, unsigned lower_3plane);
+void st_nir_lower_wpos_ytransform(struct nir_shader *nir,
+ struct gl_program *prog,
+ struct pipe_screen *pscreen);
+
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
}
#endif