Search Issue Tracker
Fixed in 2022.2.3f1, 2023.1.0a19
WebGL build times have regressed
Many informal observations of the WebGL build time, in particular the final linker step now take longer than when we first moved to Emscripten 2 in Unity 2021.2
This is especially detrimental in our user's iteration time with development (debug) builds.
The change which likely caused this was the upgrade to Emscripten 3.1.8 in Unity 2022.2
Brendan found this issue, [https://github.com/emscripten-core/emscripten/issues/17019], that concluded compiling with "-sERROR_ON_WASM_CHANGES_AFTER_LINK -sWASM_BIGINT -O1" took linking time from 180 seconds to a couple seconds.
We set the linker options in Platforms/WebGL/WebGLPlayerBuildProgram/WebGLPlayerBuildProgram.cs
in the function SetupPlayerExecutable()
in particular the -O optimization flag is set on line 170
.WithOptLevel(!PlayerBuildConfig.Development && WebGlConfig.optimizeForSize ? "s" : "3")
We need to evaluate the linker flags used, particularly in our development builds to achieve the fastest link time possible, even at the expense of WASM size.
We should make sure that the release (non-development) builds remain with the optimal flags.
-- For anyone finding this Issue June 2023 or later --
Some clarifying information:
* The primary speed up referred to in this ticket is related to Development builds. As an example an empty scene targeting WebGL development build in 2022.2.2f1 -> 437 seconds compared to same project built in 2022.2.8f1 -> 156 seconds
* If you are iterating locally and want to test a build quickly, use development builds when you can.
* In newer builds of the Editor an option _Shorter Build Time_ was added and could be used for quick iteration with QA
* Runtime Speed or Disk Size release builds are still going to take significantly longer to build, the optimizations are for deployment or run time purposes.
* Some slowness in recent versions is related to LLVM's LTO setting which provides additional optimization, however it comes at a time cost when building. For most situations using "Shorter Build Time" a viable release build.
If you see a significant increase in time taken while doing a _Development_ build or _Short Build Time_ optimization please let us know
When commenting on this ticket, please include additional data including versions being used, build options, and amount of time taken. Or please reach out on the forums.
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
- Shader warnings are thrown when creating a new empty 3D HDRP project
- Crash on tlsf_free when exiting the Play mode in a specific project
- Advanced Object Picker switches to Classic with Error "Exception caught with search engine (Object Selector)Advanced" when opening multiple Object Picker windows
- The "secondary" touchpoint reverts to the previous position when the "primary" touchpoint is released and re-engaged on WebGL applications
- GameObject with Visual Effect Graph Component is blooming when the VFX Graph Color is set to "0" and Alpha is set "1"