lima/ppir: lower selects to scalars

nir vec4 fcsel assumes that each component of the condition will be used
to select the same component from the options, but pp can't implement
that since it only has 1 component for the condition.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
This commit is contained in:
Erico Nunes
2019-08-10 22:44:22 +02:00
parent 27e7603c34
commit 2a8a81d109

View File

@@ -158,6 +158,11 @@ lima_program_optimize_fs_nir(struct nir_shader *s)
BITSET_SET(alu_lower, nir_op_fsqrt);
BITSET_SET(alu_lower, nir_op_fsin);
BITSET_SET(alu_lower, nir_op_fcos);
/* nir vec4 fcsel assumes that each component of the condition will be
* used to select the same component from the two options, but lima
* can't implement that since we only have 1 component condition */
BITSET_SET(alu_lower, nir_op_fcsel);
BITSET_SET(alu_lower, nir_op_bcsel);
NIR_PASS_V(s, nir_lower_fragcoord_wtrans);
NIR_PASS_V(s, nir_lower_io, nir_var_all, type_size, 0);