Search Issue Tracker

Third Party Issue

Votes

0

Found in

2021.3.32f1

2022.3.14f1

2023.2.2f1

2023.3.0a16

Issue ID

UUM-57095

Regression

No

[Vulkan][URP][Shaders] Location mapping is being scrambled when FramebufferFetch is used for a shader which results in a Crash on Android

--

-

Steps to reproduce:
1. Open the attached user's project "URPFetchShader.zip"
2. Build for Android
3. Observe application crashes

Expected Result: the application does not crash
Actual Result: application crashes

Reproducible with: 2021.3.32f1, 2022.3.14f1, 2023.2.2f1, 2023.3.0a16

Reproducible on these devices:
VLNQA00267, Samsung Galaxy S10+ (SM-G975F), Android 12, CPU: Exynos 9 (9820), GPU: Mali-G76
VLNQA00175, Samsung Galaxy Note9 (SM-N960F)
Android 10, CPU: Exynos 9 (9810), GPU: Mali-G72
N/A, Xiaomi - (Redmi Note 8 Pro), Android 9, CPU: MediaTek Helios G90T MT6785T, GPU: Mali-G76 MC4

Not reproducible with these devices:
VLNQA00178, Xiaomi Redmi Note 4 (Redmi Note 4), Android 6.0, CPU: MediaTek Helio X20 MT6797M, GPU: Mali-T880
VLNQA00489, Htc 10 (HTC 10), Android 6.0.1, CPU: Snapdragon 820 MSM8996, GPU: Adreno (TM) 530
VLNQA00120, Google Pixel 2 (Pixel 2), Android 8.1.0, CPU: Snapdragon 835 MSM8998, GPU: Adreno (TM) 540
VLNQA00519, Google Pixel 4 (Pixel 4), Android 12, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640
VLNQA00057, Htc One M9+ (HTC_M9pw), Android 6.0, CPU: MediaTek Helio X10 MT6795T, GPU: PowerVR Rogue G6200
VLNQA00146, Htc 10 (HTC 10), Android 7.0, CPU: Snapdragon 820 MSM8996, GPU: Adreno (TM) 530
VLNQA00372, Samsung SM-G991U (SM-G991U), Android 12, CPU: Snapdragon 888, GPU: Adreno (TM) 660
N/A, Samsung Galaxy Note9 (SM-N9600), Android 9, CPU: Snapdragon 845 SDM845, GPU: Adreno (TM) 630
N/A, Hmd Global (Nokia G20), Android 13, CPU: Mediatek MT6765G Helio G35 (12 nm), GPU: PowerVR Rogue GE8320
N/A, Samsung Galaxy S23 (SM-S911U), Android 13, CPU: Snapdragon 8 Gen 2 (SM8550), GPU: Adreno (TM) 740

Testing Environment: Windows 10
Not reproducible on: No other environment tested

Notes:
-Issue does not reproduce with Vulkan
-Crash stack trace:
#04 pc 0000000000c48218 (UniformCacheGLES::Submit(unsigned int, dynamic_array<GpuProgramParameters::ValueParameter, 0ul> const&, dynamic_array<int, 0ul> const&) const at ??:0) /data/app/com.UnityTechnologies.com.unity.template.urpblank-fWn6ZVG-QMjPNtz8We5QHA==/lib/arm64/libunity.so (UniformCacheGLES::Submit(unsigned int, dynamic_array<GpuProgramParameters::ValueParameter, 0ul> const&, dynamic_array<int, 0ul> const&) const+88) (BuildId: eb8448b9a5e5da98)
#05 pc 0000000000c4819c (GlslGpuProgramGLES::Submit(unsigned int, GpuProgramParameters const&) at ??:0) /data/app/com.UnityTechnologies.com.unity.template.urpblank-fWn6ZVG-QMjPNtz8We5QHA==/lib/arm64/libunity.so (GlslGpuProgramGLES::Submit(unsigned int, GpuProgramParameters const&)+48) (BuildId: eb8448b9a5e5da98)
#06 pc 0000000000c2b948 (GfxDeviceGLES::BeforeDrawCall() at ??:0) /data/app/com.UnityTechnologies.com.unity.template.urpblank-fWn6ZVG-QMjPNtz8We5QHA==/lib/arm64/libunity.so (GfxDeviceGLES::BeforeDrawCall()+1932) (BuildId: eb8448b9a5e5da98)
#07 pc 0000000000c2c778 (GfxDeviceGLES::DrawBuffersBatchMode(GfxBatchHeader const&) at ??:0) /data/app/com.UnityTechnologies.com.unity.template.urpblank-fWn6ZVG-QMjPNtz8We5QHA==/lib/arm64/libunity.so (GfxDeviceGLES::DrawBuffersBatchMode(GfxBatchHeader const&)+448) (BuildId: eb8448b9a5e5da98)

  1. Resolution Note:

    This issue is caused by an error in the OpenGL ES driver on Mali-based hardware, specifically with `glUniform4fv` errornously handling uniform location conflicts. According to the GPU manufacturer, a fix has been implemented in their driver, however, given the nature of driver updates in the Android ecosystem, their fix may not be availble on all devices.

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.