Search Issue Tracker
By Design
Votes
0
Found in
2019.4
2020.3
2020.3.4f1
2021.2
2022.1
2022.2
Issue ID
1376631
Regression
No
[URP][Android] Graphics memory loads appear each time before rendering the UI when using URP's Camera stacking
Reproduction steps:
1. Open the attached user's project "UI-Perfomance.zip"
2. Build for Android (refer to the additional configurations Configs.png attached image)
3. Connect the Snapdragon Profiler to the device
4. Start a new trace capture
5. Launch the application through Snapdragon profiler and enable Vulkan metrics (See attached Step 5-6.png)
6. Press the "Start Capture" and observe no GMEM loads when using one Camera
7. Restart the Snapdragon Profiler and repeat step 3 through 5
8. In the application press the top right button "1 Camera" to switch to multiple Camera's
9. Press the "Start Capture" and observe GMEM loads when using multiple Camera's
Expected result: Graphics memory loads do not appear each time before rendering the UI when using URP's Camera stacking
Actual result: Graphics memory loads appear each time before rendering the UI when using URP's Camera stacking (See attached Results.png)
Reproduces on: URP 7.7.1 - 14.0.0 (2019.4.36f1, 2020.3.27f1, 2021.2.14f1, 2022.1.0b9, 2022.2.0a6)
Reproducible with these devices:
N/A, Vivo V1924A (V1924A), Android 10, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640
N/A, Samsung - (SM-G991U), Android 11, CPU: Snapdragon 888, GPU: Adreno (TM) 660
Xiaomi Redmi Note 8, Android 10, CPU: Snapdragon 665, GPU: Adreno (TM) 610
Notes:
-Issue reproduces on OpenGLES 3 and Vulkan
-Customer's information "It seems like those loads only occur when using camera stacking where the UI is rendered in the Overlay Camera"
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
- Articulation Body with 'Revolute' Joint Type has erratic behavior when Upper Limit is set to above 360
- WebGL Player fails to render Scene when Terrain with Detail Mesh is added and WebGPU Graphics API is used
- Inconsistent errors are logged when different types are passed into the Query "Q<>" method in UIToolkit and the ancestor VisualElement is null
- Crash on GetMaterialPropertyByIndex when opening a specific Scene
- Discrepancies in the styling are present when using a TSS file instead of a USS file in custom EditorWindow
Resolution Note:
Camera stacking is currently not optimal on TBDR GPUs. This is because, currently, the intermediate results of each camera are stored to the color/depth attachments, and then loaded by the next camera in the stack. This causes the 2 extra loads observed in Snapdragon profiler and is by design.
There are plans of improving the attachments management when using camera stacking as part of ongoing RenderGraph work, so expect performance improvements in future URP versions.