NIR_PASS_V(s, nir_lower_viewport_transform);
NIR_PASS_V(s, nir_lower_point_size, 1.0f, 100.0f);
- NIR_PASS_V(s, nir_lower_io, nir_var_all, type_size, 0);
+ NIR_PASS_V(s, nir_lower_io,
+ nir_var_shader_in | nir_var_shader_out, type_size, 0);
NIR_PASS_V(s, nir_lower_load_const_to_scalar);
NIR_PASS_V(s, lima_nir_lower_uniform_to_scalar);
NIR_PASS_V(s, nir_lower_io_to_scalar,
NIR_PASS_V(s, nir_opt_dce);
NIR_PASS_V(s, nir_lower_locals_to_regs);
NIR_PASS_V(s, nir_convert_from_ssa, true);
- NIR_PASS_V(s, nir_remove_dead_variables, nir_var_function_temp);
+ NIR_PASS_V(s, nir_remove_dead_variables, nir_var_function_temp, NULL);
nir_sweep(s);
}
bool progress;
NIR_PASS_V(s, nir_lower_fragcoord_wtrans);
- NIR_PASS_V(s, nir_lower_io, nir_var_all, type_size, 0);
+ NIR_PASS_V(s, nir_lower_io,
+ nir_var_shader_in | nir_var_shader_out, type_size, 0);
NIR_PASS_V(s, nir_lower_regs_to_ssa);
NIR_PASS_V(s, nir_lower_tex, tex_options);
do {
progress = false;
- NIR_PASS(progress, s, nir_opt_vectorize);
+ NIR_PASS(progress, s, nir_opt_vectorize, NULL, NULL);
} while (progress);
do {
NIR_PASS_V(s, nir_lower_locals_to_regs);
NIR_PASS_V(s, nir_convert_from_ssa, true);
- NIR_PASS_V(s, nir_remove_dead_variables, nir_var_function_temp);
+ NIR_PASS_V(s, nir_remove_dead_variables, nir_var_function_temp, NULL);
NIR_PASS_V(s, nir_move_vec_src_uses_to_dest);
NIR_PASS_V(s, nir_lower_vec_to_movs);
+ NIR_PASS_V(s, lima_nir_duplicate_load_uniforms);
+ NIR_PASS_V(s, lima_nir_duplicate_load_inputs);
+ NIR_PASS_V(s, lima_nir_duplicate_load_consts);
+
nir_sweep(s);
}
else {
assert(cso->type == PIPE_SHADER_IR_TGSI);
- nir = tgsi_to_nir(cso->tokens, pctx->screen);
+ nir = tgsi_to_nir(cso->tokens, pctx->screen, false);
}
so->base.type = PIPE_SHADER_IR_NIR;
else {
assert(cso->type == PIPE_SHADER_IR_TGSI);
- nir = tgsi_to_nir(cso->tokens, pctx->screen);
+ nir = tgsi_to_nir(cso->tokens, pctx->screen, false);
}
lima_program_optimize_vs_nir(nir);