Module: Mesa Branch: master Commit: 3a417a044e9ce3ab2ee6f1647e9be24cf9d310f5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3a417a044e9ce3ab2ee6f1647e9be24cf9d310f5
Author: Eric Anholt <e...@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 <ja...@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: _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit