[Mesa-dev] [PATCH 13/14] intel/compiler: use new shuffle_32bit_write for all 64-bit storage writes

Jason Ekstrand jason at jlekstrand.net
Thu Jun 14 23:57:35 UTC 2018


On Thu, Jun 14, 2018 at 3:47 PM, Chema Casanova <jmcasanova at igalia.com>
wrote:

> On 14/06/18 03:44, Jason Ekstrand wrote:
> > On Sat, Jun 9, 2018 at 4:13 AM, Jose Maria Casanova Crespo
> > <jmcasanova at igalia.com <mailto:jmcasanova at igalia.com>> wrote:
> >
> >     ---
> >      src/intel/compiler/brw_fs_nir.cpp | 13 ++++++-------
> >      1 file changed, 6 insertions(+), 7 deletions(-)
> >
> >     diff --git a/src/intel/compiler/brw_fs_nir.cpp
> >     b/src/intel/compiler/brw_fs_nir.cpp
> >     index 2521f3c001b..833fad4247a 100644
> >     --- a/src/intel/compiler/brw_fs_nir.cpp
> >     +++ b/src/intel/compiler/brw_fs_nir.cpp
> >     @@ -2839,8 +2839,7 @@ fs_visitor::nir_emit_tcs_intrinsic(const
> >     fs_builder &bld,
> >                      * for that.
> >                      */
> >                     unsigned channel = iter * 2 + i;
> >     -               fs_reg dest = shuffle_64bit_data_for_32bit_
> write(bld,
> >     -                  offset(value, bld, channel), 1);
> >     +               fs_reg dest = shuffle_for_32bit_write(bld, value,
> >     channel, 1);
> >
> >
> > What happened to offsetting "value"?
>
> Using channel as first_component in shuffle_for_32bit_write is
> equivalent to offsetting value, and we save one line. :)
>

Ah, makes sense.  R-B.


> >
> >
> >
> >                     srcs[header_regs + (i + first_component) * 2] = dest;
> >                     srcs[header_regs + (i + first_component) * 2 + 1] =
> >     @@ -3694,8 +3693,8 @@ fs_visitor::nir_emit_cs_intrinsic(const
> >     fs_builder &bld,
> >            unsigned type_size = 4;
> >            if (nir_src_bit_size(instr->src[0]) == 64) {
> >               type_size = 8;
> >     -         val_reg = shuffle_64bit_data_for_32bit_write(bld,
> >     -            val_reg, instr->num_components);
> >     +         val_reg = shuffle_for_32bit_write(bld, val_reg, 0,
> >     +                                           instr->num_components);
> >            }
> >
> >            unsigned type_slots = type_size / 4;
> >     @@ -4236,8 +4235,8 @@ fs_visitor::nir_emit_intrinsic(const
> >     fs_builder &bld, nir_intrinsic_instr *instr
> >                   * iteration handle the rest.
> >                   */
> >                  num_components = MIN2(2, num_components);
> >     -            write_src = shuffle_64bit_data_for_32bit_write(bld,
> >     write_src,
> >     -
> >      num_components);
> >     +            write_src = shuffle_for_32bit_write(bld, write_src, 0,
> >     +                                                num_components);
> >               } else if (type_size < 4) {
> >                  assert(type_size == 2);
> >                  /* For 16-bit types we pack two consecutive values into
> >     a 32-bit
> >     @@ -4333,7 +4332,7 @@ fs_visitor::nir_emit_intrinsic(const
> >     fs_builder &bld, nir_intrinsic_instr *instr
> >            unsigned num_components = instr->num_components;
> >            unsigned first_component = nir_intrinsic_component(instr);
> >            if (nir_src_bit_size(instr->src[0]) == 64) {
> >     -         src = shuffle_64bit_data_for_32bit_write(bld, src,
> >     num_components);
> >     +         src = shuffle_for_32bit_write(bld, src, 0, num_components);
> >               num_components *= 2;
> >            }
> >
> >     --
> >     2.17.1
> >
> >     _______________________________________________
> >     mesa-dev mailing list
> >     mesa-dev at lists.freedesktop.org <mailto:mesa-dev at lists.
> freedesktop.org>
> >     https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >     <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>
> >
> >
> >
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180614/e38a7b2c/attachment.html>


More information about the mesa-dev mailing list