Vision OS 2.0 - Graphics are low res on BiRP metal passthrough

Got my XR app running on Vision 2, metal with passthrough on built in render pipeline. But the graphics are maybe a little better than Super Nintendo quality :smiley:

The graphics are very pixelated, the passthrough is sharp though.
Why is this? because we don’t have foveated rendering on BiRP?.

It’s useless as is, can we at least configure the amount of pixelation?

On Unity 6, Vision XR plugin 2.0 pre-11

Hi there! Sorry to hear that you’re having trouble.

Yep. This is also the case on visionOS 1 and Unity 2022.3. Foveated rendering is only supported when using URP.

Unfortunately, no. We don’t control the resolution of the framebuffer, and it is forced down to this lower resolution when foveation is disabled. Your only option is to use URP with foveation enabled.

Thanks for your feedback and please let us know if you encounter any other issues. I encourage you to also share this feedback with Apple about the quality of non-foveated rendering. They will probably tell you to just use foveated rendering, but it’s important for them to hear the feedback that the non-foveated resolution is unacceptably low. For what it’s worth, I agree with you on that. :slight_smile:

I don’t know how to reach Apple, it would be great if your team relayed our concerns to them.

The thing I’d like you to tell Apple, is that first of all we pay a premium to be able to develop for Vision Pro to Unity, so we expect better.

I appreciate that we can use BiRP to develop for Vision OS, however it’s so low res that it defeats the entire purpose of porting to this platform (high res is the highlight)

Apple should understand, that folks using BiRP are extremely likely porting old projects to Vision OS, not starting new ones. Old projects compare to old platforms, IE: Quest, Hololens2, etc. Those platforms have much less processing power than Vision OS, we could DEFINITELY have higher resolution and still be comparable to those systems (which is what we try to achieve).

As is, if we make this port it will look WAY worse than Quest, doesn’t look good on them or us.

You can use the Feedback Assistant on macOS (type ā€œfeedbackā€ into Spotlight or find it under /Applications/Utilities). It’s available on visionOS as well but it’s a little harder to find in non-beta OS versions. We have certainly given them the feedback that the non-foveated framebuffer resolution is too low, but direct feedback from developers is a much stronger signal.

To be clear, a significant portion of the issue comes from Unity. While Apple enforces the low-resolution frame buffer, the fact that we can’t enable foveated rendering on BiRP is a Unity problem. After we learned about this issue (low resolution without foveation), we investigated and determined it would be infeasible to backport foveated rendering to the built-in pipeline. If you would like us to re-consider this decision, please vote on the visionOS roadmap for adding foveated rendering support on BiRP. Please indicate whether this is something you would need in 2022.3 LTS or if you are able to upgrade to Unity 6. I don’t want to get your hopes up. It is highly unlikely that we take on this work, but if there is overwhelming user demand, we may consider it.

On the other hand, it may be more fruitful to work together and try to upgrade your project to URP. I know this is likely to be a painful process, but I’m trying to be realistic about possible outcomes here. I can’t speak for Apple, but I’m not optimistic about them changing the resolution for non-foveated rendering, either. It may well be the case that, even if you were able to render at a higher resolution, you would hit frame rate limitations.

I know this is frustrating. I wish I could wave a magic wand and give you foveated rendering on BiRP. And I know that just asking you to upgrade is another form of magical thinking, but I think in this case it’s our best option. I’d be happy to hop on a call with you at some point to dig a little deeper into your concerns or connect you with @IsaacsUnity, our Product Manager for visionOS to hear more about your problems and discuss potential solutions. Ultimately, we succeed when you succeed, and that happens when we work together.

1 Like

Ran across this when looking into resolution issues in a BIRP Metal VisionOS project. Is this still the case that foveated rendering is still not available in BIRP? And is it still unlikely to happen? Converting our legacy project to URP is likely to be painful if not impossible.

We are using Unity 6 and wouldn’t need it on any earlier versions. And I commented in the visionOS roadmap under the Foveated Rendering topic.

Hi there! Unfortunately, yes. URP is still required for foveated rendering, and we don’t have plans to implement it in BiRP. Thank you for contributing to the visionOS roadmap and providing your feedback here.

Could you share more about what is blocking you from converting to URP? We may be able to provide some advice or incorporate this feedback into future versions to make the conversion process easier.

We have hundreds of custom shaders that I assume will make the conversion to URP prohibitively time consuming, especially while trying to maintain consistent lighting with the current BIRP version. To be fair, we haven’t attempted this process yet, so maybe it is doable, but I’m not optimistic.

Yeah that’ll be a challenge depending on how they’re written. Some may ā€œjust workā€ but there are sure to be a few that need to be updated. I wish I had better answers for you, but we’re stuck with this situation for the foreseeable future.