nir: remove bool lowering from lower_int_to_float
Removes the bool_to_float logic from the int_to_float pass, so that both can be used separately. By having separate passes we have better validation and it makes it possible to use with the lower_ftrunc option (int lowering generates ftrunc, but lower_ftrunc generates bools, ftrunc lowering should probably be reworked). For now we always expect lower_bool to come after lower_int. Also fixes f2i32 to become ftrunc and adds u2f/f2u cases. Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -117,6 +117,7 @@ lima_program_optimize_vs_nir(struct nir_shader *s)
|
||||
} while (progress);
|
||||
|
||||
NIR_PASS_V(s, nir_lower_int_to_float);
|
||||
NIR_PASS_V(s, nir_lower_bool_to_float);
|
||||
NIR_PASS_V(s, nir_copy_prop);
|
||||
NIR_PASS_V(s, nir_lower_locals_to_regs);
|
||||
NIR_PASS_V(s, nir_convert_from_ssa, true);
|
||||
@@ -155,6 +156,7 @@ lima_program_optimize_fs_nir(struct nir_shader *s)
|
||||
} while (progress);
|
||||
|
||||
NIR_PASS_V(s, nir_lower_int_to_float);
|
||||
NIR_PASS_V(s, nir_lower_bool_to_float);
|
||||
|
||||
/* Lower modifiers */
|
||||
NIR_PASS_V(s, nir_lower_to_source_mods, nir_lower_all_source_mods);
|
||||
|
Reference in New Issue
Block a user