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>
(cherry picked from commit 873eb21ce8)
When profiling Dome Keeper, I found that in physics_process a HashMap
gets cleared a lot, which ends up calling the Variant destructor.
Calling Variant::clear() dominates this operation.
By not uselessly setting the Type to NIL on destruction we save about
50% of time. This is likely because if there is a simple type in the
Variant that doesn't need destructing, but now we write when we should
just drop the Variant altogether.
Since the value of Variant::type should be unobservable after
destruction this doesn't change any outward behavior.
(cherry picked from commit 46c23e1758)
It seems that we are only enabling this option together with unsafe
build determinators. However it seems that MD5-timestamp by itself is
not unsafe.
MD5-Timestamp works by first checking the timestamp of a file, comparing
it to the scons database and if it does not match it will do an md5sum
to determine if the file needs rebuilding.
Without this option SCons will always create md5sums of every file. In
the case of a null build this is 50% of the time.
(cherry picked from commit 04fff3fe0d)
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.
(cherry picked from commit 7fe0609118)
This is useful information to know, as the X11 display driver can be
used both on X11 natively and on Wayland through XWayland.
Certain editor issues only occur in multi-window mode
(or only in single-window mode). Some issues also only occur
on multi-monitor setups, so the monitor count is now listed.
(cherry picked from commit 107675f785)
This applies both to tangents and general line drawing, making the
animation Bezier editor match the Curve editor inspector.
(cherry picked from commit ef35ca2d8f)
In future work we may want to expose an isStylus or similar for
XR Trackers, though that is likely outside the scope of this commit
which is the core extension work.
Vendor Ref: https://logitech.github.io/mxink/OpenXR.html
(cherry picked from commit 19c7afee07)
This partially reverts commit 8a42e3d3ef.
Comment improvements and the test case were kept, with one part commented out.
(cherry picked from commit 2153a60425)
Adds get_bounds() function to NavigationMeshSourceGeometryData2D/3D to get a bounding box that covers all the geometry.
(cherry picked from commit 2e1f6b50fb)
- The main thread function and the collaborative wait functions have a much more similar structure than earlier, which yields (pun intended) better maintainability.
- Also, there are not assertions anymore about the reason for ending a wait being valid, because spurious awakes can happen and so the assert would fail without that indicating an issue.
(cherry picked from commit 2640960706)