Commit Graph

55653 Commits

Author SHA1 Message Date
clayjohn 5261d12a66 Enable depth writes during shadow pass and depth pass. Disable during color pass
This fixes an unreported performance bug. Basically, without this change, the depth prepass did nothing

(cherry picked from commit b986afed46)
2023-09-21 13:50:25 +02:00
Yuri Sizov 08bd6ba734 Check the native base of scripts when resolving icons
(cherry picked from commit 21c5f86d5d)
2023-09-21 13:35:31 +02:00
kobewi a5b59b596f Don't grab theme icons for scripts
(cherry picked from commit 51f92d1100)
2023-09-21 13:34:46 +02:00
Adam Scott 4f59255059 Fix file permissions for the web platform
(cherry picked from commit b6faccccd5)
2023-09-21 13:34:46 +02:00
Rémi Verschelde 269b115d9c SCons: Disable C++ exception handling
Upon investigating the extremely slow MSVC build times in #80513, I noticed
that while Godot policy is to never use exceptions, we weren't enforcing it
with compiler flags, and thus still included exception handling code and
stack unwinding.

This is wasteful on multiple aspects:

- Binary size: Around 20% binary size reduction with exceptions disabled
  for both MSVC and GCC binaries.
- Compile time:
  * More than 50% build time reduction with MSVC.
  * 10% to 25% build time reduction with GCC + LTO.
- Performance: Possibly, needs to be benchmarked.

Since users may want to re-enable exceptions in their own thirdparty code
or the libraries they compile with Godot, this behavior can be toggled with
the `disable_exceptions` SCons option, which defaults to true.

(cherry picked from commit 3907e53ff6)
2023-09-20 22:44:05 +02:00
Rémi Verschelde 8be838481d Allow unbundling OpenXR (for Linux distros)
Copy XrMatrix4x4f_CreateProjectionFov to our OpenXRUtil, instead of relying
on a private header.

(cherry picked from commit 34a07b81ae)
2023-09-20 22:44:05 +02:00
bruvzg a4c041b6b6 [macOS] Workaround Xcode 15 linker bug.
(cherry picked from commit 6da8c7a662)
2023-09-20 22:44:05 +02:00
Valery Zhuk 94dfa4eaf9 fix build options configuration for Visual Studio projects
(cherry picked from commit 6158578087)
2023-09-20 22:44:04 +02:00
Dario 5f7685c831 Carry over the windows_subsystem setting to the generated vsproj if it's not the default.
Even if you specify the subsystem to be the console one, the vsproj doesn't carry over the setting, which makes working with this mode in the IDE a bit annoying since it'll regenerate the vsproj right afterwards. Since there's only two options and 'gui' is the default, we only carry over the 'console' setting.

(cherry picked from commit cda4b4ebf3)
2023-09-20 22:44:04 +02:00
Rémi Verschelde 12aeb83043 Web: Fix version check for missing scalbnf LTO workaround
The check needs to happen after we set `env["CXX"]`.
Follow-up to #81340.

(cherry picked from commit 50161808c2)
2023-09-20 22:44:04 +02:00
Rémi Verschelde 6122cf3178 Web: Workaround Emscripten 3.1.42+ LTO regression
Fixes #80010.

(cherry picked from commit b064008c07)
2023-09-20 22:44:04 +02:00
Rémi Verschelde 9fb23c4e56 CI: Bump version for `actions/checkout@v4` and `actions/setup-dotnet@v3`
(cherry picked from commit de14f1d295)
2023-09-20 22:44:04 +02:00
ocean (they/them) cd2e003a05 Build system: add option for MSVC incremental linking.
(cherry picked from commit bbafe14970)
2023-09-20 22:44:04 +02:00
bruvzg d3265cf518 [Windows] Add main executable to the console wrapper dependencies to prevent simultaneous linking.
(cherry picked from commit f37ace7036)
2023-09-20 22:44:04 +02:00
Rémi Verschelde e30ff075ce CI: Propagated error code when glue generation fails
This used to be ignored as we ran the X11 version with Vulkan software renderer and xvfb-run, which could crash at the time. Now that we have headless mode, this is not a problem anymore.

