summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2015-08-03 16:25:18 -0700
committerJason Ekstrand <[email protected]>2015-08-10 11:45:43 -0700
commit1d4e698466bdea735c5f06c2658322bdc527efce (patch)
treef80fa119cf8bf12881c46ee55a5971bcc0b03757
parent17c978166185a7d3a9759f828a4370c1f2169776 (diff)
i965/nir: Don't mark bany or ball instructions for resolve
Reviewed-by: Matt Turner <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_nir_analyze_boolean_resolves.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_nir_analyze_boolean_resolves.c b/src/mesa/drivers/dri/i965/brw_nir_analyze_boolean_resolves.c
index d1fc06dd526..c995d2b7e2d 100644
--- a/src/mesa/drivers/dri/i965/brw_nir_analyze_boolean_resolves.c
+++ b/src/mesa/drivers/dri/i965/brw_nir_analyze_boolean_resolves.c
@@ -109,6 +109,29 @@ analyze_boolean_resolves_block(nir_block *block, void *void_state)
uint8_t resolve_status;
nir_alu_instr *alu = nir_instr_as_alu(instr);
switch (alu->op) {
+ case nir_op_bany2:
+ case nir_op_bany3:
+ case nir_op_bany4:
+ case nir_op_ball_fequal2:
+ case nir_op_ball_iequal2:
+ case nir_op_ball_fequal3:
+ case nir_op_ball_iequal3:
+ case nir_op_ball_fequal4:
+ case nir_op_ball_iequal4:
+ case nir_op_bany_fnequal2:
+ case nir_op_bany_inequal2:
+ case nir_op_bany_fnequal3:
+ case nir_op_bany_inequal3:
+ case nir_op_bany_fnequal4:
+ case nir_op_bany_inequal4:
+ /* These are only implemented by the vec4 backend and its
+ * implementation emits resolved booleans. At some point in the
+ * future, this may change and we'll have to remove some of the
+ * above cases.
+ */
+ resolve_status = BRW_NIR_BOOLEAN_NO_RESOLVE;
+ break;
+
case nir_op_imov:
case nir_op_inot:
/* This is a single-source instruction. Just copy the resolve