Commit Graph

83995 Commits

Author SHA1 Message Date
Thaddeus Crews 6629ee4ec3 Merge pull request #119983 from Calinou/doc-arealight3d-performance
Clarify performance impact of AreaLight3D nodes in the documentation
2026-06-08 09:12:03 -05:00
Thaddeus Crews 526528bd8d Merge pull request #120077 from hpvb/fix-threaded-loader-reloaded
Fix ResourceLoader deadlocks
2026-06-08 09:12:03 -05:00
Thaddeus Crews 279e7ca3cb Merge pull request #120071 from hpvb/fix-canvasrenderrd-deadlock
Fix a deadlock in CanvasRenderRD
2026-06-08 09:12:02 -05:00
Thaddeus Crews b7eb57977a Merge pull request #119451 from bruvzg/mt_rset_a6
[Metal] Restrict residency set support to Apple6+ GPUs.
2026-06-08 09:12:02 -05:00
Thaddeus Crews 6c325574cd Merge pull request #120059 from TokageItLab/anim_issue
Check blend weight for AnimationNode error & remove `_validate_animation_graph()`
2026-06-08 09:12:02 -05:00
Thaddeus Crews 5a49c75875 Merge pull request #120069 from TheOathMan/fix/zippacker-remove-empty-directory-entries
Fix ZIPPacker creating empty directory entries
2026-06-08 09:11:57 -05:00
othman alzahrani 43b2edabf5 Fix ZIPPacker creating empty directory entries - bruvzg fix 2026-06-08 09:18:46 +03:00
HP van Braam b88a62f805 Fix ResourceLoader deadlocks
This fixes several issues:
 * There was a bug in the cycle detection. It was possible for the cycle
   detection to fail because the current thread isn't in the list. Fix
   this by just seeing if any of the next threads were already in the
   cycle.
 * By way of an optimization the thread_waiting_on bookkeeping was done
   under the same thread_load_mutex as the cycle detection. But there is
   also an early exit after yields. If we exit through the yield the
   thread_waiting_on entry is stale and can cause other threads to fail
   to do cycle detection.
 * When multiple threads end up finishing a resource simultaneously
   anyway, probably through cycle detection, there's a small chance that
   the original thread finished more-or-less at the same time if the
   original thing blocking load completed. We solve this now by letting
   only one of the threads do the initial registration.
2026-06-08 04:57:26 +02:00
Silc Lizard (Tokage) Renew c640059ece Check blend weight for AnimNode error&remove _validate_animation_graph 2026-06-08 08:32:42 +09:00
HP van Braam 52f27370ab Fix a deadlock in CanvasRenderRD
RenderingServerDefault::_draw wants to get all of the materials. The threaded
loader is still loading the materials:

1) The main thread locks canvas_singleton->shader.mutex via
   RendererRD::Utilities::update_dirty_resources
    -> RendererRD::MaterialStorage::_update_queued_materials
      -> RendererCanvasRenderRD::CanvasMaterialData::update_parameters()
2) RendererCanvasRenderRD::CanvasMaterialData::update_parameters() wants
   to get the current shader via ShaderRD::version_get_shader. This
   eventually wants to wait on the load of that shader via
   WorkerThreadPool::wait_for_group_task_completion in
   ShaderRD::_compile_version_end

At this point the main thread is waiting for the threaded load to finish
loading the shader. Meanwhile in a thread not too far away the load is
progressing:

1) The loader is loading the tres in ResourceLoaderText::load which
   eventually wants to ShaderMaterial::set_shader
2) We eventually end up in RendererCanvasRenderRD::CanvasShaderData::set_code
3) set_code wants to lock canvas_singleton->shader.mutex to protect
   against concurrent compilation

At this point the main thread is waiting on the load to complete, but
holds "canvas_singleton->shader.mutex" via update_parameters(), and the
loader is waiting on "canvas_singleton->shader.mutex" in set_code.

Tragedy ensues etc.

To fix the problem we don't acquire the lock until after we're sure
we're done compiling the shader.

The same pattern exists in scene_shader_forward_clustered.cpp which
was created in the same commit as the code in the canvas singleton.

