Merge upstream Godot 4.6.1-stable
Some checks failed
🔗 GHA / 📊 Static checks (push) Has been cancelled
🔗 GHA / 🤖 Android (push) Has been cancelled
🔗 GHA / 🍏 iOS (push) Has been cancelled
🔗 GHA / 🐧 Linux (push) Has been cancelled
🔗 GHA / 🍎 macOS (push) Has been cancelled
🔗 GHA / 🏁 Windows (push) Has been cancelled
🔗 GHA / 🌐 Web (push) Has been cancelled

This commit is contained in:
2026-03-06 15:22:01 -05:00
4423 changed files with 904694 additions and 168624 deletions

29
.github/CODEOWNERS vendored
View File

@@ -45,8 +45,6 @@
# Editor
/editor/ @godotengine/docks
/editor/script/ @godotengine/script-editor
/editor/shader/ @godotengine/script-editor @godotengine/shaders
/editor/animation/ @godotengine/animation
/editor/audio/ @godotengine/audio
/editor/debugger/ @godotengine/debugger
@@ -57,10 +55,12 @@
/editor/import/ @godotengine/import
/editor/inspector/ @godotengine/docks
/editor/scene/2d/ @godotengine/2d-editor
/editor/scene/2d/physics @godotengine/2d-editor @godotengine/physics
/editor/scene/2d/physics/ @godotengine/2d-editor @godotengine/physics
/editor/scene/3d/ @godotengine/3d-editor
/editor/scene/3d/physics @godotengine/3d-editor @godotengine/physics
/editor/scene/3d/physics/ @godotengine/3d-editor @godotengine/physics
/editor/scene/gui/ @godotengine/gui-nodes
/editor/script/ @godotengine/script-editor
/editor/shader/ @godotengine/script-editor @godotengine/shaders
/editor/themes/ @godotengine/usability @godotengine/gui-nodes
/editor/translations/ @godotengine/usability
@@ -78,8 +78,8 @@
## Audio (+ video)
/modules/interactive_music/ @godotengine/audio
/modules/interactive_music/doc_classes/ @godotengine/audio @godotengine/documentation
/modules/minimp3/ @godotengine/audio
/modules/minimp3/doc_classes/ @godotengine/audio @godotengine/documentation
/modules/mp3/ @godotengine/audio
/modules/mp3/doc_classes/ @godotengine/audio @godotengine/documentation
/modules/ogg/ @godotengine/audio
/modules/ogg/doc_classes/ @godotengine/audio @godotengine/documentation
/modules/theora/ @godotengine/audio
@@ -205,15 +205,19 @@
# Scene
/scene/2d/ @godotengine/2d-nodes
/scene/2d/navigation/ @godotengine/2d-nodes @godotengine/navigation
/scene/2d/physics/ @godotengine/2d-nodes @godotengine/physics
/scene/3d/ @godotengine/3d-nodes
/scene/3d/navigation/ @godotengine/3d-nodes @godotengine/navigation
/scene/3d/physics/ @godotengine/3d-nodes @godotengine/physics
/scene/3d/xr/ @godotengine/3d-nodes @godotengine/xr
/scene/animation/ @godotengine/animation
/scene/audio/ @godotengine/audio
/scene/debugger/ @godotengine/debugger
/scene/gui/ @godotengine/gui-nodes
/scene/main/ @godotengine/core
/scene/resources/2d/ @godotengine/2d-nodes
/scene/resources/2d/skeleton/ @godotengine/2d-nodes @godotengine/animation
/scene/resources/3d/ @godotengine/3d-nodes
/scene/resources/animated* @godotengine/animation
/scene/resources/animation* @godotengine/animation
@@ -227,18 +231,13 @@
# Servers
/servers/**/audio_* @godotengine/audio
/servers/**/camera_* @godotengine/xr
/servers/**/debugger_* @godotengine/debugger
/servers/**/navigation_* @godotengine/navigation
/servers/**/physics_* @godotengine/physics
/servers/**/rendering_* @godotengine/rendering
/servers/**/text_* @godotengine/gui-nodes
/servers/**/xr_* @godotengine/xr
/servers/audio/ @godotengine/audio
/servers/camera/ @godotengine/xr
/servers/debugger/ @godotengine/debugger
/servers/navigation/ @godotengine/navigation
/servers/navigation_2d/ @godotengine/navigation
/servers/navigation_3d/ @godotengine/navigation
/servers/physics_2d/ @godotengine/physics
/servers/physics_3d/ @godotengine/physics
/servers/rendering/ @godotengine/rendering
/servers/text/ @godotengine/gui-nodes
/servers/xr/ @godotengine/xr

View File

@@ -10,7 +10,7 @@ inputs:
default: x64
scons-version:
description: The SCons version to use.
default: 4.9.0
default: 4.10.1
runs:
using: composite

