-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Shadow volume culling and tighter shadow caster culling #84745
Conversation
I tested quickly on a high complexity scene and it spammed the following error:
I'll debug further and see if I can find the cause. Despite the error, it appeared to reduce the shadow draw time in the scene from 30ms to 20 ms (on my intel integrated graphics) |
I'll take a look. This may be due to some slight differences in cameras from 3.x (bear in mind this is a straight port and has had much more testing on 3.x). 👍 Ah the max may possibly need to be 17 rather than 16! 😀 Actually possible bug for the |
Quick debugging check, changing MAX_PLANES to 32 makes the error go away. The scene has multiple omnilights and a directionallight3D. The error spams while multiple omnilights are within the camera frustum. The error continues when the DirectionalLight3D is made not visible. I'll try to make a reproduction project |
Also worth checking is if setting I've just pushed a slightly updated version with the lookup table showing all 8 entries (There was a strange half finished bit for only writing 7 entries on purpose, but I wrote this 3 years ago so can only try and remember why I did that, maybe it was a bug. It did seem vulnerable to reading an incorrect 8th entry in the rare case of the light pointing towards that particular viewpoint of the camera frustum, which would explain why I hadn't spotted it.). I'm not 100% sure this would have created your bug but it is just possible, so it is worth trying the latest version as well. I'll update the 3.x version of this PR as well once we have pinned this down as it is likely common to both. I'll try and reproduce it on 3.x as it is likely present there too, and I don't have any test projects on master as I rarely use it. |
Okay, I've prepared an MRP that reliably reproduces the issue. |
Fantastic! Thanks so much for spending time on this. I can immediately see that light culler contains some garbage values so some kind of corruption is going on. I think it's a race condition. Must be being used multithread. I'd have never found this without MRP. 😀 This shouldn't be a big deal to fix but I'll mark as draft as I have to prioritize 3.6 now we have a deadline. The 3.6 PR should be the same but no threading issues so I think it should be fine, @Calinou has reviewed but it would be good to get a check and approval if it looks okay. It's off and on-able so if there are any bugs they can be fixed during RC. |
This should be fixed now.
|
Tested locally, it works as expected. Visuals look correct too from my testing in various demo projects. Benchmark on tps-demoOS: Fedora 38 The project is modified to disable V-Sync. The FPS reported is the highest FPS attained over a period of 10 seconds after loading the level. Unfortunately, unlike the
This also applies to other demos like Truck Town and 3D platformer which I've tested as well. Footnotes |
Oh I must have made a booboo in the fixup then, as there should be an improvement. I'll do a debug to check it's working correctly (I don't have many test projects in 4.x). Ah, unless it is your GPU which is not bottlenecked like most lesser GPUs lol. 😁 I'll check though. UPDATE: If you uncomment the following defines:
It will output the number of extra instances culled by directional lights, and regular lights (omnis / spots). Providing these are non-zero, then it is working. It could be that @Calinou 's tests on 3.x have different bottlenecks (if you can force the iGPU to render that might be useful comparison). In particular, GLES is more likely to be bottlenecked by drawcalls in the shadow caster rendering than Vulkan. Also larger shadowmap resolution is more likely to be bottlenecked (but again high end GPU may not be affected much). The actual final render is unaffected (i.e. reading the PCF shadowmap), so changing the screen size only acts to shift the bottlenecks. Small screen size is more likely to bottleneck on rendering the shadow casters (you could try a postage stamp sized final window), but with high end GPU this may not bottleneck things compared to e.g. physics or blocked threads. |
I tested again on the same scene and can confirm that the errors are gone. In a section of the level that is mostly outdoors, I noticed a decrease in draw calls by about 25% (2500 -> 1900). However, in an indoor section with multiple omnilights, I noticed an increase in the number of draw calls (14,300 -> 14,700). My guess is that something is forcing the omnilights to update every frame instead of just when changed. I'll try to isolate the case and confirm the theory |
I'll have a look too in the mean time and see if I can work out what is going on. Could be a flip between tighter culling mode and full culling is causing a double shadowmap update somewhere. This can occur but it should recognise it the first time and stay in the full mode for some time. If you can produce an MRP that would be super useful. In particular it would be useful to know whether this occurred continuously, or on a single frame (e.g. captured with renderdoc). Single frame with multiple cameras it is expected that there will be 2 shadowmap updates on the first occurrence (so drawcalls can blip for a single frame). DiscussionThe tighter cull itself takes place after regular culling, so that shouldn't be possibly to render more than before, so that suggests that any increase in draw call count must be due to the shadow map being rendered more than before. So if there is a problem it's likely in the logic for the It goes something like this (maybe I could change the count to set to an enum to make it clearer):
When the light / objects in the light are continously moving, (providing there is one camera only) 2 is getting set each frame and thus it is only doing a single tighter cull update. If two or more cameras are detected it enters The last case is where an object in tighter cull mode (2) with a single camera stops updating, the frame afterwards it will do a single full update (as the Worse situationThis means that in the situation of staggered updates (e.g. light moves every second frame, casters stay still), the shadow map will be updated more often than before. It will be updated once per frame - one tighter cull on frame 0 (on the frame of light movement) and one full cull on frame 1 (to create longterm shadowmap) then repeat on frame 2. Versus with tighter culling switched off, it would do full cull frame 0, and no shadowmap update in frame 1 etc. I was aware of the above, but wasn't sure whether it would be a problem in practice. If it does occur in the wild it would be pretty easy to put in some logic to detect this and revert to full updates. But I'd like to examine the situation first to confirm this is what is causing it, it may be some other logic bug. |
After testing the large MRP @clayjohn mentioned above, my results are as follows: Drawcalls (tight culling first, legacy second):
So improvement in all cases. I haven't figured out yet how to move the indoor camera, these are the default views. BTW I tested by switching on the |
Existing shadow caster culling takes no account of the camera. This PR adds the highly encapsulated class RenderingLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested again and can confirm a decrease of draw calls in all cases.
Let's go ahead with this for 4.3. It should be a nice performance improvement for many scenes. In the demo scene I tested it results in a noticeable increase in FPS for much of the level.
Thanks! |
commit e2686e16b878583c24e0f56a90332ac5da6c0014 Author: bitbrain <miguel-gonzalez@gmx.de> Date: Sun Feb 4 11:26:26 2024 +0000 Grab focus of renamed file in file system dock commit b4e2a24c1f62088b3f7ce0197afc90832fc25009 Merge: c341d9704c 547f03b6d7 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:23:21 2024 +0100 Merge pull request #87915 from dalexeev/editor-fix-parse-category-for-custom-categories Editor: Fix `_parse_category()` is not called for custom categories commit c341d9704c06f017dfc86b17149cb441ef2ef68a Merge: c680c7cffe 2ba6066d5d Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:22:58 2024 +0100 Merge pull request #87913 from OverloadedOrama/docs-feature-native-dialog Minor fix in DisplayServer docs to include Linux & Windows in `FEATURE_NATIVE_DIALOG` commit c680c7cffe3e558e5c48a2cf160bf4bd3f2fa4f8 Merge: a72789c9d6 112f489449 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:22:35 2024 +0100 Merge pull request #87912 from bruvzg/menu_name_set_fix [macOS] Fix changing main menu item names. commit a72789c9d6d3c252017cc369e946bb6375b20d71 Merge: 21d336d69d 344ee36bfe Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:22:11 2024 +0100 Merge pull request #87907 from adamscott/fix-window-override-settings Fix `display/window/size/window_{width,height}_override` to permit `0` commit 21d336d69d00646ff96a8ead3a2abc8724d2b268 Merge: f69aa5e649 6d3c987808 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:21:47 2024 +0100 Merge pull request #87903 from AThousandShips/collide_fix Fix `max_collisions` not being passed in `PhysicsBody3D::test_move` commit f69aa5e6492ece1c5a98d44ef91f6f5963cc231b Merge: 217597371e dcf4d82fb5 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:21:24 2024 +0100 Merge pull request #87887 from jtakakura/fix-unintentional-translation-in-animation-tree Fix unintentional translations in AnimationTree commit 217597371ef49e8723ba687ceb349081a9e5a3bb Merge: cfc9a9f50b 2696fee3c6 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:21:01 2024 +0100 Merge pull request #87878 from adamscott/emacs-gitignore Add basic Emacs `.gitignore` entries commit cfc9a9f50b1d69d413117ee505ab0dd8741d2985 Merge: 22d402e23d da42124efe Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:20:37 2024 +0100 Merge pull request #87869 from capnm/240202_thorvg_from_v0.12.3_to_0.12.4 ThorVG: update from v0.12.3 to v0.12.4 commit 22d402e23d8bd01cad87bc7c5ba7966be37fd20b Merge: 607a3b2409 fee70558f8 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:20:14 2024 +0100 Merge pull request #87863 from EterDelta/reload-notification Expose `NOTIFICATION_EXTENSION_RELOADED` to `ClassDB` commit 607a3b2409f534eae3981fcfe2de4e59dc282a70 Merge: 673f1614c4 17e9fd06ce Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:19:50 2024 +0100 Merge pull request #87631 from ryevdokimov/decouple-message-from-framerate Make viewport message dependent on framerate not physics step commit 673f1614c4def695df28e0e2dc2efba785ef0ad2 Merge: 0465027878 e74a0f4b09 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:19:24 2024 +0100 Merge pull request #87630 from dsnopek/openxr-passthrough-from-gdextension OpenXR: Allow moving vendor passthrough extensions to GDExtension commit 04650278789bfd23ec0f01755f96e5c02883a291 Merge: 8b0c5f2fca a2c2caa2f4 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:18:59 2024 +0100 Merge pull request #87419 from KoBeWi/very_important_i Fix shortcut name consistency in SceneTreeDock commit 8b0c5f2fca21672e0f6d1bade96811c2f8086d7f Merge: f4fb4799ae 89dacb88ec Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:18:35 2024 +0100 Merge pull request #87186 from Faless/mp/fix_remote_sync_cleanup [MP] Fix remote net ID cleanup commit f4fb4799ae3f5d2df86daf8c25a2bb66ff265f44 Merge: 82e8aef485 cb08f2a968 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:18:08 2024 +0100 Merge pull request #87185 from Faless/mp/fix_reset [MP] Fix spawned nodes not working after reset commit 82e8aef485911b6e83dd10d89795841ec6b3518f Merge: bbccd95d22 30914c0434 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:17:42 2024 +0100 Merge pull request #87132 from ryevdokimov/fix-bound-box Fix bounding boxes not being calculated properly and not respecting top-level nodes commit bbccd95d22c6c06d9d137d218ec48c7e65acb5c3 Merge: f7433a429e 7638a6c981 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:17:18 2024 +0100 Merge pull request #84885 from shana/vsproj-for-everyone New VS proj generation logic that supports any platform that wants to opt in commit f7433a429e956195a19d97996e2be9db45bae297 Merge: 1c8ae43efe f7f51bdd7a Author: Rémi Verschelde <rverschelde@gmail.com> Date: Sat Feb 3 23:16:44 2024 +0100 Merge pull request #36252 from Calinou/colored-cli-help Add colors to the command-line help commit 547f03b6d75272902fa3811792fe0b03ff7ed5c3 Author: Danil Alexeev <danil@alexeev.xyz> Date: Sat Feb 3 23:30:45 2024 +0300 Editor: Fix `_parse_category()` is not called for custom categories commit 2ba6066d5dcf4b9835310e01b00a6cec5320733b Author: Emmanouil Papadeas <manoschool@yahoo.gr> Date: Sat Feb 3 21:36:02 2024 +0200 Minor fix in DisplayServer.xml to include Linux & Windows in FEATURE_NATIVE_DIALOG commit 112f489449634984dd6f248bc9a3513393312b1f Author: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Sat Feb 3 21:12:48 2024 +0200 [macOS] Fix changing main menu item names. commit e74a0f4b0986bb6054e4ebad05fb793f64a105e1 Author: David Snopek <dsnopek@gmail.com> Date: Thu Jan 25 14:07:50 2024 -0600 OpenXR: Allow moving vendor passthrough extensions to GDExtension commit 2696fee3c6b08cd9645a61ebf08b84fd70be5a72 Author: Adam Scott <ascott.ca@gmail.com> Date: Fri Feb 2 15:32:27 2024 -0500 Add basic Emacs .gitignore entries commit 344ee36bfec57b5c737c26a6fbd0edf62a488eae Author: Adam Scott <ascott.ca@gmail.com> Date: Sat Feb 3 12:09:43 2024 -0500 Fix `display/window/size/window_{width,height}_override` set `0` commit 6d3c98780805462c677e6cf17cb66c1bd299de29 Author: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> Date: Sat Feb 3 16:19:09 2024 +0100 Fix `max_collisions` not being passed in `PhysicsBody3D::test_move` commit 1c8ae43efefa679ed01ddefb38ccf2c1e52abb22 Merge: 10e111477d 6da378afea Author: Rémi Verschelde <remi@verschelde.fr> Date: Sat Feb 3 08:14:40 2024 +0100 Merge pull request #87864 from AThousandShips/format_fix CI scripts: Fix `printf` for format checks commit dcf4d82fb5e1f58418a4ebbe21164f61e804d448 Author: Junji Takakura <j.takakura@gmail.com> Date: Sat Feb 3 10:49:04 2024 +0900 Fix unintentional translations in AnimationTree commit fee70558f8fae8ace29c10a0393197cb1679fe4a Author: EterDelta <67644822+EterDelta@users.noreply.github.com> Date: Fri Feb 2 04:35:53 2024 -0500 Expose NOTIFICATION_EXTENSION_RELOADED to ClassDB commit 17e9fd06ce8f7e98bed087f9e01a17e47a234060 Author: Robert Yevdokimov <robert.yevdokimov@autStand.com> Date: Fri Jan 26 16:37:59 2024 -0500 Make viewport message dependent on framerate not physics step commit 6da378afeaaec007d761113198bdd6c0966eafa7 Author: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> Date: Fri Feb 2 12:10:02 2024 +0100 Fix `printf` for format checks Prevents errors with input being invalid format strings commit 30914c0434da2ad11780221c242cd2d6354326a6 Author: Robbie Cooper <cooperra@users.noreply.github.com> Date: Wed Jan 10 20:44:06 2024 -0500 Fix bounding boxes Each time an AABB is rotated, it gets bigger. That means opposite rotations don't cancel out. The previous implementation repeatedly rotates children AABBs as it climbs up the tree. This often resulted in selection boxes looking bigger than their contents. This implementation calculates and applies a single final transformation to each AABB before it is merged with the others. After merging, there are no additional rotations, so AABBs remain accurate. Co-Authored-By: Robert Yevdokimov <105675984+ryevdokimov@users.noreply.github.com> commit da42124efe4f04fbb2749a255af09118b5be6156 Author: Martin Capitanio <capnm@capitanio.org> Date: Fri Feb 2 12:38:09 2024 +0100 ThorVG: update from v0.12.3 to v0.12.4 https://github.com/thorvg/thorvg/releases/tag/v0.12.4 + Full Changelog: https://github.com/thorvg/thorvg/compare/v0.12.3...v0.12.4 Godot-related SVG bug fixes: + loader/svg: Apply specification of out-of-range elliptical arc parameters, fix zero check of arc's rx and ry. thorvg/thorvg#1938 commit 10e111477db68fe65776a1d68fb1ffccaf6520fc Merge: 0d1fa8d657 0d88aadd53 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:06:29 2024 +0100 Merge pull request #87856 from bruvzg/transpbg Automatically set viewport background to transparent when window flag is set. commit 0d1fa8d657d503b478b1056422d3d3f4941116e3 Merge: 99db7204dc e896fbb638 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:06:05 2024 +0100 Merge pull request #87854 from jsjtxietian/Placeholder Update visuals immediately after resizing `Placeholder*` textures commit 99db7204dc40c2d744423aba85a6b6a870a56e58 Merge: d0f8b76ffd 559b434ef1 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:05:39 2024 +0100 Merge pull request #87848 from nikitalita/natvis-cowdata-fix Fix `godot.natvis` after CowData 64-bit promotion commit d0f8b76ffdf2de0d5f7ed164591a9d7b3456f16c Merge: 92ff4f7877 999180d5b5 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:05:14 2024 +0100 Merge pull request #87838 from paulloz/dotnet/fix-duplicate-key-on-reload C#: Fix duplicate key issue on reload commit 92ff4f7877ddbbf97c6170143b07c590ec04487c Merge: efa587ad36 8f6d4eaa31 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:04:50 2024 +0100 Merge pull request #87836 from stuartcarnie/autoreleasepool macOS: Use autorelease pools commit efa587ad36a4ff8a465cb7a076d01ce0ce83b71a Merge: 8a47d6eb50 6057ec9b06 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:04:25 2024 +0100 Merge pull request #87795 from RandomShaper/d3d12_dont_leak_please Direct3D 12: Avoid terrible leak related to command allocators commit 8a47d6eb507b80b3a4318441cea17587565179ca Merge: 7f5079f7c8 d81c9c32c5 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:03:59 2024 +0100 Merge pull request #87790 from nongvantinh/fix-87643 Fix incorrect condition for error filtering commit 7f5079f7c8c07c9508b65924c8c897e30c64d2a6 Merge: fb5f34a75a 59c75b074a Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:03:35 2024 +0100 Merge pull request #87757 from hakro/vampire-origins Do not reflect the origin lines in a mirror commit fb5f34a75a4b2e2becb97448b2bfcaf9ae214cd5 Merge: 24a2560d30 5935bfa860 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:03:09 2024 +0100 Merge pull request #87745 from dsnopek/openxr-change-reference-space OpenXR: Allow changing play area mode during active session commit 24a2560d3050ce5fd978e0c37871852340003a4a Merge: 88df5b871f 1e14503715 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:02:44 2024 +0100 Merge pull request #87682 from zaevi/fix_csharp_stringname_ref C#: Fix issues for StringName reference in `CSharpInstanceBridge.Get`. commit 88df5b871f68941589f34d3629e2b580916665a1 Merge: 8fc2407085 c00bd0008a Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:02:19 2024 +0100 Merge pull request #87318 from ckaiser/feature/indeterminate_progressbar Add indeterminate mode to ProgressBar commit 8fc2407085de7d572c75c08a8794fbf25e7fc214 Merge: 7de27ea56a eb565780e7 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:01:52 2024 +0100 Merge pull request #86654 from ryevdokimov/fix-listening-for-input-escape Prevent escape key from closing Editor Settings window when filtering for shortcuts commit 7de27ea56a9ec233457cb0c1a354361bff8e8670 Merge: d714e7b60a f191330968 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:01:25 2024 +0100 Merge pull request #84643 from rsburke4/top-level-problem-fix Fix `Node3D` children using `top_level` in different position in-editor versus runtime commit d714e7b60a0c43fcc462bb43ce0abc82db164f1b Merge: 0858c4ecbc b015fba2c8 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:00:59 2024 +0100 Merge pull request #82933 from aaronfranke/orthonormal-phys-bone-transf Orthonormalize PhysicalBone3D transforms when resetting them commit 0858c4ecbca5b48a9f3439e6bb73ad045dabf20c Merge: 58ffe0958a 61872e47af Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:00:35 2024 +0100 Merge pull request #82889 from ershn/improve_process_mode_api_documentation Improve Node's documentation on `process_mode` related members/methods commit 58ffe0958a0a54b2ed6d76a745de9500b55470d8 Merge: e0eccaeb60 b8a7270567 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 12:00:07 2024 +0100 Merge pull request #74195 from TheSecondReal0/flow-top-to-bottom Add option to reverse FlowContainer fill direction (HFlow bottom-to-top, VFlow right-to-left) commit e0eccaeb60b40fd7aedd272e5c9dfff123e42c1a Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Feb 2 10:47:57 2024 +0100 i18n: Sync translations with Weblate Still tracking 4.2 translations for now. (cherry picked from commit 991454b8bdf4e90545d4ffe84a6bff865782bc6a) commit 0d88aadd53fe966942fb0aa13bce2d177648a897 Author: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Fri Feb 2 09:46:01 2024 +0200 Automatically set viewport background to transparent when window flag is set. commit e896fbb638674972ce98d6475398bb3765b65b71 Author: jsjtxietian <jsjtxietian@outlook.com> Date: Fri Feb 2 14:56:05 2024 +0800 Support immediately update ui after resizing placeholder* texture commit f7f51bdd7a5b73143ef126c85f767cb5d5b54e84 Author: Hugo Locurcio <hugo.locurcio@hugo.pro> Date: Sat Feb 15 21:37:48 2020 +0100 Add colors to the command-line help commit a2c2caa2f495f5061b7c060f4b89c0732ad43571 Author: kobewi <kobewi4e@gmail.com> Date: Sat Jan 20 20:05:28 2024 +0100 Fix shortcut name consistency in SceneTreeDock commit 559b434ef115c223d2dfc115dd553a46ce39b820 Author: nikitalita <69168929+nikitalita@users.noreply.github.com> Date: Thu Feb 1 13:40:06 2024 -0800 Fix natvis after CowData 64-bit changes commit 999180d5b5c1023f441100e7b45a3aa346a2e898 Author: Paul Joannon <hello@pauljoannon.com> Date: Thu Feb 1 21:06:17 2024 +0100 Delay fs update when populating path bimap commit 8f6d4eaa31662bbff08fb0a694fb41f74f225b0a Author: Stuart Carnie <stuart.carnie@gmail.com> Date: Fri Feb 2 07:06:53 2024 +1100 use autorelease pools around main loop Reduces memory usage considerably commit b8a7270567abdbb94a425727eb0b365d0c06f85d Author: TheSecondReal0 <66881186+TheSecondReal0@users.noreply.github.com> Date: Thu Jun 29 00:41:08 2023 -0600 Add option to reverse FlowContainer fill direction (HFlow bottom-to-top, VFlow right-to-left) commit c00bd0008a9ed2d0c31d23c9364f7d818d3beb08 Author: Christian Kaiser <info@ckaiser.com.ar> Date: Wed Jan 17 21:49:57 2024 -0300 Add indeterminate mode to ProgressBar commit 6057ec9b06e71d4d0fc68de1067001ec3f41000d Author: Pedro J. Estébanez <pedrojrulez@gmail.com> Date: Wed Jan 31 20:00:23 2024 +0100 Direct3D 12: Avoid terrible leak related to command allocators commit 5935bfa8603b7c22df4ea777a688723a408e6c5d Author: David Snopek <dsnopek@gmail.com> Date: Tue Jan 30 10:30:54 2024 -0600 OpenXR: Allow changing play area mode during active session commit d81c9c32c5ea4e91de3038b30c4a7a9ab78b7481 Author: Nông Văn Tình <vannongtinh@gmail.com> Date: Wed Jan 31 23:01:37 2024 +0700 Fix incorrect condition for error filtering Fixes: #87643 The original condition stopped immediately after checking for 'searchText' in the 'Message' field, resulting in premature termination of subsequent checks. This fix ensures that all relevant conditions are appropriately evaluated before determining the filtering outcome. Additionally, accompanying changes include improved code readability for better comprehension. This adjustment enhances the maintainability of the error filtering mechanism, contributing to a more robust codebase overall. commit 7638a6c9811590a384e2126dd004e302f76d3e4a Author: Andreia Gaita <shana@spoiledcat.net> Date: Tue Nov 14 13:39:44 2023 +0100 Add new VS proj generation logic that supports any platform that wants to opt in Custom Visual Studio project generation logic that supports any platform that has a msvs.py script, so Visual Studio can be used to run scons for any platform, with the right defines per target. Invoked with `scons vsproj=yes` To generate build configuration files for all platforms+targets+arch combinations, users should call ``` scons vsproj=yes platform=XXX target=YYY [other build flags] ``` for each combination of platform+target[+arch]. This will generate the relevant vs project files but skip the build process, so that project files can be quickly generated without waiting for a command line build. This lets project files be quickly generated even if there are build errors. All possible combinations of platform+target are created in the solution file by default, but they won't do anything until each one is set up with a scons vsproj=yes command for the respective platform in the appropriate command line. This lets users only generate the combinations they need, and VS won't have to parse settings for other combos. Only platforms that opt in to vs proj generation by having a msvs.py file in the platform folder are included. Platforms with a msvs.py file will be added to the solution, but only the current active platform+target+arch will have a build configuration generated, because we only know what the right defines/includes/flags/etc are on the active build target currently being processed by scons. Platforms that don't support an editor target will have a dummy editor target that won't do anything on build, but will have the files and configuration for the windows editor target. To generate AND build from the command line, run ``` scons vsproj=yes vsproj_gen_only=no ``` commit 61872e47aff153d0cdbafbc41b3c180fba9f3397 Author: Ershn <ershnsyn@gmail.com> Date: Fri Oct 6 11:10:56 2023 +0900 Improve Node's documentation on process_mode related members/methods commit 9adb7c7d130c6d4eb0e80b92d6eebd71fac3384d Merge: f23fda39d3 d8658df94e Author: Rémi Verschelde <remi@verschelde.fr> Date: Wed Jan 31 14:01:59 2024 +0100 Merge pull request #87764 from Riteo/wayland-native-handle Wayland: Implement `window_get_native_handle` commit f23fda39d3af5915754379f652103505ab038c50 Merge: f8a039e9b5 edb21e0573 Author: Rémi Verschelde <remi@verschelde.fr> Date: Wed Jan 31 14:00:30 2024 +0100 Merge pull request #87776 from bruvzg/wl_nfd [Wayland] Add support for native file dialogs. commit edb21e05739b46c98852f4ffbadc040b11efc6db Author: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Wed Jan 31 11:43:56 2024 +0200 [Wayland] Add support for native file dialogs. commit d8658df94e09a3ed82c66eb5085c89ece1239d0c Author: Riteo <riteo@posteo.net> Date: Fri Jan 26 16:27:44 2024 +0100 Wayland: implement `window_get_native_handle` This will be the most useful for stuff like OpenXR, although we'd need a way to eventually also expose the EGL handles. commit f8a039e9b54875a3435ace4b9953cefa591a0753 Merge: cb0d450b7d 4577dfdb67 Author: Rémi Verschelde <remi@verschelde.fr> Date: Wed Jan 31 11:13:19 2024 +0100 Merge pull request #84745 from lawnjelly/lightcull Shadow volume culling and tighter shadow caster culling commit cb0d450b7deb5f72c4278fb1c769cc5cec591041 Merge: 099401563c 4f41b94943 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:57:17 2024 +0100 Merge pull request #87775 from clayjohn/GLTF-export-ra-rg Remove workaround in GLTF exporter that double converts ra textures to rg commit 099401563c7c1ab16e3abe64cea07baddd039fd3 Merge: a3d50f7714 a5dffe7804 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:56:53 2024 +0100 Merge pull request #87772 from TokageItLab/fix-cubic-animation-time Fix cubic interpolation wrong argument for the time commit a3d50f7714103ebd255249a8c183378a6f49d523 Merge: 7de88873a6 87d97fe7d8 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:56:30 2024 +0100 Merge pull request #87769 from ryevdokimov/fix-all-tools-can-select-regression Fix a regression that breaks gizmo transforming when 'View Gizmos' is off commit 7de88873a6af14bdbc5b46f8a917091abdf4a577 Merge: 3939a881f0 c3d6cc57be Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:56:06 2024 +0100 Merge pull request #87765 from Riteo/wayland-skip-no-scanner Wayland: Disable backend at build-time if wayland-scanner is missing commit 3939a881f06f9dffaab4b6984c708b140b2214bf Merge: 6287d7ce70 4ad74a5663 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:55:43 2024 +0100 Merge pull request #87755 from KoBeWi/tidy_for_no_reason Some editor code cleanup commit 6287d7ce7017b5ac74d0dc3a60bdfb2b4098b6f8 Merge: 1c916c3d5b f711b4f01f Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:55:19 2024 +0100 Merge pull request #87720 from fire/llvm-mingw-qitabent Avoid non-constant-expression cannot be narrowed on Windows on mingw. commit 1c916c3d5beebc8bc6453b563f611813ac855c58 Merge: ad8b136a31 3d2cbb216e Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:54:55 2024 +0100 Merge pull request #87546 from dsnopek/openxr-hand-tracking-vendor-extensions OpenXR: Make it possible to implement vendor extensions to hand tracking from GDExtension commit ad8b136a314abae07ee413fd6554b07a51dfd597 Merge: 51f71749a3 22421e134b Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:54:30 2024 +0100 Merge pull request #87436 from Mickeon/doc-peeves-Timer-s-out Tweak Timer documentation commit 51f71749a314b93083830e79f7086f328ec1b770 Merge: eb105b9ae9 2dae53c316 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:54:06 2024 +0100 Merge pull request #87389 from scgm0/file_access_1 Explicitly initialize all of `FileAccess::create_func[ACCESS_MAX]` commit eb105b9ae9ddf1935f0f34d66a759a707f66f7e6 Merge: 04f7014bd1 d2ab1b60c4 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:53:43 2024 +0100 Merge pull request #87372 from Mickeon/documentation-SkeletonProfileHumanoid-bone-list Document bone list for SkeletonProfileHumanoid commit 04f7014bd100e30524db2b4d34a60e6f675b09c8 Merge: 313f623b9d 253ad63005 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Wed Jan 31 10:53:18 2024 +0100 Merge pull request #86690 from Calinou/editor-fov-clarify-vertical Clarify the FOV setting in the 3D editor camera is vertical FOV commit 2dae53c316493899736e42e3a38fb8190006adc8 Author: scgm0 <2682963017@qq.com> Date: Sat Jan 20 06:31:48 2024 +0800 Explicitly initialize all of `FileAccess::create_func[ACCESS_MAX]` commit 22421e134b3b8a2e1b7fa0364cb0c3c71319caad Author: Micky <micheledevita2@gmail.com> Date: Sat Jan 20 18:49:05 2024 +0100 Tweak Timer documentation commit 4f41b9494353adb529af6c062c86361988481e27 Author: clayjohn <claynjohn@gmail.com> Date: Tue Jan 30 23:22:20 2024 -0800 Remove workaround in GLTF exporter that double converts ra textures to rg commit b015fba2c8a481efe65fe29da10a1be5022d9cd6 Author: Aaron Franke <arnfranke@yahoo.com> Date: Fri Oct 6 15:39:46 2023 -0500 Orthonormalize PhysicalBone3D transforms commit a5dffe78040af3d03bddc3a0acfbf3119fe0e114 Author: Silc Lizard (Tokage) Renew <61938263+TokageItLab@users.noreply.github.com> Date: Wed Jan 31 13:56:25 2024 +0900 Fix cubic interpolation wrong argument for the time commit f711b4f01f9921a52acde6135ca8dfa992172828 Author: K. S. Ernest (iFire) Lee <fire@users.noreply.github.com> Date: Tue Jan 30 20:18:15 2024 -0800 Avoid non-constant-expression cannot be narrowed on Windows mingw. Fixes non-constant-expression cannot be narrowed from type 'DWORD' (aka 'unsigned long') to 'int' in initializer list [-Wc++11-narrowing] Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com> commit 87d97fe7d84f218a62b09b890b3e1039a063fe66 Author: Robert Yevdokimov <robert.yevdokimov@autStand.com> Date: Tue Jan 30 22:31:52 2024 -0500 Fix a regression in #86804 that breaks gizmos transforming when 'View Gizmos' is off commit c3d6cc57be605fad96ae092685578ef215ca8dbc Author: Riteo <riteo@posteo.net> Date: Wed Jan 31 02:08:33 2024 +0100 Wayland: disable backend at build-time if wayland-scanner is missing This allows previous X11-only setups to still build Godot with default settings. Note that compilation will still abort if wayland-scanner is present but not the various Wayland libraries. commit 253ad6300528c9e802a2ebea41ed8c5aeaa0f822 Author: Hugo Locurcio <hugo.locurcio@hugo.pro> Date: Mon Jan 1 17:43:01 2024 +0100 Clarify the FOV setting in the 3D editor camera is vertical FOV commit 59c75b074a8630d2cf2fbd6b23fb4d68fa3b3a97 Author: Hakim <hakim.rouatbi@gmail.com> Date: Tue Jan 30 22:57:02 2024 +0100 Do not reflect the origin lines in a mirror commit 4ad74a5663d1e38f4e95159ec1caa53bae3b8799 Author: kobewi <kobewi4e@gmail.com> Date: Tue Jan 30 21:33:31 2024 +0100 Some editor code cleanup commit 313f623b9d102cc8c411ae7cab9518f98c2f87f2 Merge: 0cce6eb150 dec635119e Author: Rémi Verschelde <remi@verschelde.fr> Date: Tue Jan 30 19:35:09 2024 +0100 Merge pull request #87738 from akien-mga/mbedtls-2.28.7 mbedtls: Update to upstream version 2.28.7 commit 0cce6eb1505f7dd9c0cece2a825b1509cf23f158 Merge: cae7599498 f923b58f88 Author: Rémi Verschelde <remi@verschelde.fr> Date: Tue Jan 30 19:10:46 2024 +0100 Merge pull request #87443 from YuriSizov/pms-hotter-younger-cousin Improve layout and UX of the project manager commit f923b58f88e43c09c45ffd155a71d3eb8349bf22 Author: Yuri Sizov <yuris@humnom.net> Date: Tue Jan 30 17:35:46 2024 +0100 Correctly handle failures to open a project commit 28e8a4c0ee782fc54b822401885b38172b9b0e41 Author: Yuri Sizov <yuris@humnom.net> Date: Tue Jan 30 17:35:46 2024 +0100 Replace empty list dialog with an integrated panel commit 068c0d2699066f833694cf912d299acbf6b8755a Author: Yuri Sizov <yuris@humnom.net> Date: Tue Jan 30 17:35:46 2024 +0100 Implement a quick settings dialog for the project manager Currently it allows to adjust language, theme preset, UI scaling, and network mode. Project manager has been updated to support dynamic theme updates. commit 4d97c33503bff8c83a82ce3be5f55c0fb577db39 Author: Yuri Sizov <yuris@humnom.net> Date: Tue Jan 30 17:35:46 2024 +0100 Add a network mode setting to bring the editor offline This PR also adds default font styles for RichTextLabels in the editor, and improves the introduction dialog when you don't have any local projects available. The offline mode is implemented in the asset library plugin, alongside some code improvements. commit bac037b1e0adc20aa37f2920f586ed9f8ec0e3f0 Author: Yuri Sizov <yuris@humnom.net> Date: Tue Jan 30 17:35:46 2024 +0100 Improve the project manager UI commit cae7599498070226fecba29d45dffaa36ecf20b4 Merge: aff437e623 10445d80d8 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:48:22 2024 +0100 Merge pull request #87741 from akien-mga/sync-gamecontrollerdb Sync controller mappings DB with SDL2 community repo commit aff437e6235d1f563437c441ce35abbfcf39f7f1 Merge: 07df0a7ae5 ffdf8084c0 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:48:19 2024 +0100 Merge pull request #87734 from bruvzg/raw_str_d3d Use raw strings for D3D12 install messages. commit 07df0a7ae57a92c46b92e63afadeed6e17d4ced4 Merge: 3dfedd69ea 52aa5668fe Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:48:15 2024 +0100 Merge pull request #87732 from aaronfranke/fix-audio-player-3d-autoplay-notif Fix AudioStreamPlayer3D autoplay and internal notifications commit 3dfedd69eafdf51a8a60aba226b1414a9f8e69e3 Merge: 736696b533 7565d1f3ab Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:48:11 2024 +0100 Merge pull request #87711 from matthew1006/threaded-loading-progress-fix Fix `ResourceLoader.load_threaded_get_status` returning `[0]` constantly in exported projects. commit 736696b533f6add4751467c144dd5a06c905d0d6 Merge: ba6ecf3e06 82380ec700 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:48:07 2024 +0100 Merge pull request #87679 from raulsntos/dotnet/remove-unused C#: Remove unused code commit ba6ecf3e06802e8eb114822e26ac8c84cd5cdbd1 Merge: 926a7dffd6 25c0c95960 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:48:02 2024 +0100 Merge pull request #87676 from Mickeon/oooh-Reduz-of-the-past-You're-so-quirky Mention and deprecate InputEventJoypadButton's pressure commit 926a7dffd6660841a80e0db2502bfac6f17bca0f Merge: f390b86acd 5e7cda3405 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:47:58 2024 +0100 Merge pull request #87421 from dalexeev/gds-docgen-use-autoload-singleton-name GDScript: Use autoload singleton name in `GDScriptDocGen` commit f390b86acd22e2722d79e20b9a42454e59c451d0 Merge: 9572cf5ab2 6e965f6c83 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:47:54 2024 +0100 Merge pull request #87194 from kitbdev/tab-deselect Allow no tabs to be selected in TabBar and TabContainer commit 9572cf5ab2e34bd4a932e3a1c021587f656b85ed Merge: 1f027f9aef b31acb0cd5 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:47:50 2024 +0100 Merge pull request #86823 from dalexeev/gds-utility-func-as-callable GDScript: Allow utility functions to be used as `Callable` commit 1f027f9aef06c423411acc17a87fba1c0f62d686 Merge: 6a126b0934 e07ec89bdf Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:47:44 2024 +0100 Merge pull request #86471 from dalexeev/gds-fix-pot-gen-skips-some-nodes-2 GDScript: Fix POT generator skips some nodes (part 2) commit 6a126b0934d1dac09aaf504da2f5d7dc1156feda Merge: a8cfd1436a 7e0f7d3abd Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:47:38 2024 +0100 Merge pull request #86180 from Riteo/wayland-squashed Add Wayland support (squashed review edition) commit a8cfd1436a5e9c87ff4910a18641e60761994076 Merge: 2edfdace76 3a4a0c6b15 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:47:33 2024 +0100 Merge pull request #86176 from dalexeev/gds-fix-type-highlighting GDScript: Fix type highlighting commit 2edfdace769dc9b3b5c5c06915c234ca73dc28c7 Merge: 51991e2014 faebb0895f Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 17:47:23 2024 +0100 Merge pull request #83220 from dalexeev/gds-highlight-code-regions GDScript: Highlight code region comments commit 7496f99060d7655cbf974dba3851838faba629d4 Author: Yuri Sizov <yuris@humnom.net> Date: Tue Jan 30 17:35:46 2024 +0100 Create a MainScreenButton theme variation This turns custom font theme properties into a proper variation, which makes applying it simpler. commit 7e0f7d3abd4a02f423a5b95616840e028a9af7fa Author: Riteo <riteo@posteo.net> Date: Fri Dec 15 02:55:34 2023 +0100 Add Wayland support Not everything is yet implemented, either for Godot or personal limitations (I don't have all hardware in the world). A brief list of the most important issues follows: - Single-window only: the `DisplayServer` API doesn't expose enough information for properly creating XDG shell windows. - Very dumb rendering loop: this is very complicated, just know that the low consumption mode is forced to 2000 Hz and some clever hacks are in place to overcome a specific Wayland limitation. This will be improved to the extent possible both downstream and upstream. - Features to implement yet: IME, touch input, native file dialog, drawing tablet (commented out due to a refactor), screen recording. - Mouse passthrough can't be implement through a poly API, we need a rect-based one. - The cursor doesn't yet support fractional scaling. - Auto scale is rounded up when using fractional scaling as we don't have a per-window scale query API (basically we need `DisplayServer::window_get_scale`). - Building with `x11=no wayland=yes opengl=yes openxr=yes` fails. This also adds a new project property and editor setting for selecting the default DisplayServer to start, to allow this backend to start first in exported projects (X11 is still the default for now). The editor setting always overrides the project setting. Special thanks to Drew Devault, toger5, Sebastian Krzyszkowiak, Leandro Benedet Garcia, Subhransu, Yury Zhuravlev and Mara Huldra. commit 10445d80d87ac6a8340a749071a218c9eac6ceca Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 15:14:27 2024 +0100 Sync controller mappings DB with SDL2 community repo Synced with gabomdq/SDL_GameControllerDB@232c738ce0948eb86b6b1b6ba7bcdc92d10faef0 commit dec635119eaffb31f566d3cb5a49f49d65e73a69 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Tue Jan 30 14:09:13 2024 +0100 mbedtls: Update to upstream version 2.28.7 commit ffdf8084c07f7989c129a46ff339debfdd448080 Author: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Tue Jan 30 11:13:12 2024 +0200 Use raw strings for D3D12 install messages. commit 4577dfdb6747600438ac4b86c29a4d6c12ec9b0a Author: lawnjelly <lawnjelly@gmail.com> Date: Fri Nov 10 08:17:47 2023 +0000 Shadow volume culling and tighter shadow caster culling Existing shadow caster culling takes no account of the camera. This PR adds the highly encapsulated class RenderingLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum. commit 52aa5668fe8bde49104c06345eaffc56fbf30958 Author: Aaron Franke <arnfranke@yahoo.com> Date: Tue Jan 30 00:56:12 2024 -0600 Fix AudioStreamPlayer3D autoplay and internal notifications commit 25c0c95960a6c6b8e65da7f9828fd83b3c6d1720 Author: Micky <micheledevita2@gmail.com> Date: Sun Jan 28 14:45:42 2024 +0100 Mention and deprecate InputEventJoypadButton's pressure commit 51991e20143a39e9ef0107163eaf283ca0a761ea Merge: 9ab5cedef6 4628d0c7dc Author: Rémi Verschelde <remi@verschelde.fr> Date: Mon Jan 29 23:24:05 2024 +0100 Merge pull request #84674 from m4gr3d/add_flag_to_run_scons_from_gradle Add parameter to allow generation of the Godot native shared libraries from gradle commit 9ab5cedef6de32826b9184e960b3880df3888a5a Merge: 37e5a71f5d 745f8e112f Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 21:34:59 2024 +0100 Merge pull request #87712 from akien-mga/revert-gdscript-uid-annotations-for-now Revert "Add UID support to GDScript files" (for now) commit 37e5a71f5da86c090850d8e30cdcc890dd903d61 Merge: 86f6811752 666daf47c3 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 21:34:36 2024 +0100 Merge pull request #87710 from AThousandShips/dummy_free Free dummy renderer objects commit 86f6811752683c79ad05ee6c075b180ab20352aa Merge: 6809791fee 0de8a736da Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 21:34:13 2024 +0100 Merge pull request #87701 from KoBeWi/extratreestial_tweens Allow `Node.create_tween()` outside SceneTree commit 6809791feec71790046a266707eb37dfb4721a4e Merge: 1d3722a6aa f1781fe9d1 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 21:33:49 2024 +0100 Merge pull request #87553 from clayjohn/GLES3-shader-compilation Significantly improve the speed of shader compilation in compatibility backend commit 1d3722a6aa76ae5cafbadc6f48eaf6f0567d5845 Merge: b65c495d6e 595c6248a3 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 21:33:26 2024 +0100 Merge pull request #87170 from AThousandShips/run_fix Fix reloading current scene forgetting path commit b65c495d6eefa0a33a58345cce89660a7cff101c Merge: 6a47a53273 f5ca58d32f Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 21:33:00 2024 +0100 Merge pull request #86845 from RandomShaper/no_load_regress Avoid regressing in progress reporting in resource load commit 6a47a5327340f71eac49fc99ffe832927a8ea6f9 Merge: 6c2f412cc7 000367893a Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 21:32:35 2024 +0100 Merge pull request #86765 from reduz/filesystem-to-bottom Allow to move FileSystem dock to bottom and drag resources across bottom docks commit 6c2f412cc76d95e0080dc9e271758b4100f5ef89 Merge: 64ddf1ff0c 7d6ded2027 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 21:32:10 2024 +0100 Merge pull request #84760 from KoBeWi/ultimate_get_property_list_reloaded Fetch override list from ThemeDB commit 64ddf1ff0cc88cad79f570e3dbeba560cdd6248f Merge: fa48a51183 085629a7c9 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 21:31:42 2024 +0100 Merge pull request #79436 from Calinou/textureregion-increase-max-zoom Extend minimum/maximum zoom level of TextureRegion editor commit 745f8e112fcf5d61e0fc377bdbc2539dd6b16ef9 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 21:00:26 2024 +0100 Revert "Add UID support to GDScript files" This reverts commit c7f68a27ec4b825302998eeb5a400f869cd21cf7. We still think GDScript files need UIDs to allow safe refactoring, but we're still debating what form those should take exactly. So far there seems to be agreement that it shouldn't be done via an annotation as implemented here, so we're reverting this one for now, to revisit the feature in a future PR. commit 6e965f6c8337eb9946a5e3da7183d89aa53aac38 Author: kit <kitbdev@gmail.com> Date: Sun Jan 14 18:39:47 2024 -0500 Allow tab deselection commit 0de8a736dad9bf9ed5b8075946bf1e96a47b20f6 Author: kobewi <kobewi4e@gmail.com> Date: Mon Jan 29 14:10:07 2024 +0100 Allow Node.create_tween() outside SceneTree commit 666daf47c31307c50a9f0eb08fc5146d0a3e5f32 Author: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> Date: Mon Jan 29 18:48:47 2024 +0100 Free dummy renderer objects These leaked during tests etc. commit 7565d1f3abb592a5978613701a4b9b744df748da Author: Matthew Edwards <matthew1006@hotmail.co.uk> Date: Mon Jan 29 17:27:57 2024 +0000 Push p_original_path into load_paths_stack and sub_tasks instead of p_path. commit 7d6ded2027d0c81fa0e0419d8afc57699fe1e468 Author: kobewi <kobewi4e@gmail.com> Date: Sat Nov 11 18:29:42 2023 +0100 Fetch override list from ThemeDB commit 000367893ad3594b8e9318b98bd96e1a6bf0f94a Author: Juan Linietsky <reduzio@gmail.com> Date: Mon Jan 29 14:36:10 2024 +0100 Ability to move FileSystem dock to bottom * Allows moving the filesystem dock to the bottom * Added ability to drag resources across bottom docks commit 085629a7c91c26b1664dcbf93b2d413688279435 Author: Hugo Locurcio <hugo.locurcio@hugo.pro> Date: Thu Jul 13 20:29:47 2023 +0200 Extend minimum/maximum zoom level of TextureRegion editor This also applies a similar change to the SpriteFrames editor. commit fa48a51183567934984b381ad8ec281cb24d66ba Merge: e59e58a68a 15369fdb1d Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:18:09 2024 +0100 Merge pull request #87688 from AThousandShips/what_is_this Remove unnecessary `this->` expressions commit e59e58a68afd60d0fa63e61751bd6d30575f3bb3 Merge: 6305277312 de5b0d7103 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:18:05 2024 +0100 Merge pull request #87686 from radzo73/get_button_color [TreeItem] Add `get_button_color()` commit 63052773125a684d9c6c7250e6f8be523cfda23f Merge: f0144d7f45 f77f46ebff Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:18:00 2024 +0100 Merge pull request #87670 from RandomShaper/d3d12_16bit Direct3D 12: Query support for 16-bit operations commit f0144d7f450d461bf8d4c026d24e490654233760 Merge: 5c61803971 9d50a486bf Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:56 2024 +0100 Merge pull request #87669 from bs-mwoerner/csharp_deadlock Fix possible deadlock when creating scripts during a background garbage collection commit 5c61803971a906b65cf1b61d3856b66b4737efe6 Merge: 9a789adff2 85df221610 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:52 2024 +0100 Merge pull request #87668 from bruvzg/add_baseline_offset [TextServer / Font] Add support for customizable baseline offset. commit 9a789adff27ccaae2e0445d4c60289f00ea8d9df Merge: 074b4eb770 36c2c4bf0d Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:48 2024 +0100 Merge pull request #87632 from Sauermann/fix-remove-unused-group-variable Remove unused internal Variable `Viewport::gui_input_group` commit 074b4eb7704538b869664d4b4ec5f1f6882053d5 Merge: 604f8b093e bcc96441d6 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:45 2024 +0100 Merge pull request #87627 from RandomShaper/one_more_undef Undefine yet another macro from Windows headers commit 604f8b093e25048c67c9d0d7b8a4f2efdd9fa6b2 Merge: 1fdee4f6f5 dfa303f7c4 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:41 2024 +0100 Merge pull request #87624 from bruvzg/dx12_old_mingw [D3D12] Add support for building with pre-11.0.0 MinGW versions, make PIX runtime opt-in. commit 1fdee4f6f526b1d3499a72cdf013d462d5507d49 Merge: 75d2cf3075 cbc929edf0 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:37 2024 +0100 Merge pull request #87618 from DarioSamo/lightmapper_samplerless Do not use a linear sampler on lightmapper when retrieving grid data. commit 75d2cf3075514f01a4897827976314ca0f3eb922 Merge: 15c78ae8cc d9057c8b56 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:33 2024 +0100 Merge pull request #87616 from ryevdokimov/cancel-transformation-2d Add cancel transformation shortcut to 2D to match 3D commit 15c78ae8ccf41b498aff9545464d59e01ef80a7a Merge: 563364d93e 73589f6db6 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:29 2024 +0100 Merge pull request #87612 from capnm/240126_thorvg_from_v0.12.1_to_0.12.3 ThorVG: update from v0.12.1 to v0.12.3 commit 563364d93e2381d44332352a16af1a9e989d0734 Merge: 78680cdebc f04b584ed3 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:25 2024 +0100 Merge pull request #87603 from jsjtxietian/_property_get_revert Fix `ShaderMaterial::_property_get_revert` crash when given non-existing `p_name` commit 78680cdebc8a97bc2d81decc72cd8cccafe1f669 Merge: ef9cb3dfa5 47da9f8892 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:21 2024 +0100 Merge pull request #87572 from RandomShaper/d3d12_custom_dbg_print Direct3D 12: Fix and enable custom debug printing commit ef9cb3dfa5156901a7133ff30a46a844c4d97ce1 Merge: 8202a73c73 3e4e0f08c4 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:17 2024 +0100 Merge pull request #87535 from Mickeon/scene-tree-configuration-warnings-cleanup Improve appearance of Node configuration warnings commit 8202a73c73623c51c63ff3bd70f5e44a39c59b78 Merge: a248e8c78d 39f279710c Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:12 2024 +0100 Merge pull request #87512 from DarioSamo/rd_graph_fixes Fix validation errors by improving stage and slice tracking behavior of RenderingDeviceGraph. commit a248e8c78d30b2ba1eab272038e7ae6e1db74f26 Merge: 68957d2944 06f2f1ecbc Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:09 2024 +0100 Merge pull request #87502 from mihe/soft-body-bindings Bind physics server methods related to `SoftBody3D` commit 68957d29442413e26857c1d41e8565209e619d5d Merge: c1dbaa73a6 c228e31a96 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:05 2024 +0100 Merge pull request #87445 from KoBeWi/expand_the_Control_empire Clarify sizing of main screen plugins commit c1dbaa73a6e0935a3abc31584d35063e543536b0 Merge: 061c776228 e28b31ec96 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:17:00 2024 +0100 Merge pull request #87393 from stuartcarnie/bugfix Use `os_unfair_lock` on Apple platforms commit 061c77622822ce7e3a4deaa60808c0773186a6c0 Merge: 269145f48a d644b9b640 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:55 2024 +0100 Merge pull request #87381 from YuriSizov/core-sneaky-properties Better hide internal properties from users commit 269145f48a13a943f52d67a20d9aa7b075f1e0db Merge: 440d8cd989 0437db0106 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:51 2024 +0100 Merge pull request #87300 from Calinou/math-normalize-error-show-value Display values in vector/quaternion math function errors commit 440d8cd989c484e5b3bee7f733574a92376d98c9 Merge: ec08b323bf 9d0302d708 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:48 2024 +0100 Merge pull request #87167 from 0x0ACB/public_character_body Make CharacterBody properties public commit ec08b323bfff8145b67e88e09a2e8c4a680d3c49 Merge: c2968e497d e03f2b65c2 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:42 2024 +0100 Merge pull request #86927 from Mickeon/filling-docs Fill the documentation of a few overlooked classes commit c2968e497d1bd0b4b9e4f3fe6599589f1702c2bc Merge: 44b92ec85f 8723d116c4 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:37 2024 +0100 Merge pull request #86693 from Mickeon/doc-peeves-midiiiiii Improve all documentation about MIDI support commit 44b92ec85f229d634394bda827364e7473122f36 Merge: 6d1e51c23e 50d33aac6c Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:34 2024 +0100 Merge pull request #86313 from BlueCube3310/etc2-r-rg Implement `ETC2_R` and `ETC2_RG` compression to `etcpak` commit 6d1e51c23edf5ba61843e1407425fa916911171e Merge: 13bf4fd19a 5579edb137 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:28 2024 +0100 Merge pull request #86273 from DevPoodle/sampler-state-descriptions Add descriptions to remaining properties of RDSamplerState commit 13bf4fd19ac9a5c44b79a89b825efd19286783bc Merge: 2a862a6f6c 857586b7ae Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:22 2024 +0100 Merge pull request #85519 from mxaddict/blender-rpc-server Added proper timeout for blender rpc connection commit 2a862a6f6cc20a849a677dce9606ea0f603f8f33 Merge: 964de297e4 f16f8bf39b Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:19 2024 +0100 Merge pull request #85503 from 20kdc/bone2d-fix-apply_rest-master Fix the documentation of `Bone2D::apply_rest` commit 964de297e4ebcd12c1c8861b6821a0244dedcb63 Merge: 8febe50797 7d0d405e22 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:12 2024 +0100 Merge pull request #85450 from KoBeWi/advanced_properties_for_every_Object Improve documentation for dynamic properties commit 8febe507977b6d68c77ad4185eef257e3e193243 Merge: 0796d08b8f ad106a283b Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:05 2024 +0100 Merge pull request #85448 from mxaddict/master Update `blender_path` behavior to require exact path to executable instead of trying to guess it commit 0796d08b8f8bf590074b9b09f878f933ce867bdd Merge: 07d290e67e 04a930d9a6 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:16:01 2024 +0100 Merge pull request #84515 from Calinou/editor-multi-window-unavailable-disable-buttons Disable multi-window buttons instead of hiding them when support is unavailable commit 07d290e67e008e8c1d839271ad57a19db0f6be06 Merge: e2c5d2fada f468e59efd Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:15:57 2024 +0100 Merge pull request #83747 from Riteo/gdext-doc GDExtension: Add an interface for loading extra documentation commit e2c5d2fada518c5785da3a8b3de0fff00611a639 Merge: f220d46cdc c051c44df9 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:15:53 2024 +0100 Merge pull request #82113 from nongvantinh/fix-50163 Allow Editor to reload external changes of scripts commit f220d46cdccb15f1aa141cd89c9dacee85b1b6ec Merge: 17e7f85c06 8406e60522 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Mon Jan 29 13:15:42 2024 +0100 Merge pull request #80231 from romlok/input-key-location Support detecting and mapping ctrl/alt/shift/meta by their left/right physical location commit d644b9b640e905555e7e59fcc85eeb0b786141b6 Author: Yuri Sizov <yuris@humnom.net> Date: Fri Jan 26 20:42:20 2024 +0100 Better hide internal properties from users commit 15369fdb1d692e1515dd888dfbae275074be63be Author: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> Date: Sun Jan 28 21:51:39 2024 +0100 Remove unnecessary `this->` expressions commit f04b584ed36016a1fcf6f26400f84ee4159560e2 Author: jsjtxietian <jsjtxietian@outlook.com> Date: Fri Jan 26 12:47:55 2024 +0800 Fix `ShaderMaterial::_property_get_revert` crash when given non-exist `p_name` commit de5b0d71036c6e412de89f77eca57a4e35ffd3a3 Author: radzo73 <radzo73qwerty@gmail.com> Date: Sun Jan 28 14:55:48 2024 -0500 Add `get_button_color(column, id)` Docs should point to Color constuctor instead of just the class, but I unfortunately cannot. commit 9d50a486bf00592888664828b35d703c46eaa9b0 Author: Michael Wörner <michael.woerner@blickshift.de> Date: Sun Jan 28 11:46:38 2024 +0100 Fixed ~CSharpScript() holding on to a mutex longer than necessary, creating potential for a deadlock. commit c228e31a96f25c337f1b11b639783fb43c857e8c Author: kobewi <kobewi4e@gmail.com> Date: Sun Jan 21 16:05:52 2024 +0100 Clarify sizing of main screen plugins commit 1e14503715d20bc1fc10f0343e7eecf6d6707feb Author: Zae <zaevi@live.com> Date: Mon Jan 29 02:04:02 2024 +0800 C#: Fix issues for StringName reference in `CSharpInstanceBridge.Get`. commit 0437db0106374ca42b0081e46954e72208b5b30b Author: Hugo Locurcio <hugo.locurcio@hugo.pro> Date: Wed Jan 17 17:30:04 2024 +0100 Display values in vector/quaternion math function errors This can help track down the source of the error more easily. commit 82380ec7009223629924f2931ce748396c0001f4 Author: Raul Santos <raulsntos@gmail.com> Date: Mon Jan 22 05:38:20 2024 +0100 C#: Remove unused code - Remove `AotBuilder` that was used for MonoAOT in 3.x. - Remove `PlaySettings` that was used for IDE support in 3.x. - Remove `ApiAssembliesInfo` that was used for Project generation in 3.x. - Remove pieces of the old iOS support from 3.x. commit f16f8bf39bc79c48c4424d7a6b2e3a0f1eedc18b Author: 20kdc <asdd2808@gmail.com> Date: Wed Nov 29 11:17:04 2023 +0000 Fix the documentation of Bone2D::apply_rest (squashed) Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com> commit f77f46ebff0c305854d528fd8a81b1645be3ab10 Author: Pedro J. Estébanez <pedrojrulez@gmail.com> Date: Sun Jan 28 12:43:58 2024 +0100 Direct3D 12: Query support for 16-bit operations commit 85df221610e72e4b93f4eaf57a2f470c6da8e54d Author: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Sun Jan 28 12:34:56 2024 +0200 [TextServer / Font] Add support for customizable baseline offset. commit 04a930d9a696ca984d2962d8001c50cb65593f29 Author: Hugo Locurcio <hugo.locurcio@hugo.pro> Date: Mon Nov 6 12:41:08 2023 +0100 Disable multi-window buttons instead of hiding them when support is unavailable This is more explicit as for why this functionality isn't available depending on editor settings and current platform. This also exposes a `EditorInterface.is_multi_window_enabled()` method so that editor plugins can easily query whether the editor is able and expected to create multiple windows. commit 3e4e0f08c4fcad6453259a3d8b2ab1d8c775aa32 Author: Micky <micheledevita2@gmail.com> Date: Tue Jan 23 18:47:26 2024 +0100 Improve appearance of Node configuration warnings commit 36c2c4bf0d59de8faadf6ef00cc7957d7f134ba7 Author: Markus Sauermann <6299227+Sauermann@users.noreply.github.com> Date: Fri Jan 26 23:37:30 2024 +0100 Remove unused Variable `Viewport::gui_input_group` The gui input group is not needed during the gui input step. commit 8723d116c4274de9e60c96bcc8471a0e6c8cbab6 Author: Micky <micheledevita2@gmail.com> Date: Sun Dec 31 18:47:18 2023 +0100 Overhaul documentation about MIDI support commit 857586b7ae41f1e50ad3ff85e42cb84df159d7c6 Author: mxaddict <mxaddict@codedmaster.com> Date: Thu Nov 30 02:33:36 2023 +0800 Added proper timeout for blender rpc connection commit bcc96441d6194baca5bc758e0d5eb59844b7054d Author: Pedro J. Estébanez <pedrojrulez@gmail.com> Date: Fri Jan 26 19:43:43 2024 +0100 Undefine yet another macro from Windows headers commit dfa303f7c450868ecb2a379c09d23dffffc5ca20 Author: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Fri Jan 26 19:02:06 2024 +0200 [D3D12] Add support for building with pre-11.0.0 MinGW versions, make PIX runtime opt-in. commit ad106a283b5bd577e159149fe4afa074c0b28f3e Author: mxaddict <mxaddict@codedmaster.com> Date: Tue Nov 28 17:56:04 2023 +0800 Update blender_path behavior to require exact path to executable instead of trying to guess it commit 06f2f1ecbc9f6f2fee81135478b027f5d7bea2e4 Author: Mikael Hermansson <mikael@hermansson.io> Date: Mon Jan 22 13:55:57 2024 +0100 Bind physics server methods related to `SoftBody3D` commit cbc929edf01b04a575235752178f1f73766790d3 Author: Dario <dariosamo@gmail.com> Date: Fri Jan 26 11:23:26 2024 -0300 Do not use a linear sampler on lightmapper when retrieving grid data. commit c051c44df999f48bacea4cac9237c418e4d31d09 Author: Nông Văn Tình <vannongtinh@gmail.com> Date: Wed Nov 1 12:49:51 2023 +0700 Allow Editor to reload external changes of scripts commit 8406e60522bb8d09649193be43c1c819edc1d059 Author: Mel Collins <sigh@ambimist.com> Date: Thu Aug 3 15:18:26 2023 +0200 Add InputEventKey.location to tell left from right This adds a new enum `KeyLocation` and associated property `InputEventKey.location`, which indicates the left/right location of key events which may come from one of two physical keys, eg. Shift, Ctrl. It also adds simulation of missing Shift KEYUP events for Windows. When multiple Shifts are held down at the same time, Windows natively only sends a KEYUP for the last one to be released. commit d9057c8b5641a350cb13a43ec296ec3a9f4b253e Author: Robert Yevdokimov <robert.yevdokimov@autStand.com> Date: Fri Jan 26 08:24:58 2024 -0500 Add cancel transformation shortcut to 2D commit 39f279710c1c864782ed8abe679eda00b01f3ef8 Author: Dario <dariosamo@gmail.com> Date: Mon Jan 22 16:11:26 2024 -0300 Improve stage and slice tracking behavior of RenderingDeviceGraph to fix various synchronization issues. commit f468e59efdd971712be5fb6972cd21891d867c85 Author: Riteo <riteo@posteo.net> Date: Thu Oct 19 00:50:30 2023 +0200 GDExtension: add an interface for loading extra documentation Adds two new GDExtension interface methods: - `editor_help_load_xml_from_utf8_chars` - `editor_help_load_xml_from_utf8_chars_and_len` Both of these methods parse the XML passed into an extra documentation container which, when needed, is merged into the main doc container. Co-Authored-By: Rémi Verschelde <rverschelde@gmail.com> commit 17e7f85c06366b427e5068c5b3e2940e27ff5f1d Merge: 99ac3d332a b4e519b07f Author: Rémi Verschelde <remi@verschelde.fr> Date: Fri Jan 26 13:18:26 2024 +0100 Merge pull request #87609 from akien-mga/scons-d3d12-install-fix-linux-support SCons: Fix Windows cross-compilation from Linux after #86717 commit b4e519b07f37c8a3e8d2282df085e059cbf87d4b Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 12:26:13 2024 +0100 SCons: Fix Windows cross-compilation from Linux after #86717 commit 73589f6db604c9c93d3c5ab4cc2cd51f9628256f Author: Martin Capitanio <capnm@capitanio.org> Date: Fri Jan 26 10:04:27 2024 +0100 ThorVG: update from v0.12.1 to v0.12.3 https://github.com/thorvg/thorvg/releases/tag/v0.12.3 + Full Changelog: https://github.com/thorvg/thorvg/compare/v0.12.1...v0.12.3 Godot-related SVG bug fixes: + svg_loader: Add missing transform functions skewX and skewY. thorvg/thorvg#1928 + sw_engine: Rectified dash line drawing issue. thorvg/thorvg#1932 commit 99ac3d332ac8aec3ef93b13e8aa9755da667efb0 Merge: 0f6e68a44d e868a9f577 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:49:53 2024 +0100 Merge pull request #87597 from zaevi/fix_csharp_aot_initialization C#: Fix not assigning `runtime_initialized` when initializing with AOT. commit 0f6e68a44d70bb9a28fd5d96763e64e189526015 Merge: e5ecf95c1a 6d17fc1f73 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:49:29 2024 +0100 Merge pull request #87587 from bruvzg/rtl_image_update_connect [RTL] Connect image update signals. commit e5ecf95c1a78066acdf7e26ff17a0468e7d9a610 Merge: d3dfcc5977 2561f6fc52 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:49:06 2024 +0100 Merge pull request #87571 from 0x0ACB/fam_offby1 Fix `FileAccessMemory` off by one error in `eof_reached` commit d3dfcc5977ad3d08db1c7e1a56c0ea9a12856697 Merge: 3bbf4abfaa c892582779 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:48:42 2024 +0100 Merge pull request #87555 from EIREXE/video_player_unfunny Replace internal usage of ImageTexture in VideoStreamPlayer for Texture2D commit 3bbf4abfaa51848b6d18ad9f4c559973faee3cef Merge: 31baf464b3 18599c0935 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:48:18 2024 +0100 Merge pull request #87550 from zaevi/fix_csharp_generic_reloading C#: Fix sorting for generic types when reloading assemblies. commit 31baf464b377636dbdcb5c6b24379bc6470750d3 Merge: 563e385810 a16ca4b96c Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:47:50 2024 +0100 Merge pull request #87549 from emanvidmaker/DarkModeOnWin10Patch Make dark mode Title Bar work on Windows 10 1909 (build:18363) and above commit 563e3858104da5c99e2bbaf0af3525e4db1e4e28 Merge: 73419e645b 201e946741 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:47:25 2024 +0100 Merge pull request #87526 from zaevi/fix_csharp_gc C#: Fix incorrect GC handle for non-instantiable types. commit 73419e645b136728032e2326f4e7b31a0cca67d2 Merge: 85b2c947b2 ed20e32f06 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:47:01 2024 +0100 Merge pull request #87523 from skyace65/Minor-Doc-fixes Fix several minor class reference issues commit 85b2c947b26e6f82d755f281a595ddbcb858260d Merge: e96030ecb4 46b3096570 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:46:37 2024 +0100 Merge pull request #87518 from paulloz/dotnet/fix-warnings Clean a number of C# warnings commit e96030ecb424d8cda5ed033c020e2047e8175872 Merge: 184009eda6 a3f07ad858 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:46:13 2024 +0100 Merge pull request #87506 from mihe/soft-body-without-attachment Fix error when pinning soft body point without attachment commit 184009eda65d2c3f504712169db4d462c8b42cd0 Merge: 2a861ab5a2 0a89a2db9e Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:45:49 2024 +0100 Merge pull request #87482 from RandomShaper/d3d12_spacey Direct3D 12: Let NIR runtime data and push constants use the same register scheme as bindings commit 2a861ab5a2dfb2ce878da39ad959fd36bc013963 Merge: 62c87dc83e 3c596094ab Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:45:25 2024 +0100 Merge pull request #87459 from jsjtxietian/tween-from Fix passing int to tween's `from` with float property will be forced to interpolate as int commit 62c87dc83e1b1b58d94d7de544965d090ea73258 Merge: 1ce40ebb44 552403d581 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:45:01 2024 +0100 Merge pull request #87444 from Mickeon/documentation-XROrigin3D-tweaks Tweak XROrigin3D documentation commit 1ce40ebb44c2e40f2f8e4a9a402fd6cbbad51d4d Merge: c26a338430 efb1cbaad4 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:44:37 2024 +0100 Merge pull request #87386 from clayjohn/GLES3-lightmap-bake Add GLES3 infrastructure for lightmap baking in the compatibility backend commit c26a338430c7343399158edc6842e4eb4d55a9d3 Merge: cd5e973d7a ff089f8cea Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:44:13 2024 +0100 Merge pull request #87356 from jsjtxietian/connection-error Check if the ref shader is valid in visual shader's `_update_option_menu` commit cd5e973d7a2402f6ddaa52e38bda1cfccf33bab0 Merge: 535a2a6f27 ea2c6f1d0b Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:43:49 2024 +0100 Merge pull request #86717 from mrbbbaixue/d3d12-sdk-install-python Add a python script to install Direct3D 12 SDK components. commit 535a2a6f273bae109bc3d121d0e73a4b218bd3b3 Merge: 23275074cb 43a709fd0d Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:43:25 2024 +0100 Merge pull request #86581 from MJacred/optimize/audio_server Optimize `AudioServer::_driver_process()` commit 23275074cbce100ea0dec9ed590a6c3cd1fa15b4 Merge: 849b69828b e864b26e54 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:42:59 2024 +0100 Merge pull request #86304 from OverloadedOrama/fix-menubar-scaling Fix `MenuBar` and `MenuButton` hover position scaling properly with the scale factor multiplier commit 849b69828ba7e43c672612a2a661fa93d4d4f39b Merge: d36f5cf2ba 692412562d Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:42:34 2024 +0100 Merge pull request #85908 from avilches/fix-must-be-variant-analyzer-fail-with-generic-typed-attributes Allow using `[MustBeVariant]` in generic typed attributes commit d36f5cf2ba55995bd0ac83043552601e03b9ee74 Merge: 5034478611 7676e389a7 Author: Rémi Verschelde <rverschelde@gmail.com> Date: Fri Jan 26 11:42:01 2024 +0100 Merge pull request #85504 from nongvantinh/fix-csharp-loader Fix C# script loader does not work reliably commit 6d17fc1f736c648234f5f83564dfd3c1653c2d5c Author: bruvzg <7645683+bruvzg@users.noreply.github.com> Date: Thu Jan 25 17:51:18 2024 +0200 [RTL] Connect image update signals. commit 18599c0935571aeede87198d943c4da13b2ad389 Author: Zae <zaevi@live.com> Date: Fri Jan 26 18:00:46 2024 +0800 C#: Fix sorting for generic types when reloading assemblies. commit 43a709fd0d1229c419f36fe436709b872479f5ff Author: MJacred <loesch.benny92@gmx.de> Date: Fri Jan 26 10:11:13 2024 +0100 Optimize AudioServer::_driver_process() Move expensive calculations outside inner hot loops. Forward-ported from 3.6 commit 46b309657048d881fd41c0af40f723b570d02ed4 Author: Paul Joannon <hello@pauljoannon.com> Date: Wed Jan 24 00:49:34 2024 +0100 Clean a bunch of C# warnings - `[Obsolete]` tag generated in the middle of documentation comments - Potential `null` values in generators - Obsolete call to `GetEditorInterface()` - We don't want `Godot.Collections.Array` to end with `Collection` - A few culture specifications and use of `AsSpan` instead of `SubSt…
Tighter Shadow caster culling causes the shadows to disappear in some cases... Run this test scene, and press home a handful of times to rotate the lights one increment at a time (end to rotate in reverse) |
This could be a bug, usually better reported in an issue. I'll try out the project. 👍 EDIT: I think I can see what you mean, there is some logic to handle the updates which may have a bug in this situation hence the flash off for a frame. If you can make the project more minimal that will be helpful, as having complex project makes it more difficult to debug and pin down. 👍 UPDATE: I can't say for definite yet, but I know there have been problems in the past with AABBs for skinned meshes, so it is a suspect. And of course if the AABB is garbage, the culling won't work properly. UPDATE: |
Sorry about that, was kind of in a rush yesterday and it was a bit late, The PR happened to be the 1st thing I was thinking about when I observed and quickly pinned down the issue. What doesn't make sense is that it only disappears for 1 frame, only to reaper the next despite the fact there should be no update to lights that next frame, as they're static... So somehow they're dirtied one frame after the rotation, probably by the offending model (Female26 for me) and this has nothing to do with skinning as yea, a cube of roughly the AABB of the dummy also gets the same issue. I'll open an issue now.. |
Existing shadow caster culling takes no account of the camera. This PR adds the highly encapsulated class
RenderingLightCuller
which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum.Forward port of #82584
This is used to:
Lights dirty state is now automatically managed:
Explanation
You can see roughly how it works in this old video of mine (ignore the rooms and portals, that is a separate system):
https://www.youtube.com/watch?v=1WT5AXZlsDc
The blue lines from the light sources to the camera frustum show the extra culling planes.
How does it work?
At runtime, the routine checks each plane of the camera frustum, and finds whether it is facing either towards or away from the light (0 or 1). These bits for the 6 planes form a 6 bit number, which is the lookup.
The lookup tells us a list of corner points from the camera frustum which form a silhouette, which can be used to generate culling planes together with the light origin (3 points form a culling plane).
References:
http://lspiroengine.com/?p=153
http://www.terathon.com/gdc06_lengyel.pdf
Performance
In tests in TPS demo, without GI and just using shadows, in many areas this halves the number of drawcalls / vertex count, in some cases reduces drawcalls by a factor of 10x. This can lead to 10-300% increase in FPS (the increase in FPS depends on settings used, if fill rate is bottlenecking then improving shadows has less dramatic effect and vice versa).
In WroughtFlesh, which uses directional light only, I get a more modest 10% or so improvement if FPS, due to the tighter caster culling with the directional light. So it seems like the benefits are higher the more omnis / spots are used.
Notes
Tighter caster culling and Multiple Cameras
There is one more situation in which tighter caster culling is problematic: when multiple viewports are in use, and the shadow volume intersects multiple cameras.
In this situation tighter caster culling will work - it will do a tight cull on the first camera, and a full render for the second camera. The problem is that it will do 2 shadow renders per frame instead of one.
The answer used here is to detect this situation (in
detect_light_intersects_multiple_cameras()
) and switch to a different modelight_intersects_multiple_cameras
.This reverts to the legacy approach of doing a full render on the first update. However, we still want to detect the situation where it changes back to a single camera. This is done by means of a timeout after a certain number of frames without a double update.
Directional Lights
Directional lights are handled separately, they are always updated, and with different shadow maps if multiple cameras are used with viewports. Therefore they can always do the tighter caster cull.
There are some differences in the directional light culling compared with #82584, as the culling in 4.x relies on a brute force approach.