Search Issue Tracker

By Design

Votes

0

Found in

2022.3.62f1

6000.0.48f1

6000.1.3f1

6000.2.0b1

6000.3.0a1

Issue ID

UUM-105246

Regression

Yes

Android Player freezes on some Mali GPU devices when Lighting Cast Shadows changed to OFF at runtime

-

How to reproduce:
1. Open the attached “IN-101015” Project
2. In the Build Profiles window, Build And Run the project on a device
3. In the Android Player, click the LowTier toggle.
4. Observe the Android Player

Expected result: Android Player does not freeze when the toggle is on
Actual result: Android Player freezes

Reproducible in: 2022.3.3f1, 2022.3.62f1, 2023.2.0a20, 6000.0.48f1, 6000.1.3f1, 6000.2.0b1
Not reproducible in: 2022.3.2f1, 2023.2.0a19

Reproducible on:
VLNQA00325 Samsung Galaxy Note 10 (SM-N970F), Android 12, CPU: Exynos 9 Series 9825, GPU: Mali-G76
Samsung Galaxy S10 (SM-G973F), Android 10, CPU: Exynos 9 9820, GPU: Mali-G76 (SauceLabs)
Google Pixel 8a (Pixel 8a), Android 14 (Reporter)

Not Reproducible on:
VLNQA00566, Samsung Galaxy S8 (SM-G950F), Android 9, CPU: Exynos 9 Octa 8895, GPU: Mali-G71
VLNQA00460 - Google Pixel 6 (Pixel 6), Android 14, CPU: Google Tensor, GPU: Mali-G78
VLNQA00498, Google Pixel 7 (Pixel 7), Android 13, CPU: Google Tensor G2 , GPU: Mali-G710
VLNQA00628 - Pixel 9 Pro Fold (Pixel 9 Pro Fold), Android 14, CPU: Google Tensor G4, GPU: Mali-G715
Google Pixel 6 (Pixel 6), Android 14 (Reporter)
Google Pixel 8a (Pixel 8a), Android 15 (Reporter)

Notes:

* Similar to [UUM-87817|https://issuetracker.unity3d.com/issues/android-shadows-screen-set-as-shader-keyword-when-no-shadowmaptexture-is-bound-leads-to-freeze-on-a-build-on-some-mali-gpu-devices] but is affected by Lit.shader instead
* If MainLightRealtimeShadow method is modified in the “Packages/com.unity.shadergraph/Editor/Generation/Targets/BuildIn/ShaderLibrary/Shadows.hlsl” file as pictured below the issue is no longer reproducible:

{noformat}half MainLightRealtimeShadow(float4 shadowCoord, half4 shadowParams, ShadowSamplingData shadowSamplingData)
{
...
#if !defined(_MAIN_LIGHT_SHADOWS) //<---ADDED
return half(1.0); //<---ADDED
#endif //<---ADDED
...
}{noformat}

  1. Resolution Note:

    The problem appears to be in the configuration of the quality levels in the user's project and the way quality levels are switched at runtime.

    Based on testing, if the proper configuration is used, the issue does not reproduce. The URP assets need to be assigned to the quality levels, in order to strip the shader variants based on the enabled features.

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.