Search Issue Tracker

Fixed

Fixed in 2022.3.17f1

Votes

4

Found in

2022.3.4f1

Issue ID

UUM-41423

Regression

No

[Android] Crash on Android with Vulkan API during texture streaming

--

-

Steps to reproduce:
1. Open the attached user's project "StreamingVulkanCrash2022.zip"
2. Switch the platform to Android
3. Disable OculusXR plugin
4. Build to an Android device
5. Wait for a few seconds and observe the crash

Expected results: the application does not crash with Vulkan API during texture streaming
Actual results: Application crashes with Vulkan API during texture streaming

Reproducible on: 2022.3.4f1
Not reproducible on: 2021.3.28f1, 2023.1.2f1, 2023.2.0a21

Reproducible on these devices:
Oculus (Quest 2), Android 12, CPU: Snapdragon XR2, GPU: Adreno (TM) 650
Samsung Galaxy Note9 (SM-N9600), Android 9, CPU: Snapdragon 845 SDM845, GPU: Adreno (TM) 630
Xiaomi Mi Note2 (Mi Note 2), Android 8.0.0, CPU: Snapdragon 820 MSM8996, GPU: Adreno (TM) 530
Google Pixel 3 (Pixel 3), Android 12, CPU: Snapdragon 845, GPU: Adreno (TM) 630
N/A, Google Pixel 3 (Pixel 3), Android 12, CPU: Snapdragon 845, GPU: Adreno (TM) 630
N/A, Samsung - (SM-G991U), Android 12, CPU: Snapdragon 888, GPU: Adreno (TM) 660

Not reproducible on these devices:
Hmd Global (Nokia G20), Android 11, CPU: Mediatek MT6765G Helio G35 (12 nm), GPU: PowerVR Rogue GE8320

Environment Tested on: Windows 10

Notes:
-In the project the textures are changed before the camera to force permanent texture streaming and switch render scale every second
-Crash doesn't happen when using OpenGL ES API
-Crash doesn't happen when texture streaming is not happening
-5 lines of crash Stacktrace:
(VersionedTextureIdMap::FrameCleanup(unsigned long long, dynamic_array<GfxTexture*, 0u>&)+508) (BuildId: 0c61d447a9a61e7e)
(GfxDeviceVK::FlushPools()+156) (BuildId: 0c61d447a9a61e7e)
(vk::ImageManager::DeleteTexture(TextureID)+204) (BuildId: 0c61d447a9a61e7e)
(GfxDeviceVK::DeleteTexture(TextureID)+16) (BuildId: 0c61d447a9a61e7e)
(GfxDeviceVK::TransferNativeTexture(TextureDimension, TextureID, TextureID)+96) (BuildId: 0c61d447a9a61e7e)

  1. Resolution Note (fix version 2022.3.17f1):

    Fixed by ensuring that internal texture management would properly handle the case where RenderSurfaces may be reused and converted to Memoryless before being iterated upon on frame cleanup causing an invalid pointer dereference.

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.