Mesa (master): Revert "intel: Simplify the half-float packing in image load/store lowering."

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Dec 13 20:27:12 UTC 2018


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

Author: Eric Anholt <eric at anholt.net>
Date:   Thu Dec 13 11:25:08 2018 -0800

Revert "intel: Simplify the half-float packing in image load/store lowering."

This reverts commit 06fbcd2cd5cc5702c9039c26d20082a99bc157bf.
nir_pack_half_2x16_split *isn't* vectorizable, it's 1-component only, thus
why we had this split-scalar code in the first place.

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

---

 src/intel/compiler/brw_nir_lower_image_load_store.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/intel/compiler/brw_nir_lower_image_load_store.c b/src/intel/compiler/brw_nir_lower_image_load_store.c
index d1547c98c5..269dbf8e28 100644
--- a/src/intel/compiler/brw_nir_lower_image_load_store.c
+++ b/src/intel/compiler/brw_nir_lower_image_load_store.c
@@ -544,8 +544,14 @@ convert_color_for_store(nir_builder *b, const struct gen_device_info *devinfo,
       break;
 
    case ISL_SFLOAT:
-      if (image.bits[0] == 16)
-         color = nir_pack_half_2x16_split(b, color, nir_imm_float(b, 0));
+      if (image.bits[0] == 16) {
+         nir_ssa_def *f16comps[4];
+         for (unsigned i = 0; i < image.chans; i++) {
+            f16comps[i] = nir_pack_half_2x16_split(b, nir_channel(b, color, i),
+                                                      nir_imm_float(b, 0));
+         }
+         color = nir_vec(b, f16comps, image.chans);
+      }
       break;
 
    case ISL_UINT:




More information about the mesa-commit mailing list