Search Issue Tracker

Won't Fix

Unknown (hidden) 2020.3.X

Votes

0

Found in

2020.3.34f1

Issue ID

UUM-2214

Regression

No

[Backport] [URP] Background Type is rendered as Solid Color on secondary Camera when it is set to Uninitialized and built to And

--

-

Reproduction steps:
1. Open the attached Unity project "Issue.zip"
2. Go to Assets > Scenes and open the "SampleScene.unity" Scene
3. Go to Build Settings and select Android Platform
4. Build and install the application on a device
5. Open the application on a device and observe the background color

Expected result: The background color is Default Skybox
Actual result: The background color is green

Reproducible with: 2019.4.34f1, 2020.3.26f1, 2021.2.0b6
Not reproducible with: 2021.2.0b7, 2021.2.8f1, 2022.1.0b2

Reproduces with these devices:
VLNQA00121 - Samsung Galaxy S9 (SM-G960F), OS: 9.0.0, CPU: Exynos 9 Series 9810, GPU: Mali-G72
VLNQA00006 - Samsung Galaxy S7 (SM-G930F), OS: 8.0.0, CPU: Exynos 8 Octa (8890), GPU: Mali-T880
VLNQA00410 - Galaxy Z Fold3 5G (SM-F926U), OS: 11, CPU: Snapdragon 888, GPU: Adreno 660
VLNQA00404 - Galaxy Z Flip3 5G (SM-F711B), OS: 11, CPU: Snapdragon 888, GPU: Adreno 660
VLNQA00121 - Samsung Galaxy S9 (SM-G960F), OS: 9.0.0, CPU: Exynos 9 Series 9810, GPU: Mali-G72
VLNQA00109 - Xiaomi Mi Note Pro (MI NOTE Pro), OS: 7.0.0, CPU: Snapdragon 810 MSM8994, GPU: Adreno 430
VLNQA00277 - Asus ROG Phone (ASUS_Z01QD), OS: 9.0.0, CPU: Snapdragon 845 SDM845, GPU: Adreno 630
VLNQA00147 - Razer Phone (Cheryl), OS: 8.1.0, CPU: Snapdragon 835 MSM8998, GPU: Adreno 540
VLNQA00358 - iPhone 12, 14.1 iOS
VLNQA00310 - iPad Pro 12.9", 13.4.1 iOS
VLNQA00392 - iPad (9th generation), 15.0 iOS

Notes:
- The issue is not reproducible on Standalone
- The issue is reproducible with Vulkan, OpenGLES3 Graphics APIs
- The issue is reproducible with both Mono and IL2CPP Scripting Backends

  1. Resolution Note:

    this is working as expected.

    uninitialized means that the load action for that specific RenderTarget will be DontCare instead of Load or Clear. This is something that should be used as an optimization when you know that you are going to overwrite all the pixels, otherwise the behaviour is "undefined".

    The reason why the results in most cases will look different between editor and player, is that the Editor doesn't run on TBDR GPUs, so DontCare load actions are effectively no-ops, but on TBDR GPUs you will have uninitialized tile memory and the contents are not defined.

    A quick explanation of the expected undefined behaviour when using "uninitialized" taken from the Vulkan spec:

    VK_ATTACHMENT_LOAD_OP_DONT_CARE specifies that the previous contents within the area need not be preserved; the contents of the attachment will be undefined inside the render area. For attachments with a depth/stencil format, this uses the access type

    this is explained in the documentation and has recently been updated with more details

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.