summaryrefslogtreecommitdiffstats
path: root/core/config/engine.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit godotengine/godot@c6c464cf9ae56e8b68620af65125dd980d0e8122Spartan3222024-11-021-0/+8
|\
| * Add "Game" editor for better runtime debuggingMichael Alexsander2024-10-301-0/+8
| |
* | Merge commit godotengine/godot@8004c7524fb9f43425c4d6f614410a76678e0f7cSpartan3222024-10-301-1/+6
|\|
| * Merge pull request #96439 from darksylinc/matias-TheForge-pr03-rebasedClay John2024-10-291-0/+6
| |\ | | | | | | Add Swappy & Pre-Transformed Swapchain
| | * Add Swappy & Pre-Transformed SwapchainMatias N. Goldberg2024-10-281-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Adds Swappy for Android for stable frame pacing - Implements pre-transformed Swapchain so that Godot's compositor is in charge of rotating the screen instead of Android's compositor (performance optimization for phones that don't have HW rotator) ============================ The work was performed by collaboration of TheForge and Google. I am merely splitting it up into smaller PRs and cleaning it up. Changes from original PR: - Removed "display/window/frame_pacing/android/target_frame_rate" option to use Engine::get_max_fps instead. - Target framerate can be changed at runtime using Engine::set_max_fps. - Swappy is enabled by default. - Added documentation. - enable_auto_swap setting is replaced with swappy_mode.
* | | Merge pull request #818 from Spartan322/fixup/copyright-headersGeorge L. Albany2024-10-271-2/+2
|\ \ \ | | | | | | | | Fix copyright headers referring to Godot
| * | | Fix copyright headers referring to GodotSpartan3222024-10-271-2/+2
| | | |
* | | | Merge commit godotengine/godot@61accf060515416da07d913580419fd8c8490f7bSpartan3222024-10-261-0/+6
|\ \ \ \ | |/ / / |/| / / | |/ /
| * / Fix race conditions in breadcrumbsMatias N. Goldberg2024-10-221-0/+6
| |/ | | | | | | | | | | | | | | | | | | Adds "--accurate-breadcrumbs" CLI command Additionally, leave out breadcrumbs code in non-debug, non-dev builds. Fix regression introduced in #98388 where command_insert_breadcrumb() is called even in non-debug builds. Fixes #98338
* | Fix VERSION_FULL_CONFIG ignoring status versioningSpartan3222024-10-231-2/+1
| | | | | | | | (cherry picked from commit cb0d3f7aa0c51edcf230a8fb8a53c8845f1335da)
* | Bump version to 4.4-alpha.2Spartan3222024-10-141-1/+9
| | | | | | | | | | Add status_version to version.py Update Engine.xml example for get_godot_compatible_version_info
* | Rebrand preambles to RedotDubhghlas McLaughlin2024-10-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
* | Rebrand Godot to RedotRandolph W. Aarseth II2024-10-111-0/+45
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add Linux Editor tests workflow matrix Add Windows Editor w/ Mono workflow matrix Add Generate Glue Code job to Windows workflow Add Build GodotSharp job to Windows workflow Add godot compatibility version references Add Godot author info Add Godot version compatibility info Add Godot donor info Add Godot authors and donors to editor_about.cpp Credits: Co-authored-by: Skogi <skogi.b@gmail.com> Co-authored-by: Spartan322 <Megacake1234@gmail.com> Co-authored-by: swashberry <swashdev@pm.me> Co-authored-by: Christoffer Sundbom <christoffer_karlsson@live.se> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: McDubh <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: Dubhghlas McLaughlin <103212704+mcdubhghlas@users.noreply.github.com> Co-authored-by: radenthefolf <radenthefolf@gmail.com> Co-authored-by: John Knight <80524176+Tekisasu-JohnK@users.noreply.github.com> Co-authored-by: Adam Vondersaar <adam.vondersaar@uphold.com> Co-authored-by: decryptedchaos <nixgod@gmail.com> Co-authored-by: zaftnotameni <122100803+zaftnotameni@users.noreply.github.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: wesam <108880473+wesamdev@users.noreply.github.com> Co-authored-by: Mister Puma <MisterPuma80@gmail.com> Co-authored-by: Aaron Benjamin <lifeartstudios@gmail.com> Co-authored-by: SingleError <isaaconeoneone@gmail.com> Co-authored-by: Bioblaze Payne <BioblazePayne@gmail.com>
* [Core] Add `Engine.print_to_stout` setting to control printingA Thousand Ships2024-09-221-0/+8
| | | | | Also added notes to the related project settings pointing to the `Engine` properties.
* Disable extra memory tracking by defaultMatias N. Goldberg2024-08-241-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* GDExtension: Prevent crash during shutdown as singletons are deletedDavid Snopek2024-05-101-0/+6
|
* Use WorkerThreadPool for Server threadsJuan Linietsky2024-04-101-0/+16
| | | | | | | | | | | | | | | | | * 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>
* Properly skip printing version header with `--no-header`Samuel Nicholas2024-03-261-0/+6
| | | | Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
* Display the build date in the editor and when starting the engineHugo Locurcio2024-02-271-0/+2
| | | | | | | | | | | | | | | 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.
* Add `--no-header` option to clean outputAnatoli Babenia2024-02-151-0/+6
| | | | | | | | | | | | | * 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>
* Remove now unused `year` member from `version.py`Rémi Verschelde2024-01-251-1/+0
| | | | | 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.
* Donors: Change tiers to match Dev Fund, sync latest dataRémi Verschelde2023-11-141-8/+8
| | | | | | | | | The new list includes all donors listed on fund.godotengine.org, together with the ones still on Patreon on matching tiers. We haven't yet updated Patreon tiers to match the Dev Fund, so donors who used to be listed under "Silver donors" are now grandfathered under the "Gold members" category from the Dev Fund.
* Differentiate between core and editor-only singletonsYuri Sizov2023-08-241-2/+28
| | | | | | | This makes sure that running scenes in debug mode (from the editor) does not crash Godot. In export mode it should already work correctly, because editor-only singletons are never registered in the first place.
* Add a `--audio-output-latency` command-line argumentHugo Locurcio2023-08-171-0/+8
| | | | | This allows optimizing the audio output latency on higher-end CPUs, especially in projects that do not expose a way to override this setting.
* Add support for GLSL source-level debugging with RenderDoc ↵sakrel2023-08-121-0/+4
| | | | (`--generate-spirv-debug-info`)
* Improve startup benchmarkingFredia Huya-Kouadio2023-05-231-39/+0
| | | | Move the benchmarking measuring methods from `Engine` to `OS` to allow for platform specific overrides (e.g: can be used to hook into platform specific benchmarking and tracing capabilities).
* One Copyright Update to rule them allRémi Verschelde2023-01-051-29/+29
| | | | | | | | | | | | | | | | | | | | As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
* Implement adjusting the maximum number of physics steps per rendered frameHugo Locurcio2022-10-091-0/+9
| | | | | | | | | When using high physics FPS (which is a requirement to minimize input lag and improve precision in simulation racing games), a higher value prevents the game from slowing down at low rendering FPS. This can be done via an Engine property for run-time changes, or a project setting for initial changes.
* Rename `Engine.target_fps` and associated project setting to `max_fps`Hugo Locurcio2022-10-031-4/+4
| | | | | | | | | This makes the setting easier to find, as research has found there are numerous use cases to limiting FPS. This also improves documentation related to the Engine property and project setting. The project setting also works in projects exported in release mode, so its location in the `debug/` section was misleading.
* Fix arm32 detection in Engine.Fabio Alessandrelli2022-09-031-1/+1
| | | | | | | | The `__ARM_ARCH_7A__` and `__ARM_ARCH_7S__` are not enough, since they do not cover e.g. `__ARM_ARCH_8A__` in 32 bit mode, so instead of trying to cover any possible ARM version that can work in 32 bit mode, we can replace it with the `__arm__` macro which is defined for arm32 only (arm64 uses `__aarch64__`).
* [Windows] Improve build environment detection, add support for Windows on ARM.bruvzg2022-08-271-3/+3
|
* Replace Array return types with TypedArraykobewi2022-08-221-2/+3
|
* Add Startup benchmarking supportJuan Linietsky2022-08-191-0/+39
| | | | | This adds support for benchmarking engine startup (and editor startup if used). The goal is to use this in the benchmarking server to track improvements and changes to engine, editor, importer and scene loading startup times.
* Print expected `os.arch` tuple for current platform in GDExtension errorHugo Locurcio2022-08-081-0/+36
| | | | | This also adds `Engine.get_architecture_name()` to get the name of the CPU architecture the Godot binary was built for.
* Merge pull request #61315 from lawnjelly/variant_bucket_poolsRémi Verschelde2022-08-021-2/+2
|\ | | | | Variant memory pools
| * Variant memory poolslawnjelly2022-07-041-2/+2
| | | | | | | | Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
* | Add a Movie Quit On Finish property to AnimationPlayerHugo Locurcio2022-07-271-0/+8
|/ | | | | | | | | | | | | | | | | | This quits the project when an animation is done playing in the given AnimationPlayer, but only in Movie Maker mode. When this happens, a message is printed with the absolute path of the AnimationPlayer node that caused the engine to quit. This can be used to create videos that stop at a specified time without having to write any script. A report is now also printed to the console when the video is done recording (as long as the engine was exited properly). This report is unfortunately not always visible in the editor's Output panel, as it's printed too late. A method was also added to get the path to the output file from the scripting API.
* Replace most uses of Map by HashMapreduz2022-05-161-2/+2
| | | | | | | | | | | | * Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
* Core: Move generated `VERSION_HASH` to a `.cpp` fileRémi Verschelde2022-02-091-3/+2
| | | | | This lets us have its definition in `core/version.h` and avoid rebuilding a handful of files every time the commit hash changes.
* Merge pull request #55020 from bruvzg/vlk_device_surface_checkRémi Verschelde2022-01-171-0/+4
|\
| * [Vulkan] Check each device capabilities before selecting it.bruvzg2021-11-221-0/+4
| | | | | | | | | | | | | | Split instance and physical device selection function and move device selection to window creation, to reject devices without present capability. Add device preferred type check in discrete > integrated > virtual > cpu > other order. Add device list printout. Add command line argument to override device selection.
* | Update copyright statements to 2022Rémi Verschelde2022-01-031-2/+2
|/ | | | Happy new year to the wonderful Godot community!
* Fix character encoding of Engine::get_copyright_infoNathan Franke2021-10-131-4/+4
|
* Add ability to register singletons from engine APIreduz2021-08-251-3/+27
| | | | | * Exposed functions in Engine to register and unregister singletons. * Added the concept of user singletons, which can be removed (the system ones can't).
* Rename `iterations_per_second` to `physics_ticks_per_second`Hugo Locurcio2021-08-111-2/+2
| | | | | | | | This makes it clearer that this property is only about physics FPS, not rendering FPS. The `physics_fps` project setting was also renamed to `physics_ticks_per_second` for consistency.
* Use doubles for time in many other placesAaron Franke2021-08-091-4/+4
|
* Use const references where possible for List range iteratorsRémi Verschelde2021-07-251-1/+1
|
* Use C++ iterators for Lists in many situationsAaron Franke2021-07-231-2/+2
|
* Implement native extension systemreduz2021-06-251-2/+3
| | | | | | * Deprecates GDNative in favor of a simpler, lower level interface. * New extension system allows registering core engine classes. * Simple header interface in gdnative_interace.h
* Merge pull request #48359 from Calinou/add-engine-print-error-propertyRémi Verschelde2021-06-201-0/+8
|\