Commit Graph

84022 Commits

Author SHA1 Message Date
Skyth af2fea0ad3 Fix leftover particle data when updating particle buffers.
Co-authored-by:  Skyth <19259897+blueskythlikesclouds@users.noreply.github.com>
2026-06-11 21:02:05 +02:00
Thaddeus Crews ec67cbe926 Merge pull request #120102 from bruvzg/sct_drop
[Editor] Fix `SceneTreeEditor` drop.
2026-06-09 11:03:50 -05:00
Thaddeus Crews 9d876745b3 Merge pull request #120111 from hpvb/fix-message-queue-flush-during-startup
Don't flush the message queue before a MainLoop is iterating
2026-06-09 11:03:50 -05:00
Thaddeus Crews d12dbb0a34 Merge pull request #120117 from Calinou/doc-window-add-demo-link
Link to Multiple Windows demo project in Window class documentation
2026-06-09 11:03:49 -05:00
Hugo Locurcio 0c2a33a215 Link to Multiple Windows demo project in Window class documentation 2026-06-09 17:31:11 +02:00
HP van Braam 7ab8328204 Don't flush the message queue before a MainLoop is iterating
Allowing this breaks several assumptions in the engine, normally this
doesn't occur but when using the WTP it can occur. For instance during
resource loading the message queue is serviced during tear down.

This means this situation can be created from user code if they do async
resource loading in the `_load` of a resource in the main scene.

This also makes the MainLoop report that it IS iterating during tests as
the tests expect the message queue to be serviced even though no main
loop is running.
2026-06-09 15:29:53 +02:00
Thaddeus Crews f92a322ad4 Merge pull request #119808 from EdwardChanCH/fix_doc_unpaired_tag
Fix `IndexError` caused by `debug_tag_stack.pop()` with new error messages
2026-06-09 06:40:05 -05:00
Thaddeus Crews c00ea3dc58 Merge pull request #120092 from Calinou/doc-drawabletexture2d-experimental
Use generic description for experimental flag on DrawableTexture2D methods
2026-06-09 06:40:04 -05:00
Thaddeus Crews dc59c8b250 Merge pull request #120106 from TokageItLab/null-anim-btr
Add null check for `root_animation_node` in AnimationTree
2026-06-09 06:40:04 -05:00
Silc Lizard (Tokage) Renew c3b215de96 Add null check for root_animation_node in AnimationTree 2026-06-09 18:56:13 +09:00
Pāvels Nadtočajevs 363610d752 [Editor] Fix SceneTreeEditor drop. 2026-06-09 10:04:29 +03:00
Edward Chan 824dbc5aed Fixed IndexError caused by debug_tag_stack.pop() and added new error messages. 2026-06-08 19:04:00 -04:00
Hugo Locurcio 0ac3a3af99 Use generic description for experimental flag on DrawableTexture2D methods
The method signatures may still change in the future, including after
the 4.7 dev cycle.
2026-06-09 00:00:47 +02:00
Rémi Verschelde 9d03a4937b Sync translations with Weblate 2026-06-08 22:55:12 +02:00
Thaddeus Crews fb5a83eb60 Merge pull request #120007 from bruvzg/msys_dl
Fix download scripts and build in the MSYS2 environment.
2026-06-08 15:20:55 -05:00
Thaddeus Crews 8bbedec7f9 Merge pull request #120025 from bruvzg/nir-upd-3
Update D3D12 download script to use current release.
2026-06-08 15:20:55 -05:00
Thaddeus Crews bd4b537c95 Merge pull request #120085 from KoBeWi/the_dice_is_64bit
Fix first tile not being randomized
2026-06-08 15:20:54 -05:00
kobewi ea2cc82451 Fix first tile not being randomized 2026-06-08 17:06:13 +02:00
Thaddeus Crews a4f5e8cddf Bump version to 4.7-rc 2026-06-08 09:51:18 -05:00
Thaddeus Crews 15957647b5 Merge pull request #120063 from ryevdokimov/local-trackball
Fix trackball when use local space is enabled
2026-06-08 09:12:04 -05:00
Thaddeus Crews f1ab81c990 Merge pull request #119999 from KoBeWi/title_size_stuff
Wrap project titles
2026-06-08 09:12:04 -05:00
Thaddeus Crews 09522aea1c Merge pull request #120028 from HolonProduction/gdscript/blacklist-internal-classes
GDScript: Exclude `globals` internal classes in the analyzer
2026-06-08 09:12:04 -05:00
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
ryevdokimov d92a1acc36 Fix trackball when use local space is enabled 2026-06-07 11:32:31 -04:00
HolonProduction 5a017a1f5e GDScript: Exclude globals internal classes in the analyzer 2026-06-06 10:38:32 +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
kobewi d3ca1b4c20 Wrap project titles 2026-06-05 11:28:02 +02:00
Pāvels Nadtočajevs 80de17565c Update D3D12 download script to use current release. 2026-06-05 08:34:38 +03: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
Pāvels Nadtočajevs fd574d221f Fix download scripts and build in the MSYS2 environment. 2026-06-04 10:58:05 +03: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