OpenXR: Emulated alpha blend mode should override the real blend mode #103338
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Back in PR #87630 (released with Godot 4.3), we added the ability for GDExtensions to "emulate" the alpha blend mode, so that passthrough could be enabled via the standard OpenXR way on all headsets, even those that don't have real support for alpha blend mode.
For example, we have the
XR_FB_passthrough
andXR_HTC_passthrough
extension in the 'godot_openxr_vendors' GDExtension, that will emulate it on Meta and HTC headsets.However, this can cause some problems on headsets that support both the alpha blend mode and one of the passthrough extensions. For example, Pico headsets support
XR_FB_passthrough
and a real alpha blend mode.The current code in Godot favors the real blend mode, and report that it's using that, even if an extension has told Godot that it is emulating it. This PR reverses that.
This is because the extensions can support more features than just turning passthrough on and off (which is all the alpha blend can do). So, the idea is, if one of the passthrough extensions is enabled and doing emulation, that should be used rather than the real alpha blend mode.