Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meta Quest 2 / 3 support #219

Merged
merged 3 commits into from
Jul 25, 2024
Merged

Meta Quest 2 / 3 support #219

merged 3 commits into from
Jul 25, 2024

Conversation

RevoluPowered
Copy link
Collaborator

@RevoluPowered RevoluPowered commented Jun 25, 2024

Replaces #193

What does this do:

  • Major engine upgrade to a much newer version of Godot Engine, with the fixes we helped with on the meta quest 3. (https://github.com/the-mirror-gdp/godot/tree/gordon/rebase-rc-2 to be merged)
  • Adds performance advantages for quest2/quest3 and low end hardware.
  • In theory fixes the intel crashing issues thanks to us removing our blur shader for the UI. (it was a huge performance hit)
  • Allows the Game UI to be used from within VR, renders all existing UI. (Doesn't allow the build menu but this was out of scope for this work)
  • Ensures the player is not visible for themselves on the local client, this will ensure no weird clipping happens.
  • The mirror can run in standalone mode on the quest 2 and quest 3.
  • Android doesn't flicker anymore. (Thanks to the godot team for their amazing help ❤️) Use a spec constant to control whether the MultiMesh branch is used in the vertex shader. godotengine/godot#94289
  • GameUI had to be moved to GameUI.instance as GameUI.instance is set based on if you are using VR or if you are using the Desktop UI, they are very different. GameUI.instance is useful because it ensures that you point at the correct UI and that you don't need to delete/readd the game UI, this was a major refactor and hugely painful to get working, there may be issues we do not know about without wider testing.
  • Moves all settings across to our user settings, things that don't have a setting are currently disabled (this is a bug and should be fixed before merge)
  • Forces glow and various graphical settings off when using VR, this is because it must be disabled officially any post processing except MSAA should be disabled for VR, baring foveation and some settings under OpenXR.
  • Removes the GameUI autoload and replaces it with the GameUI singleton using GameUI.instance.

Bugs noticed in testing the builds in the PR:

  • Project Quality settings need to be fixed the quality settings are forcing low quality details.
  • Ensure I do not store the empty test account details in the UI elements (purposefully used an empty account so it could be deleted later

Copy link

vercel bot commented Jun 25, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

1 Skipped Deployment
Name Status Preview Comments Updated (UTC)
mirror-docs ⬜️ Ignored (Inspect) Visit Preview Jul 25, 2024 10:11pm

@RevoluPowered RevoluPowered changed the title Gordon/fixed vr working Meta Quest 2 / 3 support Jun 25, 2024
@RevoluPowered RevoluPowered force-pushed the gordon/fixed-vr-working branch 2 times, most recently from 85428b4 to f395ef9 Compare July 3, 2024 15:53
@RevoluPowered RevoluPowered force-pushed the gordon/fixed-vr-working branch from b56187b to 9afe7c7 Compare July 15, 2024 17:55
@RevoluPowered RevoluPowered force-pushed the gordon/fixed-vr-working branch from 4d9237a to f16e5be Compare July 19, 2024 23:05
@RevoluPowered RevoluPowered marked this pull request as ready for review July 23, 2024 18:31
mirror-godot-app/art/environments/physical_clouds_sky.tres Outdated Show resolved Hide resolved
mirror-godot-app/art/environments/physical_sky.tres Outdated Show resolved Hide resolved
mirror-godot-app/player/cameras/camera_manager.gd Outdated Show resolved Hide resolved
mirror-godot-app/player/cameras/camera_manager.gd Outdated Show resolved Hide resolved
mirror-godot-app/ui/game/GameUIStatic.gd Outdated Show resolved Hide resolved
mirror-godot-app/ui/notifications/notify.gd Show resolved Hide resolved
scripts/compile.sh Outdated Show resolved Hide resolved
@RevoluPowered
Copy link
Collaborator Author

RevoluPowered commented Jul 23, 2024

  • MacOS build cannot be opened....

Fixed by renaming the executable to The Mirror Dev

@RevoluPowered
Copy link
Collaborator Author

We need to remove the debug shapes I added to the world for renderer tests.

Add engine builds to the-mirror repo as i need the debug_template for the headset

Fix env

Remove binary stripping from android

Android template zip fix

fix artefact name

GameUI must use a singleton from now on to ensure we can add the UI to a SubViewport

The SubViewport is used only for VR Mode and it will add optional VR nodes.
I successfully avoided needing to write a lot of await code with GameUI.instance.get method which is great

Format fixes

Fix the commit hash

Fix error spam

disable code that isn't working

Fix viewports so they can work for VR/NonVR mode with proper XR projections

We'll be using an OpenXR composition layer for the Game UI to ensure its clear and concise.

We can probably also package the game without the VR dependencies in certain contexts.

I fixed a few other bugs in the code that kept spamming.

Fix the default settings

Add basic VR menu controller - no movement.

Add proper configuration handler for the subviewport for the game

Ensure git ignore works all of the time

Add VR Controller for the main menu

Fix exports to CICD and Fix VR support for the occulus again...

Fix settings in export and fix bug with the XR viewport

Revert hash

Fix notifications

Disable passthrough

Fix resolution for VR viewport

Fix get node command

Fix vr controllers

stash everything

fix msaa crash

refactor vr into less viewports

stashing misc testing

Use construction time set up of the GameUI nodes because we can prevent race conditions now completely

Fix XR MSAA X2

Stash Preview Changes for the meta quest developers, also fixed a few issues


upgrade submodule

msaa quest fix test

Update submodule with latest 4.2

Experimental code change

extra preset settings

Fix player visibility

Update with working quest 3 support

stash format fixes

Fix engine binary links

Add ninja

Add explicit exit code

test ninja

ninja test

ninja fixes

fix

fix ninja-build

test

Upgrade OpenXR

Upgrade engine hash again

format fix

Remove engine build from cicd scripts

Remove OpenXRVendors on all platforms until we have CI for this
@RevoluPowered RevoluPowered force-pushed the gordon/fixed-vr-working branch from fe4bf44 to 7f1250b Compare July 25, 2024 22:04
Copy link
Contributor

@Kluskey Kluskey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot-2024-07-25-000727@2x
Approving assuming your comments are resolved. Thank you for your hard work on this!!

@RevoluPowered
Copy link
Collaborator Author

Screenshot-2024-07-25-000727@2x Approving assuming your comments are resolved. Thank you for your hard work on this!!

Yeah the issue with the Mac build was just the naming on my mac, if you rename The Mirror Dev to The Mirror Dev 3 it wont launch

@RevoluPowered RevoluPowered force-pushed the gordon/fixed-vr-working branch from d04ae98 to d6fcbf9 Compare July 25, 2024 22:10
@RevoluPowered RevoluPowered merged commit 25d61f5 into dev Jul 25, 2024
8 checks passed
@RevoluPowered RevoluPowered deleted the gordon/fixed-vr-working branch July 25, 2024 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants