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.
It seems that we are only enabling this option together with unsafe
build determinators. However it seems that MD5-timestamp by itself is
not unsafe.
MD5-Timestamp works by first checking the timestamp of a file, comparing
it to the scons database and if it does not match it will do an md5sum
to determine if the file needs rebuilding.
Without this option SCons will always create md5sums of every file. In
the case of a null build this is 50% of the time.
* Delete old gcc 7 check
* Use f-strings where it is easy
* Use AddVariables instead of Add for collections of options
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
Noticed that when I run with `ninja_file` it wasn't created even
though in terminal I saw that the file will be generated
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
* Delete old check for gcc 8 as we support 9 or higher
* Flatten branches for clang and apple clang
* Renamed is_vanilla_clang to is_apple_clang to be more clear
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
- Adds Swappy for Android for stable frame pacing
- Implements pre-transformed Swapchain so that Godot's compositor is in
charge of rotating the screen instead of Android's compositor
(performance optimization for phones that don't have HW rotator)
============================
The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.
Changes from original PR:
- Removed "display/window/frame_pacing/android/target_frame_rate" option
to use Engine::get_max_fps instead.
- Target framerate can be changed at runtime using Engine::set_max_fps.
- Swappy is enabled by default.
- Added documentation.
- enable_auto_swap setting is replaced with swappy_mode.
The `env.disabled_modules` and `methods.disable_module` weren't used anywhere
so the first one was repurposed and the second just deleted
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
Adds an optional (default false) compile option to enable comparing
`Ref` to `nullptr` to ensure correct use, as well as future expandsion
for more general dev checks (enabled with `dev_mode`)
Prevents cache issues by not purging cache before starting a build.
Splits cache purge related code from progress code and delays the purge
until after final build is done.
After upgrading, I noticed that the SCons ninja output had a different
filename which messed up the "flaky file" logic.
This patch explicitly passes it to the tool and switches to
`build.ninja` (ninja's default).