View File

@@ -1,6 +1,7 @@
name: 🤖 Android Builds
on:
workflow_call:
workflow_dispatch:
# Global Settings
env:
@@ -26,14 +27,14 @@ jobs:
arch=arm64
production=yes
- name: Template arm32 (target=template_release, arch=arm32)
- name: Template arm32 (target=template_debug, arch=arm32)
cache-name: android-template-arm32
target: template_release
target: template_debug
scons-flags: arch=arm32
- name: Template arm64 (target=template_release, arch=arm64)
- name: Template arm64 (target=template_debug, arch=arm64)
cache-name: android-template-arm64
target: template_release
target: template_debug
scons-flags: arch=arm64
steps:
@@ -57,16 +58,8 @@ jobs:
- name: Setup Python and SCons
uses: ./.github/actions/godot-deps
- name: Download pre-built Android Swappy Frame Pacing Library
uses: dsaltares/fetch-gh-release-asset@1.1.2
with:
repo: godotengine/godot-swappy
version: tags/from-source-2025-01-31
file: godot-swappy.7z
target: swappy/godot-swappy.7z
- name: Extract pre-built Android Swappy Frame Pacing Library
run: 7za x -y swappy/godot-swappy.7z -o${{github.workspace}}/thirdparty/swappy-frame-pacing
- name: Download Swappy
run: python ./misc/scripts/install_swappy_android.py
- name: Compilation
uses: ./.github/actions/godot-build
@@ -82,7 +75,7 @@ jobs:
continue-on-error: true
- name: Generate Godot templates
if: matrix.target == 'template_release'
if: matrix.target == 'template_debug'
run: |
cd platform/android/java
./gradlew generateGodotTemplates

View File

@@ -1,6 +1,7 @@
name: 🍏 iOS Builds
on:
workflow_call:
workflow_dispatch:
# Global Settings
env:
@@ -12,6 +13,7 @@ env:
jobs:
ios-template:
# From https://docs.github.com/en/actions/how-tos/write-workflows/choose-where-workflows-run/choose-the-runner-for-a-job#choosing-github-hosted-runners
runs-on: macos-latest
name: Template (target=template_release)
timeout-minutes: 60
@@ -22,6 +24,10 @@ jobs:
with:
submodules: recursive
# From https://github.com/actions/runner-images/blob/main/images/macos
- name: Select Xcode 26
run: sudo xcode-select -s /Applications/Xcode_26.0.1.app
- name: Restore Godot build cache
uses: ./.github/actions/godot-cache-restore
continue-on-error: true

View File

@@ -1,14 +1,15 @@
name: 🐧 Linux Builds
on:
workflow_call:
workflow_dispatch:
# Global Settings
env:
SCONS_FLAGS: >-
dev_mode=yes
module_text_server_fb_enabled=yes
"accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.17.0/"
GODOT_CPP_BRANCH: 4.4
"accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.18.0/"
GODOT_CPP_BRANCH: 4.5
DOTNET_NOLOGO: true
DOTNET_CLI_TELEMETRY_OPTOUT: true
ASAN_OPTIONS: color=always:print_suppressions=1:suppressions=${{ github.workspace }}/misc/error_suppressions/asan.txt
@@ -161,12 +162,12 @@ jobs:
uses: dsaltares/fetch-gh-release-asset@1.1.2
with:
repo: AccessKit/accesskit-c
version: tags/0.17.0
file: accesskit-c-0.17.0.zip
target: accesskit-c-0.17.0/accesskit_c.zip
version: tags/0.18.0
file: accesskit-c-0.18.0.zip
target: accesskit-c-0.18.0/accesskit_c.zip
- name: Extract pre-built AccessKit
run: unzip -o accesskit-c-0.17.0/accesskit_c.zip
run: unzip -o accesskit-c-0.18.0/accesskit_c.zip
- name: Install mold linker
if: matrix.proj-test

View File

@@ -1,16 +1,18 @@
name: 🍎 macOS Builds
on:
workflow_call:
workflow_dispatch:
# Global Settings
env:
SCONS_FLAGS: >-
dev_mode=yes
module_text_server_fb_enabled=yes
"accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.17.0/"
"accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.18.0/"
jobs:
build-macos:
# From https://docs.github.com/en/actions/how-tos/write-workflows/choose-where-workflows-run/choose-the-runner-for-a-job#choosing-github-hosted-runners
runs-on: macos-latest
name: ${{ matrix.name }}
timeout-minutes: 120
@@ -35,8 +37,9 @@ jobs:
with:
submodules: recursive
- name: Select Xcode 16
run: sudo xcode-select -s /Applications/Xcode_16.2.app
# From https://github.com/actions/runner-images/blob/main/images/macos
- name: Select Xcode 26
run: sudo xcode-select -s /Applications/Xcode_26.0.1.app
- name: Restore Godot build cache
uses: ./.github/actions/godot-cache-restore
@@ -51,12 +54,12 @@ jobs:
uses: dsaltares/fetch-gh-release-asset@1.1.2
with:
repo: AccessKit/accesskit-c
version: tags/0.17.0
file: accesskit-c-0.17.0.zip
target: accesskit-c-0.17.0/accesskit_c.zip
version: tags/0.18.0
file: accesskit-c-0.18.0.zip
target: accesskit-c-0.18.0/accesskit_c.zip
- name: Extract pre-built AccessKit
run: unzip -o accesskit-c-0.17.0/accesskit_c.zip
run: unzip -o accesskit-c-0.18.0/accesskit_c.zip
- name: Setup Vulkan SDK
id: vulkan-sdk

