[Mesa-dev] [PATCH 11/14] intel/compiler: use shuffle_from_32bit_read for 64-bit FS load_input

Jason Ekstrand jason at jlekstrand.net
Thu Jun 14 01:41:01 UTC 2018


On Sat, Jun 9, 2018 at 4:13 AM, Jose Maria Casanova Crespo <
jmcasanova at igalia.com> wrote:

> As the previous use of shuffle_32bit_load_result_to_64bit_data
> had a source/destination overlap for 64-bit. Now a temporal destination
>

s/temporal/temporary/

With that, patches 10 and 11 are

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


> is used for 64-bit cases to use shuffle_from_32bit_read that doesn't
> handle src/dst overlaps.
> ---
>  src/intel/compiler/brw_fs_nir.cpp | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/src/intel/compiler/brw_fs_nir.cpp
> b/src/intel/compiler/brw_fs_nir.cpp
> index 11b707e57a8..7e0ef2f34a9 100644
> --- a/src/intel/compiler/brw_fs_nir.cpp
> +++ b/src/intel/compiler/brw_fs_nir.cpp
> @@ -3350,6 +3350,7 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder
> &bld,
>        unsigned base = nir_intrinsic_base(instr);
>        unsigned comp = nir_intrinsic_component(instr);
>        unsigned num_components = instr->num_components;
> +      fs_reg orig_dest = dest;
>        enum brw_reg_type type = dest.type;
>
>        /* Special case fields in the VUE header */
> @@ -3365,6 +3366,7 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder
> &bld,
>            */
>           type = BRW_REGISTER_TYPE_F;
>           num_components *= 2;
> +         dest = bld.vgrf(type, num_components);
>        }
>
>        for (unsigned int i = 0; i < num_components; i++) {
> @@ -3373,10 +3375,8 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder
> &bld,
>        }
>
>        if (nir_dest_bit_size(instr->dest) == 64) {
> -         shuffle_32bit_load_result_to_64bit_data(bld,
> -                                                 dest,
> -                                                 retype(dest, type),
> -                                                 instr->num_components);
> +         shuffle_from_32bit_read(bld, orig_dest, dest, 0,
> +                                 instr->num_components);
>        }
>        break;
>     }
> --
> 2.17.1
>
> _______________________________________________
> 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/20180613/270bd967/attachment.html>


More information about the mesa-dev mailing list