[Mesa-dev] [PATCH v2 10/20] i965/fs: lower all non-force_writemask_all DF instructions to SIMD4 on IVB/BYT

Francisco Jerez currojerez at riseup.net
Tue Jan 17 23:38:38 UTC 2017


Samuel Iglesias Gonsálvez <siglesias at igalia.com> writes:

> The hardware applies the same channel enable signals to both halves of
> the compressed instruction which will be just wrong under non-uniform
> control flow. Fix this by splitting those instructions to SIMD4.
>
> Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
> ---
>  src/mesa/drivers/dri/i965/brw_fs.cpp | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index c9b6c995dc9..a622b7a640b 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -4577,6 +4577,15 @@ get_fpu_lowered_simd_width(const struct gen_device_info *devinfo,
>         */
>        if (channels_per_grf != (exec_type_size == 8 ? 4 : 8))
>           max_width = MIN2(max_width, channels_per_grf);
> +
> +      /* Lower all non-force_writemask_all DF instructions to SIMD4 on IVB/BYT
> +       * because HW applies the same channel enable signals to both halves of
> +       * the compressed instruction which will be just wrong under
> +       * non-uniform control flow.

It would be nice to add a hardware spec quotation here...  Unfortunately
there isn't, though I verified at some point that this was the
simulator's behavior.  Patch is:

Reviewed-by: Francisco Jerez <currojerez at riseup.net>

> +       */
> +      if (devinfo->gen == 7 && !devinfo->is_haswell &&
> +          (exec_type_size == 8 || type_sz(inst->dst.type) == 8))
> +         max_width = MIN2(max_width, 4);
>     }
>  
>     /* Only power-of-two execution sizes are representable in the instruction
> -- 
> 2.11.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170117/44153b1c/attachment.sig>


More information about the mesa-dev mailing list