Search Issue Tracker

Fixed in master

Votes

2

Found in [Package]

7.1.2

Issue ID

1197958

Regression

No

[XR][Oculus Quest][Oculus Go][URP] MSAA isn't applied until eye textures are relocated by changing their resolution

Package: Scriptable Render Pipeline Universal

-

Repro steps:
1. Open attached project
2. Build and Run on Oculus Quest/Go
3. Observe the display
4. Press the B button followed by A which relocates the eye textures

Actual: MSAA is applied only after changing the resolution of the textures

Reproducible with: 2020.1.0a19 Universal RP 7.1.7

Comments (4)

  1. 0cdddaf4d314ec65a975fd16ca096a1a?d=mm

    dansopanso

    Apr 29, 2021 22:15

    not sure why this is set to "fixed" because still a lot of people seem to have issues with this.
    this one worked for me:

    Unity 2019.4.19
    URP 7.5.2

    yourproject\Library\PackageCache\com.unity.render-pipelines.universal@7.5.2\Runtime\UniversalRenderPipelineCore.cs

    change code from

    static RenderTextureDescriptor CreateRenderTextureDescriptor(Camera camera, float renderScale,
    bool isStereoEnabled, bool isHdrEnabled, int msaaSamples, bool needsAlpha)
    {
    RenderTextureDescriptor desc;
    GraphicsFormat renderTextureFormatDefault = SystemInfo.GetGraphicsFormat(DefaultFormat.LDR);
    // NB: There's a weird case about XR and render texture
    // In test framework currently we render stereo tests to target texture
    // The descriptor in that case needs to be initialized from XR eyeTexture not render texture
    // Otherwise current tests will fail. Check: Do we need to update the test images instead?
    if (isStereoEnabled)
    {
    desc = XRGraphics.eyeTextureDesc;
    renderTextureFormatDefault = desc.graphicsFormat;
    }

    TO

    static RenderTextureDescriptor CreateRenderTextureDescriptor(Camera camera, float renderScale,
    bool isStereoEnabled, bool isHdrEnabled, int msaaSamples, bool needsAlpha)
    {
    RenderTextureDescriptor desc;
    GraphicsFormat renderTextureFormatDefault = SystemInfo.GetGraphicsFormat(DefaultFormat.LDR);
    // NB: There's a weird case about XR and render texture
    // In test framework currently we render stereo tests to target texture
    // The descriptor in that case needs to be initialized from XR eyeTexture not render texture
    // Otherwise current tests will fail. Check: Do we need to update the test images instead?
    if (isStereoEnabled)
    {
    desc = XRGraphics.eyeTextureDesc;
    desc.msaaSamples = msaaSamples;
    renderTextureFormatDefault = desc.graphicsFormat;
    }

  2. F9440774552a4e4217bc66136867b935?d=mm

    Lyje

    Mar 27, 2021 16:56

    Broken in 2019.4.22f1 with URP 7.5.3. Have to force backbufferMsaaSamples in ForwardRenderer.cs to fix.

  3. 1699bd9fef52b3efc329b78d440eb7ed?d=mm

    Tom_3D

    Jan 04, 2021 00:11

    fix didn't work

  4. F4a7a2f9cc04d71b9612c8bd515405c3?d=mm

    Incode

    Jan 23, 2020 01:50

    This is a work around reported from QA to fix this issue. It can be attached to any gameobject.

    public class AAFix : MonoBehaviour{

    void Start() {
    StartCoroutine("Fix");
    }

    IEnumerator Fix() {

    UnityEngine.XR.XRSettings.eyeTextureResolutionScale = 0.5f; // Any value, just to trigger the refresh
    yield return new WaitForEndOfFrame(); // Needed to apply the changes
    UnityEngine.XR.XRSettings.eyeTextureResolutionScale = 1f; // Use your target resolution here
    Destroy(this);
    }
    }

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.