Commit Graph

11029 Commits

Author SHA1 Message Date
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
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
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
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
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
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
Stuart Carnie 41875d8aef
macOS/iOS: Fix various warnings when targeting newer SDKs 2024-08-20 11:55:21 +02:00
Rémi Verschelde d9e458515b
Merge pull request #91750 from BastiaanOlij/openxr_visibility_mask
OpenXR: Add support for visibility mask
2024-08-20 11:03:54 +02:00
Rémi Verschelde 73d42411f0
Merge pull request #95808 from paulloz/bugfix/dotnet-globalclass-icon-relative-paths
Fix relative paths for global class icons in C#
2024-08-20 10:02:47 +02:00
Rémi Verschelde f45421204c
Merge pull request #95764 from passivestar/gdscript-syntax-highlighter
Expose GDScript syntax highlighter to editor plugins
2024-08-20 10:02:35 +02:00
Rémi Verschelde c359a8e9ca
Merge pull request #95757 from BlueCube3310/cvtt-float
CVTT: Include float formats for hdr compression
2024-08-20 10:02:23 +02:00
Rémi Verschelde 65c6897e55
Merge pull request #95269 from raulsntos/dotnet/determinant
C#: Expose `Transform2D.Determinant()`
2024-08-20 10:02:07 +02:00
Rémi Verschelde a700b2a4a2
Merge pull request #95153 from BastiaanOlij/improve_hand_tracking_settings
Change hand tracking project settings and finetune `show_when_tracked`
2024-08-20 10:02:01 +02:00
Rémi Verschelde 58505b0bce
Merge pull request #94082 from HolonProduction/completion-force
Autocompletion: Rework argument options string literal completion
2024-08-20 10:01:52 +02:00
Aaron Franke 7db24a9ad5
Simplify and fix Rect2/AABB get_support function 2024-08-19 23:55:31 -07:00
Bastiaan Olij a8c5117777 Change hand tracking project settings and finetune show_when_tracked 2024-08-20 11:12:52 +10:00
clayjohn 1521e49c23 Antialias direct light samples in LightmapperRD
Additionally use Vogel disk to enhance soft shadow quality.
2024-08-19 17:54:55 -07:00
Bastiaan Olij d9ab2c3195 OpenXR: Add support for visibility mask 2024-08-20 10:47:17 +10:00
Paul Joannon 3c0eaec39f
Fix relative paths for global class icons in C# 2024-08-19 18:09:58 +02:00
Rémi Verschelde ce1ba7328f
Merge pull request #94934 from Hilderin/fix-no-validation-blender-path-on-import
Fix no validation on Blender path on import
2024-08-19 16:05:26 +02:00
Rémi Verschelde 0274508647
Merge pull request #93498 from smix8/connection_relocation
Move NavRegion connections to NavMap
2024-08-19 16:05:05 +02:00
Rémi Verschelde b39df869c7
Merge pull request #93252 from smix8/csg_bake
Add CSG options to bake to static mesh and collision shape
2024-08-19 16:04:59 +02:00
Rémi Verschelde da57bab169
Merge pull request #92560 from smix8/navmesh2d_bake_partition
Add triangulation partition option to 2D navigation mesh baking
2024-08-19 16:04:49 +02:00
passivestar 3fe644de86 Expose GDScript syntax highlighter to editor plugins 2024-08-19 16:36:55 +04:00
Rémi Verschelde 745cc6e438
Merge pull request #95780 from Mickeon/documentation-gdscript-some-invalid-code
Fix some invalid code in GDScript class reference
2024-08-19 14:34:30 +02:00
Rémi Verschelde 3e1b61d808
Merge pull request #95121 from aaronfranke/gltf-root-prop-owner
GLTF: Propagate owner for root node children
2024-08-19 14:34:04 +02:00
Rémi Verschelde 3647bc33cd
Merge pull request #93172 from raulsntos/dotnet/clear-instance-bindings
C#: Clear instance bindings callbacks on finalizing the language
2024-08-19 14:33:36 +02:00
Rémi Verschelde 3a4e0f1741
Merge pull request #87735 from ywmaa/blend_file_geometrynodes_instances
Add Option for Export Geometry Nodes Instances in blend importer
2024-08-19 14:33:21 +02:00
Rémi Verschelde 40f938c44d
Merge pull request #86538 from jsjtxietian/fix-shape-thread-error
Fix CSGShape3D's `_mesh_changed` to be thread safe
2024-08-19 14:33:16 +02:00
ywmaa c460f1de24
Add Option for Export Geometry Nodes Instances in blend importer 2024-08-19 12:23:21 +02:00
Rémi Verschelde 1ac1d03857
Merge pull request #95676 from raulsntos/dotnet/clear-owner-order
C#: Destroy script before clearing owner
2024-08-19 12:09:15 +02:00
Rémi Verschelde 6c76be2389
Merge pull request #95658 from akien-mga/openxr-fix-system-package
OpenXR: Fix support for building against distro package
2024-08-19 12:09:06 +02:00
Rémi Verschelde 63f4186f97
Merge pull request #95253 from Kimau/claire/logitech
OpenXR - Add Logitech Mx Ink Stylus Support
2024-08-19 12:09:01 +02:00
Micky 4ce5856384 Remove empty `[b]Example:[/b]` lines from the class reference 2024-08-19 01:00:52 +02:00
Micky e80c44dbe7 Fix some invalid code in GDScript class reference 2024-08-19 00:55:51 +02:00
BlueCube3310 4b266871d7 CVTT: Include float formats for hdr compression 2024-08-18 17:31:05 +02:00
BlueCube3310 394ea653aa Add Betsy to speed up BC6 compression 2024-08-18 11:14:05 +02:00
Raul Santos c2efbf3012
C#: Use Godot's LipO implementation instead of Xcode's lipo command 2024-08-17 17:52:35 +02:00
Raul Santos 5e7fda8de7
C#: Destroy script before clearing owner
The C# script destructor needs to access the owner (i.e.: to disconnect signals) so we now clear it after the script has been destroyed.
2024-08-17 04:04:57 +02:00
Rémi Verschelde 5cb01a0e09
Merge pull request #95227 from BastiaanOlij/openxr_1_1_38
Update OpenXR thirdparty library to 1.1.38
2024-08-17 00:46:27 +02:00
Rémi Verschelde 4bd33df11e
Merge pull request #94766 from Z0rb14n/fix-vector3-slerp
C#: Fix Vector3 `Slerp` normalization error
2024-08-16 23:45:34 +02:00
Rémi Verschelde 0d0eb71694
Merge pull request #94599 from juanjp600/node-array-export-diagnostic
C#: Fix GD0107 not applying to arrays and dictionaries containing nodes
2024-08-16 23:45:26 +02:00
Rémi Verschelde dbf4be308c
Merge pull request #93583 from smix8/obstacle_monitor
Add navigation obstacles to performance monitor stats
2024-08-16 23:45:10 +02:00
Rémi Verschelde 2206f5c6a4
OpenXR: Fix support for building against distro package 2024-08-16 22:51:09 +02:00
BlueCube3310 e0f30d30e2 Improve layered texture preview 2024-08-16 18:20:55 +02:00
BlueCube3310 2eb1f069d2 Add support for loading less common DDS formats 2024-08-16 15:35:20 +02:00
Rémi Verschelde ec74e14943
Merge pull request #95603 from tetrapod00/gltf-capitalization-errors
Fix glTF capitalization in error messages
2024-08-16 14:36:33 +02:00
Rémi Verschelde 4d3157c0f2
Merge pull request #95578 from tetrapod00/gltf-capitalization-classref
Fix glTF capitalization in class reference
2024-08-16 14:36:26 +02:00
Rémi Verschelde f01e052162
Merge pull request #95549 from timothyqiu/split-translation-server
Split `TranslationServer` into its own file
2024-08-16 14:36:16 +02:00
Rémi Verschelde 0f9925c0f9
Merge pull request #95542 from KoBeWi/go_bind_yourself
Remove empty `bind_methods()`
2024-08-16 14:35:51 +02:00
Rémi Verschelde c98d549e65
Merge pull request #95431 from Joy-less/Fix-#10418
C#: Add `NotNullWhenAttribute` to `IsInstanceValid`
2024-08-16 14:34:30 +02:00
Rémi Verschelde 1685ce3256
Merge pull request #95426 from Jordyfel/spawner-doc
Fix typo or unclear language in MultiplayerSpawner doc
2024-08-16 14:34:22 +02:00
Rémi Verschelde 751d285f3f
Merge pull request #95417 from bruvzg/win_dll_exports
Remove unnecessary DLL export attributes.
2024-08-16 14:34:08 +02:00
Rémi Verschelde cc894e59ea
Merge pull request #95408 from alesliehughes/gdscitp_debug_statement
GDScript: Only include profiling variables when DEBUG is enabled
2024-08-16 14:34:01 +02:00
Rémi Verschelde 9393388940
Merge pull request #95322 from Nodragem/fix-pasting-in-gridmap
Fix copy-paste and cut-paste in GridMap
2024-08-16 14:33:31 +02:00
Rémi Verschelde 0bf8bee544
Merge pull request #94693 from jonatanrojderd/master
[C#] Change the `VisualShaderNodeCustom` template to use the correct override types and signatures
2024-08-16 14:32:20 +02:00
Rémi Verschelde 7865266f24
Merge pull request #94609 from bruvzg/pixel_font_detect
[Font Import] Detect pixel fonts and disable subpixel positioning.
2024-08-16 14:32:14 +02:00
Rémi Verschelde 86df981cdc
Merge pull request #89567 from BlueCube3310/etcpak-cleanup
etcpak: Improve image padding and clean up the code
2024-08-16 14:31:53 +02:00
Rémi Verschelde ae9fb96a36
Merge pull request #95433 from dsnopek/openxr-composition-layers-srgb
OpenGL: Unconditionally do `glDisable(GL_FRAMEBUFFER_SRGB)` because we do our own sRGB conversion
2024-08-16 10:35:56 +02:00
Rémi Verschelde 886d5865a4
Merge pull request #95291 from BlueCube3310/hdr-optimizations
Optimize .hdr loading and RGB9E5 conversion
2024-08-16 10:35:32 +02:00
Jonatan Röjder Delnavaz 74389e8395 * Changed the VisualShaderNodeCustom template to use the correct overrides and added the GlobalClass attribute 2024-08-16 07:26:53 +02:00
tetrapod00 3b1345c26e Change capitalization of glTF in errors and comments. 2024-08-15 18:07:30 -07:00
tetrapod00 012ce1eaff Fix glTF capitalization in class reference 2024-08-15 10:41:47 -07:00
Rémi Verschelde c2a4942850
Bump version to 4.4-dev
Mr. Godot still didn't show up...
2024-08-15 11:39:34 +02:00
Haoyu Qiu 7343dc3a5d Split TranslationServer into its own file 2024-08-15 15:00:47 +08:00
kobewi 065dd099dd Remove empty bind_methods() 2024-08-15 08:24:32 +02:00
David Snopek dfcff4ef46 OpenGL: Unconditionally do `glDisable(GL_FRAMEBUFFER_SRGB)` because we do our own sRGB conversion 2024-08-12 12:40:38 -05:00
Joyless 3d43e73181 Add NotNullWhenAttribute to IsInstanceValid 2024-08-12 16:44:09 +01:00
Jordyfel 8c626f23c1 Fix typo in MultiplayerSpawner doc 2024-08-12 14:57:02 +03:00
bruvzg 3156856aa1 Remove unnecessary DLL export attributes. 2024-08-12 09:53:05 +03:00
Alistair Leslie-Hughes f489c313cc gdscript: Only include profiling variables when DEBUG is enabled 2024-08-12 10:14:42 +10:00
Hilderin d199f1f0d5 Fix resolve class inheritance after file rename 2024-08-10 19:21:24 -04:00
BlueCube3310 80cf6cbfe9 Optimize .hdr loading and RGB9E5 conversion 2024-08-09 22:39:30 +02:00
Nodragem e7e633760a prevent the click to get processed further after a paste action 2024-08-09 10:39:25 +01:00
Claire Blackshaw 19c7afee07 OpenXR - Support for the Logitech MxInk Stylus
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
2024-08-08 11:09:29 +01:00
Rémi Verschelde 03afb92efa
Merge pull request #95194 from Faless/mp/fix_relay_negative_target
[MP] Fix relay protocol routing with negative targets
2024-08-08 10:16:31 +02:00
Raul Santos 262671c644
C#: Expose `Transform2D.Determinant()` 2024-08-08 06:31:46 +02:00
Rémi Verschelde da9f943330
Merge pull request #95134 from Calinou/audio-interactive-transition-editor-expand-columns
Expand columns in the audio interactive transition editor
2024-08-07 23:47:00 +02:00
Fabio Alessandrelli 7f610a2c6e [WS] Fix set_no_delay on Windows
Windows socket implementation is, as usual, broken in many ways.

This includes `setsockopt` failing to set `TCP_NODELAY` if the socket is
still in a connecting state.

This also means we need to keep polling the IP resolver until the socket
reaches the CONNECTED state (so it can set the TCP_NODELAY after the
connection is successful).
2024-08-07 09:47:00 +02:00
Bastiaan Olij 1371b35b6e Update OpenXR thirdparty library to 1.1.38, changed OpenXR init to stay on 1.0.x 2024-08-07 13:58:05 +10:00
Dommi aebcd699fe Fixed undo not updating spawn checkbox in replication editor
When pressing undo the value was set to the same as it was before in the ui. It was saved correctly in the config but not updated in the editor.
2024-08-06 15:50:48 +02:00
Fabio Alessandrelli c5fa7354bb [MP] Fix relay protocol routing with negative targets
Godot supports sending messages to "all but one peer" by sending a
packet with a negative target (the negated ID of the excluded peer).

The relay protocol was incorrectly interpreting the values and relaying
the message to the wrong peers.

This issue only affected "send_bytes" since the other subsystem (RPC
and replication) "resolves" the correct IDs client-side (to match
visibility information).
2024-08-06 13:21:47 +02:00
Rémi Verschelde 4359c28fea
Merge pull request #95192 from Faless/mp/quite_relay_to_disconnected
[MP] Avoid error spam in relay protocol when clients disconnect
2024-08-06 12:32:27 +02:00
Rémi Verschelde 79ae9524ef
Merge pull request #95115 from rune-scape/fix-invalidated-parser
GDScript: Fix unnecessary calls to `remove_parser`
2024-08-06 12:31:53 +02:00
Fabio Alessandrelli 531c72f30d [MP] Avoid error spam in relay protocol when clients disconnect
When multiple clients are connected, and the server is using the relay
sub-protocol, it might happen that a client disconnects while a packet
sent to it from another peer is still in transit.

In that case, when the packet reaches the server for relaying, it used
to generate an error (as the destination client did no longer exists).

This commit changes check to suppress the error message while still
skipping the packet.
2024-08-06 09:51:28 +02:00
smix8 110b2dc61a Add triangulation partition option to 2D navigation mesh baking
Adds triangulation partition option to 2D navigation mesh baking as an alternative to the existing convex partition option.
2024-08-05 00:08:46 +02:00
Hugo Locurcio ab6b00d102
Expand columns in the audio interactive transition editor
This prevents columns from being unusably narrow,
especially on hiDPI displays.
2024-08-04 17:24:31 +02:00
Aaron Franke 246cc7e86d
GLTF: Propagate owner for root node children 2024-08-04 02:28:01 -07:00
rune-scape e680369d5b GDScript: Fix too many calls to 'remove_parser'
+fix excessive memory allocations when 'load'ing many dependant scripts
+fix excessive calls to vformat
2024-08-03 20:52:44 -07:00
Haoyu Qiu 7cf9ed5f65 Fix several typos in the documentation 2024-08-02 08:42:20 +08:00
Rémi Verschelde 3978628c6c
Merge pull request #94994 from dsnopek/mobilevr-interface-docs-use-xr
Fix type-o in `MobileVRInterface` sample code in docs: `xr` -> `use_xr`
2024-08-01 00:06:47 +02:00
Rémi Verschelde 2add44c0dc
Merge pull request #94168 from Faless/net/wsl_peer_reuse
[WebSocket] Allow reusing closing and closed peers
2024-08-01 00:06:26 +02:00
David Snopek 24b7d973fa Fix type-o in `MobileVRInterface` sample code in docs: `xr` -> `use_xr` 2024-07-31 16:36:44 -05:00
Rémi Verschelde 019cf2b40c
Merge pull request #94984 from Faless/mp/fix_safer_cache_cleanup
[MP] Partially revert cache cleanup, track paths as fallback
2024-07-31 22:33:07 +02:00
Rémi Verschelde 8460a72f94
Merge pull request #94871 from rune-scape/fix-mismatched-parsers2
GDScript: Fix common mismatched external parser errors (second try)
2024-07-31 22:33:03 +02:00
Rémi Verschelde 9559330187
Merge pull request #91011 from Faless/mp/fix_disconnect_on_change
[MP] Fix `disconnect_peer` not doing the proper cleanup
2024-07-31 22:32:55 +02:00
rune-scape 6e8fa6dd50 GDScript: Fix common mismatched external parser errors 2024-07-31 12:54:16 -07:00
Fabio Alessandrelli 90d5d26026 [MP] Partially revert cache cleanup, track paths as fallback
Cleaning up remote NodePath cache is not trivial since the visibility
API allows for certain nodes to be despawned (and re-spawned) on some
peers while being retained in the authority.

This means that from the server point of view, the node has not changed,
and the path simplification protocol won't be run again after
respawning.

While we can track this information for synchronizers via the
replication API, we can't easily track this information for potential
child nodes that use RPCs (I'm convinced it is doable, but we need to
track the whole dependency tree which would require some more complex
refactoring).

This commit partially reverts some of the cache cleanup logic to always
retain remote IDs, and adds a NodePath lookup fallback when the ObjectID
is invalid.
2024-07-31 19:32:32 +02:00