Search Issue Tracker

Won't Fix

Votes

2

Found in

2022.3.65f1

6000.0.55f1

6000.2.0f1

6000.3.0a4

6000.4.0a1

Issue ID

UUM-113826

Regression

No

[Android][Vulkan] Application crashes with out of memory when warming up a specific shader on some of the Adreno devices

-

How to reproduce:
1. Open the “Repro.zip“ project
2. Open the “SampleScene“
3. Build and Run for Android
4. Press the “WarmUp 1000“ button
5. Wait for a few seconds

Expected result: Application does not crash
Actual result: Application crashes due to running out of memory

Reproducible with: 2022.3.13f1, 2022.3.65f1, 6000.0.55f1, 6000.1.15f1, 6000.2.0f1 (eed1c594c913), 6000.3.0a4
Could not test with: 2021.3.55f1, 2022.1.0a15, 2022.2.0a5 ("ShaderVariantCollection.WarmUpProgressively" is not available and is required for reproduction), 2022.3.0f1 (Build fails with error "CommandInvokationFailure: Failed to update Android SDK package list.")

Reproducible environment: macOS 15.4.1  (M4 Max)
Not reproducible environment: No other environment tested

Reproducible with these devices:
VLNQA00344, Note20 Ultra 5G USA (SM-N986W), CPU: Snapdragon 865 SM8250, GPU: Adreno 650, OS: 11
VLNQA00368, Galaxy Z Fold2 5G (SM-F916B), CPU: Snapdragon 865 SM8250, GPU: Adreno 650, OS: 11
VLNQA00375, Galaxy S21 Plus 5G (SM-G996U), CPU: Snapdragon 888, GPU: Adreno 660, OS: 11 (silently crashes)
VLNQA00481, Samsung Galaxy S20 FE 5G (SM-G781B), CPU: Snapdragon 865 SM8250, GPU: Adreno 650, OS: 11 (silently crashes)
VLNQA00319, Google - (Pixel 4), Android 13, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640 (Silently crashes)

Not reproducible with these devices:
VLNQA00335, Samsung Galaxy S20+ 5G (SM-G986B), Android 10, CPU: Exynos 990, GPU: Mali-G77
VLNQA00640, Samsung Galaxy S25 Ultra (SM-S938B), CPU: Snapdragon 9 Elite (SM8750), GPU: Adreno 830, OS: 15
VLNQA00642, Google Pixel 9a (Pixel 9a), CPU: Google Tensor G4 (GS401), GPU: Mali-G715, OS: 15
VLNQA00629, Galaxy S25 (SM-S931B), CPU: Snapdragon 9 Elite (SM8750), GPU: Adreno 830, OS: 15

Notes:
- Reproduces with Vulkan only, does not reproduce with OpenGLES3 Graphic API
- It might require you to repeat steps 4 and 5 a few times to reproduce the issue
- If the issue does not reproduce for the first one/two times, close the app and open it again, it will reproduce

  1. Resolution Note:

    The shader used by the user has significant memory requirements to be loaded into GPU memory. With the addition of over 1,000 variants, the application reaches the Android process memory limit, resulting in an out-of-memory error. Adreno devices referenced in the report, such as the Samsung S10 and S20, include a feature to track internal Vulkan object memory. Devices lacking this feature obscure memory usage details, often displaying lower usage figures. Our internal testing indicates that this crash is independent of GPU vendor. Currently, depending on GPU drivers, a shader may request up to 6 MB of memory to be loaded. We recommend rewriting the generic custom shader into multiple, more specific shaders.

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.