Commit graph

67101 commits

Author SHA1 Message Date
bruvzg
fba7ad8c7b
Remove spaces and punctuation from the beginning of translatable strings. 2024-08-22 20:51:13 +03:00
Vinni Richburgh
3e86f7b50e In Node.xml mentioned that Node::duplicate also copies children.
The list now uses the Oxford comma.
2024-08-22 18:57:05 +02:00
passivestar
155033384c Fix animation timeline resize widget allowing impossible internal values 2024-08-22 16:32:38 +04:00
Stuart Carnie
bbc7962fe2
Metal: fix artefacts for mobile render method and return false for multi-view support 2024-08-22 21:34:53 +10:00
Raul Santos
4dd6e8eca5
GDExtension: Implement GDExtensionLoader concept
- Implements the concept of GDExtension loaders that can be used to customize how GDExtensions are loaded and initialized.
- Moves the parsing of `.gdextension` config files to the new `GDExtensionLibraryLoader`.
- `GDExtensionManager` is now meant to be the main way to load/unload extensions and can optionally take a `GDExtensionLoader`.
- `EditorFileSystem` avoids unloading extensions if the file still exists, this should prevent unloading extensions that are outside the user project.
2024-08-22 05:29:11 +02:00
Bastiaan Olij
1925d1e6f9 OpenXR: Check correct status bit for hand tracking 2024-08-22 11:57:56 +10:00
Goutte
a014705d64 docs: update UPnP gdscript snippet to latest gdscript
This commit adds usage of the new (stringless) signal API.
2024-08-22 00:49:52 +02:00
Rémi Verschelde
568589c9d8
Merge pull request #90993 from darksylinc/matias-TheForge
Add debug utilities for Vulkan
2024-08-22 00:38:22 +02:00
Rémi Verschelde
37ae2a2900
Merge pull request #95921 from akien-mga/scons-validate-opt-in-drivers
SCons: Better validation for platform-specific opt-in drivers
2024-08-22 00:10:56 +02:00
Rémi Verschelde
0badddaccb
Merge pull request #95917 from BlueCube3310/lightmap-align-fix
LightmapGI: Fix shader data alignment after #89919
2024-08-22 00:10:53 +02:00
Rémi Verschelde
720615a913
Merge pull request #95898 from KoBeWi/capital_of_nonexistent_properties
Remove references to deleted `capitalize_properties` setting
2024-08-22 00:10:50 +02:00
Rémi Verschelde
2a98d8d78a
Merge pull request #95883 from jsjtxietian/curve2d-doc
Fix Curve2D incorrect sample range description
2024-08-22 00:10:46 +02:00
Rémi Verschelde
9396e058f5
Merge pull request #95874 from tetrapod00/remember-view-grid
Remember "View Grid" (per-viewport) setting between editor sessions
2024-08-22 00:10:43 +02:00
Rémi Verschelde
39b77ea04e
Merge pull request #95790 from aaronfranke/rect-aabb-support
Simplify Rect2/AABB `get_support` function
2024-08-22 00:10:39 +02:00
Rémi Verschelde
100fbb51ab
Merge pull request #95665 from Hilderin/fix-drag-drop-between-window
Fix drag&drop between window on Windows
2024-08-22 00:10:35 +02:00
Rémi Verschelde
78f47abe2b
Merge pull request #94022 from Riteo/a-fraction-of-the-work
Wayland: Switch pointer position handling to doubles
2024-08-22 00:10:31 +02:00
Rémi Verschelde
091212b4f1
Merge pull request #93602 from aaronp64/inspector_latency
Improve Editor Inspector/Theme item lookup performance
2024-08-22 00:10:26 +02:00
Rémi Verschelde
3b81db3bf0
Merge pull request #93577 from passivestar/themable-animation-editor
Allow theming animation editor
2024-08-22 00:10:22 +02:00
Rémi Verschelde
d4b6bd5b60
Merge pull request #91172 from clayjohn/detect-rd
Disable creating RD projects in project manager if RD is not supported
2024-08-22 00:10:15 +02:00
Matias N. Goldberg
364f916f3f
Add debug utilities for Vulkan
Features:
- Debug-only tracking of objects by type. See
get_driver_allocs_by_object_type et al.
 - Debug-only Breadcrumb info for debugging GPU crashes and device lost
 - Performance report per frame from get_perf_report
