Commit graph

694 commits

Author SHA1 Message Date
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