Mesa (master): nir: Don't try to scalarize unpack ops.

Eric Anholt anholt at kemper.freedesktop.org
Fri Aug 14 18:41:52 UTC 2015


Module: Mesa
Branch: master
Commit: d50c182671a6aa315c83b5e203655e902996c0e7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d50c182671a6aa315c83b5e203655e902996c0e7

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jul 31 15:35:22 2015 -0700

nir: Don't try to scalarize unpack ops.

Avoids regressions in vc4 when trying to do our blending in NIR.

v2: Add the other unpack ops I meant to when writing the original commit
    message.

Reviewed-by: Matt Turner <mattst88 at gmail.com>

---

 src/glsl/nir/nir_lower_alu_to_scalar.c |   15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/glsl/nir/nir_lower_alu_to_scalar.c b/src/glsl/nir/nir_lower_alu_to_scalar.c
index 5d15fb2..efbe9e7 100644
--- a/src/glsl/nir/nir_lower_alu_to_scalar.c
+++ b/src/glsl/nir/nir_lower_alu_to_scalar.c
@@ -100,6 +100,21 @@ lower_alu_instr_scalar(nir_alu_instr *instr, void *mem_ctx)
        */
       return;
 
+   case nir_op_unpack_unorm_4x8:
+   case nir_op_unpack_snorm_4x8:
+   case nir_op_unpack_unorm_2x16:
+   case nir_op_unpack_snorm_2x16:
+      /* There is no scalar version of these ops, unless we were to break it
+       * down to bitshifts and math (which is definitely not intended).
+       */
+      return;
+
+   case nir_op_unpack_half_2x16:
+      /* We could split this into unpack_half_2x16_split_[xy], but should
+       * we?
+       */
+      return;
+
       LOWER_REDUCTION(nir_op_fdot, nir_op_fmul, nir_op_fadd);
       LOWER_REDUCTION(nir_op_ball_fequal, nir_op_feq, nir_op_iand);
       LOWER_REDUCTION(nir_op_ball_iequal, nir_op_ieq, nir_op_iand);




More information about the mesa-commit mailing list