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
- [Dragon Crashers] Build fails in U6
- [Dragon Crashers] 4 Shader error messages on import
- [Dragon Crashers] Readme text is white on light grey
- Cursor stays in front of the first character when entering text in the TextMeshPro field
- Searching in Hierarchy causes unwanted component calls
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