View File

@@ -1,5 +1,5 @@
name: 🔗 GHA
on: [push, pull_request, merge_group]
on: [push, pull_request, merge_group, workflow_dispatch]
concurrency:
group: ${{ github.workflow }}|${{ github.ref_name }}
@@ -9,7 +9,7 @@ jobs:
# First stage: Only static checks, fast and prevent expensive builds from running.
static-checks:
if: ${{ !vars.DISABLE_GODOT_CI || github.run_attempt > 1 }}
if: ${{ !vars.DISABLE_GODOT_CI || github.run_attempt > 1 || github.event_name == 'workflow_dispatch' }}
name: 📊 Static checks
uses: ./.github/workflows/static_checks.yml

View File

@@ -1,6 +1,7 @@
name: 📊 Static Checks
on:
workflow_call:
workflow_dispatch:
jobs:
static-checks:
@@ -34,13 +35,3 @@ jobs:
uses: pre-commit/action@v3.0.1
with:
extra_args: --files ${{ env.CHANGED_FILES }}
- name: Class reference schema checks
run: |
sudo apt-get update
sudo apt-get install libxml2-utils
xmllint --quiet --noout --schema doc/class.xsd doc/classes/*.xml modules/*/doc_classes/*.xml platform/*/doc_classes/*.xml
- name: Run C compiler on `gdextension_interface.h`
run: |
gcc -c core/extension/gdextension_interface.h

View File

@@ -1,6 +1,7 @@
name: 🌐 Web Builds
on:
workflow_call:
workflow_dispatch:
# Global Settings
env:

View File

@@ -1,6 +1,7 @@
name: 🏁 Windows Builds
on:
workflow_call:
workflow_dispatch:
# Global Settings
env:
@@ -8,9 +9,8 @@ env:
dev_mode=yes
module_text_server_fb_enabled=yes
debug_symbols=no
d3d12=yes
"angle_libs=${{ github.workspace }}/"
"accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.17.0/"
"accesskit_sdk_path=${{ github.workspace }}/accesskit-c-0.18.0/"
SCONS_CACHE_MSVC_CONFIG: true
PYTHONIOENCODING: utf8
@@ -73,7 +73,16 @@ jobs:
uses: ./.github/actions/godot-deps
- name: Download Direct3D 12 SDK components
run: python ./misc/scripts/install_d3d12_sdk_windows.py
shell: sh
id: d3d12-sdk
run: |
if python ./misc/scripts/install_d3d12_sdk_windows.py; then
echo "D3D12_ENABLED=yes" >> "$GITHUB_OUTPUT"
else
echo "::warning::Windows: Direct3D 12 SDK installation failed, building without Direct3D 12 support."
echo "D3D12_ENABLED=no" >> "$GITHUB_OUTPUT"
fi
continue-on-error: true
- name: Download pre-built ANGLE static libraries
uses: dsaltares/fetch-gh-release-asset@1.1.2
@@ -90,17 +99,17 @@ jobs:
uses: dsaltares/fetch-gh-release-asset@1.1.2
with:
repo: AccessKit/accesskit-c
version: tags/0.17.0
file: accesskit-c-0.17.0.zip
target: accesskit-c-0.17.0/accesskit_c.zip
version: tags/0.18.0
file: accesskit-c-0.18.0.zip
target: accesskit-c-0.18.0/accesskit_c.zip
- name: Extract pre-built AccessKit
run: unzip -o accesskit-c-0.17.0/accesskit_c.zip
run: unzip -o accesskit-c-0.18.0/accesskit_c.zip
- name: Compilation
uses: ./.github/actions/godot-build
with:
scons-flags: ${{ env.SCONS_FLAGS }} ${{ matrix.scons-flags }}
scons-flags: ${{ env.SCONS_FLAGS }} ${{ matrix.scons-flags }} d3d12=${{ steps.d3d12-sdk.outputs.D3D12_ENABLED }}
platform: windows
target: ${{ matrix.target }}