Commit Graph

130 Commits

Author SHA1 Message Date
0fd0feb772 Minor rendering and XR changes to allow Meta enivornment depth API to work entirely from GDExtension 2025-05-27 13:06:31 -05:00
2ffd5a3913 Merge pull request #104738 from YYF233333/cleanup_rid_owner
Use `LocalVector` in `RID_Owner::get_owned_list`
2025-04-22 10:44:25 -05:00
1a70a06a43 Change RID_Owner::get_owned_list. 2025-04-21 01:04:27 +08:00
e3c215fc13 Add support for Direct3D 12 OpenXR backend.
This change adds support for running XR projects built with the `d3d12`
rendering backend. The XR backend hooks into the setup for the D3D12
render context in order to use the desired device and command queue for
submission to OpenXR. The XR backend takes care of importing the D3D12
swapchain images into the render context.

As part of this process, three issues are addressed:
- Ensuring that resource state transitions are only done on textures
  that require them.
- Enabling view instancing in the PSOs for multiview render passes.
- Addressing a bug in the D3D12 runtime where PSO creation may fail
  when front face detection is used.

Please refer to #86283 for additional discussions on the implementation
details.
2025-04-19 20:39:33 -07:00
98aced4e65 Merge pull request #99768 from dsnopek/openxr-vulkan-foveated-rendering
OpenXR: Use the `XR_FB_foveation_vulkan` extension to get the density map for VRS
2025-04-17 09:14:23 -05:00
79f5a4d9fe OpenXR: Use the XR_FB_foveation_vulkan extension to get the density map for VRS 2025-03-31 07:21:58 -05:00
3b90bb56ad Merge pull request #89782 from KoBeWi/stdArrayList
Use initializer list in Arrays
2025-03-28 17:29:40 +01:00
75881f8322 Use initializer list in Arrays 2025-03-26 18:38:15 +01:00
3f27351f2b OpenXR: Support alternative reference spaces from extensions
Co-authored-by: Fredia Huya-Kouadio <fhuyakou@gmail.com>
2025-03-24 11:33:30 -05:00
9d3c950b5d OpenXR: Clean-up OpenXRExtensionWrapper by removing multiple inheritance and deprecating OpenXRExtensionWrapperExtension 2025-03-20 07:19:55 -05:00
ea62170dac Core: Add constexpr constructors/operators to math structs
• Begin integrating `constexpr` on math tests; use `static_assert` where appropriate
2025-03-17 12:15:31 -05:00
97ee05e9b7 Rename version defines to GODOT_VERSION_* to match GDExtension godot-cpp 2025-03-12 11:11:38 -07:00
d9125ebebe Merge pull request #101293 from Ivorforce/string-to-pointer-conversion
Remove implicit conversions from `String`, `Char16String` and `CharString` to data pointers.
2025-03-07 15:12:12 -06:00
fd622afb1d OpenXR: Emulated alpha blend mode should override the real blend mode 2025-02-26 17:35:03 -06:00
512abc38b2 Remove implicit conversions from String, Char16String and CharString to data pointers. Make conversions to StrRange implicit to aid transition. 2025-01-17 17:31:58 +01:00
c242cef627 Use vectors for OpenXRAPI memory management 2025-01-13 16:10:43 -06:00
3014eec40d Merge pull request #99407 from devloglogan/rec-resolution
Allow using custom `Rect2i` for rendering with OpenXR
2025-01-10 23:05:46 +01:00
e7f6b7ea0b Allow using custom Rect2i for rendering with OpenXR 2025-01-09 09:46:15 -06:00
33817b186f Remove unused header in drivers and modules.
Co-authored-by: Thaddeus Crews <repiteo@outlook.com>
2024-12-24 00:40:47 +08:00
d51fae25a7 Merge pull request #98872 from BastiaanOlij/openxr_khr_metal_enable
OpenXR: Add Metal support
2024-12-16 12:09:47 -06:00
bfc66f0608 Merge pull request #100282 from devloglogan/motion-vectors-openxr
Add renderer motion vectors API for use with OpenXR
2024-12-12 16:13:36 -06:00
0a61ebdcea OpenXR: Add support for binding modifiers 2024-12-12 09:46:19 +11:00
3deb5884d7 Renderer agnostic motion vector rendering/OpenXR changes 2024-12-10 15:59:17 -06:00
08ced813a9 OpenXR: Add Metal support 2024-12-10 11:41:59 +11:00
3de62b8b1b OpenXR: Fix pose recenter signal to be omitted properly 2024-11-13 14:20:06 +11:00
bb5f390fb9 Style: Apply clang-tidy fixes (superficial)
• `modernize-use-bool-literals`, `modernize-use-nullptr`, and `readability-braces-around-statements`
2024-11-04 12:11:14 -06:00
0d350e7108 Set clang-format RemoveSemicolon rule to true
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
daa4704c44 openxr: Correct set the Depth swapchain name
Introduced in 08ffa5d89e.
2024-09-21 10:00:08 +10:00
30a63396e5 Fix launching XR apps from the Android editor 2024-09-11 14:31:54 -05:00
9dc0543da7 Improve support for XR projects 2024-09-06 00:35:50 -07:00
08ffa5d89e Add support for the debug utils extension in OpenXR 2024-08-27 12:07:01 +10:00
11dd1f52ae Fix crash when calling OpenXRAPI::get_hand_tracker() and hand-tracking is disabled 2024-08-22 13:03:05 -05:00
d9ab2c3195 OpenXR: Add support for visibility mask 2024-08-20 10:47:17 +10:00
1371b35b6e Update OpenXR thirdparty library to 1.1.38, changed OpenXR init to stay on 1.0.x 2024-08-07 13:58:05 +10:00
22a6303fa0 OpenXR: Fix enabling passthrough via environment blend mode in project settings 2024-07-19 19:04:51 -05:00
06e81d9fe4 [OpenXR] Fix LOCAL_FLOOR emulation on HTC Vive XR Elite 2024-06-27 14:12:11 -05:00
6582be0c50 OpenXR: Fix updating swapchain for foveation 2024-05-20 12:23:56 +10:00
de654d9846 OpenXR: Fix composition layers not having correct play space 2024-05-07 20:49:46 -05:00
955d5affa8 Reduce and prevent unnecessary random-access to List
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
9042ddf19f Improvements to VRS/Foveated rendering 2024-05-03 17:20:30 +10:00
cbab7dc049 OpenXR: Change timing of xrWaitFrame and add thread safety features to OpenXR 2024-05-01 14:24:41 +10:00
b67eba8399 OpenXR: apply fix for reverse Z 2024-04-10 10:35:19 +10:00
c388fe2ba7 OpenXR: Improve swapchain logic and fix swapchain update when render target multiplier is changed. 2024-04-09 16:56:39 +10:00
0f2b804059 Add support for OpenXR composition layers
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2024-04-04 09:20:23 -05:00
308a6a4734 OpenXR: Allow GDExtensions to provide multiple, ordered composition layers
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2024-03-13 17:53:15 -05:00
713ea0629a Fix crash when using OpenXR extension wrappers from GDExtension 2024-02-22 16:50:39 -06:00
74413f5609 expose OpenXR hand tracker handles 2024-02-19 16:31:10 -06:00
684752e75b Replace error checks against size with is_empty 2024-02-09 12:50:15 +01:00
673f1614c4 Merge pull request #87630 from dsnopek/openxr-passthrough-from-gdextension
OpenXR: Allow moving vendor passthrough extensions to GDExtension
2024-02-03 23:19:24 +01:00
e74a0f4b09 OpenXR: Allow moving vendor passthrough extensions to GDExtension 2024-02-03 12:40:41 -06:00