Commit Graph

769 Commits

Author SHA1 Message Date
Rémi Verschelde 9570f3bf45 etcpak: Update to upstream commit 10fc4ce (May 12, 2022)
Fixes support for ARMv7+NEON.
2022-05-12 14:13:47 +02:00
Hendrik Brucker e41e2a1103 Fix GCC warning with -Waggressive-loop-optimizations due to overflow 2022-04-30 16:43:16 +02:00
Hendrik Brucker bde6fc9c82 Restructure and refine the noise module 2022-04-19 19:49:48 +02:00
Casper Beyer d3dde0727c Normalize thirdparty readme formatting 2022-04-01 15:26:17 +08:00
Rémi Verschelde 420d0d50bc zlib/minizip: Update to version 1.2.12
Security update, fixes CVE-2018-25032 in zlib.

Preliminary assessment doesn't show Godot as affected since we don't
seem to call `deflate` with the problematic parameters, but the extent
of the vulnerability is not fully clear upstream yet.
2022-03-31 15:19:11 +02:00
bruvzg 56544d8013
HarfBuzz: Update to version 4.2.0 2022-03-31 13:03:43 +03:00
Rémi Verschelde e9b928b42a
Merge pull request #59524 from RandomShaper/update_vma 2022-03-29 13:07:01 +02:00
Pedro J. Estébanez 171e31de68 vk_mem_alloc: Update to upstream + Replace use of deprecated items 2022-03-29 11:28:09 +02:00
Rémi Verschelde 8c12dfe099
Merge pull request #56718 from Geometror/noise-overhaul 2022-03-28 21:59:18 +02:00
Rémi Verschelde c21215628d
Merge pull request #59510 from bruvzg/use_woff2_fonts 2022-03-25 11:25:42 +01:00
bruvzg 78051f93a3
Convert the editor and default theme fonts to WOFF2 format to save space. 2022-03-25 11:45:55 +02:00
K. S. Ernest (iFire) Lee 3529141b4b Update basis universal to version 1.16.3.
Enable basis universal uastc internal storage instead of etc1s for better quality.
2022-03-24 22:41:23 -07:00
Rémi Verschelde 2a116f601b
Merge pull request #59275 from bruvzg/ft_brotli 2022-03-22 12:47:00 +01:00
Hendrik Brucker 2a55f10e8b Add FastNoiseLite / general noise overhaul
- replace OpenSimplexNoise

