Skip to content
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

Fix RID_Owner synchronization #98488

Merged
merged 1 commit into from
Jan 6, 2025

Conversation

RandomShaper
Copy link
Member

@RandomShaper RandomShaper commented Oct 24, 2024

Includes #85167, because this PR needs SpinLock and extends it with non-locking acquire and release methods.

Now that RID_Owner is lockless for querying, some additional measures needed to be taken to avoid data races and ensure proper memory ordering.

NOTE: A subset of the issues that arise from the lack of proper synchronization would only be apparent in architectures with a purely weakly ordered memory model. Even ARM is able to dampen them somehow due to its handling of data dependencies. However, the code should account for those cases so it's valid despite the memory model. By the way, architectures with such a memory model aren't purely theoretical (cough, #97822, cough).

In short, this PR does the following:

  • Adds the proper usage of atomics and memory ordering constraints so RID_Owner is correct for the current known usages.
  • Extends SpinLock with acquire() and release() methods that allow to synchronize to the data normally protected by it in a lockless fashion. Also, the change from SpinLock to Mutex in RID_Alloc is reverted, naturally. The new SpinLock implementation is nicer on contention, which makes it somewhat closer to Mutex in that regard.
  • Implements some test cases that would cause sanitizer errors (true positives; there would also be some false positives, but they are avoided by telling tsan we know what we are doing).

2024-11-04:
I've decided toi make this simpler by abandoning the idea of having a SpinLock that also supports lockless access. So, I've updated the code with some markers and remarks in comments that should be good enough for now at least.

@RandomShaper RandomShaper added this to the 4.4 milestone Oct 24, 2024
@RandomShaper RandomShaper requested review from a team as code owners October 24, 2024 10:23
@darksylinc
Copy link
Contributor

I'm not fully sure what is being solved here but a few things:

  1. Spin locks block too. The difference with a Mutex is whether they burn CPU cycles while blocked, and make it harder to detect deadlocks (a spinlock deadlocking is called a livelock and are harder to detect because the system appears to be busy doing useful stuff)

  2. A good mutex implementation already has (should) acquire/release semantics. Thus you shouldn't have to worry about relaxed memory ordering if the code is protected by lock/unlock. std::mutex should already have them.

  3. Mutex implementations come in many flavors (this is important and I want to explain it in detail for everyone, because you rarely see people talk about this):

a. Mutex vs Futex. Historically speaking, a mutex is a sync primitive that when you lock() it enters kernel space so the OS blocks the thread if needed, and when you unlock() it also enters kernel space. This kernel space transition is often overkill for frequently called code. Specially nowadays with Spectre mitigations.

That's where futexes enter. You can think of a Futex as a Mutex wrapped by a Spinlock that spins once (or a couple times). If the futex sees it should keep spinning, then it enters the mutex to go to sleep.

The main issue is that "mutex" is loosely defined, so some platforms implement their mutexes as futexes, while others implement mutexes as OS primitives.

b. FIFO vs LIFO vs Random. Sometimes referred to as a "fair" mutex. Another issue with Mutex is whether they have FIFO behavior or not. Of course "FIFO" is loose here because two threads may lock at "exactly" the same time, and time is relative (where one sees A and B happened at the same time, another one may see B came before A, while another sees A came after B). That's why calling them "fair" is more accurate. Consider the following:

  • Thread A enters locks().
  • Thread B blocks on locks(). Wants to do a light work on a variable.
  • Thread C blocks on locks(). Wants to iterate extremely frequently.

An unfair mutex may end up in the following unwanted scenario:

  • Thread A leaves the unlock().
  • Thread C enters lock(). Leaves unlock(). Enters again. And repeat.
  • Thread B gets blocked for potentially forever.

A FIFO/fair mutex does extra work to ensure B gets a chance to run. It may not be able to guarantee B enters the block before C, but it guarantees C doesn't steal B's chance to run forever.

Godot seems to be using std::mutex, which is not guaranteed to be fair. Thus Godot's behavior is at the whims of the std implementation.

By switching to a spinlock, you ensure Godot's behavior is consistent between OSes, but now you're at the whims of the HW, and HW changes their behavior.

My point is that this change you're witnessing in contention is more likely the change of futex vs mutex, or the change in fairness behavior, rather than a result of using a spinlock algorithm.

Unfortunately we programmers say "use a mutex", but those experienced enough and burnt by past experiences will ask "which mutex"?

  1. A fair futex? (hard to achieve)
  2. An unfair futex?
  3. An unfair mutex?
  4. A fair mutex?

Stack Overflow has an answer of 3 different mutex implementations available on Windows: CRITICAL_SECTION (futex, very unfair), Mutex objects (mutex, fair), and SRW (futex, unfair, but more fair than CS).

So what now?

There are various things that can be tried:

  1. Instead of using std::mutex, on Windows try rolling own implementations with all 3 (CS, Mutex, SRW locks) and test their behaviors.
  2. Rolling our own futex is also possible. OgreNext has its own for Windows (header).

@RandomShaper
Copy link
Member Author

All that is interesting and we may really want to reconsider the overall approach to mutexing in Godot.

However, what this PR is solving is in the context of the current state of affairs.


My point is that this change you're witnessing in contention is more likely the change of futex vs mutex, or the change in fairness behavior, rather than a result of using a spinlock algorithm.

The benchmark is in the PR about modifying the SpinLock, so it's former SpinLock vs. revised SpinLock.


2. A good mutex implementation already has (should) acquire/release semantics. Thus you shouldn't have to worry about relaxed memory ordering if the code is protected by lock/unlock. std::mutex should already have them.

What we need in this PR is something like a mutex that, besides providing acq-rel critical sections, also provide acq-rel for fragments of code that will run without locking (the user of such a sync primitive must ensure the data won't be further modified, which is the case here in RID_Alloc::get_or_null()).

@RandomShaper RandomShaper force-pushed the lockless_rid_fetch_pro branch from cb4b28d to a42824f Compare November 4, 2024 17:44
@RandomShaper
Copy link
Member Author

Trying to be pragmatic, I've made a simplification. Please see updated description.

@RandomShaper RandomShaper force-pushed the lockless_rid_fetch_pro branch 3 times, most recently from 7d0d4fb to 51e36df Compare November 8, 2024 07:08
@clayjohn
Copy link
Member

clayjohn commented Nov 9, 2024

CC @darksylinc What do you think about the changes?

@darksylinc
Copy link
Contributor

darksylinc commented Nov 9, 2024

On line 124 Pedro wrote:

class Thread {
public:
	typedef void (*Callback)(void *p_userdata);

	typedef uint64_t ID;

	static constexpr size_t CACHE_LINE_BYTES = sizeof(void *);

Is this a typo? It is overriding CACHE_LINE_BYTES with a different value for this scope (Threads).

If it is intended, it should have comments on why you're doing this (since 4 or 8 bytes is definitely not the size of a cache line).

core/templates/rid_owner.h Outdated Show resolved Hide resolved
core/templates/rid_owner.h Outdated Show resolved Hide resolved
#define SYNC_RELEASE std::atomic_thread_fence(std::memory_order_release);
#else
#define SYNC_ACQUIRE
#define SYNC_RELEASE
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not enough on systems with strong memory models.

Not because of HW reasons, but compiler ones. x86 will not reorder your memory operations, but compiler optimizations still can.

You still need std::atomic_thread_fence() to tell the compiler not to reorder stuff in ways that would break your code.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the acquire and release points are at the beginning and end of functions, I was just relying on functions calls acting as compiler barriers. That said, I don't think some extra safety will cause any harm. I've updated the code. However, I'm adding compiler barriers there (std::atomic_signal_fence()) instead.

@RandomShaper
Copy link
Member Author

On line 124 Pedro wrote:

class Thread {
public:
	typedef void (*Callback)(void *p_userdata);

	typedef uint64_t ID;

	static constexpr size_t CACHE_LINE_BYTES = sizeof(void *);

Is this a typo? It is overriding CACHE_LINE_BYTES with a different value for this scope (Threads).

If it is intended, it should have comments on why you're doing this (since 4 or 8 bytes is definitely not the size of a cache line).

Note that's in the #if case for threadless builds. In any case, this commit was already merged as part of #85167. I'll rebase this PR and it will fade away from here.

@RandomShaper RandomShaper force-pushed the lockless_rid_fetch_pro branch from 51e36df to aca8617 Compare November 11, 2024 17:10
@akien-mga akien-mga requested a review from hpvb December 17, 2024 20:35
Copy link
Member

@hpvb hpvb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Had a call with @RandomShaper and we went through this in excruciating detail. I'm convinced this is correct and desirable.

@RandomShaper
Copy link
Member Author

I just realized I have to make a few thread safety measures only happen for the thread safe case. Not the end of the world otherwise, but let's aim for 100% accuracy. I'll force-push shortly.

@RandomShaper RandomShaper force-pushed the lockless_rid_fetch_pro branch from aca8617 to de7e4ef Compare January 3, 2025 16:05
@RandomShaper
Copy link
Member Author

Done.

@akien-mga akien-mga merged commit 1aaf20b into godotengine:master Jan 6, 2025
20 checks passed
@akien-mga
Copy link
Member

Thanks!

@RandomShaper RandomShaper deleted the lockless_rid_fetch_pro branch January 6, 2025 17:08
PerceptiveGames added a commit to PerceptiveGames/godot that referenced this pull request Jan 9, 2025
commit eb4a9977c33237a6ac0fdec5c1b1d40230eb6404
Merge: 837d093470 2a3e0d47ea
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 11:17:42 2025 +0100

    Merge pull request #101323 from demolke/modenable

    LightmapGI: Including `modules_enabled.gen.h` to properly check the configuration warning

commit 837d093470397d884aa4a9f8e72fe7995f507cb6
Merge: c657178606 ffcd9eb630
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 11:17:38 2025 +0100

    Merge pull request #101322 from akien-mga/scons-fix-colorless-print-methods

    SCons: Fix missing context for `print_info`/`warning`/`error` when colors are off

commit c65717860662825697b339edde9e4a6f6769514f
Merge: e1a1acc66b 5bda507f65
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 11:17:35 2025 +0100

    Merge pull request #101299 from Calinou/doc-tilemaplayer-tutorials

    Add TileMap tutorials to TileMapLayer class reference

commit e1a1acc66bdae47d10c9f47ee040ac0078b097d5
Merge: a682b076d7 6f4089fa55
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 11:17:31 2025 +0100

    Merge pull request #101279 from akien-mga/audio-pitch-shift-fix-gcc-warning

    Fix GCC warning about potential stringop-overflow in AudioEffectPitcShift

commit a682b076d7e5063ab3079faed72e4f3b1ff7e8fc
Merge: 65cf7c1d5e f70acb0308
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 11:17:28 2025 +0100

    Merge pull request #101223 from kiroxas/fixWrongIfConditionIn#100549

    Fix wrong condition in `NavMeshQueries3D::_query_task_build_path_corridor`

commit 65cf7c1d5efb7a630b4befbba51f19830cecd9cd
Merge: 2db8f8837e 8d911b2554
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 11:17:24 2025 +0100

    Merge pull request #101221 from bruvzg/win_dec_exp

    [Window] Expose `start_drag` and `start_resize` methods (for both native and embedded windows).

commit 2db8f8837e2a271ee12f0ae3bb1cb1337ed68660
Merge: a7052a2bd0 50b90604af
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 11:17:20 2025 +0100

    Merge pull request #101125 from axunes/master

    macOS: Allow running unpacked game files from .app bundle resources

commit a7052a2bd0753c9e31a5e66e0b59461f8b2a6deb
Merge: 892f77d5af b2d881a73a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 11:17:17 2025 +0100

    Merge pull request #101033 from Ivorforce/string-count-avoid-copy

    Optimize `_count` by replacing a full copy with a CoW copy for the full-string count case.

commit 892f77d5afab22e946afc78d83d7318286a104c6
Merge: 8c6dbff6d3 7fe0609118
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 11:17:13 2025 +0100

    Merge pull request #100052 from akien-mga/scons-linux-relax-freetype-libpng-zlib-deps

    Linux: Relax interdependency between freetype, libpng, and zlib for unvendored builds

commit 2a3e0d47ea5080fd2cabb3b8de9d85b4a6bbf20a
Author: demolke <demolke@gmail.com>
Date:   Thu Jan 9 00:30:35 2025 +0100

    LightmapGI: Including `modules_enabled.gen.h` to properly check the configuration warning

commit 8c6dbff6d35eb613c83f065c408a49ab02fa7f67
Merge: f83919c088 88c457efc3
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 00:42:33 2025 +0100

    Merge pull request #101316 from Repiteo/ci/problem-matchers-color

    CI: Ensure problem matchers handle colored output

commit f83919c088ba80d9e8bdda4b19090c8acb4964fa
Merge: 2a2adfa36c 08a2f0ae39
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 00:42:29 2025 +0100

    Merge pull request #101311 from TokageItLab/fix-lookat-rest

    Fix `LookAtModifier3D` rest space incorrect rotation

commit 2a2adfa36c57e1e17bf023b8327e786d95ef3dda
Merge: 8e0f498400 a8377d0f22
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 00:42:25 2025 +0100

    Merge pull request #101267 from Summersay415/angle-libs

    Fix ANGLE and D3D12 libraries inclusion in .zip export

commit 8e0f49840048bdc8edf6a9a84cecc7e12a2d77fd
Merge: 4d77bbf490 989161e117
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 00:42:22 2025 +0100

    Merge pull request #101266 from WhalesState/color-picking-fix

    Fix color picking on Linux/X11.

commit 4d77bbf4907fdffc43cbf3d46c35bf6f6bd9371e
Merge: 6f3cc27423 8a544bf07c
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 00:42:18 2025 +0100

    Merge pull request #100069 from allenwp/editor-shortcuts-undo-fix

    Fix undo behavior on `EditorSettingsDialog::_update_builtin_action`.

commit ffcd9eb6301de9ec5c38625b98a7399a52b56d62
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jan 9 00:34:14 2025 +0100

    SCons: Fix missing context for `print_info`/`warning`/`error` when colors are off

commit 7fe0609118665e9b1adc326a0d5c556534852898
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Dec 5 16:04:37 2024 +0100

    Linux: Relax interdependency between freetype, libpng, and zlib for unvendored builds

    This restriction was added to fix #7373 back then, which was a symbol conflict
    between FreeType's bundled copy of gzip/zlib, and distro packages.

    But we also unbundled FreeType's zlib in #69395 so this is no longer an issue.

    On the other hand recent issues pointed out that using system-provided icu4c
    or harfbuzz can cause issues (#91401, #100301). We still allow it for now but
    raise a warning.

commit 88c457efc3187591287c8725041b29f6a90972f5
Author: Thaddeus Crews <repiteo@outlook.com>
Date:   Wed Jan 8 15:13:02 2025 -0600

    CI: Ensure problem matchers handle colored output

commit 6f3cc274237ea5142cd26f6357dfc6d876c45f75
Merge: a659548946 84e6ac9ecd
Author: Rémi Verschelde <remi@verschelde.fr>
Date:   Wed Jan 8 21:48:13 2025 +0100

    Merge pull request #101178 from BlueCube3310/web-high-quality

    Web: Export ASTC/BPTC compressed textures

commit 08a2f0ae39e1cf492b3868c0bba2606c3cc6a6cd
Author: Silc Lizard (Tokage) Renew <61938263+TokageItLab@users.noreply.github.com>
Date:   Thu Jan 9 05:22:47 2025 +0900

    Fix LookAtModifier rest space rotation

commit a65954894670d3c1f23d7e09c13df9cd0cf534a8
Merge: bfa351cb44 abd0e6990c
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 18:20:11 2025 +0100

    Merge pull request #101298 from stuartcarnie/rendering_server

    Renderer: Minor optimisation when running `gl_compatibility` mode

commit bfa351cb44f2a7da91b5fbd2619a93d9c88eac00
Merge: 21721ae344 5fad891759
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 18:20:07 2025 +0100

    Merge pull request #101246 from wlsnmrk/dropdown-fix

    Fix menus and dropdowns requiring two clicks

commit 21721ae34468f7f8fd4f0f9cf2b7925330a04ec0
Merge: 76c8e76560 084e84be78
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 18:20:03 2025 +0100

    Merge pull request #87260 from Calinou/tonemap-add-agx

    Add AgX tonemapper option to Environment

commit 5bda507f65912c95c3a2a25b7af095048c7e6137
Author: Hugo Locurcio <hugo.locurcio@hugo.pro>
Date:   Wed Jan 8 18:10:42 2025 +0100

    Add TileMap tutorials to TileMapLayer class reference

    - Add Dynamic TileMap Layers demo link as well.

commit abd0e6990cec375c36b4f43a31c6bc29e0b2cda0
Author: Stuart Carnie <stuart.carnie@gmail.com>
Date:   Wed Jan 8 09:43:35 2025 -0700

    Renderer: minor optimisation when running `gl_compatibility` mode

commit 084e84be7813e55acd3d3e909bd66229834bedb1
Author: Hugo Locurcio <hugo.locurcio@hugo.pro>
Date:   Mon Jan 1 18:10:42 2024 +0100

    Add AgX tonemapper option to Environment

    Technical implementation notes:

    - Moved linearization step to before the outset matrix is applied and
      changed polynomial contrast curve approximation.
      - This does *not* implement Blender's chroma rotation to address hue shift.
        This hue rotation was found to have a significant performance impact.
    - Improved performance by combining the AgX outset matrix with the Rec 2020 matrix.

    Co-authored-by: Allen Pestaluky <allenpestaluky@gmail.com>
    Co-authored-by: Clay John <claynjohn@gmail.com>

commit 5fad8917590c9e9202cdcf67fdce3d9ee97be606
Author: Mark Wilson <23439518+wlsnmrk@users.noreply.github.com>
Date:   Tue Jan 7 16:15:38 2025 -0500

    Fix menus and dropdowns requiring two clicks

    Fixes some editor menus and option buttons requiring two clicks to open
    by checking status.pressed_down_with_focus separately from other press
    status flags. Makes all pressed statuses consistent on toggle buttons
    with ACTION_MODE_BUTTON_PRESSED.

commit 76c8e765605d90939ef52f46d12ad18f6072ecdf
Merge: cc3a32b67e f134769506
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 15:53:33 2025 +0100

    Merge pull request #101284 from akx/tyops

    A handful of typo fixes

commit cc3a32b67e97fbb400dcb4bc992d45a8ea808137
Merge: 0dcc1a37d3 a29294fddc
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 15:53:29 2025 +0100

    Merge pull request #101249 from Repiteo/scons/color-refactor

    SCons: Refactor color output implementation

commit 0dcc1a37d3e6a7f825e9d14c26c553dea7c53534
Merge: b857c2f3e6 a705962d73
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 15:53:26 2025 +0100

    Merge pull request #101094 from KoBeWi/what_if

    Simplify scene tabs option disabling

commit b857c2f3e651a937bbf09cf6df204442656b68bf
Merge: abd188f099 176e5f42b2
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 15:53:23 2025 +0100

    Merge pull request #101016 from kiroxas/AddVariantStaticAssert

    Add static assert checks in `Variant` constructors

commit abd188f099e64f3189462ca665472e768acadaaf
Merge: dea597c679 e5ac45e822
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 15:53:19 2025 +0100

    Merge pull request #97480 from Riteo/why-is-suspension-so-hard

     Wayland: Unsuspend only for the same reason as suspension

commit dea597c6797d853139779fc6dda0cc031db9c6ae
Merge: d2ada64a03 cd17cb0110
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 15:53:15 2025 +0100

    Merge pull request #94580 from stuartcarnie/sgc/macos_joypad

    Apple: Bug fixes and improvements for game controllers

commit cd17cb011075d110d1ea50f8a9c0573b22c3dc58
Author: Stuart Carnie <stuart.carnie@gmail.com>
Date:   Sun Jul 21 18:20:59 2024 +1000

    [macos, ios]: Refactor joypad support into shared code, numerous bugfixes

commit e5ac45e82291a8158ad4119c2026f19a8f920392
Author: Riteo <riteo@posteo.net>
Date:   Thu Sep 26 10:07:53 2024 +0200

    Wayland: Unsuspend only for the same reason as suspension

    Before, we would check both methods together, leading to loops.

    Now we track the actual reason we suspended and only unsuspend when
    that same reason triggers. For example, if we suspend because of the
    suspended flag we'll unsuspend only because it got unset. Conversely, if
    we suspend because of a timeout we'll unsuspend only if we get a new
    frame event.

    We do this because, while some compositors properly report a "suspended"
    state (hinting us to stop repainting), most don't and we need a "safety
    net" anyways as we do not want to constantly stay at 1fps (the max time
    we'll wait before giving up) either.

commit f134769506d8ac2e3a9f676a10f5be81da1ded8b
Author: Aarni Koskela <akx@iki.fi>
Date:   Wed Jan 8 11:56:49 2025 +0200

    Fix various typos

    * Add TODO notes for typos that should be fixed for 5.0

    Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>

commit 6f4089fa55dd07edcc003f8ecba612e968c96102
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 10:40:17 2025 +0100

    Fix GCC warning about potential stringop-overflow in AudioEffectPitchShift

    Fixes #101236.

commit 989161e117587733d6302b5191d14362f0e7f257
Author: WhalesState <whalesstate@gmail.com>
Date:   Wed Jan 8 10:32:25 2025 +0200

    Fix color picking on linux.

commit 50b90604afa43e73fae09cf6f4fbf7d153c13f89
Author: axunes <axunes@axunes.net>
Date:   Sat Jan 4 04:08:44 2025 -0500

    macOS: search for project file in .app resources

commit a8377d0f22410b140701d6884b1a2115dfe36adb
Author: Summersay415 <summersay415@gmail.com>
Date:   Wed Jan 8 12:09:35 2025 +0700

    Fix ANGLE and D3D12 libraries inclusion in .zip export

commit a29294fddc3d55c8c9e57332aff205e7630dcfe8
Author: Thaddeus Crews <repiteo@outlook.com>
Date:   Tue Jan 7 15:55:17 2025 -0600

    SCons: Refactor color output implementation

commit a705962d736d879801c289c21272661b24190266
Author: kobewi <kobewi4e@gmail.com>
Date:   Fri Jan 3 21:53:41 2025 +0100

    Simplify scene tabs option disabling

commit d2ada64a03d2abdb97cafe8f10623db8a2ce1d4c
Merge: cecc83d26a a6c70576be
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 00:21:11 2025 +0100

    Merge pull request #101242 from AThousandShips/fix_perf

    [Main] Fix missing performance data

commit cecc83d26ad557bfaa704ce8d3298d8820b5215a
Merge: a7d84fa022 f6d22da94b
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 00:21:07 2025 +0100

    Merge pull request #101225 from Summersay415/arch-docs

    Update official export templates architecture list in docs

commit a7d84fa022334da4e198affc0fe3cd79e8becce5
Merge: f7b9a6a8b1 637fe3ccdd
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 00:21:03 2025 +0100

    Merge pull request #100792 from lyuma/post_import_plugin_subresources

    Allow post-import plugins to modify `_subresources`

commit f7b9a6a8b1d3be4bfd301f15f500b087fc4ac94c
Merge: 0c763602f9 96e59b99ba
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Wed Jan 8 00:20:58 2025 +0100

    Merge pull request #100091 from AeioMuch/fix_nodepath_in_history

    Add missing cleanup of editor history & set appropriate class icon for object in it

commit 0c763602f9d737d1ded25f7eacfc79d0492931cb
Merge: a0c3798fba d6b822c891
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:18:13 2025 +0100

    Merge pull request #101237 from mihe/jolt/cache-bounce-velocity

    Cache value of Jolt Physics project setting `bounce_velocity_threshold`

commit a0c3798fba393a02ec087b0cfdbe5e526c3c7769
Merge: 21fdf1678a 49846cf79a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:18:09 2025 +0100

    Merge pull request #101210 from clayjohn/headless-export-shader

    Save instance and global uniform data in RenderingServerDummy

commit 21fdf1678ae88849255c290e8f5cbfc6c15d931f
Merge: 01913e0852 25a9b04ecc
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:18:04 2025 +0100

    Merge pull request #101193 from clayjohn/FSR-y-aspect

    Correct aspect ratio used in FSR2 calculations

commit 01913e0852c07d7134366b71983b4c3876791e91
Merge: fdfa1f24a0 731a1ec206
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:18:00 2025 +0100

    Merge pull request #101156 from Hilderin/fix-documentation-tooltip-over-debug-tooltip

    Fix documentation tooltip over debug tooltip

commit fdfa1f24a02be0da1bb3e929ce3254d933d502b1
Merge: b401a87066 f8fd15690c
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:55 2025 +0100

    Merge pull request #101098 from KoBeWi/rect_pretender

    Don't show "Drawing rect" when not actually drawing

commit b401a870664e852f85bba1ec43bd1ab7f68ee58c
Merge: 3e53d73996 94a7dfeae1
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:51 2025 +0100

    Merge pull request #101066 from DanielGSilva/font-variation-inheritance

    Fix `has_font` and `has_font_size` always return true

commit 3e53d73996dfdef916716d9aecad3e4c47411d47
Merge: de1499c3c2 e167f4df37
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:48 2025 +0100

    Merge pull request #101038 from KoBeWi/QuickerOpenDialog

    Remember QuickOpenDialog history between sessions

commit de1499c3c2cdfc040f8d830183b86502a50665cd
Merge: 709f2e1a5d 8e9c4e04be
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:44 2025 +0100

    Merge pull request #100927 from KoBeWi/yeah,_uids

    Assign new UID when duplicating file externally

commit 709f2e1a5d2629cdfcc74809becffd72bd9eecb2
Merge: 0fee2724f0 054340bb6b
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:39 2025 +0100

    Merge pull request #100765 from Geometror/lightmapgi-add-downsampling

    Add a supersampling option to LightmapGI

commit 0fee2724f0ea6cec72ca3e78f9ac332d111d43e6
Merge: 9788b3db1d 34d8255947
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:35 2025 +0100

    Merge pull request #100751 from YYF233333/force_regex_with_editor

    Force build editor with regex module, remove checking code

commit 9788b3db1dffd81c6d4235f26bb14b4646925675
Merge: 1639174455 db4ae2a91c
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:32 2025 +0100

    Merge pull request #100569 from arkology/texture-preview-borders

    Show "transparent background" texture only behind actual texture in `TexturePreview` class + add borders for readability

commit 16391744557e07cb6c9ab1634e5b82025bb55361
Merge: ce6c3c5c28 b8f34bb8e9
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:27 2025 +0100

    Merge pull request #100558 from KoBeWi/docking_in_progress

    Rework dock layout management

commit ce6c3c5c282101575e3bceb6cc56aebaa4f39397
Merge: 7bbdcc802b ba54a2805a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:23 2025 +0100

    Merge pull request #100556 from KoBeWi/unlimited_contextizer

    Add more menus support to EditorContextMenuPlugin

commit 7bbdcc802bbdca3316666a03cb185aeb1d6e2355
Merge: 07093c4a34 66f9a7571e
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:18 2025 +0100

    Merge pull request #100419 from KoBeWi/times_before_search_were_better

    Fix folders uncollapsed after restart with filter

commit 07093c4a341adf1d4703315a8235ca7eced2e331
Merge: 9a4142c17e b8b1584f5a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:13 2025 +0100

    Merge pull request #100275 from KoBeWi/highest_level_clearance

    Don't emit `text_changed` signal when clearing empty LineEdit

commit 9a4142c17ea6fecdaa37678e1f008cb2014b6a50
Merge: b194e050d7 db70cf2585
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:08 2025 +0100

    Merge pull request #98262 from KoBeWi/fileland_natives

    Mention native file dialogs editor setting in EditorFileDialog description

commit b194e050d79fca0d50317197fceecf0ebc755153
Merge: aa65940a85 f7f6432af6
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 23:17:02 2025 +0100

    Merge pull request #91333 from YeldhamDev/working_on_this_felt_like_constantly_walking_into_rakes

    Make `PopupMenu/Panel` shadows properly visible again

commit 96e59b99baa53021058663e3c764ba98f2bb8965
Author: AeioMuch <75151379+AeioMuch@users.noreply.github.com>
Date:   Fri Dec 6 09:09:39 2024 +0100

    Cleanup editor history when opening the history menu popup & set appropriate class icon for object in it. Handle do&undo for selection when reparenting

commit 731a1ec206c84dea18573dd3b2edd1e74912bb5e
Author: Hilderin <81109165+Hilderin@users.noreply.github.com>
Date:   Sun Jan 5 09:57:21 2025 -0500

    Fix documentation tooltip over debug tooltip

commit 8d911b25542a76da1b81dfe8f0d464e39df2aed6
Author: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
Date:   Tue Jan 7 14:11:45 2025 +0200

    [Window] Expose `start_drag` and `start_resize` methods (for both native and embedded windows).

commit a6c70576be4c55f018e53ad49654616203e432e6
Author: AThousandShips <96648715+AThousandShips@users.noreply.github.com>
Date:   Tue Jan 7 19:09:06 2025 +0100

    [Main] Fix missing performance data

    Also future-proof entries to ensure size.

commit 054340bb6babafb36eb6bcc3dbe2a28b7faa5650
Author: Hendrik Brucker <hendrik.brucker@mail.de>
Date:   Tue Jan 7 18:44:48 2025 +0100

    Add a supersampling option to LightmapGI

    This provides increased lightmap quality with less noise, smoother
    shadows and better small-scale shadow detail. The downside is that
    this significantly increases bake times and memory usage while baking
    lightmaps, so this option is disabled by default.

    Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
    Co-authored-by: landervr <31851431+CpnWaffle@users.noreply.github.com>

commit d6b822c891c9d6b119a0521720f1a55ad455af57
Author: Mikael Hermansson <mikael@hermansson.io>
Date:   Tue Jan 7 18:35:04 2025 +0100

    Cache value of Jolt Physics project setting `bounce_velocity_threshold`

commit 94a7dfeae166d4f2e918fe9e31f4d610bc50746d
Author: danielgsilva <daniel.silva@realgames.pt>
Date:   Fri Jan 3 09:55:45 2025 +0000

    Add additional methods for has_theme_item to check for font and font size

commit f6d22da94b45c92ea116cdcd0a532cdf860f2edd
Author: Summersay415 <summersay415@gmail.com>
Date:   Tue Jan 7 20:22:47 2025 +0700

    Update official export templates architecture list in docs

commit f70acb03084a5b8b041b600acd79a576da3ce63d
Author: Kiro <mouton.guillaume88@gmail.com>
Date:   Tue Jan 7 13:40:17 2025 +0100

    shift the polygon heap only if index is in range

commit 34d825594707dacb0fecb1ce49192997a11cca01
Author: Yufeng Ying <nbyyf2002@mail.ustc.edu.cn>
Date:   Mon Dec 23 03:29:22 2024 +0800

    Force build editor with regex module, remove checking code.

    Fix include.

    Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>

commit aa65940a8509fb880e2c666eb8a901525d9200ff
Merge: 558a18fbb7 ccc134fd1b
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 10:14:58 2025 +0100

    Merge pull request #101202 from KoBeWi/tweens_3.0

    Tween code improvements

commit 558a18fbb7171ead3f1c632aaa7667a57644af9e
Merge: 33c0fc5508 865acd0129
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 10:14:54 2025 +0100

    Merge pull request #101198 from Calinou/editor-metalfx-show-options-on-all-platforms

    Show MetalFX options in the Scaling 3D Mode enum on all platforms

commit 33c0fc5508f47af8fcd4b49d08d55a9021aef590
Merge: d9535301ab 87767f7c34
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 10:14:50 2025 +0100

    Merge pull request #101162 from timoschwarzer/fix/gpu-particles-2d-emission-textures

    Fix ParticleProcessMaterial not using same offsets for emission textures

commit d9535301abba39b6b1b932e39febc43d7e8ee099
Merge: 6d5e47a54c 6db599232e
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 10:14:46 2025 +0100

    Merge pull request #101001 from adamscott/fix-metadata-script

    Fix Script metadata usage

commit 6d5e47a54c6efa51d07e1bc30824603241c0a85a
Merge: 084da581be 7f0b4e58b0
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 10:14:42 2025 +0100

    Merge pull request #100532 from bruvzg/win_size_drag

    Implement `DisplayServer.window_start_resize`.

commit 084da581be79c6fb563b9e2e702fe6b303cae848
Merge: 6e9be55ee2 1637736c20
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 10:14:38 2025 +0100

    Merge pull request #100241 from lander-vr/reflection-probe-priority

    Add priority-based blending to reflection probes.

commit 6e9be55ee27d28fe3c750213942ad81d8fd2f5c0
Merge: 9b6322a6f1 3d60ce9389
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 10:14:34 2025 +0100

    Merge pull request #100104 from bruvzg/ts_data_in_template

    [Export] Allow using ICU data from export templates instead of editor embedded data.

commit 9b6322a6f1335489d768853ffb7763a528b8cda5
Merge: 9890cc9d59 cc1db569e1
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 10:14:30 2025 +0100

    Merge pull request #97478 from bruvzg/emb_obj

    [TextServer] Improve embedded objects handling performance.

commit 9890cc9d592e7684d8422846ebe80514a42fe802
Merge: 7c49ae253e 86a6794a4a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 10:14:26 2025 +0100

    Merge pull request #97136 from chocola-mint/fix-#97021

    Stop EditorNode from refreshing the current scene tab when not needed

commit 7c49ae253e2faa3b5a9c1f00f504bc3f1e61da08
Merge: 4cf02312f6 482531c4b8
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 10:14:15 2025 +0100

    Merge pull request #96713 from Nazarwadim/thread_local_bones_backup

    Use `thread_local` for `bones_backup`

commit 3d60ce9389bab3bbb0af325a00e6773c0860f225
Author: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
Date:   Thu Dec 5 22:49:06 2024 +0200

    [Export] Allow using ICU data from export templates instead of editor embedded data.

commit cc1db569e1aef8d9fb4893bc75f664868b60acac
Author: bruvzg <7645683+bruvzg@users.noreply.github.com>
Date:   Thu Sep 26 09:37:47 2024 +0300

    [TextServer] Improve embedded objects handling performance.

commit 7f0b4e58b003d87877e3d53fbc0c7dc9e07f4f9b
Author: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
Date:   Tue Dec 17 20:01:56 2024 +0200

    Implement `DisplayServer.window_start_resize`.

commit 86a6794a4a03219e91f8fe3f31ea97fa79d8ebdf
Author: chocola-mint <56677134+chocola-mint@users.noreply.github.com>
Date:   Tue Dec 17 17:09:36 2024 +0900

    Stop EditorNode from refreshing the current scene tab when not needed

commit 49846cf79a7b493b00bd1498daff665ab7f9d0db
Author: clayjohn <claynjohn@gmail.com>
Date:   Mon Jan 6 19:25:11 2025 -0800

    Save instance and global uniform data in RenderingServerDummy so they can be exported with headless exports

commit ccc134fd1bc60a58a5b65e1ec69eebe48c9b8b52
Author: kobewi <kobewi4e@gmail.com>
Date:   Mon Dec 30 16:41:34 2024 +0100

    Tween code improvements

commit 865acd0129510406103f8c7134d0f548d248551b
Author: Hugo Locurcio <hugo.locurcio@hugo.pro>
Date:   Tue Jan 7 01:06:41 2025 +0100

    Show MetalFX options in the Scaling 3D Mode enum on all platforms

    Previously, the MetalFX scaling modes were only displayed in the
    `macos` and `ios` feature tag overrides if the editor had Metal support
    enabled. However, this is only available on the macOS editor, which caused
    two issues:

    - You couldn't set the 3D scaling mode to MetalFX for `macos` or `ios`
      if you were using the editor on another platform.
    - If you opened a project that was last edited on macOS with MetalFX scaling
      modes set for these overrides, it would show an unknown value or revert
      to the default when saving to the project (as the enum value didn't exist
      anymore on your end).

commit 4cf02312f6674083c5a628b4701643e1157c85f0
Merge: bd56e811f3 5727eda0e1
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 00:45:14 2025 +0100

    Merge pull request #101136 from JulianHeuser/master

    Add test for GLTFDocument

commit bd56e811f30ee0c2c21d37bc22eb87d2c33becad
Merge: 887c1557bf 663b90da61
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 00:45:11 2025 +0100

    Merge pull request #101015 from bruvzg/si_fix_empty_tt

    [Windows] Fix StatusIndicator crash with empty tooltip (and few other similar unsafe `ptr()` uses).

commit 887c1557bf238be0b7f2408cc301ab1722a9866c
Merge: 452f1fa0e9 cb460ad421
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 00:45:07 2025 +0100

    Merge pull request #100961 from Geometror/lm-colored-transparent-shadows

    Add support for colored shadows in LightmapGI

commit 452f1fa0e946ee6a4f7e406b672380d04c10106e
Merge: 21a6bd8dca 1e982a49c3
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Tue Jan 7 00:45:00 2025 +0100

    Merge pull request #100512 from bruvzg/dict_keys

    [Dictionary Property Editor] Use property editors instead of labels to display keys.

commit cb460ad421977082fa987fcc90ac1d6b63cd0376
Author: Hendrik Brucker <hendrik.brucker@mail.de>
Date:   Mon Dec 30 22:57:02 2024 +0100

    Add support for colored shadows in LightmapGI

commit 25a9b04ecc1dcebd38ca0f276a9407ca60888469
Author: clayjohn <claynjohn@gmail.com>
Date:   Mon Jan 6 14:00:58 2025 -0800

    Correct aspect ratio used in FSR2 calculations to remove a source of depth-based ghosting

commit 21a6bd8dcac41cd7751dd8de7dffe736c0b8965c
Merge: 52f542b342 501fc1a6ff
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:49:29 2025 +0100

    Merge pull request #101182 from stuartcarnie/editor_crash_import

    Editor: Fix crash when using `--import --verbose` due to use-after-free

commit 52f542b342fbc0d9e2b02b0d48f8b7880ac0a6e9
Merge: f92780204e d7532f0d31
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:49:25 2025 +0100

    Merge pull request #101180 from syntaxerror247/editor-themed-icon

    Android Editor: Fix themed icon

commit f92780204e74dc4fd6f16f2cbe7675cd0fe71e32
Merge: caefffe9d5 e9c1c44be2
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:49:22 2025 +0100

    Merge pull request #101166 from jss2a98aj/opengl3-fallback-wording

    Improve OpenGL 3 fallback documentation wording

commit caefffe9d557cd26cbf234b8359f8a981b9b7006
Merge: 6e826b26d9 db0fab8f8c
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:49:18 2025 +0100

    Merge pull request #101153 from Hilderin/fix-embed-game-focus-border

    Fix embedded game focus border

commit 6e826b26d9a6129ef7f50a43398478b0eb15f20d
Merge: 3de10d58ff f1f152ea5a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:49:14 2025 +0100

    Merge pull request #101148 from TokageItLab/skelmod-generic

    Move enum BoneAxis to SkeletonModifier from LookAtModifier

commit 3de10d58ffa033fb9094be302f108f4155ba4d54
Merge: cc32e46360 7ce9c339b3
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:49:09 2025 +0100

    Merge pull request #101145 from hpvb/fix-scenetree-editor-marked

    Make sure marked nodes are reset on scene change

commit cc32e46360152a63cfdec2843df6df583cf62f54
Merge: 0f76ee4688 2f061df7b0
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:49:05 2025 +0100

    Merge pull request #101135 from Hilderin/fix-embedding-not-working-intermittently

    Fix embedding failing intermittently

commit 0f76ee4688216ffecfc53a0c57b39d3d1e273ace
Merge: 8231494581 7e8facc526
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:49:01 2025 +0100

    Merge pull request #101110 from clayjohn/light2d-rect-fix

    Update Light2D `rect_cache` even when not using shadows.

commit 8231494581d310a3656f9afe782a9720e452e883
Merge: 38ffeb56f4 54a4a874fa
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:57 2025 +0100

    Merge pull request #101107 from Calinou/doc-collisionpolygon2d-fix-warning

    Fix warning in CollisionPolygon2D documentation description

commit 38ffeb56f4af18b610f7897f9b17bc6be3ef6210
Merge: 20728e7b05 4e888f9987
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:54 2025 +0100

    Merge pull request #101103 from Calinou/editor-gridmap-translucent-cursor

    Make the GridMap editor cursor translucent

commit 20728e7b05d8f127bc1dafe46173fcaf930bf0ef
Merge: e169842dd5 19b8b10218
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:50 2025 +0100

    Merge pull request #101101 from Calinou/editor-add-gridmap-grid-color-setting

    Add an editor setting for the GridMap grid color

commit e169842dd5947a09612aee76325a06642d542d08
Merge: 063731450d a12c1d3ddb
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:46 2025 +0100

    Merge pull request #101097 from adamscott/fix-stopping-active-audio-playback

    Stop AudioStreamPlayback only if it's not playing

commit 063731450dfe054cd1955e0d5c641b96e57e11c9
Merge: 2758b8666c 3366f08a2c
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:43 2025 +0100

    Merge pull request #101096 from KoBeWi/fighting_the_SPAM

    Don't print error when updating terrains tree without layer

commit 2758b8666cb04624b51d644e4d0c3e75433efccb
Merge: 08c605fe2d 685ff5be8f
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:39 2025 +0100

    Merge pull request #101087 from KoBeWi/is_not_foreign

    Fix converting root Sprite2D

commit 08c605fe2df948053e086623ca1a5c47f630a8bd
Merge: c09b7224b5 3fa775b844
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:35 2025 +0100

    Merge pull request #101082 from arkology/line_2d_edit_get_rect

    Speed up `Line2D._edit_get_rect()`

commit c09b7224b5b7d1ee43b02aba0afa69f76bc27982
Merge: 62ea2f76b4 e492ddde12
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:31 2025 +0100

    Merge pull request #101078 from larspet/fs-changed-scroll

    Don't scroll to selected file in FileSystem when saving scenes

commit 62ea2f76b46ff825ecf4f497aa0a2eaac6c88da9
Merge: 91fda4ecaf dea083864b
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:28 2025 +0100

    Merge pull request #101069 from DarioSamo/rd-thread-safety-comment

    Remove TODO from RenderingDevice regarding thread safety.

commit 91fda4ecafc2c9c94eff9d08df12d519074475fe
Merge: bf2548463a 0e72967244
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:24 2025 +0100

    Merge pull request #101055 from Ivorforce/variant-to-number-consolidate

    Consolidate `Variant` int and float conversion functions to reduce duplicate logic.

commit bf2548463af95a15ca67d39ab05d9e944ac9e67b
Merge: f18bb5ba1a 86ab88f016
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:20 2025 +0100

    Merge pull request #101012 from zachseiss/master

    Preserve emission ring shape properties during conversion from GPUParticles3D to CPUParticles3D and vice versa

commit f18bb5ba1ab26bf72108e747c0ae6d5810f7a6b5
Merge: 653f5a9613 c1cdcad96a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:16 2025 +0100

    Merge pull request #100999 from KoBeWi/theme_wariat

    Fix ProjectTag button variation

commit 653f5a96130c24ae26cbcd9ed0ebbee9536c62f4
Merge: 881d4bd9ee 25ecf5ec83
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:13 2025 +0100

    Merge pull request #100976 from AThousandShips/uid_fixes

    [Core] Fix UID encoding

commit 881d4bd9ee8915f9bba3fd09ae08779dbdc9ef94
Merge: ddb01528ea 8c7319459b
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:09 2025 +0100

    Merge pull request #100960 from buresu/fix-windows-keymapping

    Fix incorrect Unicode key mapping on Windows

commit ddb01528eaaf791d3531e773f2abc3af38fb7e99
Merge: 8c78540d47 c0eae103e2
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:05 2025 +0100

    Merge pull request #100956 from Geometror/dont-toast-shader-code

    Don't toast shader code

commit 8c78540d47e0c0945710262dfcf46508b7c2e346
Merge: 3c50ee6c9e 9eeeadb037
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:48:01 2025 +0100

    Merge pull request #100931 from beicause/color-picker-hue-accuracy-okhsl

    ColorPicker: Improve the accuracy of hue slider in OKHSL mode

commit 3c50ee6c9ee6ddca7ef39068cbfb82c9c59c1b9b
Merge: 44f871ff72 6b1869b76b
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:57 2025 +0100

    Merge pull request #100903 from Hakunamawatta/patch-1

    Fix `get_meta_list` return type in description

commit 44f871ff72351791a0b053319a973c1b56a30c3a
Merge: f5d21154d2 8c1742c957
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:53 2025 +0100

    Merge pull request #100898 from Summersay415/wayland-issue

    Fix exclusive fullscreen on Wayland

commit f5d21154d2ba8187d12a32d666c73803a2906561
Merge: bc0cd1fff3 f588235441
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:49 2025 +0100

    Merge pull request #100892 from syntaxerror247/patch-1

    Warn if `virtual_keyboard_get_height()` is unsupported

commit bc0cd1fff3f2a428ec6455332696a4cd2118123b
Merge: 4de07f3a97 e8e62d0cdd
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:45 2025 +0100

    Merge pull request #100856 from BlueCube3310/astc-decomp-rt

    astcenc: Allow decompression in non-editor builds

commit 4de07f3a978b111a9a92fe98cfa6926baa725b05
Merge: af01694779 13f548c7f5
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:41 2025 +0100

    Merge pull request #100549 from kiroxas/`NavMeshQueries3D_query_task_build_path_corridor`_simplification

    Simplify `NavMeshQueries3D::_query_task_build_path_corridor`

commit af016947793f8fd910fb29204ab4c9aa967e2d04
Merge: c1f65b429d 7c182a1544
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:38 2025 +0100

    Merge pull request #100492 from bruvzg/txt_mbrk_trim

    [TextServer] Fix space trimming around mandatory line breaks.

commit c1f65b429ddb54053dc937e4211879a7427ea586
Merge: d15e559355 b3e970dde8
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:33 2025 +0100

    Merge pull request #100329 from eviltrout/add-custom-line-offset

    Add `get_selection_line_offset` to `RichTextLabel`

commit d15e559355c03f9109e0a8367ba42bf2f772679c
Merge: ded4b5b91f 3d8ecc452a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:29 2025 +0100

    Merge pull request #100103 from Summersay415/idsig

    Android: Delete `.idsig` on One Click Deploy

commit ded4b5b91fbc5fe583137c59800940563d14d3a9
Merge: 282c2c8490 753900188a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:24 2025 +0100

    Merge pull request #99966 from YeldhamDev/in_the_depths_of_searching

    Make Inspector search inside sub-resources

commit 282c2c849028746b74fff1b470960f03b40a418b
Merge: b63349024a 3cc43abab0
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:20 2025 +0100

    Merge pull request #99921 from Flarkk/aspect_ratio_convention

    Document inverse aspect ratio convention of `Projection::get_fovy()`

commit b63349024a06202c879a6a4ccd8d078bd16609ce
Merge: e06cac212b 4cadfd3eb9
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:16 2025 +0100

    Merge pull request #99898 from MewPurPur/bro-the-order-didnt-change-wdym

    Don't create an UndoRedo action if Autoload order doesn't change after Drag & Drop

commit e06cac212bb113bd08f174407d4995f68835dc0c
Merge: 399f585042 06efe84bca
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:12 2025 +0100

    Merge pull request #99893 from kiroxas/avoidUTF8ParsingWhenNotNecessary

    Avoid duplicated `utf8()` calls

commit 399f585042bbdc160bd4e8e22bd844c17d9048a2
Merge: a06e9ebe91 11dc4f2e5e
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:08 2025 +0100

    Merge pull request #99603 from stuartcarnie/metal_fx_upscaling

    Metal: Add MetalFX upscaling support

commit a06e9ebe915cdc52681fd0b424386a28f0eb3c62
Merge: 11f95e7feb 8318eda899
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:47:04 2025 +0100

    Merge pull request #99439 from aXu-AP/polygon-editor-bottom-dock

    Move UV editor to bottom dock, rename to Polygon editor

commit 11f95e7febc5c407489c4a9aeb11a5fbe3db95ca
Merge: 990416e90b e1f129cb52
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:46:59 2025 +0100

    Merge pull request #99350 from bruvzg/fs_mime

    Support MIME types in file dialog filters on macOS and Linux.

commit 990416e90b8c0d9e375a329007f2c9fcc4093ce8
Merge: 30b20bc251 8de13860e8
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:46:55 2025 +0100

    Merge pull request #99296 from elpozewaunig/web_splash_properties

    Add web support for all missing splash screen properties

commit 30b20bc251898b0dddfb60db542e7fb0fa430a83
Merge: ae205b0fc6 07f8935c69
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:46:52 2025 +0100

    Merge pull request #99121 from dalexeev/gds-deprecate-inst-to-dict

    GDScript: Deprecate `inst_to_dict()` and `dict_to_inst()` functions

commit ae205b0fc61a71ed928d0ff11557c56b69bf15d3
Merge: ba8a155551 38ff1500c7
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:46:48 2025 +0100

    Merge pull request #98926 from YeldhamDev/out_all_of_you

    Add toggle to hide filtered out parents in the "SceneTree" dock

commit ba8a155551aa1b2bf578f656db03c19405ba5c3a
Merge: c78d9d2fe7 e649e7e3c5
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:46:44 2025 +0100

    Merge pull request #98909 from demolke/master

    GLTF: Don't duplicate textures when importing blend files

commit c78d9d2fe7791d2ad2926f1167ec6536ed26f296
Merge: be4678b836 be266138d7
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:46:40 2025 +0100

    Merge pull request #98660 from Meorge/tween-subtween

    Add `Tween.tween_subtween` method for nesting tweens within each other

commit be4678b836484cc83bf7bf686e0cc8b3beed0401
Merge: 4319d380d1 b32395ade9
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:46:37 2025 +0100

    Merge pull request #95750 from mosquitochang/fix-input-event-get-index

    Fix `InputMap::event_get_index` to handle unmatched events correctly

commit 4319d380d1ba155b19446c77877f3e82e3d49e3a
Merge: f99a465956 c049d07121
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:46:31 2025 +0100

    Merge pull request #94507 from akien-mga/variantparser-improve-error-reporting

    VariantParser: Ensure all parse errors have an explanation

commit f99a465956e344d50ebb575c0fc641205f4eaab3
Merge: 1aaf20b1f1 6a12fac44c
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Jan 6 22:46:26 2025 +0100

    Merge pull request #81532 from wlsnmrk/button-focus-loss-event-fix

    Fix `button_up` and `button_down` signals with focus changes or multiple inputs

commit 4cadfd3eb98bd5e70629426acda2d219ea7b53ec
Author: MewPurPur <mew.pur.pur@gmail.com>
Date:   Sun Dec 1 17:03:07 2024 +0200

    Don't create an UndoRedo action if Autoload order doesn't change after Drag & Drop

commit db4ae2a91c413f0acac16e4e779c0d16123efc1c
Author: arkology <43543909+arkology@users.noreply.github.com>
Date:   Thu Dec 12 22:29:02 2024 +0300

    Show "transparent background" texture only behind actual texture in `TexturePreview` class + add borders for readability

commit 5727eda0e1b7d9f686b11e1cd9afa110167d4341
Author: Julian <julianheuser@outlook.com>
Date:   Sat Jan 4 14:28:38 2025 -0500

    GLTFDocument test case

commit e9c1c44be25cfc86140044be1ef1dd9eb81e47bb
Author: jss2a98aj <jss2a98aj@gmail.com>
Date:   Sun Jan 5 18:19:34 2025 -0500

    Fix OpenGL 3 fallback wording

    It should not say "both" where there are three APIs listed.

commit 753900188a6349e5b3db72d4d9531c2e753354d2
Author: Michael Alexsander <michaelalexsander@protonmail.com>
Date:   Tue Dec 3 12:20:28 2024 -0300

    Make Inspector search inside sub-resources

commit 501fc1a6ff4838f0df241797690c15028877fbd3
Author: Stuart Carnie <stuart.carnie@gmail.com>
Date:   Mon Jan 6 07:46:51 2025 -0700

    Editor: Fix crash when using `--import --verbose` due to use-after-free

commit d7532f0d31885c39b9218ef17b05a900f0d828ea
Author: Anish Mishra <mishragames@gmail.com>
Date:   Mon Jan 6 19:14:00 2025 +0530

    Android Editor: Fix themed icon

commit 2f061df7b03dae536dd2bfb7d95006b0e5bb847a
Author: Hilderin <81109165+Hilderin@users.noreply.github.com>
Date:   Sat Jan 4 14:24:52 2025 -0500

    Fix embedding not working intermittently

commit 11dc4f2e5eb13e7a6c4f5269d709b1ca5f03b38d
Author: Stuart Carnie <stuart.carnie@gmail.com>
Date:   Sun Nov 24 09:11:43 2024 +1100

    Metal: Add MetalFX upscaling support

    Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>

commit 84e6ac9ecdfdc280520cbb6c217c15447f1cbb6c
Author: BlueCube3310 <53150244+BlueCube3310@users.noreply.github.com>
Date:   Mon Jan 6 12:31:22 2025 +0100

    Web: Export ASTC/BPTC compressed textures

commit 1aaf20b1f1f3ab59f04db74b166540327a3f1f90
Merge: da4f9339ea de7e4efef8
Author: Rémi Verschelde <remi@verschelde.fr>
Date:   Mon Jan 6 08:38:14 2025 +0100

    Merge pull request #98488 from RandomShaper/lockless_rid_fetch_pro

    Fix `RID_Owner` synchronization

commit 87767f7c34cbab727127da9c33452b4db9d124f6
Author: Timo Schwarzer <timo@schwarzer.dev>
Date:   Sun Jan 5 23:10:34 2025 +0100

    Fix ParticleProcessMaterial not using same offsets for emission textures

commit da4f9339ea7f614f5965e6a6b918b8c8285f2e1d
Merge: 02e4605d6c 873eb21ce8
Author: Rémi Verschelde <remi@verschelde.fr>
Date:   Sun Jan 5 14:52:18 2025 +0100

    Merge pull request #101072 from hpvb/thread-id-optimization

    Optimize `Thread::get_caller_id()`

commit db0fab8f8c4b6623c20ef7a6072a5a1930c2c666
Author: Hilderin <81109165+Hilderin@users.noreply.github.com>
Date:   Sun Jan 5 08:29:01 2025 -0500

    Fix embedded game focus border

commit c0eae103e2b48a3e3d5bee50507951fcde803f4b
Author: Hendrik Brucker <hendrik.brucker@mail.de>
Date:   Sun Jan 5 13:19:45 2025 +0100

    Don't toast shader code

commit 02e4605d6c07a13652d812d8a3aa5f760312dc31
Merge: bdf625bd54 b77aa473a1
Author: Rémi Verschelde <remi@verschelde.fr>
Date:   Sun Jan 5 11:13:50 2025 +0100

    Merge pull request #92563 from rsubtil/feature-oopsie_woopsie

    Implement a "Recovery Mode" for recovering crashing projects during initialization

commit f1f152ea5a8b20a4f245e4a03396edf13330bbc1
Author: Silc Lizard (Tokage) Renew <61938263+TokageItLab@users.noreply.github.com>
Date:   Sun Jan 5 14:14:36 2025 +0900

    Move enum BoneAxis to SkeletonModifier from LookAtModifier

commit 7ce9c339b3500632c46c2ec1701e6659836cb961
Author: HP van Braam <hp@tmm.cx>
Date:   Sun Jan 5 01:56:42 2025 +0100

    Make sure marked nodes are reset on scene change

    The performance improvement on the SceneTreeEditor caused the previous
    state of the SceneTreeEditor::marked HashSet to matter, when it
    previously was always just overwritten when markings changed. The old
    code thus had no reason to ever clear the marking list.

    We now make sure that whether the SceneTreeEditor is hidden or not that
    when the edited scene changes we always reset the entire state of the
    editor, including the marked HashSet.

commit e1f129cb527712df5b9aac75a6a0d30cdce33bd8
Author: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
Date:   Sun Nov 17 12:25:23 2024 +0200

    Support MIME types in file dialog filters on macOS and Linux.

commit 54a4a874fa5457c1cb7b924d875865eab81947d6
Author: Hugo Locurcio <hugo.locurcio@hugo.pro>
Date:   Fri Jan 3 23:57:54 2025 +0100

    Fix warning in CollisionPolygon2D documentation description

    This was a copy-paste error from the CollisionShape2D documentation.

commit 9eeeadb037c680cfc1d3806fbcb8e6aeb70e9977
Author: LuoZhihao <luo_zhihao_jx@qq.com>
Date:   Sat Jan 4 21:36:27 2025 +0800

    ColorPicker: Improve the accuracy of hue slider in OKHSL mode

commit 7e8facc5260525d3605250409cfb08ee469987f4
Author: clayjohn <claynjohn@gmail.com>
Date:   Fri Jan 3 16:17:58 2025 -0800

    Update Light2D rect_cache even when not using shadows.

    This also cleans up how the rect_cache is updated to make the steps more clear

commit be266138d7496e71b146455a63eb31b3fc697edc
Author: Malcolm Anderson <malcolminyo@gmail.com>
Date:   Mon Oct 28 22:30:33 2024 -0700

    Add `tween_subtween` method for nesting Tweens

    No actual functionality yet

    Actual subtween functionality implemented

    Added documentation for Tween.tween_subtween and SubtweenTweener

    Implemented some additional functions

    `set_ease`, `set_trans`, and `set_delay`
    Documentation only for `set_delay` so far, since I have tested it

    Removed set_ease and set_trans

    Upon further investigation, the way they are implemented for Tween doesn't appear to work here

    Fixed indentation in documentation

    Reset subtween when parent loops

    Fix return type of `SubtweenTweener.set_delay`

    Add notes to documentation

    Apply suggestions from code review

    Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>

    Apply some suggested changes

    - Remove excessive documentation
    - Add Tween constructor that takes in SceneTree
    - Make `SubtweenTweener::subtween` public so that `Tween` doesn't have to be a friend class

    Remove unneeded friend class SceneTree

    Remove superfluous documentation describing subtween behavior

    Apply suggestions from code review

    Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>

    Apply suggestions from code review

    Co-authored-by: Thaddeus Crews <repiteo@outlook.com>

    Apply suggestions from code review

    Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>

    Early return from `tween_subtween` if the subtween is `null`

commit 4e888f998721b4ee0263b9b9184b3d5edc612802
Author: Hugo Locurcio <hugo.locurcio@hugo.pro>
Date:   Fri Jan 3 23:21:04 2025 +0100

    Make the GridMap editor cursor translucent

    This makes it possible to distinguish GridMap tiles that haven't been
    placed yet from those that are already in place.

commit 19b8b1021848d1c9f191e924a2612abf5cedb9fc
Author: Hugo Locurcio <hugo.locurcio@hugo.pro>
Date:   Fri Jan 3 23:06:01 2025 +0100

    Add an editor setting for the GridMap grid color

    The opacity can be adjusted by changing the alpha channel of the color
    setting. The setting applies without having to restart the editor.

commit f8fd15690c556b0bb0499e0a407b496e53c06242
Author: kobewi <kobewi4e@gmail.com>
Date:   Fri Jan 3 22:54:26 2025 +0100

    Don't show "Drawing rect" when not actually drawing

commit a12c1d3ddb1f6b28cfb61bda78e331870469d0d8
Author: Adam Scott <ascott.ca@gmail.com>
Date:   Fri Jan 3 16:26:08 2025 -0500

    Stop AudioStreamPlayback only if it's not playing

commit 3366f08a2c92e070c4995dc6c12965d8ea26f262
Author: kobewi <kobewi4e@gmail.com>
Date:   Fri Jan 3 22:23:52 2025 +0100

    Don't print error when updating terrains tree without layer

commit 8318eda899ea42985b23aa112b13b9648de77d68
Author: aXu-AP <1621768+aXu-AP@users.noreply.github.com>
Date:   Wed Oct 18 01:28:04 2023 +0300

    Move Polygon2D editor to bottom panel

    Move UV editor to bottom panel to allow realtime preview of results. Rename the editor to Polygon editor.

    Refactor enums and rename polygon editor members.
    Remove "uv" prefixes and clarify some names. Reorder/regroup some members in header file.

commit 0e72967244de125e709218326d4d6818cfc14eab
Author: Lukas Tenbrink <lukas.tenbrink@gmail.com>
Date:   Fri Jan 3 00:06:12 2025 +0100

    Consolidate `Variant` int and float conversion functions to reduce duplicate logic.

commit 685ff5be8fc6573ab72ce289dea46bf34272e318
Author: kobewi <kobewi4e@gmail.com>
Date:   Fri Jan 3 20:05:27 2025 +0100

    Fix converting root Sprite2D

commit 07f8935c6965513ff030aa647eef71a284058bec
Author: Danil Alexeev <dalexeev12@yandex.ru>
Date:   Fri Jan 3 21:17:06 2025 +0300

    GDScript: Deprecate `inst_to_dict()` and `dict_to_inst()` functions

commit 3fa775b844a9505dc891a64356d22d7aa3809c40
Author: arkology <43543909+arkology@users.noreply.github.com>
Date:   Fri Jan 3 20:32:08 2025 +0300

    Speed up `Line2D._edit_get_rect()`

commit 8de13860e8e99bce4e8114b86fff14063d53eb0f
Author: Elias Pozewaunig <64259275+elpozewaunig@users.noreply.github.com>
Date:   Fri Nov 15 02:00:19 2024 +0100

    Added web support for all missing splash screen properties

    show_image, fullsize and use_filter are now supported too.

    bg_color, image and minimum_display_time were already supported previously.

commit 873eb21ce81787fb67fb982684dc2bd5f71858ef
Author: HP van Braam <hp@tmm.cx>
Date:   Fri Jan 3 14:49:16 2025 +0100

    Optimize Thread::get_caller_id()

    By making sure that Thread always has a valid caller_id we can remove the
    check making the function a straightforward getter instead.

    In some quick tests we see a repeatable performance improvement of
    somewhere around 0.32 mspf in TPS demo.

    Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>

commit c049d07121e61823f535b3c6c349ef1923baf7e1
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Thu Jul 18 14:17:05 2024 +0200

    VariantParser: Ensure all parse errors have an explanation

    Likewise in ResourceFormatText and JSON.

commit 6db599232edef19b750728c45187b4a26e3442ec
Author: Adam Scott <ascott.ca@gmail.com>
Date:   Wed Jan 1 12:42:42 2025 -0500

    Fix Script metadata usage

commit de7e4efef803db1e38f6127e7526b9778a0059e9
Author: Pedro J. Estébanez <pedrojrulez@gmail.com>
Date:   Mon Nov 11 18:09:43 2024 +0100

    Fix RID_Owner synchronization

commit e492ddde127297af363f58235309f477efe49b9e
Author: Lars Pettersson <larspettersson44@gmail.com>
Date:   Fri Jan 3 16:29:00 2025 +0100

    Don't scroll to selected file in FileSystem when saving scenes

commit dea083864b657b25c2e59c26ef2858946a90d314
Author: Dario <dariosamo@gmail.com>
Date:   Fri Jan 3 10:26:44 2025 -0300

    Remove TODO from RenderingDevice regarding thread safety.

commit 86ab88f016b18dff5f6f87e36e9a54b44af89294
Author: Zach Seiss <zssc88@gmail.com>
Date:   Wed Jan 1 22:42:00 2025 -0500

    added preservation of emission ring properties during conversion from GPUParticles3D to CPUParticles3D and vice versa

commit e8e62d0cdddcb37b2abacb34923c2de42eb753f4
Author: BlueCube3310 <53150244+BlueCube3310@users.noreply.github.com>
Date:   Fri Dec 27 18:39:12 2024 +0100

    astcenc: Allow runtime decompression of ASTC formats

commit e167f4df370eda12f8c310039670d538362396d4
Author: kobewi <kobewi4e@gmail.com>
Date:   Wed Dec 11 15:11:47 2024 +0100

    Remember QuickOpenDialog history between sessions

commit b77aa473a19bb965a899bee21e0518da830e27d2
Author: Ricardo Subtil <ricasubtil@gmail.com>
Date:   Tue Apr 30 21:13:10 2024 +0100

    Implement a "Recovery Mode" for recovering crashing/hanging projects during initialization

commit c1cdcad96a97e6ba989da2802fd7cdef7f789371
Author: kobewi <kobewi4e@gmail.com>
Date:   Wed Jan 1 15:07:16 2025 +0100

    Fix ProjectTag button variation

commit 13f548c7f5f9af175d73a12048230d0471cb3c39
Author: Kiro <mouton.guillaume88@gmail.com>
Date:   Wed Dec 18 09:53:42 2024 +0100

    Simplify_`NavMeshQueries3D::_query_task_build_path_corridor`

commit 6b1869b76b75ada079b610fe03fbb7f6049379a4
Author: Roan Lubbe <roanlubbe@protonmail.com>
Date:   Fri Jan 3 16:17:28 2025 +1100

    Fix get_meta_list return type in description

commit bdf625bd54958c737fa6b7213b07581cc91059ad
Merge: c3c0c24d1e ec7d7abde9
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 02:01:35 2025 +0100

    Merge pull request #101051 from aaronfranke/gltf-always-read-alpha-cutoff

    GLTF: Always read `alphaCutoff` property

commit c3c0c24d1ea6bc6098cb7df5c4bebab1e7798b45
Merge: 88a101ef8c c5b61d4d82
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 02:01:32 2025 +0100

    Merge pull request #100863 from larspet/project-list-placeholder

    ProjectManager: Update project list placeholder when project is created

commit 88a101ef8c17a23a47f03d1ddfbe10f0101a177f
Merge: a17a0bc808 e0ca8be392
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 02:01:28 2025 +0100

    Merge pull request #100787 from KoBeWi/uid_be_like_'I'm_back'

    Re-create missing .uid files

commit a17a0bc808dc411da8d5397c7a8b6006b1c4245c
Merge: 29bd5c06ef 81b1138a7f
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 02:01:24 2025 +0100

    Merge pull request #100717 from KoBeWi/icon_uncache

    Fix icon UIDs in Project Manager

commit 29bd5c06ef05ab86e46d44b68f5ad0de8ebea5b2
Merge: 89b18de032 975369fceb
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 02:01:20 2025 +0100

    Merge pull request #100636 from raulsntos/dotnet/emit-signal-fix

    [.NET] Fix EmitSignal with typed array parameters

commit 89b18de032f8a92c890e7f7b01cf5305597052d9
Merge: abe5ba044c a6c5373a09
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 02:01:16 2025 +0100

    Merge pull request #100221 from adamscott/fix-diraccess-sync

    [Web] Fix `DirAccess::unlink()` not updating the IDBFS

commit abe5ba044cc399301a2f44b491247f941b8b2f3e
Merge: 6c6e74408c b34adf29dc
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 02:01:12 2025 +0100

    Merge pull request #99071 from akien-mga/os-unused-display_driver_id

    Remove unused OS `_display_driver_id` member

commit 6c6e74408c466ba80306da167bb055842cfa7822
Merge: efae48a209 df61dca5ba
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 02:01:09 2025 +0100

    Merge pull request #94616 from Chaosus/vs_fix_vec4_constant

    Change `VisualShaderNodeVec4Constant` type to vec4

commit b34adf29dc06c23f162d921fb9453fcae3d7ad98
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Mon Nov 11 14:49:29 2024 +0100

    Remove unused OS `_display_driver_id` member

commit efae48a2094fded2bce9d71626128523922d6553
Merge: 5a8b7188af b536b3e12d
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 01:06:58 2025 +0100

    Merge pull request #100624 from Repiteo/scons/node-count-fix

    SCons: Don't update node count when cleaning

commit 5a8b7188af0a58da0546bc98bd56e416102fc248
Merge: 8e66fac92a 7bed84c165
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:50:13 2025 +0100

    Merge pull request #101044 from mihe/jolt/revert-100533

    Revert "Stop reporting contacts for sleeping bodies when using Jolt Physics"

commit 8e66fac92adb4a771acd7df1b5e4290eeb941499
Merge: 94f23c342a 4184884ad1
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:50:10 2025 +0100

    Merge pull request #101037 from smix8/navregion_polys

    Make NavMeshQueries use NavRegionIteration polygons directly

commit 94f23c342a749e2c49b76a7527535b90e599832b
Merge: 32b081b2ff 8dd0579bcd
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:50:06 2025 +0100

    Merge pull request #101010 from smix8/navlink_debug_direction

    Add NavigationLink debug direction indicator

commit 32b081b2ffc71b49db929fa5da96d873a2820846
Merge: d47fef15b8 54373160df
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:50:02 2025 +0100

    Merge pull request #101005 from Sauermann/fix-graph-node-crash

    Fix nullptr crash with freed `GraphNode` in GraphEditArranger

commit d47fef15b87778aed042a15154e0f4a9da1d7398
Merge: e680767fb9 d0c421976c
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:59 2025 +0100

    Merge pull request #100991 from TokageItLab/180deg-arc

    Fix looking at with 180 degree arc

commit e680767fb9614b2078917ed5386623f1e35159de
Merge: 1f2d535f78 3bb2309f6b
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:55 2025 +0100

    Merge pull request #100987 from marcelovbcfilho/master

    Windows: Implement native menu close callback

commit 1f2d535f78a323fdd7471053af2be3fcaeed4158
Merge: d28c41616a 7beaddc9c0
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:51 2025 +0100

    Merge pull request #100983 from mihe/jolt/only-iterate-active-bodies

    Improve performance with many static/sleeping bodies when using Jolt Physics

commit d28c41616a5e1e32343a19a82a64edd0c2c12480
Merge: 21e6671740 bb76e721e9
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:48 2025 +0100

    Merge pull request #100938 from RedMser/system-user-adb

    Respect system user setting for (un)installing APK

commit 21e667174010093703a54248160e6c5421001f97
Merge: 88babbdce2 2c9620f24c
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:44 2025 +0100

    Merge pull request #100937 from Repiteo/style/clang-format-sync

    Style: Enforce `AllowShortFunctionsOnASingleLine`

commit 88babbdce28965b591a2cf35f6ffde00a651c874
Merge: 2f4cb705c3 ba3f2bf4a3
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:41 2025 +0100

    Merge pull request #100932 from ajreckof/Fix-dictionary-editor-steals-focus-when-recreating-full-inspector-

    Fix dictionary editor steals focus when reloading script.

commit 2f4cb705c330cc21dafbe5d667ab1a2cb877f420
Merge: 8e76f669c2 47db9c0405
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:37 2025 +0100

    Merge pull request #100930 from beicause/fix-color-picker-cursor-position-in-okhsl

    ColorPicker: Fix cursor position in OKHSL wheel

commit 8e76f669c2d57195551848493c6869ac4fb1ea96
Merge: d01768d858 751d3d5852
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:33 2025 +0100

    Merge pull request #100929 from Geometror/fix-lm-penumbra-computation

    Fix lightmapper penumbra computation

commit d01768d8585d508faf6a585c025936535f141b21
Merge: 16a4919a51 1b04e6f46d
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:29 2025 +0100

    Merge pull request #100925 from KoBeWi/Stop.Duplicating.Scripts-

    Respect `PROPERTY_USAGE_NEVER_DUPLICATE` with Make Sub-Resources Unique

commit 16a4919a51aa8fa8c049e5d21f3e11d5669f357f
Merge: 19a7b466c2 4f7e04a959
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:25 2025 +0100

    Merge pull request #100912 from Repiteo/ci/single-concurrency

    CI: Fix GHA bug by defining a single concurrency

commit 19a7b466c2054ac1d93801cc3bb7d6763847f389
Merge: 5ff616736a 6f363b989a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:22 2025 +0100

    Merge pull request #100848 from BlueCube3310/astc-improvements

    astcenc: Misc improvements and optimizations

commit 5ff616736a35a480ce16e0049d39cd8efe69eb67
Merge: ff14d86fa3 4e48b19e1f
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:18 2025 +0100

    Merge pull request #100825 from KoBeWi/colored_eight

    Add `Color.from_rgba8` and deprecate Color8

commit ff14d86fa31a2e9c7ab0a4e910f8fe227179e5da
Merge: e9da833e6c 24f5361b8a
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:14 2025 +0100

    Merge pull request #100811 from TokageItLab/bitmask-retarget

    Make transform elements BitField in RetargetModifier

commit e9da833e6c0d168520a4e1a516dcea2c9d15dd57
Merge: 8be07f1c23 46c23e1758
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:10 2025 +0100

    Merge pull request #100795 from hpvb/optimize-variant-clear

    Don't set `Variant::Type` in destructor

commit 8be07f1c2388a6b98ff199fde519d9913f265114
Merge: dd7d36e803 b50d9b7d8c
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:06 2025 +0100

    Merge pull request #100785 from syntaxerror247/request-permission-doc

    Update `OS.request_permission(...)` description

commit dd7d36e8038aa1f53614d593f72444e98e582f23
Merge: 386e4e16b3 cccd2432c3
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:49:02 2025 +0100

    Merge pull request #100770 from hpvb/command-queue-mt

    Core: Refactor CommandQueueMT to use vararg templates for performance and maintainability

commit 386e4e16b3556033e0814f1659c1f7a1e29f2eb2
Merge: 35cf29bb21 a550eef9f3
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:48:58 2025 +0100

    Merge pull request #100729 from Lazy-Rabbit-2001/new_create_dialog_p1

    Improve script class display in Create dialog

commit 35cf29bb218f9e8657e3f50bd517f1a4a6ffbb1c
Merge: e13facfa72 b719eed725
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:48:55 2025 +0100

    Merge pull request #100715 from buresu/fix-wayland-ime-input

    Fix last character deletion in Wayland IME input

commit e13facfa72a85fd85cdbaf65f6dc6a844e29eb67
Merge: 7dd14207dc cf8376ba1f
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:48:51 2025 +0100

    Merge pull request #100679 from hakro/quick_open_context_menu

    Add a context menu to quick open dialog

commit 7dd14207dcfd47776037deeee25455061afbdd8a
Merge: 261f0b9ca9 d798068a08
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:48:47 2025 +0100

    Merge pull request #100631 from Faless/fix/wslay_frame_end_not_fin

    [WS] Fix wslay multi-frame message parsing

commit 261f0b9ca9a40097143d436d313040f7db9ad6e2
Merge: 3936d117e4 7321c187f2
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:48:43 2025 +0100

    Merge pull request #100409 from KoBeWi/now_delete_uids

    Fix DependencyRemoveDialog not handling UIDs

commit 3936d117e4ccbd39c9d4c7e106fa0921adae4483
Merge: 703552c51b 830f25010f
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:48:38 2025 +0100

    Merge pull request #100388 from Namey5/gles3-canvas-clear-fix

    Fix canvas background mode not clearing correctly in Compatibility renderer

commit 703552c51b503917b83ca32af56f4b72433a362c
Merge: 4f5982c83b e89c196a80
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:48:34 2025 +0100

    Merge pull request #100240 from WhalesState/line-edit-focus

    `LineEdit` add member `keep_editing_on_text_submit`

commit 4f5982c83b5810747b236f49cd405646c6c248b5
Merge: 3a20c3e6a9 c96d9a8f79
Author: Rémi Verschelde <rverschelde@gmail.com>
Date:   Fri Jan 3 00:48:30 2025 +0100

    Merge pull request #100171 from Giganzo/editor-focus

    Fix missing focus outline for 2D and 3D editor viewports

commit 3a20c3e6a967c8cbafcbf738bb0bcf843eac27ee
Merge: d484e23bce e330b79397
Author: Rémi V…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants