1
0
mirror of https://github.com/godotengine/godot.git synced 2026-01-07 19:53:17 +00:00

Merge pull request #106319 from adamscott/web-simd

[Web] Add WebAssembly SIMD support (`wasm_simd`) and enable it by default
This commit is contained in:
Thaddeus Crews
2025-05-13 16:22:18 -05:00
2 changed files with 11 additions and 0 deletions

View File

@@ -6,6 +6,12 @@ Import("env_modules")
env_jolt = env_modules.Clone()
# Platform specific flags.
if env["platform"] == "web" and env["wasm_simd"]:
# Enable SSE 4.2 so that WebAssembly SIMD can benefit from it.
# SSE 4.2 is the highest version supported by WebAssembly SIMD.
env_jolt.Append(CCFLAGS=["-msse4.2"])
# Thirdparty source files
thirdparty_dir = "#thirdparty/jolt_physics/"

View File

@@ -57,6 +57,7 @@ def get_opts():
"Use Emscripten PROXY_TO_PTHREAD option to run the main application code to a separate thread",
False,
),
BoolVariable("wasm_simd", "Use WebAssembly SIMD to improve CPU performance", True),
]
@@ -276,6 +277,10 @@ def configure(env: "SConsEnvironment"):
# https://github.com/emscripten-core/emscripten/issues/18034#issuecomment-1277561925
env.Append(LINKFLAGS=["-sTEXTDECODER=0"])
# Enable WebAssembly SIMD
if env["wasm_simd"]:
env.Append(CCFLAGS=["-msimd128"])
# Reduce code size by generating less support code (e.g. skip NodeJS support).
env.Append(LINKFLAGS=["-sENVIRONMENT=web,worker"])