This PR makes RID_Owner lock free for fetching values, this should give a very
significant peformance boost where used.
Some considerations:
* A maximum number of elements to alocate must be given (by default 256k).
* Access to the RID structure is still safe given they are independent from addition/removals.
* RID access was never really thread-safe in the sense that the contents of the data are not protected anyway. Each server needs to implement locking as it sees fit.
* Added shared responsibilities for documentation and tests
* Made buildsystem manage all build scripts (uniquely)
* Cleaned up unused cases
* Added unmanaged cases
XR is disabled when 3D is disbled so there is no sense in
setting xr specific settings and adding `--xr-mode` option
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
This improves shadow quality by reducing the visibility of the noisy
pattern caused by dithering.
This jittering also applies when FSR2 is enabled, as it provides its own
form of temporal antialiasing.
Co-authored-by: Clay John <claynjohn@gmail.com>
Fixes#85032
The code that fix the issue is courtesy of @Jesusemora, I just added
unit tests for it and did a rebase with the latest changes on master.
Co-authored-by: Jesusemora <32273722+Jesusemora@users.noreply.github.com>
If the module is enabled (default), 2D physics works as it did before.
If the module is disabled and no other 2D physics server is registered
(via a module or GDExtension), then we fall back to a dummy
implementation which effectively disables 2D physics functionality (and
a warning is printed).
The dummy 2D physics server can also be selected explicitly, in which
case no warning is printed.
VisualShaderNodeVectorCompose::set_op_type would zero out input port default values for z and w when using vector 3D/4D, updated to keep values for all ports.
Zeroing out z and w would cause values for 4D vectors to be lost when loading the visual shader - 3D vectors were not affected by this, since 3D is the default op type, which caused this step to be skipped during loading. However, both 3D and 4D were affected when changing the op type from the drop down in editor. For example, changing from 3D (1, 2, 3) to 4D would result in (1, 2, 0, 0), and changing from 4D (1, 2, 3, 4) to 3D would result in (1, 2, 0), losing previously set values.