[Mesa-dev] [PATCH] gallium: Disable Altivec on PPC SPE variants

Michel Dänzer michel at daenzer.net
Mon Jul 2 09:35:10 UTC 2018


On 2018-07-01 08:36 AM, Stuart Young wrote:
> PowerPC variants with the Signal Processing Engine do not support
> Altivec instructions, as the SPE instruction set uses the same
> instruction codes as the Altivec set available in most PowerPC
> cores. Note that this is not related to the "Synergistic Processing
> Element" units on IBM Cell microprocessors.
> 
> This patch prevents any Altivec specialising on these cores by
> looking for __NO_FPRS__ (should only be defined on these variants).
> ---
>  src/gallium/include/pipe/p_config.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/src/gallium/include/pipe/p_config.h b/src/gallium/include/pipe/p_config.h
> index 3fa43ed797..0a6251e060 100644
> --- a/src/gallium/include/pipe/p_config.h
> +++ b/src/gallium/include/pipe/p_config.h
> @@ -103,12 +103,16 @@
>  #endif
>  #endif
>  
> +#if defined (__NO_FPRS__)
> +/* Skip PPC tests as possible PowerPC SPE (Signal Processing Engine) variant */
> +#else
>  #if defined(__ppc__) || defined(__ppc64__) || defined(__PPC__)
>  #define PIPE_ARCH_PPC
>  #if defined(__ppc64__) || defined(__PPC64__)
>  #define PIPE_ARCH_PPC_64
>  #endif
>  #endif
> +#endif
>  
>  #if defined(__s390x__)
>  #define PIPE_ARCH_S390
> 

This is probably too big a hammer — PIPE_ARCH_PPC(_64) are used for
other things than Altivec detection.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the mesa-dev mailing list