Adds support for LTO on macOS and Android.
Disable LTO by default on iOS even if `production=yes` is set.
Also add `linker` option to `server` platform missed in #63283.
Refactor code handling old arguments to make it simpler (breaks compat,
but is explicit enough about it and scripts are easy to fix).
Replace a bisect with a single multiplication when calling
screen_get_dpi() in Javascript
Tested the value of
window.matchMedia(`(resolution:${(window.devicePixelRatio*96).toFixed(100)}dpi)`).matches
which is true except for values that cause a lot of rounding errors
(e.g. dpr : 0.3 => resolution: 28.799999999999997dpi)
Even in these cases the value matches the result of the previous
`findDPI()` method.
-jamie-pate
562d7c616d
The issue was causing by a bug within the logic for `FileAccessFilesystemJAndroid#eof_reached()` causing that value to remain false after the eof was reached.
This in turn caused an infinite loop in the file scanner preventing the project's content from showing up.
-m4gr3d
30479543b0
This was removed in #63481, and we confirmed that it's better like this,
but we add back the possibility to strip CR as an option, to optionally
restore the previous behavior.
For performance this is done directly in `String::parse_utf8`.
Also fixes Android `FileAccess::get_line()` as this one _should_ strip CR.
Supersedes #63717.
(cherry picked from commit 1418f97c70a5551bdbfeea853cbc479b32ea9e08)
- Accelerate common path used to check the storage scope for a given path
- Update the logic for the `get_as_text()` method - previous logic loads the content of a text file one byte at a time
- m4gr3d
fc2c202312
Previously it was used only on debug builds, but recent
additions to variant_call.cpp have made that unit too
large even in release_debug.
It was originally set to debug only because using it
breaks mingw, so this only reinstates it for MSVC where
it shouldn't have any drawbacks (famous last words).
Test-Information:
Builds for me with
scons -j 40 platform=windows target=release_debug
and my game then runs from it.
(cherry picked from commit d8900e0020b21d449069ef2a301253371fb70a21)
The new option is `linker` and lets the user specify the argument to
the`-fuse_ld=` linker flag directly. The supported options are:
- `default`: No change, typically uses GNU ld (bfd) unless the user or
distro picked a different default `/usr/bin/ld`.
- `bfd`: GNU ld from binutils
- `gold`: GNU gold from binutils
- `lld`: lld from LLVM
- `mold`: mold, an extremely fast modern linker, not (yet) intended for
use in production but great for development speed. Provided by distro
`mold` package or needs to be compiled from source and installed to
`/usr` otherwise.
Deprecates the `use_lld=yes` option, and make lld actually usable with
GCC too.
Not all the above are compatible or recommend for LTO, we recommend
using GNU ld with GCC LTO, or lld with LLVM ThinLTO.
- akien-mga
5bb3063eec
This was done by refactoring directory and file access handling for the Android platform so that any general filesystem access type go through the Android layer.
This allows us to validate whether the access is unrestricted, or whether it falls under scoped storage and thus act appropriately.
- m4gr3d
24e3b3b88d
- Using a bucketized approach to select the editor scale in order to avoid too high values
- Add default app dimensions: used on Android devices with free floating app windows to set the default app frame
- Add ability to launch the Game window in an adjacent frame when in multi window mode
-m4gr3d
05fc140ee6
Increases the size of the wasm by around 3% (~300-350 KiB).
This enables using the Crypto object for hashing, signing and encryption,
and therefore reduces the gap between the features of the HTML5 platform
and other platforms.
Closes https://github.com/godotengine/godot-proposals/issues/3574.
(cherry picked from commit 3ff6d794c0aac0365f236cd078b5e5aeea0d996e)
This removes the reliance on the not-so-fully-implemented Power API,
which throws an error in the HTML5 editor.
This was already changed to 200 ms in the master branch, and here I
picked 300 ms to be consistent with the iOS export plugin. All these
thread sleeps need to be re-assessed together to be made more
consistent (and possibly configurable - and most importantly battery
preserving by default).
Adds the is_process_running function to the native OS class and exposes it to script.
This is implemented on Windows and Unix platforms. A stub is provided for other platforms that do not support this function.
Documentation is updated to reflect new API function. - mdavisprog
53fb0440d3
I did change it a bit.
It's not needed on most distros as those are found in standard lib
and include paths, but on NixOS they're all in non-standard prefixes,
so we need to rely on information provided by pkg-config.
Fixes#59913.
Co-authored-by: David Lewis <davidalewis00@gmail.com>
(cherry picked from commit 07ad0664204fbc965627ed5cba548e93e5af4be7)