With this change the deadlock can no longer occur as set_code() can now run
concurrently with RenderingServerDefault::_draw() as the path where the
main thread waits on the workerthreadpool with
canvas_singleton->shader.mutex held can no longer occur.

Data integrity wise: previously you'd think that
canvas_singleton->shader.mutex would have protected against metadata
changes to uniforms, ubo_offsets, and texture_uniforms but set_code() used
to write to some of these (uniforms, ubo_size) without taking the lock with
no ill effects because the material isn't updated until the shader has loaded.

A similar pattern was found in scene_shader_forward_mobile.cpp and was
fixed in the same way.
2026-06-08 00:22:02 +02:00
Thaddeus Crews 070dc9897e Merge pull request #120006 from syntaxerror247/joysticks
Disable navigation gizmo by default for Desktop platforms
2026-06-05 09:24:42 -05:00
Thaddeus Crews 3515ae6282 Merge pull request #115820 from Ivorforce/gdscript-general-guidelines
Migrate GDScript design guidelines to the contributing docs.
2026-06-05 09:24:41 -05:00
Thaddeus Crews 72eac09f5c Merge pull request #119336 from vaner-org/tree-preserve-drops
Fix incorrect `get_drop_section_at_position` results in Tree
2026-06-05 09:24:41 -05:00
Thaddeus Crews dc9049fbba Merge pull request #119910 from EdwardChanCH/fix_move_up_down_selection
Fix "Move Up/Down" editing foreign nodes
2026-06-05 09:24:23 -05:00
Edward Chan 135a7361a2 Fixed 'Move Up/Down' editing foreign nodes. 2026-06-04 12:24:08 -04:00
Anish Kumar d333da746e Disable navigation gizmo by default for Desktop platforms 2026-06-04 21:15:46 +05:30
Thaddeus Crews 72cc0fc9a7 Merge pull request #120001 from m4gr3d/update_gabe_download_url
[Android] Update download URL for GABE
2026-06-04 09:50:46 -05:00
Thaddeus Crews eea0ff082d Merge pull request #119998 from dsnopek/opengl-vertex-eye-offset-error
OpenGL: Fix vertex shader compilation error with `EYE_OFFSET`
2026-06-04 09:50:46 -05:00
Thaddeus Crews 5b45283c2a Merge pull request #119997 from blueskythlikesclouds/voxel-gi-area-light-fix
Fix area light atlas also destroying VoxelGI uniform sets.
2026-06-04 09:50:22 -05:00
Hugo Locurcio 7401fcdfe0 Clarify performance impact of AreaLight3D nodes in the documentation 2026-06-04 03:12:41 +02:00
Fredia Huya-Kouadio fff89b78e7 Update download URL for GABE 2026-06-03 11:59:10 -07:00
Skyth 2896cd9ef4 Fix area light atlas also destroying VoxelGI uniform sets. 2026-06-03 20:04:49 +03:00
David Snopek 15d8191fbf OpenGL: Fix vertex shader compilation error with EYE_OFFSET 2026-06-03 11:54:50 -05:00
Thaddeus Crews bbd3f43b57 Merge pull request #119992 from KoBeWi/typical_ObjectID_to_prevent_crash
Prevent crash when detaching freed debugger
2026-06-03 11:02:37 -05:00
Thaddeus Crews dba2dd36d0 Merge pull request #119909 from EdwardChanCH/fix_change_type_selection
Fix "Change Type" ignoring non-top-level nodes and editing foreign nodes
2026-06-03 11:02:36 -05:00
Thaddeus Crews 039d4d614f Merge pull request #119964 from KoBeWi/animation_404
Fix empty animation menu in blend space editor
2026-06-03 11:02:35 -05:00
Thaddeus Crews 70ee45d043 Merge pull request #119987 from bruvzg/rtl_ll
[RTL] Fix last line height with some fallback fonts.
2026-06-03 11:02:35 -05:00
Thaddeus Crews 1bfbab316a Merge pull request #119908 from EdwardChanCH/fix_open_doc_selection
Fix "Open Documentation" ignoring non-top-level nodes
2026-06-03 11:02:34 -05:00
kobewi aa5f5054e2 Prevent crash when detaching freed debugger 2026-06-03 15:43:02 +02:00
Pāvels Nadtočajevs facdd8eea6 [RTL] Fix last line height with some fallback fonts. 2026-06-03 09:00:43 +03:00
Edward Chan 8984aff92c Fixed 'Change Type' ignoring non-top-level nodes and editing foreign nodes/ being available when it is not. 2026-06-02 20:29:55 -04:00
Edward Chan d9c53f29e0 Fixed 'Open Documentation' ignoring non-top-level nodes. 2026-06-02 20:01:48 -04:00
Thaddeus Crews 3badc0ee23 Merge pull request #119982 from jrouwe/119926
JoltPhysics: Change ConeTwistJoint3D to use cone shaped limits
2026-06-02 17:39:09 -05:00
Thaddeus Crews a8b6402965 Merge pull request #119966 from bruvzg/mac_a_no_v_m
[macOS] Fix build with enabled ANGLE and disabled Vulkan/Metal.
2026-06-02 17:39:08 -05:00
Thaddeus Crews 9d2e20a046 Merge pull request #119977 from novalis/pa-spam
Pulseaudio: Do not report the same message twice in a row
2026-06-02 17:39:08 -05:00
Thaddeus Crews 95efa7f46a Merge pull request #119975 from novalis/pa-null-pointer
Pulseaudio: Do not crash when getting latency when disconnected
2026-06-02 17:39:07 -05:00
Thaddeus Crews fc3585607d Merge pull request #119971 from DarioSamo/d3d12-command-list-creation-fix
Don't use CreateCommandList1 on D3D12.
2026-06-02 17:39:06 -05:00
Thaddeus Crews cbc3aa33f6 Merge pull request #119970 from blueskythlikesclouds/area-light-cluster-spec-constant
Put area light cluster iterations behind a spec constant.
2026-06-02 17:39:06 -05:00
Thaddeus Crews 4d3bfd2b62 Merge pull request #119980 from TokageItLab/anim-time
Fix AnimationNode's branching by custom timeline usage
2026-06-02 17:39:05 -05:00
Jorrit Rouwe 3c599ae744 Change ConeTwistJoint3D to use cone shaped limits
This matches the behaviour in GodotPhysics3D.
2026-06-02 21:26:16 +02:00
Silc Lizard (Tokage) Renew 4b82c44607 Fix AnimationNode's branching by custom timeline usage 2026-06-03 03:51:41 +09:00
David Turner e2da592ef3 Do not repeat a pulseaudio message
Partial fix for #54584.  This addresses the spam, but does NOT reconnect.

