1
0
Fork 0
Commit Graph

69842 Commits

Author SHA1 Message Date
Thaddeus Crews 153ef23483
Merge pull request #100129 from smix8/pathunspaghettification
Despaghettify NavigationServer path queries
2024-12-11 17:35:38 -06:00
Thaddeus Crews 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
Thaddeus Crews 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
Thaddeus Crews 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
Thaddeus Crews 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
Thaddeus Crews 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
Thaddeus Crews 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
Thaddeus Crews f20ab9b2cf
Merge pull request #99338 from KoBeWi/consider_it_fixed
Clarify Button's text clipping
2024-12-11 17:35:27 -06:00
Thaddeus Crews 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
smix8 476479419b Despaghettify NavigationServer path queries
Despaghettify NavigationServer path queries.
2024-12-11 22:29:48 +01:00
Dario 054891de04 Implement buffer_get_data_async and texture_get_data_async. 2024-12-11 11:55:23 -08:00
Rémi Verschelde 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
Rémi Verschelde 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
Rémi Verschelde 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
Rémi Verschelde 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
Rémi Verschelde 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
Thaddeus Crews 9bb747e0e8
CI: Remove leading-underscore teams from `CODEOWNERS` 2024-12-11 11:17:44 -06:00
Matias N. Goldberg 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
Pāvels Nadtočajevs a8c8eca74a [Windows] Fix loading debug symbol files over 2GB. 2024-12-11 17:42:47 +02:00
Rémi Verschelde 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
Mikael Hermansson 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
bruvzg 800076a6c2 [Windows] Use `dwarf-4` for clang builds on Windows. 2024-12-11 14:10:57 +02:00
Yuri Rubinsky a40fc2354a
Merge pull request #100036 from Chaosus/hover_sname
[Scene] Add `SceneStringName::hover`
2024-12-11 12:24:09 +03:00
Yuri Rubinsky 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
Chaosus 9a8d6628de [Scene] Add `SceneStringName::hover` 2024-12-11 11:11:25 +03:00
Chaosus 7adb986e15 Fix orphan strings in `AnimationNodeStateMachine` 2024-12-11 11:08:23 +03:00
Pāvels Nadtočajevs 8b853b7db7 [macOS] Print full source paths in the trace. 2024-12-11 09:21:25 +02:00
Thaddeus Crews cf038deb10
Merge pull request #100222 from DarioSamo/partial-coverage-fix
Fix incorrect return value on partial coverage detection.
2024-12-10 14:16:13 -06:00
Thaddeus Crews 9cf645df22
Merge pull request #100218 from akien-mga/scene-debugger-crash-invalid-shortcut
[Debugger] Fix scene debugger crash when editor shortcuts are invalid
2024-12-10 14:16:12 -06:00
Thaddeus Crews 69c67ede17
Merge pull request #88950 from bruvzg/excap
[macOS, Windows] Add support for excluding windows from a screenshot.
2024-12-10 14:16:10 -06:00
Thaddeus Crews 15aa18bc92
Merge pull request #98675 from YeldhamDev/dont_be_shy_plugin
Fix certain editor plugins not showing when they should
2024-12-10 14:16:09 -06:00
Thaddeus Crews deb4c00f06
Merge pull request #100210 from hpvb/scons-use-md5-timestamp
SCons: Unconditionally use `env.Decider("MD5-timestamp")`
2024-12-10 14:16:08 -06:00
Thaddeus Crews 25122e7dd3
Merge pull request #100081 from clayjohn/rd-clearcoat
Ensure schlick is available when using clearcoat with GGX
2024-12-10 14:16:07 -06:00
Thaddeus Crews 3cb8419703
Merge pull request #100207 from bruvzg/mingw_dbg
[Windows] Fix MinGW debug symbols.
2024-12-10 14:16:06 -06:00
Thaddeus Crews ba89529390
Merge pull request #99695 from peterdang1502/error-calling-deferred-method-99571
Fix argument error when restarting project by executing Project -> Tools -> Upgrade Mesh Surface
2024-12-10 14:16:05 -06:00
Thaddeus Crews ae38cdbb6d
Merge pull request #95839 from GustJc/interactive_audio_current_playback
Expose `AudioStreamPlaybackInteractive::get_current_clip_index()`.
2024-12-10 14:16:04 -06:00
Thaddeus Crews f962fdce0e
Merge pull request #100185 from Repiteo/scons/fix-thirdparty-warnings
SCons: Fix MSVC bypassing disabled warnings
2024-12-10 14:16:02 -06:00
Thaddeus Crews b789935a13
Merge pull request #100049 from Chaosus/flat_button_sname
[Scene] Add `SceneStringName::FlatButton`
2024-12-10 14:16:01 -06:00
Thaddeus Crews ba66c478c0
Merge pull request #100041 from Ivorforce/optimize-string-similarity
Optimize String.similarity by avoiding allocation for bigrams.
2024-12-10 14:16:00 -06:00
Thaddeus Crews b88fd31687
Merge pull request #99397 from yosoyfreeman/master
Allow `apply_floor_snap` to preserve the horizontal position regardless of `stop_on_slopes`
2024-12-10 14:15:59 -06:00
Thaddeus Crews 3ef8e835c2
Merge pull request #99775 from Ivorforce/string-builder-template-append
Optimize StringBuilder by using `LocalVector` instead of `Vector`.
2024-12-10 14:15:58 -06:00
Thaddeus Crews 1f0eeea7b5
Merge pull request #99902 from Repiteo/dotnet/ci-warnings
C#: Fix warnings caught by new problem-matchers
2024-12-10 14:15:57 -06:00
Thaddeus Crews 66dea152b5
Merge pull request #99257 from darksylinc/matias-TheForge-pr04-excluded-ubo+render_opt
Improvements from TheForge
2024-12-10 14:15:55 -06:00
Thaddeus Crews 6cbf7c77c2
Merge pull request #100150 from ArchercatNEO/homeless-export
Use temp dirs instead of cache dirs for export
2024-12-10 14:15:54 -06:00
Thaddeus Crews 8f16f864a6
Merge pull request #99765 from dalexeev/core-fix-json-from-to-native
Core: Fix `JSON.{from,to}_native()` issues
2024-12-10 14:15:53 -06:00
Thaddeus Crews d108d4f29e
Merge pull request #100147 from esainane/vector-victor
Remove apparent contradiction in vector.h header
2024-12-10 14:15:52 -06:00
Thaddeus Crews f222cc43f3
Merge pull request #99633 from buresu/fix-wayland-keymapping
Fix underscore input not working with jp106 keyboard on wayland platform
2024-12-10 14:15:51 -06:00
Thaddeus Crews 79dd5179e3
Merge pull request #99887 from JackErb/gdscript-parser-error-fix
Improve misleading `Unexpected "x" in class body.` GDScript parser error
2024-12-10 14:15:50 -06:00
Thaddeus Crews 78215f3cc6
Merge pull request #100132 from Ivorforce/string-compile-time-strlen
Optimize String construction from statically known strings by evaluating `strlen` at compile-time.
2024-12-10 14:15:49 -06:00
Thaddeus Crews ef0d1e0eb9
Merge pull request #100001 from clayjohn/rd-uniform-set-cache
Increase the size of the uniform set cache to 4096 to avoid cache thrashing from projects with high numbers of unique textures
2024-12-10 14:15:48 -06:00