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
- Variable is set to a different value from the selected enum value in the Editor dropdown
- TreeView Child display toggle styling becomes reversed when clicking and dragging it
- Null is returned when using FocusOutEvent.relatedTarget
- Unity_BaseInstanceID is always zero when rendering multiple meshes and instancing with the same buffer
- UI Document button's text does not resize relatively when size in percentage (%) is used
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.