-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Batch of fixes for WorkerThreadPool
and ResourceLoader
#94169
Conversation
ae09596
to
c20ff6a
Compare
d96ac8b
to
60d790c
Compare
Given the complexity of this PR, I think we should probably aim to merge it for 4.4 and then cherry pick to 4.3.1 |
60d790c
to
f423aa8
Compare
e76a5fb
to
1881518
Compare
Would be good to fix the CI errors, it seems to have warnings on all compilers. |
1881518
to
0e70341
Compare
I'm trying. I love the boilerplate and weird syntax involved in C++ templates. 😅 |
2a2adaa
to
1373159
Compare
I've given up on the warning about certain template thing. It's a Clang-only thing and, in any case, if a template instantiation is really missing, linking will fail later anyway. So, I've added |
ffcab7c
to
e35b6ca
Compare
So this is a lot of changes to core days before RC 1, which I'm worried about. These areas are prone to regressions and we don't have time for a lot of back and forth with multiple RCs to fix them (and stress to solve regressions in between each RC build). How confident are you in those changes? Is there a subset of those we can merge for 4.3, especially to fix the regression(s) from previous PRs, and some that can be kept for 4.4 / 4.3.1 after the 4.3-stable release? |
fd1d2d9
to
9ce7992
Compare
Benefits: - Simpler code. The main load function is renamed so it's apparent that it's not just a thread entry point anymore. - Cache and thread modes of the original task are honored. A beautiful consequence of this is that, unlike formerly, re-issued loads can use the resource cache, which makes this mechanism much more performant. - The newly added getter for caller task id in WorkerThreadPool allows to remove the custom tracking of that in ResourceLoader. - The check to replace a cached resource and the replacement itself happen atomically. That fixes deadlock prevention leading to multiple resource instances of the same one on disk. As a side effect, it also makes the regular check for replace load mode more robust.
1. Make handling of user tokens atomic: Loads started with the external-facing API used to perform a two-step setup of the user token. Between both, the mutex was unlocked without its reference count having been increased. A non-user-initiated load could therefore destroy the load task when it unreferenced the token. Those stages now happen atomically so in the one hand, the described race condition can't happen so the load task life insurance doesn't have a gap anymore and, on the other hand, the ugliness that the call to load could return `ERR_BUSY` if happening while other thread was between both steps is gone. The code has been refactored so the user token concerns are still outside the inner load start function, which is agnostic to that for a cleaner implementation. 2. Clear ambiguity between load operations running on `WorkerThreadPool`: The two cases are: single-loaded thread directly started by a user pool task and a load started by the system as part of a multi-threaded load. Since ensuring all the code dealing with this distinction would make it very complex, and error-prone, a different measure is applied instead: just take one of the cases out of the dicotomy. We now ensure every load happening on a pool thread has been initiated by the system. The way of achieving that is that a single-threaded user-started load initiated from a pool thread, is run as another task.
This fixes a rare but possible deadlock, maybe due to undefined behavior. The new implementation is safer, at the cost of some added boilerplate.
9ce7992
to
f4d7685
Compare
Conflicts solved. |
Thanks! |
Godot doesn't compile on my system as of this PR (macOS 14.6.1, Clang 15). The merge commit before 04f6321 compiles, but the merge commit of this PR 0ba0be2 fails to compile with this error:
|
commit e5ab7722dfe19db56ef2be2484b94509aa5c7950 Author: ywmaa <[email protected]> Date: Tue Aug 27 04:48:02 2024 +0300 Disable forward light clustering with Vertex Lighting commit bc2d778d5dae38534a0bd89e2838c15b1fa34cf4 Author: ywmaa <[email protected]> Date: Fri Aug 23 03:06:43 2024 +0300 scene.glsl: remove duplicate shadow sampler code commit 39599bf6afd61ae7a110a88a7a00be05f4bb51d6 Author: ywmaa <[email protected]> Date: Fri Aug 23 01:39:40 2024 +0300 rename preprocessors commit 11ae13347376bc024f94cef85c8d15be4d909bd3 Author: ywmaa <[email protected]> Date: Sun May 26 23:06:17 2024 +0300 fix directional light issue in GLES3 commit 9429fce076d49db9452cb39181c943be69e18edb Author: ywmaa <[email protected]> Date: Sun May 26 16:14:21 2024 +0300 Reogranization of vertex lighting for GLES3 commit 99553252d2570d61ad1af38d7f830d0fed33573e Author: ywmaa <[email protected]> Date: Sun May 26 13:23:40 2024 +0300 Fragment shadows on vertex lighting in Forward Renderers + Reorganization of vertex lighting in Forward Renderers commit 0dc7387fdf1bc8f089fcc033181efa5d5a448bb8 Author: ywmaa <[email protected]> Date: Sat May 25 00:13:32 2024 +0300 vertex shading use a simpler light model similar to 3.x commit e146685fb83646a232e2dcd473c079367e081363 Author: ywmaa <[email protected]> Date: Wed Jan 10 04:19:49 2024 +0200 Require Restart when setting force_vertex_shading commit 2a809d92341566b1fafd9fb2653a6380e3bf0390 Author: ywmaa <[email protected]> Date: Wed Jan 10 04:07:36 2024 +0200 fixup: replace albedo with vec3 and use alpha variable commit 39bb1d05985081670ffa4c81e903d6904eb92d9f Author: ywmaa <[email protected]> Date: Wed Jan 3 18:20:25 2024 +0200 Remove mobile override for force_vertex_shading commit 640e8b3499c414b45901234259d440fd3e90340a Author: ywmaa <[email protected]> Date: Wed Jan 3 17:57:39 2024 +0200 Add check for force_vertex_shading in the material commit 02e61ec957f10b9df7fa5e98d338781a68cf1188 Author: ywmaa <[email protected]> Date: Wed Jan 3 17:45:36 2024 +0200 Cleanup not needed code commit 09fe2d7ea5ff7e2bb0ba27d43c4cb74d82e17d26 Author: ywmaa <[email protected]> Date: Tue Oct 24 02:51:53 2023 +0300 Fix shadow to opacity not working in vertex lighting commit fe0cf25dd12a68bc41363f127d39c45a612e29fa Author: ywmaa <[email protected]> Date: Tue Oct 24 02:18:07 2023 +0300 Metallic not working in vertex lighting in Vulkan commit 3b63e969211bf11097846f69f61e3a93d56f9931 Author: ywmaa <[email protected]> Date: Tue Oct 24 02:04:25 2023 +0300 Use draw_call.instance_index instead of instance_index in Vulkan Mobile commit a476b169da0245a85ea104804a1646af8acec5e7 Author: ywmaa <[email protected]> Date: Fri Oct 20 05:53:42 2023 +0300 Fix vertex lighting in Forward+ doesn't render when far from camera. commit 0becb0a3f084792ef9c08ceea4ac188ee0860c9b Author: ywmaa <[email protected]> Date: Fri Oct 20 05:37:33 2023 +0300 skip statically baked directional light in vertex lighting commit 8d84d5c2d6d4827f6339f200b3090380f5f643df Author: ywmaa <[email protected]> Date: Thu Oct 19 19:10:10 2023 +0300 Implement vertex shading for Vulkan commit 28bbb3bd4594f7de093df4fa5d21bf76aca1efc0 Author: ywmaa <[email protected]> Date: Thu Oct 19 07:15:42 2023 +0300 Remove shadows from vertex lighting in GLES3 and support multipass lighting in vertex lighting. commit a389a2fc4de194b425a0cb5ba31e3d84829b9980 Author: ywmaa <[email protected]> Date: Sun Oct 15 19:43:46 2023 +0300 implement shadows in vertex_lighting commit de7ce795986561b98cfba247572d70762a2ed51e Author: ywmaa <[email protected]> Date: Sun Oct 15 17:20:31 2023 +0300 Reorganize GLES3 scene lights commit 9da848904428fa89917249364284478cc8e7c0a9 Author: ywmaa <[email protected]> Date: Sun Oct 15 05:17:20 2023 +0300 Enable use of global value force_vertex_lighting commit 8db5b9d30d60cd12cdb6d1fab55ae54c397a24cc Author: ywmaa <[email protected]> Date: Sun Oct 15 03:48:52 2023 +0300 Implement vertex shading for OpenGL commit db76de5de8a415b29be4c7dd84b99bd0fe260822 Merge: 34779211e0 3e86f7b50e Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:29:14 2024 +0200 Merge pull request #95927 from vinni-richburgh/master Document that `Node.duplicate` also duplicates its children. commit 34779211e0ad50dadce4950d8fbc4545ec89a32c Merge: 8c0209fe33 d917d88b5b Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:29:10 2024 +0200 Merge pull request #95891 from KoBeWi/kilometer_long_tree_branch Disable text trimming in SceneTreeEditor commit 8c0209fe33a63f786143b3b69fc607ab3d99264e Merge: 4a798ad85d a014705d64 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:29:06 2024 +0200 Merge pull request #95860 from Goutte/doc-upnp-update-to-latest-gdscript Docs: Update UPnP GDScript snippet to using `Signal.emit` syntax commit 4a798ad85ddc359590a5c1b356c28a451f634c55 Merge: 7ce65f54be 4ce5856384 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:29:00 2024 +0200 Merge pull request #95749 from Mickeon/documentation-example-pruning Remove empty `[b]Example:[/b]` lines from the class reference commit 7ce65f54bef63e5084476e210f72f32acb80952a Merge: c5eacb8698 a387c26770 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:55 2024 +0200 Merge pull request #95504 from mihe/ninja-options Expose more Ninja-related build options commit c5eacb8698471473f2b1ebcb9fe031a6b2ce9c33 Merge: 0125b0eb03 25ae74b625 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:50 2024 +0200 Merge pull request #95381 from tetrapod00/time-rollover-description Document shader time rollover project setting commit 0125b0eb03f4db2527282664ab7a15de12248886 Merge: a041772ecf f202a3d24e Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:46 2024 +0200 Merge pull request #94215 from Chaosus/vs_preview_and_param_list Add a material preview to visual shader editor commit a041772ecf1406586c62fc5b4608fb556acbbb84 Merge: 2e825c7d9c edb3d99942 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:42 2024 +0200 Merge pull request #93940 from Mickeon/deprecate_RichTextLabel_is_ready Add RichTextLabel `is_finished()`, deprecate `is_ready()` commit 2e825c7d9c6ebcccdad2508b3e4526f7726e2bee Merge: 80935234f4 02fc4bbc2a Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:36 2024 +0200 Merge pull request #93141 from RadiantUwU/add_static_classdb_calls Implement `ClassDB::class_call_static_method` commit 80935234f424fe426e1b056be60b9062ff37fc61 Merge: c7702b350a 61998b1a05 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:29 2024 +0200 Merge pull request #93134 from AThousandShips/default_bind_check [Tests] Ensure all default method arguments can be encoded commit c7702b350aaf4c9b9106b02cf1caa0a40847b051 Merge: 056bc6f279 ee19a092d9 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:24 2024 +0200 Merge pull request #92548 from AThousandShips/string_cleaning [Core] Optimize some `String` methods commit 056bc6f27997826ec481dea21aeb8d73cfed29de Merge: ac5a528620 e0f30d30e2 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:19 2024 +0200 Merge pull request #92540 from BlueCube3310/layered-texture-info Improve layered texture preview commit ac5a5286201d05814774b55cb5a34e7116521b76 Merge: 588cf16630 0d1c388991 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:14 2024 +0200 Merge pull request #84944 from KoBeWi/legacy_of_ancient_godots Fix some legacy code commit 588cf166301f60bc60d45d548a9464781d146c86 Merge: 347700cd95 5be4eb9fc6 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:08 2024 +0200 Merge pull request #84840 from kleonc/control-get-transform-simplification Simplify `Control` internal transform calculation commit 347700cd955910e4b3eb8d3c00a1627be461bd11 Merge: b34aa7b44d eef236db63 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:28:04 2024 +0200 Merge pull request #83443 from Chaosus/vs_fix_input_sorting Fix visual shader inputs to follow the alphabet order commit b34aa7b44dfe01432b8c3db970eb5c45fd6578af Merge: 7e8fffa008 d0bcac8197 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 23:27:55 2024 +0200 Merge pull request #76085 from spanzeri/better_remember_editor_window Remember editor window mode, screen, size and position on restart commit 7e8fffa008de371d844dc9f23b9f3e32944fd51d Merge: b5603ed8e2 064f471103 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:46:14 2024 +0200 Merge pull request #96122 from SaracenOne/fix_post_import_regression Prevent empty post-import script paths throwing errors. commit b5603ed8e25d109a007e015111ffb0102926762a Merge: 86139f682e 39ca8b4e23 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:46:10 2024 +0200 Merge pull request #96118 from aaronp64/sort_custom_example Fix `Array.sort_custom` example code commit 86139f682e3711194fc8827a3deb6e0a5f355ff7 Merge: b99222e57d 7050e581ff Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:46:05 2024 +0200 Merge pull request #96117 from SaracenOne/silence_fbx_warning Fix owner warning when importing FBX. commit b99222e57d703f6e7f32fb9a4d50bb7d484ea443 Merge: c589801c23 2453911013 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:46:01 2024 +0200 Merge pull request #96095 from SaracenOne/revert_advanced_importer_scale_fix Revert scaled armature advanced importer preview fix. commit c589801c23228ffe81dd967b6216bef99cc449c7 Merge: 850067d686 039722a341 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:58 2024 +0200 Merge pull request #96093 from m4gr3d/fix_skeleton_invalid_bone_pose_update Fix invalid `Skeleton3D` bone pose updates commit 850067d686c26edd1cf69ced2d785b2b4925ad52 Merge: a8516b8c3b 6de70e6b8a Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:54 2024 +0200 Merge pull request #96089 from stuartcarnie/sgc/metal_tidy_up Metal: Minor improvements to shader cache commit a8516b8c3bac4cf6b9d78000cd3cd5de87637921 Merge: 4a947f0811 5b91040ba6 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:50 2024 +0200 Merge pull request #96066 from AThousandShips/is_null_doc [Doc] Clarify `is_null` methods of `Callable` and `Signal` commit 4a947f0811e4e7fd7bf306aca6d102cee6e38b08 Merge: 002847f29c 97cf2c147e Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:45 2024 +0200 Merge pull request #96021 from jwodicka/jwodicka-docfix Fix C# code example for `Object._get_property_list` commit 002847f29cbb0f0c0edc95b69bd187bdffe5dd7d Merge: 350bde0db6 fba7ad8c7b Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:42 2024 +0200 Merge pull request #95958 from bruvzg/no_spec_ttr Remove spaces and punctuation from the beginning of translatable strings. commit 350bde0db6a9095ea60c3bd1f55d15bc3bb1db57 Merge: dd4ba9cce5 ba23b22153 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:37 2024 +0200 Merge pull request #95954 from rakkarage/shader-material-reset Enable revert button for `ShaderMaterial::next_pass` and `ShaderMaterial::render_priority`. commit dd4ba9cce56556facd6013ee88dc232d407edcc9 Merge: 40c17d6380 08dcbce6b5 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:33 2024 +0200 Merge pull request #95886 from jadoc/mouse-motion-caveat Add movement caveats to InputEventMouseMotion docs commit 40c17d63801e8012dcb418b91b8ee73097e63044 Merge: 4d353063f5 125ff3213a Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:28 2024 +0200 Merge pull request #95846 from jadoc/fix-tooltips Only reset the tooltip timer when the mouse has actually moved commit 4d353063f5b60a08235aa498531db4ee30f769ea Merge: 8019cdb444 eccd1452fa Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:23 2024 +0200 Merge pull request #95475 from TheSofox/sprite-sheet-guess-feature Enable `SpriteFramesEditor` to "guess" the amount of rows and columns of a sprite sheet when loading it for the first time commit 8019cdb444a4210a9f40c0c027b213fac42049ee Merge: ce44c91223 604df4fc83 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:17 2024 +0200 Merge pull request #94137 from Craig-Stoneham/master Improve template class conditionals with constexpr (code style) commit ce44c9122312a4bdcb8d7cebac5f112e4ba5fd8d Merge: 0f16336be0 723f5500f4 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:13 2024 +0200 Merge pull request #93739 from AThousandShips/lock_unlock [Core] Allow locking/unlocking of `MutexLock` commit 0f16336be0e5c6a702c0d93d514f95611e4eb4e8 Merge: b78da13e2a 6a9c060883 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:09 2024 +0200 Merge pull request #93526 from m4gr3d/add_apksigner_util [Android Editor] Add support for exporting platform binaries commit b78da13e2a7aa21cb0d3c1996954776287ffc7b1 Merge: 8dad1ba482 1b0c5cbc01 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:45:04 2024 +0200 Merge pull request #93064 from Hilderin/fix-fileSystem-dock-wont-show-any-file-folders Fix FileSystem dock won't show any file folders (v2) commit 8dad1ba482cf214b850e9d59942fb85bc2490e51 Merge: a5e157dd37 12571a1e95 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:44:59 2024 +0200 Merge pull request #92933 from TokageItLab/match-concatenating Match the coding style for concatenating String commit a5e157dd3719b55dc0776b992a67a1ea8083febd Merge: 2c14f3ef95 0f7c4d8375 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:44:52 2024 +0200 Merge pull request #91854 from ImpishOaths/PullReady Don't lose in/out handles when bezier keyframe inserted on top of existing keyframe commit 2c14f3ef95322589650ea94bd25cf931331f1a3f Merge: e63c40e59c ccbdb34a2a Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 22:44:40 2024 +0200 Merge pull request #79378 from HolonProduction/autocompletion-index Improve autocompletion for indices commit 2453911013d9226365f44e81c91db36bebedf1f0 Author: Saracen <[email protected]> Date: Mon Aug 26 01:27:20 2024 +0100 Revert "Fix importer preview for models with scaled armatures" This reverts commit 06709e68657ad6595c8ae8603d17b62ec984539d. commit eccd1452faa0c9389b52ea4435a908d6d542e515 Author: Sofox <[email protected]> Date: Sun Aug 11 16:38:41 2024 +0100 Enable SpriteFramesEditor to guess the amount of rows and columns of a sprite sheet when loading it for the first time commit 6de70e6b8a30c3f8622b3faba4012c1aa5563457 Author: Stuart Carnie <[email protected]> Date: Mon Aug 26 08:29:19 2024 +1000 Metal: Minor improvements to #96052; update logger subsystem name commit 97cf2c147e42ac44092d22538fb6f2748a8b4584 Author: Jason Wodicka <[email protected]> Date: Fri Aug 23 17:52:00 2024 -0700 Fix C# code example for Object._get_property_list There were two small errors in this code example that kept it from working when copied to a new node locally. These are the fixes I used locally to test the example. commit 6a9c060883ab28d66658db22863defb46d8cd1d2 Author: Fredia Huya-Kouadio <[email protected]> Date: Mon Aug 26 11:12:50 2024 -0700 Add support to the Android editor for signing and verifying Android apks - Apk signing and verification is enabled using the apksig library from https://android.googlesource.com/platform/tools/apksig/+/ac5cbb07d87cc342fcf07715857a812305d69888 commit a5897d579bb0af496a18f7430345a67fe27ff0df Author: Fredia Huya-Kouadio <[email protected]> Date: Sun Jun 16 12:14:34 2024 -0700 Update the `GodotHost` interface to support signing and verifying Android apks Update the export logic to enable apk generation and signing for Android editor builds Note: Only legacy builds are supported. Gradle builds are not supported at this point in time. commit 794ea99240607a7afbc1512582083db82d81ff83 Author: Fredia Huya-Kouadio <[email protected]> Date: Thu Mar 7 19:16:25 2024 -0800 Update the storage access handler logic to support accessing / retrieving contents with the `assets:/` prefix commit 064f471103c70b3495a592e40cf6df306fdc8b58 Author: Saracen <[email protected]> Date: Mon Aug 26 16:42:39 2024 +0100 Prevent empty post-import script paths throwing errors. commit 39ca8b4e23c1d27273cfe31e2fa95da137f36739 Author: aaronp64 <[email protected]> Date: Mon Aug 26 10:38:23 2024 -0400 Fix Array.sort_custom example code Array.sort_custom descending sort example was comparing index 0, but had expected result based on comparing index 1. Updated to use index 1 consistently. commit 7050e581ffde05a8bed7cf8b78fbd53ac3d644c7 Author: Saracen <[email protected]> Date: Mon Aug 26 14:51:49 2024 +0100 Fix owner warning when importing FBX. commit e63c40e59c6650bdba02c2ceff3390ee9273ac46 Merge: 4a4c86cc0a e8b4568900 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 14:57:48 2024 +0200 Merge pull request #96113 from BlueCube3310/compat-array-fix Compatibility: Fix crash when initializing certain compressed layered textures commit 4a4c86cc0a0c4c7ce12a0d801a147cd9fb69f16d Merge: 5d1b07e464 bce67b7473 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 14:57:44 2024 +0200 Merge pull request #96110 from programneer/delet-this Remove the 2D renderer notice from `ProjectSettings` documentation commit 5d1b07e464c91911896039bed1336d7cf3a6e03e Merge: e53dc80f2f 9cbc3f1419 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 14:57:41 2024 +0200 Merge pull request #96108 from RandomShaper/fix_warn_in_all Properly mute `-Wundefined-var-template` Clang warning in SafeBinaryMutex commit ccbdb34a2aa6347e99bac0b2da796403e5186bcc Author: HolonProduction <[email protected]> Date: Wed Jul 12 15:59:25 2023 +0200 Improve autocompletion for indices commit e8b4568900c42544b79b3b17bfb80cd3f663021d Author: BlueCube3310 <[email protected]> Date: Mon Aug 26 13:24:00 2024 +0200 Compatibility: Fix crash when initializing certain compressed layered textures commit 9cbc3f14198c30c14315cabf72b0e3e3438b2f61 Author: Pedro J. Estébanez <[email protected]> Date: Mon Aug 26 12:33:19 2024 +0200 Change warning muting so it affects all levels, but locally commit bce67b7473f76ed87205b14d478b570f375db848 Author: Programneer <[email protected]> Date: Mon Aug 26 12:46:32 2024 +0200 Remove the 2D renderer notice from ProjectSettings documentation commit 723f5500f4c57546f96258fb5c5f5d98959693d4 Author: A Thousand Ships <[email protected]> Date: Sat Jun 29 13:01:01 2024 +0200 [Core] Allow locking/unlocking of `MutexLock` commit e53dc80f2f9e0f5dd03103fe968662f7ffd258ba Merge: abce2babe1 a2043f124d Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 10:51:35 2024 +0200 Merge pull request #95777 from Calinou/command-line-improve-rendering-driver-method-error-messages Improve error messages for invalid rendering drivers/methods on the command line commit abce2babe1899f2d1781cac63f87d8f6fae0e402 Merge: 0ba0be27c7 08ef14a037 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 10:51:31 2024 +0200 Merge pull request #94429 from mihe/animation-res-ref Fix animation library copy-paste not preserving resource reference commit 0ba0be27c71c0fe91e28555ecffe30326af644c1 Merge: 04f6321ecc f4d76853b9 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 10:51:25 2024 +0200 Merge pull request #94169 from RandomShaper/wtp_rl_prize Batch of fixes for `WorkerThreadPool` and `ResourceLoader` commit 04f6321ecc2d24d08cb3368d87f483c6cc308105 Merge: b4f268fae8 4dd6e8eca5 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 10:51:21 2024 +0200 Merge pull request #91166 from raulsntos/gdextension/loader GDExtension: Implement `GDExtensionLoader` concept commit b4f268fae891be7afb6ab04eb9405d48e3c20782 Merge: e63e8453da 3d575801ce Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 10:51:17 2024 +0200 Merge pull request #91018 from Daylily-Zeleen/daylily-zeleen/optionally_postinitialization_for_extension_owner Allow ClassDB to create a Object without postinitialization for GDExtension. commit e63e8453da2ef7d90f693244d8a3041466dc2c63 Merge: 28a72fa434 5d7f87603d Author: Rémi Verschelde <[email protected]> Date: Mon Aug 26 10:51:07 2024 +0200 Merge pull request #84063 from jsjtxietian/add-shortcuts-for-text-shader-editor Add several shortcuts for text shader editor commit 5d7f87603dab1cae3355bc1d1b4421d543d001a0 Author: jsjtxietian <[email protected]> Date: Tue Nov 28 17:38:12 2023 +0800 Add several shortcuts for text shader editor commit 039722a3418dfd8f16cd3e956527ef93e639ddba Author: Fredia Huya-Kouadio <[email protected]> Date: Sun Aug 25 17:04:46 2024 -0700 Fix invalid `Skeleton3D` bone pose updates The issue would cause log spams when trying to update the bone pose position or rotation with an invalid bone index. commit 28a72fa4344befeae251d8e9b11b84acd601a244 Merge: 4cb6e9994a f8a6c0e8ab Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 22:51:38 2024 +0200 Merge pull request #95934 from bruvzg/win_ang_fb Enable fallback from ANGLE to native and improve ANGLE error messages. commit 4cb6e9994a34e3c489bd635dcf5601511c8accd7 Merge: ac4410ce34 703c31fb40 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 22:24:31 2024 +0200 Merge pull request #96080 from DeeJayLSP/qoa-break WAV: Add missing break on `get_length()` commit ac4410ce347a93616eeea4d2db1fef22b50f03e4 Merge: 5f7060c18a 7e580150f9 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 22:24:28 2024 +0200 Merge pull request #96079 from adamscott/relative-import-script-path Add import tab `import_script/path` relative path support commit 5f7060c18aad925618970fd02ebae44f2dff0bba Merge: fe15f47e22 2ef1ef63a5 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 22:24:24 2024 +0200 Merge pull request #96052 from stuartcarnie/sgc/metal_shader_compilation Metal: Improve startup times by using concurrent shader compilation APIs commit fe15f47e227ba048903be40f6300a4841446411d Merge: 1d3bdfcd06 1925d1e6f9 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 22:24:21 2024 +0200 Merge pull request #95929 from BastiaanOlij/openxr_fix_tracking_bit OpenXR: Check correct status bit for hand tracking commit 1d3bdfcd06555308cce7dd98e1cbd78767f72e9d Merge: f0d297d059 aaafd163b2 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 22:24:17 2024 +0200 Merge pull request #95862 from adamscott/fix-pitch-scale-before-play Honor `pitch_scale` value before playing audio sample commit f0d297d0590eafbb6d499f37c24623808c098a19 Merge: 5beb4ee691 cd2a9230e9 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 22:24:14 2024 +0200 Merge pull request #95594 from aaronfranke/extension-api-validation Update expected API validation files for the releases of Godot 4.2 & 4.3 commit 5beb4ee691312bcaed80315b3ede6faef813af8a Merge: 8bb5db6ebd 3fae26277a Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 22:24:10 2024 +0200 Merge pull request #92684 from smix8/mesh_conv_dialog Add confirm dialog for render mesh to navigation mesh conversion commit 8bb5db6ebd8232bf915f4fa53135ea143d4a26a2 Merge: bc2d0e9f39 a07f92a81c Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 22:24:05 2024 +0200 Merge pull request #96085 from bruvzg/mingw_rpcndr_ver [Windows] Move `__REQUIRED_RPCNDR_H_VERSION__` to the header. commit a07f92a81cb90dab9c0b89f1bd52f5845f559d22 Author: bruvzg <[email protected]> Date: Sun Aug 25 22:52:01 2024 +0300 [Windows] Move __REQUIRED_RPCNDR_H_VERSION__ to the header. commit f8a6c0e8ab7d391fbfd796c65cfff26190654621 Author: bruvzg <[email protected]> Date: Thu Aug 22 09:46:01 2024 +0300 Enable fallback from ANGLE to native and improve ANGLE error messages. commit bc2d0e9f39c26a3d1e2eeee9f81c87d3b35c9116 Merge: bb437722ea 06709e6865 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:46 2024 +0200 Merge pull request #96067 from SaracenOne/advanced_importer_scale_fix Fix importer preview for models with scaled armatures. commit bb437722eab69d76ac9762668d8ec66025652cdd Merge: 3495e82644 b516742358 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:42 2024 +0200 Merge pull request #96033 from Tallivm/patch-1 Fix typo in `Array` code example commit 3495e82644d7f569e5b55128e5d711e5a9d5a569 Merge: e35a45e166 6ce71f0fb0 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:39 2024 +0200 Merge pull request #96010 from jwinarske/jw/wayland_fix Wayland: Use `wayland-egl-core.h` instead of `wayland-egl.h` commit e35a45e166e2e1b7a0de0611c368b1f2f921ed47 Merge: 887d56721d 6f7c52d17f Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:32 2024 +0200 Merge pull request #95962 from dsnopek/validate-extension-api-disable-warnings Temporarily disable "validation errors no longer occur" warnings commit 887d56721d69a09429ec25cf9e959b267476e483 Merge: 844ac90bad 11dd1f52ae Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:28 2024 +0200 Merge pull request #95959 from dsnopek/openxr-api-hand-tracker-crash Fix crash when calling `OpenXRAPI::get_hand_tracker()` and hand-tracking is disabled commit 844ac90bad18ea2add501b76cb390e1014e109d0 Merge: 473e7e0df3 1928a84f6e Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:25 2024 +0200 Merge pull request #95956 from ItzCog/master Fix some C# variable types In `AStar2D/3D` Class Reference commit 473e7e0df3923f82f388347248fc2406080846e3 Merge: 68d188d521 155033384c Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:21 2024 +0200 Merge pull request #95947 from passivestar/timelineedit-namelimit Fix animation timeline resize widget allowing invalid internal values commit 68d188d5211b7cb37182f6bb7803828b0b37e027 Merge: c9e5008966 f4ccba7508 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:18 2024 +0200 Merge pull request #95888 from clayjohn/Lightmap-SH-coefficients Use correct lightmap coefficients to ensure that the directional lightmap mode looks correct commit c9e5008966d5f54fa8131409f81f004fa313e1da Merge: cbe1d6f7af 5279fec60f Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:14 2024 +0200 Merge pull request #95857 from KoBeWi/novel_variant_of_0 Always store ID of PopupMenu items commit cbe1d6f7af63701068d653ad357cf7af10fbdc53 Merge: dc6d6551e4 dc6f90acd8 Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:10 2024 +0200 Merge pull request #95274 from Chaosus/shader_forbind_const_func_decl Forbid function declaration with a const qualifier in shaders commit dc6d6551e4c3a3df9f870e486cf2c826ad8b3c41 Merge: e3550cb20f 59d0422dcd Author: Rémi Verschelde <[email protected]> Date: Sun Aug 25 20:18:03 2024 +0200 Merge pull request #96044 from darksylinc/matias-TheForge-hotfix2 Disable extra memory tracking by default commit 703c31fb4017251ea4dd57faf99baeaa67fd3440 Author: DeeJayLSP <[email protected]> Date: Sun Aug 25 14:18:26 2024 -0300 WAV: Add missing break on `get_length()` commit 604df4fc83dce859e42fe511acb527523b4f18e9 Author: Craig-Stoneham <[email protected]> Date: Tue Jul 9 17:02:21 2024 +0100 Improve Template Class Conditionals (Code Style) Refactored the following template classes by replacing runtime checks with compile-time checks using if constexpr for improved code clarity and maintainability: - RID_Alloc - SortArray - PagedAllocator Changes made: - Updated conditional checks for THREAD_SAFE in the RID_Alloc class. - Updated conditional checks for Validate in the SortArray class. - Updated conditional checks for thread_safe in the PagedAllocator class. commit 7e580150f97e14d5cb3a7a34a7bff46d1be6b48d Author: Adam Scott <[email protected]> Date: Sun Aug 25 12:48:32 2024 -0400 Add import tab "import_script/path" relative path support commit 5b91040ba6d1f571218acd387b1b3513b98b02d1 Author: A Thousand Ships <[email protected]> Date: Sun Aug 25 12:33:20 2024 +0200 [Doc] Clarify `is_null` methods of `Callable` and `Signal` commit 06709e68657ad6595c8ae8603d17b62ec984539d Author: Saracen <[email protected]> Date: Sun Aug 25 04:47:05 2024 +0100 Fix importer preview for models with scaled armatures. commit 59d0422dcd59686689d915000a800ed6c7753f00 Author: Matias N. Goldberg <[email protected]> Date: Sat Aug 24 17:39:46 2024 -0300 Disable extra memory tracking by default PR #90993 added several debugging utilities. Among them, advanced memory tracking through the use of custom allocators and VK_EXT_device_memory_report. However as issue #95967 reveals, it is dangerous to leave it on by default because drivers (or even the Vulkan loader) can too easily accidentally break custom allocators by allocating memory through std malloc but then request us to deallocate it (or viceversa). This PR fixes the following problems: - Adds --extra-gpu-memory-tracking cmd line argument - Adds missing enum entries to RenderingContextDriverVulkan::VkTrackedObjectType - Adds RenderingDevice::get_driver_and_device_memory_report - GDScript users can easily check via print( RenderingServer.get_rendering_device().get_driver_and_device_memory_report() ) - Uses get_driver_and_device_memory_report on device lost for appending further info. Fixes #95967 commit 2ef1ef63a5404d47c8c01e874f316d1a8cde26c8 Author: Stuart Carnie <[email protected]> Date: Sun Aug 25 08:04:02 2024 +1000 Metal: Improve startup times by using concurrent shader compilation APIs commit b516742358ba6171543399eecfc0af13e8f842d8 Author: Tallivm <[email protected]> Date: Sat Aug 24 16:49:48 2024 +0300 Fix typo in Array code example commit e3550cb20f5d6a61befaafb7d9cbdb57b24870e4 Merge: a1acd38c35 38ae58bda2 Author: Rémi Verschelde <[email protected]> Date: Sat Aug 24 01:01:37 2024 +0200 Merge pull request #95975 from darksylinc/matias-TheForge-hotfix Fix build error in arm32 commit 6ce71f0fb0a091cffb6adb4af8ab3f716ad8930b Author: Joel Winarske <[email protected]> Date: Fri Aug 23 14:16:37 2024 -0700 Use wayland-egl-core.h instead of wayland-egl.h -avoid use of transitive wayland include -resolves https://github.com/godotengine/godot/issues/95830 Signed-off-by: Joel Winarske <[email protected]> commit 38ae58bda27998b9e1cacdbcb09b4152cbc26768 Author: Matias N. Goldberg <[email protected]> Date: Thu Aug 22 23:31:25 2024 -0300 Fix build error in arm32 Fixes #95973 commit 08dcbce6b5c1854314d1d0df4f9e4b5009d1fbba Author: Alex Docauer <[email protected]> Date: Tue Aug 20 23:47:39 2024 -0700 Add movement caveats to InputEventMouseMotion docs InputEventMouseMotion may fire when the mouse hasn't moved. Also, it generally won't fire when the mouse stops moving. This makes reliably detecting when the mouse isn't moving tricky. Update the docs for InputEventMouseMotion to capture these caveats and give guidance for the best way to detect lack of mouse movement. commit a1acd38c35781181cde726b039eb8a9a0b6aa79f Merge: 568589c9d8 bbc7962fe2 Author: Rémi Verschelde <[email protected]> Date: Fri Aug 23 08:45:13 2024 +0200 Merge pull request #95945 from stuartcarnie/sgc/metal_mobile_fix Metal: Fix artefacts for mobile render method and disable multi-view commit 125ff3213ac282a801aaeeb7fc07ec55802866a5 Author: Alex Docauer <[email protected]> Date: Mon Aug 19 19:31:24 2024 -0700 Only reset tooltip timer when mouse actually moved InputEventMouseMotion isn't guaranteed to fire only on actual mouse movement. It's not uncommon for the underlying OS motion event to be sent either by the OS itself or another application even though the mouse hasn't moved. Godot will generate such zero-motion InputEventMouseMotion events itself for things like cursor shape changes. Once started, the tooltip timer is reset only after a mouse movement of at least 5 pixels in one frame. commit 02fc4bbc2af42413b7d42e7ab1b44be70c02368a Author: Radiant <[email protected]> Date: Fri Aug 23 02:56:29 2024 +0300 Implement `ClassDB::class_call_static_method` commit 6f7c52d17f69d61756f6b9e4441b9797b4912c8c Author: David Snopek <[email protected]> Date: Thu Aug 22 17:02:08 2024 -0500 Temporarily disable "validation errors no longer occur" warnings commit ba23b22153c21fa0f3b253900009ac7221e5a7a8 Author: Rakka Rage <[email protected]> Date: Thu Aug 22 01:29:23 2024 -0400 Enable revert button for `ShaderMaterial::next_pass` and `ShaderMaterial::render_priority`. commit 1928a84f6e7980e09ea5c3668aecc28ead55beb2 Author: Dungeon Master <[email protected]> Date: Fri Aug 23 00:11:40 2024 +0800 Fix some C# variable types In `AStar2D/3D` Class Reference commit 11dd1f52aeb10e3fb8f236e2e5e050c280764fb9 Author: David Snopek <[email protected]> Date: Thu Aug 22 13:03:05 2024 -0500 Fix crash when calling OpenXRAPI::get_hand_tracker() and hand-tracking is disabled commit fba7ad8c7bb6a51aa92261c34c17e57919cc35ed Author: bruvzg <[email protected]> Date: Thu Aug 22 20:47:26 2024 +0300 Remove spaces and punctuation from the beginning of translatable strings. commit 3e86f7b50e55b56597a7aa45e8ffc41e11c7bf1d Author: Vinni Richburgh <[email protected]> Date: Thu Aug 22 16:10:08 2024 +0200 In Node.xml mentioned that Node::duplicate also copies children. The list now uses the Oxford comma. commit 155033384c0dfcf112d273895452d19af513f2da Author: passivestar <[email protected]> Date: Thu Aug 22 16:32:38 2024 +0400 Fix animation timeline resize widget allowing impossible internal values commit bbc7962fe21fb4632b7ec0d49091f5263c3e3d60 Author: Stuart Carnie <[email protected]> Date: Thu Aug 22 21:34:53 2024 +1000 Metal: fix artefacts for mobile render method and return false for multi-view support commit 4dd6e8eca500f18344a57daa74ce3459931531fe Author: Raul Santos <[email protected]> Date: Wed Apr 24 01:32:25 2024 +0200 GDExtension: Implement `GDExtensionLoader` concept - Implements the concept of GDExtension loaders that can be used to customize how GDExtensions are loaded and initialized. - Moves the parsing of `.gdextension` config files to the new `GDExtensionLibraryLoader`. - `GDExtensionManager` is now meant to be the main way to load/unload extensions and can optionally take a `GDExtensionLoader`. - `EditorFileSystem` avoids unloading extensions if the file still exists, this should prevent unloading extensions that are outside the user project. commit 1925d1e6f9dbb0c93ec1bf3ab3a711ca39547295 Author: Bastiaan Olij <[email protected]> Date: Thu Aug 22 11:57:56 2024 +1000 OpenXR: Check correct status bit for hand tracking commit a014705d640d1f72eefad5a2e95032bc59647f8b Author: Goutte <[email protected]> Date: Tue Aug 20 13:43:25 2024 +0200 docs: update UPnP gdscript snippet to latest gdscript This commit adds usage of the new (stringless) signal API. commit 568589c9d8c763bfb3a4348174d53b42d7c59f21 Merge: 37ae2a2900 364f916f3f Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:38:22 2024 +0200 Merge pull request #90993 from darksylinc/matias-TheForge Add debug utilities for Vulkan commit 37ae2a290030b3f0df9f609723d9ad2bdb861a4a Merge: 0badddaccb 6e9bcc0f18 Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:56 2024 +0200 Merge pull request #95921 from akien-mga/scons-validate-opt-in-drivers SCons: Better validation for platform-specific opt-in drivers commit 0badddaccb6e3067b62f05ff165720d5342699b9 Merge: 720615a913 4aa145624e Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:53 2024 +0200 Merge pull request #95917 from BlueCube3310/lightmap-align-fix LightmapGI: Fix shader data alignment after #89919 commit 720615a913ba935230e84c61d6ae451d4bdec042 Merge: 2a98d8d78a b314a9105a Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:50 2024 +0200 Merge pull request #95898 from KoBeWi/capital_of_nonexistent_properties Remove references to deleted `capitalize_properties` setting commit 2a98d8d78ad2d8c13901d60619465399f49ad68f Merge: 9396e058f5 5183588499 Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:46 2024 +0200 Merge pull request #95883 from jsjtxietian/curve2d-doc Fix Curve2D incorrect sample range description commit 9396e058f557e0974e474c052de69ec64293b546 Merge: 39b77ea04e 080acd7246 Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:43 2024 +0200 Merge pull request #95874 from tetrapod00/remember-view-grid Remember "View Grid" (per-viewport) setting between editor sessions commit 39b77ea04e5075b15cd704e4d39c156884cbbc38 Merge: 100fbb51ab 7db24a9ad5 Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:39 2024 +0200 Merge pull request #95790 from aaronfranke/rect-aabb-support Simplify Rect2/AABB `get_support` function commit 100fbb51abc7cf8bc373caf0836601cfd9a8c1f1 Merge: 78f47abe2b 0987a9dc06 Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:35 2024 +0200 Merge pull request #95665 from Hilderin/fix-drag-drop-between-window Fix drag&drop between window on Windows commit 78f47abe2b66fb863a803debc28b470d10f8ced2 Merge: 091212b4f1 2ff50119dc Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:31 2024 +0200 Merge pull request #94022 from Riteo/a-fraction-of-the-work Wayland: Switch pointer position handling to doubles commit 091212b4f177b93c4853ebcb0687ca6577703d82 Merge: 3b81db3bf0 7593e55527 Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:26 2024 +0200 Merge pull request #93602 from aaronp64/inspector_latency Improve Editor Inspector/Theme item lookup performance commit 3b81db3bf0918e4978c97a2f848b1b8f76e850cd Merge: d4b6bd5b60 6120786ddc Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:22 2024 +0200 Merge pull request #93577 from passivestar/themable-animation-editor Allow theming animation editor commit d4b6bd5b605e932df3350c453f15f1abf870ecbb Merge: 5ca419e32c 04d0e7f7a4 Author: Rémi Verschelde <[email protected]> Date: Thu Aug 22 00:10:15 2024 +0200 Merge pull request #91172 from clayjohn/detect-rd Disable creating RD projects in project manager if RD is not supported commit 364f916f3f0141c247e32e63624b063905d66b02 Author: Matias N. Goldberg <[email protected]> Date: Sun Jun 30 19:30:54 2024 -0300 Add debug utilities for Vulkan Features: - Debug-only tracking of objects by type. See get_driver_allocs_by_object_type et al. - Debug-only Breadcrumb info for debugging GPU crashes and device lost - Performance report per frame from get_perf_report - Some VMA calls had to be modified in order to insert the necessary memory callbacks Functionality marked as "debug-only" is only available in debug or dev builds. Misc fixes: - Early break optimization in RenderingDevice::uniform_set_create ============================ The work was performed by collaboration of TheForge and Google. I am merely splitting it up into smaller PRs and cleaning it up. commit 6e9bcc0f18becbed199ad48d3dec01621dc39237 Author: Rémi Verschelde <[email protected]> Date: Wed Aug 21 08:58:18 2024 +0200 SCons: Better validation for platform-specific opt-in drivers This replaces cryptic compilation errors with a clear error message and early build termination. commit 4aa145624e27490e65ede99484389b8036ef3c36 Author: BlueCube3310 <[email protected]> Date: Wed Aug 21 21:37:13 2024 +0200 LightmapGI: Fix shader data alignment after #89919 commit f4ccba7508fe6fbbbda92df855ad59a63a205b17 Author: clayjohn <[email protected]> Date: Wed Aug 21 00:30:59 2024 -0700 Use correct lightmap coefficients to ensure that the directional lightmap mode looks correct Also remove the metallic option from directional lightmap as it is guaranteed to return negative numbers in many cases commit b314a9105a2eb352d987c5df007be27f9c676aa8 Author: kobewi <[email protected]> Date: Wed Aug 21 12:31:43 2024 +0200 Remove references to deleted capitalize_properties setting commit 6120786ddc349acfd6eed0d4083774c29845baf7 Author: passivestar <[email protected]> Date: Tue Jun 25 02:38:46 2024 +0400 Allow theming animation editor commit f4d76853b9d921e3645295f9bebc39eb73661e67 Author: Pedro J. Estébanez <[email protected]> Date: Thu Jul 18 14:54:58 2024 +0200 WorkerThreadPool (plus friends): Overhaul unlock allowance zones This fixes a rare but possible deadlock, maybe due to undefined behavior. The new implementation is safer, at the cost of some added boilerplate. commit df23858488098086da20c67d9fc62f7ffb3d528c Author: Pedro J. Estébanez <[email protected]> Date: Mon Jul 15 10:30:02 2024 +0200 ResourceLoader: Fix edge cases in the management of user tokens 1. Make handling of user tokens atomic: Loads started with the external-facing API used to perform a two-step setup of the user token. Between both, the mutex was unlocked without its reference count having been increased. A non-user-initiated load could therefore destroy the load task when it unreferenced the token. Those stages now happen atomically so in the one hand, the described race condition can't happen so the load task life insurance doesn't have a gap anymore and, on the other hand, the ugliness that the call to load could return `ERR_BUSY` if happening while other thread was between both steps is gone. The code has been refactored so the user token concerns are still outside the inner load start function, which is agnostic to that for a cleaner implementation. 2. Clear ambiguity between load operations running on `WorkerThreadPool`: The two cases are: single-loaded thread directly started by a user pool task and a load started by the system as part of a multi-threaded load. Since ensuring all the code dealing with this distinction would make it very complex, and error-prone, a different measure is applied instead: just take one of the cases out of the dicotomy. We now ensure every load happening on a pool thread has been initiated by the system. The way of achieving that is that a single-threaded user-started load initiated from a pool thread, is run as another task. commit 5c970db2e49af93139d15d3fe090db44b4bd3317 Author: Pedro J. Estébanez <[email protected]> Date: Wed Jul 10 13:51:02 2024 +0200 ResourceLoader: Optimize remap check by deferring until a non-mutex zone commit 28619e26cf35227c3ddab35878e1045f82895657 Author: Pedro J. Estébanez <[email protected]> Date: Wed Jul 10 12:53:14 2024 +0200 ResourceLoader: Enhance deadlock prevention Benefits: - Simpler code. The main load function is renamed so it's apparent that it's not just a thread entry point anymore. - Cache and thread modes of the original task are honored. A beautiful consequence of this is that, unlike formerly, re-issued loads can use the resource cache, which makes this mechanism much more performant. - The newly added getter for caller task id in WorkerThreadPool allows to remove the custom tracking of that in ResourceLoader. - The check to replace a cached resource and the replacement itself happen atomically. That fixes deadlock prevention leading to multiple resource instances of the same one on disk. As a side effect, it also makes the regular check for replace load mode more robust. commit bd0959ebdd8819321f9b24880d05b43eb2aaa4cc Author: Pedro J. Estébanez <[email protected]> Date: Wed Jul 10 12:01:22 2024 +0200 ResourceLoader: Properly push & pop TLS state on recursive load tasks commit 5ca419e32c58e671284b3b7f91257179657d9114 Merge: 3b3d6226c5 2ff6594928 Author: Rémi Verschelde <[email protected]> Date: Wed Aug 21 11:14:22 2024 +0200 Merge pull request #94801 from gamelessone/fix-cond-var Fix use-after-free of `ConditionVariable` in `ResourceLoader` commit d917d88b5b9971492f0e7bad37c830615f1de2e8 Author: kobewi <[email protected]> Date: Wed Aug 21 11:07:47 2024 +0200 Disable text trimming in SceneTreeEditor commit 5183588499692da71d3ec582d69c805c6f91f095 Author: jsjtxietian <[email protected]> Date: Wed Aug 21 12:41:12 2024 +0800 Fix curve2d incorrect sample range description commit 3b3d6226c5cd3f9897160815990e2e234f165605 Merge: 4b8946102b 1521e49c23 Author: Rémi Verschelde <[email protected]> Date: Wed Aug 21 07:23:05 2024 +0200 Merge pull request #95828 from clayjohn/Lightmapper-AA-direct-light Antialias direct light samples in LightmapperRD commit 4b8946102bc05e3d143d6674cfef634103db08b9 Merge: 62de80d613 394ea653aa Author: Rémi Verschelde <[email protected]> Date: Wed Aug 21 06:38:03 2024 +0200 Merge pull request #91535 from BlueCube3310/betsy-bc6h Add Betsy to speed up BC6 compression commit 62de80d6138c09cb2c4c66d0b963820f95ad1f21 Merge: 826de7976a 2d0165574d Author: Clay John <[email protected]> Date: Tue Aug 20 21:21:32 2024 -0700 Merge pull request #88199 from stuartcarnie/metal-rdd Add Metal support for macOS (arm64) and iOS commit 1b0c5cbc01b43b837a658fdd25373a773b3dbdc4 Author: Hilderin <[email protected]> Date: Tue Jun 11 20:11:10 2024 -0400 Fix FileSystem dock won't show any file folders (v2) commit 080acd72461fff6bef7d10975fca76e082c302ac Author: tetrapod00 <[email protected]> Date: Tue Aug 20 15:59:07 2024 -0700 Remember "View Grid" (per-viewport) setting between editor sessions commit eef236db63daebdca00e533f3f622942471fea47 Author: Yuri Rubinsky <[email protected]> Date: Mon Oct 16 16:09:02 2023 +0300 Fix visual shader inputs to follow the alphabet order commit 7593e55527177d0dfb5ad536330b50e272bd93d4 Author: aaronp64 <[email protected]> Date: Mon Jun 24 10:09:20 2024 -0400 Improve Editor Inspector/Theme item lookup performance Changes to reduce the latency between changing node selection in the editor and seeing the new node reflected in the Inspector tab - Use Vector instead of List for ThemeOwner::get_theme_type_dependencies and related functions - Use Vector instead of List for ThemeContext::themes, set_themes(), and get_themes() - Add ClassDB:get_inheritance_chain_nocheck to get all parent/ancestor classes at once, to avoid repeated ClassDB locking overhead - Update BIND_THEME_ITEM macros and ThemeDB::update_class_instance_items to use provided StringNames for call to ThemeItemSetter, instead of creating a new StringName in each call These changes reduce the time taken by EditorInspector::update_tree by around 30-35% commit aaafd163b29180090161c0169c70ab2772dfdcd7 Author: Adam Scott <[email protected]> Date: Tue Aug 20 10:29:32 2024 -0400 Honor `pitch_scale` value before playing audio sample commit 5279fec60fb183029795a1ed621eafa405eea67d Author: kobewi <[email protected]> Date: Tue Aug 20 12:38:33 2024 +0200 Always store ID of PopupMenu items commit 3d575801cef4239b120e8ca974ad478a71517fdf Author: Daylily-Zeleen <[email protected]> Date: Mon Apr 22 22:34:44 2024 +0800 Allow ClassDB to create a Object without postinitialization for GDExtension. commit 2d0165574de6ac21aa2730215dcab60e4ce88d08 Author: Stuart Carnie <[email protected]> Date: Tue Feb 20 05:52:00 2024 +1100 Add Metal support for macOS (arm64) and iOS commit 826de7976a6add282c7b14d4be2a7e6d775821d8 Merge: 49e4ad1460 41875d8aef Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 12:08:55 2024 +0200 Merge pull request #95854 from akien-mga/xcode-warnings macOS/iOS: Fix various warnings when targeting newer SDKs commit 49e4ad1460c115085f49a0eb6ab06f4a7fc7b4a8 Merge: 5ebfc8a6ba da31679d12 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 12:08:49 2024 +0200 Merge pull request #95691 from Hilderin/fix-display-dialog-while-saving-scene Fix display dialog while saving scene commit 41875d8aef8fc2e4f245a0be2697030116d62569 Author: Stuart Carnie <[email protected]> Date: Tue Feb 20 05:52:00 2024 +1100 macOS/iOS: Fix various warnings when targeting newer SDKs commit 5ebfc8a6ba1dec27157f48fc49ede54ea6676720 Merge: d9e458515b 0df7ee31d2 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 11:04:04 2024 +0200 Merge pull request #95643 from Flynsarmy/get_bone_attach_skele Add `BoneAttachment3D::get_skeleton()` method commit d9e458515bd7c65b15d40adb22c6a76bbd722d45 Merge: 8dfb8efaa9 d9ab2c3195 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 11:03:54 2024 +0200 Merge pull request #91750 from BastiaanOlij/openxr_visibility_mask OpenXR: Add support for visibility mask commit 8dfb8efaa9c2461306da408ea7cb087ee6bcb0a9 Merge: 033054f182 97085358ce Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:03:13 2024 +0200 Merge pull request #95849 from bruvzg/sys_theme_check [Editor] Prevent unnecessary editor theme regeneration on unrelated system setting update. commit 033054f182677e64085ed78ce33534d0e0b2e2df Merge: c367e671bb bde165ccb3 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:03:06 2024 +0200 Merge pull request #95838 from olawlor/vertex65536bugfix Fix GLES3 crash with Mesh surface with exactly 65536 vertices commit c367e671bbdbde881f367799780783ffa4e85442 Merge: fbbc527de6 e3ffcb3289 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:59 2024 +0200 Merge pull request #95831 from Chubercik/ufbx-0.14.3 ufbx: Update to 0.14.3 commit fbbc527de662b9c74c96d0da1ce62ab97896fa01 Merge: 73d42411f0 e8254dc3f4 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:53 2024 +0200 Merge pull request #95816 from matheusmdx/fix-autocomplete-icon Fallback to theme icon when no custom icon is set in autocompletion commit 73d42411f07479da605024f78d1c697ca470b55b Merge: 5e400c7bd9 3c0eaec39f Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:47 2024 +0200 Merge pull request #95808 from paulloz/bugfix/dotnet-globalclass-icon-relative-paths Fix relative paths for global class icons in C# commit 5e400c7bd979352e48237f8b491e6bc0c1498788 Merge: f45421204c 807904d951 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:40 2024 +0200 Merge pull request #95800 from mihe/msvc-standards-conformance Enable more standards conformance for MSVC commit f45421204c514623e968557e77524674bea4a3f7 Merge: 0b1bf3cb42 3fe644de86 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:35 2024 +0200 Merge pull request #95764 from passivestar/gdscript-syntax-highlighter Expose GDScript syntax highlighter to editor plugins commit 0b1bf3cb429ac9cc4af1d45e083c439698262c1a Merge: c359a8e9ca bebf2e87f2 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:28 2024 +0200 Merge pull request #95760 from jolexxa/docs/joy-info docs: Highlight lack of joystick info on majority of platforms commit c359a8e9cac1b8d230d5bdca9512fd55fc99ca68 Merge: 26e87f4fbd 4b266871d7 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:23 2024 +0200 Merge pull request #95757 from BlueCube3310/cvtt-float CVTT: Include float formats for hdr compression commit 26e87f4fbdab08a7e5824e3ac2a1c42aba060050 Merge: a55b6a4ac0 3f7efd2291 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:18 2024 +0200 Merge pull request #95687 from aryan-11825114/fix-small-graph-editor-pins Fix small graph editor pins at higher display scales commit a55b6a4ac03b5f2a53bf7ce0a4eb9dfd71727b5a Merge: 65c6897e55 4db3e6e6cd Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:12 2024 +0200 Merge pull request #95518 from mihe/bezier-delete-errors Fix errors about `UndoRedo` history mismatch when deleting bezier track commit 65c6897e553288537a516640775c0fe2fa9f5036 Merge: a700b2a4a2 262671c644 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:07 2024 +0200 Merge pull request #95269 from raulsntos/dotnet/determinant C#: Expose `Transform2D.Determinant()` commit a700b2a4a219bccd4d4326daab35d89d386d0ceb Merge: 7999b4bb8a a8c5117777 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:02:01 2024 +0200 Merge pull request #95153 from BastiaanOlij/improve_hand_tracking_settings Change hand tracking project settings and finetune `show_when_tracked` commit 7999b4bb8ac8009f66a380472d8cd0c58ca1aa5a Merge: 58505b0bce 1052985b00 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:01:57 2024 +0200 Merge pull request #94324 from SomeRanDev/shader_hint_enum GDShader: Add `hint_enum` for `uniform int` commit 58505b0bce4cd9296eceed868cd71b95fa1fb554 Merge: 6a9ecdcf0c 0abd0ae364 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:01:52 2024 +0200 Merge pull request #94082 from HolonProduction/completion-force Autocompletion: Rework argument options string literal completion commit 6a9ecdcf0c5617a152c255cc789c3913ef8226a3 Merge: 8acd82f70e 1728f80e7c Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:01:46 2024 +0200 Merge pull request #91818 from rburing/fti_multimesh Physics interpolation: `MultiMesh` commit 8acd82f70ea1fc06ad400a624aec01d0a080f2a8 Merge: 333f0f910f ef9bb1a207 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:01:41 2024 +0200 Merge pull request #89919 from BlueCube3310/bicubic-lightmap Implement bicubic sampling for lightmaps commit 333f0f910f164851218c5ece26d4c4b4931d4a30 Merge: 554dc002b5 e698351db2 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:01:36 2024 +0200 Merge pull request #86000 from jsjtxietian/add-missing-model_normal_matrix Add `model_normal_matrix` for fragment shader commit 554dc002b505e7c5c2306a58008ec9a31bf2d2e7 Merge: 7f8b4364e8 45e2908d30 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:01:28 2024 +0200 Merge pull request #85108 from theDrake/pick-main-scene-punctuation Adjust `pick_main_scene` dialog punctuation commit 7f8b4364e8438c5979620ca366111974550dcf79 Merge: da5f39889f da5f7c6b40 Author: Rémi Verschelde <[email protected]> Date: Tue Aug 20 10:01:19 2024 +0200 Merge pull request #82093 from jsjtxietian/add-support-for-drag-a-shader-to-material Add support for dragging a shader to user exported material property commit 97085358ce154f34d6ab571c35529a8b0e063513 Author: bruvzg <[email protected]> Date: Tue Aug 20 10:13:46 2024 +0300 [Editor] Prevent unnecessary editor theme regeneration on unrelated system setting update. commit bde165ccb3dc26c8414ae6e4ab659014d9428ad0 Author: Orion Lawlor <[email protected]> Date: Mon Aug 19 18:15:08 2024 -0800 Fix GLES3 crash with Mesh surface with exactly 65536 vertices Fixes #95837. commit 7db24a9ad59aeae3e9f8945c518074f76ef80820 Author: Aaron Franke <[email protected]> Date: Mon Aug 19 00:28:48 2024 -0700 Simplify and fix Rect2/AABB get_support function commit e698351db24df691dc5ea88a6b011c24dad77ebd Author: jsjtxietian <[email protected]> Date: Sun Dec 10 21:32:36 2023 +0800 Add model_normal_matrix for fragment shader commit da5f7c6b4065ab8246d6ba839c01a5267f9445a6 Author: jsjtxietian <[email protected]> Date: Fri Jul 26 11:48:51 2024 +0800 Add support for dragging a shader to user exported material property commit a8c5117777184535234558591a84a3aa86471977 Author: Bastiaan Olij <[email protected]> Date: Mon Aug 5 15:39:27 2024 +1000 Change hand tracking project settings and finetune show_when_tracked commit 1521e49c23aee452666ca7cdcfdeb21b7df4f474 Author: clayjohn <[email protected]> Date: Sun Aug 18 01:10:48 2024 -0700 Antialias direct light samples in LightmapperRD Additionally use Vogel disk to enhance soft shadow quality. commit d9ab2c3195de9bee5e834f38250fdc7b61314d7c Author: Bastiaan Olij <[email protected]> Date: Thu May 9 17:09:22 2024 +1000 OpenXR: Add support for visibility mask commit e3ffcb32891aecb9432bdddb41cf59c05e427d0c Author: Jakub Marcowski <[email protected]> Date: Tue Aug 20 02:30:45 2024 +0200 ufbx: Update to 0.14.3 commit e8254dc3f4a72bae094711a5a07fdad63df85e62 Author: matheusmdx <[email protected]> Date: Mon Aug 19 16:16:06 2024 -0300 Fallback to theme icon when no custom icon is set in autocompletion commit 3c0eaec39f62ba1d86ba12abdf3f95779e608c25 Author: Paul Joannon <[email protected]> Date: Mon Aug 19 18:09:58 2024 +0200 Fix relative paths for global class icons in C# commit 4db3e6e6cd08a0121cdb3b93d5638a667b6665a3 Author: Mikael Hermansson <[email protected]> Date: Wed Aug 14 11:58:27 2024 +0200 Fix errors about `UndoRedo` history mismatch when deleting bezier track commit da5f39889f155658cef7f7ec3cc1abb94e17d815 Merge: ce1ba7328f cb2b4ea092 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:05:30 2024 +0200 Merge pull request #95763 from gongpha/audiostreamplayer-icons-improvement Improve AudioStreamPlayer icons commit ce1ba7328ff877a8f945de1b228ec190ac15f949 Merge: 6bf64027b7 2dc9cf50c5 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:05:26 2024 +0200 Merge pull request #94934 from Hilderin/fix-no-validation-blender-path-on-import Fix no validation on Blender path on import commit 6bf64027b738431de196507b8b184e718b62f5ea Merge: af919a845f e41048e16e Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:05:21 2024 +0200 Merge pull request #94785 from Chaosus/shader_fix_samplers_order Fix texture samplers to not being last in the property list commit af919a845ff60b4853475204c62f2b98be0b34f0 Merge: 93fe5c6598 723878bbab Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:05:16 2024 +0200 Merge pull request #94683 from kisg/string_name_fix StringName: Use inline static field definitions commit 93fe5c659868442ca06f69d1c34fd009b07395ab Merge: 0274508647 45f6110e26 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:05:11 2024 +0200 Merge pull request #94553 from juanjp600/gizmo-bvh Fix gizmos without visible geometry not being selectable commit 0274508647ad4486494c85bc087df146300db67d Merge: b39df869c7 83bd8fa396 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:05:05 2024 +0200 Merge pull request #93498 from smix8/connection_relocation Move NavRegion connections to NavMap commit b39df869c7a7d933791470787715621e9ea65084 Merge: a105553a1d 6455810db8 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:04:59 2024 +0200 Merge pull request #93252 from smix8/csg_bake Add CSG options to bake to static mesh and collision shape commit a105553a1df81d3f13fdfcd170dc4239eaadd75e Merge: da57bab169 8228d647a9 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:04:54 2024 +0200 Merge pull request #92841 from kleonc/menu-bar-proper-canvas-transform-popup-calculation Fix `MenuBar` popup placement assuming it's in viewport default canvas commit da57bab16989e2690e1481331d25952b7c342f16 Merge: 0ab62a128a 110b2dc61a Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:04:49 2024 +0200 Merge pull request #92560 from smix8/navmesh2d_bake_partition Add triangulation partition option to 2D navigation mesh baking commit 0ab62a128a12f35cb1e589b8cd33676a385bcc13 Merge: ea054261e2 46abbae2b0 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:04:44 2024 +0200 Merge pull request #91971 from Delsin-Yu/WrapControls_ContentScaleFactor Fix `Window.wrap_controls` does not account for the `content_scale_factor` commit ea054261e27343ab78700eac94b8afcf0a45357d Merge: db5003519a de558123bf Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:04:40 2024 +0200 Merge pull request #91731 from TokageItLab/b2s Fix Bone2D gizmo scaling commit db5003519a19ed99d5c7bcc059201f8ace82b162 Merge: 80933392f3 2860b99077 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:04:34 2024 +0200 Merge pull request #89554 from smnast/backspace-unfold Fix backspace always unfolding previous line commit 80933392f351447b4461f7209fd13998963f8ef8 Merge: 41b53182c9 6aee6c1fdd Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:04:28 2024 +0200 Merge pull request #87135 from ryevdokimov/do-not-apply-material-on-ui-cancel Clear drag preview material on `NOTIFICATION_DRAG_END` commit 41b53182c9d7d9449b88ece57899b5926d515904 Merge: bb40b3cc7b 61e2aa7914 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:04:21 2024 +0200 Merge pull request #86302 from jordi-star/redraw_svc_on_size_change Redraw SubViewportContainer on SubViewport size change commit bb40b3cc7b31b2dfc74219dd14cd69f00fc4dd1f Merge: a07f20b3e5 bf9fdc5b96 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 16:04:15 2024 +0200 Merge pull request #84831 from EelisOtsamo/editor_3d_click_select_skip_locked Ignore locked nodes when click selecting in 3d editor commit bf9fdc5b96f60bbf24054f3c1b21a89007eaaa6c Author: oeelis <[email protected]> Date: Mon Nov 13 07:53:30 2023 +0200 Ignore locked nodes when click selecting in 3d editor When selecting 3d nodes with a single click, the node closest to the camera is selected. If the closest node was locked, it would block the selection, even when there was unlocked nodes behind the locked node. This PR replaces the `_select_ray` method call used to find the closest node with the similar `_find_items_at_pos` method, which can skip any locked nodes. Fixes #84764 commit 61e2aa79142dfa619d1238172e5c505c7dacc8d0 Author: jordi <[email protected]> Date: Mon Dec 18 09:08:57 2023 -0600 Redraw SubViewportContainer on SubViewport size change commit 46abbae2b02486a7e08fdf2912c0c9294a456054 Author: DE-YU <[email protected]> Date: Wed May 15 15:23:18 2024 +0800 Fix Window.wrap_controls does not account for the content_scale_factor commit 807904d9515e9d2aaf16f6260945a6632689f1b9 Author: Mikael Hermansson <[email protected]> Date: Mon Aug 19 14:25:39 2024 +0200 Enable standards conformance for MSVC commit 3fe644de86b6a9fa96bbbbaa7746c52005848d96 Author: passivestar <[email protected]> Date: Sun Aug 18 22:40:24 2024 +0400 Expose GDScript syntax highlighter to editor plugins commit a07f20b3e5e73c7cefb429716ad826d702cf315a Merge: 745cc6e438 66832e9968 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 14:34:34 2024 +0200 Merge pull request #95794 from bruvzg/win_fd_thread [Windows] Run native file dialogs in thread to make it non-blocking. commit 745cc6e438e742bfd55f9cf3ebcd8849edcd7ebf Merge: 01fdac08d9 e80c44dbe7 Author: Rémi Verschelde <[email protected]> Date: Mon Aug 19 14:34:30 2024 +0200 Merge pull request #95780 from Mickeon/documentation-gdscript-some-invalid-code Fi…
Cherry-pick for 4.3 included in #96606. |
While doing some heavy testing with projects that really stress resource loading, I've found a number of edge cases and regressions that required attention. I've squashed them in as few commits as it made sense and I'm submitting them all in a single PR.
I'll keep testing this with more projects before taking it out ot draft.2024-07-18: After some tweaks and additional testing, verifying a 100% deadlock-free loading experience on my end with complex projects and no apparent regressions, I'm taking this out of draft.2024-07-19: Now this is based on the extracted safe subset in #94526, I'm removing the descriptions of the commits moved there. Keeping the commits themselves to avoid solving conflicts that won't arise once the other PR has been merged.
ResourceLoader
: Properly push & pop TLS state on recursive load tasksResourceLoader
: Enhance deadlock preventionBenefits:
WorkerThreadPool
allows to remove the custom tracking of that inResourceLoader
.a side effect, it also makes the regular check for replace load mode more robust.
ResourceLoader
: Optimize remap check by deferring until a non-mutex zoneResourceLoader
: Fix edge cases in the management of user tokensLoads started with the external-facing API used to perform a two-step setup of the user token. Between both, the mutex was unlocked without its reference count having been increased. A non-user-initiated load could therefore destroy the load task when it unreferenced the token.
Those stages now happen atomically so in the one hand, the described race condition can't happen so the load task life insurance doesn't have a gap anymore and, on the other hand, the ugliness that the call to load could return
ERR_BUSY
if happening while other thread was between both steps is gone.The code has been refactored so the user token concerns are still outside the inner load start function, which is agnostic to that for a cleaner implementation.
WorkerThreadPool
:The two cases are: single-loaded thread directly started by a user pool task and a load started by the system as part of a multi-threaded load.
Since ensuring all the code dealing with this distinction would make it very complex, and error-prone, a different measure is applied instead: just take one of the cases out of the dichotomy. We now ensure every load happening on a pool thread has been initiated by the system.
The way of achieving that is that a single-threaded user-started load initiated from a pool thread, is run as another task.
WorkerThreadPool
(plus friends): Overhaul unlock allowance zonesThis fixes a rare but possible deadlock, maybe due to undefined behavior. The new implementation is safer, at the cost of some added boilerplate.
Fixes #95616.