(cherry picked from commit 5eb8253fc0)
2023-09-20 22:44:04 +02:00
Rémi Verschelde 21adf29b8e SCons: Enable `/WX` on LINKFLAGS for MSVC with `werror=yes`
(cherry picked from commit 30bdb23f03)
2023-09-20 22:44:04 +02:00
Rémi Verschelde cdce948473 Fix GCC -Wmaybe-uninitialized warnings
(cherry picked from commit efdff9cbc2)
2023-09-20 22:44:04 +02:00
Rémi Verschelde 32b7664371 SCons: Disable misbehaving MSVC incremental linking
Fixes #77968.

(cherry picked from commit bc1aef88ee)
2023-09-20 22:44:04 +02:00
bruvzg ee009d26da Fix API validation script on macOS.
(cherry picked from commit 231c07d1af)
2023-09-20 22:44:04 +02:00
Rémi Verschelde 3076f2f9c9 CI: Make extension API compatibility check mandatory
This means that any PR which breaks the extension API should
handle it properly, that is:

- Add compatibility methods to ensure that existing function hashes work
- Document the changes in the relevant misc/extension_api_validation/ file

(cherry picked from commit a890457693)
2023-09-20 22:44:04 +02:00
kobewi ef1d0cda30 Automatically add path to built-in scripts
(cherry picked from commit ed6ad376c6)
2023-09-20 22:44:04 +02:00
William Edwards 9332a2b387 Fix dumping of signal API parameters
(cherry picked from commit 188132884d)
2023-09-20 22:44:04 +02:00
Dario f6f2b0897a Propagate error correctly when max texture size for lightmaps is too small.
Add error handling for BAKE_ERROR_LIGHTMAP_TOO_SMALL, which was previously ignored. Fixes #81453.

(cherry picked from commit 7dfb854556)
2023-09-20 22:44:04 +02:00
jsjtxietian f2b6eda210 Fix a crash when enable a plugin uses `make_mesh_previews`
The bug happens when plugin tree is propagating mouse events
(so it is blocked), but EditorProgress's dtor will make main editor
focused and call update_plugins immediately
 which will update the blocked tree.

(cherry picked from commit 7e3a762369)
2023-09-20 22:44:04 +02:00
Danil Alexeev 6d5127d34b Core: Fix recursion level check for `VariantWriter::write()` with objects
(cherry picked from commit 5d689ad560)
2023-09-20 22:44:04 +02:00
bitsawer 3c5f715053 Fix Vulkan crash with many Omni/SpotLights, Decals or ReflectionProbes
(cherry picked from commit d6f45e4f14)
2023-09-20 22:44:04 +02:00
A Thousand Ships 4e539028fb Fix memory access error for `MultiMesh` with GLES3
Buffer was incorrectly assigned when invalid data was provided

(cherry picked from commit 6cb28e481f)
2023-09-20 22:44:04 +02:00
HolonProduction 96b8861c9d Fix crash when hiding subwindow during popup of new subwindow
(cherry picked from commit e2cea458a3)
2023-09-20 22:44:04 +02:00
clayjohn 2c9901af36 Remove GPU readback from NoiseTexture3D.get_format
(cherry picked from commit 60d5571d6c)
2023-09-20 22:44:04 +02:00
Lyuma 6fa4270d71 Use image index instead of texture index for source_images
(cherry picked from commit f67b6c158c)
2023-09-20 22:44:04 +02:00
Ninni Pipping f54cbe6b76 Prevent crash when accessing `Node` Multiplayer from thread
(cherry picked from commit 7bd3a3a5e5)
2023-09-20 22:44:03 +02:00
Hrvoje Varga 8f32e968b8 Fix scene tab close
(cherry picked from commit 51923fc528)
2023-09-20 22:44:03 +02:00
Rindbee 5f46bca824 Fix history mismatch
Set the properties of the resource's proxy instead of setting the resource's
properties directly. (For action "Set ...")