Co-authored-by: Cory Petkovsek <tinmanjuggernaut@users.noreply.github.com>
2022-03-20 14:53:45 +01:00
bruvzg e07a8f0aa6
Add brotli decoder and WOFF2 support. 2022-03-18 15:09:38 +02:00
bruvzg 94a365e94b
HarfBuzz: Update to version 4.0.1 2022-03-18 14:50:57 +02:00
Rémi Verschelde 3a305d31f0 thorvg: Fix MinGW build by adding explicit `<cstring>` include
Fixes #59044.
2022-03-16 15:47:23 +01:00
Rémi Verschelde 3d7f155586 Remove unused Bullet module and thirdparty code
It has been disabled in `master` since one year (#45852) and our plan
is for Bullet, and possibly other thirdparty physics engines, to be
implemented via GDExtension so that they can be selected by the users
who need them.
2022-03-09 21:45:47 +01:00
K. S. Ernest (iFire) Lee f7a809603c ThorVG: Sync with upstream 0.8.0 2022-03-08 06:30:31 -08:00
bruvzg 9b0fbfa06d
HarfBuzz: Update to version 4.0.0 2022-03-02 10:48:37 +02:00
Rémi Verschelde 90d16a3210
Merge pull request #58497 from JFonS/stb_rect_pack_upgrade 2022-02-25 12:31:40 +01:00
Pedro J. Estébanez 801741e787 vk_mem_alloc: Update to upstream + Adapt approach to small objects pooling
This updates VMA and instead of using the custom small pool approach from 4e6c9d3ae9, lazily creates pools for the relevant memory type indices, which doesn't require patching VMA.

Also, patches already merged upstream or not needed any longer are removed.
2022-02-24 14:30:55 +01:00
jfons 0395b5e414 Upgrade stb_rect_pack to 1.01
Enables large rectangle support by default.
2022-02-24 13:15:41 +01:00
Pedro J. Estébanez 6a35864a6d Really update volk to 1.3.204 2022-02-24 12:48:36 +01:00
Bastiaan Olij 65bae5a341 Add OpenXR 1.0.22 to thirdparty libraries
Will be compiled and used in the next commit.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-02-23 11:50:45 +01:00
Nova 36ae916c09 Fixed issue with Godot modifications to polypartition.cpp third-party file 2022-02-21 14:10:15 -05:00
Fabio Alessandrelli ee7b67e135 [Crypto] Implement CryptoCore::RandomGenerator.
As a cryptographically secure random generator.

Internally it uses mbedTLS CTR-DRBG implementation which gets re-seeded
with entropy from OS::get_entropy when needed.

CryptoCore now additionally depends on `ctr_drbg.c` and `entropy.c`
thirdparty mbedtls files.
2022-02-14 10:45:50 +01:00
Rémi Verschelde 09a61cdf53
Merge pull request #57989 from RandomShaper/update_vma
Update & patch VMA, and re-implement the small buffers optimization
2022-02-14 09:07:11 +01:00
Pedro J. Estébanez 4e6c9d3ae9 Add a separate pool for small allocations in Vulkan RD 2022-02-12 12:47:08 +01:00
Pedro J. Estébanez 648a10514b vk_mem_alloc: Update to latest commit 2022-02-12 12:45:28 +01:00
Rémi Verschelde 84d7a69570
spirv-reflect: Update to latest commit, adds SPIRV 1.6 support 2022-02-11 18:42:51 +01:00
Rémi Verschelde 26b2defe0c
vulkan: Update volk, headers and glslang to 1.3.204 2022-02-11 18:42:51 +01:00
Rémi Verschelde 8f4793b225
Revert "vulkan: Update volk, headers and glslang to 1.3.204"
This reverts commit d233908fb6.
2022-02-11 17:50:22 +01:00
Rémi Verschelde e11f0d9bfd
Revert "spirv-reflect: Update to latest commit, adds SPIRV 1.6 support"
This reverts commit 912c2062e6.
2022-02-11 17:49:45 +01:00
Rémi Verschelde 912c2062e6
spirv-reflect: Update to latest commit, adds SPIRV 1.6 support 2022-02-11 00:05:17 +01:00
Rémi Verschelde d233908fb6
vulkan: Update volk, headers and glslang to 1.3.204 2022-02-10 23:57:03 +01:00
bruvzg 346a4b4f50
msdfgen: Update to version 1.9.2 2022-02-09 14:24:26 +02:00
bruvzg c768189bd2
HarfBuzz: Update to version 3.3.2 2022-02-09 14:22:04 +02:00
K. S. Ernest (iFire) Lee 419b342a9a Faster CVTT by reducing quality.
Make BC6 and BC7 CVTT faster while still having better quality than DXT5.
2022-02-04 15:15:26 -08:00
Rémi Verschelde e223bad86d
Core: Move Vector2i to its own `vector2i.h` header
Also reduce interdependencies and clean up a bit.
2022-02-04 16:32:21 +01:00
Rémi Verschelde 6acbd5f774
Merge pull request #57102 from akien-mga/libwebp-1.2.2 2022-02-03 15:16:57 +01:00
Rémi Verschelde 339dcd80ae
libwebp: Sync with upstream 1.2.2
Changes: https://chromium.googlesource.com/webm/libwebp/+/1.2.2/NEWS
2022-02-02 23:29:30 +01:00
bruvzg 5676b3c022
HarfBuzz: Update to version 3.3.1 2022-02-02 22:29:31 +02:00
Anilforextra 3382e0304d ThorVG: Sync with upstream 0.7.1
Changes: https://github.com/Samsung/thorvg/releases/tag/v0.7.1
2022-01-31 23:39:25 +05:45
Rémi Verschelde 04d283dc23
Merge pull request #36198 from Calinou/code-font-jetbrains-mono 2022-01-20 21:43:17 +01:00
Rémi Verschelde 9c4c541bca
thorvg: Fix usage of min/max breaking on VS 2017
Fixes https://github.com/godotengine/godot/issues/56894#issuecomment-1015956706.
2022-01-20 08:07:53 +01:00
Rémi Verschelde cb7f28ad95
thorvg: Fix missing `<cstring>` includes for MinGW
Fixes #56894.
2022-01-18 12:31:18 +01:00
Hugo Locurcio 40be15920f
Remove support for PVRTC texture encoding and decoding
On the only platform where PVRTC is supported (iOS),
ETC2 generally supersedes PVRTC in every possible way. The increased
memory usage is not really a problem thanks to modern iOS' devices
processing power being higher than its Android counterparts.
2022-01-14 21:08:22 +01:00
K. S. Ernest (iFire) Lee 8d02759c72
Use ThorVG instead of NanoSVG for importing SVGs
ThorVG is a platform-independent portable library for drawing vector-based
scene and animation.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-01-14 15:49:39 +01:00
Rémi Verschelde f615926d3c
freetype: Update to upstream version 2.11.1 2022-01-13 08:40:18 +01:00
Rémi Verschelde 8c76ad188b
glslang: Fix support for building against public/system library
Fix include paths to support both vendored and system-installed glslang.

Remove usage of the private `StandAlone` bits.
Requires us to vendor a copy of `DefaultTBuiltInResource` (or provide our own
customized one) as glslang doesn't provide it in its public API.
Also removes unused C interface as it's not well encapsulated and depends on
`StandAlone`.

Fixes #56307.
2022-01-12 14:36:02 +01:00
bruvzg b63aced768
HarfBuzz: Update to version 3.2.0 2022-01-12 10:17:30 +02:00
Rémi Verschelde a074ceefcd
Merge pull request #56130 from Faless/mbedtls/2.28.0 2022-01-11 15:03:28 +01:00
Hugo Locurcio b5f88b1efc
Use JetBrains Mono as the editor's default code font
This recently released font has been gaining popularity thanks to
its readability and aesthetics. It also features font ligatures
(enabled by default, but can be disabled in the Editor Settings).

Its character set isn't as extensive as Hack's, but it should be
sufficient for most uses.

More information at <https://www.jetbrains.com/lp/mono/>.

This also reorders the third-party font notices to be in
alphabetical order.
2022-01-05 01:35:50 +01:00
Rémi Verschelde fe52458154
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Fabio Alessandrelli e375cbd094 Bump mbedTLS version to 2.28.0 (new LTS).
Keep applying the windows entropy patch (UWP support).
Remove no longer needed padlock patch.
Update thirdparty README to reflect changes, and new source inclusion
criteria.
2021-12-21 13:26:02 +01:00
Fabio Alessandrelli 36d316876b Bump mbedtls to 2.16.12
Remove upstreamed patches.
Re-apply padlock and uwp patches.

NOTE: We could replace our padloack patch with mbedtls 3452.
2021-12-20 13:58:54 +01:00
Aaron Franke 368c0bc0ac
Misc build system fixes 2021-12-10 12:14:27 -06:00
Rémi Verschelde 256406a0bc
Merge pull request #55505 from bruvzg/hb_312 2021-12-02 09:35:45 +01:00
Vincent 2d0068d1cb Fix crash when loading an invalid mp3 file 2021-12-01 14:30:38 +01:00
bruvzg 371010c5f9
HarfBuzz: Update to version 3.1.2 2021-12-01 09:37:48 +02:00
Je06jm 20deb0917d Implemented AMD's FSR as a computer shader for upscaling 3D scenes 2021-11-23 14:16:03 -07:00
Gergely Kis a1a3e79ea5 Fix debug build for iphone
printf() does not have a version that accepts std::string
as format string parameter.
2021-11-23 16:48:52 +01:00
Rémi Verschelde 2b287509eb
Merge pull request #55128 from akien-mga/meshoptimizer-f4c356d79 2021-11-22 12:22:59 +01:00
Rémi Verschelde a74e2c5058
Merge pull request #55136 from akien-mga/basisu-646a9f826 2021-11-20 10:47:29 +01:00
Rémi Verschelde bf18965a51
Merge pull request #55126 from akien-mga/wslay-45d22583b 2021-11-20 10:47:20 +01:00
Rémi Verschelde 58443f73fe
Merge pull request #55129 from akien-mga/libvorbis-1.3.7 2021-11-20 10:47:09 +01:00
Rémi Verschelde e97634f56d
Merge pull request #55127 from akien-mga/libwebp-1.2.1 2021-11-20 10:47:00 +01:00
Rémi Verschelde bd896bf915
Merge pull request #55122 from akien-mga/zstd-1.5.0 2021-11-20 10:46:41 +01:00
Rémi Verschelde 0a76ddc3dd
Merge pull request #55123 from akien-mga/xatlas-ec707faea 2021-11-20 10:46:33 +01:00
Rémi Verschelde 4f444cc815
Merge pull request #55120 from akien-mga/pcre2-10.39 2021-11-20 10:46:24 +01:00
Rémi Verschelde 3924aa6e8f
Merge pull request #55119 from akien-mga/libogg-1.3.5 2021-11-20 10:46:15 +01:00
Rémi Verschelde 882d61791b
Merge pull request #55118 from akien-mga/graphite-80c52493e 2021-11-20 10:46:06 +01:00
Rémi Verschelde e6fd2d550e
Merge pull request #55115 from akien-mga/tinyexr-1.0.1 2021-11-20 10:45:56 +01:00
Rémi Verschelde 07f8996b1c
certs: Sync with Mozilla bundle as of Nov 1, 2021
edd798d35a
2021-11-19 18:45:10 +01:00
Rémi Verschelde 2c22caccc5
basis_universal: Sync with upstream 646a9f826
646a9f8261
2021-11-19 18:40:08 +01:00
Rémi Verschelde a706ef3272
wslay: Sync with upstream 45d22583b
45d22583b4

Mostly style changes, a couple new methods and fixes.
Tweak file structure a bit.
2021-11-19 15:47:20 +01:00
Rémi Verschelde 28ad2e8c72
libvorbis: Sync with upstream 1.3.7
Fixes various bugs, including several ones with security relevance.

Changes: https://github.com/xiph/vorbis/releases/tag/v1.3.7
2021-11-19 14:08:06 +01:00
Rémi Verschelde 2410f5de03
meshoptimizer: Sync with upstream commit f4c356d79
f4c356d79f
2021-11-19 14:02:49 +01:00
Rémi Verschelde 41ce417847
libwebp: Sync with upstream 1.2.1
Changes: https://chromium.googlesource.com/webm/libwebp/+/1.2.1/NEWS
2021-11-19 13:55:13 +01:00
Rémi Verschelde 5bea1370f0
zstd: Update to upstream version 1.5.0
Release notes: https://github.com/facebook/zstd/releases/tag/v1.5.0
2021-11-19 13:01:58 +01:00
Rémi Verschelde 0b84b26b2e
xatlas: Sync with upstream ec707faea
ec707faeac
2021-11-19 12:59:01 +01:00
Rémi Verschelde 914b7f825d
pcre2: Update to upstream version 10.39
Changelog: https://github.com/PhilipHazel/pcre2/blob/pcre2-10.39/ChangeLog
2021-11-19 12:47:40 +01:00
Rémi Verschelde 77efd406bf
libogg: Update to upstream 1.3.5
Mostly a cosmetic update, we were already on a commit close to what
ended up being tagged as 1.3.5. Adds an extra buffer overflow fix.
2021-11-19 12:33:13 +01:00
Rémi Verschelde d1360895ee
graphite: Update to upstream commit 80c52493e
80c52493ef

Includes a fix for inaccurate slice range calculation for bases with diacritics.

Also removes unnecessary ChangeLog, and updated unrelated vhacd commit to match
currently used one.
2021-11-19 12:23:54 +01:00
Rémi Verschelde 432ac521ef
miniupnpc: Update to version 2.2.3
Library code and public headers are now properly separated, we can fix include paths
to remove the redundant subfolder.
2021-11-19 12:00:37 +01:00
Rémi Verschelde 46d3effa99
tinyexr: Sync with upstream 1.0.1
Removes miniz as a bundled dependency, relies on our own zlib instead.

Includes a couple commits ahead of `v1.0.1` tag to fix MinGW builds.
2021-11-19 11:25:14 +01:00
bruvzg da8aedfc17 HarfBuzz: Update to version 3.1.1 2021-11-08 13:26:21 +02:00
lawnjelly e3491a3744
Add GLES2 2D renderer + Linux display manager
First implementation with Linux display manager.

- Add single-threaded mode for EditorResourcePreview (needed for OpenGL).

Co-authored-by: clayjohn <claynjohn@gmail.com>
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2021-10-30 02:05:48 +02:00
bruvzg 44a241b241 ICU: Update to version 70.1 2021-10-28 09:15:28 +03:00
Rémi Verschelde 52a535c030
mbedtls: Backport PR 4819 to fix certs parsing speed
Fixes engine startup time regression described here:
https://github.com/godotengine/godot/issues/43351#issuecomment-847466783
2021-10-25 17:59:47 +02:00
Rémi Verschelde ae74e78909
Remove WebM support (and deps libvpx and opus)
We've had many issues with WebM support and specifically the libvpx library
over the years, mostly due to its poor integration in Godot's buildsystem,
but without anyone really interested in improving this state.

With the new GDExtensions in Godot 4.0, we intend to move video decoding to
first-party extensions, and this would likely be done using something like
libvlc to expose more codecs.

Removing the `webm` module means we can remove libsimplewebm, libvpx and
opus, which we were only used for that purpose. Both libvpx and opus were
fairly complex pieces of the buildsystem, so this is a nice cleanup.

This also removes the compile-time dependency on `yasm`.

Fixes lots of compilation or non-working WebM issues which will be linked
in the PR.
2021-10-15 12:09:11 +02:00
Rémi Verschelde 4cf3056ca6
mbedtls: Backport "Fix x86_64 assembly for bignum multiplication"
Backports PR https://github.com/ARMmbed/mbedtls/pull/4948 to fix a regression
with our macOS builds using Clang 12.

Fixes #53297.
2021-10-14 11:03:03 +02:00
Rémi Verschelde b04b3064ec
bullet: Fix UWP build by disabling TaskScheduler dynamic loading
Cf. https://github.com/bulletphysics/bullet3/pull/3991

(cherry picked from commit cbe0cff53d)
2021-10-06 08:18:19 +02:00
Rémi Verschelde 8d5475bd28
doctest: Update to 2.4.6 2021-10-04 11:20:19 +02:00
bruvzg 27e9d07f11 Remove Scene dependency from the TextServer, use scalable hex box font instead of built-in bitmap one. 2021-10-03 00:22:10 +03:00
Juan Linietsky c370b4c4d0
Merge pull request #52544 from JFonS/lod_fixes
Auto LOD fixes and improvements
2021-09-30 14:49:11 -03:00
Rémi Verschelde 71f8b809b2
bullet: Sync with upstream 3.17
Stop include Bullet headers using `-isystem` for GCC/Clang as it misleads
SCons into not properly rebuilding all files when headers change.

This means we also need to make sure Bullet builds without warning, and
current version fares fairly well, there were just a couple to fix (patch
included).

Increase minimum version for distro packages to 2.90 (this was never released
as the "next" version after 2.89 was 3.05... but that covers it too).

Fixes #43868.

(cherry picked from commit b7901c773c)
2021-09-30 10:45:40 +02:00
jfons 9e1810695c Auto LOD fixes and improvements
* Fixed LODs for shadow meshes.
* Added a merging step before simplification. This helps with tesselated
  meshes that were previously left untouched. The angle difference at
  wich edges ar considered "hard" can be tweaked as an import setting.
* LODs will now start with the highest decimation possible and keep
  doubling (approximately) the number of triangles from there. This
  makes sure that very low triangle counts are included when possible.
* Given more weight to normal preservation.
* Modified MeshOptimizer to report distance-based error instead of
  including attributes in the reported metrics.
* Added attribute transference between the original mesh and the
  various LODs. Right now only normals are taken into account,
  but it could be expanded to other attributes in the future.
2021-09-27 17:04:56 +02:00
kobewi 11e7963a14 Refactor and move easing equations 2021-09-24 13:47:13 +02:00
Rémi Verschelde 5e4a71200e
Merge pull request #53003 from KoBeWi/tween_0() 2021-09-24 13:21:55 +02:00
kobewi 5c1195e456 Add a special case for 0-time interpolations 2021-09-24 13:02:49 +02:00
Rémi Verschelde a09547450a
Merge pull request #52934 from akien-mga/etcpak-7c3cb6f
etcpak: Update to upstream commit 7c3cb6f (Jul 29, 2021)
2021-09-22 13:48:16 +02:00
Rémi Verschelde b7ad29d574
Merge pull request #52933 from akien-mga/vulkan-1.2.190 2021-09-22 13:47:52 +02:00
Rémi Verschelde 3691cb0ca4
etcpak: Update to upstream commit 7c3cb6f (Jul 29, 2021)
Adds a new `useHeuristics` compression mode for ETC2.
Upstream defaults to enable it so we do the same.
2021-09-22 13:17:07 +02:00
Rémi Verschelde a48dc10103
Merge pull request #52932 from JFonS/upd_ebr_readme 2021-09-22 12:56:34 +02:00
Rémi Verschelde fd641ac85c
Vulkan: Update volk and Vulkan SDK components to 1.2.190 2021-09-22 12:56:15 +02:00
Joan Fons eb0f67a541 Update thirdparty README for Embree 2021-09-22 12:29:35 +02:00
Rémi Verschelde 05b28b66ea
nanosvg: Sync with upstream ccdb199
Includes fixes for a memory corruption bug (CVE-2019-1000032)
and possible division by zero.
2021-09-22 12:14:57 +02:00
bruvzg 3061e3859d HarfBuzz: Update to version 3.0.0 2021-09-20 09:52:45 +03:00
Joan Fons 595cbacdf1 Upgrade Embree and enable ray packets
Minor patch upgrade. Enabling ray packets results in faster
processing of ray streams (i.e. occlusion culling buffer
updates) at the cost of slightly larger binary sizes.
2021-09-13 16:17:28 +02:00
Ellen Poe f5d9c7b487 Replace stb_vorbis with libogg+libvorbis 2021-09-09 19:39:04 -07:00
bruvzg 4c3f7d1290 Makes FontData importable resource.
Adds multi-channel SDF font texture generation and rendering support.
Adds per-font oversampling support.
Adds FontData import plugins (for dynamic fonts, BMFonts and monospaced image fonts), font texture cache pre-generation and loading.
Adds BMFont binary format and outline support.
2021-08-27 15:43:18 +03:00
Pedro J. Estébanez d29a0d5753 Upgrade spirv-reflect 2021-08-14 15:12:07 +02:00
Pedro J. Estébanez 7b7e17a626 Upgrade Vulkan memory allocator 2021-08-13 00:05:41 +02:00
bruvzg d7957a2a20 Use "volk" instead of statically linked Vulkan loader. 2021-08-12 14:25:15 +03:00
Max Hilbrunner d9005912c1 Update bundled Mozilla X.509 CA root certificates
Updated to latest upstream changes (2021-07-05 21:36:52 GMT), taken from 8b263a18fc
2021-08-11 14:13:31 +02:00
Fabio Alessandrelli 42a1777531 [Net] Implement lower level ENet wrappers. 2021-07-29 10:59:00 +02:00
Aaron Franke 4e6efd1b07
Use C++ iterators for Lists in many situations 2021-07-23 17:38:28 -04:00
Rémi Verschelde cd7b25588b
mbedtls: Update to upstream version 2.16.11 2021-07-20 12:32:46 +02:00
bruvzg e5b956dc2d [Editor Fonts] Add Noto Sans Bold font variant for supported languages. 2021-07-19 23:08:05 +03:00
reduz b2f6db7aa8
Implement Specialization Constants
* Added support to our local copy of SpirV Reflect (which does not support it).
* Pass them on render or compute pipeline creation.
* Not implemented in our shaders yet.
2021-07-11 23:16:09 +02:00
Lightning_A e28fd07b2b Rename `instance()`->`instantiate()` when it's a verb 2021-06-19 20:49:18 -06:00
Tomasz Chabora 900b2e0fdc Complete rewrite of Tweens
* Tweens were changed from Node to RefCounted. New API is inspired by DOTween.
* Tweens are created and managed by SceneTree, similar to SceneTreeTimer, which makes them ultra cheap to use a lot.
* Animating with Tweens is done by creating sequences of Tweeners. You create them from code and they autostart by default (fire-and-forget).
* There are 4 Tweeners that cover the former Tween functionality: PropertyTweener, IntervalTweener, CallbackTweener and MethodTweener.
* The methods were simplified a lot. Long argument lists are replaced with chained calls on Tweens and Tweeners.
* Tweeners by default execute in sequence, so it's easy to create complex chained animations.
* You can bind a Tween to a node. Tween will be removed automatically when the bound node is freed.
2021-06-19 12:08:50 +02:00
reduz 0d2e02945b Implement shader caching
* Shader compilation is now cached. Subsequent loads take less than a millisecond.
* Improved game, editor and project manager startup time.
* Editor uses .godot/shader_cache to store shaders.
* Game uses user://shader_cache
* Project manager uses $config_dir/shader_cache
* Options to tweak shader caching in project settings.
* Editor path configuration moved from EditorSettings to new class, EditorPaths, so it can be available early on (before shaders are compiled).
* Reworked ShaderCompilerRD to ensure deterministic shader code creation (else shader may change and cache will be invalidated).
* Added shader compression with SMOLV: https://github.com/aras-p/smol-v
2021-05-31 10:13:09 +02:00
Johannes Witt 9f37456743
Meshoptimizer: Sync with upstream commit f5d83e8 2021-05-30 00:26:13 +02:00
K. S. Ernest (iFire) Lee fc8ea1d828 Update with experimental mesh optimizer.
Normals being optimized has better quality now.

Test simplify once and then use a slightly less tolerant 
error for the target error.
2021-05-22 08:58:50 -07:00
Rémi Verschelde 3ee034451a
Merge pull request #48885 from JFonS/upgrade_embree
Upgrade Embree to the latest official release (3.13.0).
2021-05-21 18:30:02 +02:00
jfons 767e374dce Upgrade Embree to the latest official release.
Since Embree v3.13.0 supports AARCH64, switch back to the
official repo instead of using Embree-aarch64.

`thirdparty/embree/patches/godot-changes.patch` should now contain
an accurate diff of the changes done to the library.
2021-05-21 17:00:24 +02:00
Haoyu Qiu d16bef8b55 Fix STL to Godot type convertion of polypartition 2021-05-21 17:24:32 +08:00
Hugo Locurcio d211c05111
Use a DynamicFont for the default project theme
This makes font oversampling work out of the box, while also increasing
the supported character set's size. The default font is now larger
as well to better fit today's screen resolutions.

The OpenSans SemiBold font was chosen for two reasons:

- Small file size, yet its character set supports Latin-1 and Cyrillic
  text.
- A heavier font weight looks better in most "game" scenarios and is
  more readable against mixed-color backgrounds.

This is considered a breaking change as it changes the default font's
metrics, which will likely affect how Control nodes are laid out in
scenes (unless a custom font is in use).
2021-05-17 15:19:13 +02:00
Rémi Verschelde 2d133177e9
basis_universal: Update to upstream commit from Apr 16, 2021
BinomialLLC/basis_universal@ba1c3e40f1.
2021-05-07 17:26:11 +02:00
Hugo Locurcio 3f078c99f6
Rename `IP_Unix`, `IP_Address` and `TCP_Server` to remove underscores 2021-05-06 02:52:01 +02:00
jfons 6995b0429c Assorted fixes to UV unwrapping and GPU lightmapper
Various fixes to UV2 unwrapping and the GPU lightmapper. Listed here for
context in case of git blame/bisect:

* Fix UV2 unwrapping on import, also cleaned up the unwrap cache code.
* Fix saving of RGBA images in EXR format.
* Fixes to the GPU lightmapper:
	- Added padding between atlas elements, avoids bleeding.
	- Remove old SDF generation code.
	- Fix baked attenuation for Omni/Spot lights.
	- Fix baking of material properties onto UV2 (wireframe was
	  wrongly used before).
	- Disable statically baked lights for objects that have a
	  lightmap texture to avoid applying the same light twice.
	- Fix lightmap pairing in RendererSceneCull.
	- Fix UV2 array generated from `RenderingServer::mesh_surface_get_arrays()`.
	- Port autoexposure fix for OIDN from 3.x.
	- Save debug textures as EXR when using floating point format.
2021-05-03 18:10:34 +02:00
Rémi Verschelde 690c00d522
Merge pull request #48235 from Faless/feature/network-local-port-enet-salvaged
[Net] Implement NetworkedMultiplayerENet.get_local_port
2021-04-28 19:04:09 +02:00
Fabio Alessandrelli cd22a2be2f Implement NetworkedMultiplayerENet.get_local_port
Allows retrieving the local port to which the peer is bound.
2021-04-28 16:53:13 +02:00
Rémi Verschelde 305b2a15bf
Merge pull request #48239 from akien-mga/goodbye-copymem
Core: Drop custom `copymem`/`zeromem` defines
2021-04-28 11:04:05 +02:00
Rémi Verschelde 95cfce661b
Merge pull request #48050 from JFonS/occlusion_culling 2021-04-27 19:07:12 +02:00
Rémi Verschelde 8247667a3e
Core: Drop custom `copymem`/`zeromem` defines
We've been using standard C library functions `memcpy`/`memset` for these since
2016 with 67f65f6639.

There was still the possibility for third-party platform ports to override the
definitions with a custom header, but this doesn't seem useful anymore.
2021-04-27 16:26:27 +02:00
Rémi Verschelde 72bd64c1d5
Merge pull request #47398 from Faless/feature/network-local-port-salvaged 2021-04-27 15:04:30 +02:00
Dennis Brakhane 31d41d83c3 Remove duplicate comments
A few single line comments were duplicated, probably due to bad merges.

This commit removes the obviously duplicate ones.
2021-04-25 20:03:52 +02:00
jfons 34b3e8f9e2 Add Embree-aarch64 thirdparty library 2021-04-23 15:57:28 +02:00
bruvzg b56241f22f
ICU: Update to version 69.1, improve ICU data export process. 2021-04-22 16:56:53 +03:00
Rémi Verschelde 698c7d26f9
Merge pull request #48002 from Geometror/update-meshoptimizer
update meshoptimizer to version 0.16
2021-04-19 10:37:20 +02:00
Hendrik Brucker 9d18610190 update meshoptimizer to 0.16 2021-04-18 18:00:15 +02:00
Rémi Verschelde 0ab928e060
Import: Cleanup and optimize etcpak compression method
Avoid unnecessary allocation of temporary buffers for each mip, and creates
only one Image with the compressed data.
Also renames variable and reorders code for clarity.

Clarify that squish is now only used for decompression.

Documented which formats can be decompressed in Image.
2021-04-16 17:08:36 +02:00
Rémi Verschelde 638cfec853
etcpak: We only need the compression code, remove rest of etcpak app
We do our own image loading, threading, and memory management in Godot already,
so the only components we need from etcpak (at least as of now) are the
`Compress*` methods defined in `ProcessDxtc.cpp` and `ProcessRGB.cpp`.

So we don't need to compile or vendor the rest.
2021-04-14 16:50:02 +02:00
Rémi Verschelde d137ccbfc8
etcpak: Fix handling of pthread naming API for Linux and MinGW
For MinGW this is tricky to do as a two-step process like it was implemented,
as `std:🧵:native_handle()` is implementation-defined and depending on
the MinGW distribution, it may or may not be a pthread handle.

With mingw-gcc as packaged in Linux distros with pthread support it worked
fine, but with llvm-mingw it was problematic.

Setting the name in the thread directly as done for Apple platforms is simpler
and works fine.

Co-authored-by: Hein-Pieter van Braam-Stewart <hp@tmm.cx>
2021-04-13 21:04:09 +02:00
K. S. Ernest (iFire) Lee d840165a32
Add `etcpak` library for faster ETC/ETC2/S3TC imports.
- `etc` module was renamed to `etcpak` and modified to use the new library.
- PKM importer is removed in the process, it's obsolete.
- Old library `etc2comp` is removed.
- S3TC compression no longer done via `squish` (but decompression still is).
- Slight modifications to etcpak sources for MinGW compatibility,
  to fix LLVM `-Wc++11-narrowing` errors, and to allow using vendored or
  system libpng.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2021-04-13 00:12:12 +02:00
Fabio Alessandrelli 4d5c8e0b18 This renames PacketPeerUDP.listen to bind. 2021-04-12 21:05:33 +02:00