Search Issue Tracker
Won't Fix
Votes
2
Found in
2022.3.29f1
6000.0.2f1
6000.1.0a7
6000.2.0a1
7000.0.0a1
Issue ID
UUM-72052
Regression
No
[Android] The Android Player Crashes on GLES3/MRT with the "E libEGL : eglGetFrameTimestampsANDROIDImpl:2355 error 3002 (EGL_BAD_ACCESS)" error
How to reproduce:
1. Open the user-attached "mrtbug.zip" project
2. Open the Build Settings Window (File → Build Settings)
3. Switch the Target Platform to Android
4. Build and Run the project
5. In the Player press the "Click it!" Button
6. Observe the Player
Expected result: Nothing of note happens and the "Cube" GameObject in the Player continues moving
Actual result: The Player freezes
Reproducible with: 2022.3.29f1, 6000.0.2f1
Couldn't test with: 2021.3.38f1 (ScriptableRenderContext error, missing definition for 'CreateSkyboxRendererList')
Testing environment: Windows 11
Reproducible on these devices:
Google Pixel 4 (Pixel 4), Android 12, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640 (user's)
VLNQA00144, Samsung Galaxy S9 (SM-G960U1), Android 10, CPU: Snapdragon 845 SDM845, GPU: Adreno (TM) 630
VLNQA00293, Oppo R17 Pro (PBDM00), Android 10, CPU: Snapdragon 710 SDM710, GPU: Adreno (TM) 616
VLNQA00411, Samsung Galaxy Z Fold3 5G (SM-F926B), Android 11, CPU: Snapdragon 888, GPU: Adreno (TM) 660
VLNQA00517, Oneplus OnePlus 10 Pro 5G (NE2213), Android 12, CPU: Snapdragon 8 Gen 1 (SM8450), GPU: Adreno (TM) 730
VLNQA00520, Samsung Galaxy S22 (SM-S901U), Android 14, CPU: Snapdragon 8 Gen 1 (SM8450), GPU: Adreno (TM) 730
VLNQA00531, Oneplus OnePlus 11 5G (CPH2449), Android 13, CPU: Snapdragon 8 Gen 2 (SM8550), GPU: Adreno (TM) 740
Not reproducible on these devices:
VLNQA00267, Samsung Galaxy S10+ (SM-G975F), Android 12, CPU: Exynos 9 (9820), GPU: Mali-G76
VLNQA00287, Motorola moto g(7) power (moto g(7) power), Android 9, CPU: Snapdragon 625 MSM8953, GPU: Adreno (TM) 506
VLNQA00321, Xiaomi MI 9 (MI 9), Android 10, CPU: Snapdragon 855 SM8150, GPU: Adreno (TM) 640
VLNQA00580, Xiaomi Redmi Note 8 (2021) (M1908C3JGG), Android 11, CPU: Mediatek MT6769Z Helio G85 (12nm), GPU: Mali-G52
Notes:
- After reproducing the issue Logcat is filled with this error: "E libEGL : eglGetFrameTimestampsANDROIDImpl:2355 error 3002 (EGL_BAD_ACCESS)"
- Only reproducible with Qualcomm chipset devices
- Reproducible with OpenGLES3 Graphics API
- Not reproducible with Vulkan Graphics API
- The reporter noted that the app also crashes but CQA could not reproduce the crash
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
- Mouse input is registered incorrectly in Custom RP when downscaling Render Target and rendering Overlay UI before final upscale
- Time.deltaTime is locked to the display's refresh rate when the built Player is moved to a Secondary Display and Windowed Mode is used
- Crash on RaiseException when importing a specific asset
- Crash on RaiseException when opening a specific project
- DownloadHandlerScript.CompleteContent is called twice when building for WebGL
Resolution Note:
The custom clear shader (ClearRT) in the project is not rendering to render target 0, only render target 1. The results of this are undefined. However usually this should not crash but instead result in undefined content in render target 0.
We consider the crash a third party issue in the OpenGL ES driver. We tried to workaround the issue internally but have not found a good solution.
We recommend to change the clear shader so that it also adds SV_Target0 output but disable writes to that output using color mask:
ColorMask 0 0
ColorMask RGBA 1
struct PS_OUTPUT
{
float4 Color0: SV_Target0;
float4 Color1: SV_Target1;
};
The downside of this approach is mainly that this requires OpenGL ES 3.2 features. If you are also targeting older versions of OpenGL ES such as 3.0 or WebGL 2.0 you could use your old shader as a fallback.
Alternatively you could break up the render pass and clear the targets individually.
We are going to support clearing individual color targets using CommandBuffer.ClearRenderTarget in a future version of Unity.