Age | Commit message (Collapse) | Author |
|
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.
|
|
Backports PR https://github.com/ARMmbed/mbedtls/pull/4948 to fix a regression
with our macOS builds using Clang 12.
Fixes #53297.
|
|
Cf. https://github.com/bulletphysics/bullet3/pull/3991
(cherry picked from commit cbe0cff53dadc29735977899c69a5231cb00eff9)
|
|
instead of built-in bitmap one.
|
|
Auto LOD fixes and improvements
|
|
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 b7901c773c2eaff26b5c3a5342773a70571b2648)
|
|
* 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.
|
|
|
|
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.
|
|
|
|
|
|
|
|
Includes fixes for a memory corruption bug (CVE-2019-1000032)
and possible division by zero.
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
Updated to latest upstream changes (2021-07-05 21:36:52 GMT), taken from https://github.com/bagder/ca-bundle/commit/8b263a18fca98ea371e54227837321c5cdaa1ba7
|
|
|
|
|
|
* 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.
|
|
* 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
|
|
|
|
Normals being optimized has better quality now.
Test simplify once and then use a slightly less tolerant
error for the target error.
|
|
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.
|
|
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).
|
|
BinomialLLC/basis_universal@ba1c3e40f1d434ebaf9a167b44e9b11d2bf0f765.
|
|
|
|
|
|
update meshoptimizer to version 0.16
|
|
|
|
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.
|
|
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.
|
|
- `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>
|
|
The patch has already been upstreamed, and custom patching won't be
needed during next version update.
|
|
|
|
|
|
This is a tricky one, it used to work, but it was wrong, because in such
a scenario instead of passing NULL as required by the API, it would pass
a buffer containing the `\0` terminator.
This stopped working on a specific miniupnpc version, when they fixed
some network endianess issue on Windows, to which we made a workaround,
which in turn would probably result in failures when the interface is
specified.
This commit address the issue properly, by checking the specified
interface string size, and correctly passing NULL instead of the empty
string when necessary.
Also reverts the commit that introduced the bogus workaround:
e85330231c729a88d5a478de2bbe4a61e5edeae3
One of those PR when the explaination is much longer then code changes
:).
|
|
|
|
|
|
Switch to simplify sloppy for another try.
Update to meshoptimizer e3f53f66e7a35b9b8764bee478589d79e34fa698.
|
|
spirv-reflect: Update to upstream commit c0ce03a (Jan 6, 2021)
|
|
pcre2: Update to upstream version 10.36
|
|
|
|
Changelog: https://vcs.pcre.org/pcre2/code/tags/pcre2-10.36/ChangeLog?view=markup
|
|
|