Commit Graph

256 Commits

Author SHA1 Message Date
David Snopek 45d6728eed OpenXR: Fix XR_ERROR_VALIDATION_FAILURE on first frame with frame synthesis on Meta Quest 2026-05-22 09:40:48 -05:00
David Snopek ae8544adcb OpenXR: Fix composition layers with Vulkan subsampled images 2026-05-04 13:52:24 -05:00
David Snopek 412dad0155 OpenXR: Fix crash when using XR_EXT_frame_synthesis after Godot 4.7-dev5 2026-04-24 04:58:33 -05:00
dhoverb d72e8691f2 Update spatial entities APIs 2026-04-15 13:43:34 +00:00
Thaddeus Crews c83925eaf0 Merge pull request #117399 from devloglogan/expose-interaction-profile-metadata
Expose `OpenXRInteractionProfileMetadata` singleton
2026-04-10 10:32:16 -05:00
David Snopek e4703603b4 OpenXR: Add eye-tracked foveation setting, and enable subsampled images by default 2026-03-26 12:06:23 -05:00
Logan f990050ecf Expose OpenXRInteractionProfileMetadata singleton 2026-03-24 09:36:13 -05:00
Rémi Verschelde 7958080d65 Merge pull request #116220 from dsnopek/foveated-rendering-vulkan-subsampled-image
OpenXR: Allow using Vulkan subsampled images with foveated rendering
2026-03-23 22:34:11 +01:00
Rémi Verschelde e33e98a26f Style: Apply clang-format grouping rules 2026-03-17 20:11:01 +01:00
Rémi Verschelde 7795057e4b Misc includes or modernize fixes found via clangd-tidy 2026-03-16 21:38:26 +01:00
Rémi Verschelde 6d309c858e Remove unused includes in modules with clangd-tidy 2026-03-16 16:40:39 +01:00
Bastiaan Olij 87eafe20ae OpenXR: Add support for XR_KHR_generic_controller 2026-03-10 12:32:10 +11:00
David Snopek 4d218bdeb7 OpenXR: Allow using Vulkan subsampled images with foveated rendered 2026-03-05 11:00:37 -06:00
StarryWorm 3cb2d376f8 Get rid of all unnecessary class_db.h includers 2026-03-04 17:40:05 -05:00
Rémi Verschelde eabb9a63d4 Rename callable_method_pointer.h to callable_mp.h and include it explicitly
This allows removing it from `class_db.h`, significantly reducing the amount of files
that include it transitively.

Also includes some include cleanup in `control.h` and `rich_text_label.h` done while
ensure they don't depend on `callable_mp`.
2026-03-04 16:23:23 +01:00
Rémi Verschelde f332faf46b Explicitly include core/os/os.h where used 2026-03-04 09:54:10 +01:00
Rémi Verschelde 8c0f175c94 Decouple RenderingServer from as much of the codebase as possible
Notably decouples it from:
- AccessibilityServer
- DisplayServer
- Viewport
- Window
2026-03-03 12:48:07 +01:00
Rémi Verschelde a447ac95ec Move DisplayServer enums and typedefs to DisplayServerEnums
This will allow decoupling `display_server.h` from a number of headers in the
codebase which only require those enums and not all the DisplayServer API.
2026-03-03 12:44:02 +01:00
Thaddeus Crews e380a41752 Style: Add class_db.h includes explicitly 2026-02-26 15:50:28 -06:00
Rémi Verschelde e3b60a1530 Move RenderingMethod::RenderInfo to RenderingServerTypes
Also move RS::scaling_3d_mode_type to RenderingServerEnums.
2026-02-25 20:17:28 +01:00
Rémi Verschelde f0a448540e Misc dependency improvements for files depending on rendering_server.h
On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 3s.
2026-02-25 20:17:27 +01:00
Rémi Verschelde a3cb56dd38 Decouple RenderingServer from XR/OpenXR headers
Move BlitToScreen to RenderingServerTypes.
2026-02-25 20:17:23 +01:00
Rémi Verschelde f5a290ac46 Move RenderingServer enums to a dedicated RenderingServerEnums (RSE) namespace
A number of headers in the codebase included `rendering_server.h` just for
some enum definitions. This means that any change to `rendering_server.h` or
one of its dependencies would trigger a massive incremental rebuild.

With this change, we decouple a number of classes from `rendering_server.h`,
greatly speeding up incremental rebuilds for that area.

