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

[DRAFT] Implement XR_META_recommended_layer_resolution extension #226

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

devloglogan
Copy link
Collaborator

Adds an extension wrapper implementation of XR_META_recommended_layer_resolution.

The extension can be enabled via project settings. When enabled, the extension will dynamically update the rendered image resolutions at a resolution of less or equal size to the initial swapchain size. I've primarily tested this just by spawning enough cube mushes in the demo project until FPS starts taking a hit, at which point the runtime will typically begin recommending lower resolutions as more cubes are added.

This PR relies on godotengine/godot#99407, so I'll keep it as a draft until those changes are merged.

@dsnopek
Copy link
Collaborator

dsnopek commented Nov 18, 2024

I did some testing with this on Quest 3, and saw really great performance gains!

In my rendering benchmarking project, it gathers some metrics at 3 different "markers" in the scene, one of which usually drops down to 55fps (from the target 72fps which all the other markers reach). However, when running it with this extension enabled, it keeps a steady 72fps (at the cost of visibly losing resolution, but it's not terrible). I added some print statements and I can see it scaling the resolution down at that marker, and then scaling it back up at the next.

This is really cool! :-)

The code in the PR looks good to me as well.

Copy link
Collaborator

@m4gr3d m4gr3d left a comment

Choose a reason for hiding this comment

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

Looks good!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants