Rémi Verschelde
28a60b3de0
Merge pull request #78518 from Bromeon/feature/gdextension-since
...
Add GDExtension `@since` attribute
2023-06-21 16:17:07 +02:00
Ryan Roden-Corrent
731a13a1ba
Fix race in ScriptServer.
...
Fixes #76581 .
TSAN flagged this issue on starting the editor:
1. main calls register_core_types, which calls IP::create(), which calls Thread::start on the resolver thread
2. Thread::callback calls ScriptServer::thread_enter(), as "Scripts may need to attach a stack."
3. ScriptServer::thread_enter() accesses ScriptServer::_languages, which is still being initialized on the main thread by initialize_gdscript_module
This fixes the issue by skipping thread enter/exit notifications if languages have not finished initializing yet.
I'm assuming that notifying un-initialized languages of thread starts/stops would have been pointless anyways. If we need to somehow notify languages of threads before the languages initialize, we'll need a different solution.
```
Godot Engine v4.0.2.stable.custom_build.7a0977ce2 - https://godotengine.org
==================
WARNING: ThreadSanitizer: data race (pid=9426)
Write of size 4 at 0x55615b187cd0 by main thread:
#0 ScriptServer::register_language(ScriptLanguage*) /home/rcorre/src/godot/godot/core/object/script_language.cpp:177:28 (godot.linuxbsd.editor.x86_64.llvm.san+0x9e52ab9) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#1 initialize_gdscript_module(ModuleInitializationLevel) /home/rcorre/src/godot/godot/modules/gdscript/register_types.cpp:118:3 (godot.linuxbsd.editor.x86_64.llvm.san+0x36f9c6f) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#2 initialize_modules(ModuleInitializationLevel) /home/rcorre/src/godot/godot/modules/register_module_types.gen.cpp:93:2 (godot.linuxbsd.editor.x86_64.llvm.san+0x2f50499) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#3 Main::setup2(unsigned long) /home/rcorre/src/godot/godot/main/main.cpp:1961:2 (godot.linuxbsd.editor.x86_64.llvm.san+0x2f1d40d) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#4 Main::setup(char const*, int, char**, bool) /home/rcorre/src/godot/godot/main/main.cpp:1879:10 (godot.linuxbsd.editor.x86_64.llvm.san+0x2f16370) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#5 main /home/rcorre/src/godot/godot/platform/linuxbsd/godot_linuxbsd.cpp:61:14 (godot.linuxbsd.editor.x86_64.llvm.san+0x2e67e1f) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
Previous read of size 4 at 0x55615b187cd0 by thread T1:
#0 ScriptServer::thread_enter() /home/rcorre/src/godot/godot/core/object/script_language.cpp:244:22 (godot.linuxbsd.editor.x86_64.llvm.san+0x9e54aed) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#1 Thread::callback(unsigned long, Thread::Settings const&, void (*)(void*), void*) /home/rcorre/src/godot/godot/core/os/thread.cpp:61:2 (godot.linuxbsd.editor.x86_64.llvm.san+0x9464ab0) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#2 void std::__invoke_impl<void, void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>(std::__invoke_other, void (*&&)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long&&, Thread::Settings&&, void (*&&)(void*), void*&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:61:14 (godot.linuxbsd.editor.x86_64.llvm.san+0x9465283) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#3 std::__invoke_result<void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>::type std::__invoke<void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>(void (*&&)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long&&, Thread::Settings&&, void (*&&)(void*), void*&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:96:14 (godot.linuxbsd.editor.x86_64.llvm.san+0x9465283)
#4 void std:🧵 :_Invoker<std::tuple<void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>>::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:258:13 (godot.linuxbsd.editor.x86_64.llvm.san+0x9465283)
#5 std:🧵 :_Invoker<std::tuple<void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>>::operator()() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:265:11 (godot.linuxbsd.editor.x86_64.llvm.san+0x9465283)
#6 std:🧵 :_State_impl<std:🧵 :_Invoker<std::tuple<void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>>>::_M_run() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:210:13 (godot.linuxbsd.editor.x86_64.llvm.san+0x9465283)
#7 execute_native_thread_routine /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:82:18 (libstdc++.so.6+0xd72c2) (BuildId: 6fe66a2d539a78c993bd2d377e00fad389220963)
Location is global 'ScriptServer::_language_count' of size 4 at 0x55615b187cd0 (godot.linuxbsd.editor.x86_64.llvm.san+0xbf46cd0)
Thread T1 (tid=9431, running) created by main thread at:
#0 pthread_create <null> (godot.linuxbsd.editor.x86_64.llvm.san+0x2de5776) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#1 __gthread_create /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663:35 (libstdc++.so.6+0xd73a9) (BuildId: 6fe66a2d539a78c993bd2d377e00fad389220963)
#2 std:🧵 :_M_start_thread(std::unique_ptr<std:🧵 :_State, std::default_delete<std:🧵 :_State>>, void (*)()) /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:147:37 (libstdc++.so.6+0xd73a9)
#3 IP::IP() /home/rcorre/src/godot/godot/core/io/ip.cpp:347:19 (godot.linuxbsd.editor.x86_64.llvm.san+0x962cbcd) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#4 IPUnix::IPUnix() /home/rcorre/src/godot/godot/drivers/unix/ip_unix.cpp:261:9 (godot.linuxbsd.editor.x86_64.llvm.san+0x4aee599) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#5 IPUnix::_create_unix() /home/rcorre/src/godot/godot/drivers/unix/ip_unix.cpp:258:9 (godot.linuxbsd.editor.x86_64.llvm.san+0x4aee599)
#6 IP::create() /home/rcorre/src/godot/godot/core/io/ip.cpp:339:9 (godot.linuxbsd.editor.x86_64.llvm.san+0x962ca5e) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#7 register_core_types() /home/rcorre/src/godot/godot/core/register_core_types.cpp:279:7 (godot.linuxbsd.editor.x86_64.llvm.san+0x93e2333) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#8 Main::setup(char const*, int, char**, bool) /home/rcorre/src/godot/godot/main/main.cpp:690:2 (godot.linuxbsd.editor.x86_64.llvm.san+0x2f08a49) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#9 main /home/rcorre/src/godot/godot/platform/linuxbsd/godot_linuxbsd.cpp:61:14 (godot.linuxbsd.editor.x86_64.llvm.san+0x2e67e1f) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
SUMMARY: ThreadSanitizer: data race /home/rcorre/src/godot/godot/core/object/script_language.cpp:177:28 in ScriptServer::register_language(ScriptLanguage*)
```
Co-authored-by: Pedro J. Estébanez <RandomShaper@users.noreply.github.com>
2023-06-21 09:52:10 -04:00
Rémi Verschelde
a2ce7a8f88
Merge pull request #78494 from kinami-imai/SSDinaTvuI8geW91IGFsbAo=
...
Fix lambda parsing continuing on subsequent lines
2023-06-21 13:52:42 +02:00
今井きなみ
bf04c55175
Fix lambda parsing continuing on subsequent lines #73273
2023-06-21 12:56:57 +02:00
RedworkDE
e0f644a48d
C#: Fix editor integration breaking and causing error spam when reloading assemblies fails
...
- Do not reload scripts from non-collectible assemblies
- Do not load GodotTools as collectible
- Do not attempt to reload the same project assembly forever
2023-06-21 12:47:52 +02:00
Jan Haller
9ddd3c2af6
GDExtension @since
attribute
...
All GDExtension function pointer types are versioned using a `@since` attribute, denoting the Godot minor version in
which they were introduced. This allows bindings to query if a feature is available for a target API version, or provide
a polyfill/fallback for it. It also serves as documentation for humans giving a feeling about recency of features.
2023-06-21 12:47:48 +02:00
Rémi Verschelde
ee41b2097c
Merge pull request #78509 from MewPurPur/redraw-code-edit-on-mouse-exit
...
Hide breakpoint indicator when mouse leaves CodeEdit
2023-06-21 12:43:01 +02:00
Rémi Verschelde
735bf14ae7
Merge pull request #76636 from angel-721/test-http
...
Add HTTPClient unit tests
2023-06-21 12:42:54 +02:00
angel-721
ab4e89ecde
Add HTTPClient unit tests
2023-06-21 11:53:55 +02:00
MewPurPur
6e182d41f4
Hide breakpoint indicator when mouse leaves CodeEdit
2023-06-21 11:30:40 +02:00
Yuri Sizov
ebd44641c5
Merge pull request #78492 from KoBeWi/too_slow
...
Update indices after removing custom data layers
2023-06-21 11:19:36 +02:00
Yuri Sizov
4fc045e9b5
Merge pull request #76152 from timothyqiu/tile-resize-clamp
...
Fix tile resizing towards atlas boundary
2023-06-21 11:19:24 +02:00
Rémi Verschelde
ada712e06a
Merge pull request #78504 from timothyqiu/gridmap-selection
...
Fix GridMap tile picking when a search filter is applied
2023-06-21 10:20:11 +02:00
Rémi Verschelde
5285927f51
Merge pull request #78495 from lyuma/import_tracks_single_clip
...
Fix Import Tracks import setting for single clip
2023-06-21 10:19:47 +02:00
Rémi Verschelde
d252f43a86
Merge pull request #78449 from Scony/add-agent-n-map-navserver-tests
...
Add `agent` and `map` tests for 'NavigationServer3D'
2023-06-21 10:19:24 +02:00
Rémi Verschelde
3e5c50bc2f
Merge pull request #78250 from Ryan-000/master
...
Clarify that authority is not automatically replicated
2023-06-21 10:19:00 +02:00
Rémi Verschelde
78518be194
Merge pull request #75444 from lpriebe/editor-run-arg-split-fix
...
Prevent quoted args in `editor/main_run_args` from being split at spaces
2023-06-21 10:18:37 +02:00
Rémi Verschelde
9e56f28d0e
Merge pull request #75345 from Rindbee/fix-wrong-description-in-EditorSettings
...
Fix wrong descriptions in EditorSettings
2023-06-21 10:18:09 +02:00
Rémi Verschelde
5025d95d41
Merge pull request #69027 from Uxeron/AudioListener2DRotationFix
...
Fix AudioListener2D ignoring rotation for positional audio
2023-06-21 10:17:37 +02:00
Uxeron
20ceba9e82
Fix AudioListener2D ignoring rotation
2023-06-21 08:10:01 +03:00
Haoyu Qiu
42faab826d
Fix GridMap tile picking when a search filter is applied
2023-06-21 12:02:07 +08:00
Bastiaan Olij
952b4b3f38
Apply reprojection in multiview for our cluster lookup
2023-06-21 11:17:01 +10:00
kobewi
c1c5b0a435
Update indices after removing custom data layers
2023-06-21 03:12:53 +02:00
Yuri Sizov
38ae7b58d1
Merge pull request #78350 from ajreckof/you-know-when-you-want-to-search-this-member-you-don't-know-and-then-you-have-the-script-editor-all-over-the-place-now-it-should-not-happen-anymore-hopefully
...
Fix placement and style of the "Make Floating" button
2023-06-21 03:03:19 +02:00
Rindbee
19d77ea90d
Fix wrong descriptions in EditorSettings
...
Fix wrong descriptions about `editors/3d/grid_division_level_max`
and `editors/3d/grid_division_level_min`.
2023-06-21 07:16:30 +08:00
ajreckof
13e65da804
Fix wrong placement of the Make Floating Button.
2023-06-21 01:00:37 +02:00
Lyuma
0d0e8b0a8a
Fix Import Tracks import setting for single clip
2023-06-20 15:49:38 -07:00
Nickolai Korshunov
83f065c0ef
Ensure that SceneTree is initialized and finalized at correct time
...
SceneTree should be fully initialized before any tree operation with any node and finalized only after all nodes exited tree.
2023-06-20 23:47:02 +03:00
Ryan Memarpour
9dc850a2ea
Clarify that authority is not automatically replicated.
2023-06-20 21:49:02 +02:00
Yuri Sizov
329652b6fe
Merge pull request #78392 from Gallilus/master
...
Fix `Ref<>.is_valid()` for ScriptInstanceExtension
2023-06-20 21:19:20 +02:00
Yuri Sizov
58fae90ff3
Merge pull request #78477 from groud/fix_tileset_set_as_local_to_scene
...
Fixes TileSet set as local to scene
2023-06-20 20:49:16 +02:00
Yuri Sizov
e002fb232a
Merge pull request #77717 from L4Vo5/clarify-idle-enums
...
Clarify when things with _IDLE and _PHYSICS enums will run
2023-06-20 20:48:42 +02:00
Bauke Conijn
47e63bc55f
Fix Camera3D project_* methods not accounting for frustum offset
...
This does not fix Camera3D::project_ray_normal().
Adds Camera3D::get_camera_projection() and exposes it to GDScript
2023-06-20 20:45:50 +02:00
Yuri Sizov
ab545ece85
Merge pull request #76398 from spanzeri/insert-key-crash
...
Fix insert key crash with no animation
2023-06-20 20:39:52 +02:00
Yuri Sizov
db08287b18
Merge pull request #78456 from aaronfranke/tex-format-should
...
Check if the required texture format is imported in the export dialog
2023-06-20 20:38:02 +02:00
David Cambré
ceed30c442
Fix Ref<>.is_valid() for ScriptInstanceExtension
...
Only check the reference not the value.
2023-06-20 19:45:47 +02:00
quinnyo
68c24f9993
Add code_complete_enabled code editor setting
2023-06-21 02:51:05 +10:00
L4Vo5
01f887ee4f
Clarify when things with _IDLE and _PHYSICS enums will run
2023-06-20 13:25:26 -03:00
Markus Sauermann
a12627765f
Embedded Popups store their safe_rect in their embedder
...
Storing it in the DisplayServer didn't make sense in this case,
because the embedded window is unknown to the DisplayServer.
2023-06-20 18:06:26 +02:00
Aaron Franke
1a70d82606
Check if the required texture format is imported in the export dialog
2023-06-20 10:58:34 -05:00
David Snopek
263c909349
Fix text_server_adv compiling as a GDExtension
2023-06-20 10:50:33 -05:00
Gilles Roudière
c54d407fa5
Fixes TileSet set as local to scene
2023-06-20 17:48:56 +02:00
Pawel Lampe
e1bdde911c
Add agent
and map
tests for 'NavigationServer3D'
...
This commits fixes a bug in `free()` function as well.
2023-06-20 17:48:06 +02:00
Samuele Panzeri
4067907074
Fix insert key crash with no animation
2023-06-20 17:39:09 +02:00
Yuri Sizov
d7af287ce3
Merge pull request #78478 from YuriSizov/gdscript-fix-container-element-cmp
...
Make container element type comparison safe
2023-06-20 17:39:08 +02:00
Yuri Sizov
f1e79e2581
Make container element type comparison safe
2023-06-20 17:04:57 +02:00
Rémi Verschelde
248e5245e4
Merge pull request #73540 from mashumafi/fix-typed-array-add
...
Fix: Typed arrays aren't working with +
2023-06-20 15:12:39 +02:00
Rémi Verschelde
904db6e8cb
Merge pull request #78467 from groud/fix_tilemap_preview
...
Fix TileMap draw preview when switching CanvasItem editor tool
2023-06-20 14:56:22 +02:00
Rémi Verschelde
af08b17f97
Merge pull request #78466 from raulsntos/dotnet/define-constants-without-whitespace
...
C#: Remove whitespace from define constants
2023-06-20 14:56:19 +02:00
Rémi Verschelde
70182cf708
Merge pull request #78462 from akien-mga/ci-scu-linux-san
...
CI: Use SCU build for Linux w/ sanitizers build
2023-06-20 14:56:16 +02:00