Commit Graph

236 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
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
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
bruvzg
25f78a5eb6
Replace .NET detection code with ClassDB::class_exists("CSharpScript"). 2024-07-23 23:46:14 +03:00
Danil Alexeev
110c4d4067
GDScript: Fix "Mismatched external parser" for autoloads 2024-07-09 16:16:45 +03:00
Rémi Verschelde
7197678df2
Merge pull request #91551 from m4rr5/configure_timestamp_query_elements
Add a project setting to configure the maximum number of timestamps.
2024-07-07 12:38:19 +02:00
Adam Scott
52fa4f05f3
Add samples playback support 2024-06-18 11:06:31 -04:00
Rémi Verschelde
e63b5ba9e4
Merge pull request #91416 from Calinou/d3d12-sdk-update-install-script
Update dependencies in D3D12 SDK installer script
2024-05-15 13:51:31 +02:00
kobewi
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
kobewi
a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
David Snopek
14506a4282 GDExtension: Prevent crash during shutdown as singletons are deleted 2024-05-10 13:17:36 -05:00
Hugo Locurcio
47ac22486d
Update dependencies in D3D12 SDK installer script
- Add colored console output.
2024-05-07 19:10:58 +02:00
A Thousand Ships
86de59d60a
[Core] Add LocalVector::has for convenience 2024-05-06 18:03:37 +02:00
Marcel Offermans
2bb34a4489 Added a project setting to configure the maximum amount of timestamps, with a description and a reference to the setting when the limit is hit and an ERR_FAIL_COND is hit. 2024-05-05 09:09:04 +02:00
Rémi Verschelde
bd598d5657
Merge pull request #85678 from KoBeWi/editor_walktime
Add separate feature tags for editor runtime
2024-04-26 15:13:16 +02:00
kobewi
3ebb5b84a0 Add separate feature tags for editor runtime 2024-04-26 14:44:38 +02:00
kobewi
4324d01c8e Allow loading custom ProjectSettings instance 2024-04-26 11:34:37 +02:00
Haoyu Qiu
8d1cb7e74c Add project setting for root node auto translate mode 2024-04-16 11:02:04 +08:00
Juan Linietsky
65686dedf9 Use WorkerThreadPool for Server threads
* Servers now use WorkerThreadPool for background computation.
* This helps keep the number of threads used fixed at all times.
* It also ensures everything works on HTML5 with threads.
* And makes it easier to support disabling threads for also HTML5.

CommandQueueMT now syncs with the servers via the WorkerThreadPool
yielding mechanism, which makes its classic main sync semaphore
superfluous.

Also, some warnings about calls that kill performance when using
threaded rendering are removed because there's a mechanism that
warns about that in a more general fashion.

Co-authored-by: Pedro J. Estébanez <pedrojrulez@gmail.com>
2024-04-10 18:47:42 +02:00
A Thousand Ships
64146cb7f3
[Core] Add iteration support to Array 2024-04-10 14:49:34 +02:00
Rémi Verschelde
7d96ec4f9d
Merge pull request #88329 from ManpreetXSingh/key-window-menu
Windows: Add support for enabling Alt+Space menu and fix borderless maximize
2024-04-08 11:20:05 +02:00
Manpreet Singh
329d04d331 Windows: Add alt+space menu and fix window modes 2024-04-06 16:26:19 +05:30
Dario
ecaafa6001 Add toggle for enabling or disabling RenderingDevice's pipeline cache. 2024-04-05 13:14:07 -03:00
lawnjelly
691854d589 Jitter raster occlusion camera to reduce false positives.
Due to the low resolution of the occlusion buffer, small gaps between occluders can be closed and incorrectly occlude instances which should show through the gaps. To ameliorate this problem, this PR jitters the occlusion buffer over time, making it more likely an instance will be seen through a gap. This is used in conjunction with an occlusion timer per instance, to prevent instances flickering on and off rapidly.
2024-04-03 12:18:45 +01:00
Samuel Nicholas
93559db3a2
Properly skip printing version header with --no-header
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-03-26 11:41:13 +01:00
David Nikdel
5e6adb4a2d Merge uid_cache.bin and global_script_class_cache.cfg after mounting PCKs
fixes godotengine#82061
fixes godotengine#61556

