Commit Graph

62932 Commits

Author SHA1 Message Date
Juan Linietsky 65686dedf9 Use WorkerThreadPool for Server threads
* Servers now use WorkerThreadPool for background computation.
* This helps keep the number of threads used fixed at all times.
* It also ensures everything works on HTML5 with threads.
* And makes it easier to support disabling threads for also HTML5.

CommandQueueMT now syncs with the servers via the WorkerThreadPool
yielding mechanism, which makes its classic main sync semaphore
superfluous.

Also, some warnings about calls that kill performance when using
threaded rendering are removed because there's a mechanism that
warns about that in a more general fashion.

Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2024-04-10 18:47:42 +02:00
Pedro J. Estébanez c28f5901c7 Polish interaction between windowing, input and rendering
- Adapt GL make/release API to the current architecture.
- Fix DisplayServer being locked while dispatching input (prevent deadlocks).
2024-04-10 18:47:42 +02:00
Pedro J. Estébanez 1b104ffcd8 WorkerThreadPool: Support daemon-like tasks (via yield semantics) 2024-04-10 18:47:42 +02:00
Pedro J. Estébanez 71facbaa88 WorkerThreadPool: Fix data race 2024-04-10 18:47:41 +02:00
Rémi Verschelde b091162a90
Merge pull request #90488 from dalexeev/editor-fix-enum-detect-unnamed-classes
Editor: Fix enum detection for unnamed classes
2024-04-10 17:49:59 +02:00
Rémi Verschelde 42e8f42d87
Merge pull request #90455 from kitbdev/te-fix-caret-line-end
Fix caret last fit when moving to line end
2024-04-10 17:49:53 +02:00
Rémi Verschelde 67076c167d
Merge pull request #90448 from vnen/gdscript-infer-string-format
GDScript: Infer type with string format operator
2024-04-10 17:49:49 +02:00
Rémi Verschelde 8611fd8400
Merge pull request #90442 from vnen/gdscript-dont-warn-using-default-builtin
GDScript: Don't warn on unassigned for builtin-typed variables
2024-04-10 17:49:44 +02:00
Rémi Verschelde 7c23d32446
Merge pull request #90441 from Calinou/editor-move-build-profile-editor
Move engine build profile editor to Tools submenu
2024-04-10 17:49:39 +02:00
Rémi Verschelde 5bb22d87cb
Merge pull request #90378 from AeioMuch/inspect_hovered_node_while_dragging
Inspect hovered node while dragging
2024-04-10 17:49:34 +02:00
Rémi Verschelde 5bd2af6c38
Merge pull request #90313 from Nazarwadim/unit_tests_oa_hash_map
Add unit tests for `OAHashMap`
2024-04-10 17:49:29 +02:00
Rémi Verschelde 8764769ee8
Merge pull request #89186 from groud/save_byte_arrays_as_base64_encoded
Save PackedByteArrays as base64 encoded
2024-04-10 17:49:24 +02:00
Rémi Verschelde 7670b81233
Merge pull request #86518 from AThousandShips/array_iter
[Core] Add iteration support to `Array`
2024-04-10 17:49:14 +02:00
AeioMuch 0ba1adfaf9 Inspect hovered node while dragging 2024-04-10 17:15:13 +02:00
George Marques 877802e252
GDScript: Don't warn on unassigned for builtin-typed variables
If the type of a variable is a built-in Variant type, then it will
automatically be assigned a default value based on the type. This means
that the explicit initialization may be unnecessary. Thus this commit
removes the warning in such case.

