-
-
Notifications
You must be signed in to change notification settings - Fork 21.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SCons: Properly set SSE2 as baseline on x86_32 #100337
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At the risk of bikeshedding, I think we might as well just set -mssse3
that is supported by every CPU that has at least 2 cores. The newest cpu to support it is AMD's "bobcat" architecture which is from early 2011.
Every single "atom" branded CPU has it too. On the Intel side this makes the oldest required CPU a "Core 2 duo" or a 64bit capable P4.
Now I don't want this to bikeshed forever, I am just approving this. But I would also just approve an -mssse3
if presented!
bd057f2
to
63a3a85
Compare
I would agree too. I propose we do this in two steps so we get an intermediate dev snapshot inbetween for testing purposes, if we need to debug reports of some users having Godot suddenly crash on their old PC. This PR just affects x86_32 in a way that should practically be a no-op. Then we can make another PR bumping to ssse3 that will affect both x86_32 and x86_64. |
I'd do both x86_32 and x86_64. There's some reason to want to run a 32bit linux distro in particular on a machine that old. Moving from SSE2 to SSSE3 in practice doesn't really limit the amount of CPUs that can run Godot much either way. |
Setting it only for release templates on Windows and macOS was inconsistent, and Jolt requires it as a minimum. Drop the `-mxsave` flag from the raycast module, this doesn't seem to be used explicitly by Embree, and unnecessarily makes our config and baseline muddy.
63a3a85
to
f86b369
Compare
|
||
if env["target"] == "template_release": | ||
if env["arch"] != "arm64": | ||
env.Prepend(CCFLAGS=["-msse2"]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the reference - current min. supported macOS version (10.13) require SSE4.1 to work.
Thanks! |
Setting it only for release templates on Windows and macOS was inconsistent, and Jolt requires it as a minimum.
Drop the
-mxsave
flag from the raycast module, this doesn't seem to be used explicitly by Embree, and unnecessarily makes our config and baseline muddy.I'm aware of #59595, but this one requires more discussion as requiring SSE4.2 does cut off a significant amount of CPUs, and we need to evaluate whether we're willing to make that compromise.
SSE2 on the other hand should be a no brainer, it was already the default for MSVC, and for all other platforms indirectly by way of it being set for the raycast module, which would mean that our binaries can't run on i386 machines without SSE2 already.