Commit Graph

1036 Commits

Author SHA1 Message Date
Matias N. Goldberg 59d0422dcd Disable extra memory tracking by default
PR #90993 added several debugging utilities.

Among them, advanced memory tracking through the use of custom
allocators and VK_EXT_device_memory_report.

However as issue #95967 reveals, it is dangerous to leave it on by
default because drivers (or even the Vulkan loader) can too easily
accidentally break custom allocators by allocating memory through std
malloc but then request us to deallocate it (or viceversa).

This PR fixes the following problems:
 - Adds --extra-gpu-memory-tracking cmd line argument
 - Adds missing enum entries to
RenderingContextDriverVulkan::VkTrackedObjectType
 - Adds RenderingDevice::get_driver_and_device_memory_report
    - GDScript users can easily check via print(
RenderingServer.get_rendering_device().get_driver_and_device_memory_report()
)
- Uses get_driver_and_device_memory_report on device lost for appending
further info.

Fixes #95967
2024-08-24 20:52:39 -03:00
Stuart Carnie 2d0165574d
Add Metal support for macOS (arm64) and iOS 2024-08-20 12:11:06 +02:00
Bastiaan Olij a8c5117777 Change hand tracking project settings and finetune show_when_tracked 2024-08-20 11:12:52 +10:00
Rémi Verschelde 1bd740d18d
Merge pull request #95656 from anvilfolk/gdscript-docs-quit
Fix Godot not quitting with `--doctool --gdscript-docs`.
2024-08-17 00:47:17 +02:00
ocean 13b20820ba Fix Godot not quitting with `--doctool --gdscript-docs`. 2024-08-16 18:18:45 -04:00
Rémi Verschelde 82adfebcf8
Merge pull request #94799 from m4gr3d/memory_allocation_cleanup_and_optimizations
Android memory cleanup and optimizations
2024-08-16 23:45:39 +02:00
Fredia Huya-Kouadio a57a99f5bc Memory cleanup and optimizations
- Returns an empty list when there's not registered plugins, thus preventing the creation of spurious iterator objects

- Inline `Godot#getRotatedValues(...)` given it only had a single caller. This allows to remove the allocation of a float array on each call and replace it with float variables

- Disable sensor events by default. Sensor events can fired at 10-100s Hz taking cpu and memory resources. Now the use of sensor data is behind a project setting allowing projects that have use of it to enable it, while other projects don't pay the cost for a feature they don't use

- Create a pool of specialized input `Runnable` objects to prevent spurious, unbounded `Runnable` allocations

- Disable showing the boot logo for Android XR projects

- Delete locale references of jni strings
2024-08-16 09:27:41 -07: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 a88b828eb0
Merge pull request #95513 from bruvzg/ds_init_cleanup
Run cleanup code on DisplayServer init failure to prevent crash on exit.
2024-08-16 14:35:26 +02:00
Rémi Verschelde 1d4303c1fe
Merge pull request #95502 from bruvzg/net_ext_detect
[.NET] Move search in files extension list definition to be after Scene level module init.
2024-08-16 14:35:12 +02:00
Rémi Verschelde 28c92bd8ca
Merge pull request #95520 from bruvzg/angle_gen7and8
[Windows] Add Intel Gen7.5/Gen8/Gen9 GPUs to Angle blocklist.
2024-08-16 10:36:39 +02:00
Rémi Verschelde 46c6865979
Merge pull request #92391 from rburing/fti_3d
Physics interpolation (3D)
2024-08-16 10:33:37 +02:00
bruvzg d222921f06
[Windows] Add Intel Gen7.5/Gen8/Gen9 GPUs to Angle blocklist. 2024-08-15 23:13:49 +03:00
Haoyu Qiu 7343dc3a5d Split TranslationServer into its own file 2024-08-15 15:00:47 +08:00
bruvzg f15ad72355
Run cleanup code on DisplayServer init failure to prevent crash on exit. 2024-08-14 11:36:29 +03:00
bruvzg 69d52ed081
[.NET] Move search in files extension list definition to be after Scene level module init. 2024-08-14 00:16:09 +03:00
Rémi Verschelde 9a8f18b9bf
Merge pull request #94796 from kus04e4ek/backfall
Windows: Fall back to D3D12 if Vulkan is not supported and vice versa
2024-07-29 15:17:26 +02:00
Kusok d30c1e6a8f Fall back to D3D12 if Vulkan is not supported and vice versa 2024-07-27 16:17:20 +08:00
Riteo 755dbde873 Apply prefer_wayland only if no display driver is set
Before this patch any other display driver preference would be
overridden.
2024-07-26 07:29:34 +02:00
Rémi Verschelde 84af5c1c46
Merge pull request #88065 from Riteo/ds-pref-consistent
Handle display driver preferences consistently between editor and projects
2024-07-22 17:30:21 +02:00
Alvin Wong baf1cdabd1 End benchmark of Main::Setup properly before calling setup2 2024-07-21 21:46:01 +08:00
Rémi Verschelde f649112dfc
Merge pull request #94116 from bruvzg/ed_quit_unload
[Editor] Unload addons when using `--import` or `--quit`.
2024-07-19 11:10:37 +02:00
Rémi Verschelde 1e81a946cc
Merge pull request #94412 from dsnopek/xr-always-render
Always render when XR is enabled, even if no OS windows can draw
2024-07-18 15:38:14 +02:00
David Snopek 7a5a8597eb Always render when XR is enabled, even if no OS windows can draw 2024-07-17 08:19:21 -05:00
Rémi Verschelde fe427ff203
Merge pull request #94404 from clayjohn/android-clear-color
Restore default clear color after displaying boot splash
2024-07-17 11:44:23 +02:00
Rémi Verschelde 496fd12b17
Merge pull request #94052 from m4gr3d/clean_input_dispatch_settings
Cleanup Android input on render thread settings
2024-07-17 11:42:52 +02:00
clayjohn 999c7e0392 Restore default clear color after displaying boot splash
On Android the boot splash can be shown at a different time, so the clear color restore needs to happen within the `setup_boot_logo` function
2024-07-15 14:00:05 -07:00
Yuri Rubinsky af5fc8354b Fix a bunch of orphan StringName errors at ProjectSettings/Editor exit 2024-07-09 19:38:52 +03:00
Fredia Huya-Kouadio 5e59819727 Cleanup Android input on render thread settings
Follow up to https://github.com/godotengine/godot/pull/93933
Clean up the set of settings use to control whether Android input should be dispatched on the render thread.