On my machine, this reduces incremental compilation time after an edit of
`rendering_server.h` by 60s (from 2m57s).
2026-02-25 19:43:03 +01:00
Thaddeus Crews 44675a7002 Merge pull request #116529 from eritschlSC/opengl_es_defines
OpenXR: Use Android-independent OpenGL ES compile time checks
2026-02-25 09:27:36 -06:00
Erik Ritschl 9dfa168dc0 OpenXR: Use Android-independent OpenGL ES compile time checks
Godot currently guards several OpenGL ES code paths by checking for
ANDROID_ENABLED. This commit changes them to the more specific
XR_USE_GRAPHICS_API_OPENGL_ES (which is always defined when
ANDROID_ENABLED is defined), making it possible to create custom
non-Android based engine builds using OpenGL ES.
2026-02-20 10:10:39 +01:00
Erik Ritschl ebe5e9e294 OpenXR: Fix OpenGL ES driver checks
The OpenXROpenGLExtension class handles both OpenGL and OpenGL ES
but currently there is no code path to activate the extension when
the "opengl3_es" rendering driver is requested explicitly. A similar
issue exists in OpenXRFBUpdateSwapchainExtension. With this commit
both strings are checked.
2026-02-19 13:14:49 +01:00
Thaddeus Crews 2ae60b4108 Merge pull request #116207 from eritschlSC/projection_layer_extension
OpenXR: Add support for projection layer extensions
2026-02-18 17:28:22 -06:00
David Snopek 3f5c5d969f OpenXR: Fix OpenGL initialization with Monado on X11 2026-02-13 11:58:27 -06:00
Erik Ritschl 5d5eb20a91 OpenXR: Add support for projection layer extensions
This commit adds the necessary hooks for OpenXRExtensionWrapper
classes to populate the next chain of the XrCompositionLayerProjection
structure.
2026-02-12 15:48:37 +01:00
Skyth 8fbf2f1e14 Reduce includes to rendering device.
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2026-02-10 16:58:50 +03:00
Thaddeus Crews 7dae5da198 Style: Convert *.gen.inc to *.gen.h 2026-02-05 19:47:56 -06:00
Lukas Tenbrink c5df0cb82b Don't right-align escaped newlines, e.g. for #define. This has previously led to long diffs in the commit history. 2026-02-04 19:31:28 +01:00
Rémi Verschelde 5b75d2539b Merge pull request #115639 from Ivorforce/gdvirtual-includes
Minimize includes from `gdvirtual.gen.inc` / `script_instance.h`, to improve compile time
2026-02-02 10:10:34 +01:00
Rémi Verschelde 63c78e684b Merge pull request #114165 from KoBeWi/static
Use actual class names in resource type hints
2026-02-02 10:10:24 +01:00
Rémi Verschelde c9eb8499ca Merge pull request #113096 from stillmant/enable-headlocking-and-individual-eye-rendering-for-composition-layers
Expose eye visibility controls for composition layers and set XrSpace based on parent type
2026-01-31 22:50:27 +01:00
stillmant 77ecf91008 Expose XrSpace selection and eye visibility controls for composition layers 2026-01-30 21:32:17 -08:00
Lukas Tenbrink f3c7d1d2bf Minimize includes from gdvirtual.gen.inc / script_instance.h, to improve compile time. 2026-01-30 17:47:13 +01:00
David Snopek 9c82d5d8fc OpenXR: Don't add frame synthethesis as projection views extension unless enabled 2026-01-29 16:20:52 -06:00
kobewi f7b9703cbd Use actual class names in resource type hints 2026-01-29 21:07:56 +01:00
Ashwin Balasubramaniyan a182e18211 Implement support for XR_EXT_user_presence extension 2026-01-28 21:39:43 +00:00
Bastiaan Olij 34a0ab7de4 OpenXR: change profile name for Valve Frame Controller 2026-01-15 07:52:29 +11:00
Bastiaan Olij 12764858d3 OpenXR: When visibility mask extension does not return a mask, don't create a mesh 2025-12-19 16:02:34 +11:00
Rémi Verschelde 67c579bcef Merge pull request #113713 from Mrfanta-stick/fix-openxr-gltf-dependency
Fix OpenXR build failure when glTF module is disabled
2025-12-12 17:13:05 +01:00
Mrfanta-stick 70727f46fd Fix OpenXR build failure when GLTF module is disabled
Wrap OpenXR render model classes with MODULE_GLTF_ENABLED guards since
they depend on the GLTF module. Include modules_enabled.gen.h
unconditionally to ensure proper module detection across all build
configurations.
2025-12-12 14:01:06 +01:00
Thaddeus Crews 83934a55db Merge pull request #113824 from BastiaanOlij/openxr_use_dpad_constant
OpenXR: Use the DPAD extension constant
2025-12-10 18:10:29 -06:00
Bastiaan Olij a4a2de5a0e OpenXR: use the DPAD extension constant 2025-12-10 10:05:33 +11:00
Bastiaan Olij a2a38102dc Add Steam to the description of the Steam frame controller 2025-12-10 08:53:06 +11:00
Rémi Verschelde 5e3fb0d6c6 Merge pull request #113788 from BastiaanOlij/fix_openxr_android_surface_ext
OpenXR: Only obtain `xrCreateSwapchainAndroidSurfaceKHR` extension if available
2025-12-09 17:18:02 +01:00
Bastiaan Olij 9f4db24ef4 OpenXR: only obtain xrCreateSwapchainAndroidSurfaceKHR pointer if extension is available 2025-12-09 15:57:30 +11:00
Bastiaan Olij 58ae0b5129 OpenXR: Add Valve Frame controller support 2025-12-09 15:06:32 +11:00