- Some VMA calls had to be modified in order to insert the necessary
memory callbacks

Functionality marked as "debug-only" is only available in debug or dev
builds.

Misc fixes:
 - Early break optimization in RenderingDevice::uniform_set_create

============================

The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.
2024-08-21 23:48:08 +02:00
Rémi Verschelde
6e9bcc0f18
SCons: Better validation for platform-specific opt-in drivers
This replaces cryptic compilation errors with a clear error message
and early build termination.
2024-08-21 22:53:34 +02:00
BlueCube3310
4aa145624e LightmapGI: Fix shader data alignment after #89919 2024-08-21 21:37:13 +02:00
clayjohn
f4ccba7508 Use correct lightmap coefficients to ensure that the directional lightmap mode looks correct
Also remove the metallic option from directional lightmap as it is guaranteed to return negative numbers in many cases
2024-08-21 10:24:32 -07:00
kobewi
b314a9105a Remove references to deleted capitalize_properties setting 2024-08-21 17:27:54 +02:00
kit
307e40e873 Clean up Viewport forced_mouse_focus 2024-08-21 09:37:44 -04:00
passivestar
6120786ddc Allow theming animation editor 2024-08-21 15:29:27 +04:00
Pedro J. Estébanez
f4d76853b9 WorkerThreadPool (plus friends): Overhaul unlock allowance zones
This fixes a rare but possible deadlock, maybe due to undefined behavior. The new implementation is safer, at the cost of some added boilerplate.
2024-08-21 12:22:52 +02:00
Pedro J. Estébanez
df23858488 ResourceLoader: Fix edge cases in the management of user tokens
1. Make handling of user tokens atomic:
   Loads started with the external-facing API used to perform a two-step setup of the user token. Between both, the mutex was unlocked without its reference count having been increased. A non-user-initiated load could therefore destroy the load task when it unreferenced the token.
   Those stages now happen atomically so in the one hand, the described race condition can't happen so the load task life insurance doesn't have a gap anymore and, on the other hand, the ugliness that the call to load could return `ERR_BUSY` if happening while other thread was between both steps is gone.
   The code has been refactored so the user token concerns are still outside the inner load start function, which is agnostic to that for a cleaner implementation.
2. Clear ambiguity between load operations running on `WorkerThreadPool`:
   The two cases are: single-loaded thread directly started by a user pool task and a load started by the system as part of a multi-threaded load.
   Since ensuring all the code dealing with this distinction would make it very complex, and error-prone, a different measure is applied instead: just take one of the cases out of the dicotomy. We now ensure every load happening on a pool thread has been initiated by the system.
   The way of achieving that is that a single-threaded user-started load initiated from a pool thread, is run as another task.
