-
-
Notifications
You must be signed in to change notification settings - Fork 20.8k
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
[HTML5] Fix builds with emcc >= 2.0.17 on Chrome for Android. #49589
Conversation
Disables a new default behaviour in emscripten that always inlines functions with only one caller. This has been reported to cause performance issued on some browsers, but more importantly, breaks Godot builds on Chrome for Android (not Firefox for Android, not Chrome for Desktop). Also fix a warning about SAFE_HEAP being a linker only flag.
@@ -213,6 +212,9 @@ def configure(env): | |||
# Reduce code size by generating less support code (e.g. skip NodeJS support). | |||
env.Append(LINKFLAGS=["-s", "ENVIRONMENT=web,worker"]) | |||
|
|||
# Break Chrome for android? Need to report upstream. | |||
env.Append(LINKFLAGS=["-s", "BINARYEN_EXTRA_PASSES=--one-caller-inline-max-function-size=1"]) |
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.
In emscripten-core/emscripten#13899 they tested different values and it seems all users had performance regressions with 19307 and not 19306. Maybe forcing it to 1 is a bit overkill? Should we try something safe-ish like 4096 or 8192?
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.
I did some tests and found 2048 was working on my phone while results with 4096 were a bit inconsistent.
We can use that, but maybe we should test it on some (low-end) devices?
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 reference, the upstream issue could be this: https://bugs.chromium.org/p/v8/issues/detail?id=11863
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.
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.
Maybe we can play it safe with 512
or something, and link the upstream report in a comment, so we know to revert or increase it once the bug is fixed.
Superseded by #50422. |
Disables a new default behaviour in emscripten that always inlines functions with only one caller.
This has been reported to cause performance issued on some browsers (emscripten-core/emscripten#13899), but more importantly, breaks Godot builds on Chrome for Android (not Firefox for Android, not Chrome for Desktop).
Also fix a warning about SAFE_HEAP being a linker only flag.