Search Issue Tracker
By Design
Votes
0
Found in [Package]
8.1.0
Issue ID
1244069
Regression
No
[Mobile][URP] Texture loses reflections when project is built to mobile device
How to reproduce:
1. Open the attached 'Planar Reflection Bug.zip' project
2. Open 'SampleScene' Scene and observe 'Puddle' GameObject's texture reflections
3. Build for iOS and deploy the Xcode project to the device
Expected result: Texture's surface is reflective
Actual result: Texture's surface loses reflections
Reproducible with: 2019.3.13f1(7.3.1, 8.1.0), 2020.1.0b8(8.1.0), 2020.2.0a10(7.1.8, 8.1.0)
Could not test with: 2018.4.22f1(undeclared identifier '_BaseMap_ST' in shader)
Reproducible with:
- iPhone 8 Plus (iOS 12.0)
- iPhone XR (iOS 13.4.1)
- iPad Air 2 (iOS 11.0.3)
- VLNQA00052, Xiaomi MI MAX (MI MAX), Android 7.0, CPU: Snapdragon 617 MSM8952, GPU: Adreno (TM) 510
- VLNQA00069, Motorola Moto G (5) Plus (Moto G (4)), Android 7.0, CPU: Snapdragon 617 MSM8952, GPU: Adreno (TM) 405
Not reproducible:
- Mac, Windows Standalone
- VLNQA00314, Lge Nexus 5X (Nexus 5X), Android 8.0.0, CPU: Snapdragon 808, GPU: Adreno (TM) 418
- VLNQA00320, Xiaomi - (Redmi Note 8 Pro), Android 9, CPU: MediaTek Helios G90T MT6785T, GPU: Mali-G76 MC4
Notes:
- Screenshots of the issue attached in Edit
- Reproducible with Metal and OpenGL
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Texture2D hash changes inside of an AssetBundle when rebuilding a SpriteAtlas bundle with an empty AssetPostprocessor Script enabled
- Aniso Level still applies when Generate MipMap is disabled in Texture Import Settings
- Mipmap Limit Groups long names are not truncated when creating a new Mipmap Limit Group with a long name
- “ArgumentException: Invalid double parameter.” error is thrown when Infinity is typed into the Fixed Timestep field
- GameObject becomes gray when using HDRP and STP together on macOS
Resolution Note:
This happens on mobile phones due to depth buffer having undefined (DontCare load action) values and failing the ZTest and not rendering anything into Reflection RT. The values of undefined depth buffer is not consistent across platforms, so it would explain why it works on Editor and not on iOS.
To avoid this you can do it two ways - if you are not planning to use depth buffer - make the depth buffer bit count 0 in the RenderTexture ctor or set the ClearFlag.All in your custom pass which will ensure the depth buffer was cleared and there won't be any problems