Commit Graph

69878 Commits

Author SHA1 Message Date
38775731e8 Merge pull request #99965 from Riteo/unstable-galore
Wayland: Add support for xdg-foreign-unstable-v2
2024-12-11 17:36:07 -06:00
3dacc5fb7f Merge pull request #95737 from Chaosus/shader_fix_varyings
Fix shader crash when using varyings with non-`flat` integer type
2024-12-11 17:36:06 -06:00
66dd2895fa Merge pull request #100208 from eviltrout/highlight-bg-fix
Fix user selection on top of `bgcolor` areas in a `RichTextLabel`
2024-12-11 17:36:05 -06:00
e188cf6066 Merge pull request #99182 from timoschwarzer/fix/editor-save-dialog-options
Improve editor file dialog options
2024-12-11 17:36:04 -06:00
dee79d55fe Merge pull request #100204 from KoBeWi/nananananan
Clarify `limit_length()` for infinite vectors
2024-12-11 17:36:03 -06:00
08b5bf3c5f Merge pull request #95333 from Giganzo/lock-group-toggle
Fix Lock and Group for canvas items not updated in editor after changed in SceneTree
2024-12-11 17:36:02 -06:00
ef3086bcdb Merge pull request #94947 from ChrisBase/issue_94946
Change some image error messages to output the file path
2024-12-11 17:35:58 -06:00
7ed6962252 Merge pull request #95072 from Calinou/editor-log-tweak-warning-error-formatting
Tweak warning/error formatting in EditorLog to be closer to console output
2024-12-11 17:35:56 -06:00
c4aaad6aa2 Merge pull request #100183 from smix8/collision_polygon_shape_edit
Add basic editor editing for `ConvexPolygonShape2D` and `ConcavePolygonShape2D`
2024-12-11 17:35:55 -06:00
4a1a7addd1 Merge pull request #100179 from zaevi/fix_transient_topmost
[Windows & macOS] Fix popup window shows behind `always_on_top` parent.
2024-12-11 17:35:53 -06:00
ab208af781 Merge pull request #100174 from Calinou/gdscript-add-deprecated-experimental-annotations
Tweak unknown annotation GDScript error for `@deprecated`/`@experimental`/`@tutorial`
2024-12-11 17:35:50 -06:00
be65514c11 Merge pull request #100042 from Calinou/ci-xmllint-quiet
GitHub Actions: Use quiet xmllint output to only print error lines
2024-12-11 17:35:49 -06:00
a5cf24cb16 Merge pull request #100162 from ryevdokimov/measure-mode-3d
Add ruler mode to 3D
2024-12-11 17:35:46 -06:00
572e1d6643 Merge pull request #100289 from bruvzg/token_name
[Shader Language] Add missing token name.
2024-12-11 17:35:44 -06:00
42580089b8 Merge pull request #100280 from Calinou/basematerial3d-remove-texturesize
Replace `textureSize()` with a uniform in BaseMaterial3D for MSDF rendering
2024-12-11 17:35:43 -06:00
e9d343805e Merge pull request #94636 from Calinou/doc-process-delta-low-fps
Document `_process()` and `_physics_process()` delta behavior at low FPS
2024-12-11 17:35:42 -06:00
b773fff5a4 Merge pull request #99622 from Chaosus/shader_fix_global_empty_type
Add `samplerExternalOES` type to shader globals
2024-12-11 17:35:40 -06:00
2b41a217d2 Merge pull request #100259 from Sauermann/proposal-right-click-cancel-drag
Allow canceling drag-and-drop with right mouse button
2024-12-11 17:35:39 -06:00
153ef23483 Merge pull request #100129 from smix8/pathunspaghettification
Despaghettify NavigationServer path queries
2024-12-11 17:35:38 -06:00
23afda44e4 Merge pull request #100257 from darksylinc/matias-minimize-leak
Keep processing Graphics if there are pending operations
2024-12-11 17:35:35 -06:00
db2088b0cd Merge pull request #100126 from dsnopek/gdextension-missing-gdvirtual-bind
Add missing `GDVIRTUAL_BIND()` for `AudioStream::_has_loop()` and `::_get_bar_beats()`
2024-12-11 17:35:33 -06:00
84da7c9cf5 Merge pull request #99997 from akien-mga/mbedtls-3.6.2
mbedtls: Update to upstream 3.6.2
2024-12-11 17:35:31 -06:00
4146bcc0dc Merge pull request #99089 from Mickeon/documentation-truth-csharp-rabbit-hoole
Fix C# boolean "Prints" comments in documentation
2024-12-11 17:35:30 -06:00
c5e6f6276b Merge pull request #100110 from DarioSamo/rd-get-data-async
Implement `RD::buffer_get_data_async()` and `RD::texture_get_data_async()`
2024-12-11 17:35:29 -06:00
1c4d12db2b Merge pull request #99981 from dsnopek/fix-compositor-effects-gdextension
`CompositorEffect` should use `GDVIRTUAL_CALL()` so it works with GDExtension
2024-12-11 17:35:28 -06:00
f20ab9b2cf Merge pull request #99338 from KoBeWi/consider_it_fixed
Clarify Button's text clipping
2024-12-11 17:35:27 -06:00
61f2001aba Merge pull request #99081 from Mickeon/documentation-floats-now-print-the-trailing-zero
Update documentation's "Prints" comments after #47502
2024-12-11 17:35:26 -06:00
476479419b Despaghettify NavigationServer path queries
Despaghettify NavigationServer path queries.
2024-12-11 22:29:48 +01:00
054891de04 Implement buffer_get_data_async and texture_get_data_async. 2024-12-11 11:55:23 -08:00
133471afb0 [Shader Language] Add missing token name. 2024-12-11 21:05:14 +02:00
c2e4ae782a Merge pull request #100235 from akien-mga/revert-97303
Revert "Avoid duplicating signals from scene instances into packed scenes"
2024-12-11 18:48:18 +01:00
00ac17462a Merge pull request #100281 from bruvzg/bt_big
[Windows] Fix loading debug symbol files over 2GB.
2024-12-11 18:47:14 +01:00
234ed35f68 Merge pull request #100270 from bruvzg/clang_dw4
[Windows] Use `dwarf-4` for clang builds on Windows.
2024-12-11 18:47:10 +01:00
1424046317 Merge pull request #100266 from bruvzg/mac_fullp
[macOS] Print full source paths in the trace.
2024-12-11 18:47:07 +01:00
a5fd2a64cf Merge pull request #99717 from Repiteo/codeowners/scene-core
CI: Remove leading-underscore teams from `CODEOWNERS`
2024-12-11 18:47:00 +01:00
9bb747e0e8 CI: Remove leading-underscore teams from CODEOWNERS 2024-12-11 11:17:44 -06:00
acf439e96d Keep processing Graphics if there are pending operations
Fixes #90017
Fixes #90030
Fixes #98044

