Commit Graph

536 Commits

Author SHA1 Message Date
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
Fabio Alessandrelli 8d5df826cb [Net] Fix miniupnpc UWP build.
The patch has already been upstreamed, and custom patching won't be
needed during next version update.
2021-03-24 12:53:43 +01:00
bruvzg b79e8c22f0
HarfBuzz: Update to version 2.8.0 2021-03-16 19:56:52 +02:00
Rémi Verschelde 69486b1059
miniupnpc: Update to version 2.2.2 2021-03-16 10:54:38 +01:00
Fabio Alessandrelli 163fc125cd [Net] Fix miniupnpc when no interface is specified
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:
e85330231c

One of those PR when the explaination is much longer then code changes
:).
2021-03-15 17:33:26 +01:00
Fabio Alessandrelli 18bc1f2a8f Bump mbedtls to version 2.16.10. 2021-03-12 18:37:34 +01:00
Rémi Verschelde 76c6007aa6
Cleanup: Remove executable bit from files which don't need it
Drop unused xpmfix.sh script.
2021-01-19 23:36:42 +01:00
Aaron Franke ddd6fb37e8
Update PolyPartition / Triangulator library 2021-01-12 13:46:16 -05:00
K. S. Ernest (iFire) Lee 59b61a1f64 Scale error in mesh optimizer so it uses absolute scale.
Switch to simplify sloppy for another try.

Update to meshoptimizer e3f53f66e7a35b9b8764bee478589d79e34fa698.
2021-01-11 06:07:54 -08:00
Rémi Verschelde 98ccaa1bad
Merge pull request #45021 from akien-mga/spirv-reflect-c0ce03a
spirv-reflect: Update to upstream commit c0ce03a (Jan 6, 2021)
2021-01-08 14:48:01 +01:00
Rémi Verschelde 7a0a5f0a00
Merge pull request #45020 from akien-mga/pcre-10.36
pcre2: Update to upstream version 10.36
2021-01-08 14:47:47 +01:00
Rémi Verschelde 07e89131c6
spirv-reflect: Update to upstream commit c0ce03a (Jan 6, 2021) 2021-01-08 14:30:44 +01:00
Rémi Verschelde 951ad29c0f
pcre2: Update to upstream version 10.36
Changelog: https://vcs.pcre.org/pcre2/code/tags/pcre2-10.36/ChangeLog?view=markup
2021-01-08 14:10:32 +01:00
Rémi Verschelde 1899bb6254
r128: Update to upstream 1.4.4, fixes warnings 2021-01-08 13:56:21 +01:00
Fabio Alessandrelli 9241aebecd
Merge pull request #45013 from akien-mga/enet-1.3.17
enet: Sync with upstream 1.3.17
2021-01-08 13:55:03 +01:00
Rémi Verschelde c6802a65c6
COPYRIGHT: Update with recent additions, cleanup
Also include public domain assets in `COPYRIGHT.txt` with Unlicence text or
dual-licensing scheme.

And document commit hashes for most thirdparty code in `thirdparty/README.md`
for clarity, and in case there's no tag matching the included version numbers.
2021-01-08 13:37:16 +01:00
Rémi Verschelde d8495d41ca
enet: Sync with upstream 1.3.17 2021-01-08 12:02:03 +01:00
Rémi Verschelde b72ad9d97b
Merge pull request #45012 from akien-mga/zstd-1.4.8
zstd: Update to upstream version 1.4.8
2021-01-08 11:57:20 +01:00
Rémi Verschelde 7917cb12df
doctest: Update to 2.4.4
Make ClassDB test macros enforce their msg to be constructed as String,
since doctest 2.4.2 changes the message passing to vararg.
2021-01-08 11:37:36 +01:00
Rémi Verschelde 3645c9c80c
zstd: Update to upstream version 1.4.8 2021-01-08 11:21:43 +01:00
Rémi Verschelde b5334d14f7
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆
2021-01-01 20:19:21 +01:00
Rémi Verschelde 6010c49424
Merge pull request #44740 from fire/mesh-opt-collapse
Meshoptimizer Update: Restrict edge collapses to avoid triangle flipping
2020-12-30 16:40:44 +01:00
K. S. Ernest (iFire) Lee 8b69f9c18a Meshoptimizer update library 2020-12-30 06:30:25 -08:00
Rémi Verschelde e495c2cb21
bullet: Sync with upstream 3.08 2020-12-30 13:39:14 +01:00
Marcel Admiraal 5b937d493f Rename empty() to is_empty() 2020-12-28 10:39:56 +00:00
bruvzg 86006ce476
HarfBuzz: Update to upstream version 2.7.4 2020-12-27 10:38:37 +02:00
Rémi Verschelde 727faf9b48
Merge pull request #44540 from jacobcoughenour/vulkan-sdk-1.2.126.0
Vulkan: loader, headers, and glslang updated to sdk-1.2.162.0
2020-12-23 01:13:18 +01:00
Gordon MacPherson 5b5fdb0adf remove assimp pending fbx upgrade 2020-12-22 21:31:06 +00:00
jacobcoughenour 66d429576c Vulkan: loader, headers, and glslang updated to sdk-1.2.162.0
Updated glslang and Vulkan headers/loader following the instructions found in thirdparty/README.

glslang was updated to the 'known good' matching Vulkan SDK version 1.2.162.0.  Vulkan headers and loader were updated to the commit tagged with sdk-1.2.162.0.

'vk_mem_alloc.h' and 'vk_mem_alloc.c' are unchanged since there hasn't been a new tagged release since 2.3.0.

Here's the Vulkan release notes for this update:
https://vulkan.lunarg.com/doc/sdk/1.2.162.0/windows/release_notes.html

Reverted and removed the unnecessary fix-mingw-snprintf patch for glslang as well as the mention of it in thirdparty/README.md.
2020-12-21 20:28:49 -05:00
Rémi Verschelde 0923494c78
Merge pull request #44507 from bruvzg/icu_update_68_2
ICU: Update to upstream release 68.2
2020-12-21 12:36:47 +01:00
Rémi Verschelde 229fb888a3
Merge pull request #44505 from akien-mga/mbedtls-2.16.9
mbedtls: Update to upstream version 2.16.9
2020-12-19 13:11:02 +01:00
reduz 7bf90c7888 Improved shadow rendering efficiency
-Do not bind attributes that are not needed
-Improve a bit more how meshoptimizer interacts with Godot
2020-12-18 19:47:32 -03:00
bruvzg bf5ca85d61
ICU: Update to upstream release 68.2 2020-12-18 23:03:46 +02:00
Rémi Verschelde 2872006039
mbedtls: Update to upstream version 2.16.9 2020-12-18 21:43:21 +01:00