Skip to content

Default enable SSE2 on mesa builds.

Ryan Houdek requested to merge sonicadvance1/mesa:rhoudek/rfc_sse into main

This is to bring up discussion of increasing mesa's default minimum spec requirements.

With the idea of branching classic device support in to its own tree now would be a good time to also raise the minimum requires to something that is more "modern" on x86.

SSE2 was introduced in 2000(!) by default let's make it the minimum spec now

All the old hardware that is moving to the maintenance branch will finally be out of the way.

For the 64-bit side of the discussion there isn't much changed.

  • GCC already enables -msse and -msse2 by default
  • Same with clang
  • fpmath=sse might remove some extraneous x87 usage
    • Clang implies fpmath=sse ALWAYS

For the 32-bit side of things is where the exciting details change

  • GCC by default doesn't enable sse1 or sse2
    • Does all float, double, and long double math with x87
    • -msse2 enables sse2 and sse1, gcc still uses x87 even with those enabled
    • -mfpmath=sse moves away from using x87 and instead uses sse1 and sse2
    • long double still uses x87 as expected
  • Clang already default enables sse1/sse2 which then turns on their implied fpmath=sse

What does this mean for users? On Linux raises the default minimum processor spec to SSE2 supporting CPUs

  • Intel requirements raise from P5 (1993) to Netburst (2000)
  • AMD requirements raise from Athlon(1999/2000) to Athlon 64 (2003)
  • Via requirements raise from C3(2001) to C7 (2005)

What does it mean for package maintainers?

For x86-64 distributions that have i386/i686 multilib, then nothing changes. You're already on a platform guaranteed to support SSE2.

For i386/i686 distributions they will need to weigh their min spec against this. Not sure how many still support classic processors.

Reviewed-by: Erik Faye-Lund erik.faye-lund@collabora.com (Needs commit updated still)

Who is left out in the cold?

  • Intel Quark (2013)
    • Embedded board, doesn't have a GPU, Technically has 1x PCIe 2.0 lane that someone could plug a GPU in to
  • Some older transmeta CPUs, but they had a followup that also had SSE2.
    • Anyone hacking on these with a modern GPU? I'm guessing they know how to turn this option off

Further discussions?

  • Keep pushing even further? (Big nope from everyone)
    • Enable SSE3 from 2004? (Intel: Prescott; AMD: Athlon 64 -> 64 new stepping)
    • Enable SSSE3 from 2006? (Intel: Core2 or Xeon Woodcrest; AMD: Bobcat/Bulldozer 2011!)
    • Enable SSE4.1/4.2? from 2006/2008? (I expect this to be hard no, Took a while for AMD to support)

Responses: Okay with the base change:

Maybe?

Wants more information:

Has Concerns:

Additional discussion topics:

SSE3 support:

For:

Against:

  • @kusma (Wants SSE3 tackled in a different PR with benchmark numbers to back it)

SSSE3 & SSE4.1/4.2: Seems to be too far in to the future. Not a good idea yet.

Edited by Ian Romanick

Merge request reports