This PR makes the following changes:

# Force processing of GPU commands for frame_count frames

The variable `frames_pending_resources_for_processing` is added to track
this.

The ticket #98044 suggested to use `_flush_and_stall_for_all_frames()`
while minimized.

Technically this works and is a viable solution.

However I noticed that this issue was happening because Logic/Physics
continue to work "business as usual" while minimized(\*). Only Graphics
was being deactivated (which caused commands to accumulate until window
is restored).

To continue this behavior of "business as usual", I decided that GPU
work should also "continue as usual" by buffering commands in a double
or triple buffer scheme until all commands are done processing (if they
ever stop coming). This is specially important if the app specifically
intends to keep processing while minimized.

Calling `_flush_and_stall_for_all_frames()` would fix the leak, but it
would make  Godot's behavior different while minimized vs while the
window is presenting.

\* `OS::add_frame_delay` _does_ consider being minimized, but it just
throttles CPU usage. Some platforms such as Android completely disable
processing because the higher level code stops being called when the app
goes into background. But this seems like an implementation-detail that
diverges from the rest of the platforms (e.g. Windows, Linux & macOS
continue to process while minimized).

# Rename p_swap_buffers for p_present

**This is potentially a breaking change** (if it actually breaks
anything, I ignore. But I strongly suspect it doesn't break anything).

"Swap Buffers" is a concept carried from OpenGL, where a frame is "done"
when `glSwapBuffers()` is called, which basically means "present to the
screen".

However it _also_ means that OpenGL internally swaps its internal
buffers in a double/triple buffer scheme (in Vulkan, we do that
ourselves and is tracked by `RenderingDevice::frame`).

Modern APIs like Vulkan differentiate between "submitting GPU work" and
"presenting".

Before this PR, calling `RendererCompositorRD::end_frame(false)` would
literally do nothing. This is often undesired and the cause of the leak.
After this PR, calling `RendererCompositorRD::end_frame(false)` will now
process commands, swap our internal buffers in a double/triple buffer
scheme **but avoid presenting to the screen**.

Hence the rename of the variable from `p_swap_buffers` to `p_present`
(which slightly alters its behavior).
If we want `RendererCompositorRD::end_frame(false)` to do nothing, then
we should not call it at all.

This PR reflects such change: When we're minimized **_and_**
`has_pending_resources_for_processing()` returns false, we don't call
`RendererCompositorRD::end_frame()` at all.

But if `has_pending_resources_for_processing()` returns true, we will
call it, but with `p_present = false` because we're minimized.

There's still the issue that Godot keeps processing work (logic,
scripts, physics) while minimized, which we shouldn't do by default. But
that's work for follow up PR.
2024-12-11 14:13:29 -03:00
a8c8eca74a [Windows] Fix loading debug symbol files over 2GB. 2024-12-11 17:42:47 +02:00
3dfc832272 Replace textureSize() with a uniform in BaseMaterial3D for MSDF rendering
This uniform was already defined for other uses previously.

