summaryrefslogtreecommitdiff
path: root/thirdparty
AgeCommit message (Collapse)Author
2021-09-27Auto LOD fixes and improvementsjfons
* 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-22Merge pull request #52934 from akien-mga/etcpak-7c3cb6fRémi Verschelde
etcpak: Update to upstream commit 7c3cb6f (Jul 29, 2021)
2021-09-22Merge pull request #52933 from akien-mga/vulkan-1.2.190Rémi Verschelde
2021-09-22etcpak: Update to upstream commit 7c3cb6f (Jul 29, 2021)Rémi Verschelde
Adds a new `useHeuristics` compression mode for ETC2. Upstream defaults to enable it so we do the same.
2021-09-22Merge pull request #52932 from JFonS/upd_ebr_readmeRémi Verschelde
2021-09-22Vulkan: Update volk and Vulkan SDK components to 1.2.190Rémi Verschelde
2021-09-22Update thirdparty README for EmbreeJoan Fons
2021-09-22nanosvg: Sync with upstream ccdb199Rémi Verschelde
Includes fixes for a memory corruption bug (CVE-2019-1000032) and possible division by zero.
2021-09-20HarfBuzz: Update to version 3.0.0bruvzg
2021-09-13Upgrade Embree and enable ray packetsJoan Fons
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-09Replace stb_vorbis with libogg+libvorbisEllen Poe
2021-08-27Makes FontData importable resource.bruvzg
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-14Upgrade spirv-reflectPedro J. Estébanez
2021-08-13Upgrade Vulkan memory allocatorPedro J. Estébanez
2021-08-12Use "volk" instead of statically linked Vulkan loader.bruvzg
2021-08-11Update bundled Mozilla X.509 CA root certificatesMax Hilbrunner
Updated to latest upstream changes (2021-07-05 21:36:52 GMT), taken from https://github.com/bagder/ca-bundle/commit/8b263a18fca98ea371e54227837321c5cdaa1ba7
2021-07-29[Net] Implement lower level ENet wrappers.Fabio Alessandrelli
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-20mbedtls: Update to upstream version 2.16.11Rémi Verschelde
2021-07-19[Editor Fonts] Add Noto Sans Bold font variant for supported languages.bruvzg
2021-07-11Implement Specialization Constantsreduz
* 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-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-19Complete rewrite of TweensTomasz Chabora
* 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-05-31Implement shader cachingreduz
* 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-30Meshoptimizer: Sync with upstream commit f5d83e8Johannes Witt
2021-05-22Update with experimental mesh optimizer.K. S. Ernest (iFire) Lee
Normals being optimized has better quality now. Test simplify once and then use a slightly less tolerant error for the target error.
2021-05-21Merge pull request #48885 from JFonS/upgrade_embreeRémi Verschelde
Upgrade Embree to the latest official release (3.13.0).
2021-05-21Upgrade Embree to the latest official release.jfons
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-21Fix STL to Godot type convertion of polypartitionHaoyu Qiu
2021-05-17Use a DynamicFont for the default project themeHugo Locurcio
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-07basis_universal: Update to upstream commit from Apr 16, 2021Rémi Verschelde
BinomialLLC/basis_universal@ba1c3e40f1d434ebaf9a167b44e9b11d2bf0f765.
2021-05-06Rename `IP_Unix`, `IP_Address` and `TCP_Server` to remove underscoresHugo Locurcio
2021-05-03Assorted fixes to UV unwrapping and GPU lightmapperjfons
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-04-28Merge pull request #48235 from Faless/feature/network-local-port-enet-salvagedRémi Verschelde
[Net] Implement NetworkedMultiplayerENet.get_local_port
2021-04-28Implement NetworkedMultiplayerENet.get_local_portFabio Alessandrelli
Allows retrieving the local port to which the peer is bound.
2021-04-28Merge pull request #48239 from akien-mga/goodbye-copymemRémi Verschelde
Core: Drop custom `copymem`/`zeromem` defines
2021-04-27Merge pull request #48050 from JFonS/occlusion_cullingRémi Verschelde
2021-04-27Core: Drop custom `copymem`/`zeromem` definesRémi Verschelde
We've been using standard C library functions `memcpy`/`memset` for these since 2016 with 67f65f66391327b2967a20a89c3627e1dd6e84eb. 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-27Merge pull request #47398 from Faless/feature/network-local-port-salvagedRémi Verschelde
2021-04-25Remove duplicate commentsDennis Brakhane
A few single line comments were duplicated, probably due to bad merges. This commit removes the obviously duplicate ones.
2021-04-23Add Embree-aarch64 thirdparty libraryjfons
2021-04-22ICU: Update to version 69.1, improve ICU data export process.bruvzg
2021-04-19Merge pull request #48002 from Geometror/update-meshoptimizerRémi Verschelde
update meshoptimizer to version 0.16
2021-04-18update meshoptimizer to 0.16Hendrik Brucker
2021-04-16Import: Cleanup and optimize etcpak compression methodRémi Verschelde
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-14etcpak: We only need the compression code, remove rest of etcpak appRémi Verschelde
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-13etcpak: Fix handling of pthread naming API for Linux and MinGWRémi Verschelde
For MinGW this is tricky to do as a two-step process like it was implemented, as `std::thread::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-13Add `etcpak` library for faster ETC/ETC2/S3TC imports.K. S. Ernest (iFire) Lee
- `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-12This renames PacketPeerUDP.listen to bind.Fabio Alessandrelli
2021-03-24[Net] Fix miniupnpc UWP build.Fabio Alessandrelli
The patch has already been upstreamed, and custom patching won't be needed during next version update.