i965/nir: Lower to registers a bit later.

We can't safely call nir_optimize() with register present, since several
passes called in the loop can't handle registers, and will fail asserts.

Notably, nir_lower_vec_alus() and nir_opt_algebraic() really don't want
registers.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
This commit is contained in:
Kenneth Graunke 2015-03-09 01:58:53 -07:00
parent 1f0067811c
commit b9dea9bc45
1 changed files with 3 additions and 3 deletions

View File

@ -108,9 +108,6 @@ fs_visitor::emit_nir_code()
nir_lower_io(nir);
nir_validate_shader(nir);
nir_lower_locals_to_regs(nir);
nir_validate_shader(nir);
nir_remove_dead_variables(nir);
nir_validate_shader(nir);
@ -125,6 +122,9 @@ fs_visitor::emit_nir_code()
nir_optimize(nir);
nir_lower_locals_to_regs(nir);
nir_validate_shader(nir);
nir_lower_to_source_mods(nir);
nir_validate_shader(nir);
nir_copy_prop(nir);