68 Commits

Author SHA1 Message Date
Spartan322
b666f4fc15 Merge commit godotengine/godot@de37627404 2025-05-29 05:22:55 -04:00
Rémi Verschelde
1de9789806 Linux: Drop ppc32 (32-bit PowerPC) architecture support
This was added together with `ppc64le` in #54490, but seemingly only for the
purpose of getting it to compile on a Linux distro that aims at maximizing
support for all CPU architectures.

I don't think anyone has ever _run_ Godot on a `ppc32` system (do those even
support OpenGL ES 3.0?) and so I don't think we should aim to support it.

Debian dropped support for its PowerPC (`ppc32`) arch in Debian 9, released
in 2017.
2025-05-14 10:22:12 +02:00
Spartan322
8122592328 Merge commit godotengine/godot@80a3d205f1 2025-05-01 01:30:09 -04:00
kobewi
5af4bef46f Inline static variables (part 1) 2025-04-29 18:10:44 +02:00
Spartan322
2b59059dde Merge commit godotengine/godot@2d3bdcac35 2025-04-19 16:05:28 -04:00
Aaron Franke
97ee05e9b7 Rename version defines to GODOT_VERSION_* to match GDExtension godot-cpp 2025-03-12 11:11:38 -07:00
Spartan322
a85fa1de71 Add get_redot_version to GDExtension interface
Add more godot compatible version macros
Add `build` to `Engine::get_godot_compatible_version_info`
Update `Engine.get_godot_compatible_version_info` documentation
Fix `Engine.get_version_info` documentation for `string`

(cherry picked from commit 2ccf5447ba)
2025-03-09 10:20:11 -04:00
Spartan322
fa0b4af786 Merge commit godotengine/godot@a7a2a12bfd 2024-12-21 05:32:01 -05:00
Hilderin
9d2a4c03be Embedding game process in editor 2024-12-18 17:52:42 -05:00
Spartan322
14bb3617ef Merge commit godotengine/godot@a372214a4a 2024-12-09 17:57:46 -05:00
Student Main
e0693f8ad8 Add loongarch64 support 2024-12-06 00:18:26 +08:00
Spartan322
a684ee1dec Merge commit godotengine/godot@c6c464cf9a 2024-11-02 03:22:12 -04:00
Michael Alexsander
16524a8a01 Add "Game" editor for better runtime debugging 2024-10-30 11:42:17 -03:00
Spartan322
82de309d58 Merge commit godotengine/godot@8004c7524f 2024-10-30 05:22:24 -04:00
Clay John
748f4079e3 Merge pull request #96439 from darksylinc/matias-TheForge-pr03-rebased
Add Swappy & Pre-Transformed Swapchain
2024-10-29 12:34:40 -07:00
Matias N. Goldberg
aaa0e2fddf Add Swappy & Pre-Transformed Swapchain
- 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.
2024-10-28 18:55:37 -03:00
George L. Albany
77eaec766e Merge pull request #818 from Spartan322/fixup/copyright-headers
Fix copyright headers referring to Godot
2024-10-27 18:22:19 +00:00
Spartan322
6beb1eef9a Fix copyright headers referring to Godot 2024-10-27 11:17:29 -04:00
Spartan322
953af98c79 Merge commit godotengine/godot@61accf0605 2024-10-26 22:41:20 -04:00
Spartan322
ce103fb883 Fix VERSION_FULL_CONFIG ignoring status versioning
(cherry picked from commit cb0d3f7aa0)
2024-10-23 23:54:56 -04:00
Matias N. Goldberg
668c9b74e2 Fix race conditions in breadcrumbs
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
2024-10-22 22:08:46 -03:00
Spartan322
361170f6da Bump version to 4.4-alpha.2
Add status_version to version.py
Update Engine.xml example for get_godot_compatible_version_info
2024-10-14 10:07:25 -04:00
Dubhghlas McLaughlin
e8542b06ac Rebrand preambles to Redot
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>
2024-10-11 02:26:51 -04:00
Randolph W. Aarseth II
d5fc3d1e8c Rebrand Godot to Redot
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>
2024-10-11 02:25:54 -04:00
A Thousand Ships
d49ec39d63 [Core] Add Engine.print_to_stout setting to control printing
Also added notes to the related project settings pointing to the
`Engine` properties.
2024-09-22 12:09:01 +02:00
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
David Snopek
14506a4282 GDExtension: Prevent crash during shutdown as singletons are deleted 2024-05-10 13:17:36 -05: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
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
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
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
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
ff5ac866e8 Donors: Change tiers to match Dev Fund, sync latest data
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.
2023-11-14 15:40:44 +01:00
Yuri Sizov
4cdbbfd071 Differentiate between core and editor-only singletons
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.
2023-08-24 16:46:54 +02:00
Hugo Locurcio
6f1152bdbe Add a --audio-output-latency command-line argument
This allows optimizing the audio output latency on higher-end CPUs,
especially in projects that do not expose a way to override this setting.
2023-08-17 14:45:17 +02:00
sakrel
80a36ff985 Add support for GLSL source-level debugging with RenderDoc (--generate-spirv-debug-info) 2023-08-12 14:56:49 +02:00
Fredia Huya-Kouadio
831b4a5366 Improve startup benchmarking
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).
2023-05-23 13:22:35 -07:00
Rémi Verschelde
d95794ec8a One Copyright Update to rule them all
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".
2023-01-05 13:25:55 +01:00
Hugo Locurcio
66f7c48e39 Implement adjusting the maximum number of physics steps per rendered frame
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.
2022-10-09 23:00:09 +02:00
Hugo Locurcio
1c6c72caf1 Rename Engine.target_fps and associated project setting to max_fps
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.
2022-10-03 23:54:36 +02:00
Fabio Alessandrelli
6baf530bcb Fix arm32 detection in Engine.
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__`).
2022-09-03 13:41:59 +02:00
bruvzg
8dab4a2aa3 [Windows] Improve build environment detection, add support for Windows on ARM. 2022-08-27 16:10:53 +03:00
kobewi
8be27dc59e Replace Array return types with TypedArray 2022-08-22 22:42:36 +02:00
Juan Linietsky
a3936adb29 Add Startup benchmarking support
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.
2022-08-19 14:21:43 +02:00
Hugo Locurcio
27a072c884 Print expected os.arch tuple for current platform in GDExtension error
This also adds `Engine.get_architecture_name()` to get the name of the
CPU architecture the Godot binary was built for.
2022-08-08 19:30:34 +02:00
Rémi Verschelde
33258d850c Merge pull request #61315 from lawnjelly/variant_bucket_pools
Variant memory pools
2022-08-02 15:54:18 +02:00
Hugo Locurcio
aaeb60eafc Add a Movie Quit On Finish property to AnimationPlayer
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.
2022-07-27 18:50:28 +02:00
lawnjelly
b221eab426 Variant memory pools
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
2022-07-04 12:01:46 +01:00
reduz
746dddc067 Replace most uses of Map by HashMap
* 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!
2022-05-16 10:37:48 +02:00
Rémi Verschelde
90162851a7 Core: Move generated VERSION_HASH to a .cpp file
This lets us have its definition in `core/version.h` and avoid
rebuilding a handful of files every time the commit hash changes.
2022-02-09 09:20:17 +01:00