Forum Discussion
ImmersiveMatthew
5 months agoAdventurer
Bug? Severe FFR Glitches & Performance Loss with Unity 6.1 / 6.2 with URP / VULKAN / OpenXR on Quest
Hello everyone,
I'm writing to report and inquire about a significant issue regarding Fixed Foveated Rendering (FFR) on the latest Unity and Meta software stack. After extensive testing, it appears the FFR implementation is causing severe performance degradation and graphical corruption, making it unusable.
Software Stack:
- Unity: 6.1 (6000.1.15f1) and 6.2 (6000.2.f1)
- Render Pipeline: URP 17.0.3
- Graphics API: Vulkan
- XR Backend: OpenXR 1.15.1
- Packages: Meta All-in-One SDK v77.0.0
- Target Device: Meta Quest
The Problem: In a scene that runs comfortably at a stable 90 FPS with ~50% CPU/GPU utilization, programmatically enabling FFR via the standard OpenXR API (XRDisplaySubsystem.foveatedRenderingLevel) causes the following:
- Immediate, severe performance drop to ~40-60 FPS.
- GPU utilization jumps to 90%+.
This behavior occurs even when setting FFR to level 0 and makes the feature actively harmful to performance rather than helpful.
Summary of Debugging Steps: We have confirmed this is not a scene specific performance bottleneck, but a direct result of the FFR API call itself.
- Baseline Confirmed: Disabling the script that calls the API results in a stable 90 FPS with significant performance headroom.
- API Call Isolated: We systematically tested and proved that only the call to XRDisplaySubsystem.foveatedRenderingLevel triggers the issue.
- Explicit Disable Works: Disabling FFR code restores the application to its healthy 90 FPS baseline.
- Attempted Fixes (All Failed): The issue persists across all logical configuration changes:
- Switching the Foveated Rendering API in OpenXR settings between Legacy and SRP Foveation.
- Switching the Depth Submission Mode between None, 16-bit and Depth 24-bit.
- Enabling the Meta XR Foveation feature vs. the generic Foveated Rendering feature.
Conclusion: The standard method for controlling FFR via the OpenXR plugin appears to be fundamentally broken in this software configuration, leading to an unusable result. The only current workaround is to avoid the feature entirely.
Has anyone else encountered this behavior with the recent Unity 6.1 / 6.2 releases? Any insights or confirmations from the community or engineers would be greatly appreciated.
Maybe I need to log this as a bug, but it would be nice to know if others are experiencing too first as a sanity check.
Thank you
Replies have been turned off for this discussion
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 1 month ago
- 2 months ago
- 4 years ago