-
Notifications
You must be signed in to change notification settings - Fork 26
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
Implement XR_META_recommended_layer_resolution extension #226
Conversation
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. |
c18a456
to
d4bf10c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
plugin/src/main/cpp/extensions/openxr_meta_recommended_layer_resolution_extension_wrapper.cpp
Outdated
Show resolved
Hide resolved
d4bf10c
to
46739c7
Compare
Opening this since godotengine/godot#99407 was merged :) |
@devloglogan Could you rebase on |
46739c7
to
a3813d4
Compare
@dsnopek rebased :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
I just tested the latest version of this on Meta Quest 3 with my rendering benchmarking project, and it's working great with Godot 4.4-beta1! With recommended layer resolution turned on, I'm still seeing a steady 72 FPS (at the cost of visibly lower resolution) when going to the marker that usually has 55-60 FPS.
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.