Search Issue Tracker

Active

Under Consideration for 6000.1.X, 6000.2.X

Fixed in 6000.3.0a1

Votes

2

Found in

6000.1.0a9

6000.2.0a1

6000.3.0a1

7000.0.0a1

Issue ID

UUM-91516

Regression

No

[Android] [UIToolkit] FPS drops/increase in time consumption in the UI Toolkit rendering when adding "style.backgroundColor" and/or "style.backgroundImage" to the VisualElement

-

How to reproduce:
1. Open the “UIToolkitPerformance.zip“ project
2. Open the “TestScene“
3. Build and Run for Android (Development Build)
4. Connect the Profiler to the Device

Expected result: No large increase in the time consumption for the rendering process
Actual result: A large increase in the time consumption for the rendering process when adding background color and/or texture

Reproducible with: 2021.3.47f1, 2022.3.55f1, 6000.0.32f1, 6000.1.0a9

Reproducible environment: macOS 15.1.1 (Intel), Windows 11 (Reporters)
Not reproducible environment: No other environment tested

Reproducible with these devices:
VLNQA00178, Xiaomi Redmi Note 4 (Redmi Note 4), Android 6.0, CPU: MediaTek Helio X20 MT6797M, GPU: Mali-T880
VLNQA00107, Huawei Nexus 6P (Nexus 6P), Android 8.1.0, CPU: Snapdragon 810 MSM8994, GPU: Adreno (TM) 430

Not reproducible with these devices:
VLNQA00511, Samsung Galaxy S8 (SM-G950F), Android 9, CPU: Exynos 9 Octa 8895, GPU: Mali-G71
VLNQA00335, Samsung Galaxy S20+ 5G (SM-G986B), Android 10, CPU: Exynos 990, GPU: Mali-G77
VLNQA00518, Google Pixel 4 (Pixel 4), Android 13, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640
VLNQA00152, Huawei P9 (EVA-L19), Android 7.0, CPU: HiSilicon Kirin 955, GPU: Mali-T880
VLNQA00535, iPhone XS (MT9F2ET/A), CPU: Apple A12 Bionic, GPU: Apple designed, OS: 17.6.1
VLNQA00600,  iPad Pro (9.7 inch, WiFi), CPU: Apple A9X, GPU: Apple designed, OS: 14.8

Notes:
- Not reproducible in the Editor or Standalone
- Reproducible with both OpenGLES3 and Vulkan Graphic API
- The reporter pointed out that the issue is coming from the “UnityUIE.cginc“ file, where the extensive branching (particularly when selecting texture) creates performance issues on some older Android devices
- More information in the comments

  1. Resolution Note (fix version 6000.3.0a1):

    We're adding UsageHints.LargePixelCoverage which should be used on VisualElements that cover a large area of the screen (e.g. panel background). When this hint is used, the drawing commands of the VisualElement will use a specialized shader that is more GPU friendly. This specialized shader removes most of the shader branches that are not used by the draw call. This will break the batch though, so there is some CPU trade-off, but the GPU benefit can be significant on low-end devices. The performance gain might be limited on high-end devices and desktop/console but could still make a difference.

Comments (1)

  1. kinseythomasguadalupe

    Dec 19, 2024 06:58

    Tkinfolks voted

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.