`textureSize()` is known to be slow on mobile platforms due to how
the drivers implement it there, so it's best avoided.
2024-12-11 15:44:06 +01:00
11bf2da9de Improve editor file dialog options 2024-12-11 15:11:34 +01:00
44dfa7e710 Merge pull request #99895 from mihe/jolt-physics
Add Jolt Physics as an alternative 3D physics engine
2024-12-11 14:53:57 +01:00
d470c2ac6a Add Jolt Physics as an alternative 3D physics engine
Co-authored-by: Jorrit Rouwe <jrouwe@gmail.com>
2024-12-11 13:57:25 +01:00
800076a6c2 [Windows] Use dwarf-4 for clang builds on Windows. 2024-12-11 14:10:57 +02:00
a40fc2354a Merge pull request #100036 from Chaosus/hover_sname
[Scene] Add `SceneStringName::hover`
2024-12-11 12:24:09 +03:00
ff9d389aa6 Merge pull request #99934 from Chaosus/animation_node_state_machine_fix_orphan_strings
Fix orphan strings in `AnimationNodeStateMachine`
2024-12-11 12:23:22 +03:00
9a8d6628de [Scene] Add SceneStringName::hover 2024-12-11 11:11:25 +03:00
7adb986e15 Fix orphan strings in AnimationNodeStateMachine 2024-12-11 11:08:23 +03:00
8b853b7db7 [macOS] Print full source paths in the trace. 2024-12-11 09:21:25 +02:00
7c84eba663 Add basic editor editing for ConvexPolygonShape2D and ConcavePolygonShape2D
Adds basic editor tooling to move the existing points of a ConvexPolygonShape2D or move the  segments of a ConcavePolygonShape2D while a CollisionShape2D node is selected.
2024-12-11 02:31:42 +01:00
4d6a6b21e2 Allow canceling drag-and-drop with right mouse button
This is a small usability enhancement, that allows users to cancel
drag-and-drop without the need to press the escape key on the keyboard.
2024-12-11 00:13:54 +01:00