2024-08-21 12:22:52 +02:00
Pedro J. Estébanez
5c970db2e4 ResourceLoader: Optimize remap check by deferring until a non-mutex zone 2024-08-21 12:19:43 +02:00
Pedro J. Estébanez
28619e26cf ResourceLoader: Enhance deadlock prevention
Benefits:
- Simpler code. The main load function is renamed so it's apparent that it's not just a thread entry point anymore.
- Cache and thread modes of the original task are honored. A beautiful consequence of this is that, unlike formerly, re-issued loads can use the resource cache, which makes this mechanism much more performant.
- The newly added getter for caller task id in WorkerThreadPool allows to remove the custom tracking of that in ResourceLoader.
- The check to replace a cached resource and the replacement itself happen atomically. That fixes deadlock prevention leading to multiple resource instances of the same one on disk. As a side effect, it also makes the regular check for replace load mode more robust.
2024-08-21 12:19:43 +02:00
Pedro J. Estébanez
bd0959ebdd ResourceLoader: Properly push & pop TLS state on recursive load tasks 2024-08-21 12:19:43 +02:00
Rémi Verschelde
5ca419e32c
Merge pull request #94801 from gamelessone/fix-cond-var
Fix use-after-free of `ConditionVariable` in `ResourceLoader`
2024-08-21 11:14:22 +02:00
kobewi
d917d88b5b Disable text trimming in SceneTreeEditor 2024-08-21 11:08:33 +02:00
jsjtxietian
5183588499 Fix curve2d incorrect sample range description 2024-08-21 16:00:25 +08:00
Rémi Verschelde
3b3d6226c5
Merge pull request #95828 from clayjohn/Lightmapper-AA-direct-light
Antialias direct light samples in LightmapperRD
2024-08-21 07:23:05 +02:00
Riteo
33e414cf75 Wayland: report when video drivers can't be loaded or found
This brings it to parity with the X11 backend.
2024-08-21 07:15:08 +02:00
Rémi Verschelde
4b8946102b
Merge pull request #91535 from BlueCube3310/betsy-bc6h
Add Betsy to speed up BC6 compression
2024-08-21 06:38:03 +02:00
Riteo
c01f9361b1 X11: Alert only when video drivers fail initialization
Before, they would always complain even if there was no attempt at
initializing them (e.g. because there's no X11 display).

While we're at it, this patch also adds a specific message for OpenGL ES
and rewords "OpenGLES" to "OpenGL ES" in an error, for consistency
(AFAIK we either say "GLES" or "OpenGL ES").
2024-08-21 06:31:19 +02:00
Riteo
56eb272e90 Warn when falling back to another DisplayServer
Before it was a bit unclear on what was happening, since a display
server has to fail to fall back and so the user would be left with an
error _and_ a (hopefully) running game.

Should make the experience more pleasant on Linux/BSD now that we have
two display servers.
2024-08-21 06:31:19 +02:00
Clay John
62de80d613
Merge pull request #88199 from stuartcarnie/metal-rdd
Add Metal support for macOS (arm64) and iOS
2024-08-20 21:21:32 -07:00
Hilderin
1b0c5cbc01 Fix FileSystem dock won't show any file folders (v2) 2024-08-20 21:23:13 -04:00
tetrapod00
080acd7246 Remember "View Grid" (per-viewport) setting between editor sessions 2024-08-20 15:59:07 -07:00
Yuri Rubinsky
eef236db63 Fix visual shader inputs to follow the alphabet order 2024-08-20 20:51:47 +03:00
aaronp64
7593e55527 Improve Editor Inspector/Theme item lookup performance
Changes to reduce the latency between changing node selection in the editor and seeing the new node reflected in the Inspector tab

- Use Vector instead of List for ThemeOwner::get_theme_type_dependencies and related functions
- Use Vector instead of List for ThemeContext::themes, set_themes(), and get_themes()
- Add ClassDB:get_inheritance_chain_nocheck to get all parent/ancestor classes at once, to avoid repeated ClassDB locking overhead
- Update BIND_THEME_ITEM macros and ThemeDB::update_class_instance_items to use provided StringNames for call to ThemeItemSetter, instead of creating a new StringName in each call

These changes reduce the time taken by EditorInspector::update_tree by around 30-35%
2024-08-20 13:39:40 -04:00
Adam Scott
aaafd163b2
Honor pitch_scale value before playing audio sample 2024-08-20 10:29:32 -04:00
kobewi
5279fec60f Always store ID of PopupMenu items 2024-08-20 15:33:21 +02:00
Daylily-Zeleen
3d575801ce Allow ClassDB to create a Object without postinitialization for GDExtension. 2024-08-20 20:19:02 +08:00
Stuart Carnie
2d0165574d
Add Metal support for macOS (arm64) and iOS 2024-08-20 12:11:06 +02:00
Rémi Verschelde
826de7976a
Merge pull request #95854 from akien-mga/xcode-warnings
macOS/iOS: Fix various warnings when targeting newer SDKs
2024-08-20 12:08:55 +02:00
Rémi Verschelde
49e4ad1460
Merge pull request #95691 from Hilderin/fix-display-dialog-while-saving-scene
Fix display dialog while saving scene
2024-08-20 12:08:49 +02:00