Also, distinguish between main pack and DLC packs.
It's desirable to downloaded content to be as small as possible. This change avoids bloating non-main pack files with new versions of resources that are all read on startup and never used again. They have no effect if loaded after startup.
- project.godot/project.binary file
- extension_list.cfg
- app icon and boot_splash
- .ico and .icns files (these can still be opted in for DLC by listing them explicitly in the include filter)
2024-03-06 12:14:21 -05:00
nazarii
ea8c261cc6 [Core] Move includes from project_settings.h into project_settings.cpp 2024-03-04 15:37:30 +02:00
Rémi Verschelde
0394328a71
Merge pull request #86758 from Mickeon/autocompletion-project-settings
Add autocompletion for ProjectSettings' methods
2024-03-01 17:21:59 +01:00
Micky
404b2bf9c2 Add autocompletion for ProjectSettings' methods 2024-02-29 20:50:22 +01:00
Michael Alexsander
d70c45b5c8
Add option to add built-in strings in the POT generation 2024-02-28 11:34:26 -03:00
Hugo Locurcio
67e9ccdbc4
Display the build date in the editor and when starting the engine
This can be used to quickly see how recent a development build is,
without having to look up the commit date manually.
When juggling around with various builds (e.g. for benchmarking),
this can also be used to ensure that you're actually running the
binary you intended to run.

The date stored is the date of the Git commit that is built, not
the current date at the time of building the binary. This ensures
binaries can remain reproducible.

The version timestamp can be accessed using the `timestamp` key
of the `Engine.get_version_info()` return value.
2024-02-27 20:39:17 +01:00
Robert Yevdokimov
13e82094ee Remove word duplicates in comments and strings, and fix casing and punctuation 2024-02-23 17:28:28 -05:00
Rémi Verschelde
b6ef996eb7
Merge pull request #86608 from TokageItLab/add-warn-setting-anim
Add some options to Project Settings to silence warnings in AnimationMixer caching
2024-02-17 00:22:52 +01:00
Rémi Verschelde
ef5d6ccfb7
Merge pull request #86966 from Muller-Castro/value2ref-core
Add const lvalue ref to `core/*` container parameters
2024-02-15 15:44:43 +01:00
Anatoli Babenia
e25cfffc7f Add --no-header option to clean output
* Do not print empty line when header is disabled
* Do not print Vulcan header
* Also add "Print header" project setting (default On)
  (suggested by @kaissouDev)
* Add docs for the project setting
  (with suggestions by @Mickeon and @akien-mga)

Co-authored-by: Micky <66727710+Mickeon@users.noreply.github.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-02-15 14:10:11 +03:00
Muller-Castro
a8bc9f3e78 Add const lvalue ref to core/* container parameters 2024-02-14 11:20:36 -03:00
Silc Lizard (Tokage) Renew
dc4b7bc364 Add option to silence some warnings in AnimationMixer caching 2024-02-14 14:48:02 +09:00
kobewi
1b2c7bfe77 Allow to set custom feature tags for testing 2024-02-13 17:38:45 +01:00
Dario
73eff10c76 Finish splitting functionality of the Vulkan and D3D12 backends into RenderingDeviceDriver. 2024-02-12 10:02:18 -03:00
Adam Scott
344ee36bfe
Fix display/window/size/window_{width,height}_override set 0 2024-02-03 12:31:50 -05:00
Rémi Verschelde
e0dc23367c
Remove now unused year member from version.py
We changed copyright to use "present" for the current year, so we no
longer need to hardcode this and (like now) forget to bump it yearly.
2024-01-25 15:08:34 +01:00
Rémi Verschelde
ca7fb29203
Merge pull request #84800 from gshadows/fix_options_range
Fix unlimited project option ranges that could cause crashes.
2024-01-03 09:59:31 +01:00
Rémi Verschelde
14b1bb47a7
Merge pull request #86570 from RandomShaper/remove_traces_of_rid_prealloc
Remove traces of the extinct RID preallocate feature
2024-01-02 18:05:41 +01:00
bruvzg
126a763f7a
[D3D12] Dynamically load Agility SDK. 2024-01-02 17:15:59 +02:00
Pedro J. Estébanez
c217041afd Remove traces of the extinct RID preallocate feature 2023-12-28 10:18:05 +01:00
G-Shadow
cbc8ae660c Fix unlimited project option ranges that could cause crashes. 2023-12-22 09:14:45 +03:00
Yuri Sizov
3a8524dd92
Merge pull request #83452 from RandomShaper/rd_common
Split `RenderingDevice` into API-agnostic and `RenderingDeviceDriver` parts
2023-12-20 20:09:18 +01:00
Pedro J. Estébanez
12a519bae2 Split RenderingDevice into API-agnostic and RenderingDeviceDriver parts
Credit and thanks to @bruzvg for multiple build fixes, update of 3rd-party items and MinGW support.

Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-12-20 19:18:08 +01:00
Stanislav Labzyuk
958699a0c4 Implement project-wide node groups 2023-12-19 18:07:19 +01:00