Addresses comments in https://github.com/godotengine/godot/pull/93933#issuecomment-2210437977
2024-07-09 09:15:18 -07:00
bruvzg c151c7dce0
[Editor] Unload addons when using `--import` or `--quit`. 2024-07-09 09:54:41 +03:00
Ricardo Buring 2f8ab4a654 Fixed Timestep Interpolation (3D)
Adds 3D fixed timestep interpolation to the rendering server.
This does not yet include support for multimeshes or particles.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 22:15:23 +02:00
Ricardo Buring 23521635d2 Fix physics tick counter
The counter is now incremented at the start of a physics tick rather than at the end.

Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2024-07-07 19:04:05 +02:00
Fredia Huya-Kouadio 6b6428d779 Fix ANRs reported by the Google Play Console
- Add support for dispatching input on the render thread (UI thread is the current default) when `input_buffering` and `accumulated_input` are disabled. At the expense of latency, this helps prevent 'heavy' applications / games from blocking the UI thread (the default behavior)  which may cause the application to ANR.

- Remove GLSurfaceView logic causing the UI thread to wait on the GL thread during lifecycle events. The removed logic would cause the UI thread to ANR when the GL thread is blocked.
2024-07-04 05:18:50 -07:00
Fredia Huya-Kouadio c6a23a7a7d Fix crashes reported by the Google Play Console 2024-07-04 02:46:11 -07:00
Fredia Huya-Kouadio 637f4a10ed Fix the issue causing the logo to not show when using the `compatibility` renderer 2024-07-03 11:16:45 -07:00
Fredia Huya-Kouadio f20e21a6d6 Update the splash screen logic for the Godot app template
Due to limitations to the splash screen introduced in Android 12, the splash screen logic is updated to the same logic as used on other platforms, i.e: the splash screen is rendered by the Godot engine instead of the Android runtime.
2024-06-10 00:59:36 -07:00
Rémi Verschelde 4bf961e007
Merge pull request #92733 from raulsntos/core/memdelete-engine-later-but-not-that-late
Release Engine before unregistering core types
2024-06-04 10:10:21 +02:00
Raul Santos d1ab5d3717
Release Engine before unregistering core types 2024-06-03 19:17:30 +02:00
Rémi Verschelde 0d11108a01
Merge pull request #79126 from bruvzg/SteamTime
Enable optional minimal SteamAPI integration for usage time tracking (editor only).
2024-06-03 12:42:38 +02:00
bruvzg c34d64669e
Enable optional minimal SteamAPI integration for usage time tracking (editor only). 2024-05-31 11:01:02 +03:00
Rémi Verschelde cd8bd0380d
Merge pull request #92336 from van800/DAP
[DAP] Add `--dap-port` as a command line argument
2024-05-30 22:13:42 +02:00
Ivan Shakhov 77b9e60303 [DAP] Add --dap-port as a command line argument, very similar to --lsp-port 2024-05-30 21:46:37 +02:00
bruvzg 2c9df769ad
Clean Input::frame_parsed_events before de-initialising scripting languages to ensure no script created events exist at the exit. 2024-05-30 13:23:00 +03:00
patwork 2dedf6253b Fix -empty string- console log in web export 2024-05-28 12:32:46 +02:00
Paulo Poiati a3769c0edc Properly set window class in Wayland 2024-05-22 10:42:12 -03:00
Rémi Verschelde f58a96cfa2
Merge pull request #92075 from autoit4you/fix-92062
Use `GLOBAL_GET` for `window_{height,width}_override`
2024-05-18 17:41:48 +02:00
Lea 414cc6c89e Use GLOBAL_GET for window_{height,width}_override
Before ProjectSettings::get was used, resulting in ignoring
feature tag overrides for display/window/size/window_width_override
and display/window/size/window_height_override.

Fixes #92062
2024-05-18 11:51:04 +02:00
Raul Santos e516479889
Release Engine after unregistering GDExtensions
The Engine is used to retrieve singletons, and GDExtensions may try to retrieve a singleton (e.g.: `OS`) in their deinitialization.
2024-05-17 21:29:11 +02:00
kobewi 413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
Programneer efaba30116 Don't define NO_EDITOR_SPLASH in export templates 2024-05-12 13:12:56 +02:00