This also changes the meaning of the unassigned warning to happen when
the variable is used before being assigned, not when it has zero
assignments.
2024-04-10 11:59:57 -03:00
George Marques 4bdba718c5
GDScript: Infer type with string format operator
If the left value type is known to be String, assume the format operator
(`%`) will return a string, since it works with any type in the right
hand side. This is also used by type inference even if the right hand
type is unknown at compile time.
2024-04-10 11:49:30 -03:00
Danil Alexeev fc6c1d6363
Editor: Fix enum detection for unnamed classes 2024-04-10 16:10:55 +03:00
A Thousand Ships 64146cb7f3
[Core] Add iteration support to `Array` 2024-04-10 14:49:34 +02:00
Rémi Verschelde 1f0f81049f
Merge pull request #90476 from mihe/revert-pack-trimming
Revert pack trimming introduced by #82084
2024-04-10 14:22:48 +02:00
Rémi Verschelde 5d4507b914
Merge pull request #90472 from bruvzg/rtl_dc_pr_vc
[RTL] Fix dropcaps and list prefixes not taking visible characters into account.
2024-04-10 14:22:44 +02:00
Rémi Verschelde fa1164343b
Merge pull request #90460 from Gamepro5/master
Surface normals are not the same thing as collision normals for `move_and_slide()`
2024-04-10 14:22:40 +02:00
Rémi Verschelde 5c75fa260f
Merge pull request #90458 from clayjohn/RD-weight-buffer
Clear RIDs of weight buffers when freeing to avoid double free
2024-04-10 14:22:37 +02:00
Rémi Verschelde 258f2705f6
Merge pull request #90440 from Calinou/geometryinstance3d-fix-custom-aabb-assignment
Fix GeometryInstance3D Custom AABB assignment in the editor not working
2024-04-10 14:22:33 +02:00
Rémi Verschelde 9c5e968bbc
Merge pull request #90432 from Rindbee/correctly-replace-scene-root-when-must_reload
Correctly replace scene root when `must_reload` in `EditorData::check_and_update_scene()`
2024-04-10 14:22:29 +02:00
Rémi Verschelde 7d7d30340f
Merge pull request #90421 from Krigu/add_option_copy_absolute_path_to_file_system_dock_popup
Add option to copy absolute path in file system dock popup
2024-04-10 14:22:26 +02:00
Rémi Verschelde 0d50f45482
Merge pull request #90416 from BastiaanOlij/openxr_fix_reverse_z
OpenXR: Apply fix for reverse Z
2024-04-10 14:22:17 +02:00
Rémi Verschelde d899558bbc
Merge pull request #90407 from Calinou/doc-softbody3d-wind
Document Area3D wind properties only affecting SoftBody3D
2024-04-10 14:22:12 +02:00
Rémi Verschelde d68e04d0f5
Merge pull request #90389 from Krigu/update_documentation_for_camera_server_ios
Doc: Add hint for required ios camera plugin in CameraServer documentation
2024-04-10 14:22:08 +02:00
Rémi Verschelde 4b82e90f86
Merge pull request #90056 from lyuma/get_skin_reference
Expose `MeshInstance3D.get_skin_reference` and add docs
2024-04-10 14:22:04 +02:00
Rémi Verschelde 50b89e6c56
Merge pull request #89752 from ze2j/fix_false_positive_errors_in_gdshaderinc_files
Fix false positive errors in gdshaderinc files
2024-04-10 14:22:00 +02:00
Rémi Verschelde c59f493620
Merge pull request #89729 from jitspoe/master.shadow_distance_fade_optimization
Shadow fade for omni lights actually stops the shadow from updating while faded out to improve performance.
2024-04-10 14:21:56 +02:00
Rémi Verschelde 22299f83f1
Merge pull request #89704 from dalexeev/editor-help-fix-text-color
Editor: Fix text color in `EditorHelpHighlighter`
2024-04-10 14:21:51 +02:00
Rémi Verschelde de1f77c78d
Merge pull request #89404 from clayjohn/DOCS-bounce-reflect
Clarify bounce and reflect docs and update param names
2024-04-10 14:21:46 +02:00
Rémi Verschelde 4b813386d2
Merge pull request #88614 from ramadm/test-camera-2d
Add unit tests for Camera2D
2024-04-10 14:21:43 +02:00
Rémi Verschelde 492c19732e
Merge pull request #86386 from timothyqiu/empty-layout-name
Strip edges of editor layout names
2024-04-10 14:21:37 +02:00
Rémi Verschelde 09be7329a2
Merge pull request #81465 from RevoluPowered/unit-test-resolve-hostname
Add unit test for `IP.resolve_hostname`
2024-04-10 14:21:32 +02:00
RevoluPowered 65d076b78d
Add unit test for resolve_hostname 2024-04-10 14:19:04 +02:00
Lyuma 2854d0a7ca
Expose MeshInstance3D.get_skin_reference and add docs 2024-04-10 14:12:25 +02:00
clayjohn c0d0bdc160
Clarify bounce and reflect docs and update param names 2024-04-10 14:07:08 +02:00
Mikael Hermansson a057158d75 Revert pack trimming introduced by #82084 2024-04-10 12:00:04 +02:00
bruvzg d34c1f7733
[RTL] Fix dropcaps and list prefixes not taking visible characters into account. 2024-04-10 11:08:57 +03:00
nazarii 0c8e1c69f8 Add unit tests for OAHashMap 2024-04-10 07:51:06 +03:00
Gamepro5 4799459e15 Surface normal is not correct 2024-04-09 19:30:57 -07:00
ajreckof 248e5bfba2
Revert what needs to be reverted 2024-04-10 09:49:30 +08:00
风青山 41f6a683b6
Correctly replace scene root when `must_reload` in `EditorData::check_and_update_scene()`
We need to update the scene root in multiple singletons to ensure that
certain flags are correct. This is what `EditorNode::set_edited_scene()`
does.

Usually we use `replace_by` to complete the replacement of the scene
root. Call `EditorNode::set_edited_scene()` when the `replacing_by`
signal is emitted to set the new scene root. This is suitable when
using a single node to replace, which may be problematic if the
replacing node is a tree. Because during the call to `replace_by()`,
the new node and its child nodes will enter tree during `parent->
add_child(p_node)`, and later emits the `replacing_by` signal.

When the parent scene has to be reloaded because the child scene
changes and switches to the parent scene, there is no need to use
`replace_by()` since the scene's diffs are already saved.
2024-04-10 09:49:29 +08:00
clayjohn bafbde9f4b Clear RIDs of weight buffers when freeing to avoid double free 2024-04-09 17:52:05 -07:00
Bastiaan Olij b67eba8399 OpenXR: apply fix for reverse Z 2024-04-10 10:35:19 +10:00
Hugo Locurcio 840d860f88
Document Area3D wind properties only affecting SoftBody3D 2024-04-10 00:06:27 +02:00
Rémi Verschelde 6c57928063
Merge pull request #90450 from akien-mga/scons-fix-scu-windows
SCons: Fix SCU build regression on Windows
2024-04-09 22:29:47 +02:00
Rémi Verschelde 0993df8be3
Merge pull request #90431 from mihe/import-flag
Add `--import` command-line flag
2024-04-09 22:29:44 +02:00