Quest + LWRP/URP: MSAA not working

,

Pretty much as the title says, I’m using Unity 2019.2.14f1, Oculus Integration 1.43, LWRP 6.9.1.
Setting MSAA in the LWRP settings to any value (2x, 4x, 8x) does nothing. All cameras have MSAA set to Use Pipeline Settings. OVRManager has Use Recommended MSAA set to false. I’m not using any PostProcessing package. What am I missing?

EDIT: not totally working either on 2019.3.0f3 + URP, see later replies.

1 Like

MSAA is currently unsupported in LWRP in VR.

1 Like

So there is no way of having antialiasing with LWRP and VR? MSAA is the only antialiasing option available as far as I can tell, when using LWRP.

Strange, I’ve used it with LWRP and now with URP in exactly that way, camera set to use pipeline, ovrmanager to false, URP asset set to 8x, works fine. Check that the camera you’re rendering from is tagged Main Camera, make sure your render pipeline asset is also set in Quality project settings under Rendering (not just Graphics Settings) although I doubt it should matter.

I used this trick for a bit then it stopped working on some update. It’s hard to know which versions are compatible with each other… out of interest which LWRP / Unity / OVR version mix are you getting this to work with?

I had set everything exactly like that, it just won’t work. Actually not even Post Processing antialiasing is working… I’m left with no choice to revert to default pipeline then? It escapes me why we should even use LWRP in VR if no form of antialiasing is working.
Unless this depends on the stereo rendering mode? I’m using Single Pass now.
EDIT sorry, I’m using Multiview. Single Pass renders the right eye deformed, and Multi Pass doesn’t render the right eye at all (still in both cases AA didn’t work).

My current setup with MSAA working:
Unity 2019.3.0f1
URP 7.1.6
Relevant URP settings:
Depth texture on
HDR off
MSAA 4x
Render Scale 1
Main Light per pixel, Cast shadows on, 1024 res with no additional lights.

Not using OVRManager:
Tracked Pose Driver on a camera with settings:
Renderer set to URP_Renderer in the dropdown
Opaque + Depth texture “Use Pipeline”
HDR, MSAA “Use Pipeline”

If using OVRManager:
Use Recommended MSAA off.
Same camera settings as above.

4 Likes

Thanks a lot. I’d like to avoid updating to 2019.3 and to URP in this moment because I’ve already spent a lot of time trying to get things working rather than working on the actual game… I guess I’ll do it later. I had all sorts of issues with Quest and 2019.3 beta previously, might need to check again what changed for the final release.

I wouldn’t recommend it yet, both multiview and multipass are broken, but MSAA is definitely working. I was using exactly the same setup in 19.2.12 LWRP before porting to URP, and it worked then too.

ahh… must be a 2019.1 problem

Oh god, I’ve just noticed I mistyped the very first post and didn’t precisely specify what version I was using… Fixed it now. My version, where AA is not working, is 2019.2.14f.

I am running into this bug with URP 7.1.6 and Unity 2019.3.0f1 as well. MSAA was working for me in previous versions of the LWRP on 2019.2. Submitted it as bug 1204783.

I noticed that after upgrading to the current URP and Unity versions, the camera was creating a depth texture in builds even though we had depth texture turned off in the URP settings. I edited ForwardRenderer.cs to force it to skip the depth and intermediate textures, and found that XR.XRSettings.eyeTextureDesc.msaaSamples is always “1” even after changing antialiasing settings, forcing QualitySettings.antiAliasing to higher values and calling XR.XRDevice.UpdateEyeTextureMSAASetting, etc.

1 Like

Still no sign of working in 2019.2.16f. Really isnt’ there any solution to this? It was working properly with early 2019.2 versions. Can we at least have a sign from the Unity team?

Well, managed to update and get my game working on 2019.3.0f3, with the same identical settings as below, and antialiasing is still not working on Quest. There must be some other undocumented options that influence this, it can’t randomly decide to just not work anymore.

1 Like

It’s possible that you need this to trigger, but it isn’t? https://github.com/Unity-Technologies/ScriptableRenderPipeline/blob/release/2019.3/com.unity.render-pipelines.universal/Runtime/ForwardRenderer.cs#L353

And that is possibly because you need to get that scripting define symbol set in the package? (VR_ENABLED).

It’s very confusing. I’ve asked about it over here . I don’t know where URP stands anymore, honestly. Maybe it’s not meant to be ready for use in VR yet.

2 Likes

I managed to get some results.

  • Added VR_ENABLED flag in Scripting Define Symbols as suggested by Claytonious.
  • Enabled XR Plugin Management from Project Settings.
  • Installed the Oculus XR Plugin from the dedicated panel under XR Plugin Management.
  • Installed Input Helper 1.3.8, always from there.
  • Set Stereo Rendering Mode to Multiview (Multi Pass makes the right eye render all black).
    If I Build and Run the game, antialiasing works perfectly. If I close the game and launch it from the Oculus dashboard, antialiasing is no more.

Note that I’m still using the original components from the official Oculus plugin I had in 2019.2 (OVRCameraRig/OVRManager). Head/hand tracking and input are still working, luckily.

EDIT: compiled again, same settings, antialias is not working on launch. It’s literally the guessing game.

EDIT2: deleted URP package, reinstalled again without changing anything, clicked build and run, and MSAA works. Closed the game, launched it from Oculus dashboard, MSAA doesn’t work anymore once again.
What’s the difference between launching the game via Unity and via system dashboard?

EDIT3: submitted ticket number 1206060.

2 Likes

Any update on this? I am tired trying to remove the flickering edges on Quest.

Not yet unfortunately, waiting for replies to the ticket at the moment. I also asked in a couple of Discord servers, without luck.

They have released Beta version of 2020. Maybe we can try that version to see if there are any changes.

I really just hope they will fix this in 2019.3.0f4, or at least provide some workaround I can use on the current version. I’d rather not switch to a whole new major release considered the state of things now , and most likely never update again once all things work as I expect.