summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/lima/lima_program.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/drivers/lima/lima_program.c b/src/gallium/drivers/lima/lima_program.c
index 845d9535aac..cb05c6f379f 100644
--- a/src/gallium/drivers/lima/lima_program.c
+++ b/src/gallium/drivers/lima/lima_program.c
@@ -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);