Update the path of the edited scene when saving the scene. (For action "Add
atlas source")

(cherry picked from commit 28db5e7649)
2023-09-20 22:44:03 +02:00
Fabian Keller 76f61b3960 bugfix for audio stream generators getting killed accidentally by audio server
(cherry picked from commit 4eac548202)
2023-09-20 22:44:03 +02:00
Ryan Hitchman e7978fe277 Fix Curve3D baking up vectors for nontrivial curves.
The code was modified in 42aa539 to have a different basis vector, but
this line was missed and caused up vectors to invert sometimes.

Fixes #81879

(cherry picked from commit 734b9d2379)
2023-09-20 22:44:03 +02:00
kleonc bf15d20e56 Enable transparent background for GUI tooltips
(cherry picked from commit c66dfd2cfe)
2023-09-20 22:44:03 +02:00
bitsawer 3920b2db05 Fix empty shader resource loading
(cherry picked from commit 15eec2450a)
2023-09-20 22:44:03 +02:00
bitsawer a606b03fd7 Fix Shader and ShaderInclude resource loading
(cherry picked from commit 26e3443eef)
2023-09-20 22:44:03 +02:00
Danil Alexeev c57d6c9371 Core: Fix recursion level check for array stringification
(cherry picked from commit bb40bd9aaa)
2023-09-20 22:44:03 +02:00
Markus Sauermann dbae37cc50 Fix global transform validity for `Node2D` and `Control`
Set global transform to invalid when changing transform

(cherry picked from commit 152572ac38)
2023-09-20 22:44:03 +02:00
A Thousand Ships d5c246bbd3 Ensure OpenXR classes are declared properly
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
(cherry picked from commit c23bd8b143)
2023-09-20 22:44:03 +02:00
Danil Alexeev 18f69e9ee1 GUI: Fix text overlapping icon in `Tree`
(cherry picked from commit 07d23489f4)
2023-09-20 22:13:23 +02:00
Danil Alexeev 75db138533 GUI: Fix `Tree` performance regression by using cache
(cherry picked from commit 5fb975e4a5)
2023-09-20 18:40:36 +02:00
Fabio Alessandrelli 5eabd5e04a [Web] Always return -1 as body length in HTTPClientWeb.
Body length cannot be reliably retrieved from the web.
Reading the "content-length" value will return a meaningless value when
the response is compressed, as reading will return uncompressed chunks
in any case, resulting in a mismatch between the detected body size and
the actual size returned by repeatedly calling read_response_body_chunk.

Additionally, while "content-length" is considered a safe CORS header,
"content-encoding" is not, so using the "content-encoding" to decide if
"content-length" is meaningful is not an option either.

We simply must accept the fact that browsers are awful when it comes to
networking APIs.

(cherry picked from commit f4713d235a)
2023-09-20 18:40:36 +02:00
Rémi Verschelde f2c8eea60e
i18n: Sync translations with Weblate 2023-09-08 12:10:22 +02:00
Rémi Verschelde f2644f0cb0
Merge pull request #81245 from AThousandShips/future_proof_4_1
[4.1] Future proof links in docs
2023-09-06 18:44:33 +02:00
A Thousand Ships 8e9852fa43 Future proof links in docs 2023-09-02 10:51:58 +02:00
Rémi Verschelde a43c625d4e
Merge pull request #81202 from YuriSizov/4.1-cherrypicks
Cherry-picks for the 4.1 branch (future 4.1.2) - 1st batch
2023-09-01 16:28:30 +02:00
Malcolm Nixon d7f7c92f61 Unbind the framebuffer when updating meshes.
While the vertex shaders used to update the meshes aren't actually rendering to the framebuffer, they may still refuse to run with some framebuffers bound - such as XR with multiple views.

(cherry picked from commit 679f5bf410)
2023-08-31 20:19:31 +02:00
LRFLEW e47abd790a GLES3: Don't call glTexParameter* for invalid filter and repeat modes
(cherry picked from commit 3e9173f11a)
2023-08-31 20:19:31 +02:00