This doesn't address all possible pulseaudio spam -- just the one that I most
commonly see.
2026-06-02 11:59:58 -04:00
David Turner 7f14bfd6b1 Pulseaudio: Do not crash when getting latency when disconnected 2026-06-02 11:43:12 -04:00
Dario 568833cb86 Don't use CreateCommandList1 on D3D12. 2026-06-02 12:05:05 -03:00
Skyth 48f9cf19af Put area light cluster iterations behind a spec constant. 2026-06-02 17:49:44 +03:00
Thaddeus Crews 417cd33bf6 Merge pull request #119968 from Chaosus/shader_update_syntax_highlighting
Properly update shader text syntax highlighting (for disabled regions)
2026-06-02 09:39:08 -05:00
Thaddeus Crews 105eb8d61d Merge pull request #119842 from van800/shakhov/godot-cpp-natvis-removed
Remove the godot::String and godot::StringName from godot.natvis
2026-06-02 09:39:07 -05:00
Thaddeus Crews 9da915af9f Merge pull request #119871 from chocola-mint/fix-#119769
Make `AnimationNodeAnimation`'s custom timeline processing logic compatible with `AnimationMixer`
2026-06-02 09:39:07 -05:00
Thaddeus Crews dc0422466c Merge pull request #119950 from KoBeWi/tooltip_slider
Fix EditorSpinSlider not showing tooltips
2026-06-02 09:39:06 -05:00
Thaddeus Crews 1abed4c810 Merge pull request #119890 from syntaxerror247/template-manager
Enable `touch_dragger` in `ExportTemplateManager` on touchscreen devices
2026-06-02 09:39:06 -05:00